608060405234801561000f575f80fd5b506040518060400160405280600a8152602001692aa9a221902a37b5b2b760b11b815250604051806040016040528060048152602001635553444360e01b815250816003908161005f9190610204565b50600461006c8282610204565b50505061009d336100816100a260201b60201c565b61008c90600a6103b7565b610098906127106103cc565b6100a7565b6103f6565b601290565b6001600160a01b0382166101015760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f82825461011291906103e3565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061019557607f821691505b6020821081036101b357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561016857805f5260205f20601f840160051c810160208510156101de5750805b601f840160051c820191505b818110156101fd575f81556001016101ea565b5050505050565b81516001600160401b0381111561021d5761021d61016d565b6102318161022b8454610181565b846101b9565b6020601f821160018114610263575f831561024c5750848201515b5f19600385901b1c1916600184901b1784556101fd565b5f84815260208120601f198516915b828110156102925787850151825560209485019460019092019101610272565b50848210156102af57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561030d578085048111156102f1576102f16102be565b60018416156102ff57908102905b60019390931c9280026102d6565b935093915050565b5f82610323575060016103b1565b8161032f57505f6103b1565b8160018114610345576002811461034f5761036b565b60019150506103b1565b60ff841115610360576103606102be565b50506001821b6103b1565b5060208310610133831016604e8410600b841016171561038e575081810a6103b1565b61039a5f1984846102d2565b805f19048211156103ad576103ad6102be565b0290505b92915050565b5f6103c560ff841683610315565b9392505050565b80820281158282048414176103b1576103b16102be565b808201808211156103b1576103b16102be565b610a2a806104035f395ff3fe608060405234801561000f575f80fd5b50600436106100b1575f3560e01c806340c10f191161006e57806340c10f191461013d57806370a082311461015257806395d89b411461017a578063a457c2d714610182578063a9059cbb14610195578063dd62ed3e146101a8575f80fd5b806306fdde03146100b5578063095ea7b3146100d357806318160ddd146100f657806323b872dd14610108578063313ce5671461011b578063395093511461012a575b5f80fd5b6100bd6101bb565b6040516100ca919061078a565b60405180910390f35b6100e66100e13660046107da565b61024b565b60405190151581526020016100ca565b6002545b6040519081526020016100ca565b6100e6610116366004610802565b610264565b604051601281526020016100ca565b6100e66101383660046107da565b610287565b61015061014b3660046107da565b6102a8565b005b6100fa61016036600461083c565b6001600160a01b03165f9081526020819052604090205490565b6100bd6102cb565b6100e66101903660046107da565b6102da565b6100e66101a33660046107da565b610359565b6100fa6101b636600461085c565b610366565b6060600380546101ca9061088d565b80601f01602080910402602001604051908101604052809291908181526020018280546101f69061088d565b80156102415780601f1061021857610100808354040283529160200191610241565b820191905f5260205f20905b81548152906001019060200180831161022457829003601f168201915b5050505050905090565b5f33610258818585610390565b60019150505b92915050565b5f336102718582856104b3565b61027c85858561052b565b506001949350505050565b5f336102588185856102998383610366565b6102a391906108d9565b610390565b6102c7826102b86012600a6109cf565b6102c290846109dd565b6106cd565b5050565b6060600480546101ca9061088d565b5f33816102e78286610366565b90508381101561034c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61027c8286868403610390565b5f3361025881858561052b565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103f25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610343565b6001600160a01b0382166104535760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610343565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6104be8484610366565b90505f19811461052557818110156105185760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610343565b6105258484848403610390565b50505050565b6001600160a01b03831661058f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610343565b6001600160a01b0382166105f15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610343565b6001600160a01b0383165f90815260208190526040902054818110156106685760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610343565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610525565b6001600160a01b0382166107235760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610343565b8060025f82825461073491906108d9565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146107d5575f80fd5b919050565b5f80604083850312156107eb575f80fd5b6107f4836107bf565b946020939093013593505050565b5f805f60608486031215610814575f80fd5b61081d846107bf565b925061082b602085016107bf565b929592945050506040919091013590565b5f6020828403121561084c575f80fd5b610855826107bf565b9392505050565b5f806040838503121561086d575f80fd5b610876836107bf565b9150610884602084016107bf565b90509250929050565b600181811c908216806108a157607f821691505b6020821081036108bf57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561025e5761025e6108c5565b6001815b60018411156109275780850481111561090b5761090b6108c5565b600184161561091957908102905b60019390931c9280026108f0565b935093915050565b5f8261093d5750600161025e565b8161094957505f61025e565b816001811461095f576002811461096957610985565b600191505061025e565b60ff84111561097a5761097a6108c5565b50506001821b61025e565b5060208310610133831016604e8410600b84101617156109a8575081810a61025e565b6109b45f1984846108ec565b805f19048211156109c7576109c76108c5565b029392505050565b5f61085560ff84168361092f565b808202811582820484141761025e5761025e6108c556fea26469706673582212208ccb127120d6803747001640aae1a3d604de3a9b6073d4bfae9c3e58d7f635e264736f6c634300081a0033