wemix-logo
WEMIX3.0 Explorer

Contract

0x018baf0322e56606192b3399a59178e4c6a7b1e3
Contract Name
N/A
Optimization Enabled
No
Compiler Version
N/A
EVM Version
N/A
License
N/A
Audited
No
Contract Security Audit
No contract security audit has been submitted
Submit Audit
Contract Creation Code
0x6080604052600436106101bb5760003560e01c8063715018a6116100ec578063b4f2e8b81161008a578063d06ca61f11610064578063d06ca61f146104ba578063d99a1539146104da578063f10020e2146104ed578063f2fde38b1461050057600080fd5b8063b4f2e8b814610471578063c04b8d5914610491578063c57981b5146104a457600080fd5b80638803dbee116100c65780638803dbee146103f05780638da5cb5b14610410578063918f86741461043b57806395c89bc91461045157600080fd5b8063715018a61461039b578063815aea9c146103b057806385f8c259146103d057600080fd5b80633cabe6171161015957806355da7dca1161013357806355da7dca146103405780635624e605146103535780635aec26c9146103665780635bbb4e271461038857600080fd5b80633cabe617146102fa578063414bf3891461030d578063418766471461032057600080fd5b80631f00ca74116101955780631f00ca74146102555780632855038d146102755780632d2c55651461028857806338ed1739146102da57600080fd5b8063054d50d4146101c757806306fd4ac5146101fa57806310b9ed1f1461021a57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101e76101e23660046144e2565b610520565b6040519081526020015b60405180910390f35b61020d61020836600461457c565b61054a565b6040516101f191906145e3565b34801561022657600080fd5b5061023a610235366004614627565b61064f565b604080519384526020840192909252908201526060016101f1565b34801561026157600080fd5b5061020d610270366004614662565b61066b565b61020d610283366004614662565b6107d3565b34801561029457600080fd5b506003546102b59073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f1565b3480156102e657600080fd5b5061020d6102f53660046146ae565b61088a565b61020d61030836600461457c565b61097f565b6101e761031b366004614721565b6109b5565b34801561032c57600080fd5b5061020d61033b3660046146ae565b610b1d565b6101e761034e36600461488c565b610be4565b6101e7610361366004614903565b610c67565b34801561037257600080fd5b50610386610381366004614915565b610cb6565b005b610386610396366004614995565b610dbe565b3480156103a757600080fd5b50610386610f03565b3480156103bc57600080fd5b5061020d6103cb366004614662565b610f17565b3480156103dc57600080fd5b506101e76103eb3660046144e2565b610f2c565b3480156103fc57600080fd5b5061020d61040b3660046146ae565b610f56565b34801561041c57600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff166102b5565b34801561044757600080fd5b506101e761271081565b34801561045d57600080fd5b5061020d61046c3660046146ae565b610f8c565b34801561047d57600080fd5b5061038661048c3660046149c1565b610fc2565b6101e761049f3660046149f1565b611045565b3480156104b057600080fd5b506101e760025481565b3480156104c657600080fd5b5061020d6104d5366004614662565b611150565b6103866104e8366004614995565b611430565b61023a6104fb366004614627565b611547565b34801561050c57600080fd5b5061038661051b366004614a95565b611555565b6000836126f7028361271002018285026126f7028161054157610541614ab2565b04949350505050565b6060610557348686611150565b90508581600183516105699190614b10565b8151811061057957610579614b23565b6020026020010151101561058c57600080fd5b6106076105e7868660008181106105a5576105a5614b23565b90506020020160208101906105ba9190614a95565b878760018181106105cd576105cd614b23565b90506020020160208101906105e29190614a95565b6115b9565b826000815181106105fa576105fa614b23565b6020026020010151610dbe565b610646818686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892506116b9915050565b95945050505050565b600080600061065d84611876565b9250925092505b9193909250565b60608167ffffffffffffffff81111561068657610686614734565b6040519080825280602002602001820160405280156106af578160200160208202803683370190505b50905083816001835103815181106106c9576106c9614b23565b60209081029190910101527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b80156107cb5760008061075a86866001860381811061071957610719614b23565b905060200201602081019061072e9190614a95565b87878681811061074057610740614b23565b90506020020160208101906107559190614a95565b611d57565b9150915061078284848151811061077357610773614b23565b60200260200101518383610f2c565b84600185038151811061079757610797614b23565b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016106f8565b509392505050565b60606107e0848484611150565b9050610844838360008181106107f8576107f8614b23565b905060200201602081019061080d9190614a95565b30610824868660008181106105a5576105a5614b23565b8460008151811061083757610837614b23565b6020026020010151611f16565b610883818484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506116b9915050565b9392505050565b6060610897878686611150565b90508581600183516108a99190614b10565b815181106108b9576108b9614b23565b602002602001015110156108cc57600080fd5b610936858560008181106108e2576108e2614b23565b90506020020160208101906108f79190614a95565b336108248888600081811061090e5761090e614b23565b90506020020160208101906109239190614a95565b898960018181106105cd576105cd614b23565b610975818686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508892506116b9915050565b9695505050505050565b606061098c86868661066b565b905034816000815181106109a2576109a2614b23565b6020026020010151111561058c57600080fd5b6000610aa360a08301356109cf6080850160608601614a95565b60408051808201909152806109e76020880188614a95565b6109f76060890160408a01614b65565b610a0760408a0160208b01614a95565b604051606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116602083015260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166034820152921b166037820152604b0160405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff168152506121d0565b90508160c00135811015610b18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f546f6f206c6974746c652072656365697665640000000000000000000000000060448201526064015b60405180910390fd5b919050565b6060610b2a878686611150565b9050858160018351610b3c9190614b10565b81518110610b4c57610b4c614b23565b60200260200101511015610b5f57600080fd5b610b75858560008181106108e2576108e2614b23565b610bb4818686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506116b9915050565b610975838260018451610bc79190614b10565b81518110610bd757610bd7614b23565b6020026020010151611430565b6000305b610c2d8360000151306040518060400160405280610c098860200151612315565b81526020018573ffffffffffffffffffffffffffffffffffffffff168152506121d0565b83526020830151610c3d9061233b565b15610c5c57309050610c528360200151612375565b6020840152610be8565b825191505b50919050565b6000610cb08260000135306040518060400160405280866020016020810190610c909190614a95565b610ca06080890160608a01614b65565b610a0760608a0160408b01614a95565b92915050565b6000610cc482840184614b80565b9050600080610cd6836000015161239e565b509150915060008060008913610d1b578373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161088610d4c565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610895b915091508115610d6b57610d668486602001513384611f16565b610db3565b8451610d769061233b565b15610d99578451610d8690612375565b8552610d938133876123da565b50610db3565b80600081905550829350610db38486602001513384611f16565b505050505050505050565b737d72b22a74a216af4a002a1095c8c707d6ec1c5f73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610e1a57600080fd5b505af1158015610e2e573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff831630149050610eff576040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260248101829052737d72b22a74a216af4a002a1095c8c707d6ec1c5f9063a9059cbb906044015b6020604051808303816000875af1158015610ed9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efd9190614c04565b505b5050565b610f0b612542565b610f156000612595565b565b6060610f24848484611150565b949350505050565b60008382036126f7028484026127100281610f4957610f49614ab2565b0460010190509392505050565b6060610f6387868661066b565b90508581600081518110610f7957610f79614b23565b602002602001015111156108cc57600080fd5b6060610f9987868661066b565b90508581600081518110610faf57610faf614b23565b60200260200101511115610b5f57600080fd5b610fca612542565b612710821115610fd957600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116610ff957600080fd5b600291909155600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6000335b6000611058846000015161233b565b90506110af846060015182611071578560200151611073565b305b604051806040016040528061108b8960000151612315565b81526020018673ffffffffffffffffffffffffffffffffffffffff168152506121d0565b606085015280156110cf5783513092506110c890612375565b84526110dc565b83606001519250506110e2565b50611049565b8260800151821015610c61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f546f6f206c6974746c65207265636569766564000000000000000000000000006044820152606401610b0f565b60608167ffffffffffffffff81111561116b5761116b614734565b604051908082528060200260200182016040528015611194578160200160208202803683370190505b50905083816000815181106111ab576111ab614b23565b60200260200101818152505060005b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83018110156107cb5760008060208381028701359082908190600187010289013573ffffffffffffffffffffffffffffffffffffffff80821690851610611223578084611226565b83815b60408051606084811b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009081166020808501919091529185901b166034830152825160288184030181526048830184528051908201207fff0000000000000000000000000000000000000000000000000000000000000060688401527fe1f36c7b919c9f893e2cd30b471434aa2494664a0000000000000000000000006069840152607d8301527f537d8d504e4ada480625c407dbcb60ccf75ce650821f0c58561d19e3be6f64ce609d808401919091528351808403909101815260bd9092019092528051910120919450925060009150819073ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113879190614c44565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146113e65780826113e9565b81815b80975081985050505050505050602083026020850101516126f781026127108402016126f783830202046020600186010260208701015250505080806001019150506111ba565b6040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815260048101829052737d72b22a74a216af4a002a1095c8c707d6ec1c5f90632e1a7d4d90602401600060405180830381600087803b15801561149657600080fd5b505af11580156114aa573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff82163014610eff576040805160008152602081019182905273ffffffffffffffffffffffffffffffffffffffff84169183916114fe91614cb8565b60006040518083038185875af1925050503d806000811461153b576040519150601f19603f3d011682016040523d82523d6000602084013e611540565b606091505b5050505050565b600080600061065d8461260c565b61155d612542565b73ffffffffffffffffffffffffffffffffffffffff81166115ad576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610b0f565b6115b681612595565b50565b60008060006115c88585612bf8565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b81166020808401919091529390941b9093166034840152805180840360280181526048840182528051908301207fff0000000000000000000000000000000000000000000000000000000000000060688501527fe1f36c7b919c9f893e2cd30b471434aa2494664a0000000000000000000000006069850152607d8401527f537d8d504e4ada480625c407dbcb60ccf75ce650821f0c58561d19e3be6f64ce609d808501919091528151808503909101815260bd9093019052815191012095945050505050565b60005b6001835103811015611870576000808483815181106116dd576116dd614b23565b60200260200101518584600101815181106116fa576116fa614b23565b60200260200101519150915060006117128383612bf8565b509050600087856001018151811061172c5761172c614b23565b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461177457826000611778565b6000835b91509150600060028a5103881061178f57886117b5565b6117b5868b8a600201815181106117a8576117a8614b23565b60200260200101516115b9565b90506117c187876115b9565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f19166020018201604052801561180b576020820181803683370190505b506040518563ffffffff1660e01b815260040161182b9493929190614d1e565b600060405180830381600087803b15801561184557600080fd5b505af1158015611859573d6000803e3d6000fd5b5050600190990198506116bc975050505050505050565b50505050565b6000806000611883612c43565b438460400135101561189457600080fd5b60025415611c76576000606036826118ac8880614d59565b60008181106118bd576118bd614b23565b90506020028101906118cf9190614d59565b91509150366000838360008181106118e9576118e9614b23565b90506020028101906118fb9190614dc1565b9092509050600061190f6004828486614e26565b61191891614e50565b905060607fffffffff0000000000000000000000000000000000000000000000000000000082167f2855038d00000000000000000000000000000000000000000000000000000000036119ab57611973600460008587614e26565b8c611981866024818a614e26565b604051602001611995959493929190614e98565b6040516020818303038152906040529050611a67565b7fffffffff0000000000000000000000000000000000000000000000000000000082167f5624e6050000000000000000000000000000000000000000000000000000000003611a1057611a02602460008587614e26565b8c611981866044818a614e26565b7fffffffff0000000000000000000000000000000000000000000000000000000082167f55da7dca00000000000000000000000000000000000000000000000000000000036101c257611a02602460008587614e26565b60008567ffffffffffffffff811115611a8257611a82614734565b604051908082528060200260200182016040528015611ab557816020015b6060815260200190600190039081611aa05790505b50905060005b86811015611b6e5780600003611aee5782828281518110611ade57611ade614b23565b6020026020010181905250611b66565b878782818110611b0057611b00614b23565b9050602002810190611b129190614dc1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505084518592508491508110611b5a57611b5a614b23565b60200260200101819052505b600101611abb565b506040513090611b82908390602401614ec0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4b3db4700000000000000000000000000000000000000000000000000000000017905251611c039190614cb8565b600060405180830381855afa9150503d8060008114611c3e576040519150601f19603f3d011682016040523d82523d6000602084013e611c43565b606091505b509099509750889650611c5c9550505050505057600080fd5b80806020019051810190611c709190614f42565b93505050505b60005b611c838580614d59565b9050811015611d1057366000611c998780614d59565b84818110611ca957611ca9614b23565b9050602002810190611cbb9190614d59565b91509150600080611ccc8484612cb3565b9092509050611cde60a08a018a614d59565b86818110611cee57611cee614b23565b905060200201358214611d0057600080fd5b9590950194505050600101611c79565b508360c00135821015611d2257600080fd5b60025415610664576000818311156101c2576127106002548385030281611d4b57611d4b614ab2565b0490505b509193909250565b600080600080600080611d6a8888612bf8565b60408051606084811b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009081166020808501919091529185901b166034830152825160288184030181526048830184528051908201207fff0000000000000000000000000000000000000000000000000000000000000060688401527fe1f36c7b919c9f893e2cd30b471434aa2494664a0000000000000000000000006069840152607d8301527f537d8d504e4ada480625c407dbcb60ccf75ce650821f0c58561d19e3be6f64ce609d808401919091528351808403909101815260bd9092019092528051910120919350915073ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec59190614c44565b506dffffffffffffffffffffffffffff91821695501692505073ffffffffffffffffffffffffffffffffffffffff87811690821614611f05578183611f08565b82825b909890975095505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416737d72b22a74a216af4a002a1095c8c707d6ec1c5f148015611f4f5750804710155b1561209a57737d72b22a74a216af4a002a1095c8c707d6ec1c5f73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015611fb057600080fd5b505af1158015611fc4573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff831630149050612095576040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260248101829052737d72b22a74a216af4a002a1095c8c707d6ec1c5f9063a9059cbb906044015b6020604051808303816000875af115801561206f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120939190614c04565b505b611870565b3073ffffffffffffffffffffffffffffffffffffffff84160361212f5773ffffffffffffffffffffffffffffffffffffffff82163014612095576040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905285169063a9059cbb90604401612050565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301528381166024830152604482018390528516906323b872dd906064016020604051808303816000875af11580156121ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115409190614c04565b6000806000806121e3856000015161239e565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808316908416106000806122148686866133fd565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088a858d8761225b57612256600173fffd8963efd1fc6a506488495d951d5263988d26614f66565b61226b565b61226b6401000276a36001614f9a565b8d60405160200161227c9190614fc7565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016122ab95949392919061500f565b60408051808303816000875af11580156122c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ed9190614f42565b91509150826122fc57816122fe565b805b61230790615061565b9a9950505050505050505050565b6060610cb060006014612329600382615099565b6123339190615099565b849190613520565b600061234960036014615099565b6014612356600382615099565b6123609190615099565b61236a9190615099565b825110159050919050565b6060610cb061238660036014615099565b61239260036014615099565b84516123339190614b10565b600080806123ac848261370d565b92506123b9846014613811565b90506123d16123ca60036014615099565b859061370d565b91509193909250565b6000806000806123ed856000015161239e565b9194509250905073ffffffffffffffffffffffffffffffffffffffff8084169083161060008061241e8587866133fd565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088a856124448e615061565b8761246d57612468600173fffd8963efd1fc6a506488495d951d5263988d26614f66565b61247d565b61247d6401000276a36001614f9a565b8d60405160200161248e9190614fc7565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016124bd95949392919061500f565b60408051808303816000875af11580156124db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ff9190614f42565b91509150600083612519578161251484615061565b612523565b8261252383615061565b90985090508a811461253457600080fd5b505050505050509392505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610f15576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610b0f565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000806000438460400135101561262257600080fd5b60005b61263260a0860186614d59565b905081101561266e5761264860a0860186614d59565b8281811061265857612658614b23565b6020029190910135949094019350600101612625565b506126886126826080860160608701614a95565b84613905565b60025415612a70576000606036826126a08880614d59565b60008181106126b1576126b1614b23565b90506020028101906126c39190614d59565b91509150366000838360008181106126dd576126dd614b23565b90506020028101906126ef9190614dc1565b909250905060006127036004828486614e26565b61270c91614e50565b905060607fffffffff0000000000000000000000000000000000000000000000000000000082167f2855038d000000000000000000000000000000000000000000000000000000000361279157818b6127688560248189614e26565b60405160200161277b94939291906150ac565b6040516020818303038152906040529050612861565b7fffffffff0000000000000000000000000000000000000000000000000000000082167f5624e605000000000000000000000000000000000000000000000000000000000361280a576127e8602460008587614e26565b8c6127f6866044818a614e26565b60405160200161277b959493929190614e98565b7fffffffff0000000000000000000000000000000000000000000000000000000082167f55da7dca00000000000000000000000000000000000000000000000000000000036101c2576127e8602460008587614e26565b60008567ffffffffffffffff81111561287c5761287c614734565b6040519080825280602002602001820160405280156128af57816020015b606081526020019060019003908161289a5790505b50905060005b8681101561296857806000036128e857828282815181106128d8576128d8614b23565b6020026020010181905250612960565b8787828181106128fa576128fa614b23565b905060200281019061290c9190614dc1565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250508451859250849150811061295457612954614b23565b60200260200101819052505b6001016128b5565b50604051309061297c908390602401614ec0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4b3db47000000000000000000000000000000000000000000000000000000000179052516129fd9190614cb8565b600060405180830381855af49150503d8060008114612a38576040519150601f19603f3d011682016040523d82523d6000602084013e612a3d565b606091505b509099509750889650612a569550505050505057600080fd5b80806020019051810190612a6a9190614f42565b93505050505b60005b612a7d8580614d59565b9050811015612b2d57366000612a938780614d59565b84818110612aa357612aa3614b23565b9050602002810190612ab59190614d59565b9092509050600080612ae98484612ad260808d0160608e01614a95565b612ae260a08e0160808f01614a95565b8c8c613a1b565b9092509050612afb60a08a018a614d59565b86818110612b0b57612b0b614b23565b905060200201358214612b1d57600080fd5b9590950194505050600101612a73565b508360c00135821015612b3f57600080fd5b600254600003612b7757612b72612b5c60a0860160808701614a95565b612b6c6040870160208801614a95565b846142c9565b610664565b6000818311156101c2576127106002548385030281612b9857612b98614ab2565b049050612bc6612bae60a0870160808801614a95565b612bbe6040880160208901614a95565b8386036142c9565b611d4f612bd960a0870160808801614a95565b60035473ffffffffffffffffffffffffffffffffffffffff16836142c9565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610612c35578284612c38565b83835b909590945092505050565b604051612c4f906144d5565b604051809103906000f080158015612c6b573d6000803e3d6000fd5b50600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008080805b848110156133f457366000878784818110612cd657612cd6614b23565b9050602002810190612ce89190614dc1565b90925090506000612cfc6004828486614e26565b612d0591614e50565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f2855038d0000000000000000000000000000000000000000000000000000000003612f675760008080612d618560048189614e26565b810190612d6e9190615113565b9150915086600003612e6657600480546040517f5316e5bd000000000000000000000000000000000000000000000000000000008152939b508b9360009273ffffffffffffffffffffffffffffffffffffffff90921691635316e5bd91612dd99187918791016151be565b6000604051808303816000875af1158015612df8573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612e3e9190810190615224565b905080600182510381518110612e5657612e56614b23565b6020026020010151935050612f49565b600480546040517f5316e5bd00000000000000000000000000000000000000000000000000000000815260009273ffffffffffffffffffffffffffffffffffffffff90921691635316e5bd91612ec0918d918791016151be565b6000604051808303816000875af1158015612edf573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612f259190810190615224565b905080600182510381518110612f3d57612f3d614b23565b60200260200101519350505b5050888503600101612f5d57809650612f61565b8095505b506133e9565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f5624e60500000000000000000000000000000000000000000000000000000000036131f457600080612fc08460048188614e26565b810190612fcd91906152aa565b9050856000036130e1578051600480546040805160a08101825260208087015173ffffffffffffffffffffffffffffffffffffffff908116835283880151811691830191825287518385019081526060808a015162ffffff90811691860191825260006080870190815296517fc6a5026a000000000000000000000000000000000000000000000000000000008152955184169886019890985292518216602485015251604484015290519094166064820152905183166084820152929b50169063c6a5026a9060a40160408051808303816000875af11580156130b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d99190615324565b5091506131e1565b600480546040805160a08101825260208581015173ffffffffffffffffffffffffffffffffffffffff90811683528684015181169183019182528284018d815260608089015162ffffff90811691860191825260006080870190815296517fc6a5026a00000000000000000000000000000000000000000000000000000000815295518416988601989098529251821660248501525160448401529051909416606482015290518316608482015291169063c6a5026a9060a40160408051808303816000875af11580156131b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131dd9190615324565b5091505b50888503600101612f5d57809650612f61565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f55da7dca00000000000000000000000000000000000000000000000000000000036101c25760008061324d8460048188614e26565b81019061325a919061488c565b9050856000036133295780516004805460208401516040517fcdca1753000000000000000000000000000000000000000000000000000000008152939c5073ffffffffffffffffffffffffffffffffffffffff9091169263cdca1753926132c492918e9101615349565b6000604051808303816000875af11580156132e3573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526130d9919081019061536b565b6004805460208301516040517fcdca175300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9092169263cdca17539261338492918c9101615349565b6000604051808303816000875af11580156133a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526131dd919081019061536b565b505050600101612cb9565b50509250929050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115613437579192915b506040805173ffffffffffffffffffffffffffffffffffffffff948516602080830191909152939094168482015262ffffff91909116606080850191909152815180850390910181526080840182528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a08501527f8eff28b531b731814e4e4fffa0f7bd0fc50f370f00000000000000000000000060a185015260b58401527fca48321e8cb140e37a7d7ce66e055e7927429b4343c8fd9fb0dccadc72829bd560d5808501919091528151808503909101815260f59093019052815191012090565b60608161352e81601f615099565b1015613596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610b0f565b826135a18382615099565b1015613609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610b0f565b6136138284615099565b8451101561367d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610b0f565b60608215801561369c5760405191506000825260208201604052613704565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156136d55780518352602092830192016136bd565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b60008161371b816014615099565b1015613783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f7700000000000000000000000000006044820152606401610b0f565b61378e826014615099565b835110156137f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e647300000000000000000000006044820152606401610b0f565b5001602001516c01000000000000000000000000900490565b60008161381f816003615099565b1015613887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f770000000000000000000000000000006044820152606401610b0f565b613892826003615099565b835110156138fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e64730000000000000000000000006044820152606401610b0f565b50016003015190565b73ffffffffffffffffffffffffffffffffffffffff8216737d72b22a74a216af4a002a1095c8c707d6ec1c5f14801561393e5750804710155b156139bc57737d72b22a74a216af4a002a1095c8c707d6ec1c5f73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561399f57600080fd5b505af11580156139b3573d6000803e3d6000fd5b50505050505050565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810182905273ffffffffffffffffffffffffffffffffffffffff8316906323b872dd90606401610eba565b60008060005b878110156142bd573660008a8a84818110613a3e57613a3e614b23565b9050602002810190613a509190614dc1565b90925090506000613a646004828486614e26565b613a6d91614e50565b9050600060607fffffffff0000000000000000000000000000000000000000000000000000000083167f2855038d0000000000000000000000000000000000000000000000000000000003613e275785600003613b3a57613ad18460048188614e26565b613ada91615402565b6040519098503090613aef908790879061543e565b600060405180830381855af49150503d8060008114613b2a576040519150601f19603f3d011682016040523d82523d6000602084013e613b2f565b606091505b509092509050613dd4565b600080613b4a866004818a614e26565b810190613b579190615113565b91505080600081518110613b6d57613b6d614b23565b60209081029190910101516040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529092506000915073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015613be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0d919061544e565b90508d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613cea5730858d8303613c54896024818d614e26565b604051602001613c6794939291906150ac565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052613c9f91614cb8565b600060405180830381855af49150503d8060008114613cda576040519150601f19603f3d011682016040523d82523d6000602084013e613cdf565b606091505b509094509250613dd1565b8c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613d2f5730858c8303613c54896024818d614e26565b308582613d3f896024818d614e26565b604051602001613d5294939291906150ac565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052613d8a91614cb8565b600060405180830381855af49150503d8060008114613dc5576040519150601f19603f3d011682016040523d82523d6000602084013e613dca565b606091505b5090945092505b50505b81613dde57600080fd5b8c8603600101613e2257600081806020019051810190613dfe9190615224565b905080600182510381518110613e1657613e16614b23565b60200260200101519750505b6142ac565b7fffffffff0000000000000000000000000000000000000000000000000000000083167f5624e60500000000000000000000000000000000000000000000000000000000036141c75785600003613eee57613e858460248188614e26565b613e8e91615402565b6040519098503090613ea3908790879061543e565b600060405180830381855af49150503d8060008114613ede576040519150601f19603f3d011682016040523d82523d6000602084013e613ee3565b606091505b509092509050614195565b600080613efe866004818a614e26565b810190613f0b91906152aa565b602001516040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529092506000915073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906024015b602060405180830381865afa158015613f81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fa5919061544e565b90508d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036140905730613fe960246000898b614e26565b8e8403613ff98a6044818e614e26565b60405160200161400d959493929190614e98565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261404591614cb8565b600060405180830381855af49150503d8060008114614080576040519150601f19603f3d011682016040523d82523d6000602084013e614085565b606091505b509094509250614192565b8c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036140e257306140d260246000898b614e26565b8d8403613ff98a6044818e614e26565b306140f160246000898b614e26565b836140ff8a6044818e614e26565b604051602001614113959493929190614e98565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261414b91614cb8565b600060405180830381855af49150503d8060008114614186576040519150601f19603f3d011682016040523d82523d6000602084013e61418b565b606091505b5090945092505b50505b8161419f57600080fd5b8c8603600101613e22576000818060200190518101906141bf919061544e565b9750506142ac565b7fffffffff0000000000000000000000000000000000000000000000000000000083167f55da7dca00000000000000000000000000000000000000000000000000000000036101c2578560000361422557613e858460248188614e26565b600080614235866004818a614e26565b810190614242919061488c565b9050614251816020015161239e565b50506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529092506000915073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401613f64565b505060019093019250613a21915050565b50965096945050505050565b7fffffffffffffffffffffffff828d4dd58b5de950b5ffd5ef6a3738f82913e3a173ffffffffffffffffffffffffffffffffffffffff84160161441f576040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815260048101829052737d72b22a74a216af4a002a1095c8c707d6ec1c5f90632e1a7d4d90602401600060405180830381600087803b15801561436c57600080fd5b505af1158015614380573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff8216301461441a576040805160008152602081019182905273ffffffffffffffffffffffffffffffffffffffff84169183916143d491614cb8565b60006040518083038185875af1925050503d8060008114614411576040519150601f19603f3d011682016040523d82523d6000602084013e614416565b606091505b5050505b610efd565b73ffffffffffffffffffffffffffffffffffffffff82163014610efd576040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156144b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118709190614c04565b611cfb8061546883390190565b6000806000606084860312156144f757600080fd5b505081359360208301359350604090920135919050565b60008083601f84011261452057600080fd5b50813567ffffffffffffffff81111561453857600080fd5b6020830191508360208260051b850101111561455357600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff811681146115b657600080fd5b60008060008060006080868803121561459457600080fd5b85359450602086013567ffffffffffffffff8111156145b257600080fd5b6145be8882890161450e565b90955093505060408601356145d28161455a565b949793965091946060013592915050565b6020808252825182820181905260009190848201906040850190845b8181101561461b578351835292840192918401916001016145ff565b50909695505050505050565b60006020828403121561463957600080fd5b813567ffffffffffffffff81111561465057600080fd5b820160e0818503121561088357600080fd5b60008060006040848603121561467757600080fd5b83359250602084013567ffffffffffffffff81111561469557600080fd5b6146a18682870161450e565b9497909650939450505050565b60008060008060008060a087890312156146c757600080fd5b8635955060208701359450604087013567ffffffffffffffff8111156146ec57600080fd5b6146f889828a0161450e565b909550935050606087013561470c8161455a565b80925050608087013590509295509295509295565b60006101008284031215610c6157600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561478657614786614734565b60405290565b60405160a0810167ffffffffffffffff8111828210171561478657614786614734565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156147f6576147f6614734565b604052919050565b600082601f83011261480f57600080fd5b813567ffffffffffffffff81111561482957614829614734565b61485a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016147af565b81815284602083860101111561486f57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561489e57600080fd5b813567ffffffffffffffff808211156148b657600080fd5b90830190604082860312156148ca57600080fd5b6148d2614763565b823581526020830135828111156148e857600080fd5b6148f4878286016147fe565b60208301525095945050505050565b600060808284031215610c6157600080fd5b6000806000806060858703121561492b57600080fd5b8435935060208501359250604085013567ffffffffffffffff8082111561495157600080fd5b818701915087601f83011261496557600080fd5b81358181111561497457600080fd5b88602082850101111561498657600080fd5b95989497505060200194505050565b600080604083850312156149a857600080fd5b82356149b38161455a565b946020939093013593505050565b600080604083850312156149d457600080fd5b8235915060208301356149e68161455a565b809150509250929050565b600060208284031215614a0357600080fd5b813567ffffffffffffffff80821115614a1b57600080fd5b9083019060a08286031215614a2f57600080fd5b614a3761478c565b823582811115614a4657600080fd5b614a52878286016147fe565b82525060208301359150614a658261455a565b81602082015260408301356040820152606083013560608201526080830135608082015280935050505092915050565b600060208284031215614aa757600080fd5b81356108838161455a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610cb057610cb0614ae1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b803562ffffff81168114610b1857600080fd5b600060208284031215614b7757600080fd5b61088382614b52565b600060208284031215614b9257600080fd5b813567ffffffffffffffff80821115614baa57600080fd5b9083019060408286031215614bbe57600080fd5b614bc6614763565b823582811115614bd557600080fd5b614be1878286016147fe565b82525060208301359250614bf48361455a565b6020810192909252509392505050565b600060208284031215614c1657600080fd5b8151801515811461088357600080fd5b80516dffffffffffffffffffffffffffff81168114610b1857600080fd5b600080600060608486031215614c5957600080fd5b614c6284614c26565b9250614c7060208501614c26565b9150604084015163ffffffff81168114614c8957600080fd5b809150509250925092565b60005b83811015614caf578181015183820152602001614c97565b50506000910152565b60008251614cca818460208701614c94565b9190910192915050565b60008151808452614cec816020860160208601614c94565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b84815283602082015273ffffffffffffffffffffffffffffffffffffffff831660408201526080606082015260006109756080830184614cd4565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614d8e57600080fd5b83018035915067ffffffffffffffff821115614da957600080fd5b6020019150600581901b360382131561455357600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614df657600080fd5b83018035915067ffffffffffffffff821115614e1157600080fd5b60200191503681900382131561455357600080fd5b60008085851115614e3657600080fd5b83861115614e4357600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015614e905780818660040360031b1b83161692505b505092915050565b8486823760008582018581528385602083013760009301602001928352509095945050505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015614f35577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614f23858351614cd4565b94509285019290850190600101614ee9565b5092979650505050505050565b60008060408385031215614f5557600080fd5b505080516020909101519092909150565b73ffffffffffffffffffffffffffffffffffffffff828116828216039080821115614f9357614f93614ae1565b5092915050565b73ffffffffffffffffffffffffffffffffffffffff818116838216019080821115614f9357614f93614ae1565b602081526000825160406020840152614fe36060840182614cd4565b905073ffffffffffffffffffffffffffffffffffffffff60208501511660408401528091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a0608083015261505660a0830184614cd4565b979650505050505050565b60007f8000000000000000000000000000000000000000000000000000000000000000820361509257615092614ae1565b5060000390565b80820180821115610cb057610cb0614ae1565b7fffffffff000000000000000000000000000000000000000000000000000000008516815283600482015281836024830137600091016024019081529392505050565b600067ffffffffffffffff82111561510957615109614734565b5060051b60200190565b6000806040838503121561512657600080fd5b8235915060208084013567ffffffffffffffff81111561514557600080fd5b8401601f8101861361515657600080fd5b8035615169615164826150ef565b6147af565b81815260059190911b8201830190838101908883111561518857600080fd5b928401925b828410156151af5783356151a08161455a565b8252928401929084019061518d565b80955050505050509250929050565b60006040820184835260206040602085015281855180845260608601915060208701935060005b8181101561521757845173ffffffffffffffffffffffffffffffffffffffff16835293830193918301916001016151e5565b5090979650505050505050565b6000602080838503121561523757600080fd5b825167ffffffffffffffff81111561524e57600080fd5b8301601f8101851361525f57600080fd5b805161526d615164826150ef565b81815260059190911b8201830190838101908783111561528c57600080fd5b928401925b8284101561505657835182529284019290840190615291565b6000608082840312156152bc57600080fd5b6040516080810181811067ffffffffffffffff821117156152df576152df614734565b6040528235815260208301356152f48161455a565b602082015260408301356153078161455a565b604082015261531860608401614b52565b60608201529392505050565b6000806040838503121561533757600080fd5b8251915060208301516149e68161455a565b60408152600061535c6040830185614cd4565b90508260208301529392505050565b6000806040838503121561537e57600080fd5b8251915060208084015167ffffffffffffffff81111561539d57600080fd5b8401601f810186136153ae57600080fd5b80516153bc615164826150ef565b81815260059190911b820183019083810190888311156153db57600080fd5b928401925b828410156151af5783516153f38161455a565b825292840192908401906153e0565b80356020831015610cb0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b8183823760009101908152919050565b60006020828403121561546057600080fd5b505191905056fe608060405234801561001057600080fd5b50611cdb806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80635316e5bd14610046578063c6a5026a1461006f578063cdca1753146100ac575b600080fd5b610059610054366004611682565b6100cd565b6040516100669190611740565b60405180910390f35b61008261007d366004611784565b6103ad565b6040805192835273ffffffffffffffffffffffffffffffffffffffff909116602083015201610066565b6100bf6100ba36600461181b565b61083a565b6040516100669291906118d3565b6060600282511015610140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f494e56414c49445f50415448000000000000000000000000000000000000000060448201526064015b60405180910390fd5b815167ffffffffffffffff81111561015a5761015a6115df565b604051908082528060200260200182016040528015610183578160200160208202803683370190505b509050828160008151811061019a5761019a611939565b60200260200101818152505060005b60018351038110156103a6576000806101f78584815181106101cd576101cd611939565b60200260200101518685600101815181106101ea576101ea611939565b60200260200101516109bb565b9150915061021f84848151811061021057610210611939565b60200260200101518383610b24565b84846001018151811061023457610234611939565b602002602001018181525050600061028186858151811061025757610257611939565b602002602001015187866001018151811061027457610274611939565b6020026020010151610c53565b50905060006102c587868151811061029b5761029b611939565b60200260200101518887600101815181106102b8576102b8611939565b6020026020010151610daa565b73ffffffffffffffffffffffffffffffffffffffff80821660009081526020819052604090208951929350919084169089908890811061030757610307611939565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361036557805489018155865187906001880190811061034757610347611939565b60200260200101518160010160008282540392505081905550610395565b86866001018151811061037a5761037a611939565b602090810291909101015181540381556001810180548a0190555b5050600190930192506101a9915050565b5092915050565b60208101518151606083015160009283928392839273ffffffffffffffffffffffffffffffffffffffff808216908416109284926103eb9290610eaa565b9050600060405180608001604052808415158152602001600015158152602001896060015162ffffff168152602001896080015173ffffffffffffffffffffffffffffffffffffffff1660001461044657896080015161047f565b8461046f5761046a600173fffd8963efd1fc6a506488495d951d5263988d26611997565b61047f565b61047f6401000276a360016119c4565b73ffffffffffffffffffffffffffffffffffffffff908116909152831660009081526001602081905260409091209081015491925090700100000000000000000000000000000000900460ff166105bc576104d983610edc565b600184018054855473ffffffffffffffffffffffffffffffffffffffff9095167fffffffffffffffffffffffff000000000000000000000000000000000000000062ffffff9095167401000000000000000000000000000000000000000002949094167fffffffffffffffffff0000000000000000000000000000000000000000000000909516949094179290921784557fffffffffffffffffffffffffffffff00000000000000000000000000000000009092166fffffffffffffffffffffffffffffffff909216919091177001000000000000000000000000000000001790555b8054600182015460408b015173daa1d5358203a6c9d24f68f5835b9de5c92f2499926325adbf0492879273ffffffffffffffffffffffffffffffffffffffff83169274010000000000000000000000000000000000000000900460020b916fffffffffffffffffffffffffffffffff169061063690610ff1565b604080517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b16815273ffffffffffffffffffffffffffffffffffffffff9687166004820152948616602486015260029390930b60448501526fffffffffffffffffffffffffffffffff909116606484015260848301528651151560a48301526020870151151560c483015286015162ffffff1660e482015260608601519091166101048201526101240160a060405180830381865af4158015610702573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107269190611a28565b6001860180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905584547fffffffffffffffffff0000000000000000000000000000000000000000000000167401000000000000000000000000000000000000000062ffffff92909216919091027fffffffffffffffffffffffff0000000000000000000000000000000000000000161773ffffffffffffffffffffffffffffffffffffffff919091161783559096509450600086136108095761080486611a81565b610812565b61081285611a81565b9054909973ffffffffffffffffffffffffffffffffffffffff90911698509650505050505050565b6000606061084784611023565b67ffffffffffffffff81111561085f5761085f6115df565b604051908082528060200260200182016040528015610888578160200160208202803683370190505b50905060005b600080600061089c8861104f565b92509250925060008061091c6040518060a001604052808773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018562ffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152506103ad565b915091508087878151811061093357610933611939565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050819850858061097b90611ab9565b9650506109878a61108b565b1561099c576109958a6110c5565b99506109aa565b8897505050505050506109b4565b505050505061088e565b9250929050565b60008060006109ca8585610c53565b50905060006109d98686610daa565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040902060028101549192509060ff16610acf576000808373ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190611b0f565b506dffffffffffffffffffffffffffff9182168555166001808501919091556002840180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909117905550505b8273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614610b0e5760018101548154610b16565b805460018201545b909890975095505050505050565b6000808411610b8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f494e53554646494349454e545f494e5055545f414d4f554e54000000000000006044820152606401610137565b600083118015610b9f5750600082115b610c05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f494e53554646494349454e545f4c4951554944495459000000000000000000006044820152606401610137565b6000610c13856126f7611b5f565b90506000610c218483611b5f565b9050600082610c3287612710611b5f565b610c3c9190611b76565b9050610c488183611b89565b979650505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ceb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4944454e544943414c5f414444524553534553000000000000000000000000006044820152606401610137565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610d25578284610d28565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff82166109b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f4144445245535300000000000000000000000000000000000000006044820152606401610137565b6000806000610db98585610c53565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b81166020808401919091529390941b9093166034840152805180840360280181526048840182528051908301207fff0000000000000000000000000000000000000000000000000000000000000060688501527fe1f36c7b919c9f893e2cd30b471434aa2494664a0000000000000000000000006069850152607d8401527f537d8d504e4ada480625c407dbcb60ccf75ce650821f0c58561d19e3be6f64ce609d808501919091528151808503909101815260bd9093019052815191012095945050505050565b6000610ed4738eff28b531b731814e4e4fffa0f7bd0fc50f370f610ecf8686866110f6565b611188565b949350505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f509190611bd6565b5050604080517f1a68650200000000000000000000000000000000000000000000000000000000815290519598509396505073ffffffffffffffffffffffffffffffffffffffff881693631a686502936004808201945060209350908290030181865afa158015610fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe99190611c70565b929491935050565b60007f8000000000000000000000000000000000000000000000000000000000000000821061101f57600080fd5b5090565b600061103160036014611b76565b6014835161103f9190611c92565b6110499190611b89565b92915050565b6000808061105d84826112e1565b925061106a846014611371565b905061108261107b60036014611b76565b85906112e1565b91509193909250565b600061109960036014611b76565b60146110a6600382611b76565b6110b09190611b76565b6110ba9190611b76565b825110159050919050565b60606110496110d660036014611b76565b6110e260036014611b76565b84516110ee9190611c92565b849190611465565b60408051606081018252600080825260208201819052918101919091528273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16111561114b579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff16106111ca57600080fd5b8151602080840151604080860151815173ffffffffffffffffffffffffffffffffffffffff95861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201207fff0000000000000000000000000000000000000000000000000000000000000060a08401529085901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201527fca48321e8cb140e37a7d7ce66e055e7927429b4343c8fd9fb0dccadc72829bd560d582015260f501604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209392505050565b60006112ee826014611b76565b83511015611358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e647300000000000000000000006044820152606401610137565b5001602001516c01000000000000000000000000900490565b60008161137f816003611b76565b10156113e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f770000000000000000000000000000006044820152606401610137565b6113f2826003611b76565b8351101561145c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e64730000000000000000000000006044820152606401610137565b50016003015190565b60608161147381601f611b76565b10156114db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610137565b6114e58284611b76565b8451101561154f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610137565b60608215801561156e57604051915060008252602082016040526115d6565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156115a757805183526020928301920161158f565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611655576116556115df565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461167f57600080fd5b50565b6000806040838503121561169557600080fd5b8235915060208084013567ffffffffffffffff808211156116b557600080fd5b818601915086601f8301126116c957600080fd5b8135818111156116db576116db6115df565b8060051b91506116ec84830161160e565b818152918301840191848101908984111561170657600080fd5b938501935b8385101561173057843592506117208361165d565b828252938501939085019061170b565b8096505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b818110156117785783518352928401929184019160010161175c565b50909695505050505050565b600060a0828403121561179657600080fd5b60405160a0810181811067ffffffffffffffff821117156117b9576117b96115df565b60405282356117c78161165d565b815260208301356117d78161165d565b602082015260408381013590820152606083013562ffffff811681146117fc57600080fd5b6060820152608083013561180f8161165d565b60808201529392505050565b6000806040838503121561182e57600080fd5b823567ffffffffffffffff8082111561184657600080fd5b818501915085601f83011261185a57600080fd5b813560208282111561186e5761186e6115df565b61189e817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160161160e565b925081835287818386010111156118b457600080fd5b8181850182850137600091830181019190915290969401359450505050565b60006040820184835260206040602085015281855180845260608601915060208701935060005b8181101561192c57845173ffffffffffffffffffffffffffffffffffffffff16835293830193918301916001016118fa565b5090979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff8281168282160390808211156103a6576103a6611968565b73ffffffffffffffffffffffffffffffffffffffff8181168382160190808211156103a6576103a6611968565b8051600281900b8114611a0357600080fd5b919050565b80516fffffffffffffffffffffffffffffffff81168114611a0357600080fd5b600080600080600060a08688031215611a4057600080fd5b85519450602086015193506040860151611a598161165d565b9250611a67606087016119f1565b9150611a7560808701611a08565b90509295509295909350565b60007f80000000000000000000000000000000000000000000000000000000000000008203611ab257611ab2611968565b5060000390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611aea57611aea611968565b5060010190565b80516dffffffffffffffffffffffffffff81168114611a0357600080fd5b600080600060608486031215611b2457600080fd5b611b2d84611af1565b9250611b3b60208501611af1565b9150604084015163ffffffff81168114611b5457600080fd5b809150509250925092565b808202811582820484141761104957611049611968565b8082018082111561104957611049611968565b600082611bbf577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b805161ffff81168114611a0357600080fd5b600080600080600080600060e0888a031215611bf157600080fd5b8751611bfc8161165d565b9650611c0a602089016119f1565b9550611c1860408901611bc4565b9450611c2660608901611bc4565b9350611c3460808901611bc4565b925060a088015160ff81168114611c4a57600080fd5b60c08901519092508015158114611c6057600080fd5b8091505092959891949750929550565b600060208284031215611c8257600080fd5b611c8b82611a08565b9392505050565b818103818111156110495761104961196856fea2646970667358221220a461a9531d3d95d8ae91df05fa0957dc4c5a6d3fcaece8e1163e3d26d67618a364736f6c63430008170033a2646970667358221220939d5aa4dd763219e6e58f7ae1f59890ad2faaa5785bb9b748f3d6164e7e034a64736f6c63430008170033