60806040523480156200001157600080fd5b506040516200136338038062001363833981016040819052620000349162000254565b6040518060400160405280601781526020017f4c6f72656e7a6f205772617070656420426974636f696e00000000000000000081525060405180604001604052806007815260200166656e7a6f42544360c81b815250838383838160039080519060200190620000a692919062000191565b508051620000bc90600490602084019062000191565b505050620000d9620000d36200010b60201b60201c565b6200010f565b603a80546001600160a01b0319166001600160a01b038416179055620000ff8162000161565b505050505050620002c9565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6007546001600160a01b03166200018e57600780546001600160a01b0319166001600160a01b0383161790555b50565b8280546200019f906200028c565b90600052602060002090601f016020900481019282620001c357600085556200020e565b82601f10620001de57805160ff19168380011785556200020e565b828001600101855582156200020e579182015b828111156200020e578251825591602001919060010190620001f1565b506200021c92915062000220565b5090565b5b808211156200021c576000815560010162000221565b80516001600160a01b03811681146200024f57600080fd5b919050565b600080604083850312156200026857600080fd5b620002738362000237565b9150620002836020840162000237565b90509250929050565b600181811c90821680620002a157607f821691505b60208210811415620002c357634e487b7160e01b600052602260045260246000fd5b50919050565b61108a80620002d96000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638da5cb5b116100c3578063d1829c621161007c578063d1829c62146102bf578063d53229eb146102d2578063dd62ed3e146102e5578063e47d6060146102f8578063e4997dc51461031b578063f2fde38b1461032e57600080fd5b80638da5cb5b146102465780638e433bc71461026b57806395d89b411461027e578063a457c2d714610286578063a9059cbb14610299578063b7e1917c146102ac57600080fd5b8063313ce56711610115578063313ce567146101cd57806339509351146101dc5780636455feac146101ef57806370a0823114610202578063715018a61461022b57806378bbc7c41461023357600080fd5b806306fdde0314610152578063095ea7b3146101705780630ecb93c01461019357806318160ddd146101a857806323b872dd146101ba575b600080fd5b61015a610341565b6040516101679190610ea4565b60405180910390f35b61018361017e366004610f15565b6103d3565b6040519015158152602001610167565b6101a66101a1366004610f3f565b6103eb565b005b6002545b604051908152602001610167565b6101836101c8366004610f61565b610471565b60405160088152602001610167565b6101836101ea366004610f15565b610495565b6101a66101fd366004610f9d565b6104b7565b6101ac610210366004610f3f565b6001600160a01b031660009081526020819052604090205490565b6101a6610517565b6101a6610241366004610f3f565b61052b565b6005546001600160a01b03165b6040516001600160a01b039091168152602001610167565b6101a6610279366004610f9d565b61053f565b61015a61059b565b610183610294366004610f15565b6105aa565b6101836102a7366004610f15565b61062a565b603a54610253906001600160a01b031681565b600754610253906001600160a01b031681565b6101a66102e0366004610f3f565b610638565b6101ac6102f3366004610fc9565b6106a9565b610183610306366004610f3f565b60066020526000908152604090205460ff1681565b6101a6610329366004610f3f565b6106d4565b6101a661033c366004610f3f565b610750565b60606003805461035090610ff3565b80601f016020809104026020016040519081016040528092919081815260200182805461037c90610ff3565b80156103c95780601f1061039e576101008083540402835291602001916103c9565b820191906000526020600020905b8154815290600101906020018083116103ac57829003601f168201915b5050505050905090565b6000336103e18185856107c6565b5060019392505050565b6007546001600160a01b0316331461041657604051630782484160e21b815260040160405180910390fd5b6001600160a01b038116600081815260066020908152604091829020805460ff1916600117905590519182527f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc91015b60405180910390a150565b60003361047f8582856108eb565b61048a858585610965565b506001949350505050565b6000336103e18185856104a883836106a9565b6104b2919061102e565b6107c6565b603a546001600160a01b031633146104e257604051630782484160e21b815260040160405180910390fd5b6001600160a01b0381166105095760405163e481c26960e01b815260040160405180910390fd5b6105138183610b14565b5050565b61051f610bdf565b6105296000610c39565b565b610533610bdf565b61053c81610c8b565b50565b603a546001600160a01b0316331461056a57604051630782484160e21b815260040160405180910390fd5b6001600160a01b0381166105915760405163e481c26960e01b815260040160405180910390fd5b6105138183610cf4565b60606004805461035090610ff3565b600033816105b882866106a9565b90508381101561061d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61048a82868684036107c6565b6000336103e1818585610965565b610640610bdf565b603a54604080516001600160a01b03928316815291831660208301527fdff85730d97165eed06f82497223e1e2ef37e17f22bbb4d3177ac0c80a873f83910160405180910390a1603a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6007546001600160a01b031633146106ff57604051630782484160e21b815260040160405180910390fd5b6001600160a01b038116600081815260066020908152604091829020805460ff1916905590519182527fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c9101610466565b610758610bdf565b6001600160a01b0381166107bd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610614565b61053c81610c39565b6001600160a01b0383166108285760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610614565b6001600160a01b0382166108895760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610614565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006108f784846106a9565b9050600019811461095f57818110156109525760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610614565b61095f84848484036107c6565b50505050565b6001600160a01b0383166109c95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610614565b6001600160a01b038216610a2b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610614565b610a36838383610e2f565b6001600160a01b03831660009081526020819052604090205481811015610aae5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610614565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361095f565b6001600160a01b038216610b6a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610614565b610b7660008383610e2f565b8060026000828254610b88919061102e565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b031633146105295760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610614565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754604080516001600160a01b03928316815291831660208301527f495fcd239ff1c5629c93d3cf8c56e64bb4cb6815e022c1f45ed5263e77ac2f7b910160405180910390a1600780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216610d545760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610614565b610d6082600083610e2f565b6001600160a01b03821660009081526020819052604090205481811015610dd45760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610614565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016108de565b505050565b603a546001600160a01b0316331415610e4757505050565b6001600160a01b03831660009081526006602052604090205460ff1680610e8657506001600160a01b03821660009081526006602052604090205460ff165b15610e2a57604051630fc2efc960e01b815260040160405180910390fd5b600060208083528351808285015260005b81811015610ed157858101830151858201604001528201610eb5565b81811115610ee3576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610f1057600080fd5b919050565b60008060408385031215610f2857600080fd5b610f3183610ef9565b946020939093013593505050565b600060208284031215610f5157600080fd5b610f5a82610ef9565b9392505050565b600080600060608486031215610f7657600080fd5b610f7f84610ef9565b9250610f8d60208501610ef9565b9150604084013590509250925092565b60008060408385031215610fb057600080fd5b82359150610fc060208401610ef9565b90509250929050565b60008060408385031215610fdc57600080fd5b610fe583610ef9565b9150610fc060208401610ef9565b600181811c9082168061100757607f821691505b6020821081141561102857634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561104f57634e487b7160e01b600052601160045260246000fd5b50019056fea26469706673582212205fa9a6984a34019146356ce9454434f295a04e73d697b3c76e6c43af6f47f58064736f6c634300080c00330000000000000000000000000e61800a41ffbc72da7408aa62d39664c22a8002000000000000000000000000f5ade6b61ba60b8b82566af0dfca982169a470dc