60c06040526001600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff0219169083151502179055506000600b60026101000a81548160ff0219169083151502179055506001600b60036101000a81548160ff0219169083151502179055506000600f60006101000a81548160ff0219169083151502179055503480156200009857600080fd5b506040518060400160405280600681526020017f487567656c7900000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f485547454c59000000000000000000000000000000000000000000000000000081525081600390805190602001906200011d92919062000bf9565b5080600490805190602001906200013692919062000bf9565b50505060006200014b620006c560201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d905062000216816001620006cd60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029157600080fd5b505afa158015620002a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cc919062000d13565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032f57600080fd5b505afa15801562000344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036a919062000d13565b6040518363ffffffff1660e01b81526004016200038992919062000d56565b602060405180830381600087803b158015620003a457600080fd5b505af1158015620003b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003df919062000d13565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200042760a0516001620006cd60201b60201c565b6200043c60a0516001620007ca60201b60201c565b60006003905060008060029050600060029050600080600390506000806006905060006005905060006c0c9f2c9cd04674edea4000000090506103e860148262000487919062000dbc565b62000493919062000e4c565b6008819055506103e8601e82620004ab919062000dbc565b620004b7919062000e4c565b600a81905550612710600a82620004cf919062000dbc565b620004db919062000e4c565b6009819055508960118190555088601281905550876013819055506013546012546011546200050b919062000e84565b62000517919062000e84565b60108190555086601581905550856016819055508460178190555060175460165460155462000547919062000e84565b62000553919062000e84565b601481905550836018819055508260198190555081601a819055506200057e6200086b60201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005ce6200086b60201b60201c565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000630620006226200086b60201b60201c565b60016200089560201b60201c565b620006433060016200089560201b60201c565b6200065861dead60016200089560201b60201c565b6200067a6200066c6200086b60201b60201c565b6001620006cd60201b60201c565b6200068d306001620006cd60201b60201c565b620006a261dead6001620006cd60201b60201c565b620006b43382620009e260201b60201c565b505050505050505050505062001115565b600033905090565b620006dd620006c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200076f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007669062000f42565b60405180910390fd5b80602060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80602160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620008a5620006c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000937576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200092e9062000f42565b60405180910390fd5b80601f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620009d6919062000f81565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000a55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a4c9062000fee565b60405180910390fd5b62000a696000838362000b9160201b60201c565b62000a858160025462000b9660201b620013f61790919060201c565b60028190555062000ae3816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000b9660201b620013f61790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b85919062001021565b60405180910390a35050565b505050565b600080828462000ba7919062000e84565b90508381101562000bef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000be6906200108e565b60405180910390fd5b8091505092915050565b82805462000c0790620010df565b90600052602060002090601f01602090048101928262000c2b576000855562000c77565b82601f1062000c4657805160ff191683800117855562000c77565b8280016001018555821562000c77579182015b8281111562000c7657825182559160200191906001019062000c59565b5b50905062000c86919062000c8a565b5090565b5b8082111562000ca557600081600090555060010162000c8b565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cdb8262000cae565b9050919050565b62000ced8162000cce565b811462000cf957600080fd5b50565b60008151905062000d0d8162000ce2565b92915050565b60006020828403121562000d2c5762000d2b62000ca9565b5b600062000d3c8482850162000cfc565b91505092915050565b62000d508162000cce565b82525050565b600060408201905062000d6d600083018562000d45565b62000d7c602083018462000d45565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000dc98262000d83565b915062000dd68362000d83565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e125762000e1162000d8d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e598262000d83565b915062000e668362000d83565b92508262000e795762000e7862000e1d565b5b828204905092915050565b600062000e918262000d83565b915062000e9e8362000d83565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ed65762000ed562000d8d565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000f2a60208362000ee1565b915062000f378262000ef2565b602082019050919050565b6000602082019050818103600083015262000f5d8162000f1b565b9050919050565b60008115159050919050565b62000f7b8162000f64565b82525050565b600060208201905062000f98600083018462000f70565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000fd6601f8362000ee1565b915062000fe38262000f9e565b602082019050919050565b60006020820190508181036000830152620010098162000fc7565b9050919050565b6200101b8162000d83565b82525050565b600060208201905062001038600083018462001010565b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001076601b8362000ee1565b915062001083826200103e565b602082019050919050565b60006020820190508181036000830152620010a98162001067565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620010f857607f821691505b602082108114156200110f576200110e620010b0565b5b50919050565b60805160a05161466c6200117a60003960008181610bec01528181611ac201528181611ee20152611fdf01526000818161070a01528181611a6a01528181612ec101528181612fb101528181612fd801528181613074015261309b015261466c6000f3fe6080604052600436106101855760003560e01c8063715018a6116100d1578063a26577781161008a578063aacebbe311610064578063aacebbe31461056b578063b62496f514610594578063c876d0b9146105d1578063dd62ed3e146105fc5761018c565b8063a2657778146104da578063a4d15b6414610503578063a9059cbb1461052e5761018c565b8063715018a614610402578063751039fc1461041957806384a7bf83146104445780638a8c523c1461046d5780638da5cb5b1461048457806395d89b41146104af5761018c565b806322d3e2aa1161013e578063313ce56711610118578063313ce5671461034457806349bd5a5e1461036f5780636ddd17131461039a57806370a08231146103c55761018c565b806322d3e2aa146102b557806323b872dd146102de5780632d08d4081461031b5761018c565b806306fdde0314610191578063095ea7b3146101bc57806310d5de53146101f95780631694505e1461023657806318160ddd146102615780631816467f1461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610639565b6040516101b39190613253565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190613313565b6106cb565b6040516101f0919061336e565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190613389565b6106e9565b60405161022d919061336e565b60405180910390f35b34801561024257600080fd5b5061024b610708565b6040516102589190613415565b60405180910390f35b34801561026d57600080fd5b5061027661072c565b604051610283919061343f565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190613389565b610736565b005b3480156102c157600080fd5b506102dc60048036038101906102d7919061345a565b61088d565b005b3480156102ea57600080fd5b50610305600480360381019061030091906134e7565b6109bf565b604051610312919061336e565b60405180910390f35b34801561032757600080fd5b50610342600480360381019061033d91906135f5565b610a98565b005b34801561035057600080fd5b50610359610be1565b6040516103669190613692565b60405180910390f35b34801561037b57600080fd5b50610384610bea565b60405161039191906136bc565b60405180910390f35b3480156103a657600080fd5b506103af610c0e565b6040516103bc919061336e565b60405180910390f35b3480156103d157600080fd5b506103ec60048036038101906103e79190613389565b610c21565b6040516103f9919061343f565b60405180910390f35b34801561040e57600080fd5b50610417610c69565b005b34801561042557600080fd5b5061042e610dc1565b60405161043b919061336e565b60405180910390f35b34801561045057600080fd5b5061046b60048036038101906104669190613703565b610e7c565b005b34801561047957600080fd5b50610482610f6e565b005b34801561049057600080fd5b50610499611044565b6040516104a691906136bc565b60405180910390f35b3480156104bb57600080fd5b506104c461106e565b6040516104d19190613253565b60405180910390f35b3480156104e657600080fd5b5061050160048036038101906104fc9190613743565b611100565b005b34801561050f57600080fd5b506105186111b4565b604051610525919061336e565b60405180910390f35b34801561053a57600080fd5b5061055560048036038101906105509190613313565b6111c7565b604051610562919061336e565b60405180910390f35b34801561057757600080fd5b50610592600480360381019061058d9190613389565b6111e5565b005b3480156105a057600080fd5b506105bb60048036038101906105b69190613389565b61133c565b6040516105c8919061336e565b60405180910390f35b3480156105dd57600080fd5b506105e661135c565b6040516105f3919061336e565b60405180910390f35b34801561060857600080fd5b50610623600480360381019061061e9190613770565b61136f565b604051610630919061343f565b60405180910390f35b606060038054610648906137df565b80601f0160208091040260200160405190810160405280929190818152602001828054610674906137df565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b60006106df6106d8611454565b848461145c565b6001905092915050565b602080528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b61073e611454565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c49061385d565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610895611454565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b9061385d565b60405180910390fd5b856015819055508460168190555083601781905550826018819055508160198190555080601a8190555060175460165460155461096191906138ac565b61096b91906138ac565b601481905550601960145411156109b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ae9061394e565b60405180910390fd5b505050505050565b60006109cc848484611627565b610a8d846109d8611454565b610a888560405180606001604052806028815260200161460f60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a3e611454565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461272e9092919063ffffffff16565b61145c565b600190509392505050565b610aa0611454565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b269061385d565b60405180910390fd5b610b4f610b3a611044565b610b42611044565b610b4a61072c565b61145c565b60005b84849050811015610bda57610bc633868684818110610b7457610b7361396e565b5b9050602002016020810190610b899190613389565b610b91610be1565b600a610b9d9190613ad0565b868686818110610bb057610baf61396e565b5b90506020020135610bc19190613b1b565b6109bf565b508080610bd290613b75565b915050610b52565b5050505050565b60006012905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c71611454565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf79061385d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610dcb611454565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e519061385d565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506001905090565b610e84611454565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0a9061385d565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610f76611454565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffc9061385d565b60405180910390fd5b6001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043601e81905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461107d906137df565b80601f01602080910402602001604051908101604052809291908181526020018280546110a9906137df565b80156110f65780601f106110cb576101008083540402835291602001916110f6565b820191906000526020600020905b8154815290600101906020018083116110d957829003601f168201915b5050505050905090565b611108611454565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e9061385d565b60405180910390fd5b80600b60036101000a81548160ff02191690831515021790555050565b600b60039054906101000a900460ff1681565b60006111db6111d4611454565b8484611627565b6001905092915050565b6111ed611454565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112739061385d565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60216020528060005260406000206000915054906101000a900460ff1681565b600f60009054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080828461140591906138ac565b90508381101561144a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144190613c0a565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c390613c9c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561153c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153390613d2e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161161a919061343f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e90613dc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fe90613e52565b60405180910390fd5b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117ab5750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e190613ee4565b60405180910390fd5b6000811415611804576117ff83836000612792565b612729565b600b60009054906101000a900460ff1615611ec757611821611044565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561188f575061185f611044565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118c85750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611902575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561191b5750600560149054906101000a900460ff16155b15611ec657600b60019054906101000a900460ff16611a1557601f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119d55750601f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0b90613f50565b60405180910390fd5b5b600f60009054906101000a900460ff1615611bdd57611a32611044565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611ab957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b1157507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bdc5743600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8e90614008565b60405180910390fd5b43600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b602160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611c805750602060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d2757600854811115611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc19061409a565b60405180910390fd5b600a54611cd683610c21565b82611ce191906138ac565b1115611d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1990614106565b60405180910390fd5b611ec5565b602160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dca5750602060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e1957600854811115611e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0b90614198565b60405180910390fd5b611ec4565b602060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ec357600a54611e7683610c21565b82611e8191906138ac565b1115611ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb990614106565b60405180910390fd5b5b5b5b5b5b6001601e54611ed691906138ac565b4311158015611f3157507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f7d5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fdb576001600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16149050801580156120485750600b60039054906101000a900460ff165b15612172576000600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141580156120e9575042610e10600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e691906138ac565b10155b1561213157601854601681905550601954601581905550601a5460178190555060175460165460155461211c91906138ac565b61212691906138ac565b60148190555061216d565b60006016819055506002601581905550600360178190555060175460165460155461215c91906138ac565b61216691906138ac565b6014819055505b612250565b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156121ff5742600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600b60039054906101000a900460ff1661224f5760006016819055506005601581905550600660178190555060175460165460155461223e91906138ac565b61224891906138ac565b6014819055505b5b600061225b30610c21565b9050600060095482101590508080156122805750600b60029054906101000a900460ff165b80156122995750600560149054906101000a900460ff16155b80156122ef5750602160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123455750601f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561239b5750601f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123df576001600560146101000a81548160ff0219169083151502179055506123c3612a27565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124955750601f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561249f57600090505b6000811561271857602160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561250257506000601454115b156125cf5761252f606461252160145489612d0e90919063ffffffff16565b612d8990919063ffffffff16565b9050601454601654826125429190613b1b565b61254c91906141e7565b601c600082825461255d91906138ac565b92505081905550601454601754826125759190613b1b565b61257f91906141e7565b601d600082825461259091906138ac565b92505081905550601454601554826125a89190613b1b565b6125b291906141e7565b601b60008282546125c391906138ac565b925050819055506126f4565b602160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561262a57506000601054115b156126f357612657606461264960105489612d0e90919063ffffffff16565b612d8990919063ffffffff16565b90506010546012548261266a9190613b1b565b61267491906141e7565b601c600082825461268591906138ac565b925050819055506010546013548261269d9190613b1b565b6126a791906141e7565b601d60008282546126b891906138ac565b92505081905550601054601154826126d09190613b1b565b6126da91906141e7565b601b60008282546126eb91906138ac565b925050819055505b5b600081111561270957612708883083612792565b5b80866127159190614218565b95505b612723888888612792565b50505050505b505050565b6000838311158290612776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276d9190613253565b60405180910390fd5b50600083856127859190614218565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f990613dc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286990613e52565b60405180910390fd5b61287d838383612dd3565b6128e8816040518060600160405280602681526020016145e9602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461272e9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061297b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f690919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a1a919061343f565b60405180910390a3505050565b6000612a3230610c21565b90506000601d54601b54601c54612a4991906138ac565b612a5391906138ac565b9050600080831480612a655750600082145b15612a7257505050612d0c565b6014600954612a819190613b1b565b831115612a9a576014600954612a979190613b1b565b92505b6000600283601c5486612aad9190613b1b565b612ab791906141e7565b612ac191906141e7565b90506000612ad88286612dd890919063ffffffff16565b90506000479050612ae882612e22565b6000612afd8247612dd890919063ffffffff16565b90506000612b2887612b1a601b5485612d0e90919063ffffffff16565b612d8990919063ffffffff16565b90506000612b5388612b45601d5486612d0e90919063ffffffff16565b612d8990919063ffffffff16565b90506000818385612b649190614218565b612b6e9190614218565b90506000601c819055506000601b819055506000601d81905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612bce9061427d565b60006040518083038185875af1925050503d8060008114612c0b576040519150601f19603f3d011682016040523d82523d6000602084013e612c10565b606091505b505080985050600087118015612c265750600081115b15612c7357612c35878261306e565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618682601c54604051612c6a93929190614292565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612cb99061427d565b60006040518083038185875af1925050503d8060008114612cf6576040519150601f19603f3d011682016040523d82523d6000602084013e612cfb565b606091505b505080985050505050505050505050505b565b600080831415612d215760009050612d83565b60008284612d2f9190613b1b565b9050828482612d3e91906141e7565b14612d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d759061433b565b60405180910390fd5b809150505b92915050565b6000612dcb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613157565b905092915050565b505050565b6000612e1a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061272e565b905092915050565b6000600267ffffffffffffffff811115612e3f57612e3e61435b565b5b604051908082528060200260200182016040528015612e6d5781602001602082028036833780820191505090505b5090503081600081518110612e8557612e8461396e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f2557600080fd5b505afa158015612f39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5d919061439f565b81600181518110612f7157612f7061396e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fd6307f00000000000000000000000000000000000000000000000000000000000000008461145c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130389594939291906144c5565b600060405180830381600087803b15801561305257600080fd5b505af1158015613066573d6000803e3d6000fd5b505050505050565b613099307f00000000000000000000000000000000000000000000000000000000000000008461145c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b81526004016130fe9695949392919061451f565b6060604051808303818588803b15801561311757600080fd5b505af115801561312b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131509190614595565b5050505050565b6000808311829061319e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131959190613253565b60405180910390fd5b50600083856131ad91906141e7565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131f45780820151818401526020810190506131d9565b83811115613203576000848401525b50505050565b6000601f19601f8301169050919050565b6000613225826131ba565b61322f81856131c5565b935061323f8185602086016131d6565b61324881613209565b840191505092915050565b6000602082019050818103600083015261326d818461321a565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132aa8261327f565b9050919050565b6132ba8161329f565b81146132c557600080fd5b50565b6000813590506132d7816132b1565b92915050565b6000819050919050565b6132f0816132dd565b81146132fb57600080fd5b50565b60008135905061330d816132e7565b92915050565b6000806040838503121561332a57613329613275565b5b6000613338858286016132c8565b9250506020613349858286016132fe565b9150509250929050565b60008115159050919050565b61336881613353565b82525050565b6000602082019050613383600083018461335f565b92915050565b60006020828403121561339f5761339e613275565b5b60006133ad848285016132c8565b91505092915050565b6000819050919050565b60006133db6133d66133d18461327f565b6133b6565b61327f565b9050919050565b60006133ed826133c0565b9050919050565b60006133ff826133e2565b9050919050565b61340f816133f4565b82525050565b600060208201905061342a6000830184613406565b92915050565b613439816132dd565b82525050565b60006020820190506134546000830184613430565b92915050565b60008060008060008060c0878903121561347757613476613275565b5b600061348589828a016132fe565b965050602061349689828a016132fe565b95505060406134a789828a016132fe565b94505060606134b889828a016132fe565b93505060806134c989828a016132fe565b92505060a06134da89828a016132fe565b9150509295509295509295565b600080600060608486031215613500576134ff613275565b5b600061350e868287016132c8565b935050602061351f868287016132c8565b9250506040613530868287016132fe565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f84011261355f5761355e61353a565b5b8235905067ffffffffffffffff81111561357c5761357b61353f565b5b60208301915083602082028301111561359857613597613544565b5b9250929050565b60008083601f8401126135b5576135b461353a565b5b8235905067ffffffffffffffff8111156135d2576135d161353f565b5b6020830191508360208202830111156135ee576135ed613544565b5b9250929050565b6000806000806040858703121561360f5761360e613275565b5b600085013567ffffffffffffffff81111561362d5761362c61327a565b5b61363987828801613549565b9450945050602085013567ffffffffffffffff81111561365c5761365b61327a565b5b6136688782880161359f565b925092505092959194509250565b600060ff82169050919050565b61368c81613676565b82525050565b60006020820190506136a76000830184613683565b92915050565b6136b68161329f565b82525050565b60006020820190506136d160008301846136ad565b92915050565b6136e081613353565b81146136eb57600080fd5b50565b6000813590506136fd816136d7565b92915050565b6000806040838503121561371a57613719613275565b5b6000613728858286016132c8565b9250506020613739858286016136ee565b9150509250929050565b60006020828403121561375957613758613275565b5b6000613767848285016136ee565b91505092915050565b6000806040838503121561378757613786613275565b5b6000613795858286016132c8565b92505060206137a6858286016132c8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137f757607f821691505b6020821081141561380b5761380a6137b0565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138476020836131c5565b915061385282613811565b602082019050919050565b600060208201905081810360008301526138768161383a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138b7826132dd565b91506138c2836132dd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138f7576138f661387d565b5b828201905092915050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b6000613938601d836131c5565b915061394382613902565b602082019050919050565b600060208201905081810360008301526139678161392b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156139f4578086048111156139d0576139cf61387d565b5b60018516156139df5780820291505b80810290506139ed8561399d565b94506139b4565b94509492505050565b600082613a0d5760019050613ac9565b81613a1b5760009050613ac9565b8160018114613a315760028114613a3b57613a6a565b6001915050613ac9565b60ff841115613a4d57613a4c61387d565b5b8360020a915084821115613a6457613a6361387d565b5b50613ac9565b5060208310610133831016604e8410600b8410161715613a9f5782820a905083811115613a9a57613a9961387d565b5b613ac9565b613aac84848460016139aa565b92509050818404811115613ac357613ac261387d565b5b81810290505b9392505050565b6000613adb826132dd565b9150613ae683613676565b9250613b137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846139fd565b905092915050565b6000613b26826132dd565b9150613b31836132dd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b6a57613b6961387d565b5b828202905092915050565b6000613b80826132dd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bb357613bb261387d565b5b600182019050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613bf4601b836131c5565b9150613bff82613bbe565b602082019050919050565b60006020820190508181036000830152613c2381613be7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613c866024836131c5565b9150613c9182613c2a565b604082019050919050565b60006020820190508181036000830152613cb581613c79565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d186022836131c5565b9150613d2382613cbc565b604082019050919050565b60006020820190508181036000830152613d4781613d0b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613daa6025836131c5565b9150613db582613d4e565b604082019050919050565b60006020820190508181036000830152613dd981613d9d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613e3c6023836131c5565b9150613e4782613de0565b604082019050919050565b60006020820190508181036000830152613e6b81613e2f565b9050919050565b7f596f752068617665206265656e20626c61636b6c69737465642066726f6d207460008201527f72616e73666572696e6720746f6b656e73000000000000000000000000000000602082015250565b6000613ece6031836131c5565b9150613ed982613e72565b604082019050919050565b60006020820190508181036000830152613efd81613ec1565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613f3a6016836131c5565b9150613f4582613f04565b602082019050919050565b60006020820190508181036000830152613f6981613f2d565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000613ff26049836131c5565b9150613ffd82613f70565b606082019050919050565b6000602082019050818103600083015261402181613fe5565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006140846035836131c5565b915061408f82614028565b604082019050919050565b600060208201905081810360008301526140b381614077565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006140f06013836131c5565b91506140fb826140ba565b602082019050919050565b6000602082019050818103600083015261411f816140e3565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006141826036836131c5565b915061418d82614126565b604082019050919050565b600060208201905081810360008301526141b181614175565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141f2826132dd565b91506141fd836132dd565b92508261420d5761420c6141b8565b5b828204905092915050565b6000614223826132dd565b915061422e836132dd565b9250828210156142415761424061387d565b5b828203905092915050565b600081905092915050565b50565b600061426760008361424c565b915061427282614257565b600082019050919050565b60006142888261425a565b9150819050919050565b60006060820190506142a76000830186613430565b6142b46020830185613430565b6142c16040830184613430565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006143256021836131c5565b9150614330826142c9565b604082019050919050565b6000602082019050818103600083015261435481614318565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050614399816132b1565b92915050565b6000602082840312156143b5576143b4613275565b5b60006143c38482850161438a565b91505092915050565b6000819050919050565b60006143f16143ec6143e7846143cc565b6133b6565b6132dd565b9050919050565b614401816143d6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61443c8161329f565b82525050565b600061444e8383614433565b60208301905092915050565b6000602082019050919050565b600061447282614407565b61447c8185614412565b935061448783614423565b8060005b838110156144b857815161449f8882614442565b97506144aa8361445a565b92505060018101905061448b565b5085935050505092915050565b600060a0820190506144da6000830188613430565b6144e760208301876143f8565b81810360408301526144f98186614467565b905061450860608301856136ad565b6145156080830184613430565b9695505050505050565b600060c08201905061453460008301896136ad565b6145416020830188613430565b61454e60408301876143f8565b61455b60608301866143f8565b61456860808301856136ad565b61457560a0830184613430565b979650505050505050565b60008151905061458f816132e7565b92915050565b6000806000606084860312156145ae576145ad613275565b5b60006145bc86828701614580565b93505060206145cd86828701614580565b92505060406145de86828701614580565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d60f6c416cbd6e29e803374601679aaedc0c9f8ac2a48ba920b152eaa3ea620264736f6c63430008090033