0x60806040526004361061002d5760003560e01c806310d1e85c146100395780637b94f17e1461005b57600080fd5b3661003457005b600080fd5b34801561004557600080fd5b506100596100543660046120ee565b61006e565b005b610059610069366004612184565b6101dc565b60005460ff166100b45760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b60448201526064015b60405180910390fd5b600080808080806100c787890189612197565b6040516370a0823160e01b8152306004820152959b509399509197509550935091506000906001600160a01b038716906370a0823190602401602060405180830381865afa15801561011d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014191906121fc565b905061014e868883610919565b60405163022c0d9f60e01b8152600481018590526024810184905230604482015260806064820152600060848201526001600160a01b0388169063022c0d9f9060a401600060405180830381600087803b1580156101ab57600080fd5b505af11580156101bf573d6000803e3d6000fd5b505050506101ce853384610919565b505050505050505050505050565b60408051808201909152600080825260208201525a815261020561018083016101608401612223565b1561025257411580610249575061022461014083016101208401612240565b6001600160a01b0316416001600160a01b031614801561024957504131610140830135145b15610252575050565b600061027783604081016080820161027261012084016101008501612240565b610a34565b90506000816080015160600151118015610295575060808101515115155b6102cd5760405162461bcd60e51b8152602060048201526009602482015268139bc81c1c9bd99a5d60ba1b60448201526064016100ab565b606061033260405180610100016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b60208301516001600160a01b039081168252608080850151015160409081015160a08401528401511661036d61012087016101008801612240565b6001600160a01b0316036103cd576060808401516001600160a01b03908116602084015260408086015190911690830152600060c08301819052608080860180518201515160e08601525160a0015151928401929092529082015261041f565b6040808401516001600160a01b03908116602084015260608086015190911691830191909152608080850180518201515160c0850152600060e0850181905292840192909252905160a0015151908201525b806000015181602001518260400151836060015184608001518560a00151604051602001610486969594939291906001600160a01b03968716815294861660208601529290941660408401526060830152608082019290925260a081019190915260c00190565b60408051601f19818403018152908290526000805460ff19166001179055845160c084015160e085015163022c0d9f60e01b85529295506001600160a01b039091169263022c0d9f926104e0929130908890600401612281565b600060405180830381600087803b1580156104fa57600080fd5b505af115801561050e573d6000803e3d6000fd5b50506000805460ff1916815560408481015190516370a0823160e01b81523060048201529193506001600160a01b031691506370a0823190602401602060405180830381865afa158015610566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058a91906121fc565b9050600073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031683604001516001600160a01b03161461077a576040805160028082526060820183526000926020830190803683370190505090508360400151816000815181106105f8576105f86122d1565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610640576106406122d1565b60200260200101906001600160a01b031690816001600160a01b0316815250506106838460400151737a250d5630b4cf539739df2c5dacb4c659f2488d85610f86565b737a250d5630b4cf539739df2c5dacb4c659f2488d635c11d79584600184306106ad42600c6122fd565b6040518663ffffffff1660e01b81526004016106cd959493929190612310565b600060405180830381600087803b1580156106e757600080fd5b505af11580156106fb573d6000803e3d6000fd5b50506040516370a0823160e01b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc292506370a082319150602401602060405180830381865afa15801561074e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077291906121fc565b91505061077d565b50805b604051632e1a7d4d60e01b81526004810182905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d90602401600060405180830381600087803b1580156107ca57600080fd5b505af11580156107de573d6000803e3d6000fd5b505050505a86516107ef9190612383565b60208701526108066101a088016101808901612223565b1561085d57803a876020015161081c9190612396565b111561085d5760405162461bcd60e51b815260206004820152601060248201526f48696768206d696e657220636f73747360801b60448201526064016100ab565b34156108ce57416001600160a01b03166108fc60643489602001513a6108839190612396565b61088d9086612383565b6108979190612396565b6108a191906123c3565b6040518115909202916000818181858888f193505050501580156108c9573d6000803e3d6000fd5b504790505b60405173a4a4003fdf94bc5a8992da3d4d13caec44e74c089082156108fc029083906000818181858888f1935050505015801561090f573d6000803e3d6000fd5b5050505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161097591906123d7565b6000604051808303816000865af19150503d80600081146109b2576040519150601f19603f3d011682016040523d82523d6000602084013e6109b7565b606091505b50915091508180156109e15750805115806109e15750808060200190518101906109e191906123f3565b610a2d5760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c45440060448201526064016100ab565b5050505050565b610a3c611eef565b600080610a4c6020880188612240565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad919061242c565b506001600160701b039182169350169050600080610ace6020890189612240565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2f919061242c565b506001600160701b039182169350169050610b4d60208a018a612240565b6001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bae919061247c565b6001600160a01b03166040860152610bc960208a018a612240565b6001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2a919061247c565b6001600160a01b03166060860152610c40611f24565b85604001516001600160a01b0316876001600160a01b031603610de657610c6d6060890160408a01612499565b61ffff1660c0820152610c866080890160608a01612499565b61ffff1660e0820152610c9c6020890189612499565b61ffff16610100820152610cb66040890160208a01612499565b61ffff16610120820152610cca8583612396565b610cd48486612396565b1115610d6057610ce760208b018b612240565b6001600160a01b03168652610cff60208a018a612240565b6001600160a01b0316602080880191909152610d219060408c01908c01612499565b61ffff166080820152610d3a60408a0160208b01612499565b61ffff1660a0820152838152602081018590526040810182905260608101839052610f6b565b610d6d60208a018a612240565b6001600160a01b03168652610d8560208b018b612240565b6001600160a01b0316602080880191909152610da79060408b01908b01612499565b61ffff166080820152610dc060408b0160208c01612499565b61ffff1660a0820152818152602081018390526040810184905260608101859052610f6b565b610df36020890189612499565b61ffff1660c0820152610e0c6040890160208a01612499565b61ffff1660e0820152610e256060890160408a01612499565b61ffff16610100820152610e3f6080890160608a01612499565b61ffff16610120820152610e538484612396565b610e5d8387612396565b1115610ee957610e7060208b018b612240565b6001600160a01b03168652610e8860208a018a612240565b6001600160a01b0316602080880191909152610eaa9060408c01908c01612499565b61ffff166080820152610ec360408a0160208b01612499565b61ffff1660a0820152848152602081018490526040810183905260608101829052610f6b565b610ef660208a018a612240565b6001600160a01b03168652610f0e60208b018b612240565b6001600160a01b0316602080880191909152610f309060408b01908b01612499565b61ffff166080820152610f4960408b0160208c01612499565b61ffff1660a08201528281526020810182905260408101859052606081018490525b610f748161109a565b60808701525050505050949350505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691610fe291906123d7565b6000604051808303816000865af19150503d806000811461101f576040519150601f19603f3d011682016040523d82523d6000602084013e611024565b606091505b509150915081801561104e57508051158061104e57508080602001905181019061104e91906123f3565b610a2d5760405162461bcd60e51b815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c4544000060448201526064016100ab565b6110a2611f78565b815115806110b257506020820151155b806110bf57506040820151155b806110cc57506060820151155b156110d657919050565b816020015182604001516110ea9190612396565b606083015183516110fb9190612396565b0361110557919050565b816020015182604001516111199190612396565b6060830151835161112a9190612396565b116111695760405162461bcd60e51b815260206004820152600f60248201526e4d6973706c6163656420706f6f6c7360881b60448201526064016100ab565b611171611ffa565b6080830151611182906127106124bd565b61ffff1661010082015260a083015161119d906127106124bd565b61ffff1661012082015260c08301516111b8906127106124bd565b61ffff1661014082015260e08301516111d3906127106124bd565b61ffff166101608201526101008301516111ef906127106124bd565b61ffff1661018082015261012083015161120b906127106124bd565b61ffff9081166101a0830152610140820151161580611231575061016081015161ffff16155b80611243575061018081015161ffff16155b8061125557506101a081015161ffff16155b156112605750919050565b61127c8360000151846020015185604001518660600151611c25565b6101e082019081528351610200830180519190915260208086015182519091015260408086015182519091015260608086015191510152516112bf90600a6125c3565b8161020001516020018181516112d591906123c3565b9052506101e08101516112e990600a6125c3565b61020082015180516112fc9083906123c3565b9052506101e081015161131090600a6125c3565b81610200015160600181815161132691906123c3565b9052506101e081015161133a90600a6125c3565b81610200015160400181815161135091906123c3565b9052506101608101516101408201516101a08301516101808401516101208501516101008601516102008701516040810151815160608301516020909301516127109961ffff908116998b99908216988a9891831697899791841696889693851695879590921693909290916113c69190612396565b6113d09190612396565b6113da9190612396565b6113e49190612396565b6113ee91906123c3565b6113f89190612396565b61140291906123c3565b61140c9190612396565b61141691906123c3565b6114209190612396565b61142a91906123c3565b6114349190612396565b61143e91906123c3565b6114489190612396565b61145291906123c3565b80825261145e90611e41565b808252610200820151604001516114759190612396565b60408201526101608101516101408201516101208301518351610200850151516127109461ffff90811694869490821693859391909216916114b691612396565b6114c09190612396565b6114ca91906123c3565b6114d49190612396565b6114de91906123c3565b6114e89190612396565b6114f291906123c3565b6060820152610160810151610140820151610120830151610200840151604081015181516020909201516127109561ffff908116958795908216948694929091169261153e9190612396565b6115489190612396565b6115529190612396565b61155c91906123c3565b6115669190612396565b61157091906123c3565b61157a9190612396565b61158491906123c3565b60808201526101608101516101408201516101a0830151610180840151610120850151610100860151610200870151604081015181516060909201516127109861ffff908116988a9890821697899791831696889691841695879593851694869492169290916115f49190612396565b6115fe9190612396565b6116089190612396565b61161291906123c3565b61161c9190612396565b61162691906123c3565b6116309190612396565b61163a91906123c3565b6116449190612396565b61164e91906123c3565b6116589190612396565b61166291906123c3565b61166c9190612396565b61167691906123c3565b60a08201819052608082015161168c91906122fd565b816060015182604001516116a091906122fd565b10156116ae57600160208201525b8060200151156116f457806060015181604001518260a0015183608001516116d691906122fd565b6116e09190612383565b6116ea9190612383565b60c082015261172c565b8060a0015181608001518260600151836040015161171291906122fd565b61171c9190612383565b6117269190612383565b60c08201525b61016081015161014082015161012083015161020084015180516020909101516127109461ffff90811694869486948694928416938593859385939216918391839161177791612396565b6117819190612396565b61178b91906123c3565b6117959190612396565b61179f91906123c3565b6117a99190612396565b6117b391906123c3565b6117bd9190612396565b6117c791906123c3565b6117d19190612396565b6117db91906123c3565b6117e59190612396565b6117ef91906123c3565b81604001818152505061271061ffff1681610160015161ffff1661271061ffff1683610140015161ffff1661271061ffff16856101a0015161ffff1661271061ffff1687610180015161ffff1661271061ffff1689610120015161ffff1661271061ffff168b610100015161ffff168c6102000151604001518d61020001516060015161187c9190612396565b6118869190612396565b61189091906123c3565b61189a9190612396565b6118a491906123c3565b6118ae9190612396565b6118b891906123c3565b6118c29190612396565b6118cc91906123c3565b6118d69190612396565b6118e091906123c3565b6118ea9190612396565b6118f491906123c3565b60808201819052604082015110801561190e575080602001515b1561193157806040015181608001516119279190612383565b60e0820152611969565b8060400151816080015110801561194a57508060200151155b1561196357806080015181604001516119279190612383565b50919050565b8060e001518160c0015161197d91906123c3565b80835260000361198d5750919050565b6101e081015161199e90600a6125c3565b82516119aa9190612396565b8083528351116119c55782516119c290600190612383565b82525b6101008101518251845161ffff909216916119e09190612383565b6119ea9190612396565b82516020850151612710916119fe91612396565b611a089190612396565b611a1291906123c3565b611a1d9060016122fd565b61022082018190526101a082015161ffff1690611a3d9061271090612396565b611a4791906123c3565b611a529060016122fd565b6102408201528151610260820181905261014082015161271091611a7a9161ffff1690612396565b611a8491906123c3565b61028082019081526102408201516020840152516102a0820181905261016082015161271091611ab89161ffff1690612396565b611ac291906123c3565b6102c08201819052610120820151611ae09161ffff90911690612396565b6040840151611af29061271090612396565b611afc91906122fd565b81610120015161ffff16826102c001518560600151611b1b9190612396565b611b259190612396565b611b2f91906123c3565b6102e0820181905261018082015161271091611b4f9161ffff1690612396565b611b5991906123c3565b61030082018190526040830181905260208301511115611b8a57600060408301819052602083018190528252611963565b81602001518260400151611b9e9190612383565b606083810191909152610260820151608084018051919091526102808301518151602090810191909152610240840151825160409081019190915261022085015192518401929092526102e084015160a086018051919091526103008501518151909201919091526102a08401518151909201919091526102c09092015191510152919050565b600080611c3186611e61565b90506000611c3e86611e61565b90506000611c4b86611e61565b90506000611c5886611e61565b905060448183611c6886886122fd565b611c7291906122fd565b611c7c91906122fd565b11611c8a5760009450611cf5565b60448183611c9886886122fd565b611ca291906122fd565b611cac91906122fd565b611cb69190612383565b9450611cc36004866125cf565b600003611cdc57611cd56004866123c3565b9450611cf5565b611ce76004866123c3565b611cf29060016122fd565b94505b83851115611d455760405162461bcd60e51b815260206004820152601e60248201527f4d756c7469706c69657220697320746f6f206c6172676520666f72205431000060448201526064016100ab565b82851115611d955760405162461bcd60e51b815260206004820152601e60248201527f4d756c7469706c69657220697320746f6f206c6172676520666f72204531000060448201526064016100ab565b81851115611de55760405162461bcd60e51b815260206004820152601e60248201527f4d756c7469706c69657220697320746f6f206c6172676520666f72205432000060448201526064016100ab565b80851115611e355760405162461bcd60e51b815260206004820152601e60248201527f4d756c7469706c69657220697320746f6f206c6172676520666f72204532000060448201526064016100ab565b50505050949350505050565b60006002821015611e50575090565b611e5b826001611e9a565b92915050565b60005b8115611e8957611e75600a836123c3565b9150611e826001826122fd565b9050611e64565b80611e93816125e3565b9392505050565b600080600183611eaa81876123c3565b611eb491906122fd565b901c905080831480611ecf5750611ecc600182612383565b83145b15611edd5782915050611e5b565b611ee78482611e9a565b949350505050565b6040805160a081018252600080825260208201819052918101829052606081019190915260808101611f1f611f78565b905290565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081019190915290565b6040518060c0016040528060008152602001600081526020016000815260200160008152602001611fca6040518060800160405280600081526020016000815260200160008152602001600081525090565b8152602001611f1f6040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180610320016040528060008152602001600015158152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600061ffff168152602001600061ffff168152602001600061ffff168152602001600061ffff168152602001600061ffff168152602001600061ffff1681526020016000815260200160008152602001612098611f24565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b03811681146120eb57600080fd5b50565b60008060008060006080868803121561210657600080fd5b8535612111816120d6565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561213c57600080fd5b818801915088601f83011261215057600080fd5b81358181111561215f57600080fd5b89602082850101111561217157600080fd5b9699959850939650602001949392505050565b60006101a0828403121561196357600080fd5b60008060008060008060c087890312156121b057600080fd5b86356121bb816120d6565b955060208701356121cb816120d6565b945060408701356121db816120d6565b959894975094956060810135955060808101359460a0909101359350915050565b60006020828403121561220e57600080fd5b5051919050565b80151581146120eb57600080fd5b60006020828403121561223557600080fd5b8135611e9381612215565b60006020828403121561225257600080fd5b8135611e93816120d6565b60005b83811015612278578181015183820152602001612260565b50506000910152565b84815283602082015260018060a01b038316604082015260806060820152600082518060808401526122ba8160a085016020870161225d565b601f01601f19169190910160a00195945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115611e5b57611e5b6122e7565b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b818110156123625784516001600160a01b03168352938301939183019160010161233d565b50506001600160a01b03969096166060850152505050608001529392505050565b81810381811115611e5b57611e5b6122e7565b8082028115828204841417611e5b57611e5b6122e7565b634e487b7160e01b600052601260045260246000fd5b6000826123d2576123d26123ad565b500490565b600082516123e981846020870161225d565b9190910192915050565b60006020828403121561240557600080fd5b8151611e9381612215565b80516001600160701b038116811461242757600080fd5b919050565b60008060006060848603121561244157600080fd5b61244a84612410565b925061245860208501612410565b9150604084015163ffffffff8116811461247157600080fd5b809150509250925092565b60006020828403121561248e57600080fd5b8151611e93816120d6565b6000602082840312156124ab57600080fd5b813561ffff81168114611e9357600080fd5b61ffff8281168282160390808211156124d8576124d86122e7565b5092915050565b600181815b8085111561251a578160001904821115612500576125006122e7565b8085161561250d57918102915b93841c93908002906124e4565b509250929050565b60008261253157506001611e5b565b8161253e57506000611e5b565b8160018114612554576002811461255e5761257a565b6001915050611e5b565b60ff84111561256f5761256f6122e7565b50506001821b611e5b565b5060208310610133831016604e8410600b841016171561259d575081810a611e5b565b6125a783836124df565b80600019048211156125bb576125bb6122e7565b029392505050565b6000611e938383612522565b6000826125de576125de6123ad565b500690565b6000816125f2576125f26122e7565b50600019019056fea2646970667358221220c85559c7bbfd158e66133841e93f410016a2de960522c06bb6c8a9c1b0ffb10c64736f6c63430008160033
0x60806040526000805460ff1916905534801561001a57600080fd5b506126308061002a6000396000f3fe60806040526004361061002d5760003560e01c806310d1e85c146100395780637b94f17e1461005b57600080fd5b3661003457005b600080fd5b34801561004557600080fd5b506100596100543660046120ee565b61006e565b005b610059610069366004612184565b6101dc565b60005460ff166100b45760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b60448201526064015b60405180910390fd5b600080808080806100c787890189612197565b6040516370a0823160e01b8152306004820152959b509399509197509550935091506000906001600160a01b038716906370a0823190602401602060405180830381865afa15801561011d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014191906121fc565b905061014e868883610919565b60405163022c0d9f60e01b8152600481018590526024810184905230604482015260806064820152600060848201526001600160a01b0388169063022c0d9f9060a401600060405180830381600087803b1580156101ab57600080fd5b505af11580156101bf573d6000803e3d6000fd5b505050506101ce853384610919565b505050505050505050505050565b60408051808201909152600080825260208201525a815261020561018083016101608401612223565b1561025257411580610249575061022461014083016101208401612240565b6001600160a01b0316416001600160a01b031614801561024957504131610140830135145b15610252575050565b600061027783604081016080820161027261012084016101008501612240565b610a34565b90506000816080015160600151118015610295575060808101515115155b6102cd5760405162461bcd60e51b8152602060048201526009602482015268139bc81c1c9bd99a5d60ba1b60448201526064016100ab565b606061033260405180610100016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b60208301516001600160a01b039081168252608080850151015160409081015160a08401528401511661036d61012087016101008801612240565b6001600160a01b0316036103cd576060808401516001600160a01b03908116602084015260408086015190911690830152600060c08301819052608080860180518201515160e08601525160a0015151928401929092529082015261041f565b6040808401516001600160a01b03908116602084015260608086015190911691830191909152608080850180518201515160c0850152600060e0850181905292840192909252905160a0015151908201525b806000015181602001518260400151836060015184608001518560a00151604051602001610486969594939291906001600160a01b03968716815294861660208601529290941660408401526060830152608082019290925260a081019190915260c00190565b60408051601f19818403018152908290526000805460ff19166001179055845160c084015160e085015163022c0d9f60e01b85529295506001600160a01b039091169263022c0d9f926104e0929130908890600401612281565b600060405180830381600087803b1580156104fa57600080fd5b505af115801561050e573d6000803e3d6000fd5b50506000805460ff1916815560408481015190516370a0823160e01b81523060048201529193506001600160a01b031691506370a0823190602401602060405180830381865afa158015610566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058a91906121fc565b9050600073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031683604001516001600160a01b03161461077a576040805160028082526060820183526000926020830190803683370190505090508360400151816000815181106105f8576105f86122d1565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610640576106406122d1565b60200260200101906001600160a01b031690816001600160a01b0316815250506106838460400151737a250d5630b4cf539739df2c5dacb4c659f2488d85610f86565b737a250d5630b4cf539739df2c5dacb4c659f2488d635c11d79584600184306106ad42600c6122fd565b6040518663ffffffff1660e01b81526004016106cd959493929190612310565b600060405180830381600087803b1580156106e757600080fd5b505af11580156106fb573d6000803e3d6000fd5b50506040516370a0823160e01b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc292506370a082319150602401602060405180830381865afa15801561074e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077291906121fc565b91505061077d565b50805b604051632e1a7d4d60e01b81526004810182905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d90602401600060405180830381600087803b1580156107ca57600080fd5b505af11580156107de573d6000803e3d6000fd5b505050505a86516107ef9190612383565b60208701526108066101a088016101808901612223565b1561085d57803a876020015161081c9190612396565b111561085d5760405162461bcd60e51b815260206004820152601060248201526f48696768206d696e657220636f73747360801b60448201526064016100ab565b34156108ce57416001600160a01b03166108fc60643489602001513a6108839190612396565b61088d9086612383565b6108979190612396565b6108a191906123c3565b6040518115909202916000818181858888f193505050501580156108c9573d6000803e3d6000fd5b504790505b60405173a4a4003fdf94bc5a8992da3d4d13caec44e74c089082156108fc029083906000818181858888f1935050505015801561090f573d6000803e3d6000fd5b5050505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161097591906123d7565b6000604051808303816000865af19150503d80600081146109b2576040519150601f19603f3d011682016040523d82523d6000602084013e6109b7565b606091505b50915091508180156109e15750805115806109e15750808060200190518101906109e191906123f3565b610a2d5760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c45440060448201526064016100ab565b5050505050565b610a3c611eef565b600080610a4c6020880188612240565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aad919061242c565b506001600160701b039182169350169050600080610ace6020890189612240565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2f919061242c565b506001600160701b039182169350169050610b4d60208a018a612240565b6001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bae919061247c565b6001600160a01b03166040860152610bc960208a018a612240565b6001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2a919061247c565b6001600160a01b03166060860152610c40611f24565b85604001516001600160a01b0316876001600160a01b031603610de657610c6d6060890160408a01612499565b61ffff1660c0820152610c866080890160608a01612499565b61ffff1660e0820152610c9c6020890189612499565b61ffff16610100820152610cb66040890160208a01612499565b61ffff16610120820152610cca8583612396565b610cd48486612396565b1115610d6057610ce760208b018b612240565b6001600160a01b03168652610cff60208a018a612240565b6001600160a01b0316602080880191909152610d219060408c01908c01612499565b61ffff166080820152610d3a60408a0160208b01612499565b61ffff1660a0820152838152602081018590526040810182905260608101839052610f6b565b610d6d60208a018a612240565b6001600160a01b03168652610d8560208b018b612240565b6001600160a01b0316602080880191909152610da79060408b01908b01612499565b61ffff166080820152610dc060408b0160208c01612499565b61ffff1660a0820152818152602081018390526040810184905260608101859052610f6b565b610df36020890189612499565b61ffff1660c0820152610e0c6040890160208a01612499565b61ffff1660e0820152610e256060890160408a01612499565b61ffff16610100820152610e3f6080890160608a01612499565b61ffff16610120820152610e538484612396565b610e5d8387612396565b1115610ee957610e7060208b018b612240565b6001600160a01b03168652610e8860208a018a612240565b6001600160a01b0316602080880191909152610eaa9060408c01908c01612499565b61ffff166080820152610ec360408a0160208b01612499565b61ffff1660a0820152848152602081018490526040810183905260608101829052610f6b565b610ef660208a018a612240565b6001600160a01b03168652610f0e60208b018b612240565b6001600160a01b0316602080880191909152610f309060408b01908b01612499565b61ffff166080820152610f4960408b0160208c01612499565b61ffff1660a08201528281526020810182905260408101859052606081018490525b610f748161109a565b60808701525050505050949350505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691610fe291906123d7565b6000604051808303816000865af19150503d806000811461101f576040519150601f19603f3d011682016040523d82523d6000602084013e611024565b606091505b509150915081801561104e57508051158061104e57508080602001905181019061104e91906123f3565b610a2d5760405162461bcd60e51b815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c4544000060448201526064016100ab565b6110a2611f78565b815115806110b257506020820151155b806110bf57506040820151155b806110cc57506060820151155b156110d657919050565b816020015182604001516110ea9190612396565b606083015183516110fb9190612396565b0361110557919050565b816020015182604001516111199190612396565b6060830151835161112a9190612396565b116111695760405162461bcd60e51b815260206004820152600f60248201526e4d6973706c6163656420706f6f6c7360881b60448201526064016100ab565b611171611ffa565b6080830151611182906127106124bd565b61ffff1661010082015260a083015161119d906127106124bd565b61ffff1661012082015260c08301516111b8906127106124bd565b61ffff1661014082015260e08301516111d3906127106124bd565b61ffff166101608201526101008301516111ef906127106124bd565b61ffff1661018082015261012083015161120b906127106124bd565b61ffff9081166101a0830152610140820151161580611231575061016081015161ffff16155b80611243575061018081015161ffff16155b8061125557506101a081015161ffff16155b156112605750919050565b61127c8360000151846020015185604001518660600151611c25565b6101e082019081528351610200830180519190915260208086015182519091015260408086015182519091015260608086015191510152516112bf90600a6125c3565b8161020001516020018181516112d591906123c3565b9052506101e08101516112e990600a6125c3565b61020082015180516112fc9083906123c3565b9052506101e081015161131090600a6125c3565b81610200015160600181815161132691906123c3565b9052506101e081015161133a90600a6125c3565b81610200015160400181815161135091906123c3565b9052506101608101516101408201516101a08301516101808401516101208501516101008601516102008701516040810151815160608301516020909301516127109961ffff908116998b99908216988a9891831697899791841696889693851695879590921693909290916113c69190612396565b6113d09190612396565b6113da9190612396565b6113e49190612396565b6113ee91906123c3565b6113f89190612396565b61140291906123c3565b61140c9190612396565b61141691906123c3565b6114209190612396565b61142a91906123c3565b6114349190612396565b61143e91906123c3565b6114489190612396565b61145291906123c3565b80825261145e90611e41565b808252610200820151604001516114759190612396565b60408201526101608101516101408201516101208301518351610200850151516127109461ffff90811694869490821693859391909216916114b691612396565b6114c09190612396565b6114ca91906123c3565b6114d49190612396565b6114de91906123c3565b6114e89190612396565b6114f291906123c3565b6060820152610160810151610140820151610120830151610200840151604081015181516020909201516127109561ffff908116958795908216948694929091169261153e9190612396565b6115489190612396565b6115529190612396565b61155c91906123c3565b6115669190612396565b61157091906123c3565b61157a9190612396565b61158491906123c3565b60808201526101608101516101408201516101a0830151610180840151610120850151610100860151610200870151604081015181516060909201516127109861ffff908116988a9890821697899791831696889691841695879593851694869492169290916115f49190612396565b6115fe9190612396565b6116089190612396565b61161291906123c3565b61161c9190612396565b61162691906123c3565b6116309190612396565b61163a91906123c3565b6116449190612396565b61164e91906123c3565b6116589190612396565b61166291906123c3565b61166c9190612396565b61167691906123c3565b60a08201819052608082015161168c91906122fd565b816060015182604001516116a091906122fd565b10156116ae57600160208201525b8060200151156116f457806060015181604001518260a0015183608001516116d691906122fd565b6116e09190612383565b6116ea9190612383565b60c082015261172c565b8060a0015181608001518260600151836040015161171291906122fd565b61171c9190612383565b6117269190612383565b60c08201525b61016081015161014082015161012083015161020084015180516020909101516127109461ffff90811694869486948694928416938593859385939216918391839161177791612396565b6117819190612396565b61178b91906123c3565b6117959190612396565b61179f91906123c3565b6117a99190612396565b6117b391906123c3565b6117bd9190612396565b6117c791906123c3565b6117d19190612396565b6117db91906123c3565b6117e59190612396565b6117ef91906123c3565b81604001818152505061271061ffff1681610160015161ffff1661271061ffff1683610140015161ffff1661271061ffff16856101a0015161ffff1661271061ffff1687610180015161ffff1661271061ffff1689610120015161ffff1661271061ffff168b610100015161ffff168c6102000151604001518d61020001516060015161187c9190612396565b6118869190612396565b61189091906123c3565b61189a9190612396565b6118a491906123c3565b6118ae9190612396565b6118b891906123c3565b6118c29190612396565b6118cc91906123c3565b6118d69190612396565b6118e091906123c3565b6118ea9190612396565b6118f491906123c3565b60808201819052604082015110801561190e575080602001515b1561193157806040015181608001516119279190612383565b60e0820152611969565b8060400151816080015110801561194a57508060200151155b1561196357806080015181604001516119279190612383565b50919050565b8060e001518160c0015161197d91906123c3565b80835260000361198d5750919050565b6101e081015161199e90600a6125c3565b82516119aa9190612396565b8083528351116119c55782516119c290600190612383565b82525b6101008101518251845161ffff909216916119e09190612383565b6119ea9190612396565b82516020850151612710916119fe91612396565b611a089190612396565b611a1291906123c3565b611a1d9060016122fd565b61022082018190526101a082015161ffff1690611a3d9061271090612396565b611a4791906123c3565b611a529060016122fd565b6102408201528151610260820181905261014082015161271091611a7a9161ffff1690612396565b611a8491906123c3565b61028082019081526102408201516020840152516102a0820181905261016082015161271091611ab89161ffff1690612396565b611ac291906123c3565b6102c08201819052610120820151611ae09161ffff90911690612396565b6040840151611af29061271090612396565b611afc91906122fd565b81610120015161ffff16826102c001518560600151611b1b9190612396565b611b259190612396565b611b2f91906123c3565b6102e0820181905261018082015161271091611b4f9161ffff1690612396565b611b5991906123c3565b61030082018190526040830181905260208301511115611b8a57600060408301819052602083018190528252611963565b81602001518260400151611b9e9190612383565b606083810191909152610260820151608084018051919091526102808301518151602090810191909152610240840151825160409081019190915261022085015192518401929092526102e084015160a086018051919091526103008501518151909201919091526102a08401518151909201919091526102c09092015191510152919050565b600080611c3186611e61565b90506000611c3e86611e61565b90506000611c4b86611e61565b90506000611c5886611e61565b905060448183611c6886886122fd565b611c7291906122fd565b611c7c91906122fd565b11611c8a5760009450611cf5565b60448183611c9886886122fd565b611ca291906122fd565b611cac91906122fd565b611cb69190612383565b9450611cc36004866125cf565b600003611cdc57611cd56004866123c3565b9450611cf5565b611ce76004866123c3565b611cf29060016122fd565b94505b83851115611d455760405162461bcd60e51b815260206004820152601e60248201527f4d756c7469706c69657220697320746f6f206c6172676520666f72205431000060448201526064016100ab565b82851115611d955760405162461bcd60e51b815260206004820152601e60248201527f4d756c7469706c69657220697320746f6f206c6172676520666f72204531000060448201526064016100ab565b81851115611de55760405162461bcd60e51b815260206004820152601e60248201527f4d756c7469706c69657220697320746f6f206c6172676520666f72205432000060448201526064016100ab565b80851115611e355760405162461bcd60e51b815260206004820152601e60248201527f4d756c7469706c69657220697320746f6f206c6172676520666f72204532000060448201526064016100ab565b50505050949350505050565b60006002821015611e50575090565b611e5b826001611e9a565b92915050565b60005b8115611e8957611e75600a836123c3565b9150611e826001826122fd565b9050611e64565b80611e93816125e3565b9392505050565b600080600183611eaa81876123c3565b611eb491906122fd565b901c905080831480611ecf5750611ecc600182612383565b83145b15611edd5782915050611e5b565b611ee78482611e9a565b949350505050565b6040805160a081018252600080825260208201819052918101829052606081019190915260808101611f1f611f78565b905290565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081019190915290565b6040518060c0016040528060008152602001600081526020016000815260200160008152602001611fca6040518060800160405280600081526020016000815260200160008152602001600081525090565b8152602001611f1f6040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180610320016040528060008152602001600015158152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600061ffff168152602001600061ffff168152602001600061ffff168152602001600061ffff168152602001600061ffff168152602001600061ffff1681526020016000815260200160008152602001612098611f24565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b03811681146120eb57600080fd5b50565b60008060008060006080868803121561210657600080fd5b8535612111816120d6565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561213c57600080fd5b818801915088601f83011261215057600080fd5b81358181111561215f57600080fd5b89602082850101111561217157600080fd5b9699959850939650602001949392505050565b60006101a0828403121561196357600080fd5b60008060008060008060c087890312156121b057600080fd5b86356121bb816120d6565b955060208701356121cb816120d6565b945060408701356121db816120d6565b959894975094956060810135955060808101359460a0909101359350915050565b60006020828403121561220e57600080fd5b5051919050565b80151581146120eb57600080fd5b60006020828403121561223557600080fd5b8135611e9381612215565b60006020828403121561225257600080fd5b8135611e93816120d6565b60005b83811015612278578181015183820152602001612260565b50506000910152565b84815283602082015260018060a01b038316604082015260806060820152600082518060808401526122ba8160a085016020870161225d565b601f01601f19169190910160a00195945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115611e5b57611e5b6122e7565b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b818110156123625784516001600160a01b03168352938301939183019160010161233d565b50506001600160a01b03969096166060850152505050608001529392505050565b81810381811115611e5b57611e5b6122e7565b8082028115828204841417611e5b57611e5b6122e7565b634e487b7160e01b600052601260045260246000fd5b6000826123d2576123d26123ad565b500490565b600082516123e981846020870161225d565b9190910192915050565b60006020828403121561240557600080fd5b8151611e9381612215565b80516001600160701b038116811461242757600080fd5b919050565b60008060006060848603121561244157600080fd5b61244a84612410565b925061245860208501612410565b9150604084015163ffffffff8116811461247157600080fd5b809150509250925092565b60006020828403121561248e57600080fd5b8151611e93816120d6565b6000602082840312156124ab57600080fd5b813561ffff81168114611e9357600080fd5b61ffff8281168282160390808211156124d8576124d86122e7565b5092915050565b600181815b8085111561251a578160001904821115612500576125006122e7565b8085161561250d57918102915b93841c93908002906124e4565b509250929050565b60008261253157506001611e5b565b8161253e57506000611e5b565b8160018114612554576002811461255e5761257a565b6001915050611e5b565b60ff84111561256f5761256f6122e7565b50506001821b611e5b565b5060208310610133831016604e8410600b841016171561259d575081810a611e5b565b6125a783836124df565b80600019048211156125bb576125bb6122e7565b029392505050565b6000611e938383612522565b6000826125de576125de6123ad565b500690565b6000816125f2576125f26122e7565b50600019019056fea2646970667358221220c85559c7bbfd158e66133841e93f410016a2de960522c06bb6c8a9c1b0ffb10c64736f6c63430008160033