0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80639665861a116100715780639665861a1461018b578063ca211f7f146101b2578063d7598122146101d9578063dbf9ee9e146101fa578063fafc79da1461020d578063fbdc1ef11461022057600080fd5b8063022f9ddf146100b957806322e12c63146100ce5780632fb04336146100e15780633c8c01d11461010a578063483d209e1461012b578063747e5ec114610156575b600080fd5b6100cc6100c736600461202d565b61025c565b005b6100cc6100dc36600461208e565b6104c5565b6100f46100ef3660046120e5565b610b34565b60405161010191906121e0565b60405180910390f35b61011d6101183660046120e5565b610df5565b604051610101929190612286565b60015461013e906001600160a01b031681565b6040516001600160a01b039091168152602001610101565b61017d7ff796b89427c6552c1ac705d833bfb7909f8eb5ce502c1db97f85fabc6ad8354881565b604051908152602001610101565b61017d7fb03cf3d518f6d49560b7f5bece1ccb8fd50ea7370f02f5e5210edba04be3c4f781565b61017d7fbd4dbacf5ba6d9793f600403b3293d6ecd695fcc703a2b5edcf245f45fda6cfa81565b6101ec6101e736600461202d565b6110eb565b60405161010192919061230e565b6100cc61020836600461208e565b61176f565b6100cc61021b36600461233c565b611a1c565b61024761022e36600461235e565b6000602081905290815260409020805460019091015482565b60408051928352602083019190915201610101565b817fbd4dbacf5ba6d9793f600403b3293d6ecd695fcc703a2b5edcf245f45fda6cfa6102888282611a61565b60006102a08561029b6020870187612377565b611b2e565b6000818152602081815260408220929350610365906102c7903689900389019089016124a1565b61032d6102d760808a018a6124e5565b808060200260200160405190810160405280939291908181526020016000905b828210156103235761031460a0830286013681900381019061253a565b815260200190600101906102f7565b5050505050611b71565b6040805160208101909152600081527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906003611ba1565b90506103718382611a1c565b43825560006001830181905561038a60808801886124e5565b905011156103fe576001600160a01b03871663e978afe56103ae60808901896124e5565b6040518363ffffffff1660e01b81526004016103cb9291906125ca565b600060405180830381600087803b1580156103e557600080fd5b505af11580156103f9573d6000803e3d6000fd5b505050505b6040516325931fa960e21b815260a08701356004820152600060248201526001600160a01b0388169063964c7ea490604401600060405180830381600087803b15801561044a57600080fd5b505af115801561045e573d6000803e3d6000fd5b50610470925050506020870187612377565b6001600160a01b0316876001600160a01b03167fa0e5d4ce6420a0e7a5f0ac10c47b3a672fb661c11f5609bb21b68644d81e17aa836040516104b491815260200190565b60405180910390a350505050505050565b817fb03cf3d518f6d49560b7f5bece1ccb8fd50ea7370f02f5e5210edba04be3c4f76104f18282611a61565b60006105048561029b6020870187612377565b60008181526020818152604082209293506105d69061052b903689900389019089016124a1565b61058761053b60a08a018a6124e5565b808060200260200160405190810160405280939291908181526020016000905b828210156103235761057860a0830286013681900381019061253a565b8152602001906001019061055b565b60c089013561059960808b018b61266d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060029250611ba1915050565b90506105e28382611a1c565b60006106036105f936899003890160208a016124a1565b8860c00135611be9565b43845560018401819055905060006106216080890160608a01612377565b604051639af3e90960e01b81526001600160a01b039190911690639af3e909906106529060208c01906004016126e0565b600060405180830381865afa15801561066f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106979190810190612765565b905060006106a860208a018a612377565b6001600160a01b03166341de68306040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610709919061282e565b9050600081600381111561071f5761071f61212a565b141561087957600061073460208b018b612377565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610771573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610795919061284f565b9050600083602001516001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ff919061284f565b9050806001600160a01b0316826001600160a01b0316146108725761087261082a60208d018d612377565b8261083860808f018f61266d565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c3092505050565b5050610a43565b600381600381111561088d5761088d61212a565b1415610a0c5760006108a260208b018b612377565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610903919061284f565b9050600083602001516001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610949573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096d919061284f565b9050600061097e60208d018d612377565b6001600160a01b03166359659e906040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109df919061284f565b9050816001600160a01b0316836001600160a01b031614610a0457610a048183611d55565b505050610a43565b610a1960208a018a612377565b60405163390d5b2560e21b81526001600160a01b0390911660048201526024015b60405180910390fd5b6000610a5260a08b018b6124e5565b90501115610ac6576001600160a01b038a1663e978afe5610a7660a08c018c6124e5565b6040518363ffffffff1660e01b8152600401610a939291906125ca565b600060405180830381600087803b158015610aad57600080fd5b505af1158015610ac1573d6000803e3d6000fd5b505050505b610ad360208a018a612377565b6001600160a01b03168a6001600160a01b03167f24565610ddf61ee73e8501d7f0454657c71f5944882f5c586d7246bf43e13cda8686604051610b20929190918252602082015260400190565b60405180910390a350505050505050505050565b60606000610b5684610b488585018661286c565b61029b906020810190612377565b6000818152602081905260408120919250610bd3610b79368790038701876124a1565b610bce610b89606089018961286c565b610b9790602081019061288c565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611e3392505050565b611be9565b905080826001015414610c0957600182015460405163039d275560e51b8152600481019190915260248101829052604401610a3a565b6000610c1b6060870160408801612377565b604051639af3e90960e01b81526001600160a01b039190911690639af3e90990610c499089906004016126e0565b600060405180830381865afa158015610c66573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c8e9190810190612765565b60208101519091506001600160a01b0316639cb0a12488610cb260608a018a61286c565b6040518363ffffffff1660e01b8152600401610ccf929190612a14565b6000604051808303816000875af1158015610cee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d169190810190612b34565b94506000610d35610d2c368990038901896124a1565b61032d88611b71565b600081815260028601602052604090205485549192501115610d6d57604051630559b4b760e31b815260048101829052602401610a3a565b600081815260028501602052604090819020439055610d929060608901908901612377565b6001600160a01b03908116908916337f5fdcd271ff15db84cbc94365956df5504f6d756e111654144648433c11a44530848b610dd1606082018261286c565b8c604051610de29493929190612b68565b60405180910390a4505050505092915050565b6000610e14604051806040016040528060608152602001606081525090565b6000610e266060850160408601612377565b60015460405163f29ee12560e01b81526001600160a01b03808416600483015292935091169063f29ee12590602401602060405180830381865afa158015610e72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e969190612bab565b610eb357604051630353faad60e21b815260040160405180910390fd5b604051639af3e90960e01b81526000906001600160a01b03831690639af3e90990610ee29088906004016126e0565b600060405180830381865afa158015610eff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f279190810190612765565b60208101519091506001600160a01b031663f10832f187610f4b606089018961266d565b6040518463ffffffff1660e01b8152600401610f6993929190612bcd565b6000604051808303816000875af1158015610f88573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fb09190810190612cd0565b90945092506000610fc18786611b2e565b90506000611006610fd7368990038901896124a1565b610fe48760200151611b71565b8751610fef90611e33565b604051806020016040528060008152506001611ba1565b60008381526020819052604090206001810154919250901561103b57604051636972275b60e11b815260040160405180910390fd5b60008281526002820160205260409020548154101561107057604051630559b4b760e31b815260048101839052602401610a3a565b600082815260028201602052604090204390556001600160a01b03808616908a16337f8ea69cee01fd9fc24e6b9614ea0896c5a1eac8fd8aba383285248cd0e1d8503a858c6110c2606082018261266d565b8e8e6040516110d696959493929190612d16565b60405180910390a450505050505b9250929050565b606061110a604051806040016040528060608152602001606081525090565b61111a6060840160408501612d5e565b60ff1661112a6020850185612d5e565b60ff1614158061116057506111456080840160608501612d7b565b61ffff166111596040850160208601612d7b565b61ffff1610155b1561118557604080516380d4e90760e01b8152610a3a91859190820190600401612d98565b600061119885610b4860a087018761286c565b60008181526020819052604081209192506111b9610b8960a088018861286c565b905060006112056040518060400160405280896000018036038101906111df9190612db3565b81526020016111f460a08b0160808c01612377565b6001600160a01b0316905283611be9565b90508083600101541461123b57600183015460405163039d275560e51b8152600481019190915260248101829052604401610a3a565b600061124d60a0890160808a01612377565b604051639af3e90960e01b81526001600160a01b039190911690639af3e9099061127b908b906004016126e0565b600060405180830381865afa158015611298573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112c09190810190612765565b905060006112d460a08a0160808b01612377565b6001600160a01b0316639af3e9098a6040016040518263ffffffff1660e01b815260040161130291906126e0565b600060405180830381865afa15801561131f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113479190810190612765565b9050600081602001516001600160a01b031683602001516001600160a01b0316141561143f576113e960405180604001604052808c60400180360381019061138f9190612db3565b81526020016113a460a08e0160808f01612377565b6001600160a01b031690526040805160208101909152600081527f569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd9088906002611ba1565b90506113f860a08b018b61286c565b61140690602081019061288c565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050509089525061170c565b61147463041de68360e41b61145760a08d018d61286c565b611465906020810190612377565b6001600160a01b031690611e46565b6114b85761148560a08b018b61286c565b611493906020810190612377565b604051638174ff5560e01b81526001600160a01b039091166004820152602401610a3a565b60006114c760a08c018c61286c565b6114d5906020810190612377565b6001600160a01b03166341de68306040518163ffffffff1660e01b8152600401602060405180830381865afa158015611512573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611536919061282e565b60038111156115475761154761212a565b141580156115e25750600361155f60a08c018c61286c565b61156d906020810190612377565b6001600160a01b03166341de68306040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ce919061282e565b60038111156115df576115df61212a565b14155b15611602576115f460a08b018b61286c565b610a19906020810190612377565b81602001516001600160a01b031663a8a9c29e8c8c600001602001602081019061162c9190612d7b565b61163960a08f018f61286c565b6040518463ffffffff1660e01b815260040161165793929190612dcf565b6000604051808303816000875af1158015611676573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261169e9190810190612dfd565b809950819a50505061170960405180604001604052808c6040018036038101906116c89190612db3565b81526020016116dd60a08e0160808f01612377565b6001600160a01b03168152506116f68a60200151611b71565b8a5161170190611e33565b8c6002611ba1565b90505b60008181526002870160205260409020548654101561174157604051630559b4b760e31b815260048101829052602401610a3a565b600081815260028701602052604090204390556117618b828c8b8d611e69565b505050505050509250929050565b817ff796b89427c6552c1ac705d833bfb7909f8eb5ce502c1db97f85fabc6ad8354861179b8282611a61565b60006117b18561029b6080870160608801612377565b600081815260208190526040812091925061184c6117d4368890038801886124a1565b6118306117e460808a018a6124e5565b808060200260200160405190810160405280939291908181526020016000905b828210156103235761182160a0830286013681900381019061253a565b81526020019060010190611804565b8860a00135604051806020016040528060008152506001611ba1565b60018301549091501561187257604051636972275b60e11b815260040160405180910390fd5b61187c8382611a1c565b600061189a611890368990038901896124a1565b8860a00135611be9565b60018401819055438455905060006118b560808901896124e5565b90501115611929576001600160a01b03881663e978afe56118d960808a018a6124e5565b6040518363ffffffff1660e01b81526004016118f69291906125ca565b600060405180830381600087803b15801561191057600080fd5b505af1158015611924573d6000803e3d6000fd5b505050505b6001600160a01b03881663964c7ea460c089013561194d60808b0160608c01612377565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401600060405180830381600087803b15801561199457600080fd5b505af11580156119a8573d6000803e3d6000fd5b506119bd925050506080880160608901612377565b6001600160a01b0316886001600160a01b03167f74e616c7264536b98a5ec234d051ae6ce1305bf05c85f9ddc112364440ccf1298484604051611a0a929190918252602082015260400190565b60405180910390a35050505050505050565b6000828152602081815260408083208484526002810190925290912054815410611a5c57604051632cb9867360e11b815260048101839052602401610a3a565b505050565b336001600160a01b03831614801590611af5575060408051602081018252600081529051637ef7c88360e11b81526001600160a01b0384169163fdef910691611ab291309133918791600401612e56565b602060405180830381865afa158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af39190612bab565b155b15611b2a5760405162aeb47760e51b81526001600160a01b038316600482015233602482015260448101829052606401610a3a565b5050565b604080516001600160a01b0380851660208301528316918101919091526000906060015b6040516020818303038152906040528051906020012090505b92915050565b600081604051602001611b8491906121e0565b604051602081830303815290604052805190602001209050919050565b8451602080870151845185830120604051600094611bc8949093928a928a92899101612e89565b60405160208183030381529060405280519060200120905095945050505050565b815160208084015160408051845160ff1681850152929093015161ffff16928201929092526001600160a01b0390911660608201526080810182905260009060a001611b52565b805115611d275760405163278f794360e11b81526001600160a01b03841690634f1ef28690611c659085908590600401612ee7565b600060405180830381600087803b158015611c7f57600080fd5b505af1925050508015611c90575060015b611a5c57611c9c612f0b565b806308c379a01415611cd65750611cb1612f27565b80611cbc5750611cd8565b8060405162461bcd60e51b8152600401610a3a9190612fb0565b505b3d808015611d02576040519150601f19603f3d011682016040523d82523d6000602084013e611d07565b606091505b508383836040516396e9e31b60e01b8152600401610a3a93929190612fc3565b604051631b2ce7f360e11b81526001600160a01b038381166004830152841690633659cfe690602401611c65565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe690602401600060405180830381600087803b158015611d9857600080fd5b505af1925050508015611da9575060015b611b2a57611db5612f0b565b806308c379a01415611dd55750611dca612f27565b80611cbc5750611dd7565b505b3d808015611e01576040519150601f19603f3d011682016040523d82523d6000602084013e611e06565b606091505b50604051638064e1bf60e01b81526001600160a01b03808516600483015283166024820152604401610a3a565b600081604051602001611b849190612fef565b6000611e5183611edd565b8015611e625750611e628383611f10565b9392505050565b611e7960a0840160808501612377565b6001600160a01b03908116908616337f3686138d92841c8549b2fe39fda23881fef6aa9b347352114c0869bf5af3e3f28760408801611ebb60a08a018a61286c565b8888604051611ece95949392919061303c565b60405180910390a45050505050565b6000611ef0826301ffc9a760e01b611f10565b8015611b6b5750611f09826001600160e01b0319611f10565b1592915050565b604080516001600160e01b0319831660248083019190915282518083039091018152604490910182526020810180516001600160e01b03166301ffc9a760e01b179052905160009190829081906001600160a01b0387169061753090611f77908690613094565b6000604051808303818686fa925050503d8060008114611fb3576040519150601f19603f3d011682016040523d82523d6000602084013e611fb8565b606091505b5091509150602081511015611fd35760009350505050611b6b565b818015611ff35750600081806020019051810190611ff191906130a6565b115b9695505050505050565b6001600160a01b038116811461201257600080fd5b50565b600060c0828403121561202757600080fd5b50919050565b6000806040838503121561204057600080fd5b823561204b81611ffd565b915060208301356001600160401b0381111561206657600080fd5b61207285828601612015565b9150509250929050565b600060e0828403121561202757600080fd5b600080604083850312156120a157600080fd5b82356120ac81611ffd565b915060208301356001600160401b038111156120c757600080fd5b6120728582860161207c565b60006080828403121561202757600080fd5b600080604083850312156120f857600080fd5b823561210381611ffd565b915060208301356001600160401b0381111561211e57600080fd5b612072858286016120d3565b634e487b7160e01b600052602160045260246000fd5b600381106121505761215061212a565b9052565b61215f828251612140565b6020818101516001600160a01b0390811691840191909152604080830151821690840152606080830151909116908301526080908101519082015260a00190565b600081518084526020808501945080840160005b838110156121d5576121c7878351612154565b9650908201906001016121b4565b509495945050505050565b602081526000611e6260208301846121a0565b805160408084528151908401819052600091602091908201906060860190845b818110156122385783516001600160a01b031683529284019291840191600101612213565b50508483015186820387850152805180835290840192506000918401905b8083101561227b57612269828551612154565b91508484019350600183019250612256565b509695505050505050565b6001600160a01b03831681526040602082018190526000906122aa908301846121f3565b949350505050565b60005b838110156122cd5781810151838201526020016122b5565b838111156122dc576000848401525b50505050565b600081518084526122fa8160208601602086016122b2565b601f01601f19169290920160200192915050565b60408152600061232160408301856122e2565b828103602084015261233381856121f3565b95945050505050565b6000806040838503121561234f57600080fd5b50508035926020909101359150565b60006020828403121561237057600080fd5b5035919050565b60006020828403121561238957600080fd5b8135611e6281611ffd565b634e487b7160e01b600052604160045260246000fd5b604081018181106001600160401b03821117156123c9576123c9612394565b60405250565b606081018181106001600160401b03821117156123c9576123c9612394565b60a081018181106001600160401b03821117156123c9576123c9612394565b601f8201601f191681016001600160401b038111828210171561243257612432612394565b6040525050565b60ff8116811461201257600080fd5b61ffff8116811461201257600080fd5b60006040828403121561246a57600080fd5b604051612476816123aa565b809150823561248481612439565b8152602083013561249481612448565b6020919091015292915050565b6000606082840312156124b357600080fd5b6040516124bf816123aa565b6124c98484612458565b815260408301356124d981611ffd565b60208201529392505050565b6000808335601e198436030181126124fc57600080fd5b8301803591506001600160401b0382111561251657600080fd5b602001915060a0810236038213156110e457600080fd5b6003811061201257600080fd5b600060a0828403121561254c57600080fd5b60405160a081018181106001600160401b038211171561256e5761256e612394565b604052823561257c8161252d565b8152602083013561258c81611ffd565b6020820152604083013561259f81611ffd565b604082015260608301356125b281611ffd565b60608201526080928301359281019290925250919050565b6020808252818101839052600090604080840186845b878110156126605781356125f38161252d565b6125fd8482612140565b508482013561260b81611ffd565b6001600160a01b0390811684870152828501359061262882611ffd565b908116848601526060908382013561263f81611ffd565b16908401526080828101359084015260a092830192909101906001016125e0565b5090979650505050505050565b6000808335601e1984360301811261268457600080fd5b8301803591506001600160401b0382111561269e57600080fd5b6020019150368190038213156110e457600080fd5b80356126be81612439565b60ff16825260208101356126d181612448565b61ffff81166020840152505050565b60408101611b6b82846126b3565b80516126f981611ffd565b919050565b600082601f83011261270f57600080fd5b81516001600160401b0381111561272857612728612394565b60405161273f601f8301601f19166020018261240d565b81815284602083860101111561275457600080fd5b6122aa8260208301602087016122b2565b60006020828403121561277757600080fd5b81516001600160401b038082111561278e57600080fd5b9083019081850360808112156127a357600080fd5b6040516127af816123cf565b60408212156127bd57600080fd5b60405191506127cb826123aa565b83516127d681612439565b825260208401516127e681612448565b60208301528181526127fa604085016126ee565b6020820152606084015191508282111561281357600080fd5b61281f878386016126fe565b60408201529695505050505050565b60006020828403121561284057600080fd5b815160048110611e6257600080fd5b60006020828403121561286157600080fd5b8151611e6281611ffd565b60008235605e1983360301811261288257600080fd5b9190910192915050565b6000808335601e198436030181126128a357600080fd5b8301803591506001600160401b038211156128bd57600080fd5b6020019150600581901b36038213156110e457600080fd5b6000808335601e198436030181126128ec57600080fd5b83016020810192503590506001600160401b0381111561290b57600080fd5b8036038313156110e457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600060608301823561295481611ffd565b6001600160a01b0390811685526020908482013536869003601e1901811261297b57600080fd5b850180356001600160401b0381111561299357600080fd5b8060051b36038713156129a557600080fd5b60608885015293849052820192600090608088015b818310156129e35785356129cd81611ffd565b84168152948401946001929092019184016129ba565b6129f060408901896128d5565b9650945088810360408a0152612a0781878761291a565b9998505050505050505050565b6001600160a01b03831681526040602082018190526000906122aa90830184612943565b60006001600160401b03821115612a5157612a51612394565b5060051b60200190565b600082601f830112612a6c57600080fd5b81516020612a7982612a38565b60408051612a87838261240d565b84815260a09485028701840194848201935088861115612aa657600080fd5b8488015b86811015612b265781818b031215612ac25760008081fd5b8351612acd816123ee565b8151612ad88161252d565b815281870151612ae781611ffd565b8188015281850151612af881611ffd565b81860152606082810151612b0b81611ffd565b90820152608082810151908201528552938501938101612aaa565b509098975050505050505050565b600060208284031215612b4657600080fd5b81516001600160401b03811115612b5c57600080fd5b6122aa84828501612a5b565b848152612b7860208201856126b3565b60a060608201526000612b8e60a0830185612943565b8281036080840152612ba081856121a0565b979650505050505050565b600060208284031215612bbd57600080fd5b81518015158114611e6257600080fd5b6001600160a01b0384168152604060208201819052600090612333908301848661291a565b600060408284031215612c0457600080fd5b604051612c10816123aa565b80915082516001600160401b0380821115612c2a57600080fd5b818501915085601f830112612c3e57600080fd5b81516020612c4b82612a38565b604051612c58828261240d565b83815260059390931b8501820192828101915089841115612c7857600080fd5b948201945b83861015612c9f578551612c9081611ffd565b82529482019490820190612c7d565b86525086810151935082841115612cb557600080fd5b612cc188858901612a5b565b81860152505050505092915050565b60008060408385031215612ce357600080fd5b8251612cee81611ffd565b60208401519092506001600160401b03811115612d0a57600080fd5b61207285828601612bf2565b868152612d2660208201876126b3565b60c060608201526000612d3d60c08301868861291a565b6001600160a01b038516608084015282810360a0840152612a0781856121f3565b600060208284031215612d7057600080fd5b8135611e6281612439565b600060208284031215612d8d57600080fd5b8135611e6281612448565b60808101612da682856126b3565b611e6260408301846126b3565b600060408284031215612dc557600080fd5b611e628383612458565b6001600160a01b038416815261ffff8316602082015260606040820181905260009061233390830184612943565b60008060408385031215612e1057600080fd5b82516001600160401b0380821115612e2757600080fd5b612e33868387016126fe565b93506020850151915080821115612e4957600080fd5b5061207285828601612bf2565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611ff3908301846122e2565b865160ff16815260208088015161ffff169082015260e081016001600160a01b0387166040830152606082018690526080820185905260a0820184905260048310612ed657612ed661212a565b8260c0830152979650505050505050565b6001600160a01b03831681526040602082018190526000906122aa908301846122e2565b600060033d1115612f245760046000803e5060005160e01c5b90565b600060443d1015612f355790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715612f6457505050505090565b8285019150815181811115612f7c5750505050505090565b843d8701016020828501011115612f965750505050505090565b612fa56020828601018761240d565b509095945050505050565b602081526000611e6260208301846122e2565b6001600160a01b03848116825283166020820152606060408201819052600090612333908301846122e2565b6020808252825182820181905260009190848201906040850190845b818110156130305783516001600160a01b03168352928401929184019160010161300b565b50909695505050505050565b85815261304c60208201866126b3565b60c06060820152600061306260c0830186612943565b828103608084015261307481866121f3565b905082810360a084015261308881856122e2565b98975050505050505050565b600082516128828184602087016122b2565b6000602082840312156130b857600080fd5b505191905056fea26469706673582212208be97a38160002c4304cd14b73da0604cfe33a2d096e3abd55fa46fe2093c4d564736f6c634300080a0033