0 txs
0 calls
constructor
No constructor.
functions
acceptCrocProxyRole
purefunction acceptCrocProxyRole(address, uint16 slot) pure returns (bool)
userCmd
payablefunction userCmd(bytes input) payable returns (int128, int128)
events
CrocKnockoutCross
event CrocKnockoutCross(bytes32 indexed pool, int24 indexed tick, bool isBid, uint32 pivotTime, uint64 feeMileage, uint160 commitEntropy)
errors
No errors.
creation bytecode
0x608060405262010011805460ff60e01b1916600160e71b17905534801561002557600080fd5b50614b14806100356000396000f3fe6080604052600436106100295760003560e01c8063ac54c0fc1461002e578063f96dc78814610063575b600080fd5b34801561003a57600080fd5b5061004e6100493660046145fd565b610090565b60405190151581526020015b60405180910390f35b610076610071366004614636565b61009f565b60408051600f93840b81529190920b60208201520161005a565b61ffff81166001145b92915050565b600080548190760100000000000000000000000000000000000000000000900460ff161561012e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f486f74207061746820656e61626c65640000000000000000000000000000000060448201526064015b60405180910390fd5b6101388484610143565b915091509250929050565b6000808080808080808080808061015c8d8f018f6146d6565b99509950995099509950995099509950995099506101828a8a8a8a8a8a8a8a8a8a610197565b9b509b50505050505050505050509250929050565b60008060006101ab8d8d8d8a8e8e8e610208565b905060006101bc828c8c8c8b6102a5565b80516020820151909550935090506101d681878d8d61031f565b506101ec8e8e83600001518460200151896103e9565b6101f7818f8f61041b565b50509a509a98505050505050505050565b60408051610140810182526000606082018181526080830182905260a0830182905260c0830182905260e083018290526101008301829052610120830182905282526020820181905291810182905290610263898989610563565b905080600001516020015161ffff168661ffff16111561028b57805161ffff87166020909101525b610299818a8a88888861063a565b98975050505050505050565b6040805160808082018352600080835260208084018290528385018290526060808501839052855160a081018752958601929092528815158552871515908501526fffffffffffffffffffffffffffffffff8681169185019190915284169083015290610312818861075b565b9150505b95945050505050565b60008161032d578451610333565b84602001515b9050821515821515146000816103495785610352565b610352866147cc565b905080600f0b83600f0b13158061037957506fffffffffffffffffffffffffffffffff8616155b6103df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f534c0000000000000000000000000000000000000000000000000000000000006044820152606401610125565b5050949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff1680610412818089888a89896108a1565b50505050505050565b60408301516fffffffffffffffffffffffffffffffff16156104bd5760408084015173ffffffffffffffffffffffffffffffffffffffff841660009081526201000c6020529182208054919290916104869084906fffffffffffffffffffffffffffffffff1661480a565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b60608301516fffffffffffffffffffffffffffffffff161561055e57606083015173ffffffffffffffffffffffffffffffffffffffff821660009081526201000c6020526040812080549091906105279084906fffffffffffffffffffffffffffffffff1661480a565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b505050565b60408051610140810182526000606082018181526080830182905260a0830182905260c0830182905260e0830182905261010083018290526101208301829052825260208201819052918101919091526105c2620100098585856108f6565b90506105cd81610a27565b610633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f50490000000000000000000000000000000000000000000000000000000000006044820152606401610125565b9392505050565b604086015173ffffffffffffffffffffffffffffffffffffffff1615610753576040868101516000805489516020015193517f4e56bd3800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015233602482015289821660448201528882166064820152871515608482015286151560a48201526fffffffffffffffffffffffffffffffff861660c482015261ffff90941660e48501529092911690634e56bd3890610104016020604051808303816000875af1158015610723573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107479190614833565b90506104128782610aa8565b505050505050565b604080516080810182526000808252602082018190529181018290526060810191909152600061078e8360200151610b3d565b90506107bb82826107b484600001516fffffffffffffffffffffffffffffffff16610c12565b8787610f65565b60208084015160009081526201000f82526040908190208351928401516fffffffffffffffffffffffffffffffff9384167001000000000000000000000000000000009185168202178255918401516001909101805460608601516080870151939095167fffffffffffffffff0000000000000000000000000000000000000000000000009091161767ffffffffffffffff9485169093029290921777ffffffffffffffffffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000093909116929092029190911790555b5092915050565b73ffffffffffffffffffffffffffffffffffffffff85166108d2576108cd8787866001851615156110ef565b6108e4565b6108e48787868860018616151561112b565b6104128787848660028616151561112b565b60408051610140810182526000606082018181526080830182905260a0830182905260c0830182905260e08301829052610100830182905261012083018290528252602082018190529181018290529061095185858561115b565b600081815260208881526040808320815160e081018352905460ff808216835261ffff6101008304811695840195909552630100000082048116938301939093526401000000008104909316606082015266010000000000008304821660808201526701000000000000008304821660a0820152680100000000000000009092041660c08201819052929350916109e99086906111e8565b60408051606081018252938452602084019490945273ffffffffffffffffffffffffffffffffffffffff16928201929092529150505b949350505050565b805151600090600160ff9091161115610a9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49505300000000000000000000000000000000000000000000000000000000006044820152606401610125565b50515160ff1660011490565b600161ffff8216610b15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f5a000000000000000000000000000000000000000000000000000000000000006044820152606401610125565b610b1f8183614850565b83516020018051610b31908390614850565b61ffff16905250505050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091525060008181526201000f6020908152604091829020825160a08101845281546fffffffffffffffffffffffffffffffff808216808452700100000000000000000000000000000000928390048216958401959095526001909301549283169482019490945292810467ffffffffffffffff90811660608501527801000000000000000000000000000000000000000000000000909104166080830152610c0d57600080fd5b919050565b6000620100026fffffffffffffffffffffffffffffffff831610801590610c5a57506f0ffff5433e2b3d8211706e6102aa94726fffffffffffffffffffffffffffffffff8316105b610c6357600080fd5b77ffffffffffffffffffffffffffffffff0000000000000000604083901b166fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c97908811961790941790921717909117171760808110610d0d57607f810383901c9150610d17565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581027ffffffffffffffffffffffffffffffffffd709b7e5480fba5a50fed5e62ffc5568101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b14610f5657886fffffffffffffffffffffffffffffffff16610f328261120b565b6fffffffffffffffffffffffffffffffff161115610f505781610f58565b80610f58565b815b9998505050505050505050565b8151610fa05781608001516fffffffffffffffffffffffffffffffff1684600001516fffffffffffffffffffffffffffffffff161015610fd1565b81608001516fffffffffffffffffffffffffffffffff1684600001516fffffffffffffffffffffffffffffffff1611155b611037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53440000000000000000000000000000000000000000000000000000000000006044820152606401610125565b60015b801561075357600080611056846020015186600001518861157d565b8551919350915061106d9088908a908890866115c3565b6110778786611663565b925082156110e85780156110ce57600061109a85602001518488600001516116fc565b92839150600282810b91900b14806110cb5785516110be908a908c908a90886115c3565b6110c88988611663565b94505b50505b82156110e8576110e58883898888602001516117dd565b95505b505061103a565b60006110f9611876565b905082600f0b60001461111a576111158585856000858761194b565b611124565b611124848261198c565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff821661114b57600080fd5b600061075386868686858761194b565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161061119557600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8087166020830152851691810191909152606081018390526080016040516020818303038152906040528051906020012090509392505050565b600060018281168114806111fd576000610316565b606085901c95945050505050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d892600283900b128015906112485750620cb14a600283900b13155b61125157600080fd5b6000808360020b12611266578260020b61126e565b8260020b6000035b9050600081600116600003611294577001000000000000000000000000000000006112a6565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156112da576ffff97272373d413259a46990580e213a0260801c5b60048216156112f9576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611318576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611337576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611356576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611375576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611394576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156113b4576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156113d4576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156113f4576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611414576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611434576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611454576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611474576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611494576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156114b5576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156114d5576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156114f4576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611511576b048a170391f7dc42444e8fa20260801c5b60008460020b131561155057807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8161154c5761154c61486b565b0490505b6801000000000000000081061561156857600161156b565b60005b60ff16604082901c0192505050919050565b600080600061158c86856119c4565b9050600061159e600286900b876119ea565b9050600285900b60081d6115b487838386611a26565b90999098509650505050505050565b60006115d88285608001518660000151611a75565b905060008060006115f4898860600151888a6020015188611af0565b60208a0151929550909350915061160f908990858585611b3c565b61162889886020015189600001518a6060015188611ba7565b6fffffffffffffffffffffffffffffffff1660608a01526020890151919450925061165890899085856000611b3c565b505050505050505050565b60008082600001516116a35782608001516fffffffffffffffffffffffffffffffff1684600001516fffffffffffffffffffffffffffffffff16116116d3565b82608001516fffffffffffffffffffffffffffffffff1684600001516fffffffffffffffffffffffffffffffff16105b9050808015610a1f57505050606001516fffffffffffffffffffffffffffffffff161515919050565b60008180156117115750600283900b627fffff145b156117205750627fffff610633565b811580156117515750600283900b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000145b1561177d57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000610633565b60008061178a8585611c29565b9150915060008061179d88858589611c6b565b91509150806117b157509250610633915050565b6117bd88858589611cda565b9092509050806117d257509250610633915050565b610299888588611d57565b60006117e885611d77565b6117f3575083610316565b6118038486856000015185611db6565b600080600061182b8660200151876000015188606001518a611e62909392919063ffffffff16565b9194509250905061183d898484611f3d565b6060860180518290036fffffffffffffffffffffffffffffffff16905285516118695760018803610f58565b5095979650505050505050565b600080547501000000000000000000000000000000000000000000900460ff16156118fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f44530000000000000000000000000000000000000000000000000000000000006044820152606401610125565b61190634611f74565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055919050565b6000600f85900b131561196a576119658685858585611f93565b610753565b6000600f85900b12156107535761075385611984866147cc565b858585611fc6565b6fffffffffffffffffffffffffffffffff8116156119c0576119c082826fffffffffffffffffffffffffffffffff16611fee565b5050565b6000806119d184846120b8565b6000908152620100076020526040902054949350505050565b6000806119f684612103565b9050600083611a06576000611a09565b60015b60ff16905080611a198386612111565b60ff160195945050505050565b6000808080611a3685888a612128565b91509150611a45888287612167565b925082611a5e57600886901b60020b60ff831601611a68565b611a68888761219a565b9350505094509492505050565b600080611a83858585612201565b9050620100026fffffffffffffffffffffffffffffffff82161015611aae5762010002915050610633565b6f0ffff5433e2b3d8211706e6102aa94726fffffffffffffffffffffffffffffffff821610610a1f57506f0ffff5433e2b3d8211706e6102aa94719050610633565b6000806000806000611b0e8a8a8a602001518b604001518b8b6122e4565b9092509050611b1e8a8389612334565b611b298282896123a7565b9450945094505050955095509592505050565b611b47858484611f3d565b8315611b79578085606001818151611b5f919061480a565b6fffffffffffffffffffffffffffffffff16905250611124565b8085604001818151611b8b919061480a565b6fffffffffffffffffffffffffffffffff169052505050505050565b6000808080611bb889878a886123ff565b90506fffffffffffffffffffffffffffffffff808716908216108015611bfc57611be58a878b8b8b61244c565b91965094509250611bf78a848861249a565b611c1c565b611c098a838b8b8b612529565b91965094509250611c1c8a848a89612563565b5050955095509592505050565b600080600083611c4357611c3e60018661489a565b611c45565b845b9050611c538160020b612628565b9250611c618160020b61263f565b9150509250929050565b6000806000620100076000611c8189898961265b565b81526020810191909152604001600090812054915080611ca2838288612128565b915091508015611cbc576000600194509450505050611cd1565b611cc78888846126b9565b6000945094505050505b94509492505050565b6000806000620100066000611cef89896126e2565b81526020019081526020016000205490506000611d0c8686612111565b9050600080611d1f8460ff851689612128565b915091508015611d3a57600060019550955050505050611cd1565b611d468a8a848a611c6b565b955095505050505094509492505050565b600081611d6d57611d6884846126f6565b610a1f565b610a1f8484612782565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000600283900b138015610099575050627fffff60029190910b1290565b600080611dc983868689608001516127cc565b60408801519193509150611def906fffffffffffffffffffffffffffffffff168361290b565b6fffffffffffffffffffffffffffffffff1660408701528015610753576000611e1e8487878a60800151612978565b6040880151909150611e42906fffffffffffffffffffffffffffffffff168261290b565b6fffffffffffffffffffffffffffffffff16604088015250505050505050565b600080600080611e7c611e7489612adf565b895189612b04565b9050806fffffffffffffffffffffffffffffffff16856fffffffffffffffffffffffffffffffff1611611f0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f42440000000000000000000000000000000000000000000000000000000000006044820152606401610125565b8515611f2857611f1c888883612b78565b93509350935050611f33565b611f1c888883612c14565b9450945094915050565b8183600001818151611f4f91906148db565b600f0b905250602083018051829190611f699083906148db565b600f0b905250505050565b806fffffffffffffffffffffffffffffffff81168114610c0d57600080fd5b8015611fba576000611fa6868686612cbe565b9050611fb486828686612d9d565b50611124565b61112485858585612df1565b8015611fe257611fd7858585612e22565b611115858484612ea1565b61112485858585612ec6565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612048576040519150601f19603f3d011682016040523d82523d6000602084013e61204d565b606091505b505090508061055e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152606401610125565b600080600283900b60081d905083816040516020016120e492919091825260f01b602082015260220190565b6040516020818303038152906040528051906020012091505092915050565b600061009961010083614929565b600081612121578260ff03610633565b5090919050565b600080612136858585612f09565b94505083158061215f57826121535761214e85612f2d565b61215c565b61215c85612fda565b91505b935093915050565b60008315612176575081610633565b600061218283826131bd565b90508061218f5783610316565b600095945050505050565b600082156121f4576121ab836131f1565b60010b8260010b146121e4576121df6121c583600161494b565b6121cf8515613227565b60ff1660089190911b60020b0190565b6121ed565b6121ed8361323d565b9050610099565b600882901b60020b6121ed565b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d892600285900b13158061223d5750620cb14a600285900b12155b15612249575081610633565b811561229c57600160008161225d8761120b565b039050846fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16106122915784612293565b805b92505050610633565b60006122a78561120b565b9050836fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16116122da57836122dc565b805b915050610633565b600080806122f489898787613274565b9050610100620f42406fffffffffffffffffffffffffffffffff831661ffff8a16020460ff8816810291909104908190039a909950975050505050505050565b600061233f84612adf565b9050806fffffffffffffffffffffffffffffffff166000036123615750505050565b835182159060009061237690849087856132b6565b9050600061238a8488600001518486613313565b905067ffffffffffffffff8116156104125761041287828561332d565b6000808085850184156123d6576123cf816fffffffffffffffffffffffffffffffff16613411565b92506123f4565b6123f1816fffffffffffffffffffffffffffffffff16613411565b93505b509195909450915050565b60008061240d868585613445565b9050846fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16116124405780612442565b845b9695505050505050565b600080600080600061245f8a8a8a61347b565b9150915060008061247284848c8c6134fb565b915091506124858c8b8b8b8f8787613532565b96509650965050505050955095509592505050565b82516fffffffffffffffffffffffffffffffff9081168183161490831615158180156124c35750805b611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f52500000000000000000000000000000000000000000000000000000000000006044820152606401610125565b600080600080600061253d8a8a8a8a6135ca565b915091506000806125508b858c8c613644565b915091506124858c8b8b8b878787613532565b6000826125885784516fffffffffffffffffffffffffffffffff8084169116116125a2565b84516fffffffffffffffffffffffffffffffff8084169116105b90506fffffffffffffffffffffffffffffffff8416158180156125c25750805b610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f52460000000000000000000000000000000000000000000000000000000000006044820152606401610125565b600061009961263a8360020b60101d90565b613663565b60006101006126518360020b60081d90565b610099919061498b565b60008061267861266a85613683565b60081b60010b60ff85160190565b9050848160405160200161269992919091825260f01b602082015260220190565b604051602081830303815290604052805190602001209150509392505050565b6000610a1f6126c785613683565b60101b60020b61ff00600886901b1660030b0160ff84160190565b6000610633836126f184613683565b6136c2565b600060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83015b60ff8160ff1610156127775760008061273a8784866000611cda565b915091508061274e57509250610099915050565b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161271e565b50610a1f600061323d565b600080600183015b60ff8116156127c1576000806127a38784866001611cda565b91509150806127b757509250610099915050565b505060010161278a565b50610a1f600161323d565b60008060006127db8787613701565b805490915060009061280e906bffffffffffffffffffffffff808216916c01000000000000000000000000900416613754565b9050856128235761281e816147cc565b612825565b805b825490945067ffffffffffffffff868116780100000000000000000000000000000000000000000000000090920416146128d557815461288b907801000000000000000000000000000000000000000000000000900467ffffffffffffffff16866149ad565b825467ffffffffffffffff9190911678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff9091161782555b856128e657815460011615156128fe565b81546c01000000000000000000000000900460011615155b9250505094509492505050565b60008082600f0b121561294257508082016fffffffffffffffffffffffffffffffff8084169082161061293d57600080fd5b610099565b826fffffffffffffffffffffffffffffffff168284019150816fffffffffffffffffffffffffffffffff16101561009957600080fd5b610dad5460009073ffffffffffffffffffffffffffffffffffffffff1661299e57600080fd5b6000806001610dac015460405160248101899052600288900b6044820152861515606482015267ffffffffffffffff8616608482015273ffffffffffffffffffffffffffffffffffffffff9091169060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3c05c6210000000000000000000000000000000000000000000000000000000017905251612a7191906149ce565b600060405180830381855af49150503d8060008114612aac576040519150601f19603f3d011682016040523d82523d6000602084013e612ab1565b606091505b509150915081612ac057600080fd5b80806020019051810190612ad491906149fd565b979650505050505050565b600080612af483602001518460600151613770565b90506106338184604001516137c5565b60008115612b245750600167ffffffffffffffff604085901c1601610633565b6000612b3385600186036137ea565b90506000612b4186866137ea565b9050808203600177ffffffffffffffffffffffffffffffffffffffffffffffff821601612b6d81611f74565b945050505050610633565b600080600060016f0ffff5433e2b3d8211706e6102aa9472036fffffffffffffffffffffffffffffffff1686600001516fffffffffffffffffffffffffffffffff161015612bda5785516001016fffffffffffffffffffffffffffffffff1686525b60009150612bf9846fffffffffffffffffffffffffffffffff16613411565b925084612c07576000612c09565b835b905093509350939050565b6000806000620100026fffffffffffffffffffffffffffffffff1686600001516fffffffffffffffffffffffffffffffff161115612c855785517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016fffffffffffffffffffffffffffffffff1686525b60009250612ca4846fffffffffffffffffffffffffffffffff16613411565b915084612cb15783612c09565b6000905093509350939050565b600080612ccb8584613833565b600081815262010010602052604090208054919250906fffffffffffffffffffffffffffffffff908116908616811115612d6057815486908390600090612d259084906fffffffffffffffffffffffffffffffff16614a20565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550612d93565b81547fffffffffffffffffffffffffffffffff00000000000000000000000000000000168255612d908187614a20565b93505b5050509392505050565b6fffffffffffffffffffffffffffffffff831615612dc657612dc184848484612df1565b612deb565b73ffffffffffffffffffffffffffffffffffffffff8216612deb57612deb848261198c565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8216612e1757612dc1848483613868565b612deb84848461390e565b6000612e2e8483613833565b6000818152620100106020526040812080549293508592909190612e659084906fffffffffffffffffffffffffffffffff1661480a565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505050565b73ffffffffffffffffffffffffffffffffffffffff821661055e5761055e838261198c565b73ffffffffffffffffffffffffffffffffffffffff8216612eec57612dc184848361392c565b612deb8285856fffffffffffffffffffffffffffffffff16613951565b600081612f1f5761ffff831684811b901c610a1f565b505061ffff1690811c901b90565b6000808211612f3b57600080fd5b7001000000000000000000000000000000008210612f5b57608091821c91015b680100000000000000008210612f7357604091821c91015b6401000000008210612f8757602091821c91015b620100008210612f9957601091821c91015b6101008210612faa57600891821c91015b60108210612fba57600491821c91015b60048210612fca57600291821c91015b60028210610c0d57600101919050565b6000808211612fe857600080fd5b5060ff6fffffffffffffffffffffffffffffffff82161561302a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001613032565b608082901c91505b67ffffffffffffffff821615613069577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001613071565b604082901c91505b63ffffffff8216156130a4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016130ac565b602082901c91505b61ffff8216156130dd577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016130e5565b601082901c91505b60ff821615613115577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80161311d565b600882901c91505b600f82161561314d577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc01613155565b600482901c91505b6003821615613185577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0161318d565b600282901c91505b6001821615610c0d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01919050565b60008060006131d1858560ff166001612128565b915060ff1691508015801561031657508360ff1682149250505092915050565b60008161321e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000610099565b617fff92915050565b600081613235576000610099565b60ff92915050565b60008161326a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000610099565b627fffff92915050565b83516000906fffffffffffffffffffffffffffffffff908116908316118161329e878787876123ff565b9050612ad46132ac88612adf565b8851838589613aba565b60006002816132c6878786612b04565b6132d09083614a49565b9050806fffffffffffffffffffffffffffffffff16856fffffffffffffffffffffffffffffffff16111561330657808503612ad4565b5060009695505050505050565b600080613321868685613bd3565b90506124428185613c26565b825161333a908383613d3c565b6fffffffffffffffffffffffffffffffff16835260608301516133679067ffffffffffffffff1683613db6565b67ffffffffffffffff9081166060850181905260009161338a9190851690613e19565b905060006133d36133ba8387604001516fffffffffffffffffffffffffffffffff16613e6190919063ffffffff16565b71ffffffffffffffffffffffffffffffffffff16611f74565b90506133df8282613e87565b856080018181516133f09190614a75565b67ffffffffffffffff16905250602085018051829190611b8b90839061480a565b60006f80000000000000000000000000000000826fffffffffffffffffffffffffffffffff161061344157600080fd5b5090565b60008061345185612adf565b90508361346c5761346781866000015185613efa565b610316565b61031681866000015185613f45565b600080600061348986612adf565b86519091506000906134af906fffffffffffffffffffffffffffffffff84169088613f45565b87519091506000906134d5906fffffffffffffffffffffffffffffffff85169089613efa565b905085156134e957909350915082826134f0565b9350915081835b505050935093915050565b60008061350a86868686613f8d565b909250905061351a6004836148db565b91506135276004826148db565b905094509492505050565b600080600080613543868b8b614030565b9050876fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16106135795760009150613586565b6135838189614a20565b91505b896135915784613593565b855b9350896135a057856135a2565b845b6fffffffffffffffffffffffffffffffff909716909a52919994985090965092945050505050565b60008060006135d887612adf565b90506135eb876000015182888888614066565b91508415613618578651613613906fffffffffffffffffffffffffffffffff83169084613efa565b613638565b8651613638906fffffffffffffffffffffffffffffffff83169084613f45565b92505094509492505050565b60008061365386868686613f8d565b90925090506135276004826148db565b6000808260000b121561367c578160000b608001610099565b5060800190565b600060808260ff16106136995760808203610099565b5060ff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800190565b600082826040516020016136e392919091825260f81b602082015260210190565b60405160208183030381529060405280519060200120905092915050565b6000620100026000848460405160200161372892919091825260e81b602082015260230190565b604051602081830303815290604052805190602001208152602001908152602001600020905092915050565b600061375f82614102565b61376884614102565b039392505050565b600066010000000000006fffffffffffffffffffffffffffffffff80851667ffffffffffffffff851683010290603082901c90811115610316576fffffffffffffffffffffffffffffffff9350505050610099565b8082016fffffffffffffffffffffffffffffffff808416908216101561009957600080fd5b60006fffffffffffffffffffffffffffffffff821677ffffffffffffffffffffffffffffffff0000000000000000604085901b168161382b5761382b61486b565b049392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff80851660208301528316918101919091526000906060016136e3565b816fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff1610156138f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f45430000000000000000000000000000000000000000000000000000000000006044820152606401610125565b60006139028383614a20565b9050612deb848261198c565b61055e818430856fffffffffffffffffffffffffffffffff1661411e565b61055e8361393a838561480a565b6fffffffffffffffffffffffffffffffff16611fee565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916139e891906149ce565b6000604051808303816000865af19150503d8060008114613a25576040519150601f19603f3d011682016040523d82523d6000602084013e613a2a565b606091505b5091509150818015613a54575080511580613a54575080806020019051810190613a549190614a96565b611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152606401610125565b6000856fffffffffffffffffffffffffffffffff16600003613ade57506000610316565b6000613aec87878515613bd3565b6fffffffffffffffffffffffffffffffff1690506000613b0d888886613bd3565b6fffffffffffffffffffffffffffffffff169050600084151586151514613b4857866fffffffffffffffffffffffffffffffff168203613b5e565b866fffffffffffffffffffffffffffffffff1682015b905080600003613b83576fffffffffffffffffffffffffffffffff9350505050610316565b6000816fffffffffffffffffffffffffffffffff8b16800281613ba857613ba861486b565b049050613bc5848211613bbd57818503611f74565b848203611f74565b9a9950505050505050505050565b6000610a1f82613c0657613be785856137ea565b77ffffffffffffffffffffffffffffffffffffffffffffffff16611f74565b6fffffffffffffffffffffffffffffffff8086169085160260401c613be7565b60006fffffffffffffffffffffffffffffffff83161580613c6a5750826fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff16115b15613c7757506000610099565b6000613c83838561480a565b90506000613ca36fffffffffffffffffffffffffffffffff83168661428f565b9050613cb88167ffffffffffffffff16614358565b925066010000000000008367ffffffffffffffff1610613d34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f49460000000000000000000000000000000000000000000000000000000000006044820152606401610125565b505092915050565b6000660100000000000067ffffffffffffffff841681018315613d7f576fffffffffffffffffffffffffffffffff86168102603081901c612b6d60018201611f74565b75ffffffffffffffffffffffffffffffff000000000000603087901b16818181613dab57613dab61486b565b049350505050610633565b6000660100000000000067ffffffffffffffff848116820181851683010290603082901c907fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000082019081106124425767ffffffffffffffff945050505050610099565b6000660100000000000067ffffffffffffffff831681016dffffffffffffffff000000000000603086901b1683828281613e5557613e5561486b565b04979650505050505050565b67ffffffffffffffff166fffffffffffffffffffffffffffffffff919091160260301c90565b6000816fffffffffffffffffffffffffffffffff16600003613eab57506000610099565b613eb682600161480a565b6fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff168467ffffffffffffffff16613ef09190614ab3565b6106339190614aca565b6000826fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff161115613f3a57613f3384838561439c565b9050610633565b613f3384848461439c565b600080826fffffffffffffffffffffffffffffffff16846fffffffffffffffffffffffffffffffff1611613f7b57838303613f7f565b8284035b905061031685826001613bd3565b60008082151584151503613fe457613fb6866fffffffffffffffffffffffffffffffff16613411565b613fd1866fffffffffffffffffffffffffffffffff16613411565b613fda906147cc565b9092509050611cd1565b613fff866fffffffffffffffffffffffffffffffff16613411565b614008906147cc565b614023866fffffffffffffffffffffffffffffffff16613411565b9097909650945050505050565b6000808215158415151461404c57614047856147cc565b61404e565b845b9050600081600f0b1215610a1f576000915050610633565b6000808361407f5761407a8787878661441b565b61408b565b61408b87878786614482565b90506f0ffff5433e2b3d8211706e6102aa94726fffffffffffffffffffffffffffffffff8216106140d9576140d160016f0ffff5433e2b3d8211706e6102aa9472614a20565b915050610316565b620100026fffffffffffffffffffffffffffffffff821610156124425762010002915050610316565b6000600a82901b6d03fffffffffffffffffffffff80016610099565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905291516000928392908816916141bd91906149ce565b6000604051808303816000865af19150503d80600081146141fa576040519150601f19603f3d011682016040523d82523d6000602084013e6141ff565b606091505b50915091508180156142295750805115806142295750808060200190518101906142299190614a96565b610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152606401610125565b600079ffffffffffffffffffffffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff84161080156142f05750816fffffffffffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff1610155b6142f957600080fd5b660100000000000075ffffffffffffffffffffffffffffffff000000000000603085901b166000826fffffffffffffffffffffffffffffffff861683816143425761434261486b565b0403905082811061031657829350505050610099565b600066010000000000008267ffffffffffffffff161061437757600080fd5b5067ffffffffffffffff8116800260331c60019190911c677fffffffffffffff160390565b6000806143a98385614a20565b905060006143b786856137ea565b77ffffffffffffffffffffffffffffffffffffffffffffffff1690506000856fffffffffffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff16836144069190614ab3565b6144109190614aca565b9050612d9081611f74565b60008061442786614573565b905060006144388287878715614482565b9050806fffffffffffffffffffffffffffffffff1660000361446e576f0ffff5433e2b3d8211706e6102aa947292505050610a1f565b61447781614573565b612ad490600161480a565b6000836fffffffffffffffffffffffffffffffff166000036144b557506fffffffffffffffffffffffffffffffff610a1f565b60006144c184866137ea565b90506fffffffffffffffffffffffffffffffff77ffffffffffffffffffffffffffffffffffffffffffffffff8216111561450e576fffffffffffffffffffffffffffffffff915050610a1f565b8083156145285761451f818861480a565b92505050610a1f565b866fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff161061455e57600092505050610a1f565b61456981600161480a565b61451f9088614a20565b600080826fffffffffffffffffffffffffffffffff16700100000000000000000000000000000000816145a8576145a861486b565b0490506fffffffffffffffffffffffffffffffff81111561009957600080fd5b73ffffffffffffffffffffffffffffffffffffffff811681146145ea57600080fd5b50565b61ffff811681146145ea57600080fd5b6000806040838503121561461057600080fd5b823561461b816145c8565b9150602083013561462b816145ed565b809150509250929050565b6000806020838503121561464957600080fd5b823567ffffffffffffffff8082111561466157600080fd5b818501915085601f83011261467557600080fd5b81358181111561468457600080fd5b86602082850101111561469657600080fd5b60209290920196919550909350505050565b80151581146145ea57600080fd5b80356fffffffffffffffffffffffffffffffff81168114610c0d57600080fd5b6000806000806000806000806000806101408b8d0312156146f657600080fd5b8a35614701816145c8565b995060208b0135614711816145c8565b985060408b0135975060608b0135614728816146a8565b965060808b0135614738816146a8565b955061474660a08c016146b6565b945060c08b0135614756816145ed565b935061476460e08c016146b6565b92506147736101008c016146b6565b91506101208b013560ff8116811461478a57600080fd5b809150509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600081600f0b7fffffffffffffffffffffffffffffffff8000000000000000000000000000000081036148015761480161479d565b60000392915050565b6fffffffffffffffffffffffffffffffff81811683821601908082111561089a5761089a61479d565b60006020828403121561484557600080fd5b8151610633816145ed565b61ffff82811682821603908082111561089a5761089a61479d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600282810b9082900b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff821317156100995761009961479d565b600f81810b9083900b016f7fffffffffffffffffffffffffffffff81137fffffffffffffffffffffffffffffffff80000000000000000000000000000000821217156100995761009961479d565b60008260020b8061493c5761493c61486b565b808360020b0791505092915050565b600181810b9083900b01617fff81137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000821217156100995761009961479d565b60008260010b8061499e5761499e61486b565b808360010b0791505092915050565b67ffffffffffffffff82811682821603908082111561089a5761089a61479d565b6000825160005b818110156149ef57602081860181015185830152016149d5565b506000920191825250919050565b600060208284031215614a0f57600080fd5b815180600f0b811461063357600080fd5b6fffffffffffffffffffffffffffffffff82811682821603908082111561089a5761089a61479d565b6fffffffffffffffffffffffffffffffff818116838216028082169190828114613d3457613d3461479d565b67ffffffffffffffff81811683821601908082111561089a5761089a61479d565b600060208284031215614aa857600080fd5b8151610633816146a8565b80820281158282048414176100995761009961479d565b600082614ad957614ad961486b565b50049056fea2646970667358221220519f355676db0a0fb99315d7e4ffbd21346d460e74741d5eae94b04913a1990864736f6c63430008130033