60e0604052620000126012600a6200056c565b620000259066017e9d8602b40062000583565b6080525f60a081905260c0523480156200003d575f80fd5b5060405180606001604052806032815260200162001a49603291396040805180820190915260048152634d454d4560e01b60208201523360a05160c051848462000087336200029d565b60046200009583826200063c565b506005620000a482826200063c565b5050604080516060810182526001600160a01b039590951680865261ffff9485166020870181905293909416940184905250600680546001600160b01b031916909217600160a01b9091021761ffff60b01b1916600160b01b909202919091179055506200011490505f620002ec565b335f8181526007602052604090209190915560805162000135919062000373565b600b6020527f72c6bfb7988af3a1efa6568f02a999bc52252641c659d85961ca3d372b57d5cf8054600160ff1991821681179092557febae6141bae5521e99e0a8d610356b0f501fea54980b59c84841db43ba7204f4805482168317905560385f527f63f8b8455c25dd574f6f70e6135fc3c46a28496b9350872b5ec064987ff1a931805490911690911790556040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26024820152735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9063c9c65396906044016020604051808303815f875af11580156200022b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000251919062000704565b600c80546001600160a01b0319166001600160a01b03929092169190911790556200027d6001620002ec565b600c546001600160a01b03165f9081526007602052604090205562000756565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f808260018111156200030357620003036200072c565b0362000338576040516115d360f21b60208201526022015b604051602081830303815290604052805190602001209050919050565b60018260018111156200034f576200034f6200072c565b036200036c576040516104c560f41b60208201526022016200031b565b505f919050565b6001600160a01b038216620003ce5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060035f828254620003e1919062000740565b90915550506001600160a01b0382165f90815260016020526040812080548392906200040f90849062000740565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620004b157815f19048211156200049557620004956200045d565b80851615620004a357918102915b93841c939080029062000476565b509250929050565b5f82620004c95750600162000566565b81620004d757505f62000566565b8160018114620004f05760028114620004fb576200051b565b600191505062000566565b60ff8411156200050f576200050f6200045d565b50506001821b62000566565b5060208310610133831016604e8410600b841016171562000540575081810a62000566565b6200054c838362000471565b805f19048211156200056257620005626200045d565b0290505b92915050565b5f6200057c60ff841683620004b9565b9392505050565b80820281158282048414176200056657620005666200045d565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005c657607f821691505b602082108103620005e557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000458575f81815260208120601f850160051c81016020861015620006135750805b601f850160051c820191505b8181101562000634578281556001016200061f565b505050505050565b81516001600160401b038111156200065857620006586200059d565b6200067081620006698454620005b1565b84620005eb565b602080601f831160018114620006a6575f84156200068e5750858301515b5f19600386901b1c1916600185901b17855562000634565b5f85815260208120601f198616915b82811015620006d657888601518255948401946001909101908401620006b5565b5085821015620006f457878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000715575f80fd5b81516001600160a01b03811681146200057c575f80fd5b634e487b7160e01b5f52602160045260245ffd5b808201808211156200056657620005666200045d565b60805160a05160c0516112c1620007885f395f6101cf01525f61022d01525f818161031301526108a001526112c15ff3fe608060405234801561000f575f80fd5b5060043610610148575f3560e01c80635f377bd6116100bf57806395d89b411161007957806395d89b41146102e0578063a457c2d7146102e8578063a9059cbb146102fb578063d5abeb011461030e578063dd62ed3e14610335578063f2fde38b1461036d575f80fd5b80635f377bd61461027a5780636338d1411461028d57806370a08231146102a0578063715018a6146102c85780638da5cb5b146102d057806392f6576e1461014c575f80fd5b80632b14ca56116101105780632b14ca56146101ca578063313ce567146101f1578063395093511461020057806343bf5dd614610213578063470624021461022857806349bd5a5e1461024f575f80fd5b80630474135d1461014c57806306fdde031461016d578063095ea7b31461018257806318160ddd146101a557806323b872dd146101b7575b5f80fd5b61015561271081565b60405161ffff90911681526020015b60405180910390f35b610175610380565b6040516101649190610e34565b610195610190366004610e95565b610410565b6040519015158152602001610164565b6003545b604051908152602001610164565b6101956101c5366004610ebd565b610426565b6101557f000000000000000000000000000000000000000000000000000000000000000081565b60405160128152602001610164565b61019561020e366004610e95565b6104d3565b610226610221366004610ef6565b61050e565b005b6101557f000000000000000000000000000000000000000000000000000000000000000081565b600c54610262906001600160a01b031681565b6040516001600160a01b039091168152602001610164565b610226610288366004610ef6565b610560565b61022661029b366004610fcc565b610593565b6101a96102ae36600461102c565b6001600160a01b03165f9081526001602052604090205490565b6102266105c6565b5f546001600160a01b0316610262565b6101756105fa565b6101956102f6366004610e95565b610609565b610195610309366004610e95565b6106a1565b6101a97f000000000000000000000000000000000000000000000000000000000000000081565b6101a961034336600461104c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b61022661037b36600461102c565b6106ad565b60606004805461038f9061107d565b80601f01602080910402602001604051908101604052809291908181526020018280546103bb9061107d565b80156104065780601f106103dd57610100808354040283529160200191610406565b820191905f5260205f20905b8154815290600101906020018083116103e957829003601f168201915b5050505050905090565b5f61041c338484610747565b5060015b92915050565b5f61043284848461086a565b6001600160a01b0384165f908152600260209081526040808320338452909152902054828110156104bb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104c88533858403610747565b506001949350505050565b335f8181526002602090815260408083206001600160a01b0387168452909152812054909161041c9185906105099086906110c9565b610747565b5f546001600160a01b031633146105375760405162461bcd60e51b81526004016104b2906110dc565b600c80546001600160a01b0319166001600160a01b03841617905561055c82826108d4565b5050565b5f546001600160a01b031633146105895760405162461bcd60e51b81526004016104b2906110dc565b61055c828261091e565b5f546001600160a01b031633146105bc5760405162461bcd60e51b81526004016104b2906110dc565b61055c8282610931565b5f546001600160a01b031633146105ef5760405162461bcd60e51b81526004016104b2906110dc565b6105f85f61094a565b565b60606005805461038f9061107d565b335f9081526002602090815260408083206001600160a01b03861684529091528120548281101561068a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104b2565b6106973385858403610747565b5060019392505050565b5f61041c33848461086a565b5f546001600160a01b031633146106d65760405162461bcd60e51b81526004016104b2906110dc565b6001600160a01b03811661073b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104b2565b6107448161094a565b50565b6001600160a01b0383166107a95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b2565b6001600160a01b03821661080a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b2565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b465f908152600b602052604090205460ff16151560010361089b57610896670de0b6b3a7640000600a55565b6108c4565b6108c47f0000000000000000000000000000000000000000000000000000000000000000600a55565b6108cf838383610999565b505050565b801515600103610904576108e86001610bc6565b6001600160a01b0383165f908152600760205260409020555050565b506001600160a01b03165f90815260076020526040812055565b801515600103610904576108e85f610bc6565b600461093d838261115e565b5060056108cf828261115e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383165f90815260076020526040812054906109bd908290610c49565b156109d3576109cd848484610c68565b50505050565b6001600160a01b0383165f90815260076020526040812054906109f7908290610c49565b15610a0e57610a07858585610c68565b5050505050565b604080516060810182526006546001600160a01b038116825261ffff600160a01b820481166020840152600160b01b90910416918101919091525f90610a55846001610c49565b15610ac657602081015161271090610a719061ffff168761121a565b610a7b9190611231565b6001600160a01b0387165f908152600860209081526040808320439081905583526009909152902054909250610ab29060016110c9565b435f90815260096020526040902055610b85565b610ad1836001610c49565b15610b8557604081015161271090610aed9061ffff168761121a565b610af79190611231565b6001600160a01b0388165f9081526008602052604090205490925043141580610b2e5750435f908152600960205260409020546001105b15610b8557600a54851115610b855760405162461bcd60e51b815260206004820152601b60248201527f436f6e74726163743a3a6d61782073656c6c207265717569726564000000000060448201526064016104b2565b81851015610b9557610b95611250565b8115610ba957610ba987825f015184610c68565b610bbd8787610bb88589611264565b610c68565b50505050505050565b5f80826001811115610bda57610bda611277565b03610c0e576040516115d360f21b60208201526022015b604051602081830303815290604052805190602001209050919050565b6001826001811115610c2257610c22611277565b03610c3d576040516104c560f41b6020820152602201610bf1565b505f919050565b919050565b5f610c5382610bc6565b8303610c6157506001610420565b505f610420565b6001600160a01b038316610ccc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b2565b6001600160a01b038216610d2e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b2565b6001600160a01b0383165f9081526001602052604090205481811015610da55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104b2565b6001600160a01b038085165f90815260016020526040808220858503905591851681529081208054849290610ddb9084906110c9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e2791815260200190565b60405180910390a36109cd565b5f6020808352835180828501525f5b81811015610e5f57858101830151858201604001528201610e43565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c44575f80fd5b5f8060408385031215610ea6575f80fd5b610eaf83610e7f565b946020939093013593505050565b5f805f60608486031215610ecf575f80fd5b610ed884610e7f565b9250610ee660208501610e7f565b9150604084013590509250925092565b5f8060408385031215610f07575f80fd5b610f1083610e7f565b915060208301358015158114610f24575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610f52575f80fd5b813567ffffffffffffffff80821115610f6d57610f6d610f2f565b604051601f8301601f19908116603f01168101908282118183101715610f9557610f95610f2f565b81604052838152866020858801011115610fad575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f8060408385031215610fdd575f80fd5b823567ffffffffffffffff80821115610ff4575f80fd5b61100086838701610f43565b93506020850135915080821115611015575f80fd5b5061102285828601610f43565b9150509250929050565b5f6020828403121561103c575f80fd5b61104582610e7f565b9392505050565b5f806040838503121561105d575f80fd5b61106683610e7f565b915061107460208401610e7f565b90509250929050565b600181811c9082168061109157607f821691505b6020821081036110af57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610420576104206110b5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f8211156108cf575f81815260208120601f850160051c810160208610156111375750805b601f850160051c820191505b8181101561115657828155600101611143565b505050505050565b815167ffffffffffffffff81111561117857611178610f2f565b61118c81611186845461107d565b84611111565b602080601f8311600181146111bf575f84156111a85750858301515b5f19600386901b1c1916600185901b178555611156565b5f85815260208120601f198616915b828110156111ed578886015182559484019460019091019084016111ce565b508582101561120a57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082028115828204841417610420576104206110b5565b5f8261124b57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52600160045260245ffd5b81810381811115610420576104206110b5565b634e487b7160e01b5f52602160045260245ffdfea2646970667358221220ec84ef8273744072de88bbafa1a5df30eb716ec5d0ed7d8d0b8fcdd154a9bcd664736f6c634300081500334261627950657065576f6a61784d696c616479536166657265756d5368696261446f676557616c6c5374726565744d656d65