60a06040526005805460ff60a01b1916600160a01b179055600c805460ff199081166001179091556010805461010161ffff1990911617905560128054909116905534801561004c575f80fd5b5060408051602080820183525f80835283519182019093529182529060046100748382610126565b5060036100818282610126565b50506012608052506101e0565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806100b657607f821691505b6020821081036100d457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561012157805f5260205f20601f840160051c810160208510156100ff5750805b601f840160051c820191505b8181101561011e575f815560010161010b565b50505b505050565b81516001600160401b0381111561013f5761013f61008e565b6101538161014d84546100a2565b846100da565b6020601f821160018114610185575f831561016e5750848201515b5f19600385901b1c1916600184901b17845561011e565b5f84815260208120601f198516915b828110156101b45787850151825560209485019460019092019101610194565b50848210156101d157868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b608051612e8b6101f85f395f6104940152612e8b5ff3fe60806040526004361061033d575f3560e01c80638d8f2adb116101b2578063bbc0c742116100f2578063e0f3ccf511610092578063ec28438a1161006d578063ec28438a146109af578063f2fde38b146109ce578063f8821a62146109ed578063f928364c14610a02575f80fd5b8063e0f3ccf514610970578063e2f4560514610985578063e4748b9e1461099a575f80fd5b8063c6057aae116100cd578063c6057aae146108cf578063dcf7aef3146108ee578063dd62ed3e1461090d578063e01af92c14610951575f80fd5b8063bbc0c74214610860578063c024666814610891578063c20c43bf146108b0575f80fd5b8063a2d83c421161015d578063a72905a211610138578063a72905a2146107df578063a9059cbb1461080d578063aa4bde281461082c578063afa4f3b214610841575f80fd5b8063a2d83c4214610789578063a2edb2c3146107a7578063a457c2d7146107c0575f80fd5b806395927c251161018d57806395927c251461074257806395d89b4114610761578063a0ef91df14610775575f80fd5b80638d8f2adb146106dd5780638da5cb5b146106f1578063921369131461072d575f80fd5b806343d4f92b1161027d578063715018a61161022857806375f0a8741161020357806375f0a874146106755780637bce5a04146106945780637e26cafa146106a95780638c0b5e22146106c8575f80fd5b8063715018a61461062e57806373d00224146106425780637571336a14610656575f80fd5b806354f9c98c1161025857806354f9c98c146105b35780636ddd1713146105e157806370a08231146105fa575f80fd5b806343d4f92b1461053e57806349bd5a5e1461055d5780634fbee1931461057c575f80fd5b806327a14fc2116102e85780633582ad23116102c35780633582ad23146104c857806339509351146104e15780633ad10ef614610500578063418eeb291461051f575f80fd5b806327a14fc2146104365780632b5ba3b914610455578063313ce56714610483575f80fd5b806318160ddd1161031857806318160ddd146103d8578063214013ca146103f657806323b872dd14610417575f80fd5b806306fdde0314610348578063095ea7b3146103725780631694505e146103a1575f80fd5b3661034457005b5f80fd5b348015610353575f80fd5b5061035c610a16565b6040516103699190612929565b60405180910390f35b34801561037d575f80fd5b5061039161038c366004612990565b610aa2565b6040519015158152602001610369565b3480156103ac575f80fd5b506006546103c0906001600160a01b031681565b6040516001600160a01b039091168152602001610369565b3480156103e3575f80fd5b506002545b604051908152602001610369565b348015610401575f80fd5b506104156104103660046129ba565b610abb565b005b348015610422575f80fd5b506103916104313660046129d5565b610b92565b348015610441575f80fd5b50610415610450366004612a13565b610bb5565b348015610460575f80fd5b5061039161046f3660046129ba565b60136020525f908152604090205460ff1681565b34801561048e575f80fd5b506104b67f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610369565b3480156104d3575f80fd5b506010546103919060ff1681565b3480156104ec575f80fd5b506103916104fb366004612990565b610c14565b34801561050b575f80fd5b506008546103c0906001600160a01b031681565b34801561052a575f80fd5b50610391610539366004612a13565b610c52565b348015610549575f80fd5b506104156105583660046129ba565b610d9a565b348015610568575f80fd5b506005546103c0906001600160a01b031681565b348015610587575f80fd5b506103916105963660046129ba565b6001600160a01b03165f9081526019602052604090205460ff1690565b3480156105be575f80fd5b506103916105cd3660046129ba565b600d6020525f908152604090205460ff1681565b3480156105ec575f80fd5b50600c546103919060ff1681565b348015610605575f80fd5b506103e86106143660046129ba565b6001600160a01b03165f9081526020819052604090205490565b348015610639575f80fd5b50610415610ddc565b34801561064d575f80fd5b50610415610def565b348015610661575f80fd5b50610415610670366004612a39565b610e69565b348015610680575f80fd5b506009546103c0906001600160a01b031681565b34801561069f575f80fd5b506103e860155481565b3480156106b4575f80fd5b506104156106c3366004612a39565b610e9b565b3480156106d3575f80fd5b506103e8600e5481565b3480156106e8575f80fd5b50610415610f4e565b3480156106fc575f80fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166103c0565b348015610738575f80fd5b506103e860175481565b34801561074d575f80fd5b5061041561075c366004612a13565b611036565b34801561076c575f80fd5b5061035c611055565b348015610780575f80fd5b50610415611062565b348015610794575f80fd5b5060105461039190610100900460ff1681565b3480156107b2575f80fd5b506012546103919060ff1681565b3480156107cb575f80fd5b506103916107da366004612990565b61107b565b3480156107ea575f80fd5b506103916107f93660046129ba565b601a6020525f908152604090205460ff1681565b348015610818575f80fd5b50610391610827366004612990565b611124565b348015610837575f80fd5b506103e8600f5481565b34801561084c575f80fd5b5061039161085b366004612a13565b611131565b34801561086b575f80fd5b506005546103919074010000000000000000000000000000000000000000900460ff1681565b34801561089c575f80fd5b506104156108ab366004612a39565b61126f565b3480156108bb575f80fd5b506104156108ca366004612a6c565b6112a1565b3480156108da575f80fd5b506104156108e9366004612b7a565b6112e0565b3480156108f9575f80fd5b50610415610908366004612a13565b611741565b348015610918575f80fd5b506103e8610927366004612c45565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561095c575f80fd5b5061041561096b366004612a6c565b61175e565b34801561097b575f80fd5b506103e860165481565b348015610990575f80fd5b506103e8600a5481565b3480156109a5575f80fd5b506103e860145481565b3480156109ba575f80fd5b506104156109c9366004612a13565b611779565b3480156109d9575f80fd5b506104156109e83660046129ba565b6117d8565b3480156109f8575f80fd5b506103e8600b5481565b348015610a0d575f80fd5b5061039161182b565b60048054610a2390612c7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4f90612c7c565b8015610a9a5780601f10610a7157610100808354040283529160200191610a9a565b820191905f5260205f20905b815481529060010190602001808311610a7d57829003601f168201915b505050505081565b5f33610aaf818585611844565b60019150505b92915050565b610ac361199b565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038381169182179092555f908152601a60205260409020805460ff19166001908117909155600654610b23921690610e69565b610b2e816001610e69565b6010805460ff19166001179055600580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055600854610b8f906001600160a01b03166117d8565b50565b5f33610b9f858285611a0f565b610baa858585611ab8565b506001949350505050565b610bbd61199b565b670de0b6b3a76400006103e8610bd260025490565b610bdd906001612cfa565b610be79190612d11565b610bf19190612d11565b811015610bfc575f80fd5b610c0e81670de0b6b3a7640000612cfa565b600f5550565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190610aaf9082908690610c4d908790612d49565b611844565b5f610c5b61199b565b620186a0610c6860025490565b610c73906001612cfa565b610c7d9190612d11565b821015610cf75760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527f20302e3030312520746f74616c20737570706c792e000000000000000000000060648201526084015b60405180910390fd5b6064610d0260025490565b610d0d906004612cfa565b610d179190612d11565b821115610d8c5760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527f6e20342520746f74616c20737570706c792e00000000000000000000000000006064820152608401610cee565b50600b81905560015b919050565b610da261199b565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610de461199b565b610ded5f6122be565b565b610df761199b565b305f90815260208190526040812054610e0f90612346565b6009546040516001600160a01b039091169047905b5f6040518083038185875af1925050503d805f8114610e5e576040519150601f19603f3d011682016040523d82523d5f602084013e610e63565b606091505b50505050565b610e7161199b565b6001600160a01b03919091165f908152600d60205260409020805460ff1916911515919091179055565b610ea361199b565b6005546001600160a01b0390811690831603610f275760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610cee565b6001600160a01b0382165f908152601a60205260409020805460ff19168215151790555050565b33610f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161480610f9f57506009546001600160a01b031633145b6110115760405162461bcd60e51b815260206004820152602b60248201527f43616c6c6572206973206e6f7420746865206f776e6572206f72206d61726b6560448201527f74696e672077616c6c65740000000000000000000000000000000000000000006064820152608401610cee565b600954305f81815260208190526040902054610ded926001600160a01b0316906124c8565b61103e61199b565b60178190556016819055603c811115610b8f575f80fd5b60038054610a2390612c7c565b6009546040515f916001600160a01b0316904790610e24565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156111175760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610cee565b610baa8286868403611844565b5f33610aaf818585611ab8565b5f61113a61199b565b620186a061114760025490565b611152906001612cfa565b61115c9190612d11565b8210156111d15760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527f20302e3030312520746f74616c20737570706c792e00000000000000000000006064820152608401610cee565b60646111dc60025490565b6111e7906004612cfa565b6111f19190612d11565b8211156112665760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527f6e20342520746f74616c20737570706c792e00000000000000000000000000006064820152608401610cee565b50600a55600190565b61127761199b565b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6112a961199b565b60108054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f8115801561132a5750825b90505f8267ffffffffffffffff1660011480156113465750303b155b905081158015611354575080155b1561138b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156113ec5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6113f5886126b3565b4660010361144057600680547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d1790556114d5565b4662aa36a70361148d57600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673c532a74256d3db42d0bf7a0400fefdbad76940081790556114d5565b60405162461bcd60e51b815260206004820152601160248201527f556e737570706f7274656420636861696e0000000000000000000000000000006044820152606401610cee565b600880547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0389161790556103e86115168a6005612cfa565b6115209190612d11565b600a556103e86115318a6005612cfa565b61153b9190612d11565b600b55853560158190556020870135601781905560149190915560165561156860608701604088016129ba565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546115ca9116600161126f565b6115d530600161126f565b6115e261dead600161126f565b6010805460ff191690556064896115ff6080890160608a01612d5c565b60ff1661160c9190612cfa565b6116169190612d11565b600e5560648961162c60a0890160808a01612d5c565b60ff166116399190612cfa565b6116439190612d11565b600f5561168161167a7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001610e69565b61168c306001610e69565b61169961dead6001610e69565b6116d36116cd7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b8a6126c4565b83156117345784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b61174961199b565b60158190556014818155811115610b8f575f80fd5b61176661199b565b600c805460ff1916911515919091179055565b61178161199b565b670de0b6b3a76400006103e861179660025490565b6117a1906001612cfa565b6117ab9190612d11565b6117b59190612d11565b8110156117c0575f80fd5b6117d281670de0b6b3a7640000612cfa565b600e5550565b6117e061199b565b6001600160a01b038116611822576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610cee565b610b8f816122be565b5f61183461199b565b506010805460ff19169055600190565b6001600160a01b0383166118bf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b03821661193b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b336119cd7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610ded576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610cee565b6001600160a01b038381165f908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e635781811015611aab5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610cee565b610e638484848403611844565b6001600160a01b038316611b345760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b038216611bb05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b0383165f9081526013602052604090205460ff1615611c185760405162461bcd60e51b815260206004820152600b60248201527f426c61636b6c69737465640000000000000000000000000000000000000000006044820152606401610cee565b805f03611c2f57611c2a83835f6124c8565b505050565b60105460ff1615612028577f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03848116911614801590611ca457507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03838116911614155b8015611ccb575060075474010000000000000000000000000000000000000000900460ff16155b8015611cdf57506001600160a01b03821615155b8015611cf657506001600160a01b03821661dead14155b156120285760055474010000000000000000000000000000000000000000900460ff16611da6576001600160a01b0383165f9081526019602052604090205460ff1680611d5a57506001600160a01b0382165f9081526019602052604090205460ff165b611da65760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206973206e6f74206163746976652e000000000000000000006044820152606401610cee565b6001600160a01b0383165f908152601a602052604090205460ff168015611de557506001600160a01b0382165f908152600d602052604090205460ff16155b15611eda57600e54811115611e625760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d61785472616e73616374696f6e416d6f756e742e00000000000000000000006064820152608401610cee565b600f546001600160a01b0383165f90815260208190526040902054611e879083612d49565b1115611ed55760405162461bcd60e51b815260206004820152601360248201527f4d61782077616c6c6574206578636565646564000000000000000000000000006044820152606401610cee565b612028565b6001600160a01b0382165f908152601a602052604090205460ff168015611f1957506001600160a01b0383165f908152600d602052604090205460ff16155b15611f9657600e54811115611ed55760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d61785472616e73616374696f6e416d6f756e742e000000000000000000006064820152608401610cee565b6001600160a01b0382165f908152600d602052604090205460ff1661202857600f546001600160a01b0383165f90815260208190526040902054611fda9083612d49565b11156120285760405162461bcd60e51b815260206004820152601360248201527f4d61782077616c6c6574206578636565646564000000000000000000000000006044820152606401610cee565b305f90815260208190526040902054600b548110801590819061204d5750600c5460ff165b8015612074575060075474010000000000000000000000000000000000000000900460ff16155b801561209857506001600160a01b0385165f908152601a602052604090205460ff16155b80156120bc57506001600160a01b0385165f9081526019602052604090205460ff16155b80156120e057506001600160a01b0384165f9081526019602052604090205460ff16155b1561215557600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905561212c612781565b600780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690555b6007546001600160a01b0386165f9081526019602052604090205460ff740100000000000000000000000000000000000000009092048216159116806121b257506001600160a01b0385165f9081526019602052604090205460ff165b156121ba57505f5b5f81156122aa576001600160a01b0386165f908152601a602052604090205460ff1680156121e957505f601654115b1561222c5761220e60646122086016548861289290919063ffffffff16565b906128a4565b90508060185f8282546122219190612d49565b9091555061228c9050565b6001600160a01b0387165f908152601a602052604090205460ff16801561225457505f601454115b1561228c5761227360646122086014548861289290919063ffffffff16565b90508060185f8282546122869190612d49565b90915550505b801561229d5761229d8730836124c8565b6122a78186612d7c565b94505b6122b58787876124c8565b50505050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061237957612379612d8f565b6001600160a01b03928316602091820292909201810191909152600654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa1580156123e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061240d9190612dbc565b8160018151811061242057612420612d8f565b6001600160a01b0392831660209182029290920101526006546124469130911684611844565b6006546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906124979085905f90869030904290600401612dd7565b5f604051808303815f87803b1580156124ae575f80fd5b505af11580156124c0573d5f803e3d5ffd5b505050505050565b6001600160a01b0383166125445760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b0382166125c05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b0383165f908152602081905260409020548181101561264e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610cee565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e63565b6126bb6128af565b610b8f81612916565b6001600160a01b03821661271a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610cee565b8060025f82825461272b9190612d49565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b305f9081526020819052604081205460185490918281036127a157505050565b815f036127ad57600191505b600a54435f9081526011602052604081208054916127ca83612e47565b9091555050601054610100900460ff16156127fb57435f908152601160205260409020546002116127fb5750505050565b80841115612807578093505b834761281282612346565b5f61281d478361291e565b90508086156128425761283f876122086018548561289290919063ffffffff16565b90505b5f60188190556009546040516001600160a01b039091169147919081818185875af1925050503d805f8114611734576040519150601f19603f3d011682016040523d82523d5f602084013e611734565b5f61289d8284612cfa565b9392505050565b5f61289d8284612d11565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610ded576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117e06128af565b5f61289d8284612d7c565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b6001600160a01b0381168114610b8f575f80fd5b5f80604083850312156129a1575f80fd5b82356129ac8161297c565b946020939093013593505050565b5f602082840312156129ca575f80fd5b813561289d8161297c565b5f805f606084860312156129e7575f80fd5b83356129f28161297c565b92506020840135612a028161297c565b929592945050506040919091013590565b5f60208284031215612a23575f80fd5b5035919050565b80358015158114610d95575f80fd5b5f8060408385031215612a4a575f80fd5b8235612a558161297c565b9150612a6360208401612a2a565b90509250929050565b5f60208284031215612a7c575f80fd5b61289d82612a2a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112612ac1575f80fd5b813567ffffffffffffffff811115612adb57612adb612a85565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715612b4757612b47612a85565b604052818152838201602001851015612b5e575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f80868803610140811215612b91575f80fd5b873567ffffffffffffffff811115612ba7575f80fd5b612bb38a828b01612ab2565b975050602088013567ffffffffffffffff811115612bcf575f80fd5b612bdb8a828b01612ab2565b965050604088013594506060880135612bf38161297c565b93506080880135612c038161297c565b925060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6082011215612c34575f80fd5b5060a0870190509295509295509295565b5f8060408385031215612c56575f80fd5b8235612c618161297c565b91506020830135612c718161297c565b809150509250929050565b600181811c90821680612c9057607f821691505b602082108103612cc7577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082028115828204841417610ab557610ab5612ccd565b5f82612d44577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b80820180821115610ab557610ab5612ccd565b5f60208284031215612d6c575f80fd5b813560ff8116811461289d575f80fd5b81810381811115610ab557610ab5612ccd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215612dcc575f80fd5b815161289d8161297c565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015612e275783516001600160a01b0316835260209384019390920191600101612e00565b50506001600160a01b039590951660608401525050608001529392505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e7757612e77612ccd565b506001019056fea164736f6c634300081a000a