0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615ca480620000f36000396000f3fe608060405234801561001057600080fd5b50600436106104065760003560e01c8063715018a611610220578063b3a60cb311610130578063d3487997116100b8578063e97206a911610087578063e97206a914610826578063f1a392da1461082e578063f2fde38b14610837578063fbfa77cf1461084a578063fcc25e131461085d57600080fd5b8063d3487997146107d8578063d92f3d73146107eb578063d9ceab13146107fe578063e941fa781461065d57600080fd5b8063c6bbd5a7116100ff578063c6bbd5a71461079a578063c6ebd4ae146107ad578063c7b9d530146107b5578063c7d54132146107c8578063d0e30db0146107d057600080fd5b8063b3a60cb31461075e578063b83d268314610766578063bc415d8a1461076e578063c45a01551461078757600080fd5b80638e145459116101b35780639bdde46b116101825780639bdde46b146107295780639c6d490414610731578063a035b1fe14610739578063aced166114610741578063b20feaaf1461074957600080fd5b80638e145459146106dd57806393f1c442146106e5578063953d329f146106ee57806399cd2446146106f657600080fd5b8063865238d4116101ef578063865238d4146106a8578063877562b6146106b15780638cfc0250146106c45780638da5cb5b146106cc57600080fd5b8063715018a6146106785780637bb98a68146106805780637f10e4b9146106885780638097e2491461069b57600080fd5b80632b950b661161031b5780634641257d116102ae5780635c975abb1161027d5780635c975abb146106205780635ee167c014610637578063609913461461064a57806367a527931461065d578063696c58e51461066457600080fd5b80634641257d146105ff5780634746fb55146106075780634c02a21c1461060f57806354cf2aeb1461061857600080fd5b80633e55f932116102ea5780633e55f932146105c95780633f4ba83a146105dc578063441a3e70146105e457806344b81396146105f757600080fd5b80632b950b661461056c5780632e773d3214610575578063362c28c61461058a5780633c1d5df01461059d57600080fd5b806316b9cd9c1161039e5780631dcfeddd1161036d5780631dcfeddd146105165780631fe4a6861461052b5780632150c5181461053e578063236db04214610546578063257ae0de1461055957600080fd5b806316b9cd9c146104e057806316f0115b146104e857806317dd7a72146104fb5780631d27050f1461050357600080fd5b80630e5c011e116103da5780630e5c011e1461047457806311b0b42d146104875780631208aa18146104b257806312cf1381146104cd57600080fd5b8062a4b5c91461040b57806304c404b31461042d578063065e53601461044457806308898ea01461045f575b600080fd5b610413610892565b604080519283526020830191909152015b60405180910390f35b610436609d5481565b604051908152602001610424565b61044c610977565b60405160029190910b8152602001610424565b61047261046d366004614d83565b6109f1565b005b610472610482366004614dda565b610b3d565b60975461049a906001600160a01b031681565b6040516001600160a01b039091168152602001610424565b6104ba610b49565b60405160069190910b8152602001610424565b6104726104db366004614e06565b610cb8565b610436610d39565b60d15461049a906001600160a01b031681565b610472610e77565b610472610511366004614e35565b610e95565b61051e610f36565b6040516104249190614ea2565b609a5461049a906001600160a01b031681565b610413610fc4565b610472610554366004614d83565b611050565b60995461049a906001600160a01b031681565b610436609c5481565b61057d61118e565b6040516104249190614eb5565b610472610598366004614f11565b611270565b60db546105b490600160501b900463ffffffff1681565b60405163ffffffff9091168152602001610424565b6104726105d7366004614f2e565b611313565b610472611408565b6104726105f2366004614f47565b6114b5565b610413611578565b610472611685565b61049a61168e565b61043660d65481565b6104366116fc565b60655460ff165b6040519015158152602001610424565b60d35461049a906001600160a01b031681565b610472610658366004614f47565b61179b565b6000610436565b60db546104ba906301000000900460060b81565b610472611851565b610413611863565b610472610696366004614f69565b61190f565b60db5461044c9060020b81565b610436609f5481565b60d45461049a906001600160a01b031681565b610436611ba8565b6033546001600160a01b031661049a565b61049a611c1c565b61043660d55481565b61051e611c66565b60da5461070f90600281810b9163010000009004900b82565b60408051600293840b81529190920b602082015201610424565b610627611c73565b610436611d1b565b610436611e05565b61049a611e3e565b610751611e88565b604051610424919061502d565b610472611eb8565b61049a6120a4565b60d95461070f90600281810b9163010000009004900b82565b609b5461049a906001600160a01b031681565b60d25461049a906001600160a01b031681565b61057d61211e565b6104726107c3366004614dda565b61214d565b6104726121c6565b6104726122ca565b6104726107e6366004615142565b61235a565b6104726107f9366004614dda565b612407565b610806612473565b604080519485526020850193909352918301526060820152608001610424565b61041361248f565b610436609e5481565b610472610845366004614dda565b6124fe565b60985461049a906001600160a01b031681565b610865612574565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610424565b60d3546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156108df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090391906151d5565b60d4546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561094b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096f91906151d5565b915091509091565b60d15460408051633850c7bd60e01b815290516000926001600160a01b031691633850c7bd9160048083019260e09291908290030181865afa1580156109c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e59190615210565b50939695505050505050565b6109f9612771565b8015610b39576000610a4083838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127cb92505050565b60d45481519192506001600160a01b0316908290600090610a6357610a6361529d565b60200260200101516001600160a01b031614610a925760405163b4fa3fb360e01b815260040160405180910390fd5b60975481516001600160a01b03909116908290610ab1906001906152c9565b81518110610ac157610ac161529d565b60200260200101516001600160a01b031614610af0576040516398f7360960e01b815260040160405180910390fd5b60d8610afd83858361535e565b507f1b9728f4ac995937074d8e70e21a1660544fb7c16be984e1c289f262f2be9c748383604051610b2f92919061541e565b60405180910390a1505b5050565b610b46816128cc565b50565b6040805160028082526060820183526000928392919060208301908036833701905050905060db600a9054906101000a900463ffffffff1681600081518110610b9457610b9461529d565b602002602001019063ffffffff16908163ffffffff1681525050600081600181518110610bc357610bc361529d565b63ffffffff9092166020928302919091019091015260d15460405163883bdbfd60e01b81526000916001600160a01b03169063883bdbfd90610c0990859060040161544d565b600060405180830381865afa158015610c26573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c4e9190810190615522565b50905060db600a9054906101000a900463ffffffff1660030b81600081518110610c7a57610c7a61529d565b602002602001015182600181518110610c9557610c9561529d565b6020026020010151610ca791906155e7565b610cb1919061562a565b9250505090565b610cc0612771565b60db5460408051600292830b81529183900b60208301527f69d927977053f4ff4a26e8d792564e367e844a869cda4df12630bf7b62a632de910160405180910390a1610d0a61297e565b50505050610d16612d7d565b60db805462ffffff191662ffffff8316179055610d316130d7565b610b4661312d565b600080600a60d460009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db59190615668565b610dc090600a61576f565b610dca919061577e565b60975460d4549192506001600160a01b03908116911603610df657610df081600a615792565b91505090565b60d25460405163cdca175360e01b81526001600160a01b039091169063cdca175390610e299060d89085906004016157a9565b6020604051808303816000875af1158015610e48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6c91906151d5565b610df090600a615792565b610e7f6133c8565b610e8761297e565b50505050610e93612d7d565b565b610e9d612771565b60db546040805163ffffffff600160501b9093048316815291831660208301527f86139943149914833c057d2c24f3a3967cce8e6aba2eb12e422500d8a51ffc7b910160405180910390a1603c8163ffffffff161015610f105760405163b4fa3fb360e01b815260040160405180910390fd5b60db805463ffffffff909216600160501b0263ffffffff60501b19909216919091179055565b60d78054610f43906152dc565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6f906152dc565b8015610fbc5780601f10610f9157610100808354040283529160200191610fbc565b820191906000526020600020905b815481529060010190602001808311610f9f57829003601f168201915b505050505081565b60d954604080513060601b6bffffffffffffffffffffffff1916602080830182905260e885811b6034850152630100000095869004811b60378501528451601a818603018152603a8501865280519083012060da54605a86019490945283821b606e8601529590920490911b607183015282516054818403018152607490920190925280519101209091565b611058612771565b8015610b3957600061109f83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127cb92505050565b60d35481519192506001600160a01b03169082906000906110c2576110c261529d565b60200260200101516001600160a01b0316146110f15760405163b4fa3fb360e01b815260040160405180910390fd5b60975481516001600160a01b03909116908290611110906001906152c9565b815181106111205761112061529d565b60200260200101516001600160a01b03161461114f576040516398f7360960e01b815260040160405180910390fd5b60d761115c83858361535e565b507f203244158601764729526c0736d6b833b1f3da905ae0a631a059bbb9040541f08383604051610b2f92919061541e565b606060d7805461119d906152dc565b90506000036111d85760005b6040519080825280602002602001820160405280156111d2578160200160208202803683370190505b50905090565b61126b60d780546111e8906152dc565b80601f0160208091040260200160405190810160405280929190818152602001828054611214906152dc565b80156112615780601f1061123657610100808354040283529160200191611261565b820191906000526020600020905b81548152906001019060200180831161124457829003601f168201915b50505050506127cb565b905090565b611278612771565b604051600682900b81527f69d3f73bfb3c2f0de63dc1de2ed486cf45d88ebfff8cb1e8f124b085d2bafb979060200160405180910390a16112b76133f3565b6112c2906004615840565b60020b8160060b126112e75760405163b4fa3fb360e01b815260040160405180910390fd5b60db805466ffffffffffffff90921663010000000269ffffffffffffff00000019909216919091179055565b6033546001600160a01b031633148015906113475750611331611e3e565b6001600160a01b0316336001600160a01b031614155b156113655760405163607e454560e11b815260040160405180910390fd5b61136d61168e565b6001600160a01b0316633e55f932826040518263ffffffff1660e01b815260040161139a91815260200190565b600060405180830381600087803b1580156113b457600080fd5b505af11580156113c8573d6000803e3d6000fd5b505050507f9163810ee1e29168d4ce900e48a333fb8fbd3fd070d2bef67f6d4db0846a469f816040516113fd91815260200190565b60405180910390a150565b6033546001600160a01b0316331480159061143c5750611426611e3e565b6001600160a01b0316336001600160a01b031614155b1561145a5760405163607e454560e11b815260040160405180910390fd5b600061146e6033546001600160a01b031690565b6001600160a01b0316036114955760405163ea8e4eb560e01b815260040160405180910390fd5b61149d613461565b6114a561349f565b6114ad6130d7565b610e9361312d565b6114bd6133c8565b60dc5442036114ce576114ce6134f1565b81156114f15760985460d3546114f1916001600160a01b03918216911684613516565b80156115145760985460d454611514916001600160a01b03918216911683613516565b61151c613575565b6115285761152861312d565b600080611533611863565b60408051838152602081018390529294509092507f631c4f79c14099a717f4be2f25e6cef89e310b3944ef0e44ea2c0811ebb982a8910160405180910390a150505050565b600080600080611586610892565b91509150600080611595612574565b5050505091509150600082856115ab9190615867565b905060006115b98386615867565b90506000609e54426115cb91906152c9565b90506000610e1082106115df5760006115eb565b6115eb82610e106152c9565b9050609c5484111561161957610e1081609c546116089190615792565b611612919061577e565b9950611633565b610e106116268286615792565b611630919061577e565b99505b609d5483111561165f57610e1081609d5461164e9190615792565b611658919061577e565b9850611679565b610e1061166c8285615792565b611676919061577e565b98505b50505050505050509091565b610e93326128cc565b609b5460408051634746fb5560e01b815290516000926001600160a01b031691634746fb559160048083019260209291908290030181865afa1580156116d8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126b919061587a565b6000620f4240670de0b6b3a764000060d160009054906101000a90046001600160a01b03166001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa15801561175e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117829190615897565b62ffffff166117919190615792565b61126b919061577e565b6033546001600160a01b031633148015906117cf57506117b9611e3e565b6001600160a01b0316336001600160a01b031614155b156117ed5760405163607e454560e11b815260040160405180910390fd5b6117f561297e565b50505050611801612d7d565b611809613600565b61181161363c565b60008061181c611863565b915091508382108061182d57508281105b1561184b5760405163fa6ad35560e01b815260040160405180910390fd5b50505050565b611859612771565b610e936000613679565b600080600080611871610892565b91509150600080611880612574565b5050505091509150600080611893611578565b90925090506000826118a58689615867565b6118af91906152c9565b90506000826118be8689615867565b6118c891906152c9565b60d55460d65491925090838211156118de578391505b828111156118e95750815b6118f382856152c9565b6118fd82856152c9565b9b509b50505050505050505050509091565b600054610100900460ff161580801561192f5750600054600160ff909116105b806119495750303b158015611949575060005460ff166001145b6119b15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156119d4576000805461ff0019166101001790555b6119dd826136cb565b60d180546001600160a01b03808c166001600160a01b0319928316811790935560d28054918c169190921617905560408051630dfe168160e01b81529051630dfe1681916004808201926020929091908290030181865afa158015611a46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6a919061587a565b60d360006101000a8154816001600160a01b0302191690836001600160a01b03160217905550886001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af2919061587a565b60d480546001600160a01b0319166001600160a01b039290921691909117905560db805462ffffff191662ffffff8916179055611b2f8686611050565b611b3984846109f1565b60db805463ffffffff60501b1916600f60531b179055611b57613461565b8015611b9d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6000611bb261168e565b604051636788231160e11b81523060048201526001600160a01b03919091169063cf10462290602401602060405180830381865afa158015611bf8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126b91906151d5565b609b5460408051638e14545960e01b815290516000926001600160a01b031691638e1454599160048083019260209291908290030181865afa1580156116d8573d6000803e3d6000fd5b60d88054610f43906152dc565b600080611c7e610977565b90506000611c8a610b49565b60db54909150600090611cb890611cab906301000000900460060b846155e7565b60060b620d89e719613840565b60db54909150600090611ce590611cd9906301000000900460060b856158bc565b60060b620d89e861385a565b90508360020b8260060b1380611d0057508360020b8160060b125b15611d1057600094505050505090565b600194505050505090565b600080600a60d360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d979190615668565b611da290600a61576f565b611dac919061577e565b60975460d3549192506001600160a01b03908116911603611dd257610df081600a615792565b60d25460405163cdca175360e01b81526001600160a01b039091169063cdca175390610e299060d79085906004016157a9565b600080611e106120a4565b90506002611e34826001600160a01b0316670de0b6b3a7640000600160601b613869565b610df0919061576f565b609b546040805163aced166160e01b815290516000926001600160a01b03169163aced16619160048083019260209291908290030181865afa1580156116d8573d6000803e3d6000fd5b611e90614ce0565b6040518060600160405280611ea361391d565b81526020016000815260200160009052919050565b611ec0612771565b609860009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3791906151d5565b6103e814611f585760405163ea8e4eb560e01b815260040160405180910390fd5b611f6360008061179b565b6000611f6d611c1c565b9050600080611f7a610892565b9092509050811561200a5760d3546040516370a0823160e01b815230600482015261200a9185916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611fd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff791906151d5565b60d3546001600160a01b03169190613516565b80156120955760d4546040516370a0823160e01b81523060048201526120959185916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561205e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208291906151d5565b60d4546001600160a01b03169190613516565b61209f6000613679565b505050565b60d15460408051633850c7bd60e01b815290516000926001600160a01b031691633850c7bd9160048083019260e09291908290030181865afa1580156120ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121129190615210565b50949695505050505050565b606060d8805461212d906152dc565b905060000361213d5760006111a9565b61126b60d880546111e8906152dc565b609a546001600160a01b0316331461217857604051633163ba6d60e11b815260040160405180910390fd5b609a80546001600160a01b0319166001600160a01b0383169081179091556040519081527f46d58e3fa07bf19b1d27240f0e286b27e9f7c1b0d88933333fe833b60eec5412906020016113fd565b6121ce6134f1565b609b546040516305226abd60e51b81523360048201526001600160a01b039091169063a44d57a090602401602060405180830381865afa158015612216573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223a91906158e9565b6122575760405163ea8e4eb560e01b815260040160405180910390fd5b61225f61297e565b5050505061226b612d7d565b6122736130d7565b61227b61312d565b600080612286611863565b60408051838152602081018390529294509092507f631c4f79c14099a717f4be2f25e6cef89e310b3944ef0e44ea2c0811ebb982a891015b60405180910390a15050565b6122d26134f1565b6122da6133c8565b60db54600160781b900460ff16612307576122f36130d7565b60db805460ff60781b1916600160781b1790555b61230f61312d565b60008061231a611863565b4260dc5560408051838152602081018390529294509092507f631c4f79c14099a717f4be2f25e6cef89e310b3944ef0e44ea2c0811ebb982a891016122be565b60d1546001600160a01b0316331461238557604051636f61f64160e01b815260040160405180910390fd5b60db54600160701b900460ff166123af5760405163887efaa560e01b815260040160405180910390fd5b82156123d25760d15460d3546123d2916001600160a01b03918216911685613516565b81156123f55760d15460d4546123f5916001600160a01b03918216911684613516565b505060db805460ff60701b1916905550565b61240f612771565b612417613600565b609980546001600160a01b0319166001600160a01b03831617905561243a613461565b6040516001600160a01b03821681527f5ca6e64c4522e68e154aa9372f2c5969cd37d9640e59f66953dc472f54ee86fa906020016113fd565b60008060008061248161297e565b929791965094509092509050565b60d95460009081906002906124c5906124a990830b6139ce565b6001600160a01b0316670de0b6b3a7640000600160601b613869565b6124cf919061576f565b60d9549092506002906124ee906124a99063010000009004830b6139ce565b6124f8919061576f565b90509091565b612506612771565b6001600160a01b03811661256b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016119a8565b610b4681613679565b600080600080600080600080612588610fc4565b9150915060006125966120a4565b60d15460405163514ea4bf60e01b815260048101869052919250600091829182916001600160a01b039091169063514ea4bf9060240160a060405180830381865afa1580156125e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260d919061591b565b60d15460405163514ea4bf60e01b8152600481018c90529598506001600160801b039283169750911694506000938493508392506001600160a01b039091169063514ea4bf9060240160a060405180830381865afa158015612673573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612697919061591b565b60d9549497506001600160801b0391821696501693506126dd928a92506126c1915060020b6139ce565b60d9546126d7906301000000900460020b6139ce565b89613d04565b60da54919e509c506127139088906126f79060020b6139ce565b60da5461270d906301000000900460020b6139ce565b86613d04565b909b509950612722858e615867565b9c5061272e848d615867565b9b5061273a828c615867565b9a50612746818b615867565b99506127528b8e615867565b9e5061275e8a8d615867565b9d50505050505050505050909192939495565b6033546001600160a01b03163314610e935760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016119a8565b606060006127d883613da0565b905060006127e7826001615867565b67ffffffffffffffff8111156127ff576127ff6150aa565b604051908082528060200260200182016040528015612828578160200160208202803683370190505b50905060005b828110156128c45760008061284287613dc6565b50915091508184848151811061285a5761285a61529d565b6001600160a01b0390921660209283029190910190910152808461287f856001615867565b8151811061288f5761288f61529d565b60200260200101906001600160a01b031690816001600160a01b0316815250506128b887613e02565b9650505060010161282e565b509392505050565b6128d46134f1565b6128dc61297e565b505050506128e8612d7d565b6000806128fa8360d55460d654613e33565b9150915061290661312d565b600060d581905560d68190558061291b611578565b909250905061292a8285615867565b609c556129378184615867565b609d5542609e5560408051858152602081018590527f6c8433a8e155f0af04dba058d4e4695f7da554578963d876bdf4a6d8d6399d9c910160405180910390a15050505050565b60008060008060008061298f610fc4565b60d15460405163514ea4bf60e01b8152600481018490529294509092506000916001600160a01b039091169063514ea4bf9060240160a060405180830381865afa1580156129e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a05919061591b565b505060d15460405163514ea4bf60e01b8152600481018790529394506000936001600160a01b03909116925063514ea4bf915060240160a060405180830381865afa158015612a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7c919061591b565b5050505090506000826001600160801b03161115612b1d5760d15460d95460405163a34123a760e01b81526001600160a01b039092169163a34123a791612ad891600282810b9263010000009004900b90600090600401615972565b60408051808303816000875af1158015612af6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1a9190615998565b50505b6001600160801b03811615612bb55760d15460da5460405163a34123a760e01b81526001600160a01b039092169163a34123a791612b7091600282810b9263010000009004900b90600090600401615972565b60408051808303816000875af1158015612b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb29190615998565b50505b60d15460d9546040516309e3d67b60e31b81526001600160a01b0390921691634f1eb3d891612c04913091600281810b926301000000909204900b906001600160801b039081906004016159bc565b60408051808303816000875af1158015612c22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4691906159f9565b60d15460da546040516309e3d67b60e31b81526001600160801b039485169c509284169a506001600160a01b0390911692634f1eb3d892612c9e923092600282810b936301000000909304900b9181906004016159bc565b60408051808303816000875af1158015612cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce091906159f9565b60d5546001600160801b039283169850911695508690612d01908a90615867565b612d0b9190615867565b60d55560d6548590612d1e908990615867565b612d289190615867565b60d6556040805189815260208101899052908101879052606081018690527f6fe7c663aa15def6e80578b76ddd894fcefeabf14a0106afbec24da4a6c578729060800160405180910390a15050505090919293565b600080612d88610fc4565b60d15460405163514ea4bf60e01b8152600481018490529294509092506000916001600160a01b039091169063514ea4bf9060240160a060405180830381865afa158015612dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dfe919061591b565b505060d15460405163514ea4bf60e01b8152600481018790529394506000936001600160a01b03909116925063514ea4bf915060240160a060405180830381865afa158015612e51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e75919061591b565b5050505090506000826001600160801b03161115612fa85760d15460d95460405163a34123a760e01b81526001600160a01b039092169163a34123a791612ed091600282810b9263010000009004900b908790600401615972565b60408051808303816000875af1158015612eee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f129190615998565b505060d15460d9546040516309e3d67b60e31b81526001600160a01b0390921691634f1eb3d891612f63913091600281810b926301000000909204900b906001600160801b039081906004016159bc565b60408051808303816000875af1158015612f81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa591906159f9565b50505b6001600160801b0381161561184b5760d15460da5460405163a34123a760e01b81526001600160a01b039092169163a34123a791612ffa91600282810b9263010000009004900b908690600401615972565b60408051808303816000875af1158015613018573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061303c9190615998565b505060d15460da546040516309e3d67b60e31b81526001600160a01b0390921691634f1eb3d89161308d913091600281810b926301000000909204900b906001600160801b039081906004016159bc565b60408051808303816000875af11580156130ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130cf91906159f9565b505050505050565b6130df6134f1565b60006130e9610977565b905060006130f56133f3565b60db5490915060009061310c90839060020b615840565b9050613119838383614173565b6131248383836141ae565b505042609f5550565b6131356142fe565b600080613140610892565b91509150600061314e6120a4565b60d9549091506000906131869083906131699060020b6139ce565b60d95461317f906301000000900460020b6139ce565b878761439f565b60d9549091506000906131a9908390600281810b9163010000009004900b614463565b90506000826001600160801b03161180156131c15750805b1561329a5760db805460ff60701b1916600160701b17905560d15460d954604051633c8a7d8d60e01b8152306004820152600282810b6024830152630100000090920490910b60448201526001600160801b038416606482015260a06084820152600a60a4820152692132b2b33c9026b0b4b760b11b60c48201526001600160a01b0390911690633c8a7d8d9060e40160408051808303816000875af115801561326f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132939190615998565b50506132a2565b6132a26134f1565b6132aa610892565b60da5491965094506132e19084906132c49060020b6139ce565b60da546132da906301000000900460020b6139ce565b888861439f565b91506001600160801b038216156133c15760db805460ff60701b1916600160701b17905560d15460da54604051633c8a7d8d60e01b8152306004820152600282810b6024830152630100000090920490910b60448201526001600160801b038416606482015260a06084820152600960a482015268109959599e48105b1d60ba1b60c48201526001600160a01b0390911690633c8a7d8d9060e40160408051808303816000875af115801561339a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133be9190615998565b50505b5050505050565b6098546001600160a01b03163314610e93576040516362df054560e01b815260040160405180910390fd5b60d154604080516334324e9f60e21b815290516000926001600160a01b03169163d0c93a7c9160048083019260209291908290030181865afa15801561343d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126b9190615a2c565b60995460d354613480916001600160a01b0391821691166000196144b1565b60995460d454610e93916001600160a01b0391821691166000196144b1565b6134a7614541565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6134f9611c73565b610e93576040516313643c3b60e11b815260040160405180910390fd5b6040516001600160a01b0383811660248301526044820183905261209f91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061458a565b600061358360655460ff1690565b8061126b5750609b60009054906101000a90046001600160a01b03166001600160a01b031663f12d54d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126b91906158e9565b60995460d35461361e916001600160a01b03918216911660006144b1565b60995460d454610e93916001600160a01b03918216911660006144b1565b6136446145ed565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586134d43390565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166136f25760405162461bcd60e51b81526004016119a890615a49565b6136fa614633565b613702614662565b61370f6020820182614dda565b609880546001600160a01b0319166001600160a01b039290921691909117905561373f6040820160208301614dda565b609980546001600160a01b0319166001600160a01b039290921691909117905561376f6060820160408301614dda565b609a80546001600160a01b0319166001600160a01b039290921691909117905561379f6080820160608301614dda565b609b80546001600160a01b0319166001600160a01b03929092169182179055604080516311b0b42d60e01b815290516311b0b42d916004808201926020929091908290030181865afa1580156137f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061381d919061587a565b609780546001600160a01b0319166001600160a01b039290921691909117905550565b600081831361384f5781613851565b825b90505b92915050565b600081831261384f5781613851565b60008080600019858709858702925082811083820303915050806000036138a2576000841161389757600080fd5b508290049050613916565b8084116138ae57600080fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b6139586040518060c0016040528060008152602001600081526020016000815260200160008152602001606081526020016000151581525090565b61396061168e565b604051639af608c960e01b81523060048201526001600160a01b039190911690639af608c990602401600060405180830381865afa1580156139a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261126b9190810190615a94565b60008060008360020b126139e5578260020b6139ed565b8260020b6000035b9050620d89e8811115613a265760405162461bcd60e51b81526020600482015260016024820152601560fa1b60448201526064016119a8565b600081600116600003613a3d57600160801b613a4f565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615613a83576ffff97272373d413259a46990580e213a0260801c5b6004821615613aa2576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615613ac1576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615613ae0576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615613aff576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615613b1e576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615613b3d576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615613b5d576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615613b7d576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615613b9d576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615613bbd576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615613bdd576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615613bfd576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615613c1d576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615613c3d576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615613c5e576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615613c7e576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615613c9d576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615613cba576b048a170391f7dc42444e8fa20260801c5b60008460020b1315613cdb578060001981613cd757613cd7615614565b0490505b640100000000810615613cef576001613cf2565b60005b60ff16602082901c0192505050919050565b600080836001600160a01b0316856001600160a01b03161115613d25579293925b846001600160a01b0316866001600160a01b031611613d5057613d49858585614691565b9150613d97565b836001600160a01b0316866001600160a01b03161015613d8957613d75868585614691565b9150613d8285878561470c565b9050613d97565b613d9485858561470c565b90505b94509492505050565b6000613dae60036014615867565b60148351613dbc91906152c9565b613854919061577e565b60008080613dd48482614756565b9250613de18460146147bb565b9050613df9613df260036014615867565b8590614756565b91509193909250565b6060613854613e1360036014615867565b613e1f60036014615867565b8451613e2b91906152c9565b849190614866565b6000806000613e4061391d565b905060008515613f57578151600090670de0b6b3a764000090613e639089615792565b613e6d919061577e565b9050613e7981886152c9565b60975460d3549196506000916001600160a01b03908116911614613f1e5760995460d354609754604051630df791e560e41b81526001600160a01b03928316600482015290821660248201526044810185905291169063df791e50906064016020604051808303816000875af1158015613ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1b91906151d5565b90505b60975460d3546001600160a01b03918216911603613f4757613f408284615867565b9250613f54565b613f518184615867565b92505b50505b841561406a578151600090670de0b6b3a764000090613f769088615792565b613f80919061577e565b9050613f8c81876152c9565b60975460d4549195506000916001600160a01b039081169116146140315760995460d454609754604051630df791e560e41b81526001600160a01b03928316600482015290821660248201526044810185905291169063df791e50906064016020604051808303816000875af115801561400a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061402e91906151d5565b90505b60975460d4546001600160a01b0391821691160361405a576140538284615867565b9250614067565b6140648184615867565b92505b50505b6000670de0b6b3a76400008360400151836140859190615792565b61408f919061577e565b6097549091506140a9906001600160a01b03168983613516565b6000670de0b6b3a76400008460600151846140c49190615792565b6140ce919061577e565b609a546097549192506140ee916001600160a01b03908116911683613516565b6000816140fb84866152c9565b61410591906152c9565b9050614125614112611c1c565b6097546001600160a01b03169083613516565b60408051848152602081018390529081018390527fd255b592c7f268a73e534da5219a60ff911b4cf6daae21c7d20527dd657bd99a9060600160405180910390a15050505050935093915050565b61417e838284614973565b60d9805465ffffffffffff1916630100000062ffffff9384160262ffffff19161792909116919091179055505050565b6000806141b9610892565b9092509050600082156141f5576ec097ce7bc90715b34b9f10000000006141de611e05565b6141e89085615792565b6141f2919061577e565b90505b8181101561425457614208868587614973565b5060da805462ffffff191662ffffff9290921691909117905561422c868680614973565b5060da805462ffffff90921663010000000265ffffff000000199092169190911790556142af565b808210156142af57614267868687614973565b60da805462ffffff191662ffffff929092169190911790555061428b868587614973565b60da805462ffffff90921663010000000265ffffff00000019909216919091179055505b60da5460d954600291820b910b1480156142e0575060da5460d954630100000091829004600290810b92909104900b145b156130cf57604051631434ed7f60e01b815260040160405180910390fd5b60655460ff16806143815750609b60009054906101000a90046001600160a01b03166001600160a01b031663f12d54d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561435d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061438191906158e9565b15610e935760405163e628b94960e01b815260040160405180910390fd5b6000836001600160a01b0316856001600160a01b031611156143bf579293925b846001600160a01b0316866001600160a01b0316116143ea576143e38585856149a5565b905061445a565b836001600160a01b0316866001600160a01b0316101561444c5760006144118786866149a5565b90506000614420878986614a0f565b9050806001600160801b0316826001600160801b0316106144415780614443565b815b9250505061445a565b614457858584614a0f565b90505b95945050505050565b60008060006144856144736120a4565b61447c876139ce565b6126d7876139ce565b915091508160001480614496575080155b156144a657600092505050613916565b600192505050613916565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526145028482614a45565b61184b576040516001600160a01b0384811660248301526000604483015261453791869182169063095ea7b390606401613543565b61184b848261458a565b60655460ff16610e935760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016119a8565b600061459f6001600160a01b03841683614ae8565b905080516000141580156145c45750808060200190518101906145c291906158e9565b155b1561209f57604051635274afe760e01b81526001600160a01b03841660048201526024016119a8565b60655460ff1615610e935760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016119a8565b600054610100900460ff1661465a5760405162461bcd60e51b81526004016119a890615a49565b610e93614af6565b600054610100900460ff166146895760405162461bcd60e51b81526004016119a890615a49565b610e93614b26565b6000826001600160a01b0316846001600160a01b031611156146b1579192915b6001600160a01b0384166146fa6fffffffffffffffffffffffffffffffff60601b606085901b166146e28787615b72565b6001600160a01b0316866001600160a01b0316613869565b614704919061577e565b949350505050565b6000826001600160a01b0316846001600160a01b0316111561472c579192915b6147046001600160801b0383166147438686615b72565b6001600160a01b0316600160601b613869565b6000614763826014615867565b835110156147ab5760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b60448201526064016119a8565b500160200151600160601b900490565b6000816147c9816003615867565b101561480b5760405162461bcd60e51b8152602060048201526011602482015270746f55696e7432345f6f766572666c6f7760781b60448201526064016119a8565b614816826003615867565b8351101561485d5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b60448201526064016119a8565b50016003015190565b60608161487481601f615867565b10156148b35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016119a8565b6148bd8284615867565b845110156149015760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016119a8565b606082158015614920576040519150600082526020820160405261496a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015614959578051835260209283019201614941565b5050858452601f01601f1916604052505b50949350505050565b60008060006149828685614b59565b905061498e8582615b92565b925061499a8582615bb7565b915050935093915050565b6000826001600160a01b0316846001600160a01b031611156149c5579192915b60006149e8856001600160a01b0316856001600160a01b0316600160601b613869565b905061445a614a0a84836149fc8989615b72565b6001600160a01b0316613869565b614ba3565b6000826001600160a01b0316846001600160a01b03161115614a2f579192915b614704614a0a83600160601b6149fc8888615b72565b6000806000846001600160a01b031684604051614a629190615bdc565b6000604051808303816000865af19150503d8060008114614a9f576040519150601f19603f3d011682016040523d82523d6000602084013e614aa4565b606091505b5091509150818015614ace575080511580614ace575080806020019051810190614ace91906158e9565b801561445a5750505050506001600160a01b03163b151590565b606061385183836000614bbe565b600054610100900460ff16614b1d5760405162461bcd60e51b81526004016119a890615a49565b610e9333613679565b600054610100900460ff16614b4d5760405162461bcd60e51b81526004016119a890615a49565b6065805460ff19169055565b600080614b668385615bf8565b905060008460020b128015614b865750614b808385615c29565b60020b15155b15614b995780614b9581615c4b565b9150505b6147048382615840565b806001600160801b0381168114614bb957600080fd5b919050565b606081471015614be35760405163cd78605960e01b81523060048201526024016119a8565b600080856001600160a01b03168486604051614bff9190615bdc565b60006040518083038185875af1925050503d8060008114614c3c576040519150601f19603f3d011682016040523d82523d6000602084013e614c41565b606091505b5091509150614c51868383614c5b565b9695505050505050565b606082614c7057614c6b82614cb7565b613916565b8151158015614c8757506001600160a01b0384163b155b15614cb057604051639996b31560e01b81526001600160a01b03851660048201526024016119a8565b5080613916565b805115614cc75780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060600160405280614d266040518060c0016040528060008152602001600081526020016000815260200160008152602001606081526020016000151581525090565b815260200160008152602001600081525090565b60008083601f840112614d4c57600080fd5b50813567ffffffffffffffff811115614d6457600080fd5b602083019150836020828501011115614d7c57600080fd5b9250929050565b60008060208385031215614d9657600080fd5b823567ffffffffffffffff811115614dad57600080fd5b614db985828601614d3a565b90969095509350505050565b6001600160a01b0381168114610b4657600080fd5b600060208284031215614dec57600080fd5b813561391681614dc5565b8060020b8114610b4657600080fd5b600060208284031215614e1857600080fd5b813561391681614df7565b63ffffffff81168114610b4657600080fd5b600060208284031215614e4757600080fd5b813561391681614e23565b60005b83811015614e6d578181015183820152602001614e55565b50506000910152565b60008151808452614e8e816020860160208601614e52565b601f01601f19169290920160200192915050565b6020815260006138516020830184614e76565b6020808252825182820181905260009190848201906040850190845b81811015614ef65783516001600160a01b031683529284019291840191600101614ed1565b50909695505050505050565b8060060b8114610b4657600080fd5b600060208284031215614f2357600080fd5b813561391681614f02565b600060208284031215614f4057600080fd5b5035919050565b60008060408385031215614f5a57600080fd5b50508035926020909101359150565b600080600080600080600080888a03610120811215614f8757600080fd5b8935614f9281614dc5565b985060208a0135614fa281614dc5565b975060408a0135614fb281614df7565b965060608a013567ffffffffffffffff80821115614fcf57600080fd5b614fdb8d838e01614d3a565b909850965060808c0135915080821115614ff457600080fd5b506150018c828d01614d3a565b9095509350506080609f198201121561501957600080fd5b5060a0890190509295985092959890939650565b60208152600082516060602084015280516080840152602081015160a0840152604081015160c0840152606081015160e0840152608081015160c061010085015261507c610140850182614e76565b905060a082015115156101208501526020850151604085015260408501516060850152809250505092915050565b634e487b7160e01b600052604160045260246000fd5b60405160c0810167ffffffffffffffff811182821017156150e3576150e36150aa565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715615112576151126150aa565b604052919050565b600067ffffffffffffffff821115615134576151346150aa565b50601f01601f191660200190565b60008060006060848603121561515757600080fd5b8335925060208401359150604084013567ffffffffffffffff81111561517c57600080fd5b8401601f8101861361518d57600080fd5b80356151a061519b8261511a565b6150e9565b8181528760208385010111156151b557600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156151e757600080fd5b5051919050565b805161ffff81168114614bb957600080fd5b80518015158114614bb957600080fd5b600080600080600080600060e0888a03121561522b57600080fd5b875161523681614dc5565b602089015190975061524781614df7565b9550615255604089016151ee565b9450615263606089016151ee565b9350615271608089016151ee565b925060a088015161528181614e23565b915061528f60c08901615200565b905092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115613854576138546152b3565b600181811c908216806152f057607f821691505b60208210810361531057634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561209f576000816000526020600020601f850160051c8101602086101561533f5750805b601f850160051c820191505b818110156130cf5782815560010161534b565b67ffffffffffffffff831115615376576153766150aa565b61538a8361538483546152dc565b83615316565b6000601f8411600181146153be57600085156153a65750838201355b600019600387901b1c1916600186901b1783556133c1565b600083815260209020601f19861690835b828110156153ef57868501358255602094850194600190920191016153cf565b508682101561540c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b6020808252825182820181905260009190848201906040850190845b81811015614ef657835163ffffffff1683529284019291840191600101615469565b600067ffffffffffffffff8211156154a5576154a56150aa565b5060051b60200190565b600082601f8301126154c057600080fd5b815160206154d061519b8361548b565b8083825260208201915060208460051b8701019350868411156154f257600080fd5b602086015b8481101561551757805161550a81614dc5565b83529183019183016154f7565b509695505050505050565b6000806040838503121561553557600080fd5b825167ffffffffffffffff8082111561554d57600080fd5b818501915085601f83011261556157600080fd5b8151602061557161519b8361548b565b82815260059290921b8401810191818101908984111561559057600080fd5b948201945b838610156155b75785516155a881614f02565b82529482019490820190615595565b918801519196509093505050808211156155d057600080fd5b506155dd858286016154af565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715613854576138546152b3565b634e487b7160e01b600052601260045260246000fd5b60008160060b8360060b8061564157615641615614565b667fffffffffffff1982146000198214161561565f5761565f6152b3565b90059392505050565b60006020828403121561567a57600080fd5b815160ff8116811461391657600080fd5b600181815b808511156156c65781600019048211156156ac576156ac6152b3565b808516156156b957918102915b93841c9390800290615690565b509250929050565b6000826156dd57506001613854565b816156ea57506000613854565b8160018114615700576002811461570a57615726565b6001915050613854565b60ff84111561571b5761571b6152b3565b50506001821b613854565b5060208310610133831016604e8410600b8410161715615749575081810a613854565b615753838361568b565b8060001904821115615767576157676152b3565b029392505050565b600061385160ff8416836156ce565b60008261578d5761578d615614565b500490565b8082028115828204841417613854576138546152b3565b6040815260008084546157bb816152dc565b80604086015260606001808416600081146157dd57600181146157f95761582b565b60ff1985166060890152606084151560051b890101955061582b565b8960005260208060002060005b868110156158215781548b8201870152908401908201615806565b8a01606001975050505b50505050506020929092019290925292915050565b60008260020b8260020b028060020b9150808214615860576158606152b3565b5092915050565b80820180821115613854576138546152b3565b60006020828403121561588c57600080fd5b815161391681614dc5565b6000602082840312156158a957600080fd5b815162ffffff8116811461391657600080fd5b600681810b9083900b01667fffffffffffff8113667fffffffffffff1982121715613854576138546152b3565b6000602082840312156158fb57600080fd5b61385182615200565b80516001600160801b0381168114614bb957600080fd5b600080600080600060a0868803121561593357600080fd5b61593c86615904565b9450602086015193506040860151925061595860608701615904565b915061596660808701615904565b90509295509295909350565b600293840b81529190920b60208201526001600160801b03909116604082015260600190565b600080604083850312156159ab57600080fd5b505080516020909101519092909150565b6001600160a01b03959095168552600293840b60208601529190920b60408401526001600160801b03918216606084015216608082015260a00190565b60008060408385031215615a0c57600080fd5b615a1583615904565b9150615a2360208401615904565b90509250929050565b600060208284031215615a3e57600080fd5b815161391681614df7565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020808385031215615aa757600080fd5b825167ffffffffffffffff80821115615abf57600080fd5b9084019060c08287031215615ad357600080fd5b615adb6150c0565b8251815283830151848201526040830151604082015260608301516060820152608083015182811115615b0d57600080fd5b83019150601f82018713615b2057600080fd5b8151615b2e61519b8261511a565b8181528886838601011115615b4257600080fd5b615b5182878301888701614e52565b608083015250615b6360a08401615200565b60a08201529695505050505050565b6001600160a01b03828116828216039080821115615860576158606152b3565b600282810b9082900b03627fffff198112627fffff82131715613854576138546152b3565b600281810b9083900b01627fffff8113627fffff1982121715613854576138546152b3565b60008251615bee818460208701614e52565b9190910192915050565b60008160020b8360020b80615c0f57615c0f615614565b627fffff1982146000198214161561565f5761565f6152b3565b60008260020b80615c3c57615c3c615614565b808360020b0791505092915050565b60008160020b627fffff198103615c6457615c646152b3565b600019019291505056fea2646970667358221220bd490cdb093cc7644db45877b6a1864c48adf49ae5297f129cc3ebc5e51169e064736f6c63430008170033