Safescan
BaseBase
Executed

0x510c6907efe7ab2d5045da01a580c806ed5d2e2d8768b5559bec8465cf4bdac8

Safe Transaction on 0x82bf...e7a1

Overview

To
0x9641...02e2
Value
0 ETH
Execution Date
Apr 22, 2025, 07:04 PM
Threshold
3 signatures required

Gas & Technical Details

Nonce3
Operation
DelegateCall
Safe Tx Gas0
Base Gas0
Gas Price0
Gas TokenNative
Refund ReceiverNone
Executor0x5C7a...2FC3

Transaction Data

0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000001af6800000000000000b361194cfe6312ee3210d53c15aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000646112e8ac00000000000000000000000082bf455e9ebd6a541ef10b683de1edcaf05ce7a182bf455e9ebd6a541ef10b683de1edcaf05ce7a15dce6e2429d452004d592140000000000000000000000000000000000000000000000000000000000000000000000000000000b361194cfe6312ee3210d53c15aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051c461ff715f82bf455e9ebd6a541ef10b683de1edcaf05ce7a15dce6e2429d452004d59214000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000005154610160604052348015610010575f5ffd5b5060405161507438038061507483398101604081905261002f91610055565b60809690965260a09490945260c09290925260e0526101005261012052610140526100a4565b5f5f5f5f5f5f5f60e0888a03121561006b575f5ffd5b5050855160208701516040880151606089015160808a015160a08b015160c0909b0151949c939b50919990985090965094509092509050565b60805160a05160c05160e051610100516101205161014051614f1d6101575f395f61204101525f818161417e015281816141d101528181614285015281816142fc015261432301525f8181614150015281816141b0015281816141f30152818161423201526142db01525f61261901525f818161425f015281816142b301528181614345015261437501525f61411c01525f818161190101528181611cdd0152818161247b0152612b150152614f1d5ff3fe60806040526004361061025d575f3560e01c806374a8f1031161014b578063c63d75b6116100c6578063dd62ed3e1161007c578063ef8b30f711610062578063ef8b30f714610739578063fb29238b14610758578063fc380c2214610787575f5ffd5b8063dd62ed3e146106e4578063e81c10541461071a575f5ffd5b8063ce96cb77116100ac578063ce96cb7714610687578063d8ba510c146106a6578063d905777e146106c5575f5ffd5b8063c63d75b614610649578063c6e6f59214610668575f5ffd5b8063a9059cbb1161011b578063b3d7f6b911610101578063b3d7f6b9146105ec578063b460af941461060b578063ba0876521461062a575f5ffd5b8063a9059cbb146105ad578063ac9650d8146105cc575f5ffd5b806374a8f1031461053c578063795a1f0d1461055b57806394bf804d1461057a57806395d89b4114610599575f5ffd5b806323b872dd116101db578063402d267d116101ab5780635c19a95c116101915780635c19a95c146104d35780636e553f65146104f257806370a0823114610511575f5ffd5b8063402d267d146104885780634cdad506146104b4575f5ffd5b806323b872dd146103ee578063313ce5671461040d57806338d52e0f146104335780633bec831b14610467575f5ffd5b8063095ea7b3116102305780630a28a477116102165780630a28a4771461036f5780630ebd39061461038e57806318160ddd146103da575f5ffd5b8063095ea7b31461032157806309e0851014610350575f5ffd5b806301e1d1141461026157806306fdde03146102af57806307a2d13a146102d0578063083953d9146102ef575b5f5ffd5b34801561026c575f5ffd5b5060075470010000000000000000000000000000000081046fffffffffffffffffffffffffffffffff9081169116015b6040519081526020015b60405180910390f35b3480156102ba575f5ffd5b506102c36107a6565b6040516102a691906143ee565b3480156102db575f5ffd5b5061029c6102ea366004614400565b6108eb565b3480156102fa575f5ffd5b5061030e61030936600461444c565b610931565b604051600f9190910b81526020016102a6565b34801561032c575f5ffd5b5061034061033b3660046144af565b610ade565b60405190151581526020016102a6565b34801561035b575f5ffd5b5061029c61036a3660046145ae565b610b56565b34801561037a575f5ffd5b5061029c610389366004614400565b610c1a565b348015610399575f5ffd5b506103ad6103a83660046146e6565b610c5d565b6040805163ffffffff90931683526fffffffffffffffffffffffffffffffff9091166020830152016102a6565b3480156103e5575f5ffd5b5061029c5f5481565b3480156103f9575f5ffd5b5061034061040836600461473d565b610e10565b348015610418575f5ffd5b50610421610eec565b60405160ff90911681526020016102a6565b34801561043e575f5ffd5b5060035460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102a6565b348015610472575f5ffd5b5061048661048136600461473d565b610f92565b005b348015610493575f5ffd5b5061029c6104a236600461477b565b506cffffffffffffffffffffffffff90565b3480156104bf575f5ffd5b5061029c6104ce366004614400565b611013565b3480156104de575f5ffd5b506104866104ed36600461477b565b61101d565b3480156104fd575f5ffd5b5061029c61050c366004614796565b6110c9565b34801561051c575f5ffd5b5061029c61052b36600461477b565b60016020525f908152604090205481565b348015610547575f5ffd5b5061048661055636600461477b565b611225565b348015610566575f5ffd5b5061029c610575366004614805565b6112c9565b348015610585575f5ffd5b5061029c610594366004614796565b6114f4565b3480156105a4575f5ffd5b506102c3611641565b3480156105b8575f5ffd5b506103406105c73660046144af565b6116df565b6105df6105da366004614873565b6117b0565b6040516102a691906148b2565b3480156105f7575f5ffd5b5061029c610606366004614400565b6118be565b348015610616575f5ffd5b5061029c610625366004614933565b611934565b348015610635575f5ffd5b5061029c610644366004614933565b611b0b565b348015610654575f5ffd5b5061029c61066336600461477b565b611cd7565b348015610673575f5ffd5b5061029c610682366004614400565b611d29565b348015610692575f5ffd5b5061029c6106a136600461477b565b611d69565b3480156106b1575f5ffd5b506104866106c0366004614972565b611e76565b3480156106d0575f5ffd5b5061029c6106df36600461477b565b6120aa565b3480156106ef575f5ffd5b5061029c6106fe3660046149e4565b600260209081525f928352604080842090915290825290205481565b348015610725575f5ffd5b5061048661073436600461473d565b612146565b348015610744575f5ffd5b5061029c610753366004614400565b612475565b348015610763575f5ffd5b5061076c6124df565b604080519384526020840192909252908201526060016102a6565b348015610792575f5ffd5b5061029c6107a1366004614a10565b61251c565b60048054600554600854604080518082018252600781527f504f50542d563100000000000000000000000000000000000000000000000000602082015290517f82f4055100000000000000000000000000000000000000000000000000000000815260609573000000000001a911be5b2c386cc5807219f10ebe956382f40551956108879573ffffffffffffffffffffffffffffffffffffffff92831695928216947401000000000000000000000000000000000000000090920460ff169370010000000000000000000000000000000090910462ffffff16929101614a61565b5f60405180830381865af41580156108a1573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526108e69190810190614abe565b905090565b5f61092b826109246007546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204160190565b5f546126e2565b92915050565b6006545f9073ffffffffffffffffffffffffffffffffffffffff163314610984576040517f2dd1912a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600754600f84810b6fffffffffffffffffffffffffffffffff9092168290039184820b87890390920b9003035f811315610a0a575f6109f8825f546109f36007546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204160190565b6127ab565b9050610a048982612806565b50610a2c565b5f811215610a2c575f610a1e825f03611d29565b9050610a2a8982612897565b505b610a3a84600f0b8301612922565b600780547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9283161790819055610a9f91898903600f0b7001000000000000000000000000000000009092041603612922565b600780546fffffffffffffffffffffffffffffffff92831670010000000000000000000000000000000002921691909117905591505095945050505050565b335f81815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b459086815260200190565b60405180910390a350600192915050565b5f610c105f855111610b68575f610b8e565b610b8e836fffffffffffffffffffffffffffffffff16610b888888612973565b01612922565b73ffffffffffffffffffffffffffffffffffffffff88165f90815260016020526040902054610bd4906fffffffffffffffffffffffffffffffff871690610b88906108eb565b6fffffffffffffffffffffffffffffffff169060801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000160190565b9695505050505050565b5f8054610c5683826109f36007546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204160190565b9392505050565b6006545f90819073ffffffffffffffffffffffffffffffffffffffff163314610cb2576040517f2dd1912a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600754600f85900b6fffffffffffffffffffffffffffffffff909116035f80610cdd89898989612ab8565b915091505f821315610d36575f610d24835f546109f36007546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204160190565b9050610d308b82612806565b50610d58565b5f821215610d58575f610d4a835f03611d29565b9050610d568b82612897565b505b610d6183612922565b600780547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9283161790819055610dc6918b8b03600f0b7001000000000000000000000000000000009092041601612922565b600780546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055610e01612b6a565b9a909950975050505050505050565b6006546040517fc79ee60d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f92169063c79ee60d90602401602060405180830381865afa158015610e7e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea29190614b70565b15610ed9576040517f2501f81e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ee4848484612be0565b949350505050565b6003546040517fc2711c7f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911660048201525f9073000000000001a911be5b2c386cc5807219f10ebe9063c2711c7f90602401602060405180830381865af4158015610f6e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e69190614b87565b60065473ffffffffffffffffffffffffffffffffffffffff163314610fe3576040517f2dd1912a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81131561100357610ffe8383610ff984611d29565b612d20565b505050565b610ffe8284610ff9845f03611d29565b5f61092b826108eb565b60065473ffffffffffffffffffffffffffffffffffffffff16331461106e576040517f2dd1912a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f90815260016020526040812080547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92906110c1908490614bd4565b909155505050565b5f6cffffffffffffffffffffffffff831115611111576040517fc56d46d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61111a83612475565b6003546006549192506111499173ffffffffffffffffffffffffffffffffffffffff9182169133911686612dc8565b6111538282612897565b600780548491905f906111799084906fffffffffffffffffffffffffffffffff16614be7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78584604051611217929190918252602082015260400190565b60405180910390a392915050565b60065473ffffffffffffffffffffffffffffffffffffffff163314611276576040517f2dd1912a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f90815260016020526040812080547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92906110c1908490614c0f565b5f6112d386610c1a565b90503373ffffffffffffffffffffffffffffffffffffffff8516146113865773ffffffffffffffffffffffffffffffffffffffff84165f9081526002602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611384576113538282614c0f565b73ffffffffffffffffffffffffffffffffffffffff86165f9081526002602090815260408083203384529091529020555b505b6113908482612806565b600780548791905f906113b69084906fffffffffffffffffffffffffffffffff16614c22565b82546fffffffffffffffffffffffffffffffff9182166101009390930a9283029190920219909116179055506006546040517f5036275a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635036275a9061143c90879087908790600401614c4a565b5f6040518083038186803b158015611452575f5ffd5b505afa158015611464573d5f5f3e3d5ffd5b5050600354600654611493935073ffffffffffffffffffffffffffffffffffffffff9182169250168789612dc8565b604080518781526020810183905273ffffffffffffffffffffffffffffffffffffffff808716929088169133917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db910160405180910390a495945050505050565b5f6114fe836118be565b90506cffffffffffffffffffffffffff811115611547576040517fc56d46d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003546006546115739173ffffffffffffffffffffffffffffffffffffffff9081169133911684612dc8565b61157d8284612897565b600780548291905f906115a39084906fffffffffffffffffffffffffffffffff16614be7565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78386604051611217929190918252602082015260400190565b600354604080518082018252600281527f706f000000000000000000000000000000000000000000000000000000000000602082015290517f61de447b00000000000000000000000000000000000000000000000000000000815260609273000000000001a911be5b2c386cc5807219f10ebe926361de447b926108879273ffffffffffffffffffffffffffffffffffffffff169190600401614ca2565b6006546040517fc79ee60d0000000000000000000000000000000000000000000000000000000081523360048201525f9173ffffffffffffffffffffffffffffffffffffffff169063c79ee60d90602401602060405180830381865afa15801561174b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176f9190614b70565b156117a6576040517f2501f81e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c568383612e53565b60608167ffffffffffffffff8111156117cb576117cb6144ea565b6040519080825280602002602001820160405280156117fe57816020015b60608152602001906001900390816117e95790505b5090505f5b828110156118b7575f803086868581811061182057611820614cd0565b90506020028101906118329190614cfd565b604051611840929190614d5e565b5f60405180830381855af49150503d805f8114611878576040519150601f19603f3d011682016040523d82523d5f602084013e61187d565b606091505b50915091508161188f57805160208201fd5b808484815181106118a2576118a2614cd0565b60209081029190910101525050600101611803565b5092915050565b5f61092b6118ce61271084614d6d565b60075470010000000000000000000000000000000081046fffffffffffffffffffffffffffffffff9081169116016119287f0000000000000000000000000000000000000000000000000000000000000000612710614c0f565b5f546109f39190614d6d565b5f61193e82611d69565b841115611977576040517f20adf2ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61198084610c1a565b90503373ffffffffffffffffffffffffffffffffffffffff831614611a335773ffffffffffffffffffffffffffffffffffffffff82165f9081526002602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a3157611a008282614c0f565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526002602090815260408083203384529091529020555b505b611a3d8282612806565b600780546fffffffffffffffffffffffffffffffff808216879003167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116179055600354600654611aab9173ffffffffffffffffffffffffffffffffffffffff90811691168587612dc8565b604080518581526020810183905273ffffffffffffffffffffffffffffffffffffffff808516929086169133917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db91015b60405180910390a49392505050565b5f611b15826120aa565b841115611b4e576040517f20adf2ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff831614611bff5773ffffffffffffffffffffffffffffffffffffffff82165f9081526002602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611bfd57611bcc8582614c0f565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526002602090815260408083203384529091529020555b505b611c0884611013565b9050611c148285612806565b600780546fffffffffffffffffffffffffffffffff808216849003167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116179055600354600654611c829173ffffffffffffffffffffffffffffffffffffffff90811691168584612dc8565b604080518281526020810186905273ffffffffffffffffffffffffffffffffffffffff808516929086169133917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db9101611afc565b5f6127107f00000000000000000000000000000000000000000000000000000000000000008103611d146cffffffffffffffffffffffffff611d29565b0281611d2257611d22614d84565b0492915050565b5f61092b825f54611d646007546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204160190565b6126e2565b6007545f906fffffffffffffffffffffffffffffffff168181611d8c575f611d91565b600182035b73ffffffffffffffffffffffffffffffffffffffff85165f9081526001602052604081205491925090611dc3906108eb565b6006546040517fc79ee60d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015292935091169063c79ee60d906024015b602060405180830381865afa158015611e34573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e589190614b70565b15611e63575f611e6d565b611e6d8282612ed6565b95945050505050565b60035474010000000000000000000000000000000000000000900460ff1615611ecb576040517f8f02272600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055620f42405f55600780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117905584611f465782611f48565b835b600380547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff93841617909155600680548216848416179055600880547fffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000062ffffff8716908102919091179091556004805490921687841617909155600580549286167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217740100000000000000000000000000000000000000008815150217909155612710907f000000000000000000000000000000000000000000000000000000000000000002600880547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016929091046fffffffffffffffffffffffffffffffff169190911790555050505050565b6007545f906fffffffffffffffffffffffffffffffff16816120d9826120d0575f611d29565b60018303611d29565b73ffffffffffffffffffffffffffffffffffffffff8581165f81815260016020526040908190205460065491517fc79ee60d00000000000000000000000000000000000000000000000000000000815260048101939093529394509091169063c79ee60d90602401611e19565b60065473ffffffffffffffffffffffffffffffffffffffff163314612197576040517f2dd1912a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81121561231e576003545f829003906121c99073ffffffffffffffffffffffffffffffffffffffff16853384612dc8565b6121db836121d683611d29565b612897565b600780548291905f906122019084906fffffffffffffffffffffffffffffffff16614be7565b82546fffffffffffffffffffffffffffffffff9182166101009390930a92830291909202199091161790555073ffffffffffffffffffffffffffffffffffffffff83165f908152600160205260409020547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156122cd5773ffffffffffffffffffffffffffffffffffffffff84165f90815260016020526040812081905580547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff839003019055612317565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526001602052604090207fff00000000000000000000000000000000000000000000000000000000000001820190555b5050505050565b73ffffffffffffffffffffffffffffffffffffffff82165f908152600160205260409020547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561239b575f80547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9290920390910181556123be565b7fff00000000000000000000000000000000000000000000000000000000000001015b73ffffffffffffffffffffffffffffffffffffffff83165f9081526001602052604081208290556123ee83611d29565b90508181111561246a57612403848684612d20565b5f54612464866121d6856124598882870361245460018361244e6007546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204160190565b03612eeb565b612ef9565b036127108502612ed6565b50612317565b612317848683612d20565b5f61092b7f00000000000000000000000000000000000000000000000000000000000000006127100383025f546127106124d96007546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204160190565b026126e2565b6007546fffffffffffffffffffffffffffffffff808216917001000000000000000000000000000000009004165f612515612b6a565b9050909192565b5f6001815b61252a86612f72565b8110156126165761253b8682613025565b1561260e575f61256a61254d8861303b565b612557898561304d565b0262ffffff166002808204910615150190565b90506125a483600283900b6125916125878b87603002604c011c90565b8d0360020b613060565b8161259e5761259e614d84565b0561307a565b9250505f5f5f5f5f6125b78b878c613088565b90506125c38d826130f3565b90955093506125d28c826130f3565b909350915061260790506126008285036fffffffffffffffffffffffffffffffff858803165b9060801b0190565b8890613171565b9650505050505b600101612521565b507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82011d6126d66127108261266d8760801d90565b600f0b028161267e5761267e614d84565b056125f86127108488600f0b028161269857612698614d84565b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000881691900587016fffffffffffffffffffffffffffffffff160190565b98975050505050505050565b5f80807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff858709858702925082811083820303915050805f03612735575f841161272a575f5ffd5b508290049050610c56565b808411612740575f5ffd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f6127b78484846126e2565b90505f82806127c8576127c8614d84565b8486091115610c56577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81106127fc575f5ffd5b6001019392505050565b73ffffffffffffffffffffffffffffffffffffffff82165f908152600160205260408120805483929061283a908490614c0f565b90915550505f8054829003815560405182815273ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff82165f908152600160205260408120805483019055805482919081906128d3908490614bd4565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161288b565b806fffffffffffffffffffffffffffffffff8116811461296e576040517fb668004500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b80515f90815b81811015612ab0575f84828151811061299457612994614cd0565b60200260200101515f600281106129ad576129ad614cd0565b602002015190505f6129ec8684815181106129ca576129ca614cd0565b60200260200101516001600281106129e4576129e4614cd0565b602002015190565b60055490915074010000000000000000000000000000000000000000900460ff165f81612a5157612a4c888681518110612a2857612a28614cd0565b6020026020010151600160028110612a4257612a42614cd0565b602002015161323a565b612a8a565b612a8a888681518110612a6657612a66614cd0565b6020026020010151600160028110612a8057612a80614cd0565b6020020151613249565b90505f612a9a85858c8587613258565b9790970196505060019093019250612979915050565b505092915050565b5f5f5f868603600f0b85600f0b0390505f815f1480612ad45750845b612b0e57612b09612ae483613060565b6008546fffffffffffffffffffffffffffffffff1602620f4240808204910615150190565b612b10565b5f5b612b587f00000000000000000000000000000000000000000000000000000000000000008a8a016fffffffffffffffffffffffffffffffff1602612710808204910615150190565b01918201989197509095505050505050565b5f612b9f6007546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204160190565b6007546fffffffffffffffffffffffffffffffff700100000000000000000000000000000000909104166127100281612bda57612bda614d84565b04905090565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612c7257612c418382614c0f565b73ffffffffffffffffffffffffffffffffffffffff86165f9081526002602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff85165f9081526001602052604081208054859290612ca6908490614c0f565b909155505073ffffffffffffffffffffffffffffffffffffffff8085165f81815260016020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612d0d9087815260200190565b60405180910390a3506001949350505050565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526001602052604081208054839290612d54908490614c0f565b909155505073ffffffffffffffffffffffffffffffffffffffff8083165f81815260016020526040908190208054850190555190918516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612dbb9085815260200190565b60405180910390a3505050565b5f6040517f23b872dd00000000000000000000000000000000000000000000000000000000815284816004015283816024015282816044015260205f6064835f8a5af13d15601f3d1160015f511416171691505080612317576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f90815260016020526040812080548391908390612e73908490614c0f565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f81815260016020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b459086815260200190565b5f818310612ee45781610c56565b5090919050565b5f818313612ee45781610c56565b5f80807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff858709858702925082811083820303915050805f03612f41575f841161272a575f5ffd5b808411612740577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92505050610c56565b5f7afe0000000000fe0000000000fe0000000000fe0000000000000000821668010000000000000000811015612faa57505f92915050565b6e010000000000000000000000000000811015612fca5750600192915050565b74010000000000000000000000000000000000000000811015612ff05750600292915050565b7a01000000000000000000000000000000000000000000000000000081101561301c5750600392915050565b50600492915050565b5f60026048603084020184901c5b069392505050565b5f62010000603083901c5b0692915050565b5f6110006064603084020184901c613033565b5f5f82136130765761307182614db1565b61092b565b5090565b5f818311612ee45781610c56565b5f808061309586866132b4565b90925090505f6130a587876132eb565b6130c1906fffffffffffffffffffffffffffffffff8716614d6d565b90506130cd87876132fd565b5f036130e8576130de83838361330f565b9350505050610c56565b6130de8383836133f4565b5f5f6130ff8360e81c90565b60020b8460020b1361311b5761311483613445565b915061316a565b6131258360d01c90565b60020b8460020b126131415761313a836134e7565b905061316a565b61315361314e848661353c565b613445565b9150613167613162848661358a565b6134e7565b90505b9250929050565b5f5f61317d8360801d90565b600f0b61318a8560801d90565b600f0b039050805f84600f0b86600f0b0390505f8190508383600f0b1415806131b657508181600f0b14155b156131ed576040517fd219017400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61322f837fffffffffffffffffffffffffffffffff0000000000000000000000000000000087168388016fffffffffffffffffffffffffffffffff16016125f8565b979650505050505050565b5f62010000609083901c613046565b5f62010000608083901c613046565b5f5f61326387612f72565b90505f5b818110156132a9578361327b57600161327d565b5f5b60ff1661328a89836135d8565b036132a15761329c88828989896135ea565b830192505b600101613267565b505095945050505050565b5f806132e06132c88585603002604c011c90565b6132d2868661304d565b6132db8761303b565b61361a565b909590945092505050565b5f60806041603084020184901c613033565b5f60026040603084020184901c613033565b5f5f61331a85613638565b90505f61332685613638565b9050610c10868661338d6133888861336a8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16613998565b88880373ffffffffffffffffffffffffffffffffffffffff166126e2565b612922565b7fffffff000000000000000000000000000000000000000000000000000000000060e884901b167cffffff000000000000000000000000000000000000000000000000000060d084901b16016fffffffffffffffffffffffffffffffff8216019392505050565b5f5f6133ff85613638565b90505f61340b85613638565b9050610c10868661338d613388886c0100000000000000000000000088880373ffffffffffffffffffffffffffffffffffffffff166126e2565b5f5f6134596134548460e81c90565b613638565b90505f6134696134548560d01c90565b905073ffffffffffffffffffffffffffffffffffffffff82166134d16060866fffffffffffffffffffffffffffffffff16901b84840373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff166126e2565b816134de576134de614d84565b04949350505050565b5f5f6134f66134548460e81c90565b90505f6135066134548560d01c90565b9050610ee4846fffffffffffffffffffffffffffffffff1683830373ffffffffffffffffffffffffffffffffffffffff16613998565b5f610c567cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84168360e81b7fffffff0000000000000000000000000000000000000000000000000000000000160190565b5f610c567fffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffff84168360d01b7cffffff0000000000000000000000000000000000000000000000000000160190565b5f60026049603084020184901c613033565b5f846135f68782613a38565b1461360d576136088686868686613a4a565b610c10565b610c108686868686613a9f565b5f5f5f5f6136288686613cc7565b9088039897019695505050505050565b5f5f5f8360020b1261364d578260020b613654565b8260020b5f035b9050620d89e8811115613693576040517fce8ef7fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f816001165f036136b5577001000000000000000000000000000000006136c7565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156136fb576ffff97272373d413259a46990580e213a0260801c5b600482161561371a576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615613739576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615613758576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615613777576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615613796576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156137b5576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156137d5576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156137f5576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615613815576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615613835576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615613855576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615613875576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615613895576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156138b5576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156138d6576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156138f6576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615613915576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615613932576b048a170391f7dc42444e8fa20260801c5b5f8460020b131561397057807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8161396c5761396c614d84565b0490505b640100000000810615613984576001613986565b5f5b60ff16602082901c0192505050919050565b5f80807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848609848602925082811083820303915050805f036139e0575060601c905061092b565b806c01000000000000000000000000116139f8575f5ffd5b5f6c0100000000000000000000000085870980840360601c9310909103740100000000000000000000000000000000000000000291909117949350505050565b5f6004604a603084020184901c613033565b5f80613a568787613a38565b90505f613a638888613025565b9050613a6f8883613025565b8114613a925780600103613a8d57613a8a8887898588613d09565b92505b6132a9565b6126d68888888888613ecd565b5f80613aab87876135d8565b90505f613ab9888789613ef2565b90505f8215613ad157613acc8260801c90565b613ad3565b815b90505f613ae08a8a613025565b9050613aed82828861402d565b9450805f03613cba575f80613b028c8c6132b4565b915091508060020b8960020b12158015613b1c5750856001145b80613b3557508160020b8960020b128015613b35575085155b613cb7575f613b498d8d603002604c011c90565b90505f87600114613b8b57613b866134548c84036002027ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276186140ac565b613bbd565b613bbd613454838d036002027ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276186140ac565b90508360020b8b60020b128015613bd45750876001145b80613bee57508260020b8b60020b12158015613bee575087155b15613c3f5773ffffffffffffffffffffffffffffffffffffffff81166c0100000000000000000000000003613c356fffffffffffffffffffffffffffffffff8816826140c0565b8a01995050613cb4565b5f613c4f85840384860301613638565b90505f613cac886fffffffffffffffffffffffffffffffff1684840373ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000008573ffffffffffffffffffffffffffffffffffffffff16016127ab565b9a909a019950505b50505b50505b5050505095945050505050565b5f806002613cd58486614de7565b613cdf9190614e06565b613cfe613cec8587614e9e565b62ffffff166002808204910615150190565b915091509250929050565b5f5f613d16878787613ef2565b90505f613d24888887613ef2565b905081608081811c90839081901c5f613d3d8d8c6135d8565b905080613d4a8e8d6132fd565b14613df557805f03613da657826fffffffffffffffffffffffffffffffff16856fffffffffffffffffffffffffffffffff1610613d8957828503613d8d565b8483035b6fffffffffffffffffffffffffffffffff169750613e9a565b816fffffffffffffffffffffffffffffffff16846fffffffffffffffffffffffffffffffff1610613dd957818403613d8d565b8382036fffffffffffffffffffffffffffffffff169750613e9a565b5f5f5f83600103613e205750506fffffffffffffffffffffffffffffffff8087169150841685613e3c565b50506fffffffffffffffffffffffffffffffff80861691508316865b818310613e6e57613e69816fffffffffffffffffffffffffffffffff168385030283808204910615150190565b613e94565b613e94816fffffffffffffffffffffffffffffffff168484030284808204910615150190565b9a505050505b613ebc88613eb78315613ead5786613eaf565b875b60018d61402d565b61307a565b9d9c50505050505050505050505050565b5f8160010b5f14613ede5781613ee1565b60015b5f039150610c108686868686613a9f565b5f80808080613f0188876132b4565b915091505f613f4c613f1284613638565b73ffffffffffffffffffffffffffffffffffffffff16613f3184613638565b73ffffffffffffffffffffffffffffffffffffffff16613998565b9050613f5889886132fd565b5f03613f9a57613f6889886132eb565b613f729089614ebc565b9450613f93613388866fffffffffffffffffffffffffffffffff16836140c0565b9350613fe0565b613fa489886132eb565b613fae9089614ebc565b9350613fdd613388856fffffffffffffffffffffffffffffffff166c01000000000000000000000000846127ab565b94505b6140206fffffffffffffffffffffffffffffffff86168560801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000160190565b9998505050505050505050565b5f825f03614072575f6140428360010b614119565b905061406a81866fffffffffffffffffffffffffffffffff1602612710808204910615150190565b915050610c56565b82600103610c56575f6140848361422f565b9050611e6d81866fffffffffffffffffffffffffffffffff1602612710808204910615150190565b5f8160020b8360020b13612ee45781610c56565b5f6140cb8383613998565b90505f6c01000000000000000000000000838509111561092b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110614110575f5ffd5b60010192915050565b5f7f00000000000000000000000000000000000000000000000000000000000000008183121561414e575f9290920391600290045b7f000000000000000000000000000000000000000000000000000000000000000083101561417c5792915050565b7f00000000000000000000000000000000000000000000000000000000000000008311156141ae575061271092915050565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000037f000000000000000000000000000000000000000000000000000000000000000084038261271003028161422757614227614d84565b040192915050565b5f7f00000000000000000000000000000000000000000000000000000000000000008261ffff16101561428357507f0000000000000000000000000000000000000000000000000000000000000000919050565b7f00000000000000000000000000000000000000000000000000000000000000008261ffff1611156142d75760027f0000000000000000000000000000000000000000000000000000000000000000611d22565b60027f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000038361ffff167f0000000000000000000000000000000000000000000000000000000000000000037f0000000000000000000000000000000000000000000000000000000000000000028161437257614372614d84565b047f00000000000000000000000000000000000000000000000000000000000000000181611d2257611d22614d84565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610c5660208301846143a2565b5f60208284031215614410575f5ffd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114614438575f5ffd5b50565b8035600f81900b811461296e575f5ffd5b5f5f5f5f5f60a08688031215614460575f5ffd5b853561446b81614417565b94506144796020870161443b565b93506144876040870161443b565b92506144956060870161443b565b91506144a36080870161443b565b90509295509295909350565b5f5f604083850312156144c0575f5ffd5b82356144cb81614417565b946020939093013593505050565b8035600281900b811461296e575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561453a5761453a6144ea565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614587576145876144ea565b604052919050565b80356fffffffffffffffffffffffffffffffff8116811461296e575f5ffd5b5f5f5f5f5f60a086880312156145c2575f5ffd5b85356145cd81614417565b94506145db602087016144d9565b9350604086013567ffffffffffffffff8111156145f6575f5ffd5b8601601f81018813614606575f5ffd5b803567ffffffffffffffff811115614620576146206144ea565b61462f60208260051b01614540565b8082825260208201915060208360061b85010192508a831115614650575f5ffd5b6020840193505b828410156146b7578a601f85011261466d575f5ffd5b614675614517565b80604086018d811115614686575f5ffd5b865b818110156146a0578035845260209384019301614688565b505083525060409390930192602090910190614657565b95506146c9925050506060870161458f565b91506144a36080870161458f565b8035801515811461296e575f5ffd5b5f5f5f5f5f60a086880312156146fa575f5ffd5b853561470581614417565b94506147136020870161443b565b93506147216040870161443b565b925061472f6060870161443b565b91506144a3608087016146d7565b5f5f5f6060848603121561474f575f5ffd5b833561475a81614417565b9250602084013561476a81614417565b929592945050506040919091013590565b5f6020828403121561478b575f5ffd5b8135610c5681614417565b5f5f604083850312156147a7575f5ffd5b8235915060208301356147b981614417565b809150509250929050565b5f5f83601f8401126147d4575f5ffd5b50813567ffffffffffffffff8111156147eb575f5ffd5b6020830191508360208260051b850101111561316a575f5ffd5b5f5f5f5f5f60808688031215614819575f5ffd5b85359450602086013561482b81614417565b9350604086013561483b81614417565b9250606086013567ffffffffffffffff811115614856575f5ffd5b614862888289016147c4565b969995985093965092949392505050565b5f5f60208385031215614884575f5ffd5b823567ffffffffffffffff81111561489a575f5ffd5b6148a6858286016147c4565b90969095509350505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015614927577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184526149128583516143a2565b945060209384019391909101906001016148d8565b50929695505050505050565b5f5f5f60608486031215614945575f5ffd5b83359250602084013561495781614417565b9150604084013561496781614417565b809150509250925092565b5f5f5f5f5f60a08688031215614986575f5ffd5b61498f866146d7565b9450602086013561499f81614417565b935060408601356149af81614417565b9250606086013562ffffff811681146149c6575f5ffd5b915060808601356149d681614417565b809150509295509295909350565b5f5f604083850312156149f5575f5ffd5b8235614a0081614417565b915060208301356147b981614417565b5f5f5f5f5f60a08688031215614a24575f5ffd5b614a2d866144d9565b9450614a3b602087016144d9565b935060408601359250614a506060870161458f565b949793965091946080013592915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff85166020820152831515604082015262ffffff8316606082015260a060808201525f61322f60a08301846143a2565b5f60208284031215614ace575f5ffd5b815167ffffffffffffffff811115614ae4575f5ffd5b8201601f81018413614af4575f5ffd5b805167ffffffffffffffff811115614b0e57614b0e6144ea565b614b3f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614540565b818152856020838501011115614b53575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f60208284031215614b80575f5ffd5b5051919050565b5f60208284031215614b97575f5ffd5b815160ff81168114610c56575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561092b5761092b614ba7565b6fffffffffffffffffffffffffffffffff818116838216019081111561092b5761092b614ba7565b8181038181111561092b5761092b614ba7565b6fffffffffffffffffffffffffffffffff828116828216039081111561092b5761092b614ba7565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820181905281018290525f8360608301825b85811015614c97578235825260209283019290910190600101614c79565b509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f610ee460408301846143a2565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614d30575f5ffd5b83018035915067ffffffffffffffff821115614d4a575f5ffd5b60200191503681900382131561316a575f5ffd5b818382375f9101908152919050565b808202811582820484141761092b5761092b614ba7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f7f80000000000000000000000000000000000000000000000000000000000000008203614de157614de1614ba7565b505f0390565b5f8260020b8260020b028060020b91508082146118b7576118b7614ba7565b5f8160020b8360020b80614e41577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000083141615614e9557614e95614ba7565b90059392505050565b62ffffff81811683821602908116908181146118b7576118b7614ba7565b6fffffffffffffffffffffffffffffffff81811683821602908116908181146118b7576118b7614ba756fea2646970667358221220ca06a6ed8c563b2bb33462f74072ad176d1af90ecce2fea37ce2a3f769ae3baa64736f6c634300081c0033000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000007d000000000000000000000000000000000000000000000000000000000000003e8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000000000000138800000000000000000000000000000000000000000000000000000000000023280000000000000000000000000000000000000000000000000000000000004e2000000000000000000000000000000000000000b361194cfe6312ee3210d53c15aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000646112e8ac00000000000000000000000082bf455e9ebd6a541ef10b683de1edcaf05ce7a182bf455e9ebd6a541ef10b683de1edcaf05ce7a19c1f30d54f612201804528b7000000000000000000000000000000000000000000000000000000000000001d00000000000000b361194cfe6312ee3210d53c15aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000968461ff715f82bf455e9ebd6a541ef10b683de1edcaf05ce7a19c1f30d54f612201804528b70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000960f610100604052348015610010575f5ffd5b50604051614e4f380380614e4f83398101604081905261002f91610373565b828282604051806060016040528060218152602001614e2e6021913960408051808201909152600c81526b14105393d4151250cb53919560a21b60208201528484845f5b8351811015610153575f5b83828151811061009057610090610446565b60200260200101515181101561014a578282815181106100b2576100b2610446565b602002602001015181815181106100cb576100cb610446565b60200260200101515f5f8785815181106100e7576100e7610446565b602002602001015181526020019081526020015f205f86858151811061010f5761010f610446565b6020026020010151848151811061012857610128610446565b60209081029190910181015182528101919091526040015f205560010161007e565b50600101610073565b50505050816001908161016691906104de565b50600261017382826104de565b5050506001600160a01b03998a1660a052505050509385166080525090831660c05290911660e05250610598565b6001600160a01b03811681146101b5575f5ffd5b50565b80516101c3816101a1565b919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715610204576102046101c8565b604052919050565b5f6001600160401b03821115610224576102246101c8565b5060051b60200190565b5f82601f83011261023d575f5ffd5b815161025061024b8261020c565b6101dc565b8082825260208201915060208360051b860101925085831115610271575f5ffd5b602085015b8381101561028e578051835260209283019201610276565b5095945050505050565b5f82601f8301126102a7575f5ffd5b81516102b561024b8261020c565b8082825260208201915060208360051b8601019250858311156102d6575f5ffd5b602085015b8381101561028e5780516001600160401b038111156102f8575f5ffd5b8601603f81018813610308575f5ffd5b602081015161031961024b8261020c565b808282526020820191506020808460051b8601010192508a83111561033c575f5ffd5b6040840193505b8284101561035e578351825260209384019390910190610343565b865250506020938401939190910190506102db565b5f5f5f5f5f5f5f60e0888a031215610389575f5ffd5b8751610394816101a1565b96506103a2602089016101b8565b95506103b0604089016101b8565b94506103be606089016101b8565b60808901519094506001600160401b038111156103d9575f5ffd5b6103e58a828b0161022e565b60a08a015190945090506001600160401b03811115610402575f5ffd5b61040e8a828b01610298565b60c08a015190935090506001600160401b0381111561042b575f5ffd5b6104378a828b01610298565b91505092959891949750929550565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061046e57607f821691505b60208210810361048c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156104d957805f5260205f20601f840160051c810160208510156104b75750805b601f840160051c820191505b818110156104d6575f81556001016104c3565b50505b505050565b81516001600160401b038111156104f7576104f76101c8565b61050b81610505845461045a565b84610492565b6020601f82116001811461053d575f83156105265750848201515b5f19600385901b1c1916600184901b1784556104d6565b5f84815260208120601f198516915b8281101561056c578785015182556020948501946001909201910161054c565b508482101561058957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60805160a05160c05160e05161485c6105d25f395f611ba701525f81816107ba0152611b5901525f611a6301525f6118f5015261485c5ff3fe608060405260043610610123575f3560e01c806395d89b41116100a1578063b88d4fde11610071578063daa4c69711610057578063daa4c69714610380578063e985e9c51461039f578063f2626ead146103d8575f5ffd5b8063b88d4fde14610342578063c87b56dd14610361575f5ffd5b806395d89b41146102d0578063a03ba02f146102e4578063a22cb46514610303578063ac9650d814610322575f5ffd5b80630efb8bac116100f657806342842e0e116100dc57806342842e0e146102655780636352211e1461028457806370a08231146102a3575f5ffd5b80630efb8bac1461020357806323b872dd14610246575f5ffd5b806301ffc9a71461012757806306fdde031461015b578063081812fc1461017c578063095ea7b3146101e2575b5f5ffd5b348015610132575f5ffd5b506101466101413660046139a3565b61041c565b60405190151581526020015b60405180910390f35b348015610166575f5ffd5b5061016f610500565b6040516101529190613a0a565b348015610187575f5ffd5b506101bd610196366004613a1c565b60056020525f908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b3480156101ed575f5ffd5b506102016101fc366004613a54565b61058c565b005b34801561020e575f5ffd5b5061022261021d366004613a99565b6106d8565b604080516bffffffffffffffffffffffff9093168352602083019190915201610152565b348015610251575f5ffd5b50610201610260366004613aee565b6108fc565b348015610270575f5ffd5b5061020161027f366004613aee565b610bbf565b34801561028f575f5ffd5b506101bd61029e366004613a1c565b610d22565b3480156102ae575f5ffd5b506102c26102bd366004613b2c565b610db2565b604051908152602001610152565b3480156102db575f5ffd5b5061016f610e58565b3480156102ef575f5ffd5b5061016f6102fe366004613c5a565b610e65565b34801561030e575f5ffd5b5061020161031d366004613cd8565b61112f565b610335610330366004613d13565b6111c5565b6040516101529190613d84565b34801561034d575f5ffd5b5061020161035c366004613e05565b6112d3565b34801561036c575f5ffd5b5061016f61037b366004613a1c565b611427565b34801561038b575f5ffd5b506101bd61039a366004613eae565b611857565b3480156103aa575f5ffd5b506101466103b9366004613f05565b600660209081525f928352604080842090915290825290205460ff1681565b3480156103e3575f5ffd5b506101bd6103f2366004613b2c565b73ffffffffffffffffffffffffffffffffffffffff9081165f908152600760205260409020541690565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806104ae57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806104fa57507f5b5e139f000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6001805461050d90613f31565b80601f016020809104026020016040519081016040528092919081815260200182805461053990613f31565b80156105845780601f1061055b57610100808354040283529160200191610584565b820191905f5260205f20905b81548152906001019060200180831161056757829003601f168201915b505050505081565b5f8181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff16338114806105ed575073ffffffffffffffffffffffffffffffffffffffff81165f90815260066020908152604080832033845290915290205460ff165b610658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b5f8281526005602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f806bffffffffffffffffffffffff851684015b80866bffffffffffffffffffffffff1610156108f157604080517fffffffffffffffffffff0000000000000000000000000000000000000000000060608b811b821660208401528a901b16602a8201527fffffffffffffffffffffffff000000000000000000000000000000000000000060a089901b1660348201525f910160405160208183030381529060405261078390613f82565b90505f73000000000001cd07e625a9e225c37bea50b3f441634a18eb8f61083573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016856040513060388201526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865af415801561089c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c09190613fc4565b9050838111156108d1578093508794505b8581106108e45787945092506108f19050565b60018801975050506106ec565b509550959350505050565b5f8181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff84811691161461098b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57524f4e475f46524f4d00000000000000000000000000000000000000000000604482015260640161064f565b73ffffffffffffffffffffffffffffffffffffffff8216610a08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e54000000000000000000000000000000604482015260640161064f565b3373ffffffffffffffffffffffffffffffffffffffff84161480610a5b575073ffffffffffffffffffffffffffffffffffffffff83165f90815260066020908152604080832033845290915290205460ff165b80610a8857505f8181526005602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b610aee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a4544000000000000000000000000000000000000604482015260640161064f565b73ffffffffffffffffffffffffffffffffffffffff8084165f81815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055938616808352848320805460010190558583526003825284832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168317909155600590925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610bca8383836108fc565b73ffffffffffffffffffffffffffffffffffffffff82163b15610d1d576040517f150b7a020000000000000000000000000000000000000000000000000000000080825233600483015273ffffffffffffffffffffffffffffffffffffffff858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af1158015610c70573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c949190613fdb565b7fffffffff000000000000000000000000000000000000000000000000000000001614610d1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e5400000000000000000000000000000000604482015260640161064f565b505050565b5f8181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610dad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e54454400000000000000000000000000000000000000000000604482015260640161064f565b919050565b5f73ffffffffffffffffffffffffffffffffffffffff8216610e30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f414444524553530000000000000000000000000000000000000000604482015260640161064f565b5073ffffffffffffffffffffffffffffffffffffffff165f9081526004602052604090205490565b6002805461050d90613f31565b6040517f4a18eb8f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152606090600f8616905f9073000000000001cd07e625a9e225c37bea50b3f44190634a18eb8f90602401602060405180830381865af4158015610eeb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0f9190613fc4565b90505f610f1c8383611ef9565b9050610f2b8189848a8a6121a2565b9050611103610f518973ffffffffffffffffffffffffffffffffffffffff1660146123ba565b5f8581527f7f98b23ecc45ef8113f30246eedf02ba90aaeca2cd03443f1b6caef9aed885f96020526040902054610f87906123fe565b610f9085612409565b604051602001610fa192919061400d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610fdd929160200161400d565b6040516020818303038152906040528888610ff789612469565b60405160200161100993929190614051565b60405160208183030381529060405261102185612409565b5f8681527f934fcfd0ac41364bf414d3f5dd474e8c0fa3c5e6745ad2c3cf0573b1c870f1786020526040902054611057906123fe565b604051602001611068929190614114565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181525f8881527f7f98b23ecc45ef8113f30246eedf02ba90aaeca2cd03443f1b6caef9aed885f960205220546110c9906123fe565b6110d161251b565b6110da87612d03565b6040516020016110ef9695949392919061414f565b604051602081830303815290604052612d03565b6040516020016111139190614349565b6040516020818303038152906040529350505050949350505050565b335f81815260066020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60608167ffffffffffffffff8111156111e0576111e0613b47565b60405190808252806020026020018201604052801561121357816020015b60608152602001906001900390816111fe5790505b5090505f5b828110156112cc575f80308686858181106112355761123561437a565b905060200281019061124791906143a7565b60405161125592919061440f565b5f60405180830381855af49150503d805f811461128d576040519150601f19603f3d011682016040523d82523d5f602084013e611292565b606091505b5091509150816112a457805160208201fd5b808484815181106112b7576112b761437a565b60209081029190910101525050600101611218565b5092915050565b6112de8585856108fc565b73ffffffffffffffffffffffffffffffffffffffff84163b15611420576040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063150b7a02906113579033908a9089908990899060040161441e565b6020604051808303815f875af1158015611373573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113979190613fdb565b7fffffffff000000000000000000000000000000000000000000000000000000001614611420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e5400000000000000000000000000000000604482015260640161064f565b5050505050565b60605f8290506118508173000000000001cd07e625a9e225c37bea50b3f4416395917e7a8473ffffffffffffffffffffffffffffffffffffffff16634f94c5306040518163ffffffff1660e01b8152600401602060405180830381865afa158015611494573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b891906144ab565b73ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611500573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061152491906144ab565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015f60405180830381865af415801561158a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526115cf91908101906144c6565b73000000000001cd07e625a9e225c37bea50b3f4416395917e7a8573ffffffffffffffffffffffffffffffffffffffff16634f94c5306040518163ffffffff1660e01b8152600401602060405180830381865afa158015611632573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165691906144ab565b73ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561169e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116c291906144ab565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024015f60405180830381865af4158015611728573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261176d91908101906144c6565b8473ffffffffffffffffffffffffffffffffffffffff16634f94c5306040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117b6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117da91906144ab565b73ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa158015611822573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611846919061453b565b62ffffff16610e65565b9392505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610611892578385611895565b84845b6040517f1698ee8200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8084166004830152808316602483015262ffffff871660448301529297509095505f917f00000000000000000000000000000000000000000000000000000000000000001690631698ee8290606401602060405180830381865afa15801561193a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061195e91906144ab565b905073ffffffffffffffffffffffffffffffffffffffff81166119ad576040517f4f361fe400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8181165f908152600760205260409020541615611a0b576040517f7983c05100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc035e24200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152868116602483015262ffffff861660448301527f0000000000000000000000000000000000000000000000000000000000000000169063c035e242906064015f604051808303815f87803b158015611aa4575f5ffd5b505af1158015611ab6573d5f5f3e3d5ffd5b5050604080517fffffffffffffffffffff0000000000000000000000000000000000000000000033606090811b8216602084015286901b16602a8201527fffffffffffffffffffffffff000000000000000000000000000000000000000060a088901b1660348201525f9350019050604051602081830303815290604052611b3d90613f82565b9050611b7f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001682612d10565b92505f611bcd611b90836001614583565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690612d10565b90505f611bde611b90846002614583565b6040517fd8ba510c0000000000000000000000000000000000000000000000000000000081526001600482015273ffffffffffffffffffffffffffffffffffffffff8b811660248301528a8116604483015262ffffff8a16606483015287811660848301529192509083169063d8ba510c9060a4015f604051808303815f87803b158015611c6a575f5ffd5b505af1158015611c7c573d5f5f3e3d5ffd5b50506040517fd8ba510c0000000000000000000000000000000000000000000000000000000081525f600482015273ffffffffffffffffffffffffffffffffffffffff8c811660248301528b8116604483015262ffffff8b16606483015288811660848301528416925063d8ba510c915060a4015f604051808303815f87803b158015611d07575f5ffd5b505af1158015611d19573d5f5f3e3d5ffd5b50506040517fe8a792fc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301528c811660248301528b81166044830152858116606483015284811660848301528816925063e8a792fc915060a4015f604051808303815f87803b158015611da3575f5ffd5b505af1158015611db5573d5f5f3e3d5ffd5b5050505073ffffffffffffffffffffffffffffffffffffffff8481165f818152600760205260409081902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169389169390931790925590517f32148f6700000000000000000000000000000000000000000000000000000000815261012d60048201526332148f67906024015f604051808303815f87803b158015611e5b575f5ffd5b505af1158015611e6d573d5f5f3e3d5ffd5b50505073ffffffffffffffffffffffffffffffffffffffff86169050611e933382612dd1565b6040805173ffffffffffffffffffffffffffffffffffffffff8581168252848116602083015280881692908916917f5f7560a5797edc6f72421362defa094d690eb9f7ced3cc5a5c13383502e4fcc5910160405180910390a35050505050949350505050565b7f6672616d657300000000000000000000000000000000000000000000000000005f9081526020819052606090611f90907fb91d8243643df86448a69427c49e640b48570a9d7972520807ad21ce3b248bf29060128510611f725760178510611f62575f611f7d565b611f6d856017614596565b611f7d565b611f7d6003866145d6565b81526020019081526020015f2054612f68565b604080518082018252600e81527f3c212d2d204c4142454c202d2d3e0000000000000000000000000000000000006020808301919091525f8781527f7f98b23ecc45ef8113f30246eedf02ba90aaeca2cd03443f1b6caef9aed885f9909152919091205491925061201e9161201690612008906123fe565b61201186612f7b565b612fb1565b839190613215565b604080518082018252600f81527f3c212d2d2046494c544552202d2d3e00000000000000000000000000000000006020808301919091525f8681527f1947e2f3b28d67acaca05a6bfbe5324d3779c5816467e7d5ae12cabf6a56bd6990915291909120549192506118509161209290612f68565b604080518082018252600c81527f3c212d2d20415254202d2d3e00000000000000000000000000000000000000006020808301919091525f8981527ff6ff15696fcd98b5c1a0b33d3221f7a9ec7068f5e0d630b9a639a13fb9203b85909152919091205461219b919061210490612f68565b61219b6040518060400160405280600d81526020017f3c212d2d2054455854202d2d3e000000000000000000000000000000000000008152506121935f5f7f6465736372697074696f6e73000000000000000000000000000000000000000081526020019081526020015f205f60088d61217e91906145d6565b6121899060106145e9565b611f7d908f614583565b899190613215565b9190613215565b60606122476040518060400160405280601081526020017f3c212d2d20434841494e4944202d2d3e000000000000000000000000000000008152506121e561251b565b61219b6040518060400160405280601481526020017f3c212d2d20504f4f4c41444452455353202d2d3e00000000000000000000000081525061223f8a73ffffffffffffffffffffffffffffffffffffffff1660146123ba565b8b9190613215565b604080518082018252601481527f3c212d2d205241524954595f4e414d45202d2d3e0000000000000000000000006020808301919091525f8881527f934fcfd0ac41364bf414d3f5dd474e8c0fa3c5e6745ad2c3cf0573b1c870f17890915291909120549197506122d0916122c8906122bf906123fe565b61201188613353565b889190613215565b95506123b06040518060400160405280601081526020017f3c212d2d2053594d424f4c31202d2d3e000000000000000000000000000000008152506123188461201188613410565b61219b6040518060400160405280601081526020017f3c212d2d2053594d424f4c30202d2d3e0000000000000000000000000000000081525061235e886120118b613410565b61219b6040518060400160405280600f81526020017f3c212d2d20524152495459202d2d3e00000000000000000000000000000000008152506123a86123a38d612409565b6134b2565b8e9190613215565b9695505050505050565b60606123c683836134de565b805161307882526002017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9091019081529392505050565b60606104fa82613582565b60606080604051019050602081016040525f8152805f19835b928101926030600a8206018453600a9004806124225750508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b6060612483612479606484614600565b62ffffff166135ef565b61248e606484614625565b62ffffff16156124e4576124b1600a6124a78186614600565b6124799190614625565b6124bf612479600a86614625565b6040516020016124d092919061464a565b6040516020818303038152906040526124f4565b60405180602001604052805f8152505b60405160200161250592919061468c565b6040516020818303038152906040529050919050565b60604660010361255d575060408051808201909152600881527f457468657265756d000000000000000000000000000000000000000000000000602082015290565b4660380361259d575060408051808201909152600f81527f424e4220536d61727420436861696e0000000000000000000000000000000000602082015290565b4661a4b1036125de575060408051808201909152600c81527f417262697472756d204f6e650000000000000000000000000000000000000000602082015290565b466121050361261f575060408051808201909152600481527f4261736500000000000000000000000000000000000000000000000000000000602082015290565b4661a86a03612660575060408051808201909152601181527f4176616c616e63686520432d436861696e000000000000000000000000000000602082015290565b466089036126a0575060408051808201909152600781527f506f6c79676f6e00000000000000000000000000000000000000000000000000602082015290565b46600a036126e0575060408051808201909152600881527f4f7074696d69736d000000000000000000000000000000000000000000000000602082015290565b4661a4ec03612721575060408051808201909152600481527f43454c4f00000000000000000000000000000000000000000000000000000000602082015290565b4660ee03612761575060408051808201909152600581527f426c617374000000000000000000000000000000000000000000000000000000602082015290565b46611388036127a2575060408051808201909152600681527f4d616e746c650000000000000000000000000000000000000000000000000000602082015290565b4661e708036127e3575060408051808201909152600581527f4c696e6561000000000000000000000000000000000000000000000000000000602082015290565b466208275003612825575060408051808201909152600681527f5363726f6c6c0000000000000000000000000000000000000000000000000000602082015290565b46606403612865575060408051808201909152600681527f476e6f7369730000000000000000000000000000000000000000000000000000602082015290565b4661868b036128a6575060408051808201909152600481527f4d6f646500000000000000000000000000000000000000000000000000000000602082015290565b4661bf04036128e7575060408051808201909152600781527f5a69726375697400000000000000000000000000000000000000000000000000602082015290565b4661045c03612928575060408051808201909152600f81527f436f726520426c6f636b636861696e0000000000000000000000000000000000602082015290565b4660fa03612968575060408051808201909152600681527f46616e746f6d0000000000000000000000000000000000000000000000000000602082015290565b466082036129a8575060408051808201909152600881527f556e69636861696e000000000000000000000000000000000000000000000000602082015290565b46610144036129e9575060408051808201909152600a81527f5a6b53796e632045726100000000000000000000000000000000000000000000602082015290565b4661053103612a2a575060408051808201909152600381527f5365690000000000000000000000000000000000000000000000000000000000602082015290565b4661ed8803612a6b575060408051808201909152600381527f424f420000000000000000000000000000000000000000000000000000000000602082015290565b46601e03612aab575060408051808201909152600981527f526f6f7473746f636b0000000000000000000000000000000000000000000000602082015290565b4662028c5803612aed575060408051808201909152600581527f5461696b6f000000000000000000000000000000000000000000000000000000602082015290565b4661013a03612b2e575060408051808201909152600881527f46696c65636f696e000000000000000000000000000000000000000000000000602082015290565b466101e003612b6f575060408051808201909152600b81527f576f726c6420436861696e000000000000000000000000000000000000000000602082015290565b4661050403612bb0575060408051808201909152600881527f4d6f6f6e6265616d000000000000000000000000000000000000000000000000602082015290565b4661046f03612bf1575060408051808201909152600481527f4c69736b00000000000000000000000000000000000000000000000000000000602082015290565b4661012003612c32575060408051808201909152600481527f426f626100000000000000000000000000000000000000000000000000000000602082015290565b4661044d03612c73575060408051808201909152600d81527f506f6c79676f6e207a6b45564d00000000000000000000000000000000000000602082015290565b4660a903612cb3575060408051808201909152600581527f4d616e7461000000000000000000000000000000000000000000000000000000602082015290565b466276adf103612cf5575060408051808201909152600481527f5a6f726100000000000000000000000000000000000000000000000000000000602082015290565b612cfe46612409565b905090565b60606104fa825f5f6136ac565b5f763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c175f526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760095ff5905073ffffffffffffffffffffffffffffffffffffffff81166104fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640161064f565b73ffffffffffffffffffffffffffffffffffffffff8216612e4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e54000000000000000000000000000000604482015260640161064f565b5f8181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612ed9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f414c52454144595f4d494e544544000000000000000000000000000000000000604482015260640161064f565b73ffffffffffffffffffffffffffffffffffffffff82165f81815260046020908152604080832080546001019055848352600390915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60606104fa612f7683613582565b6137b8565b5f6006821015612f8e5750612328919050565b60168211612f9f5750610f3c919050565b6016821115610dad5750612328919050565b60605f805b8451811015613130575f6130425f5f7f636861724f66667365747300000000000000000000000000000000000000000081526020019081526020015f205f8885815181106130065761300661437a565b016020908101517fff000000000000000000000000000000000000000000000000000000000000001682528101919091526040015f2054613582565b61304b90613f82565b90506130578184614583565b925061306281612409565b846130e55f5f7f636861725061746873000000000000000000000000000000000000000000000081526020019081526020015f205f8a87815181106130a9576130a961437a565b016020908101517fff000000000000000000000000000000000000000000000000000000000000001682528101919091526040015f20546123fe565b6040516020016130f7939291906146c8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052935050600101612fb6565b5060608382111561319f575f8261314986610d486145e9565b61315391906145d6565b9050606381111561316e5761316781612409565b9150613199565b61317781612409565b6040516020016131879190614762565b60405160208183030381529060405291505b506131d5565b5060408051808201909152600281527f333400000000000000000000000000000000000000000000000000000000000060208201525b806131e96131e46002856145d6565b612409565b846040516020016131fc93929190614793565b6040516020818303038152906040529250505092915050565b606083518351835160208701965060208601955060208501945060206040510193508287018383116132e5576001838203015f6020851061325557508388205b601f851660200360031b89515b8b51818118831c6132cc57831561329c5783888e201461329c57808a5260019c8d019c90990198848d1061329657506132e0565b50613262565b5f5b8b8101518b82015260200187811061329e57509b87019b9886019887156132cc57848d1061329657506132e0565b895260019b8c019b90980197838c10613262575b505050505b84935060206040510194508781038585030192505b808810156133155787518452602097880197909301926132fa565b50505f8184019081526020016040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201918252509392505050565b5f6003821015613365575060d2919050565b6006821015613376575060dc919050565b6009821015613387575060d2919050565b600c821015613398575060dc919050565b600f8210156133aa5750610104919050565b60138210156133bb575060e1919050565b60148210156133cd5750610104919050565b60158210156133de575060dc919050565b60168210156133ef575060d2919050565b6017821015613400575060dc919050565b60178210610dad575060d2919050565b5f60038210156134235750610640919050565b60098210156134355750610546919050565b600c82101561344757506105aa919050565b600f8210156134595750610546919050565b601382101561346b57506104e2919050565b601482101561347d5750610546919050565b601582101561348f57506105aa919050565b60178210156134a15750610546919050565b60178210610dad5750610640919050565b60606104fa827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612fb1565b6060601f1960428360011b0116604051019050602081016040525f8152806f30313233343536373839616263646566600f528283018203600119855b600f811651948201946001860153600f8160041c1651855360081c84830361351a57801561354f57632194895a5f526004601cfd5b5050508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090910190815292915050565b60608160a081901c65ffffffffffff1660d082901c5f8167ffffffffffffffff8111156135b1576135b1613b47565b6040519080825280601f01601f1916602001820160405280156135db576020820181803683370190505b509050818360208301863c95945050505050565b60605f6135fb83613892565b60010190505f8167ffffffffffffffff81111561361a5761361a613b47565b6040519080825280601f01601f191660200182016040528015613644576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461364e575b509392505050565b6060835180156136a4576003600282010460021b60405192507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f526106708515027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f18603f526020830181810183886020010180515f82525b60038a0199508951603f8160121c16515f53603f81600c1c1651600153603f8160061c1651600253603f811651600353505f5184526004840193508284106137275790526020016040527f3d3d00000000000000000000000000000000000000000000000000000000000060038406600204808303919091525f861515909102918290035290038252509392505050565b60405181516020838101938184019201015b8084101561385c578351805f1a8060051c806137fc5750600186810151855295810160020195930190920191506137ca565b600781148360011a600701821881028218600201600185836001011a85601f1660081b0101808803602082186020831102821891505f5b818101518a8201528201838110613833579a84016002019a9883019850505050505050506137ca565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08282030182525f8152602001604052919050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106138da577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310613906576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061392457662386f26fc10000830492506010015b6305f5e100831061393c576305f5e100830492506008015b612710831061395057612710830492506004015b60648310613962576064830492506002015b600a83106104fa5760010192915050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146139a0575f5ffd5b50565b5f602082840312156139b3575f5ffd5b813561185081613973565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61185060208301846139be565b5f60208284031215613a2c575f5ffd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff811681146139a0575f5ffd5b5f5f60408385031215613a65575f5ffd5b8235613a7081613a33565b946020939093013593505050565b80356bffffffffffffffffffffffff81168114610dad575f5ffd5b5f5f5f5f5f60a08688031215613aad575f5ffd5b8535613ab881613a33565b94506020860135613ac881613a33565b9350613ad660408701613a7e565b94979396509394606081013594506080013592915050565b5f5f5f60608486031215613b00575f5ffd5b8335613b0b81613a33565b92506020840135613b1b81613a33565b929592945050506040919091013590565b5f60208284031215613b3c575f5ffd5b813561185081613a33565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613bbb57613bbb613b47565b604052919050565b5f67ffffffffffffffff821115613bdc57613bdc613b47565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f830112613c17575f5ffd5b8135613c2a613c2582613bc3565b613b74565b818152846020838601011115613c3e575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f5f60808587031215613c6d575f5ffd5b8435613c7881613a33565b9350602085013567ffffffffffffffff811115613c93575f5ffd5b613c9f87828801613c08565b935050604085013567ffffffffffffffff811115613cbb575f5ffd5b613cc787828801613c08565b949793965093946060013593505050565b5f5f60408385031215613ce9575f5ffd5b8235613cf481613a33565b915060208301358015158114613d08575f5ffd5b809150509250929050565b5f5f60208385031215613d24575f5ffd5b823567ffffffffffffffff811115613d3a575f5ffd5b8301601f81018513613d4a575f5ffd5b803567ffffffffffffffff811115613d60575f5ffd5b8560208260051b8401011115613d74575f5ffd5b6020919091019590945092505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015613df9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452613de48583516139be565b94506020938401939190910190600101613daa565b50929695505050505050565b5f5f5f5f5f60808688031215613e19575f5ffd5b8535613e2481613a33565b94506020860135613e3481613a33565b935060408601359250606086013567ffffffffffffffff811115613e56575f5ffd5b8601601f81018813613e66575f5ffd5b803567ffffffffffffffff811115613e7c575f5ffd5b886020828401011115613e8d575f5ffd5b959894975092955050506020019190565b62ffffff811681146139a0575f5ffd5b5f5f5f5f60808587031215613ec1575f5ffd5b8435613ecc81613a33565b93506020850135613edc81613a33565b92506040850135613eec81613e9e565b9150613efa60608601613a7e565b905092959194509250565b5f5f60408385031215613f16575f5ffd5b8235613f2181613a33565b91506020830135613d0881613a33565b600181811c90821680613f4557607f821691505b602082108103613f7c577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b80516020808301519190811015613f7c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f60208284031215613fd4575f5ffd5b5051919050565b5f60208284031215613feb575f5ffd5b815161185081613973565b5f81518060208401855e5f93019283525090919050565b5f6140188285613ff6565b7f2d0000000000000000000000000000000000000000000000000000000000000081526140486001820185613ff6565b95945050505050565b7f50616e6f7074696320506f6f6c20666f7220746865200000000000000000000081525f6140826016830186613ff6565b7f2d0000000000000000000000000000000000000000000000000000000000000081526140b26001820186613ff6565b90507f2d0000000000000000000000000000000000000000000000000000000000000081526140e46001820185613ff6565b7f206d61726b65740000000000000000000000000000000000000000000000000081526007019695505050505050565b5f61411f8285613ff6565b7f202d20000000000000000000000000000000000000000000000000000000000081526140486003820185613ff6565b7f7b226e616d65223a22000000000000000000000000000000000000000000000081525f6141806009830189613ff6565b7f222c20226465736372697074696f6e223a22000000000000000000000000000081526141b06012820189613ff6565b90507f222c202261747472696275746573223a205b7b2274726169745f74797065223a81527f2022526172697479222c202276616c7565223a2022000000000000000000000060208201526142086035820188613ff6565b90507f227d2c207b2274726169745f74797065223a20225374726174656779222c202281527f76616c7565223a2022000000000000000000000000000000000000000000000060208201526142606029820187613ff6565b90507f227d2c207b2274726169745f74797065223a2022436861696e4964222c20227681527f616c7565223a202200000000000000000000000000000000000000000000000060208201526142b86028820186613ff6565b90507f227d5d2c2022696d616765223a2022646174613a696d6167652f7376672b786d81527f6c3b6261736536342c0000000000000000000000000000000000000000000000602082015261433c6143136029830186613ff6565b7f227d000000000000000000000000000000000000000000000000000000000000815260020190565b9998505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081525f611850601d830184613ff6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126143da575f5ffd5b83018035915067ffffffffffffffff8211156143f4575f5ffd5b602001915036819003821315614408575f5ffd5b9250929050565b818382375f9101908152919050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101949350505050565b5f602082840312156144bb575f5ffd5b815161185081613a33565b5f602082840312156144d6575f5ffd5b815167ffffffffffffffff8111156144ec575f5ffd5b8201601f810184136144fc575f5ffd5b805161450a613c2582613bc3565b81815285602083850101111561451e575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f6020828403121561454b575f5ffd5b815161185081613e9e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156104fa576104fa614556565b818103818111156104fa576104fa614556565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f826145e4576145e46145a9565b500490565b80820281158282048414176104fa576104fa614556565b5f62ffffff831680614614576146146145a9565b8062ffffff84160491505092915050565b5f62ffffff831680614639576146396145a9565b8062ffffff84160691505092915050565b7f2e0000000000000000000000000000000000000000000000000000000000000081525f61468461467e6001840186613ff6565b84613ff6565b949350505050565b5f61469a61467e8386613ff6565b7f62707300000000000000000000000000000000000000000000000000000000008152600301949350505050565b7f3c67207472616e73666f726d3d227472616e736c617465282d0000000000000081525f6146f96019830186613ff6565b7f2c203029223e0000000000000000000000000000000000000000000000000000815261473261472c6006830187613ff6565b85613ff6565b7f3c2f673e0000000000000000000000000000000000000000000000000000000081526004019695505050505050565b7f300000000000000000000000000000000000000000000000000000000000000081525f6118506001830184613ff6565b7f3c67207472616e73666f726d3d227363616c6528302e3000000000000000000081525f6147c46017830186613ff6565b7f29207472616e736c61746528000000000000000000000000000000000000000081526147f4600c820186613ff6565b90507f2c203029223e000000000000000000000000000000000000000000000000000081526147326006820185613ff656fea2646970667358221220f173253c76031e4facf779af57b8d743c22a47b989b378ebc300f7f04308975464736f6c634300081c003350616e6f7074696320563120466163746f7279204465706c6f796572204e4654730000000000000000000000000000000000000dededdd16227aa3d836c575319400000000000000000000000033128a8fc17869897dce68ed026d694621f6fdfd0000000000000000000000000000000000001b1a7fe31692d107caa42fb06862000000000000000000000000000000000001931ac40ff8b16f08e47d2a7cd65000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000000086672616d6573000000000000000000000000000000000000000000000000000073747261746567696573000000000000000000000000000000000000000000006465736372697074696f6e730000000000000000000000000000000000000000726172697469657300000000000000000000000000000000000000000000000066696c74657273000000000000000000000000000000000000000000000000006172740000000000000000000000000000000000000000000000000000000000636861724f66667365747300000000000000000000000000000000000000000063686172506174687300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000d6000000000000000000000000000000000000000000000000000000000000010a000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000001ac0000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000013000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001f0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000023000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000002700000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002f00000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000130000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001500000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000017000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000130000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001500000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000017000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000003f30000000000000000000000000000000000000000000000000000000000000003100000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000033000000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003700000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000039000000000000000000000000000000000000000000000000000000000000004100000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000043000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000450000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000004700000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000049000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004b000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004d000000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000004f0000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005100000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000000053000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000056000000000000000000000000000000000000000000000000000000000000005700000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000059000000000000000000000000000000000000000000000000000000000000005a000000000000000000000000000000000000000000000000000000000000006100000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000063000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000066000000000000000000000000000000000000000000000000000000000000006700000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000069000000000000000000000000000000000000000000000000000000000000006a000000000000000000000000000000000000000000000000000000000000006b000000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006e000000000000000000000000000000000000000000000000000000000000006f0000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000007100000000000000000000000000000000000000000000000000000000000000720000000000000000000000000000000000000000000000000000000000000073000000000000000000000000000000000000000000000000000000000000007400000000000000000000000000000000000000000000000000000000000000750000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000000000000000079000000000000000000000000000000000000000000000000000000000000007a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003f30000000000000000000000000000000000000000000000000000000000000003100000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000033000000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003700000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000039000000000000000000000000000000000000000000000000000000000000004100000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000043000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000450000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000004700000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000049000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004b000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004d000000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000004f0000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005100000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000000053000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000056000000000000000000000000000000000000000000000000000000000000005700000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000059000000000000000000000000000000000000000000000000000000000000005a000000000000000000000000000000000000000000000000000000000000006100000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000063000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000066000000000000000000000000000000000000000000000000000000000000006700000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000069000000000000000000000000000000000000000000000000000000000000006a000000000000000000000000000000000000000000000000000000000000006b000000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006e000000000000000000000000000000000000000000000000000000000000006f0000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000007100000000000000000000000000000000000000000000000000000000000000720000000000000000000000000000000000000000000000000000000000000073000000000000000000000000000000000000000000000000000000000000007400000000000000000000000000000000000000000000000000000000000000750000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000000000000000079000000000000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000d6000000000000000000000000000000000000000000000000000000000000010a000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000001ac000000000000000000000000000000000000000000000000000000000000000060000000006aa00000000000000000000000142658e41964cbd294a7f731712fd0000000007ef0000000006aa00000000000142658e41964cbd294a7f731712fd000000000a70000000000e9900000000000142658e41964cbd294a7f731712fd000000000a9200000000190900000000000142658e41964cbd294a7f731712fd000000000d2000000000239b00000000000142658e41964cbd294a7f731712fd000000000d3d0000000030bb00000000000142658e41964cbd294a7f731712fd000000000000000000000000000000000000000000000000000000000000001000000000000e000000003df800000000000142658e41964cbd294a7f731712fd000000000006000000003e0600000000000142658e41964cbd294a7f731712fd000000000008000000003e0c00000000000142658e41964cbd294a7f731712fd000000000009000000003e1400000000000142658e41964cbd294a7f731712fd00000000000b000000003e1d00000000000142658e41964cbd294a7f731712fd00000000000b000000003e2800000000000142658e41964cbd294a7f731712fd00000000000b000000003e3300000000000142658e41964cbd294a7f731712fd000000000008000000003e3e00000000000142658e41964cbd294a7f731712fd000000000010000000003e4600000000000142658e41964cbd294a7f731712fd000000000005000000003e5600000000000142658e41964cbd294a7f731712fd00000000000b000000003e5b00000000000142658e41964cbd294a7f731712fd000000000004000000003e6600000000000142658e41964cbd294a7f731712fd000000000008000000003e6a00000000000142658e41964cbd294a7f731712fd00000000000a000000003e7200000000000142658e41964cbd294a7f731712fd00000000000c000000003e7c00000000000142658e41964cbd294a7f731712fd000000000006000000003e8800000000000142658e41964cbd294a7f731712fd00000000000000000000000000000000000000000000000000000000000000300000000000f9000000003e8e00000000000142658e41964cbd294a7f731712fd0000000000f6000000003f8700000000000142658e41964cbd294a7f731712fd0000000000fc00000000407d00000000000142658e41964cbd294a7f731712fd0000000000dc00000000417900000000000142658e41964cbd294a7f731712fd0000000000ed00000000425500000000000142658e41964cbd294a7f731712fd0000000000e100000000434200000000000142658e41964cbd294a7f731712fd0000000000cd00000000442300000000000142658e41964cbd294a7f731712fd0000000000ef0000000044f000000000000142658e41964cbd294a7f731712fd0000000000c70000000045df00000000000142658e41964cbd294a7f731712fd0000000000d80000000046a600000000000142658e41964cbd294a7f731712fd0000000000d000000000477e00000000000142658e41964cbd294a7f731712fd0000000000dc00000000484e00000000000142658e41964cbd294a7f731712fd0000000000f600000000492a00000000000142658e41964cbd294a7f731712fd0000000000e8000000004a2000000000000142658e41964cbd294a7f731712fd0000000000ef000000004b0800000000000142658e41964cbd294a7f731712fd0000000000f6000000004bf700000000000142658e41964cbd294a7f731712fd0000000000f6000000004ced00000000000142658e41964cbd294a7f731712fd0000000000ea000000004de300000000000142658e41964cbd294a7f731712fd0000000000ee000000004ecd00000000000142658e41964cbd294a7f731712fd0000000000e7000000004fbb00000000000142658e41964cbd294a7f731712fd0000000000e70000000050a200000000000142658e41964cbd294a7f731712fd0000000000ed00000000518900000000000142658e41964cbd294a7f731712fd0000000000da00000000527600000000000142658e41964cbd294a7f731712fd0000000000f500000000535000000000000142658e41964cbd294a7f731712fd0000000000dc00000000544500000000000142658e41964cbd294a7f731712fd0000000000e900000000552100000000000142658e41964cbd294a7f731712fd0000000000da00000000560a00000000000142658e41964cbd294a7f731712fd0000000000ee0000000056e400000000000142658e41964cbd294a7f731712fd0000000000ee0000000057d200000000000142658e41964cbd294a7f731712fd0000000000ed0000000058c000000000000142658e41964cbd294a7f731712fd0000000000e20000000059ad00000000000142658e41964cbd294a7f731712fd0000000000e2000000005a8f00000000000142658e41964cbd294a7f731712fd0000000000d2000000005b7100000000000142658e41964cbd294a7f731712fd0000000000e2000000005c4300000000000142658e41964cbd294a7f731712fd0000000000c4000000005d2500000000000142658e41964cbd294a7f731712fd000000000122000000005de900000000000142658e41964cbd294a7f731712fd00000000014e0000000000000000000000014be53913184e1b4585a059ab084100000000012d00000000014e0000000000014be53913184e1b4585a059ab084100000000016700000000027b0000000000014be53913184e1b4585a059ab08410000000000de0000000003e20000000000014be53913184e1b4585a059ab08410000000001280000000004c00000000000014be53913184e1b4585a059ab08410000000000e90000000005e80000000000014be53913184e1b4585a059ab08410000000001700000000006d10000000000014be53913184e1b4585a059ab08410000000001490000000008410000000000014be53913184e1b4585a059ab08410000000000ee00000000098a0000000000014be53913184e1b4585a059ab0841000000000110000000000a780000000000014be53913184e1b4585a059ab0841000000000168000000000b880000000000014be53913184e1b4585a059ab084100000000011f000000000cf00000000000014be53913184e1b4585a059ab08410000000000000000000000000000000000000000000000000000000000000019000000000006000000000e0f0000000000014be53913184e1b4585a059ab0841000000000008000000000e150000000000014be53913184e1b4585a059ab0841000000000008000000000e1d0000000000014be53913184e1b4585a059ab0841000000000009000000000e250000000000014be53913184e1b4585a059ab0841000000000007000000000e2e0000000000014be53913184e1b4585a059ab0841000000000008000000000e350000000000014be53913184e1b4585a059ab0841000000000009000000000e3d0000000000014be53913184e1b4585a059ab084100000000000a000000000e460000000000014be53913184e1b4585a059ab084100000000000b000000000e500000000000014be53913184e1b4585a059ab084100000000000a000000000e5b0000000000014be53913184e1b4585a059ab084100000000000a000000000e650000000000014be53913184e1b4585a059ab084100000000000a000000000e6f0000000000014be53913184e1b4585a059ab084100000000000b000000000e790000000000014be53913184e1b4585a059ab084100000000000e000000000e840000000000014be53913184e1b4585a059ab0841000000000008000000000e920000000000014be53913184e1b4585a059ab0841000000000006000000000e9a0000000000014be53913184e1b4585a059ab0841000000000007000000000ea00000000000014be53913184e1b4585a059ab0841000000000009000000000ea70000000000014be53913184e1b4585a059ab0841000000000008000000000eb00000000000014be53913184e1b4585a059ab084100000000000a000000000eb80000000000014be53913184e1b4585a059ab0841000000000008000000000ec20000000000014be53913184e1b4585a059ab0841000000000009000000000eca0000000000014be53913184e1b4585a059ab0841000000000007000000000ed30000000000014be53913184e1b4585a059ab084100000000000b000000000eda0000000000014be53913184e1b4585a059ab0841000000000009000000000ee50000000000014be53913184e1b4585a059ab0841000000000000000000000000000000000000000000000000000000000000001900000000006a000000000eee0000000000014be53913184e1b4585a059ab0841000000000070000000000f580000000000014be53913184e1b4585a059ab0841000000000083000000000fc80000000000014be53913184e1b4585a059ab084100000000007900000000104b0000000000014be53913184e1b4585a059ab084100000000007e0000000010c40000000000014be53913184e1b4585a059ab084100000000008e0000000011420000000000014be53913184e1b4585a059ab08410000000000a00000000011d00000000000014be53913184e1b4585a059ab084100000000009f0000000012700000000000014be53913184e1b4585a059ab08410000000000a400000000130f0000000000014be53913184e1b4585a059ab08410000000000a20000000013b30000000000014be53913184e1b4585a059ab08410000000000830000000014550000000000014be53913184e1b4585a059ab08410000000000950000000014d80000000000014be53913184e1b4585a059ab084100000000009e00000000156d0000000000014be53913184e1b4585a059ab084100000000009800000000160b0000000000014be53913184e1b4585a059ab08410000000000800000000016a30000000000014be53913184e1b4585a059ab08410000000000a00000000017230000000000014be53913184e1b4585a059ab084100000000008b0000000017c30000000000014be53913184e1b4585a059ab084100000000009100000000184e0000000000014be53913184e1b4585a059ab08410000000000860000000018df0000000000014be53913184e1b4585a059ab08410000000000850000000019650000000000014be53913184e1b4585a059ab08410000000000850000000019ea0000000000014be53913184e1b4585a059ab0841000000000084000000001a6f0000000000014be53913184e1b4585a059ab0841000000000088000000001af30000000000014be53913184e1b4585a059ab0841000000000087000000001b7b0000000000014be53913184e1b4585a059ab0841000000000077000000001c020000000000014be53913184e1b4585a059ab08410000000000000000000000000000000000000000000000000000000000000010000000001aeb000000001c790000000000014be53913184e1b4585a059ab08410000000019590000000037640000000000014be53913184e1b4585a059ab084100000000198e000000000000000000000001621a6649e38465b127693ffc5db80000000020f900000000198e000000000001621a6649e38465b127693ffc5db8000000001426000000003a87000000000001621a6649e38465b127693ffc5db80000000017b1000000000000000000000001653c672601086c5135a8a8920ca80000000011ea0000000017b1000000000001653c672601086c5135a8a8920ca8000000000d0800000000299b000000000001653c672601086c5135a8a8920ca8000000000ccf0000000036a3000000000001653c672601086c5135a8a8920ca80000000038bd00000000000000000000000172ea491d6b28ae9bc1c1468b6abb000000000a410000000038bd00000000000172ea491d6b28ae9bc1c1468b6abb0000000011b40000000042fe00000000000172ea491d6b28ae9bc1c1468b6abb0000000008260000000054b200000000000172ea491d6b28ae9bc1c1468b6abb0000000023220000000000000000000000017e67ed55a9b29e103c2f164bff71000000000c830000000023220000000000017e67ed55a9b29e103c2f164bff71000000001bc5000000002fa50000000000017e67ed55a9b29e103c2f164bff71000000000000000000000000000000000000000000000000000000000000003f000000000020000000004b6a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004b8a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004baa0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004bca0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004bea0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004c0a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004c2a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004c4a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004c6a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004c8a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004caa0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004cca0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004cea0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004d0a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004d2a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004d4a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004d6a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004d8a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004daa0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004dca0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004dea0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004e0a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004e2a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004e4a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004e6a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004e8a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004eaa0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004eca0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004eea0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004f0a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004f2a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004f4a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004f6a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004f8a0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004faa0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004fca0000000000017e67ed55a9b29e103c2f164bff71000000000020000000004fea0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000500a0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000502a0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000504a0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000506a0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000508a0000000000017e67ed55a9b29e103c2f164bff710000000000200000000050aa0000000000017e67ed55a9b29e103c2f164bff710000000000200000000050ca0000000000017e67ed55a9b29e103c2f164bff710000000000200000000050ea0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000510a0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000512a0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000514a0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000516a0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000518a0000000000017e67ed55a9b29e103c2f164bff710000000000200000000051aa0000000000017e67ed55a9b29e103c2f164bff710000000000200000000051ca0000000000017e67ed55a9b29e103c2f164bff710000000000200000000051ea0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000520a0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000522a0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000524a0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000526a0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000528a0000000000017e67ed55a9b29e103c2f164bff710000000000200000000052aa0000000000017e67ed55a9b29e103c2f164bff710000000000200000000052ca0000000000017e67ed55a9b29e103c2f164bff710000000000200000000052ea0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000530a0000000000017e67ed55a9b29e103c2f164bff7100000000002000000000532a0000000000017e67ed55a9b29e103c2f164bff71000000000000000000000000000000000000000000000000000000000000003f00000000011900000000534a0000000000017e67ed55a9b29e103c2f164bff7100000000002b0000000054630000000000017e67ed55a9b29e103c2f164bff710000000000cb00000000548e0000000000017e67ed55a9b29e103c2f164bff710000000000e30000000055590000000000017e67ed55a9b29e103c2f164bff7100000000004a00000000563c0000000000017e67ed55a9b29e103c2f164bff7100000000007d0000000056860000000000017e67ed55a9b29e103c2f164bff710000000000fd0000000057030000000000017e67ed55a9b29e103c2f164bff710000000000310000000058000000000000017e67ed55a9b29e103c2f164bff7100000000016a0000000058310000000000017e67ed55a9b29e103c2f164bff710000000000ed00000000599b0000000000017e67ed55a9b29e103c2f164bff7100000000007d000000005a880000000000017e67ed55a9b29e103c2f164bff710000000000f7000000005b050000000000017e67ed55a9b29e103c2f164bff71000000000096000000005bfc0000000000017e67ed55a9b29e103c2f164bff710000000000a6000000005c920000000000017e67ed55a9b29e103c2f164bff710000000000a0000000005d380000000000017e67ed55a9b29e103c2f164bff71000000000067000000005dd80000000000017e67ed55a9b29e103c2f164bff710000000000a0000000005e3f0000000000017e67ed55a9b29e103c2f164bff71000000000050000000005edf0000000000017e67ed55a9b29e103c2f164bff71000000000024000000005f2f0000000000017e67ed55a9b29e103c2f164bff7100000000004f000000005f530000000000017e67ed55a9b29e103c2f164bff710000000000a2000000000000000000000001866c0708da6574069c9d5d58b7c800000000002b0000000000a2000000000001866c0708da6574069c9d5d58b7c80000000000a10000000000cd000000000001866c0708da6574069c9d5d58b7c800000000005d00000000016e000000000001866c0708da6574069c9d5d58b7c80000000000dd0000000001cb000000000001866c0708da6574069c9d5d58b7c80000000000a70000000002a8000000000001866c0708da6574069c9d5d58b7c80000000000ec00000000034f000000000001866c0708da6574069c9d5d58b7c80000000000c400000000043b000000000001866c0708da6574069c9d5d58b7c80000000000f70000000004ff000000000001866c0708da6574069c9d5d58b7c80000000000300000000005f6000000000001866c0708da6574069c9d5d58b7c8000000000060000000000626000000000001866c0708da6574069c9d5d58b7c8000000000030000000000686000000000001866c0708da6574069c9d5d58b7c800000000009f0000000006b6000000000001866c0708da6574069c9d5d58b7c8000000000058000000000755000000000001866c0708da6574069c9d5d58b7c800000000003c0000000007ad000000000001866c0708da6574069c9d5d58b7c800000000005a0000000007e9000000000001866c0708da6574069c9d5d58b7c8000000000071000000000843000000000001866c0708da6574069c9d5d58b7c80000000000df0000000008b4000000000001866c0708da6574069c9d5d58b7c8000000000076000000000993000000000001866c0708da6574069c9d5d58b7c800000000009d000000000a09000000000001866c0708da6574069c9d5d58b7c800000000007c000000000aa6000000000001866c0708da6574069c9d5d58b7c800000000005a000000000b22000000000001866c0708da6574069c9d5d58b7c800000000009e000000000b7c000000000001866c0708da6574069c9d5d58b7c8000000000043000000000c1a000000000001866c0708da6574069c9d5d58b7c8000000000024000000000c5d000000000001866c0708da6574069c9d5d58b7c800000000004a000000000c81000000000001866c0708da6574069c9d5d58b7c8000000000078000000000ccb000000000001866c0708da6574069c9d5d58b7c800000000002b000000000d43000000000001866c0708da6574069c9d5d58b7c80000000000a9000000000d6e000000000001866c0708da6574069c9d5d58b7c800000000005e000000000e17000000000001866c0708da6574069c9d5d58b7c80000000000c4000000000e75000000000001866c0708da6574069c9d5d58b7c800000000008e000000000f39000000000001866c0708da6574069c9d5d58b7c80000000000f6000000000fc7000000000001866c0708da6574069c9d5d58b7c80000000000ad0000000010bd000000000001866c0708da6574069c9d5d58b7c80000000000eb00000000116a000000000001866c0708da6574069c9d5d58b7c8000000000032000000001255000000000001866c0708da6574069c9d5d58b7c8000000000087000000001287000000000001866c0708da6574069c9d5d58b7c800000000009d00000000130e000000000001866c0708da6574069c9d5d58b7c80000000000960000000013ab000000000001866c0708da6574069c9d5d58b7c80000000000d4000000001441000000000001866c0708da6574069c9d5d58b7c8000000000089000000001515000000000001866c0708da6574069c9d5d58b7c800000000003700000000159e000000000001866c0708da6574069c9d5d58b7c800000000000d0000000015d5000000000001866c0708da6574069c9d5d58b7c8000000000000000000000000000000000000000000000000b361194cfe6312ee3210d53c15aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000646112e8ac00000000000000000000000082bf455e9ebd6a541ef10b683de1edcaf05ce7a182bf455e9ebd6a541ef10b683de1edcaf05ce7a1ca0683ce612aa20186ad6c09000000000000000000000000000000000000000000000000000000000000000000000000000000b361194cfe6312ee3210d53c15aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000614461ff715f82bf455e9ebd6a541ef10b683de1edcaf05ce7a1ca0683ce612aa20186ad6c09000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000060c160a060405234801561000f575f5ffd5b506040516160a13803806160a183398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f5ffd5b81516001600160a01b0381168114610065575f5ffd5b9392505050565b608051615fec6100b55f395f8181610a02015281816118f4015281816121aa01528181612ffc01528181613446015281816135600152818161386f01526143af0152615fec5ff3fe60806040526004361061016d575f3560e01c8063ac9650d8116100c6578063c79ee60d1161007c578063efb46dc311610057578063efb46dc3146104aa578063f23a6e61146104c9578063f34f6c1a146104f4575f5ffd5b8063c79ee60d14610427578063e4ecc2391461046c578063e8a792fc1461048b575f5ffd5b8063b7e0ca96116100ac578063b7e0ca9614610386578063bc197c81146103cf578063be22465d14610413575f5ffd5b8063ac9650d814610347578063acd9cb9014610367575f5ffd5b80634d7b0900116101265780636e29ebfb116101015780636e29ebfb146102ec5780637594cdc31461030b578063a461adce14610328575f5ffd5b80634d7b0900146102805780634f94c530146102b15780635036275a146102cd575f5ffd5b80632997633f116101565780632997633f146102125780632a3f8025146102335780632dda106b14610252575f5ffd5b806301ffc9a7146101715780630828a2f8146101a5575b5f5ffd5b34801561017c575f5ffd5b5061019061018b366004614f3c565b610508565b60405190151581526020015b60405180910390f35b3480156101b0575f5ffd5b506101c46101bf366004614f7a565b61053e565b60408051600298890b815296880b602088015294870b948601949094529190940b6060840152608083019390935260a08201929092526001600160801b0390911660c082015260e00161019c565b34801561021d575f5ffd5b5061023161022c366004614ff3565b6105f8565b005b34801561023e575f5ffd5b5061023161024d36600461508b565b61062d565b34801561025d575f5ffd5b5061027161026c366004615121565b61063b565b60405161019c939291906151e3565b34801561028b575f5ffd5b506003546001600160a01b03165b6040516001600160a01b03909116815260200161019c565b3480156102bc575f5ffd5b505f546001600160a01b0316610299565b3480156102d8575f5ffd5b506102316102e736600461520a565b6106db565b3480156102f7575f5ffd5b5061023161030636600461525b565b6106ef565b348015610316575f5ffd5b506002546001600160a01b0316610299565b348015610333575f5ffd5b5061023161034236600461527b565b6108bd565b61035a6103553660046152d4565b610dde565b60405161019c9190615313565b348015610372575f5ffd5b50610231610381366004615397565b610eec565b348015610391575f5ffd5b5061039a610f23565b60408051600296870b815294860b602086015292850b9284019290925290920b6060820152608081019190915260a00161019c565b3480156103da575f5ffd5b506103fa6103e9366004615544565b63bc197c8160e01b95945050505050565b6040516001600160e01b0319909116815260200161019c565b34801561041e575f5ffd5b50610190610fc6565b348015610432575f5ffd5b5061045e6104413660046155f7565b6001600160a01b03165f9081526008602052604090205460f81c90565b60405190815260200161019c565b348015610477575f5ffd5b50610231610486366004615612565b6110ba565b348015610496575f5ffd5b506102316104a5366004615694565b6117d8565b3480156104b5575f5ffd5b506102316104c43660046156f3565b611990565b3480156104d4575f5ffd5b506103fa6104e336600461577e565b63f23a6e6160e01b95945050505050565b3480156104ff575f5ffd5b50610231611eb1565b5f6001600160e01b03198216630271189760e51b148061053857506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b0382165f90815260076020908152604080832084845290915280822054905163cacfb53560e01b8152600481019190915281908190819081908190819073000000000001d1d59e8fce3945e7086ef4d80cbe9063cacfb5359060240160e060405180830381865af41580156105bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105e091906157d6565b959f949e50929c50909a509850965090945092505050565b610606600186338585611fdc565b50505f61061733868661271061206d565b905080156106255760018190555b505050505050565b61062586868686868661215d565b5f5f60605f5f5f9054906101000a90046001600160a01b03166001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa15801561068f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b3919061586b565b50505050509150506106ca88878760018b86612422565b935093509350509450945094915050565b6106e983838361341561206d565b50505050565b6002546003546040516370a0823160e01b81523360048201526001600160a01b039283169290911690849083906307a2d13a9082906370a0823190602401602060405180830381865afa158015610748573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076c91906158ed565b6040518263ffffffff1660e01b815260040161078a91815260200190565b602060405180830381865afa1580156107a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c991906158ed565b108061089f57506040516370a0823160e01b815233600482015283906001600160a01b038316906307a2d13a9082906370a0823190602401602060405180830381865afa15801561081c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084091906158ed565b6040518263ffffffff1660e01b815260040161085e91815260200190565b602060405180830381865afa158015610879573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089d91906158ed565b105b156106e9576040516334b3313560e11b815260040160405180910390fd5b6108c98285855f6126f0565b5f84846108d7600182615918565b8181106108e6576108e661592b565b905060200201359050610902828261276590919063ffffffff16565b158061090e5750600382115b1561092c57604051635bea27bb60e11b815260040160405180910390fd5b6001600160a01b0383165f90815260076020908152604080832084845290915281205461095c908390859061277e565b90505f5f5f9054906101000a90046001600160a01b03166001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156109ae573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d2919061586b565b50505050509150505f5f6109ef86866127eb90919063ffffffff16565b5f80549192509081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691633cc3c1da91163086610a378b60e81c90565b610a418c60d01c90565b6040516001600160e01b031960e088901b1681526001600160a01b0395861660048201529490931660248501526044840191909152600290810b606484015290810b608483015288900b60a4820152600160c482015260e4016040805180830381865afa158015610ab4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad8919061593f565b9092509050610afc6001600160801b0383168260801b6001600160801b0319160190565b6001600160a01b038a165f9081526004602090815260408083208b845282528083208c84529091529020805490829055909450610b39858261280e565b9450505050505f610b478490565b6001600160801b031690505f610ba8600160401b83610b668660801c90565b6001600160801b03160281610b7d57610b7d615977565b04610ba0600160401b6001600160801b03871686025b046001600160801b031690565b9060801b0190565b6002549091506001600160a01b031663083953d9895f8080866040516001600160e01b031960e088901b1681526001600160a01b039095166004860152600f93840b602486015291830b6044850152820b60648401525f03900b608482015260a4016020604051808303815f875af1158015610c26573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4a919061598b565b506003546001600160a01b031663083953d9895f8080610c6a8760801d90565b6040516001600160e01b031960e088901b1681526001600160a01b039095166004860152600f93840b602486015291830b6044850152820b60648401525f03900b608482015260a4016020604051808303815f875af1158015610ccf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf3919061598b565b505f610d048789603002604c011c90565b610d0e888a61284e565b610d18898b6127eb565b60405160e893841b60208201529190921b6023820152602681019190915260460160408051601f1981840301815291815281516020928301205f8181526006909352912054909150610d6a9083612861565b5f828152600660209081526040918290209290925580518a815291820184905288916001600160a01b038c16917f4358c577d4c62044fa8caea3ad9778fe842e777c7903f2452d20661f6ff250b7910160405180910390a3505050610dd386898961271061206d565b505050505050505050565b60608167ffffffffffffffff811115610df957610df961541d565b604051908082528060200260200182016040528015610e2c57816020015b6060815260200190600190039081610e175790505b5090505f5b82811015610ee5575f8030868685818110610e4e57610e4e61592b565b9050602002810190610e6091906159ab565b604051610e6e9291906159ee565b5f60405180830381855af49150503d805f8114610ea6576040519150601f19603f3d011682016040523d82523d5f602084013e610eab565b606091505b509150915081610ebd57805160208201fd5b80848481518110610ed057610ed061592b565b60209081029190910101525050600101610e31565b5092915050565b610efb33838360018a8a6128a0565b50505f610f0c33868661271061206d565b90508015610f1a5760018190555b50505050505050565b5f8054600154604051630fa9923d60e21b81526001600160a01b0390921660048301526024820152819081908190819073000000000001cd07e625a9e225c37bea50b3f44190633ea648f49060440160a060405180830381865af4158015610f8d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb191906159fd565b50600154939992985090965094509092509050565b5f805460408051633850c7bd60e01b8152905183926001600160a01b031691633850c7bd9160048083019260e09291908290030181865afa15801561100d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611031919061586b565b50505050509150505f60015490505f6002600860cc84901c62ffffff168161105b5761105b615977565b0660180262ffffff1683901c600860c985901c62ffffff168161108057611080615977565b0660180262ffffff1684901c0160020b8161109d5761109d615977565b0590506103b96110b182850360020b612968565b13935050505090565b6110c68383835f6126f0565b5f6110cf612982565b5f8054600154604051630fa9923d60e21b81526001600160a01b0390921660048301526024820152919250908190819073000000000001cd07e625a9e225c37bea50b3f44190633ea648f49060440160a060405180830381865af4158015611139573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115d91906159fd565b50929550909350909150610201905061117a85850360020b612968565b131561119957604051630e7248fb60e41b815260040160405180910390fd5b60408051600480825260a082019092525f916020820160808036833701905050905082815f815181106111ce576111ce61592b565b602002602001019060020b908160020b8152505084816001815181106111f6576111f661592b565b600292830b6020918202929092010152815183918391811061121a5761121a61592b565b602002602001019060020b908160020b8152505083816003815181106112425761124261592b565b602002602001019060020b908160020b8152505061126788888887856127105f612a0d565b505f915081905080808667ffffffffffffffff8111156112895761128961541d565b6040519080825280602002602001820160405280156112c257816020015b6112af614ed3565b8152602001906001900390816112a75790505b5090505f6112d58a8a8a60015f8b612422565b600254929550935091506001600160a01b03166309e085108b898587866040518663ffffffff1660e01b8152600401611312959493929190615a64565b602060405180830381865afa15801561132d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061135191906158ed565b6003549095506001600160a01b03166309e085108b89856113728860801c90565b61137c8760801c90565b6040518663ffffffff1660e01b815260040161139c959493929190615a64565b602060405180830381865afa1580156113b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113db91906158ed565b6002546040516317066a5760e21b81526001600160a01b038d8116600483015292965091169250635c19a95c91506024015f604051808303815f87803b158015611423575f5ffd5b505af1158015611435573d5f5f3e3d5ffd5b50506003546040516317066a5760e21b81526001600160a01b038c811660048301529091169250635c19a95c91506024015f604051808303815f87803b15801561147d575f5ffd5b505af115801561148f573d5f5f3e3d5ffd5b505050505f5f60606114c28b6001620d89e7196114ac9190615ab0565b6114ba620d89e86001615ad5565b5f8e8e6128a0565b90925090505f73000000000001cd07e625a9e225c37bea50b3f441632a7f2f9488886114ed8d612adf565b6040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b03166044820152606481018690526084810188905260a4016040805180830381865af415801561154a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061156e9190615afa565b80925081955050505f8c90505f8a90505f8d8d808060200260200160405190810160405280939291908181526020018383602002808284375f920182905250600254600354959650909473000000000001cd07e625a9e225c37bea50b3f4419450637679c392935088925086918b918b916001600160a01b0390811691166115f58b612adf565b60066040518963ffffffff1660e01b815260040161161a989796959493929190615b73565b602060405180830381865af4158015611635573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165991906158ed565b90506116658882612dfa565b6002549098506001600160a01b0316965063e81c105495503394508f9350611692925087915061277b9050565b6040516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152600f0b60448201526064015f604051808303815f87803b1580156116e1575f5ffd5b505af11580156116f3573d5f5f3e3d5ffd5b50506003546001600160a01b0316915063e81c10549050338b6117168560801d90565b6040516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152600f0b60448201526064015f604051808303815f87803b158015611765575f5ffd5b505af1158015611777573d5f5f3e3d5ffd5b50505050611789338c8c61271061206d565b506040518181526001600160a01b038a169033907f6f365e31bb09bf241744307ce951bb36bbc5d4a332da9714f77b420a84962de8906020015b60405180910390a35050505050505050505050565b5f546001600160a01b03161561180157604051637983c05160e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b038716908117825560408051633850c7bd60e01b81529051633850c7bd9160048082019260e0929091908290030181865afa158015611856573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187a919061586b565b50505050504260d81b65ffffff000000601883901b160162ffffff8216017af590a6f276170d89e9f276170d89e9f276170d89e900000000000001600155600280546001600160a01b038781166001600160a01b0319928316811790935560038054888316931683179055604051636dfff8e560e11b81527f0000000000000000000000000000000000000000000000000000000000000000821660048201526024810193909352604483019190915288811660648301528716608482015290925073000000000001a911be5b2c386cc5807219f10ebe915063dbfff1ca9060a4015f6040518083038186803b158015611972575f5ffd5b505af4158015611984573d5f5f3e3d5ffd5b50505050505050505050565b61199c3383835f6126f0565b5f6119a5612982565b90506119b18682612e89565b5f805460408051633850c7bd60e01b8152905183926001600160a01b031691633850c7bd9160048083019260e09291908290030181865afa1580156119f8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a1c919061586b565b505050506001600160a01b038c165f9081526007602090815260408083208e84529091528120549294509250611a4f9050565b90505f611a5c8a83612f39565b5060028054604051637e1c061160e11b815286830b60048201529188900b6024830152604482018d90526001600160801b0385166064830152608482018390529192506001600160a01b039091169063fc380c229060a401602060405180830381865afa158015611acf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611af391906158ed565b6002546040516317066a5760e21b81526001600160a01b038e8116600483015292965091169350635c19a95c925060240190505f604051808303815f87803b158015611b3d575f5ffd5b505af1158015611b4f573d5f5f3e3d5ffd5b50506003546040516317066a5760e21b81526001600160a01b038c811660048301529091169250635c19a95c91506024015f604051808303815f87803b158015611b97575f5ffd5b505af1158015611ba9573d5f5f3e3d5ffd5b50505050611bd86001888a6001620d89e719611bc59190615ab0565b611bd3620d89e86001615ad5565b611fdc565b50506002805460035460405163d42bc5e960e01b81526001600160a01b03808d166004830152602482018690529386900b604482015291831660648301529190911660848201525f9073000000000001cd07e625a9e225c37bea50b3f4419063d42bc5e99060a401602060405180830381865af4158015611c5b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c7f91906158ed565b6002549091506001600160a01b0316633bec831b8a33846040516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152600f0b60448201526064015f604051808303815f87803b158015611ce5575f5ffd5b505af1158015611cf7573d5f5f3e3d5ffd5b50506003546001600160a01b03169150633bec831b90508a33611d1a8560801d90565b6040516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152600f0b60448201526064015f604051808303815f87803b158015611d69575f5ffd5b505af1158015611d7b573d5f5f3e3d5ffd5b50506002546040516374a8f10360e01b81526001600160a01b038d8116600483015290911692506374a8f10391506024015f604051808303815f87803b158015611dc3575f5ffd5b505af1158015611dd5573d5f5f3e3d5ffd5b50506003546040516374a8f10360e01b81526001600160a01b038d8116600483015290911692506374a8f10391506024015f604051808303815f87803b158015611e1d575f5ffd5b505af1158015611e2f573d5f5f3e3d5ffd5b50505050611e4189888861271061206d565b508315611e5857611e5633868661341561206d565b505b87896001600160a01b0316336001600160a01b03167f0678d01a4d4354dc7b249ea5bc59dcd8ce288bfb79e3522e80134a85807f35a285604051611e9e91815260200190565b60405180910390a4505050505050505050565b5f805460408051633850c7bd60e01b8152905183926001600160a01b031691633850c7bd9160048083019260e09291908290030181865afa158015611ef8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f1c919061586b565b50506001545f8054604051635601910160e01b815261ffff808816600483015286166024820152603c604482015260648101939093526001600160a01b0316608483015293975091955091935073000000000001cd07e625a9e225c37bea50b3f44192506356019101915060a4016040805180830381865af4158015611fa4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fc89190615c24565b9150508015611fd75760018190555b505050565b5f611fe5614ef1565b6001600160a01b0385165f9081526007602090815260408083208984529091529020546120168886868a858b612f91565b809450819350505086866001600160a01b03167fd7b5aa501d6c32aac0775207ad2e590a1ef403c1c04f5ec35e0f3fa31695e031838560405161205a929190615c50565b60405180910390a3509550959350505050565b5f8054600154604051630fa9923d60e21b81526001600160a01b03909216600483015260248201528190819081908190819073000000000001cd07e625a9e225c37bea50b3f44190633ea648f49060440160a060405180830381865af41580156120d9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120fd91906159fd565b93985091965094509250905062ffffff851665ffffff000000601886901b160168ffffff000000000000603085901b16016bffffff000000000000000000604884901b160161214f8b8b8b848c61322e565b509998505050505050505050565b5f86865f1981018181106121735761217361592b565b90506020020135905061218933888860016126f0565b5f5460405163caa9a08d60e01b81526001600160a01b0391821660048201527f00000000000000000000000000000000000000000000000000000000000000009091169063caa9a08d90602401602060405180830381865afa1580156121f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122159190615c86565b67ffffffffffffffff168167ffffffffffffffff161461224e576040516393db026360e01b81525f600482015260240160405180910390fd5b335f90815260076020908152604080832084845290915290205415612286576040516314c1cb9960e31b815260040160405180910390fd5b5f5f61229583888888886133de565b5f8054600154604051630fa9923d60e21b81526001600160a01b0390921660048301526024820152929450909250908190819081908190819073000000000001cd07e625a9e225c37bea50b3f44190633ea648f49060440160a060405180830381865af4158015612308573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061232c91906159fd565b939850919650945092509050604882901b6bffffff00000000000000000016603084901b68ffffff00000000000016601886901b65ffffff0000001662ffffff88160101019550801561237f5760018190555b5050335f8181526007602090815260408083208b845290915290206001600160801b038d16608089901b73ffffffff000000000000000000000000000000001660a088901b6001600160a01b03191601019081905593506123e8925090508c8c8561341561322e565b6040805182815260208101859052869133917fd25e9c8a7c7dd9c3d0d451d7f1fae7c97675a289891e1003df62e9a9f064d28191016117c3565b5f806060868067ffffffffffffffff8111156124405761244061541d565b60405190808252806020026020018201604052801561247957816020015b612466614ed3565b81526020019060019003908161245e5790505b509150895f5b828110156126e1575f8b8b8381811061249a5761249a61592b565b905060200201359050808583815181106124b6576124b661592b565b60200260200101515f600281106124cf576124cf61592b565b602090810291909101919091526001600160a01b0384165f9081526007825260408082208483529092522054855186908490811061250f5761250f61592b565b60200260200101516001600281106125295761252961592b565b6020020181815250505f5f6125778361256f89878151811061254d5761254d61592b565b60200260200101516001600281106125675761256761592b565b602002015190565b878f8e6134f4565b915091505f612585846137af565b90505f5b818110156126d15761259b8582612765565b5f036126a5578c61267d575f6125b68683603002604c011c90565b6125c0878461284e565b6125ca88856127eb565b60405160e893841b60208201529190921b602382015260268101919091526046016040516020818303038152906040528051906020012090505f61260e878461384c565b50505f83815260066020908152604080832054600590925282205492935090916126679184918a88600481106126465761264661592b565b60200201518a896004811061265d5761265d61592b565b6020020151613952565b90506126738e82612861565b9d505050506126c9565b61269e8482600481106126925761269261592b565b60200201518c90612861565b9a506126c9565b6126c68482600481106126ba576126ba61592b565b60200201518b90613a41565b99505b600101612589565b508460010194505050505061247f565b50505096509650969350505050565b6001600160a01b0384165f9081526008602052604081205482840391805b838110156127445761273a8288888481811061272c5761272c61592b565b905060200201356001613aa1565b915060010161270e565b50818114610f1a57604051634cf43be760e11b815260040160405180910390fd5b5f60026048603084020184901c5b069392505050565b90565b5f808061278b8686613b40565b90925090505f61279b8787613b77565b6127ae906001600160801b038716615ca1565b90506127ba8787613b89565b5f036127d5576127cb838383613b9b565b93505050506127e4565b6127cb838383613c5a565b5050505b9392505050565b5f60026049603084020184901c612773565b60801b6001600160801b0319160190565b808203828111806128305750826001600160801b0316816001600160801b0316115b1561053857604051633486405d60e21b815260040160405180910390fd5b5f6110006064603084020184901c612773565b818101828110806128305750826001600160801b0316816001600160801b0316101561053857604051633486405d60e21b815260040160405180910390fd5b5f60608267ffffffffffffffff8111156128bc576128bc61541d565b6040519080825280602002602001820160405280156128f557816020015b6128e2614ef1565b8152602001906001900390816128da5790505b5090505f5b8381101561295c575f612928878787858181106129195761291961592b565b905060200201358c8c8c611fdc565b84848151811061293a5761293a61592b565b602090810291909101015290506129518482612dfa565b9350506001016128fa565b50965096945050505050565b5f5f821361297e5761297982615cb8565b610538565b5090565b5f8054604051632d60befd60e11b81526001600160a01b039091166004820152610258602482015273000000000001cd07e625a9e225c37bea50b3f44190635ac17dfa90604401602060405180830381865af41580156129e4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a089190615cd2565b905090565b5f5f5f612a1f8a8a8a60015f8c612422565b885192955090935091505f805b82811015612a7457612a5b8d8a8381518110612a4a57612a4a61592b565b60200260200101518689898d613c95565b612a65575f612a68565b60015b90910190600101612a2c565b50858015612a855750818160ff1614155b15612aa3576040516334b3313560e11b815260040160405180910390fd5b85158015612ab3575060ff811615155b15612ad157604051632a23f1ad60e01b815260040160405180910390fd5b505050505050505050505050565b5f5f5f8360020b12612af4578260020b612afb565b8260020b5f035b9050620d89e8811115612b21576040516333a3bdff60e21b815260040160405180910390fd5b5f816001165f03612b3657600160801b612b48565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612b7c576ffff97272373d413259a46990580e213a0260801c5b6004821615612b9b576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612bba576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612bd9576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612bf8576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612c17576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612c36576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612c56576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612c76576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612c96576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612cb6576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612cd6576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612cf6576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612d16576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612d36576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612d57576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615612d77576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615612d96576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615612db3576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315612dd257805f1981612dce57612dce615977565b0490505b640100000000810615612de6576001612de8565b5f5b60ff16602082901c0192505050919050565b5f5f612e068360801d90565b600f0b612e138560801d90565b600f0b019050805f84600f0b86600f0b0190505f8190508383600f0b141580612e3f57508181600f0b14155b15612e5d57604051633486405d60e21b815260040160405180910390fd5b612e7e836001600160801b031987168388016001600160801b031601610ba0565b979650505050505050565b5f612e93836137af565b90505f5b81811015612f1e575f80612ebc612eae878561284e565b603088901c61ffff16613dd4565b90925090505f612ed18785603002604c011c90565b905081810160020b8660020b121580612ef1575082810360020b8660020b125b15612f1057612f008785612765565b600103612f105750505050505050565b505050806001019050612e97565b5050604051633b90fbed60e11b815260040160405180910390fd5b5f5f5f612f45856137af565b90505f5b81811015612f88575f5f612f5e888885613e17565b9092509050612f6d8683612dfa565b9550612f798582612dfa565b94508260010192505050612f49565b50509250929050565b612f99614ef1565b5f612fa2610fc6565b15612fb9578560020b8760020b1315612fb9579495945b60405163266601a360e01b8152600481018690526001600160801b0385166024820152600288810b604483015287900b60648201525f9081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063266601a39060840160a0604051808303815f875af1158015613042573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130669190615ced565b915091505f6130788689858a8f613eef565b955090505f806130888a8a612f39565b60025491935091505f906001600160a01b031663083953d98a858589896040516001600160e01b031960e088901b1681526001600160a01b039095166004860152600f93840b602486015291830b6044850152820b6064840152900b608482015260a4016020604051808303815f875af1158015613108573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061312c919061598b565b90506001600160801b031987168782016001600160801b0316016003549097505f91506001600160a01b031663083953d98a6131688660801d90565b6131728660801d90565b61317c8a60801d90565b6131868a60801d90565b6040516001600160e01b031960e088901b1681526001600160a01b039095166004860152600f93840b602486015291830b6044850152820b6064840152900b608482015260a4016020604051808303815f875af11580156131e9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061320d919061598b565b905061321b878260801b0190565b9650505050505050965096945050505050565b61323a8585855f6126f0565b5f5f5f5f6132478661425f565b9350935093509350606060026103b96132609190615e8e565b600261326c8588615ab0565b60020b6132799190615e8e565b60026132858686615ab0565b60020b6132929190615e8e565b600261329e8789615ab0565b60020b6132ab9190615e8e565b6132b59190615e9c565b6132bf9190615e9c565b13156133865760408051600480825260a08201909252906020820160808036833701905050905083815f815181106132f9576132f961592b565b602002602001019060020b908160020b8152505082816001815181106133215761332161592b565b600292830b602091820292909201015281518391839181106133455761334561592b565b602002602001019060020b908160020b81525050848160038151811061336d5761336d61592b565b602002602001019060020b908160020b815250506133ce565b604080516001808252818301909252906020808301908036833701905050905083815f815181106133b9576133b961592b565b602002602001019060020b908160020b815250505b6119848a8a8a88858b6001612a0d565b5f5f5f6133e9610fc6565b90508015613403578360020b8560020b1315613403579293925b60405163fdf90cc160e01b8152600481018990526001600160801b0388166024820152600286810b604483015285900b60648201525f9081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fdf90cc19060840160a0604051808303815f875af115801561348c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134b09190615ced565b915091506134c08a838b8b6142af565b6134d48a8a838960020b8b60020b126145a8565b909550935082156134e757632710271094505b5050509550959350505050565b6134fc614ef1565b613504614f0f565b5f61350e886137af565b90505f5b818110156137a3575f6135258a83612765565b905080600114806135335750865b1561379a575f6135448b848c61277e565b90505f6135518c856127eb565b5f549091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691633cc3c1da911630846135958760e81c90565b61359f8860d01c90565b6040516001600160e01b031960e088901b1681526001600160a01b0395861660048201529490931660248501526044840191909152600290810b606484015290810b60848301528b900b60a482015260c4810186905260e4016040805180830381865afa158015613612573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613636919061593f565b6001600160801b0391821691168786600481106136555761365561592b565b602002015188876004811061366c5761366c61592b565b60209081029190910151810192909252919091526001600160a01b038b165f9081526004825260408082208f83528352808220878352909252205461373d600160401b846001600160801b03166136c38460801c90565b6001600160801b03168a89600481106136de576136de61592b565b6020020151600160200201510302816136f9576136f9615977565b04610ba0600160401b866001600160801b0316856001600160801b03168c8b600481106137285761372861592b565b602002015151030281610b9357610b93615977565b88866004811061374f5761374f61592b565b60200201525060018390036137975761377f8785600481106137735761377361592b565b60200201515f90613a41565b8785600481106137915761379161592b565b60200201525b50505b50600101613512565b50509550959350505050565b5f7afe0000000000fe0000000000fe0000000000fe00000000000000008216600160401b8110156137e257505f92915050565b6e0100000000000000000000000000008110156138025750600192915050565b600160a01b8110156138175750600292915050565b7a0100000000000000000000000000000000000000000000000000008110156138435750600392915050565b50600492915050565b5f8080808061385b8787613b40565b5f8054929450909250906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163e53dec389116306138a38c8c6127eb565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152600286810b606483015285900b608482015260a401602060405180830381865afa158015613905573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061392991906158ed565b90508094506139388160801c90565b93508385016001600160801b031695505050509250925092565b805160208201515f91600160401b6001600160801b038716909103880281900491608087901c9003880204613a356139df821561398f5782613992565b5f195b61399c8a60801c90565b6001600160801b03166139af8960801c90565b6001600160801b031602816139c6576139c6615977565b046139d18860801c90565b6001600160801b0316614762565b613a1a84156139ee57846139f1565b5f195b8a6001600160801b0316896001600160801b03160281613a1357613a13615977565b04886139d1565b6001600160801b03169060801b6001600160801b0319160190565b98975050505050505050565b5f5f613a4d8360801d90565b600f0b613a5a8560801d90565b600f0b039050805f84600f0b86600f0b0390505f8190508383600f0b141580612e3f57508181600f0b14612e5d57604051633486405d60e21b815260040160405180910390fd5b5f5f83604051602001613ab691815260200190565b604051602081830303815290604052805190602001205f1c85187effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690505f83613b1557613b02856137af565b613b109060f888901c615918565b613b30565b613b1e856137af565b613b2c9060f888901c615ec3565b60ff165b60f81b9190910195945050505050565b5f80613b6c613b548585603002604c011c90565b613b5e868661284e565b603087901c61ffff16614777565b909590945092505050565b5f60806041603084020184901c612773565b5f60026040603084020184901c612773565b5f5f613ba685612adf565b90505f613bb285612adf565b9050613c508686613bf2613bed88613bdc876001600160a01b0316896001600160a01b0316614799565b8888036001600160a01b03166147f7565b6148a1565b7fffffff000000000000000000000000000000000000000000000000000000000060e884901b167cffffff000000000000000000000000000000000000000000000000000060d084901b16016001600160801b038216019392505050565b9695505050505050565b5f5f613c6585612adf565b90505f613c7185612adf565b9050613c508686613bf2613bed88600160601b8888036001600160a01b03166147f7565b6002545f9081906001600160a01b03166309e0851089898989896040518663ffffffff1660e01b8152600401613ccf959493929190615a64565b602060405180830381865afa158015613cea573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d0e91906158ed565b6003549091505f906001600160a01b03166309e085108a8a8a613d318b60801c90565b613d3b8b60801c90565b6040518663ffffffff1660e01b8152600401613d5b959493929190615a64565b602060405180830381865afa158015613d76573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d9a91906158ed565b90505f5f613db18484613dac8d612adf565b6148d0565b91509150613dc281876127106149bb565b909110159a9950505050505050505050565b5f806002613de28486615edc565b613dec9190615efb565b613e0b613df98587615f3f565b62ffffff166002808204910615150190565b915091505b9250929050565b5f5f5f613e258686866149f7565b90505f613e328786612765565b159050613e3f87866127eb565b5f03613eac578015613e7e57613e77613e5c83614adc565b614adc565b6001600160801b031985169085016001600160801b03160190565b9250613ee5565b613ea5613e8a83614adc565b6001600160801b031986169086016001600160801b03160190565b9350613ee5565b8015613eca57613e77613ec2613e578460801c90565b60801b840190565b613ee2613eda613e578460801c90565b60801b850190565b93505b5050935093915050565b5f613ef8614ef1565b5f613f02876137af565b9050613f0c614f0f565b613f1d88878b6001627fffff6134f4565b90935090505f5b8281101561422c575f848260048110613f3f57613f3f61592b565b602002015190505f613f568b84603002604c011c90565b613f608c8561284e565b613f6a8d866127eb565b60405160e893841b60208201529190921b602382015260268101919091526046016040516020818303038152906040528051906020012090505f613fde8b8560048110613fb957613fb961592b565b602002015160065f8581526020019081526020015f205461286190919063ffffffff16565b9050613fea8c85612765565b600103614015578815614004576140018184613a41565b90505b61400e8884612dfa565b97506141ec565b5f5f5f6140238f888f61277e565b9050806001600160801b031692506140418f88640900000000614b02565b91505f90506140508383615f5d565b5f8681526005602052604081205491925061408361406e8686615f5d565b87848b8e8e6004811061265d5761265d61592b565b905061408f868261280e565b955061409b8d82612dfa565b9c50808c8a600481106140b0576140b061592b565b602002015289895f86900361411d576141188c82600481106140d4576140d461592b565b6020020151600160200201518d83600481106140f2576140f261592b565b60200201515f60200201516001600160801b03169060801b6001600160801b0319160190565b6141d6565b6141d68661417461412e8d60801d90565b600f0b600160401b028a86866004811061414a5761414a61592b565b60200201516001602002015102896141628a60801c90565b6001600160801b03160203015f614b97565b8161418157614181615977565b04876141b18d600160401b02600f0b8b8787600481106141a3576141a361592b565b602002015151028a8a614162565b816141be576141be615977565b046001600160801b03166127fd90919063ffffffff16565b5f8a815260056020526040902055505050505050505b5f918252600660209081526040808420929092556001600160a01b038e168352600481528183208d84528152818320858452905281205550600101613f24565b506001600160a01b0389165f9081526007602090815260408083208b845290915281208190556137a3908a908a90614ba5565b5f80808060a085901b6001600160a01b0319166bffffffffffffffffffffffff861661428b8260b81c90565b6142958360d01c90565b61429f8460e81c90565b9450945094509450509193509193565b6142bb33856001614ba5565b5f6142c5856137af565b90505f5b81811015610625575f6142dc8783612765565b90505f6142ee8884603002604c011c90565b6142f8898561284e565b6143028a866127eb565b60405160e893841b60208201529190921b602382015260268101919091526046016040516020818303038152906040528051906020012090506143758784600481106143505761435061592b565b602002015160065f8481526020019081526020015f205461286190919063ffffffff16565b5f8281526006602052604081209190915561439189858961277e565b90505f80806143a08c886127eb565b5f549091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691633cc3c1da911630846143e48960e81c90565b6143ee8a60d01c90565b6040516001600160e01b031960e088901b1681526001600160a01b0395861660048201529490931660248501526044840191909152600290810b60648401520b6084820152627fffff60a482015260c4810189905260e4016040805180830381865afa158015614460573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614484919061593f565b6001600160801b0391821694501691506144aa838360801b6001600160801b0319160190565b60045f336001600160a01b03166001600160a01b031681526020019081526020015f205f8e81526020019081526020015f205f8981526020019081526020015f2081905550505f6145268c88885f1461451b5761451667ffffffffffffffff8d16640900000000614762565b614b02565b640900000000614b02565b9050855f03614597575f858152600560205260409020546001600160801b03851680830361458584868402608086901c8402018161456657614566615977565b048583866001600160801b031602858a0201816141be576141be615977565b5f898152600560205260409020555050505b5050505050508060010190506142c9565b5f5f5f5f6145b68888612f39565b60025491935091505f9081906001600160a01b0316630ebd39063386868c6040516001600160e01b031960e087901b1681526001600160a01b039094166004850152600f92830b602485015290820b6044840152900b6064820152891515608482015260a40160408051808303815f875af1158015614637573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061465b9190615f70565b60035491935091505f9081906001600160a01b0316630ebd3906336146808960801d90565b61468a8960801d90565b6146948f60801d90565b6040516001600160e01b031960e087901b1681526001600160a01b039094166004850152600f92830b602485015290820b6044840152900b60648201528b1515608482015260a40160408051808303815f875af11580156146f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061471b9190615f70565b909250905065ffffffff0000601083901b16840161474e6001600160801b0385168360801b6001600160801b0319160190565b975097505050505050505b94509492505050565b5f81831061477057816127e4565b5090919050565b5f5f5f5f6147858686613dd4565b90880394508701925050505b935093915050565b5f80805f19848609848602925082811083820303915050805f036147c2575060601c9050610538565b80600160601b116147d1575f5ffd5b5f600160601b85870980840360601c9310909103600160a01b0291909117949350505050565b5f80805f19858709858702925082811083820303915050805f0361482b575f8411614820575f5ffd5b5082900490506127e4565b808411614836575f5ffd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b806001600160801b03811681146148cb5760405163b668004560e01b815260040160405180910390fd5b919050565b5f5f600160601b836001600160a01b0316101561494f576148fa846001600160801b031684614c10565b61490d906001600160801b038716615f5d565b61492961491a8660801c90565b6001600160801b031685614c6c565b6149338760801c90565b6001600160801b03166149469190615f5d565b91509150614791565b836001600160801b031661496c866001600160801b031685614cc1565b6149769190615f5d565b6149808560801c90565b6001600160801b03166149a56149968860801c90565b6001600160801b031686614d0c565b6149af9190615f5d565b91509150935093915050565b5f6149c78484846147f7565b90505f82806149d8576149d8615977565b84860911156127e4575f1981106149ed575f5ffd5b6001019392505050565b5f80808080614a068887613b40565b915091505f614a37614a1784612adf565b6001600160a01b0316614a2984612adf565b6001600160a01b0316614799565b9050614a438988613b89565b5f03614a7c57614a538988613b77565b614a5d9089615f94565b9450614a75613bed866001600160801b031683614d57565b9350614ab0565b614a868988613b77565b614a909089615f94565b9350614aad613bed856001600160801b0316600160601b846149bb565b94505b614acf6001600160801b0386168560801b6001600160801b0319160190565b9998505050505050505050565b805f600f82900b12156148cb5760405163b668004560e01b815260040160405180910390fd5b5f5f5f614b0f868661384c565b919450925090506001600160801b038216158015614b3457506001600160801b038116155b15614b405750506127e4565b5f826001600160801b0316826001600160801b03166401000000000281614b6957614b69615977565b0490508467ffffffffffffffff168111156127e057604051631d43cae160e11b815260040160405180910390fd5b5f81831361477057816127e4565b6001600160a01b0383165f90815260086020526040812054614bc8908484613aa1565b9050601960f882901c1115614bf057604051630ed7e77760e01b815260040160405180910390fd5b6001600160a01b039093165f908152600860205260409020929092555050565b5f6001600160801b036001600160a01b0383161015614c4b57614c4483600160c01b6002856001600160a01b03160a6147f7565b9050610538565b614c4483600160801b614c676001600160a01b03861680614d89565b6147f7565b5f6001600160801b036001600160a01b0383161015614ca057614c4483600160c01b6002856001600160a01b03160a6149bb565b614c4483600160801b614cbc6001600160a01b03861680614d89565b6149bb565b5f6001600160801b036001600160a01b0383161015614cf057614c44836002846001600160a01b03160a614de7565b614c4483614d076001600160a01b03851680614d89565b614e45565b5f6001600160801b036001600160a01b0383161015614d3b57614c44836002846001600160a01b03160a614ea3565b614c4483614d526001600160a01b03851680614d89565b614ebb565b5f614d628383614799565b90505f600160601b5b8385091115610538575f198110614d80575f5ffd5b60010192915050565b5f80805f19848609848602925082811083820303915050805f03614db2575060401c9050610538565b80600160401b11614dc1575f5ffd5b5f600160401b85870980840360401c9310909103600160c01b0291909117949350505050565b5f80805f19848609848602925082811083820303915050805f03614e10575060c01c9050610538565b80600160c01b11614e1f575f5ffd5b5f600160c01b85870980840360c01c9310909103600160401b0291909117949350505050565b5f80805f19848609848602925082811083820303915050805f03614e6e575060801c9050610538565b80600160801b11614e7d575f5ffd5b5f600160801b85870980840360801c9310909103600160801b0291909117949350505050565b5f614eae8383614de7565b90505f600160c01b614d6b565b5f614ec68383614e45565b90505f600160801b614d6b565b60405180604001604052806002906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180608001604052806004905b614f26614ed3565b815260200190600190039081614f1e5790505090565b5f60208284031215614f4c575f5ffd5b81356001600160e01b0319811681146127e4575f5ffd5b6001600160a01b0381168114614f77575f5ffd5b50565b5f5f60408385031215614f8b575f5ffd5b8235614f9681614f63565b946020939093013593505050565b5f5f83601f840112614fb4575f5ffd5b50813567ffffffffffffffff811115614fcb575f5ffd5b6020830191508360208260051b8501011115613e10575f5ffd5b8060020b8114614f77575f5ffd5b5f5f5f5f5f60808688031215615007575f5ffd5b85359450602086013567ffffffffffffffff811115615024575f5ffd5b61503088828901614fa4565b909550935050604086013561504481614fe5565b9150606086013561505481614fe5565b809150509295509295909350565b6001600160801b0381168114614f77575f5ffd5b67ffffffffffffffff81168114614f77575f5ffd5b5f5f5f5f5f5f60a087890312156150a0575f5ffd5b863567ffffffffffffffff8111156150b6575f5ffd5b6150c289828a01614fa4565b90975095505060208701356150d681615062565b935060408701356150e681615076565b925060608701356150f681614fe5565b9150608087013561510681614fe5565b809150509295509295509295565b8015158114614f77575f5ffd5b5f5f5f5f60608587031215615134575f5ffd5b843561513f81614f63565b9350602085013561514f81615114565b9250604085013567ffffffffffffffff81111561516a575f5ffd5b61517687828801614fa4565b95989497509550505050565b5f8151808452602084019350602083015f5b828110156151d9578151865f5b60028110156151c05782518252602092830192909101906001016151a1565b5050506040959095019460209190910190600101615194565b5093949350505050565b838152826020820152606060408201525f6152016060830184615182565b95945050505050565b5f5f5f6040848603121561521c575f5ffd5b833561522781614f63565b9250602084013567ffffffffffffffff811115615242575f5ffd5b61524e86828701614fa4565b9497909650939450505050565b5f5f6040838503121561526c575f5ffd5b50508035926020909101359150565b5f5f5f5f6060858703121561528e575f5ffd5b843567ffffffffffffffff8111156152a4575f5ffd5b6152b087828801614fa4565b90955093505060208501356152c481614f63565b9396929550929360400135925050565b5f5f602083850312156152e5575f5ffd5b823567ffffffffffffffff8111156152fb575f5ffd5b61530785828601614fa4565b90969095509350505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561538b57603f19878603018452815180518087528060208301602089015e5f602082890101526020601f19601f83011688010196505050602082019150602084019350600181019050615339565b50929695505050505050565b5f5f5f5f5f5f608087890312156153ac575f5ffd5b863567ffffffffffffffff8111156153c2575f5ffd5b6153ce89828a01614fa4565b909750955050602087013567ffffffffffffffff8111156153ed575f5ffd5b6153f989828a01614fa4565b909550935050604087013561540d81614fe5565b9150606087013561510681614fe5565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561545a5761545a61541d565b604052919050565b5f82601f830112615471575f5ffd5b813567ffffffffffffffff81111561548b5761548b61541d565b8060051b61549b60208201615431565b918252602081850181019290810190868411156154b6575f5ffd5b6020860192505b83831015613c505782358252602092830192909101906154bd565b5f82601f8301126154e7575f5ffd5b813567ffffffffffffffff8111156155015761550161541d565b615514601f8201601f1916602001615431565b818152846020838601011115615528575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f5f5f60a08688031215615558575f5ffd5b853561556381614f63565b9450602086013561557381614f63565b9350604086013567ffffffffffffffff81111561558e575f5ffd5b61559a88828901615462565b935050606086013567ffffffffffffffff8111156155b6575f5ffd5b6155c288828901615462565b925050608086013567ffffffffffffffff8111156155de575f5ffd5b6155ea888289016154d8565b9150509295509295909350565b5f60208284031215615607575f5ffd5b81356127e481614f63565b5f5f5f5f5f60608688031215615626575f5ffd5b853567ffffffffffffffff81111561563c575f5ffd5b61564888828901614fa4565b909650945050602086013561565c81614f63565b9250604086013567ffffffffffffffff811115615677575f5ffd5b61568388828901614fa4565b969995985093965092949392505050565b5f5f5f5f5f60a086880312156156a8575f5ffd5b85356156b381614f63565b945060208601356156c381614f63565b935060408601356156d381614f63565b925060608601356156e381614f63565b9150608086013561505481614f63565b5f5f5f5f5f5f60808789031215615708575f5ffd5b863561571381614f63565b955060208701359450604087013567ffffffffffffffff811115615735575f5ffd5b61574189828a01614fa4565b909550935050606087013567ffffffffffffffff811115615760575f5ffd5b61576c89828a01614fa4565b979a9699509497509295939492505050565b5f5f5f5f5f60a08688031215615792575f5ffd5b853561579d81614f63565b945060208601356157ad81614f63565b93506040860135925060608601359150608086013567ffffffffffffffff8111156155de575f5ffd5b5f5f5f5f5f5f5f60e0888a0312156157ec575f5ffd5b87516157f781614fe5565b602089015190975061580881614fe5565b604089015190965061581981614fe5565b606089015190955061582a81614fe5565b608089015160a08a015160c08b0151929650909450925061584a81615062565b8091505092959891949750929550565b805161ffff811681146148cb575f5ffd5b5f5f5f5f5f5f5f60e0888a031215615881575f5ffd5b875161588c81614f63565b602089015190975061589d81614fe5565b95506158ab6040890161585a565b94506158b96060890161585a565b93506158c76080890161585a565b925060a088015160ff811681146158dc575f5ffd5b60c089015190925061584a81615114565b5f602082840312156158fd575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561053857610538615904565b634e487b7160e01b5f52603260045260245ffd5b5f5f60408385031215615950575f5ffd5b825161595b81615062565b602084015190925061596c81615062565b809150509250929050565b634e487b7160e01b5f52601260045260245ffd5b5f6020828403121561599b575f5ffd5b815180600f0b81146127e4575f5ffd5b5f5f8335601e198436030181126159c0575f5ffd5b83018035915067ffffffffffffffff8211156159da575f5ffd5b602001915036819003821315613e10575f5ffd5b818382375f9101908152919050565b5f5f5f5f5f60a08688031215615a11575f5ffd5b8551615a1c81614fe5565b6020870151909550615a2d81614fe5565b6040870151909450615a3e81614fe5565b6060870151909350615a4f81614fe5565b60809690960151949793965091949392915050565b6001600160a01b03861681528460020b602082015260a060408201525f615a8e60a0830186615182565b6001600160801b03948516606084015292909316608090910152949350505050565b600282810b9082900b03627fffff198112627fffff8213171561053857610538615904565b600281810b9083900b01627fffff8113627fffff198212171561053857610538615904565b5f5f60408385031215615b0b575f5ffd5b505080516020909101519092909150565b5f8151808452602084019350602083015f5b828110156151d9578151865f5b6004811015615b5a578251825260209283019290910190600101615b3b565b5050506080959095019460209190910190600101615b2e565b5f61010082016001600160a01b038b1683526101006020840152808a518083526101208501915060208c0192505f5b81811015615bc0578351835260209384019390920191600101615ba2565b50508381036040850152615bd4818b615b1c565b92505050866060830152615bf360808301876001600160a01b03169052565b6001600160a01b03851660a08301526001600160a01b03841660c08301528260e08301529998505050505050505050565b5f5f60408385031215615c35575f5ffd5b8251615c4081614fe5565b6020939093015192949293505050565b6001600160801b038316815260a0810160208201835f5b60048110156127e0578151835260209283019290910190600101615c67565b5f60208284031215615c96575f5ffd5b81516127e481615076565b808202811582820484141761053857610538615904565b5f600160ff1b8201615ccc57615ccc615904565b505f0390565b5f60208284031215615ce2575f5ffd5b81516127e481614fe5565b5f5f60a08385031215615cfe575f5ffd5b83601f840112615d0c575f5ffd5b6040516080810167ffffffffffffffff81118282101715615d2f57615d2f61541d565b604052806080850186811115615d43575f5ffd5b855b81811015615d5d578051835260209283019201615d45565b50519196919550909350505050565b80825b600185111561475957808604811115615d8a57615d8a615904565b6001851615615d9857908102905b60019490941c938002615d6f565b5f828015615dbb5760018114615dc557615dce565b6001915050610538565b82915050610538565b5081615ddb57505f610538565b5060015f8213808214615df3578015615e1157615e2a565b826001600160ff1b0304831115615e0c57615e0c615904565b615e2a565b826001600160ff1b0305831215615e2a57615e2a615904565b5080831615615e365750805b615e4e6001600160ff1b038460011c84850284615d6c565b806001600160ff1b030482115f83131615615e6b57615e6b615904565b5f8212600160ff1b82900583121615615e8657615e86615904565b029392505050565b5f6127e460ff841683615da6565b8082018281125f831280158216821582161715615ebb57615ebb615904565b505092915050565b60ff818116838216019081111561053857610538615904565b5f8260020b8260020b028060020b9150808214610ee557610ee5615904565b5f8160020b8360020b80615f1d57634e487b7160e01b5f52601260045260245ffd5b627fffff1982145f1982141615615f3657615f36615904565b90059392505050565b62ffffff8181168382160290811690818114610ee557610ee5615904565b8082018082111561053857610538615904565b5f5f60408385031215615f81575f5ffd5b825163ffffffff8116811461595b575f5ffd5b6001600160801b038181168382160290811690818114610ee557610ee561590456fea2646970667358221220c4723cc8cb32955abdfb815d68da00ebc843374af15ce4aa0ce3cc3f7050e80564736f6c634300081c00330000000000000000000000000000000000000dededdd16227aa3d836c57531940000000000000000000000000000000000000000000000000000000000000000000000000000b361194cfe6312ee3210d53c15aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000646112e8ac00000000000000000000000082bf455e9ebd6a541ef10b683de1edcaf05ce7a182bf455e9ebd6a541ef10b683de1edcaf05ce7a136f15df6a78bf60145fff15c000000000000000000000000000000000000000000000000000000000000000400000000000000b361194cfe6312ee3210d53c15aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061a461ff715f82bf455e9ebd6a541ef10b683de1edcaf05ce7a136f15df6a78bf60145fff15c0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000612660e060405234801561000f575f5ffd5b506040516160c63803806160c683398101604081905261002e91610047565b6001600160a01b0390921660805260a05260c052610086565b5f5f5f60608486031215610059575f5ffd5b83516001600160a01b038116811461006f575f5ffd5b602085015160409095015190969495509392505050565b60805160a05160c051615fde6100e85f395f8181610f57015281816110c20152818161151a01526115b901525f8181610f330152818161109e015281816114f6015261159501525f8181611304015281816117bb01526118dd0152615fde5ff3fe608060405260043610610156575f3560e01c8063b909a0b3116100bb578063e985e9c511610071578063f242432a11610057578063f242432a146105c0578063fa461e33146105df578063fdf90cc1146105fe575f5ffd5b8063e985e9c5146104cc578063eb1de2e214610505575f5ffd5b8063caa9a08d116100a1578063caa9a08d146103b7578063d348799714610411578063e53dec3814610430575f5ffd5b8063b909a0b314610379578063c035e24214610398575f5ffd5b80633f8e156e11610110578063a22cb465116100f6578063a22cb46514610301578063a734bda814610320578063ac9650d814610359575f5ffd5b80633f8e156e146102655780634e1273f4146102d5575f5ffd5b8063266601a311610140578063266601a3146101cf5780632eb2c2d6146101fc5780633cc3c1da1461021d575f5ffd5b8062fdd58e1461015a57806301ffc9a7146101a0575b5f5ffd5b348015610165575f5ffd5b5061018d610174366004615117565b5f60208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b3480156101ab575f5ffd5b506101bf6101ba36600461516e565b61061d565b6040519015158152602001610197565b3480156101da575f5ffd5b506101ee6101e93660046151b4565b6106b5565b604051610197929190615204565b348015610207575f5ffd5b5061021b6102163660046152ba565b6107d1565b005b348015610228575f5ffd5b5061023c61023736600461537d565b6108bf565b604080516fffffffffffffffffffffffffffffffff938416815292909116602083015201610197565b348015610270575f5ffd5b506102b061027f3660046153fd565b67ffffffffffffffff165f9081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610197565b3480156102e0575f5ffd5b506102f46102ef366004615424565b610b31565b6040516101979190615490565b34801561030c575f5ffd5b5061021b61031b3660046154df565b610c3a565b34801561032b575f5ffd5b5061033f61033a366004615516565b610cd0565b60408051600f93840b81529190920b602082015201610197565b61036c61036736600461557a565b610d76565b6040516101979190615605565b348015610384575f5ffd5b5061021b6103933660046153fd565b610e84565b3480156103a3575f5ffd5b5061021b6103b2366004615696565b611267565b3480156103c2575f5ffd5b506103f86103d13660046156de565b73ffffffffffffffffffffffffffffffffffffffff165f9081526002602052604090205490565b60405167ffffffffffffffff9091168152602001610197565b34801561041c575f5ffd5b5061021b61042b3660046156f9565b6117a6565b34801561043b575f5ffd5b5061018d61044a366004615516565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606097881b81166020808401919091529690971b9096166034870152604886019390935260e891821b6068860152901b606b8401528051808403604e018152606e90930181528251928201929092205f9081526004909152205490565b3480156104d7575f5ffd5b506101bf6104e636600461573c565b600160209081525f928352604080842090915290825290205460ff1681565b348015610510575f5ffd5b506105a661051f3660046153fd565b67ffffffffffffffff165f908152600360209081526040918290208251606081018452905473ffffffffffffffffffffffffffffffffffffffff81168252740100000000000000000000000000000000000000008104600290810b93830184905277010000000000000000000000000000000000000000000000909104900b920182905291565b60408051600293840b81529190920b602082015201610197565b3480156105cb575f5ffd5b5061021b6105da366004615768565b611821565b3480156105ea575f5ffd5b5061021b6105f93660046156f9565b6118c8565b348015610609575f5ffd5b506101ee6106183660046151b4565b611949565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806106af57507fd9b67a26000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6106bd6150d5565b5f681face81baddeadbeef805c159030905d8061073b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e43590000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6107583388886fffffffffffffffffffffffffffffffff16611a46565b6040516fffffffffffffffffffffffffffffffff87168152879033907f23833bcc608a225445893342669a9bc035de4ef96cc1edd47cead470f1f7817a9060200160405180910390a36107b78585886107b08b611ae2565b6001611bde565b925092505f681face81baddeadbeef5d5094509492505050565b681face81baddeadbeef805c159030905d80610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e4359000000000000000000000000000000000000000000006044820152606401610732565b5f5b868110156108975761088f8a8a8a8a8581811061086a5761086a6157df565b90506020020135898986818110610883576108836157df565b90506020020135611fc0565b60010161084b565b506108a8898989898989898961221e565b5f681face81baddeadbeef5d505050505050505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606089811b8216602084015288901b1660348201526048810186905260e885811b606883015284901b606b8201525f9081908190606e01604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291815281516020928301205f81815260049093529082205490925081819050627fffff600289900b12801561098b57506fffffffffffffffffffffffffffffffff811615155b15610ae5576040517f3f63910100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8e166004820152600289810b60248301528b810b60448301528a900b60648201526fffffffffffffffffffffffffffffffff821660848201525f908e908c908c908490730000000000019851aabff4cd57dfc3e739f5975790633f6391019060a401602060405180830381865af4158015610a48573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6c919061580c565b5f8a815260076020526040902054909150610a88908290612510565b9450505050505f5f610a9a8584612620565b5f89815260056020908152604080832054600690925290912054929450909250610ac6918490846127b2565b909250905060018a14610ad95780610adb565b815b9550505050610b12565b86600114610b00575f84815260066020526040902054610b0f565b5f848152600560205260409020545b92505b82610b1d8460801c90565b955095505050505097509795505050505050565b60608367ffffffffffffffff811115610b4c57610b4c615823565b604051908082528060200260200182016040528015610b75578160200160208202803683370190505b5090505f5b84811015610c31575f5f878784818110610b9657610b966157df565b9050602002016020810190610bab91906156de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f858584818110610bf757610bf76157df565b9050602002013581526020019081526020015f2054828281518110610c1e57610c1e6157df565b6020908102919091010152600101610b7a565b50949350505050565b335f81815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606087811b8216602084015286901b1660348201526048810184905260e883811b606883015282901b606b8201525f90819081906007908290606e016040516020818303038152906040528051906020012081526020019081526020015f20549050610d5d8190565b9250610d698160801d90565b9150509550959350505050565b60608167ffffffffffffffff811115610d9157610d91615823565b604051908082528060200260200182016040528015610dc457816020015b6060815260200190600190039081610daf5790505b5090505f5b82811015610e7d575f8030868685818110610de657610de66157df565b9050602002810190610df89190615850565b604051610e069291906158b1565b5f60405180830381855af49150503d805f8114610e3e576040519150601f19603f3d011682016040523d82523d5f602084013e610e43565b606091505b509150915081610e5557805160208201fd5b80848481518110610e6857610e686157df565b60209081029190910101525050600101610dc9565b5092915050565b67ffffffffffffffff81165f9081526003602090815260408083208151606081018352905473ffffffffffffffffffffffffffffffffffffffff81168252740100000000000000000000000000000000000000008104600290810b9483019490945277010000000000000000000000000000000000000000000000900490920b908201529061ffff603084901c1690610f1c82612974565b90505f5f611089856020015160020b61107f6110667f00000000000000000000000000000000000000000000000000000000000000006127107f00000000000000000000000000000000000000000000000000000000000000008b5f015173ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fc2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe691906158c0565b73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611052919061580c565b0281611060576110606158db565b046129be565b87876fffffffffffffffffffffffffffffffff166129d5565b5f0360020b612a41565b9150611135856040015160020b61112d6110667f00000000000000000000000000000000000000000000000000000000000000006127107f00000000000000000000000000000000000000000000000000000000000000008b5f015173ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fc2573d5f5f3e3d5ffd5b60020b612a4f565b60408051606081018252875173ffffffffffffffffffffffffffffffffffffffff9081168252600286810b60208085018281529287900b85870181815267ffffffffffffffff8f165f9081526003845288902096518754955191519087167fffffffffffffffffff0000000000000000000000000000000000000000000000909616959095177401000000000000000000000000000000000000000062ffffff92831602177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000009190951602939093179094558a5185519182529381019190915293945016917fac639863cf263ec4d7f6c93d2b312174ee3ec131a2f5789cc0dcc96a7e697226910160405180910390a2505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16106112a15781836112a4565b82825b6040517f1698ee8200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8084166004830152808316602483015262ffffff851660448301529295509093505f917f00000000000000000000000000000000000000000000000000000000000000001690631698ee8290606401602060405180830381865afa158015611349573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136d91906158c0565b905073ffffffffffffffffffffffffffffffffffffffff81166113bc576040517f4f361fe400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f90815260026020526040902054156113ec5750505050565b5f8173ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611436573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061145a9190615908565b9050607082901c65ffffffffffff16603082901b68ffffff00000000000016015b67ffffffffffffffff81165f9081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff16156114ce576001810165ffffffffffff1667ffff000000000000821601905061147b565b5f6114d883612974565b6fffffffffffffffffffffffffffffffff1690505f5f6115896115827f00000000000000000000000000000000000000000000000000000000000000006127107f00000000000000000000000000000000000000000000000000000000000000008c73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102e573d5f5f3e3d5ffd5b86856129d5565b5f0391506116216115827f00000000000000000000000000000000000000000000000000000000000000006127107f00000000000000000000000000000000000000000000000000000000000000008d73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102e573d5f5f3e3d5ffd5b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff808a16808352600287810b602080860191825287830b86880190815267ffffffffffffffff8d165f81815260038452898120985189549551935162ffffff90811677010000000000000000000000000000000000000000000000027fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff9190951674010000000000000000000000000000000000000000027fffffffffffffffffff000000000000000000000000000000000000000000000090971691909916179490941796909616179095558281529352918390207f800000000000000000000000000000000000000000000000000000000000000090910190559051919250907f4bd4bcef57942fad6bb34f8b7d1b53da46f96eefc173461c3be68165a9e729d1906117939087908690869067ffffffffffffffff939093168352600291820b6020840152900b604082015260600190565b60405180910390a2505050505050505050565b5f6117b382840184615971565b90506117e3337f0000000000000000000000000000000000000000000000000000000000000000835f0151612a5d565b84156117fd5780515160208201516117fd91903388612b5f565b831561181a5761181a815f01516020015182602001513387612b5f565b5050505050565b681face81baddeadbeef805c159030905d80611899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e4359000000000000000000000000000000000000000000006044820152606401610732565b6118a587878787611fc0565b6118b3878787878787612bea565b5f681face81baddeadbeef5d50505050505050565b5f6118d582840184615971565b9050611905337f0000000000000000000000000000000000000000000000000000000000000000835f0151612a5d565b5f5f86136119185781516020015161191c565b8151515b90505f5f871361192c578561192e565b865b90506119408284602001513384612b5f565b50505050505050565b6119516150d5565b5f681face81baddeadbeef805c159030905d806119ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e4359000000000000000000000000000000000000000000006044820152606401610732565b6119e73388886fffffffffffffffffffffffffffffffff16612e43565b6040516fffffffffffffffffffffffffffffffff87168152879033907f16695fc037c20a8984b20ffc7aadd6ce10e62756f9ca42933a1aa6459ef064ca9060200160405180910390a3611a3987612fd5565b6107b78585888a5f611bde565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526020818152604080832085845290915281208054839290611a83908490615a67565b909155505060408051838152602081018390525f9173ffffffffffffffffffffffffffffffffffffffff86169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b5f7afe0000000000fe0000000000fe0000000000fe0000000000000000821668010000000000000000811015611b1957505f611b8c565b6e010000000000000000000000000000811015611b3857506001611b8c565b74010000000000000000000000000000000000000000811015611b5d57506002611b8c565b7a010000000000000000000000000000000000000000000000000000811015611b8857506003611b8c565b5060045b7fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000816004036030027b01000000000001000000000001000000000001000000000000000000901c168318915050919050565b611be66150d5565b67ffffffffffffffff83165f9081526003602090815260408083208151606081018352905473ffffffffffffffffffffffffffffffffffffffff8116808352740100000000000000000000000000000000000000008204600290810b958401959095527701000000000000000000000000000000000000000000000090910490930b9181019190915290611ca6576040517f4f361fe400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f5f5f611cb38961338a565b90505f5b81811015611e16575f611ccb8b838e61343d565b905089611d6d5761ffff60308c901c1660e882901c60d083901c611cef8383615a7a565b60020b151580611d0a5750611d048382615a7a565b60020b15155b80611d1e5750896020015160020b8260020b125b80611d325750896040015160020b8160020b135b15611d69576040517f1577d96600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505b611d76816134a8565b86019550611d838161354a565b87519501945f90611d97908d85858f61359f565b8b8560048110611da957611da96157df565b60200201529050611dba898261382e565b9850611e07611dc98d856138f0565b15611ded57611de8825b6fffffffffffffffffffffffffffffffff1690565b611e00565b611e00611dfa8360801d90565b60801b90565b869061382e565b94508260010192505050611cb7565b50611e3260046f7fffffffffffffffffffffffffffffff615a9b565b6fffffffffffffffffffffffffffffffff16841180611e7c5750611e6760046f7fffffffffffffffffffffffffffffff615a9b565b6fffffffffffffffffffffffffffffffff1683115b15611eb3576040517f543a6e1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8a60020b8c60020b1315611ee5578115611ee157611ede86611ed8875f015185613941565b9061382e565b95505b999a995b5f855f015173ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015611f32573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f569190615afa565b50505050509150508b60020b8160020b121580611f7957508c60020b8160020b13155b15611fb0576040517ffd26c92800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050509550959350505050565b67ffffffffffffffff82165f9081526003602052604081205473ffffffffffffffffffffffffffffffffffffffff1690611ff98461338a565b90505f5b81811015611940575f61201186838761343d565b90505f848961202089866138f0565b61202a8560e81c90565b6120348660d01c90565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606096871b811660208301529490951b9093166034850152604884019190915260e890811b60688401521b606b820152606e01604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012090505f85896120d08a876138f0565b6120da8660e81c90565b6120e48760d01c90565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606096871b811660208301529490951b9093166034850152604884019190915260e890811b60688401521b606b820152606e01604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301205f8581526004909352818320548184529190922054919250901515806121a95750836fffffffffffffffffffffffffffffffff168114155b156121e0576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8281526004602090815260408083209390935584825282822082905560079052818120805493825291812092909255918152905550600101611ffd565b3373ffffffffffffffffffffffffffffffffffffffff89161480612271575073ffffffffffffffffffffffffffffffffffffffff88165f90815260016020908152604080832033845290915290205460ff165b6122a7576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80805b87811015612369578888828181106122c5576122c56157df565b9050602002013592508686828181106122e0576122e06157df565b73ffffffffffffffffffffffffffffffffffffffff8e165f9081526020818152604080832089845282528220805493909102949094013595508593925090612329908490615a67565b909155505073ffffffffffffffffffffffffffffffffffffffff8a165f9081526020818152604080832086845290915290208054830190556001016122ab565b508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b6040516123e49493929190615bd5565b60405180910390a473ffffffffffffffffffffffffffffffffffffffff89163b15612504576040517fbc197c81000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff8b169063bc197c819061246b9033908f908e908e908e908e908e908e90600401615c42565b6020604051808303815f875af1158015612487573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124ab9190615cb5565b7fffffffff000000000000000000000000000000000000000000000000000000001614612504576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050505050565b5f5f61251c8360801d90565b600f0b6125298560801d90565b600f0b039050805f84600f0b86600f0b0390505f8190508383600f0b14158061255557508181600f0b14155b1561258c576040517fd219017400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61261561259c84600f0b5f612a4f565b6125eb6125ac84600f0b5f612a4f565b889081016fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff00000000000000000000000000000000919091160190565b9060801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000160190565b979650505050505050565b5f5f5f61262d8560801c90565b6fffffffffffffffffffffffffffffffff908116915085168082015f808781608082901c905061267e826fffffffffffffffffffffffffffffffff168668010000000000000000026002890a613d28565b93506126ab816fffffffffffffffffffffffffffffffff168668010000000000000000026002890a613d28565b92505f91508190506004870486016126cc6126c7868389613d28565b613dd2565b92506126dc6126c7858389613d28565b915061271e6fffffffffffffffffffffffffffffffff84168360801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000160190565b99505f925082915081905060046002890a048887026002880a0301905061274c6126c7868360028a0a613d28565b925061275f6126c7858360028a0a613d28565b91506127a16fffffffffffffffffffffffffffffffff84168360801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000160190565b985050505050505050509250929050565b5f80806127ea865b6fffffffffffffffffffffffffffffffff16885b6fffffffffffffffffffffffffffffffff166126c79190615cd0565b90505f6128166127fa8860801c90565b6fffffffffffffffffffffffffffffffff166127ce8a60801c90565b90505f612822866127ba565b90505f6128326127fa8860801c90565b90505f6fffffffffffffffffffffffffffffffff858116148061286657506fffffffffffffffffffffffffffffffff838116145b1590505f6fffffffffffffffffffffffffffffffff858116148061289b57506fffffffffffffffffffffffffffffffff838116145b159050612900816128b5576128b08d60801c90565b6128b7565b855b836128c2578d6128c4565b875b6fffffffffffffffffffffffffffffffff169060801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000160190565b61296182612917576129128c60801c90565b612919565b845b84612924578c6128c4565b866fffffffffffffffffffffffffffffffff169060801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000160190565b9750975050505050505094509492505050565b5f600282900b620d89e88161298b5761298b6158db565b0560020260010162ffffff166fffffffffffffffffffffffffffffffff8016816129b7576129b76158db565b0492915050565b5f8183116129cc57816129ce565b825b9392505050565b5f612a39612a32857c01000000000000000000000000000000000000000000000000000000006c01000000000000000000000000612a1288613e04565b0373ffffffffffffffffffffffffffffffffffffffff1686026080614145565b600d614216565b949350505050565b5f8183126129cc57816129ce565b5f8183136129cc57816129ce565b8051602082015160408084015190517f1698ee8200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152918316602483015262ffffff16604482015284821691841690631698ee8290606401602060405180830381865afa158015612ae9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b0d91906158c0565b73ffffffffffffffffffffffffffffffffffffffff1614612b5a576040517f3a94c70500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b5f6040517f23b872dd00000000000000000000000000000000000000000000000000000000815284816004015283816024015282816044015260205f6064835f8a5af13d15601f3d1160015f51141617169150508061181a576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff87161480612c3d575073ffffffffffffffffffffffffffffffffffffffff86165f90815260016020908152604080832033845290915290205460ff165b612c73576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff86165f9081526020818152604080832087845290915281208054859290612cb0908490615a67565b909155505073ffffffffffffffffffffffffffffffffffffffff8581165f818152602081815260408083208984528252918290208054880190558151888152908101879052919289169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff85163b15612e3b576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e6190612da29033908b908a908a908a908a90600401615ce3565b6020604051808303815f875af1158015612dbe573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612de29190615cb5565b7fffffffff000000000000000000000000000000000000000000000000000000001614612e3b576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b73ffffffffffffffffffffffffffffffffffffffff83165f818152602081815260408083208684528252808320805486019055805186815291820185905233917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff83163b15612b5a576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082523360048301525f60248301819052604483018590526064830184905260a0608484015260a48301529073ffffffffffffffffffffffffffffffffffffffff85169063f23a6e619060c4016020604051808303815f875af1158015612f58573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f7c9190615cb5565b7fffffffff000000000000000000000000000000000000000000000000000000001614612b5a576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612fdf815f614311565b5f0361301a576040517f93db026300000000000000000000000000000000000000000000000000000000815260016004820152602401610732565b77fffffffff200fffffffff200fffffffff200fffffffff200604082901c165f5b6004811015612b5a5761304e8382614311565b5f03613098576040603082020183901c15612b5a576040517f93db026300000000000000000000000000000000000000000000000000000000815260016004820152602401610732565b5f6130a28461338a565b9050600182015b81811015613111578060300284901c65ffffffffffff168360300285901c65ffffffffffff1603613109576040517f93db026300000000000000000000000000000000000000000000000000000000815260066004820152602401610732565b6001016130a9565b5061311c8483614323565b60020b5f0361315a576040517f93db026300000000000000000000000000000000000000000000000000000000815260056004820152602401610732565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761861318a8584603002604c011c90565b60020b14806131ac5750620d89e86131a78584603002604c011c90565b60020b145b156131e5576040517f93db0263000000000000000000000000000000000000000000000000000000008152600481810152602401610732565b5f6131f08584614336565b905082811461338057826132048683614336565b1461323e576040517f93db026300000000000000000000000000000000000000000000000000000000815260036004820152602401610732565b6132488584614348565b6132528683614348565b14158061327157506132648584614311565b61326e8683614311565b14155b156132ab576040517f93db026300000000000000000000000000000000000000000000000000000000815260036004820152602401610732565b5f6132b6868561435a565b90505f6132c3878461435a565b90505f6132d088876138f0565b90505f6132dd89866138f0565b905082841480156132ed57508082145b15613326576040517f93db0263000000000000000000000000000000000000000000000000000000008152600481810152602401610732565b82841415806133355750836001145b80156133415750808214155b1561337b576040517f93db026300000000000000000000000000000000000000000000000000000000815260056004820152602401610732565b505050505b505060010161303b565b5f7afe0000000000fe0000000000fe0000000000fe00000000000000008216680100000000000000008110156133c257505f92915050565b6e0100000000000000000000000000008110156133e25750600192915050565b740100000000000000000000000000000000000000008110156134085750600292915050565b7a0100000000000000000000000000000000000000000000000000008110156134345750600392915050565b50600492915050565b5f808061344a868661436c565b90925090505f61345a8787614311565b613476906fffffffffffffffffffffffffffffffff8716615d46565b90506134828787614348565b5f0361349d576134938383836143a3565b93505050506129ce565b613493838383614492565b5f5f6134bc6134b78460e81c90565b613e04565b90505f6134cc6134b78560d01c90565b905073ffffffffffffffffffffffffffffffffffffffff82166135346060866fffffffffffffffffffffffffffffffff16901b84840373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16613d28565b81613541576135416158db565b04949350505050565b5f5f6135596134b78460e81c90565b90505f6135696134b78560d01c90565b9050612a39846fffffffffffffffffffffffffffffffff1683830373ffffffffffffffffffffffffffffffffffffffff166144e3565b5f808087336135ae89896138f0565b6135b88860e81c90565b6135c28960d01c90565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606096871b811660208301529490951b9093166034850152604884019190915260e890811b60688401521b606b820152606e01604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012090505f8061365d898961435a565b5f848152600460205260408120549192508190608082901c9050896fffffffffffffffffffffffffffffffff81165f036136c3576040517f1007454800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f036136ee576136d48184615d5d565b955089156136e9576136e68183615d85565b91505b613763565b806fffffffffffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff16101561374c576040517f4323a55500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808303955089613763576137608183615d5d565b91505b6137a36fffffffffffffffffffffffffffffffff87168360801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000160190565b5f888152600460205260409020555050821590506137ca576137c5888c614564565b6137d4565b6137d4888c61465a565b95506fffffffffffffffffffffffffffffffff8116156137ff576137fc888c83878a8761491b565b94505b61380c8b848a6001614b03565b5f94855260076020526040909420939093555092989197509095505050505050565b5f5f61383a8360801d90565b600f0b6138478560801d90565b600f0b019050805f84600f0b86600f0b0190505f8190508383600f0b14158061387357508181600f0b14155b156138aa576040517fd219017400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612615837fffffffffffffffffffffffffffffffff0000000000000000000000000000000087168388016fffffffffffffffffffffffffffffffff16015b9060801b0190565b5f60026049603084020184901c5b069392505050565b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000821691016fffffffffffffffffffffffffffffffff160190565b5f80806060858583608082901d9050604051806040016040528060405180606001604052808673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139af573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139d391906158c0565b73ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a37573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a5b91906158c0565b73ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa158015613abf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ae39190615dad565b62ffffff169052815233602091820152604051613b499291018151805173ffffffffffffffffffffffffffffffffffffffff908116835260208083015182168185015260409283015162ffffff1692840192909252920151909116606082015260800190565b604051602081830303815290604052935081600f0b5f14158015613b70575080600f0b5f14155b15613c11575f8373ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015613bbf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613be39190615afa565b50505050505090505f613bf983600f0b83614c7b565b84600f0b0390505f81129750805f0396505050613c41565b81600f0b5f14613c30575f82600f0b129550815f03600f0b9450613c41565b5f81600f0b139550805f03600f0b94505b845f03613c56575f96505050505050506106af565b5f5f8473ffffffffffffffffffffffffffffffffffffffff1663128acb08338a8a8c613c965773fffd8963efd1fc6a506488495d951d5263988d25613c9d565b6401000276a45b8b6040518663ffffffff1660e01b8152600401613cbe959493929190615dc8565b60408051808303815f875af1158015613cd9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613cfd9190615e20565b91509150613d19613d0d82614d5a565b6138e8611dd385614d5a565b9b9a5050505050505050505050565b5f80805f19858709858702925082811083820303915050805f03613d5c575f8411613d51575f5ffd5b5082900490506129ce565b808411613d67575f5ffd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b806fffffffffffffffffffffffffffffffff81168114613dff57506fffffffffffffffffffffffffffffffff5b919050565b5f5f5f8360020b12613e19578260020b613e20565b8260020b5f035b9050620d89e8811115613e5f576040517fce8ef7fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f816001165f03613e8157700100000000000000000000000000000000613e93565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615613ec7576ffff97272373d413259a46990580e213a0260801c5b6004821615613ee6576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615613f05576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615613f24576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615613f43576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615613f62576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615613f81576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615613fa1576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615613fc1576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615613fe1576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615614001576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615614021576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615614041576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615614061576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615614081576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156140a2576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156140c2576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156140e1576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156140fe576b048a170391f7dc42444e8fa20260801c5b5f8460020b131561411d57805f1981614119576141196158db565b0490505b640100000000810615614131576001614133565b5f5b60ff16602082901c0192505050919050565b5f80805f19868809868802925082811083820303915050805f0361418c575f851161416e575f5ffd5b84820492506141838360018660020a03614d98565b92505050612a39565b80846101000386901c116141aa5760018460020a0392505050612a39565b5f858789095f87810388169788900497600260038a028118808b02820302808b02820302808b02820302808b02820302808b02820302808b0290910302918190038190046001018684119095039490940291909403929092049190911791909102915050949350505050565b5f5f6142a3847f0706060506020504060203020504030106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6fffffffffffffffffffffffffffffffff841160071b84811c67ffffffffffffffff1060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b607f8190039490941b9360800360401b9050603f838103905b818111156142e757600290950a607f81901c60ff9190911c90811c9590811b909203915f19016142bc565b50700100000000000000000000000000000000693627a301d786ca58a52f83020495945050505050565b5f60806041603084020184901c6138fe565b5f6110006064603084020184901c6138fe565b5f6004604a603084020184901c6138fe565b5f60026040603084020184901c6138fe565b5f60026048603084020184901c6138fe565b5f806143986143808585603002604c011c90565b61438a8686614323565b603087901c61ffff16614da6565b909590945092505050565b5f5f6143ae85613e04565b90505f6143ba85613e04565b9050614488868661442161441c886143fe8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff166144e3565b88880373ffffffffffffffffffffffffffffffffffffffff16613d28565b614dc4565b7fffffff000000000000000000000000000000000000000000000000000000000060e884901b167cffffff000000000000000000000000000000000000000000000000000060d084901b16016fffffffffffffffffffffffffffffffff8216019392505050565b9695505050505050565b5f5f61449d85613e04565b90505f6144a985613e04565b9050614488868661442161441c886c0100000000000000000000000088880373ffffffffffffffffffffffffffffffffffffffff16613d28565b5f80805f19848609848602925082811083820303915050805f0361450c575060601c90506106af565b806c0100000000000000000000000011614524575f5ffd5b5f6c0100000000000000000000000085870980840360601c9310909103740100000000000000000000000000000000000000000291909117949350505050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1663a34123a761458d8760e81c90565b6145978860d01c90565b886040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152600293840b60048201529190920b60248201526fffffffffffffffffffffffffffffffff909116604482015260640160408051808303815f875af115801561460e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906146329190615e20565b91509150614651815f036138e8845f035f61390690919063ffffffff16565b95945050505050565b5f5f604051806040016040528060405180606001604052808673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156146bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906146df91906158c0565b73ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015614743573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061476791906158c0565b73ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa1580156147cb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906147ef9190615dad565b62ffffff1690528152336020918201526040516148559291018151805173ffffffffffffffffffffffffffffffffffffffff908116835260208083015182168185015260409283015162ffffff1692840192909252920151909116606082015260800190565b60405160208183030381529060405290505f5f8473ffffffffffffffffffffffffffffffffffffffff16633c8a7d8d3061488f8960e81c90565b6148998a60d01c90565b8a886040518663ffffffff1660e01b81526004016148bb959493929190615e42565b60408051808303815f875af11580156148d6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148fa9190615e20565b9092509050614488816fffffffffffffffffffffffffffffffff84166138e8565b5f83815260076020526040812054859082906149439061493d8a858d86614b03565b90612510565b90508360010361495a576149578186614e10565b90505b8015614af7575f5f8973ffffffffffffffffffffffffffffffffffffffff16634f1eb3d8336149898e60e81c90565b6149938f60d01c90565b8761499e8960801c90565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b16815273ffffffffffffffffffffffffffffffffffffffff9095166004860152600293840b60248601529190920b60448401526fffffffffffffffffffffffffffffffff918216606484015216608482015260a40160408051808303815f875af1158015614a37573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614a5b9190615e9a565b915091505f5f5f614a698a90565b600f0b12614a775783614a7b565b8884015b91505f614a888a60801d90565b600f0b12614a965782614aa3565b614aa08960801d90565b83015b9050614ae56fffffffffffffffffffffffffffffffff83168260801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000160190565b9650614af28a8c89614e89565b505050505b50509695505050505050565b5f5f5f8673ffffffffffffffffffffffffffffffffffffffff1663514ea4bf30614b2d8860e81c90565b614b378960d01c90565b60405160609390931b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602084015260e891821b6034840152901b6037820152603a01604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401614baf91815260200190565b60a060405180830381865afa158015614bca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614bee9190615ec7565b5050925092505083614c3d57614c38614c1982886fffffffffffffffffffffffffffffffff16614ee3565b6138e8611dd3858a6fffffffffffffffffffffffffffffffff16614ee3565b612615565b612615614c5c82886fffffffffffffffffffffffffffffffff16614f68565b6138e8611dd3858a6fffffffffffffffffffffffffffffffff16614f68565b5f6fffffffffffffffffffffffffffffffff73ffffffffffffffffffffffffffffffffffffffff83161015614d13575f614cf8614cf3614cba86614fa6565b780100000000000000000000000000000000000000000000000060028773ffffffffffffffffffffffffffffffffffffffff160a613d28565b614fba565b90505f8412614d075780614d0b565b805f035b9150506106af565b5f614cf8614cf3614d2386614fa6565b700100000000000000000000000000000000614d5573ffffffffffffffffffffffffffffffffffffffff881680615015565b613d28565b80600f81900b8114613dff576040517fb668004500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8183106129cc57816129ce565b5f5f5f5f614db48686615092565b9088039897019695505050505050565b806fffffffffffffffffffffffffffffffff81168114613dff576040517fb668004500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f614e1c8360801d90565b600f0b614e298560801d90565b600f0b039050805f84600f0b86600f0b0390505f8190508383600f0b14158061387357508181600f0b146138aa576040517fd219017400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f614e958484612620565b5f87815260056020908152604080832054600690925290912054929450909250614ec1918490846127b2565b5f96875260056020908152604080892060069092529097205590945550505050565b5f80805f19848609848602925082811083820303915050805f03614f0c575060801c90506106af565b8070010000000000000000000000000000000011614f28575f5ffd5b5f70010000000000000000000000000000000085870980840360801c93109091037001000000000000000000000000000000000291909117949350505050565b5f614f738383614ee3565b90505f70010000000000000000000000000000000083850911156106af575f198110614f9d575f5ffd5b60010192915050565b5f5f8213614fb657815f036106af565b5090565b5f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115614fb6576040517fb668004500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80805f19848609848602925082811083820303915050805f0361503e575060401c90506106af565b806801000000000000000011615052575f5ffd5b5f6801000000000000000085870980840360401c931090910378010000000000000000000000000000000000000000000000000291909117949350505050565b5f8060026150a08486615f17565b6150aa9190615f36565b6150c96150b78587615f8a565b62ffffff166002808204910615150190565b915091505b9250929050565b60405180608001604052806004906020820280368337509192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114615114575f5ffd5b50565b5f5f60408385031215615128575f5ffd5b8235615133816150f3565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114615114575f5ffd5b5f6020828403121561517e575f5ffd5b81356129ce81615141565b6fffffffffffffffffffffffffffffffff81168114615114575f5ffd5b8060020b8114615114575f5ffd5b5f5f5f5f608085870312156151c7575f5ffd5b8435935060208501356151d981615189565b925060408501356151e9816151a6565b915060608501356151f9816151a6565b939692955090935050565b60a0810181845f5b600481101561522b57815183526020928301929091019060010161520c565b5050508260808301529392505050565b5f5f83601f84011261524b575f5ffd5b50813567ffffffffffffffff811115615262575f5ffd5b6020830191508360208260051b85010111156150ce575f5ffd5b5f5f83601f84011261528c575f5ffd5b50813567ffffffffffffffff8111156152a3575f5ffd5b6020830191508360208285010111156150ce575f5ffd5b5f5f5f5f5f5f5f5f60a0898b0312156152d1575f5ffd5b88356152dc816150f3565b975060208901356152ec816150f3565b9650604089013567ffffffffffffffff811115615307575f5ffd5b6153138b828c0161523b565b909750955050606089013567ffffffffffffffff811115615332575f5ffd5b61533e8b828c0161523b565b909550935050608089013567ffffffffffffffff81111561535d575f5ffd5b6153698b828c0161527c565b999c989b5096995094979396929594505050565b5f5f5f5f5f5f5f60e0888a031215615393575f5ffd5b873561539e816150f3565b965060208801356153ae816150f3565b95506040880135945060608801356153c5816151a6565b935060808801356153d5816151a6565b925060a08801356153e5816151a6565b96999598509396929591949193505060c09091013590565b5f6020828403121561540d575f5ffd5b813567ffffffffffffffff811681146129ce575f5ffd5b5f5f5f5f60408587031215615437575f5ffd5b843567ffffffffffffffff81111561544d575f5ffd5b6154598782880161523b565b909550935050602085013567ffffffffffffffff811115615478575f5ffd5b6154848782880161523b565b95989497509550505050565b602080825282518282018190525f918401906040840190835b818110156154c75783518352602093840193909201916001016154a9565b509095945050505050565b8015158114615114575f5ffd5b5f5f604083850312156154f0575f5ffd5b82356154fb816150f3565b9150602083013561550b816154d2565b809150509250929050565b5f5f5f5f5f60a0868803121561552a575f5ffd5b8535615535816150f3565b94506020860135615545816150f3565b935060408601359250606086013561555c816151a6565b9150608086013561556c816151a6565b809150509295509295909350565b5f5f6020838503121561558b575f5ffd5b823567ffffffffffffffff8111156155a1575f5ffd5b6155ad8582860161523b565b90969095509350505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561567a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184526156658583516155b9565b9450602093840193919091019060010161562b565b50929695505050505050565b62ffffff81168114615114575f5ffd5b5f5f5f606084860312156156a8575f5ffd5b83356156b3816150f3565b925060208401356156c3816150f3565b915060408401356156d381615686565b809150509250925092565b5f602082840312156156ee575f5ffd5b81356129ce816150f3565b5f5f5f5f6060858703121561570c575f5ffd5b8435935060208501359250604085013567ffffffffffffffff811115615730575f5ffd5b6154848782880161527c565b5f5f6040838503121561574d575f5ffd5b8235615758816150f3565b9150602083013561550b816150f3565b5f5f5f5f5f5f60a0878903121561577d575f5ffd5b8635615788816150f3565b95506020870135615798816150f3565b94506040870135935060608701359250608087013567ffffffffffffffff8111156157c1575f5ffd5b6157cd89828a0161527c565b979a9699509497509295939492505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020828403121561581c575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615883575f5ffd5b83018035915067ffffffffffffffff82111561589d575f5ffd5b6020019150368190038213156150ce575f5ffd5b818382375f9101908152919050565b5f602082840312156158d0575f5ffd5b81516129ce816150f3565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f60208284031215615918575f5ffd5b81516129ce816151a6565b6040516060810167ffffffffffffffff8111828210171561596b577f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405290565b5f818303608081128015615983575f5ffd5b506040805190810167ffffffffffffffff811182821017156159cc577f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405260608212156159dc575f5ffd5b6159e4615923565b915083356159f1816150f3565b82526020840135615a01816150f3565b60208301526040840135615a1481615686565b6040830152908152606083013590615a2b826150f3565b60208101919091529392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156106af576106af615a3a565b5f8260020b80615a8c57615a8c6158db565b808360020b0791505092915050565b600f82810b9082900b037fffffffffffffffffffffffffffffffff8000000000000000000000000000000081126f7fffffffffffffffffffffffffffffff821317156106af576106af615a3a565b805161ffff81168114613dff575f5ffd5b5f5f5f5f5f5f5f60e0888a031215615b10575f5ffd5b8751615b1b816150f3565b6020890151909750615b2c816151a6565b9550615b3a60408901615ae9565b9450615b4860608901615ae9565b9350615b5660808901615ae9565b925060a088015160ff81168114615b6b575f5ffd5b60c0890151909250615b7c816154d2565b8091505092959891949750929550565b8183525f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115615bbc575f5ffd5b8260051b80836020870137939093016020019392505050565b604081525f615be8604083018688615b8c565b8281036020840152612615818587615b8c565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8916815273ffffffffffffffffffffffffffffffffffffffff8816602082015260a060408201525f615c8d60a08301888a615b8c565b8281036060840152615ca0818789615b8c565b90508281036080840152613d19818587615bfb565b5f60208284031215615cc5575f5ffd5b81516129ce81615141565b808201808211156106af576106af615a3a565b73ffffffffffffffffffffffffffffffffffffffff8716815273ffffffffffffffffffffffffffffffffffffffff8616602082015284604082015283606082015260a060808201525f615d3a60a083018486615bfb565b98975050505050505050565b80820281158282048414176106af576106af615a3a565b6fffffffffffffffffffffffffffffffff81811683821601908111156106af576106af615a3a565b6fffffffffffffffffffffffffffffffff82811682821603908111156106af576106af615a3a565b5f60208284031215615dbd575f5ffd5b81516129ce81615686565b73ffffffffffffffffffffffffffffffffffffffff86168152841515602082015283604082015273ffffffffffffffffffffffffffffffffffffffff8316606082015260a060808201525f61261560a08301846155b9565b5f5f60408385031215615e31575f5ffd5b505080516020909101519092909150565b73ffffffffffffffffffffffffffffffffffffffff861681528460020b60208201528360020b60408201526fffffffffffffffffffffffffffffffff8316606082015260a060808201525f61261560a08301846155b9565b5f5f60408385031215615eab575f5ffd5b8251615eb681615189565b602084015190925061550b81615189565b5f5f5f5f5f60a08688031215615edb575f5ffd5b8551615ee681615189565b6020870151604088015160608901519297509095509350615f0681615189565b608087015190925061556c81615189565b5f8260020b8260020b028060020b9150808214610e7d57610e7d615a3a565b5f8160020b8360020b80615f4c57615f4c6158db565b5f1981147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000083141615615f8157615f81615a3a565b90059392505050565b62ffffff8181168382160290811690818114610e7d57610e7d615a3a56fea26469706673582212208acb376c6226414847a7d34667d6a4deaf1ab1e1d37febd066d95b5bedf82fb664736f6c634300081c003300000000000000000000000033128a8fc17869897dce68ed026d694621f6fdfd000000000000000000000000000000000000000000000071d75ab9b92050000000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Signatures

0x724d976e876530f05f91368dcd96793348e3185a83f7bddbcd3cb9eab8a884390e5d6958f42618deabd5965f7a7e79250d850f14667661599eccbdd4a62aff871b58c0b0ce8f263f84b46e64a7a2ed8071dd60f2d7baf7ef50ab4905e4146b877c7624c2b36096823151d84dca1fa05626fb244860d76e0c731955f655c55509441cda8706ec620c92b6069537cc25ae7801971816e5975abda0676c4647cfbc8302649737dd6f47505f737883a27ced458e079ed823b12e0b7cbb77a7298ff99cbd1c