0x66cfa0570000000000000000000000000000000000000000000000000000000000000000240363f82fc72d2ae79a5b22f4f52c044d74e56f2881dc143a26fa120748c6ac0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000441560e06040523480156200001157600080fd5b50604051620043d5380380620043d58339810160408190526200003491620001f5565b6001600160a01b0382166200005c5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038116620000845760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03808316608081905290821660a0526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa158015620000d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000fc91906200022d565b63ffffffff1660c0526200010f62000117565b50506200025c565b600054610100900460ff1615620001845760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620001d6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114620001f057600080fd5b919050565b600080604083850312156200020957600080fd5b6200021483620001d8565b91506200022460208401620001d8565b90509250929050565b6000602082840312156200024057600080fd5b815163ffffffff811681146200025557600080fd5b9392505050565b60805160a05160c0516140fc620002d96000396000818161056e01528181611a1601528181611aba0152611bb401526000818161070101528181611c0401528181611e070152612b500152600081816106cd01528181610a5001528181611a5a01528181611d4a015281816121d70152612abf01526140fc6000f3fe6080604052600436106102465760003560e01c80638076513011610139578063c0c15c3b116100b6578063d66a22aa1161007a578063d66a22aa146107c3578063dc7e3d58146107e3578063de0c60d414610810578063e0ac429f1461083d578063f166a97814610852578063f2fde38b1461087257600080fd5b8063c0c15c3b14610723578063c879c6d814610743578063cdbb333714610763578063ce19556a14610783578063d1ba4cc9146107a357600080fd5b806395d376d7116100fd57806395d376d7146106685780639ad920c41461067b578063a541b37d1461069b578063b3129896146106bb578063bf417684146106ef57600080fd5b806380765130146105c55780638129fc1c146105f557806384795a2c1461060a5780638da5cb5b1461062a578063949fff5c1461064857600080fd5b806360b71d4e116101c75780636dea41901161018b5780636dea4190146104f15780636f17883514610511578063715018a614610547578063726075371461055c578063800c7789146105a557600080fd5b806360b71d4e1461044657806362b69baa1461045b578063679ef7b01461047b57806369802149146104b157806369f5d386146104d157600080fd5b806331108fbc1161020e57806331108fbc1461034b57806332d269301461038457806342c75bcb146103a4578063501b7000146103d85780635bf48e3a1461042657600080fd5b8063016b89131461024b5780630377be1e1461026d578063067b00f81461028d57806329681700146102d457806330bb3aac14610314575b600080fd5b34801561025757600080fd5b5061026b61026636600461342a565b610892565b005b34801561027957600080fd5b5061026b6102883660046134a5565b6108d0565b34801561029957600080fd5b506102c17f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f81565b6040519081526020015b60405180910390f35b3480156102e057600080fd5b506103046102ef36600461353e565b60666020526000908152604090205460ff1681565b60405190151581526020016102cb565b34801561032057600080fd5b506102c161032f3660046135af565b5050505063ffffffff1660009081526065602052604090205490565b34801561035757600080fd5b50610304610366366004613628565b6001600160a01b03166000908152606b602052604090205460ff1690565b34801561039057600080fd5b5061026b61039f366004613628565b610b47565b3480156103b057600080fd5b506102c17f3dc6f2ede34d1db05729bbb76e5efd17ec1bc83f98f665e7fba0596dca438b9681565b3480156103e457600080fd5b5061040e6103f336600461353e565b606e602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102cb565b34801561043257600080fd5b5061026b610441366004613645565b610cf4565b34801561045257600080fd5b506102c1610e3d565b34801561046757600080fd5b5061026b610476366004613628565b610f1c565b34801561048757600080fd5b5061040e61049636600461353e565b6067602052600090815260409020546001600160a01b031681565b3480156104bd57600080fd5b5061026b6104cc3660046134a5565b61100e565b3480156104dd57600080fd5b5061026b6104ec366004613628565b611298565b3480156104fd57600080fd5b5061026b61050c36600461342a565b61135e565b34801561051d57600080fd5b5061040e61052c366004613628565b606d602052600090815260409020546001600160a01b031681565b34801561055357600080fd5b5061026b611466565b34801561056857600080fd5b506105907f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102cb565b3480156105b157600080fd5b5061026b6105c03660046136ad565b61147a565b3480156105d157600080fd5b506103046105e0366004613628565b606c6020526000908152604090205460ff1681565b34801561060157600080fd5b5061026b6115c8565b34801561061657600080fd5b5061026b610625366004613628565b6116f8565b34801561063657600080fd5b506033546001600160a01b031661040e565b34801561065457600080fd5b5060685461040e906001600160a01b031681565b6102c1610676366004613718565b6118ca565b34801561068757600080fd5b50610304610696366004613788565b611d2e565b3480156106a757600080fd5b5061026b6106b63660046137c9565b61205d565b3480156106c757600080fd5b5061040e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106fb57600080fd5b5061040e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561072f57600080fd5b5061026b61073e3660046137f3565b6120da565b34801561074f57600080fd5b5061026b61075e366004613839565b612292565b34801561076f57600080fd5b5061026b61077e366004613628565b6123da565b34801561078f57600080fd5b5061026b61079e366004613865565b6124a0565b3480156107af57600080fd5b5061026b6107be366004613893565b61256c565b3480156107cf57600080fd5b5061026b6107de366004613839565b61260b565b3480156107ef57600080fd5b506108036107fe366004613628565b612641565b6040516102cb91906138c5565b34801561081c57600080fd5b506102c161082b36600461353e565b60656020526000908152604090205481565b34801561084957600080fd5b50606a546102c1565b34801561085e57600080fd5b5060695461040e906001600160a01b031681565b34801561087e57600080fd5b5061026b61088d366004613628565b6126d6565b61089a61274c565b63ffffffff919091166000908152606e6020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b6069546001600160a01b03166108f9576040516314e8eced60e11b815260040160405180910390fd5b84831415806109085750848114155b1561092657604051630e52390960e41b815260040160405180910390fd5b6040805180820190915260008152606060208201526000606081805b89811015610b3a576069546001600160a01b0316630afb22da88888481811061096d5761096d613912565b905060200281019061097f9190613928565b6040518363ffffffff1660e01b815260040161099c929190613997565b600060405180830381865afa1580156109b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109e19190810190613ac2565b9450610a0985602001518a8a848181106109fd576109fd613912565b905060200201356127a6565b90945092506001600160a01b038416610a3557604051634c9ec4bb60e01b815260040160405180910390fd5b610a3e83612945565b9150610a4982612952565b15610aa5577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614610aa057604051634c9ec4bb60e01b815260040160405180910390fd5b610ae6565b63ffffffff82166000908152606e60205260409020546001600160a01b03858116911614610ae657604051634c9ec4bb60e01b815260040160405180910390fd5b610b288b8b83818110610afb57610afb613912565b90506020020135866000015184610b1187612974565b610b1a88612981565b610b2389612990565b6129a9565b80610b3281613b4e565b915050610942565b5050505050505050505050565b610b4f61274c565b6001600160a01b0381166000908152606b602052604090205460ff16610b88576040516301d007a760e01b815260040160405180910390fd5b6001600160a01b0381166000818152606b6020526040808220805460ff191690555163faaebd2160e01b815230600482015290919063faaebd2190602401602060405180830381865afa158015610be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c079190613b67565b90508015610cf057816001600160a01b031663fd9be522610c306033546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b158015610c7857600080fd5b505af1158015610c8c573d6000803e3d6000fd5b505050507ff15a0a3784dea9b4fe33bc98e2450745e262d310237b2868ea8ef56967ff3ecb82610cc46033546001600160a01b031690565b604080516001600160a01b03938416815292909116602083015281018390526060015b60405180910390a15b5050565b6068546001600160a01b0316610d1d576040516314e8eced60e11b815260040160405180910390fd5b60685460405163057d916d60e11b81526000916001600160a01b031690630afb22da90610d509086908690600401613997565b6040805180830381865afa158015610d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d909190613b80565b905080602001518585604051610da7929190613bb2565b604051809103902014610dcd5760405163b5e367c560e01b815260040160405180910390fd5b610e35868260000151610de08888612cd9565b610dea8989612cfc565b610df48a8a612d15565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b2392508d91508c9050612d31565b505050505050565b6000805b606a54811015610f18576000606a8281548110610e6057610e60613912565b60009182526020808320909101546001600160a01b0316808352606b90915260409091205490915060ff1615610f055760405163faaebd2160e01b81523060048201526001600160a01b0382169063faaebd2190602401602060405180830381865afa158015610ed4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef89190613b67565b610f029084613bc2565b92505b5080610f1081613b4e565b915050610e41565b5090565b610f2461274c565b60408051606081019091526001815260208101600081526001600160a01b03831660209182018190526000908152606b8252604090208251815490151560ff19821681178355928401519192839161ff001990911661ffff1990911617610100836002811115610f9657610f966138af565b021790555060409190910151815462010000600160b01b031916620100006001600160a01b039283160217909155606a80546001810182556000919091527f116fea137db6e131133e7f2bab296045d8f41cc5607279db17b218cab0929a510180546001600160a01b03191692909116919091179055565b6068546001600160a01b0316611037576040516314e8eced60e11b815260040160405180910390fd5b84831415806110465750848114155b1561106457604051630e52390960e41b815260040160405180910390fd5b604080518082019091526000808252602082015260005b8681101561128e576068546001600160a01b0316630afb22da8585848181106110a6576110a6613912565b90506020028101906110b89190613928565b6040518363ffffffff1660e01b81526004016110d5929190613997565b6040805180830381865afa1580156110f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111159190613b80565b9150816020015186868381811061112e5761112e613912565b90506020028101906111409190613928565b60405161114e929190613bb2565b6040518091039020146111745760405163b5e367c560e01b815260040160405180910390fd5b61127c88888381811061118957611189613912565b9050602002013583600001516111c18989868181106111aa576111aa613912565b90506020028101906111bc9190613928565b612cd9565b6111ed8a8a878181106111d6576111d6613912565b90506020028101906111e89190613928565b612cfc565b6112198b8b8881811061120257611202613912565b90506020028101906112149190613928565b612d15565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b2392508e91508d90508981811061126557611265613912565b90506020028101906112779190613928565b612d31565b8061128681613b4e565b91505061107b565b5050505050505050565b6112a061274c565b6001600160a01b0381166112c75760405163d92e233d60e01b815260040160405180910390fd5b6068546001600160a01b038083169116036112f55760405163a741a04560e01b815260040160405180910390fd5b606854604080516001600160a01b03928316815291831660208301527f10e0a034592ae57bd3e0a9468eba02aaf661e61275bf00efe40f956ed89483dd910160405180910390a1606880546001600160a01b0319166001600160a01b0392909216919091179055565b61136661274c565b6001600160a01b03811661138d5760405163d92e233d60e01b815260040160405180910390fd5b63ffffffff82166000908152606760205260409020546001600160a01b038083169116036113ce5760405163a741a04560e01b815260040160405180910390fd5b63ffffffff82166000818152606760209081526040918290205482519384526001600160a01b0390811691840191909152831682820152517f9738de301c763a91427d836968b3504d77cf4c72624e54407b8482707897fcac9181900360600190a163ffffffff91909116600090815260676020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b61146e61274c565b6114786000612d5b565b565b336000908152606c602052604090205460ff166114a9576040516282b42960e81b815260040160405180910390fd5b8281146114c957604051630e52390960e41b815260040160405180910390fd5b60005b838110156115c1578282828181106114e6576114e6613912565b905060200201356065600087878581811061150357611503613912565b9050602002016020810190611518919061353e565b63ffffffff1681526020810191909152604001600020557f3722a9f6d5cdd3d4506591f2182163eedf8e74f346faf115ae42f4f0ffdc1a1f85858381811061156257611562613912565b9050602002016020810190611577919061353e565b84848481811061158957611589613912565b6040805163ffffffff90951685526020918202939093013590840152500160405180910390a1806115b981613b4e565b9150506114cc565b5050505050565b600054610100900460ff16158080156115e85750600054600160ff909116105b806116025750303b158015611602575060005460ff166001145b61166a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561168d576000805461ff0019166101001790555b336000908152606c60205260409020805460ff191660011790556116af612dad565b80156116f5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b61170061274c565b6000805b606a548110156118a9576000606a828154811061172357611723613912565b6000918252602090912001546001600160a01b0316905061175c816001600160a01b03166000908152606b602052604090205460ff1690565b6117665750611897565b60405163faaebd2160e01b81523060048201526000906001600160a01b0383169063faaebd2190602401602060405180830381865afa1580156117ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d19190613b67565b9050801561189457604051637ecdf29160e11b81526001600160a01b0386811660048301526024820183905283169063fd9be52290604401600060405180830381600087803b15801561182357600080fd5b505af1158015611837573d6000803e3d6000fd5b5050604080516001600160a01b038087168252891660208201529081018490527ff15a0a3784dea9b4fe33bc98e2450745e262d310237b2868ea8ef56967ff3ecb9250606001905060405180910390a16118918185613bc2565b93505b50505b806118a181613b4e565b915050611704565b5080600003610cf05760405162976f7560e21b815260040160405180910390fd5b60006066816118dc602087018761353e565b63ffffffff16815260208101919091526040016000205460ff1661192957611907602085018561353e565b604051635c12eebb60e11b815263ffffffff9091166004820152602401611661565b336000908152606b602052604090205460ff1661195957604051636073e9bf60e11b815260040160405180910390fd5b6065600061196a602087018761353e565b63ffffffff1681526020808201929092526040016000205491507f915615b444fd15cbe20634e8d0a109373bea8c1ed15d3c503ca9e70547a4c220906119b29086018661353e565b6119c26080870160608801613bd5565b6119d260a0880160808901613628565b6040805163ffffffff90941684526001600160401b0390921660208401526001600160a01b0316908201526060810183905260800160405180910390a163ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611a43602086018661353e565b63ffffffff1603611bad5760006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663402f8468611a8f6111e86020890189613928565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201526044016040805180830381865afa158015611afe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b229190613bf2565b5090506001600160a01b038116630223536e611b416020880188613928565b6040890135611b5660808b0160608c01613bd5565b6040518563ffffffff1660e01b8152600401611b759493929190613c21565b600060405180830381600087803b158015611b8f57600080fd5b505af1158015611ba3573d6000803e3d6000fd5b5050505050611d27565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611be1602086018661353e565b611bed90617530613c55565b63ffffffff1603611d275760006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166371ba2fd6611c396111e86020890189613928565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611c7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca19190613c72565b90506001600160a01b038116630223536e611cbf6020880188613928565b6040890135611cd460808b0160608c01613bd5565b6040518563ffffffff1660e01b8152600401611cf39493929190613c21565b600060405180830381600087803b158015611d0d57600080fd5b505af1158015611d21573d6000803e3d6000fd5b50505050505b9392505050565b600080611d43611d3e8585612cd9565b612952565b15611e05577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663402f8468611d818686612cfc565b611d8b8787612cd9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015263ffffffff1660248201526044016040805180830381865afa158015611dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfd9190613bf2565b509050611ea9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371ba2fd6611e3e8686612cfc565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea69190613c72565b90505b6001600160a01b038082166000908152606d60205260409020541680611ee25760405163d9931b0d60e01b815260040160405180910390fd5b6000816001600160a01b03166327d12cd9611efd8888612d15565b611f078a8a612d31565b6040518463ffffffff1660e01b8152600401611f2593929190613c8f565b602060405180830381865afa158015611f42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f669190613cb3565b90506001816003811115611f7c57611f7c6138af565b1480611f9957506002816003811115611f9757611f976138af565b145b15611faa5760019350505050612057565b6000836001600160a01b0316633c782a52611fc58989612d15565b604051611fd3929190613bb2565b6040518091039020611fe58a8a612d31565b6040516001600160e01b031960e085901b168152600481019290925260248201523060448201526064016040805180830381865afa15801561202b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204f9190613cdf565b519450505050505b92915050565b336000908152606c602052604090205460ff1661208c576040516282b42960e81b815260040160405180910390fd5b63ffffffff8216600081815260656020908152604091829020849055815192835282018390527f3722a9f6d5cdd3d4506591f2182163eedf8e74f346faf115ae42f4f0ffdc1a1f9101610ce7565b6069546001600160a01b031661210357604051636160724f60e11b815260040160405180910390fd5b60695460405163057d916d60e11b81526000916001600160a01b031690630afb22da906121369086908690600401613997565b600060405180830381865afa158015612153573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261217b9190810190613ac2565b905060008061218e8360200151876127a6565b90925090506001600160a01b0382166121ba57604051634c9ec4bb60e01b815260040160405180910390fd5b60006121c582612945565b90506121d081612952565b1561222c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161461222757604051634c9ec4bb60e01b815260040160405180910390fd5b61226d565b63ffffffff81166000908152606e60205260409020546001600160a01b0384811691161461226d57604051634c9ec4bb60e01b815260040160405180910390fd5b61128e8885600001518361228086612974565b61228987612981565b610b2388612990565b61229a61274c565b60405163faaebd2160e01b81523060048201526000906001600160a01b0384169063faaebd2190602401602060405180830381865afa1580156122e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123059190613b67565b9050806000036123275760405162976f7560e21b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0383811660048301526024820183905284169063fd9be52290604401600060405180830381600087803b15801561237157600080fd5b505af1158015612385573d6000803e3d6000fd5b5050604080516001600160a01b038088168252861660208201529081018490527ff15a0a3784dea9b4fe33bc98e2450745e262d310237b2868ea8ef56967ff3ecb9250606001905060405180910390a1505050565b6123e261274c565b6001600160a01b0381166124095760405163d92e233d60e01b815260040160405180910390fd5b6069546001600160a01b038083169116036124375760405163a741a04560e01b815260040160405180910390fd5b606954604080516001600160a01b03928316815291831660208301527f3c7cb66e6fbc303803802dc4edcac6ebcd8b5e687f83577583888d278ef347a0910160405180910390a1606980546001600160a01b0319166001600160a01b0392909216919091179055565b6124a861274c565b6001600160a01b0382166124cf5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382166000908152606c602052604090205481151560ff9091161515036125105760405163a741a04560e01b815260040160405180910390fd5b6001600160a01b0382166000818152606c6020908152604091829020805460ff19168515159081179091558251938452908301527f882386da003a547e108f4013481dc50dd637ba9e2f89b0a884803db03eef247a9101610ce7565b61257461274c565b63ffffffff821660009081526066602052604090205481151560ff9091161515036125b25760405163a741a04560e01b815260040160405180910390fd5b63ffffffff8216600081815260666020908152604091829020805460ff19168515159081179091558251938452908301527f968effd490f9188c28dc3411469f24794e98398797d621c8670c5ff1f99dd4af9101610ce7565b61261361274c565b6001600160a01b039182166000908152606d6020526040902080546001600160a01b03191691909216179055565b6040805160608082018352600080835260208084018290528385018290526001600160a01b0386168252606b8152908490208451928301909452835460ff8082161515845293949293918401916101009091041660028111156126a6576126a66138af565b60028111156126b7576126b76138af565b815290546201000090046001600160a01b031660209091015292915050565b6126de61274c565b6001600160a01b0381166127435760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611661565b6116f581612d5b565b6033546001600160a01b031633146114785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611661565b6000606060006127ef6127ea856127e48860408051808201825260008082526020918201528251825180840190935282529182019181019190915290565b90612ddc565b612e86565b905060006128168260018151811061280957612809613912565b6020026020010151612e86565b9050600061283d8260008151811061283057612830613912565b6020026020010151612f48565b90507fc2390d121cb2e24fa8d6444891a102e813e437c067099a18045fa69235bc746a81016128cd576128898360008151811061287c5761287c613912565b6020026020010151612f94565b94506128ae836002815181106128a1576128a1613912565b6020026020010151612fae565b8060200190518101906128c19190613d20565b5091955061293b915050565b7fe548ff2b312f3ffa4e9b3f087602f60344fea92b3dfbe475c4043269e32ea981810161293b5761290a8360008151811061287c5761287c613912565b9450612922836002815181106128a1576128a1613912565b8060200190518101906129359190613d93565b50909450505b5050509250929050565b600061205782600961302b565b60006175308263ffffffff16111561296c57506001919050565b506000919050565b600061205782603d613088565b606061205782600060516130ed565b600061299b826131f9565b805190602001209050919050565b63ffffffff84166000908152606760205260409020546001600160a01b0316806129ee576040516349659b1360e01b815263ffffffff86166004820152602401611661565b60405163254252af60e01b8152600481018890526024810187905260009081906001600160a01b0384169063254252af906044016040805180830381865afa158015612a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a629190613e0a565b9150915081612a845760405163b767edf560e01b815260040160405180910390fd5b6000612a8f88612952565b15612b3157604051630805f08d60e31b81526001600160a01b03888116600483015263ffffffff8a1660248301527f0000000000000000000000000000000000000000000000000000000000000000169063402f8468906044016040805180830381865afa158015612b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b299190613bf2565b509050612bbe565b6040516338dd17eb60e11b81526001600160a01b0388811660048301527f000000000000000000000000000000000000000000000000000000000000000016906371ba2fd690602401602060405180830381865afa158015612b97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbb9190613c72565b90505b6040516343ea4fa960e01b81526001600160a01b03888116600483015263ffffffff8a166024830152600091908316906343ea4fa990604401600060405180830381865afa158015612c14573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c3c9190810190613ed1565b80519091506001600160401b0316831015612c6a57604051633098e00360e11b815260040160405180910390fd5b604051630111a9b760e11b81526001600160a01b03831690630223536e90612c9a908a908a908890600401613fa5565b600060405180830381600087803b158015612cb457600080fd5b505af1158015612cc8573d6000803e3d6000fd5b505050505050505050505050505050565b6000612ce9600d60098486613ff0565b612cf29161401a565b60e01c9392505050565b6000612d0c605160318486613ff0565b611d279161404a565b366000612d256051828587613ff0565b915091505b9250929050565b6000612d3d8383613215565b604051612d4b929190613bb2565b6040518091039020905092915050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16612dd45760405162461bcd60e51b815260040161166190614068565b611478613225565b6040805180820190915260008082526020820152612df983613255565b612e0257600080fd5b6000612e118460200151613290565b8460200151612e209190613bc2565b9050600084600001518560200151612e389190613bc2565b905060005b81831015610246576000612e50846132ef565b9050858203612e7957604051806040016040528082815260200185815250945050505050612057565b9290920191600101612e3d565b6060612e9182613255565b612e9a57600080fd5b60606000612eab8460200151613290565b8460200151612eba9190613bc2565b9050600084600001518560200151612ed29190613bc2565b6040519091506000905b82841015612f0f576000612eef856132ef565b604084028301818152602001869052949094019350600190910190612edc565b604082028101945081855260208501815b86811015612f3957808252602090910190604001612f20565b50604052509295945050505050565b805160009015801590612f5d57508151602110155b612f6657600080fd5b600080612f7284613386565b815191935091506020821015612f8c57602082900360031b1c5b949350505050565b8051600090601514612fa557600080fd5b61205782612f48565b8051606090612fbc57600080fd5b600080612fc884613386565b915091506000816001600160401b03811115612fe657612fe66139ab565b6040519080825280601f01601f191660200182016040528015613010576020820181803683370190505b509050602081016130228482856133ac565b50949350505050565b6000613038826004613bc2565b8351101561307f5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7433325f6f75744f66426f756e647360601b6044820152606401611661565b50016004015190565b6000613095826014613bc2565b835110156130dd5760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401611661565b500160200151600160601b900490565b6060816130fb81601f613bc2565b101561313a5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401611661565b6131448284613bc2565b845110156131885760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401611661565b6060821580156131a75760405191506000825260208201604052613022565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156131e05780518352602092830192016131c8565b5050858452601f01601f19166040525050949350505050565b6060612057605180845161320d91906140b3565b8491906130ed565b366000612d258360518187613ff0565b600054610100900460ff1661324c5760405162461bcd60e51b815260040161166190614068565b61147833612d5b565b8051600090810361326857506000919050565b6020820151805160001a9060c0821015613286575060009392505050565b5060019392505050565b8051600090811a60808110156132a95750600092915050565b60b88110806132c4575060c081108015906132c4575060f881105b156132d25750600192915050565b60c08110156132e55760b5190192915050565b60f5190192915050565b80516000908190811a608081101561330a576001915061337f565b60b881101561331f57607e198101915061337f565b60c081101561334b5760b7810360018501945084518160200360031b1c6001820181019350505061337f565b60f88110156133605760be198101915061337f565b60f7810360018501945084518160200360031b1c600182018101935050505b5092915050565b60008060006133988460200151613290565b602085015194519481019594039392505050565b602081116133d3576000198160031b1c801984511681845116915080821784525050505050565b6133e6806115c185858563ffffffff8516565b8082828560045afa6133f757600080fd5b505050565b803563ffffffff8116811461341057600080fd5b919050565b6001600160a01b03811681146116f557600080fd5b6000806040838503121561343d57600080fd5b613446836133fc565b9150602083013561345681613415565b809150509250929050565b60008083601f84011261347357600080fd5b5081356001600160401b0381111561348a57600080fd5b6020830191508360208260051b8501011115612d2a57600080fd5b600080600080600080606087890312156134be57600080fd5b86356001600160401b03808211156134d557600080fd5b6134e18a838b01613461565b909850965060208901359150808211156134fa57600080fd5b6135068a838b01613461565b9096509450604089013591508082111561351f57600080fd5b5061352c89828a01613461565b979a9699509497509295939492505050565b60006020828403121561355057600080fd5b611d27826133fc565b6001600160401b03811681146116f557600080fd5b60008083601f84011261358057600080fd5b5081356001600160401b0381111561359757600080fd5b602083019150836020828501011115612d2a57600080fd5b6000806000806000608086880312156135c757600080fd5b6135d0866133fc565b945060208601356135e081613559565b935060408601356135f081613415565b925060608601356001600160401b0381111561360b57600080fd5b6136178882890161356e565b969995985093965092949392505050565b60006020828403121561363a57600080fd5b8135611d2781613415565b60008060008060006060868803121561365d57600080fd5b8535945060208601356001600160401b038082111561367b57600080fd5b61368789838a0161356e565b909650945060408801359150808211156136a057600080fd5b506136178882890161356e565b600080600080604085870312156136c357600080fd5b84356001600160401b03808211156136da57600080fd5b6136e688838901613461565b909650945060208701359150808211156136ff57600080fd5b5061370c87828801613461565b95989497509550505050565b60008060006040848603121561372d57600080fd5b83356001600160401b038082111561374457600080fd5b9085019060a0828803121561375857600080fd5b9093506020850135908082111561376e57600080fd5b5061377b8682870161356e565b9497909650939450505050565b6000806020838503121561379b57600080fd5b82356001600160401b038111156137b157600080fd5b6137bd8582860161356e565b90969095509350505050565b600080604083850312156137dc57600080fd5b6137e5836133fc565b946020939093013593505050565b6000806000806060858703121561380957600080fd5b843593506020850135925060408501356001600160401b0381111561382d57600080fd5b61370c8782880161356e565b6000806040838503121561384c57600080fd5b823561344681613415565b80151581146116f557600080fd5b6000806040838503121561387857600080fd5b823561388381613415565b9150602083013561345681613857565b600080604083850312156138a657600080fd5b613883836133fc565b634e487b7160e01b600052602160045260246000fd5b81511515815260208201516060820190600381106138f357634e487b7160e01b600052602160045260246000fd5b60208301526040928301516001600160a01b0316929091019190915290565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261393f57600080fd5b8301803591506001600160401b0382111561395957600080fd5b602001915036819003821315612d2a57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000612f8c60208301848661396e565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156139e3576139e36139ab565b60405290565b60405160c081016001600160401b03811182821017156139e3576139e36139ab565b604051601f8201601f191681016001600160401b0381118282101715613a3357613a336139ab565b604052919050565b60005b83811015613a56578181015183820152602001613a3e565b50506000910152565b600082601f830112613a7057600080fd5b81516001600160401b03811115613a8957613a896139ab565b613a9c601f8201601f1916602001613a0b565b818152846020838601011115613ab157600080fd5b612f8c826020830160208701613a3b565b600060208284031215613ad457600080fd5b81516001600160401b0380821115613aeb57600080fd5b9083019060408286031215613aff57600080fd5b613b076139c1565b82518152602083015182811115613b1d57600080fd5b613b2987828601613a5f565b60208301525095945050505050565b634e487b7160e01b600052601160045260246000fd5b600060018201613b6057613b60613b38565b5060010190565b600060208284031215613b7957600080fd5b5051919050565b600060408284031215613b9257600080fd5b613b9a6139c1565b82518152602083015160208201528091505092915050565b8183823760009101908152919050565b8082018082111561205757612057613b38565b600060208284031215613be757600080fd5b8135611d2781613559565b60008060408385031215613c0557600080fd5b8251613c1081613415565b602084015190925061345681613857565b606081526000613c3560608301868861396e565b90508360208301526001600160401b038316604083015295945050505050565b63ffffffff81811683821601908082111561337f5761337f613b38565b600060208284031215613c8457600080fd5b8151611d2781613415565b604081526000613ca360408301858761396e565b9050826020830152949350505050565b600060208284031215613cc557600080fd5b815160048110611d2757600080fd5b805161341081613559565b600060408284031215613cf157600080fd5b613cf96139c1565b8251613d0481613857565b81526020830151613d1481613559565b60208201529392505050565b60008060008060808587031215613d3657600080fd5b84516001600160401b0380821115613d4d57600080fd5b613d5988838901613a5f565b95506020870151915080821115613d6f57600080fd5b50613d7c87828801613a5f565b604087015160609097015195989097509350505050565b600080600060608486031215613da857600080fd5b83516001600160401b0380821115613dbf57600080fd5b613dcb87838801613a5f565b94506020860151915080821115613de157600080fd5b50613dee86828701613a5f565b9250506040840151613dff81613415565b809150509250925092565b60008060408385031215613e1d57600080fd5b8251613e2881613857565b6020939093015192949293505050565b805160ff8116811461341057600080fd5b600082601f830112613e5a57600080fd5b815160206001600160401b03821115613e7557613e756139ab565b8160051b613e84828201613a0b565b9283528481018201928281019087851115613e9e57600080fd5b83870192505b84831015613ec6578251613eb781613415565b82529183019190830190613ea4565b979650505050505050565b600060208284031215613ee357600080fd5b81516001600160401b0380821115613efa57600080fd5b9083019060c08286031215613f0e57600080fd5b613f166139e9565b613f1f83613cd4565b8152613f2d60208401613e38565b6020820152613f3e60408401613e38565b6040820152613f4f60608401613e38565b6060820152608083015182811115613f6657600080fd5b613f7287828601613e49565b60808301525060a083015182811115613f8a57600080fd5b613f9687828601613e49565b60a08301525095945050505050565b6060815260008451806060840152613fc4816080850160208901613a3b565b6020830194909452506001600160401b039190911660408201526080601f909201601f19160101919050565b6000808585111561400057600080fd5b8386111561400d57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156140425780818660040360031b1b83161692505b505092915050565b8035602083101561205757600019602084900360031b1b1692915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8181038181111561205757612057613b3856fea2646970667358221220bce9299c30183eb48802fbbeeca3b8b34f479ada5352615474855d1e46b34e7864736f6c634300081200330000000000000000000000001a44076050125825900e736c501f859c50fe728c0000000000000000000000001a44076050125825900e736c501f859c50fe728c0000000000000000000000