0x608060405234801561000f575f80fd5b50600436106101a1575f3560e01c8063624601b6116100f357806395d89b4111610093578063ca3c782c1161006e578063ca3c782c14610458578063dd62ed3e1461046b578063f2fde38b146104a3578063fb7265ff146104b6575f80fd5b806395d89b411461042a578063a9059cbb14610432578063bce1b52014610445575f80fd5b806372706a8c116100ce57806372706a8c146103bb5780637b0472f0146103e657806385209ee0146103f95780638da5cb5b1461041a575f80fd5b8063624601b61461036c57806370a082311461038b578063715018a6146103b3575f80fd5b8063313ce5671161015e578063522f681511610139578063522f6815146102685780635733c7861461027b578063584b62a11461028e5780635aad6cf0146102e7575f80fd5b8063313ce567146102335780633ccdbb28146102425780634268121e14610255575f80fd5b806306fdde03146101a5578063095ea7b3146101c357806318160ddd146101e65780631852e8d9146101f857806323b872dd1461020b5780632e17de781461021e575b5f80fd5b6101ad6104c9565b6040516101ba9190611a66565b60405180910390f35b6101d66101d1366004611acc565b610559565b60405190151581526020016101ba565b6003545b6040519081526020016101ba565b6101ea610206366004611acc565b610572565b6101d6610219366004611af4565b610611565b61023161022c366004611b2d565b610634565b005b604051601281526020016101ba565b610231610250366004611b44565b61086b565b610231610263366004611acc565b6109fe565b610231610276366004611acc565b610bbe565b610231610289366004611b7d565b610cf2565b6102ca61029c366004611acc565b600760209081525f928352604080842090915290825290208054600182015460029092015490919060ff1683565b6040805193845260208401929092521515908201526060016101ba565b6103356102f5366004611b2d565b600660208190525f918252604090912080546001820154600283015460038401546004850154600586015495909601549395929491939092919060ff1687565b604080519788526020880196909652948601939093526060850191909152608084015260a0830152151560c082015260e0016101ba565b6101ea61037a366004611b7d565b60086020525f908152604090205481565b6101ea610399366004611b7d565b6001600160a01b03165f9081526001602052604090205490565b610231610d1c565b6009546103ce906001600160a01b031681565b6040516001600160a01b0390911681526020016101ba565b6102316103f4366004611b9d565b610d2f565b60095461040d90600160a01b900460ff1681565b6040516101ba9190611bd1565b5f546001600160a01b03166103ce565b6101ad611087565b6101d6610440366004611acc565b611096565b610231610453366004611b2d565b6110a3565b610231610466366004611c04565b611320565b6101ea610479366004611c55565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6102316104b1366004611b7d565b611577565b6102316104c4366004611b2d565b6115f0565b6060600480546104d890611c86565b80601f016020809104026020016040519081016040528092919081815260200182805461050490611c86565b801561054f5780601f106105265761010080835404028352916020019161054f565b820191905f5260205f20905b81548152906001019060200180831161053257829003601f168201915b5050505050905090565b5f33610566818585611675565b60019150505b92915050565b6001600160a01b0382165f90815260076020908152604080832084845290915281206001015481906105a49042611cd2565b5f848152600660209081526040808320546001600160a01b038916845260078352818420888552909252909120549192506301e13380918391612710916105eb9190611ce5565b6105f59190611cfc565b6105ff9190611ce5565b6106099190611cfc565b949350505050565b5f3361061e858285611682565b6106298585856116fd565b506001949350505050565b600180600954600160a01b900460ff16600181111561065557610655611bbd565b1461067b5760405162461bcd60e51b815260040161067290611d1b565b60405180910390fd5b335f9081526007602090815260408083208584529091529020600281015460ff166106b85760405162461bcd60e51b815260040161067290611d60565b5f8381526006602052604090206106d28462015180611ce5565b82600101546106e19190611d8f565b4210156107305760405162461bcd60e51b815260206004820152601a60248201527f4c6f636b20706572696f6420686173206e6f74207061737365640000000000006044820152606401610672565b81545f61073d3387610572565b335f90815260086020526040812080549293508392909190610760908490611d8f565b909155505060095460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af11580156107b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d79190611da2565b5060028401805460ff191690556004830180548391905f906107fa908490611cd2565b925050819055506001836005015f8282546108159190611cd2565b909155506108259050338361175a565b6040805183815260208101839052879133917f204fccf0d92ed8d48f204adb39b2e81e92bad0dedb93f5716ca9478cfb57de0091015b60405180910390a3505050505050565b610873611792565b6001600160a01b0383166108bc5760405162461bcd60e51b815260206004820152601060248201526f496e76616c696420416464726573732160801b6044820152606401610672565b5f82116108fd5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420416d6f756e742160881b6044820152606401610672565b6001600160a01b0381166109445760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420546f6b656e2160901b6044820152606401610672565b60405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905282169063a9059cbb906044016020604051808303815f875af1158015610990573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b49190611da2565b6109f95760405162461bcd60e51b8152602060048201526016602482015275556e7375636365737366756c205472616e736665722160501b6044820152606401610672565b505050565b610a06611792565b6001600160a01b0382165f9081526007602090815260408083208484529091529020600281015460ff16610a4c5760405162461bcd60e51b815260040161067290611d60565b5f82815260066020526040812082549091610a6a8562015180611ce5565b8460010154610a799190611d8f565b4210610abb57610a893386610572565b6001600160a01b0387165f90815260086020526040812080549293508392909190610ab5908490611d8f565b90915550505b60095460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610b09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2d9190611da2565b5060028401805460ff191690556004830180548391905f90610b50908490611cd2565b925050819055506001836005015f828254610b6b9190611cd2565b90915550610b7b9050868361175a565b604080518381526020810183905286916001600160a01b038916917f204fccf0d92ed8d48f204adb39b2e81e92bad0dedb93f5716ca9478cfb57de00910161085b565b610bc6611792565b6001600160a01b038216610c0f5760405162461bcd60e51b815260206004820152601060248201526f496e76616c696420416464726573732160801b6044820152606401610672565b5f81118015610c1e5750804710155b610c5c5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420416d6f756e742160881b6044820152606401610672565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610ca5576040519150601f19603f3d011682016040523d82523d5f602084013e610caa565b606091505b50509050806109f95760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b6044820152606401610672565b610cfa611792565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b610d24611792565b610d2d5f6117eb565b565b600180600954600160a01b900460ff166001811115610d5057610d50611bbd565b14610d6d5760405162461bcd60e51b815260040161067290611d1b565b5f838152600660208181526040808420338552600783528185208886529092529092209082015460ff16610de35760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e6720706f6f6c206973206e6f74206163746976650000000000006044820152606401610672565b6001820154335f908152600760209081526040808320898452909152902054610e0c9086611d8f565b1015610e645760405162461bcd60e51b815260206004820152602160248201527f416d6f756e74206973206c657373207468616e206d696e696d756d207374616b6044820152606560f81b6064820152608401610672565b6002820154335f908152600760209081526040808320898452909152902054610e8d9086611d8f565b1115610edb5760405162461bcd60e51b815260206004820152601c60248201527f416d6f756e742065786365656473206d6178696d756d207374616b65000000006044820152606401610672565b8160030154848360040154610ef09190611d8f565b1115610f0e5760405162461bcd60e51b815260040161067290611dbd565b600281015460ff1615610f795760405162461bcd60e51b815260206004820152602d60248201527f5573657220616c72656164792068617320616e20616374697665207374616b6560448201526c081a5b881d1a1a5cc81c1bdbdb609a1b6064820152608401610672565b6009546040516323b872dd60e01b8152336004820152306024820152604481018690526001600160a01b03909116906323b872dd906064016020604051808303815f875af1158015610fcd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff19190611da2565b508381554260018083019190915560028201805460ff191690911790556004820180548591905f90611024908490611d8f565b9091555050600582018054905f61103a83611dff565b9190505550611049338561183a565b604051848152859033907f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee909060200160405180910390a35050505050565b6060600580546104d890611c86565b5f336105668185856116fd565b600180600954600160a01b900460ff1660018111156110c4576110c4611bbd565b146110e15760405162461bcd60e51b815260040161067290611d1b565b335f9081526007602090815260408083208584529091529020600281015460ff1661111e5760405162461bcd60e51b815260040161067290611d60565b5f8381526006602052604090206111388462015180611ce5565b82600101546111479190611d8f565b4210156111965760405162461bcd60e51b815260206004820152601a60248201527f4c6f636b20706572696f6420686173206e6f74207061737365640000000000006044820152606401610672565b81545f6111a33387610572565b90505f6111b08284611d8f565b905083600101548110156112185760405162461bcd60e51b815260206004820152602960248201527f52657374616b6520616d6f756e74206973206c657373207468616e206d696e696044820152686d756d207374616b6560b81b6064820152608401610672565b83600201548111156112785760405162461bcd60e51b8152602060048201526024808201527f52657374616b6520616d6f756e742065786365656473206d6178696d756d207360448201526374616b6560e01b6064820152608401610672565b836003015482856004015461128d9190611d8f565b11156112ab5760405162461bcd60e51b815260040161067290611dbd565b8085554260018601556004840180548391905f906112ca908490611d8f565b909155506112da9050338361183a565b6040805184815260208101849052889133917f63acdca311ce77b458c1dde8cdea3e282508af05da37a4f52a915b7784c37c48910160405180910390a350505050505050565b611328611792565b5f8511801561133957506127108511155b6113855760405162461bcd60e51b815260206004820152601d60248201527f415052206d757374206265206265747765656e203120616e64203130300000006044820152606401610672565b5f84116113e05760405162461bcd60e51b8152602060048201526024808201527f4d696e696d756d207374616b65206d75737420626520677265617465722074686044820152630616e20360e41b6064820152608401610672565b838310156114565760405162461bcd60e51b815260206004820152603c60248201527f4d6178696d756d207374616b65206d757374206265206772656174657220746860448201527f616e206f7220657175616c20746f206d696e696d756d207374616b65000000006064820152608401610672565b828210156114de5760405162461bcd60e51b815260206004820152604960248201527f546f74616c206d6178696d756d207374616b6520616d6f756e74206d7573742060448201527f62652067726561746572207468616e206f7220657175616c20746f206d6178696064820152686d756d207374616b6560b81b608482015260a401610672565b5f86815260066020818152604092839020888155600181018890556002810187905560038101869055918201805460ff191685151590811790915583518a8152918201899052928101879052606081018690526080810185905260a0810192909252907f497768b3d65a26bbe0117804b6c1f7dbfd9bfd4e4a4d9af2aec5f9f64b2681019060c00160405180910390a150505050505050565b61157f611792565b6001600160a01b0381166115e45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610672565b6115ed816117eb565b50565b6115f8611792565b600281106116395760405162461bcd60e51b815260206004820152600e60248201526d496e76616c69642053746174652160901b6044820152606401610672565b80600181111561164b5761164b611bbd565b6009805460ff60a01b1916600160a01b83600181111561166d5761166d611bbd565b021790555050565b6109f9838383600161186e565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f1981146116f757818110156116e957604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610672565b6116f784848484035f61186e565b50505050565b6001600160a01b03831661172657604051634b637e8f60e11b81525f6004820152602401610672565b6001600160a01b03821661174f5760405163ec442f0560e01b81525f6004820152602401610672565b6109f9838383611940565b6001600160a01b03821661178357604051634b637e8f60e11b81525f6004820152602401610672565b61178e825f83611940565b5050565b5f546001600160a01b03163314610d2d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610672565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166118635760405163ec442f0560e01b81525f6004820152602401610672565b61178e5f8383611940565b6001600160a01b0384166118975760405163e602df0560e01b81525f6004820152602401610672565b6001600160a01b0383166118c057604051634a1406b160e11b81525f6004820152602401610672565b6001600160a01b038085165f90815260026020908152604080832093871683529290522082905580156116f757826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161193291815260200190565b60405180910390a350505050565b6001600160a01b03831661196a578060035f82825461195f9190611d8f565b909155506119da9050565b6001600160a01b0383165f90815260016020526040902054818110156119bc5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610672565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b0382166119f657600380548290039055611a14565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a5991815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b81811015611a9157858101830151858201604001528201611a75565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611ac7575f80fd5b919050565b5f8060408385031215611add575f80fd5b611ae683611ab1565b946020939093013593505050565b5f805f60608486031215611b06575f80fd5b611b0f84611ab1565b9250611b1d60208501611ab1565b9150604084013590509250925092565b5f60208284031215611b3d575f80fd5b5035919050565b5f805f60608486031215611b56575f80fd5b611b5f84611ab1565b925060208401359150611b7460408501611ab1565b90509250925092565b5f60208284031215611b8d575f80fd5b611b9682611ab1565b9392505050565b5f8060408385031215611bae575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52602160045260245ffd5b6020810160028310611bf157634e487b7160e01b5f52602160045260245ffd5b91905290565b80151581146115ed575f80fd5b5f805f805f8060c08789031215611c19575f80fd5b863595506020870135945060408701359350606087013592506080870135915060a0870135611c4781611bf7565b809150509295509295509295565b5f8060408385031215611c66575f80fd5b611c6f83611ab1565b9150611c7d60208401611ab1565b90509250929050565b600181811c90821680611c9a57607f821691505b602082108103611cb857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561056c5761056c611cbe565b808202811582820484141761056c5761056c611cbe565b5f82611d1657634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f436f6e7472616374206973206e6f7420696e2074686520726571756972656420604082015264737461746560d81b606082015260800190565b602080825260159082015274139bc81858dd1a5d99481cdd185ad948199bdd5b99605a1b604082015260600190565b8082018082111561056c5761056c611cbe565b5f60208284031215611db2575f80fd5b8151611b9681611bf7565b60208082526022908201527f4578636565647320746f74616c206d6178696d756d207374616b6520616d6f756040820152611b9d60f21b606082015260800190565b5f60018201611e1057611e10611cbe565b506001019056fea2646970667358221220cbf9715f334991d3b8316512d9b2bdb409ab5f70d96d682737399fc6ee0e7a2764736f6c63430008140033
0x60806040526009805460ff60a01b1916600160a01b17905534801562000023575f80fd5b50604051806040016040528060068152602001651e115354931160d21b815250604051806040016040528060068152602001651e115354931160d21b8152506200007c62000076620000c860201b60201c565b620000cc565b60046200008a8382620001bb565b506005620000998282620001bb565b5050600980546001600160a01b03191673ebb1afb0a4ddc9b1f84d9aa72ff956cd1c1eb4be1790555062000283565b3390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200014457607f821691505b6020821081036200016357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620001b6575f81815260208120601f850160051c81016020861015620001915750805b601f850160051c820191505b81811015620001b2578281556001016200019d565b5050505b505050565b81516001600160401b03811115620001d757620001d76200011b565b620001ef81620001e884546200012f565b8462000169565b602080601f83116001811462000225575f84156200020d5750858301515b5f19600386901b1c1916600185901b178555620001b2565b5f85815260208120601f198616915b82811015620002555788860151825594840194600190910190840162000234565b50858210156200027357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b611e4d80620002915f395ff3fe608060405234801561000f575f80fd5b50600436106101a1575f3560e01c8063624601b6116100f357806395d89b4111610093578063ca3c782c1161006e578063ca3c782c14610458578063dd62ed3e1461046b578063f2fde38b146104a3578063fb7265ff146104b6575f80fd5b806395d89b411461042a578063a9059cbb14610432578063bce1b52014610445575f80fd5b806372706a8c116100ce57806372706a8c146103bb5780637b0472f0146103e657806385209ee0146103f95780638da5cb5b1461041a575f80fd5b8063624601b61461036c57806370a082311461038b578063715018a6146103b3575f80fd5b8063313ce5671161015e578063522f681511610139578063522f6815146102685780635733c7861461027b578063584b62a11461028e5780635aad6cf0146102e7575f80fd5b8063313ce567146102335780633ccdbb28146102425780634268121e14610255575f80fd5b806306fdde03146101a5578063095ea7b3146101c357806318160ddd146101e65780631852e8d9146101f857806323b872dd1461020b5780632e17de781461021e575b5f80fd5b6101ad6104c9565b6040516101ba9190611a66565b60405180910390f35b6101d66101d1366004611acc565b610559565b60405190151581526020016101ba565b6003545b6040519081526020016101ba565b6101ea610206366004611acc565b610572565b6101d6610219366004611af4565b610611565b61023161022c366004611b2d565b610634565b005b604051601281526020016101ba565b610231610250366004611b44565b61086b565b610231610263366004611acc565b6109fe565b610231610276366004611acc565b610bbe565b610231610289366004611b7d565b610cf2565b6102ca61029c366004611acc565b600760209081525f928352604080842090915290825290208054600182015460029092015490919060ff1683565b6040805193845260208401929092521515908201526060016101ba565b6103356102f5366004611b2d565b600660208190525f918252604090912080546001820154600283015460038401546004850154600586015495909601549395929491939092919060ff1687565b604080519788526020880196909652948601939093526060850191909152608084015260a0830152151560c082015260e0016101ba565b6101ea61037a366004611b7d565b60086020525f908152604090205481565b6101ea610399366004611b7d565b6001600160a01b03165f9081526001602052604090205490565b610231610d1c565b6009546103ce906001600160a01b031681565b6040516001600160a01b0390911681526020016101ba565b6102316103f4366004611b9d565b610d2f565b60095461040d90600160a01b900460ff1681565b6040516101ba9190611bd1565b5f546001600160a01b03166103ce565b6101ad611087565b6101d6610440366004611acc565b611096565b610231610453366004611b2d565b6110a3565b610231610466366004611c04565b611320565b6101ea610479366004611c55565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6102316104b1366004611b7d565b611577565b6102316104c4366004611b2d565b6115f0565b6060600480546104d890611c86565b80601f016020809104026020016040519081016040528092919081815260200182805461050490611c86565b801561054f5780601f106105265761010080835404028352916020019161054f565b820191905f5260205f20905b81548152906001019060200180831161053257829003601f168201915b5050505050905090565b5f33610566818585611675565b60019150505b92915050565b6001600160a01b0382165f90815260076020908152604080832084845290915281206001015481906105a49042611cd2565b5f848152600660209081526040808320546001600160a01b038916845260078352818420888552909252909120549192506301e13380918391612710916105eb9190611ce5565b6105f59190611cfc565b6105ff9190611ce5565b6106099190611cfc565b949350505050565b5f3361061e858285611682565b6106298585856116fd565b506001949350505050565b600180600954600160a01b900460ff16600181111561065557610655611bbd565b1461067b5760405162461bcd60e51b815260040161067290611d1b565b60405180910390fd5b335f9081526007602090815260408083208584529091529020600281015460ff166106b85760405162461bcd60e51b815260040161067290611d60565b5f8381526006602052604090206106d28462015180611ce5565b82600101546106e19190611d8f565b4210156107305760405162461bcd60e51b815260206004820152601a60248201527f4c6f636b20706572696f6420686173206e6f74207061737365640000000000006044820152606401610672565b81545f61073d3387610572565b335f90815260086020526040812080549293508392909190610760908490611d8f565b909155505060095460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af11580156107b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d79190611da2565b5060028401805460ff191690556004830180548391905f906107fa908490611cd2565b925050819055506001836005015f8282546108159190611cd2565b909155506108259050338361175a565b6040805183815260208101839052879133917f204fccf0d92ed8d48f204adb39b2e81e92bad0dedb93f5716ca9478cfb57de0091015b60405180910390a3505050505050565b610873611792565b6001600160a01b0383166108bc5760405162461bcd60e51b815260206004820152601060248201526f496e76616c696420416464726573732160801b6044820152606401610672565b5f82116108fd5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420416d6f756e742160881b6044820152606401610672565b6001600160a01b0381166109445760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420546f6b656e2160901b6044820152606401610672565b60405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905282169063a9059cbb906044016020604051808303815f875af1158015610990573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b49190611da2565b6109f95760405162461bcd60e51b8152602060048201526016602482015275556e7375636365737366756c205472616e736665722160501b6044820152606401610672565b505050565b610a06611792565b6001600160a01b0382165f9081526007602090815260408083208484529091529020600281015460ff16610a4c5760405162461bcd60e51b815260040161067290611d60565b5f82815260066020526040812082549091610a6a8562015180611ce5565b8460010154610a799190611d8f565b4210610abb57610a893386610572565b6001600160a01b0387165f90815260086020526040812080549293508392909190610ab5908490611d8f565b90915550505b60095460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610b09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2d9190611da2565b5060028401805460ff191690556004830180548391905f90610b50908490611cd2565b925050819055506001836005015f828254610b6b9190611cd2565b90915550610b7b9050868361175a565b604080518381526020810183905286916001600160a01b038916917f204fccf0d92ed8d48f204adb39b2e81e92bad0dedb93f5716ca9478cfb57de00910161085b565b610bc6611792565b6001600160a01b038216610c0f5760405162461bcd60e51b815260206004820152601060248201526f496e76616c696420416464726573732160801b6044820152606401610672565b5f81118015610c1e5750804710155b610c5c5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420416d6f756e742160881b6044820152606401610672565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610ca5576040519150601f19603f3d011682016040523d82523d5f602084013e610caa565b606091505b50509050806109f95760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b6044820152606401610672565b610cfa611792565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b610d24611792565b610d2d5f6117eb565b565b600180600954600160a01b900460ff166001811115610d5057610d50611bbd565b14610d6d5760405162461bcd60e51b815260040161067290611d1b565b5f838152600660208181526040808420338552600783528185208886529092529092209082015460ff16610de35760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e6720706f6f6c206973206e6f74206163746976650000000000006044820152606401610672565b6001820154335f908152600760209081526040808320898452909152902054610e0c9086611d8f565b1015610e645760405162461bcd60e51b815260206004820152602160248201527f416d6f756e74206973206c657373207468616e206d696e696d756d207374616b6044820152606560f81b6064820152608401610672565b6002820154335f908152600760209081526040808320898452909152902054610e8d9086611d8f565b1115610edb5760405162461bcd60e51b815260206004820152601c60248201527f416d6f756e742065786365656473206d6178696d756d207374616b65000000006044820152606401610672565b8160030154848360040154610ef09190611d8f565b1115610f0e5760405162461bcd60e51b815260040161067290611dbd565b600281015460ff1615610f795760405162461bcd60e51b815260206004820152602d60248201527f5573657220616c72656164792068617320616e20616374697665207374616b6560448201526c081a5b881d1a1a5cc81c1bdbdb609a1b6064820152608401610672565b6009546040516323b872dd60e01b8152336004820152306024820152604481018690526001600160a01b03909116906323b872dd906064016020604051808303815f875af1158015610fcd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff19190611da2565b508381554260018083019190915560028201805460ff191690911790556004820180548591905f90611024908490611d8f565b9091555050600582018054905f61103a83611dff565b9190505550611049338561183a565b604051848152859033907f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee909060200160405180910390a35050505050565b6060600580546104d890611c86565b5f336105668185856116fd565b600180600954600160a01b900460ff1660018111156110c4576110c4611bbd565b146110e15760405162461bcd60e51b815260040161067290611d1b565b335f9081526007602090815260408083208584529091529020600281015460ff1661111e5760405162461bcd60e51b815260040161067290611d60565b5f8381526006602052604090206111388462015180611ce5565b82600101546111479190611d8f565b4210156111965760405162461bcd60e51b815260206004820152601a60248201527f4c6f636b20706572696f6420686173206e6f74207061737365640000000000006044820152606401610672565b81545f6111a33387610572565b90505f6111b08284611d8f565b905083600101548110156112185760405162461bcd60e51b815260206004820152602960248201527f52657374616b6520616d6f756e74206973206c657373207468616e206d696e696044820152686d756d207374616b6560b81b6064820152608401610672565b83600201548111156112785760405162461bcd60e51b8152602060048201526024808201527f52657374616b6520616d6f756e742065786365656473206d6178696d756d207360448201526374616b6560e01b6064820152608401610672565b836003015482856004015461128d9190611d8f565b11156112ab5760405162461bcd60e51b815260040161067290611dbd565b8085554260018601556004840180548391905f906112ca908490611d8f565b909155506112da9050338361183a565b6040805184815260208101849052889133917f63acdca311ce77b458c1dde8cdea3e282508af05da37a4f52a915b7784c37c48910160405180910390a350505050505050565b611328611792565b5f8511801561133957506127108511155b6113855760405162461bcd60e51b815260206004820152601d60248201527f415052206d757374206265206265747765656e203120616e64203130300000006044820152606401610672565b5f84116113e05760405162461bcd60e51b8152602060048201526024808201527f4d696e696d756d207374616b65206d75737420626520677265617465722074686044820152630616e20360e41b6064820152608401610672565b838310156114565760405162461bcd60e51b815260206004820152603c60248201527f4d6178696d756d207374616b65206d757374206265206772656174657220746860448201527f616e206f7220657175616c20746f206d696e696d756d207374616b65000000006064820152608401610672565b828210156114de5760405162461bcd60e51b815260206004820152604960248201527f546f74616c206d6178696d756d207374616b6520616d6f756e74206d7573742060448201527f62652067726561746572207468616e206f7220657175616c20746f206d6178696064820152686d756d207374616b6560b81b608482015260a401610672565b5f86815260066020818152604092839020888155600181018890556002810187905560038101869055918201805460ff191685151590811790915583518a8152918201899052928101879052606081018690526080810185905260a0810192909252907f497768b3d65a26bbe0117804b6c1f7dbfd9bfd4e4a4d9af2aec5f9f64b2681019060c00160405180910390a150505050505050565b61157f611792565b6001600160a01b0381166115e45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610672565b6115ed816117eb565b50565b6115f8611792565b600281106116395760405162461bcd60e51b815260206004820152600e60248201526d496e76616c69642053746174652160901b6044820152606401610672565b80600181111561164b5761164b611bbd565b6009805460ff60a01b1916600160a01b83600181111561166d5761166d611bbd565b021790555050565b6109f9838383600161186e565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f1981146116f757818110156116e957604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610672565b6116f784848484035f61186e565b50505050565b6001600160a01b03831661172657604051634b637e8f60e11b81525f6004820152602401610672565b6001600160a01b03821661174f5760405163ec442f0560e01b81525f6004820152602401610672565b6109f9838383611940565b6001600160a01b03821661178357604051634b637e8f60e11b81525f6004820152602401610672565b61178e825f83611940565b5050565b5f546001600160a01b03163314610d2d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610672565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166118635760405163ec442f0560e01b81525f6004820152602401610672565b61178e5f8383611940565b6001600160a01b0384166118975760405163e602df0560e01b81525f6004820152602401610672565b6001600160a01b0383166118c057604051634a1406b160e11b81525f6004820152602401610672565b6001600160a01b038085165f90815260026020908152604080832093871683529290522082905580156116f757826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161193291815260200190565b60405180910390a350505050565b6001600160a01b03831661196a578060035f82825461195f9190611d8f565b909155506119da9050565b6001600160a01b0383165f90815260016020526040902054818110156119bc5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610672565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b0382166119f657600380548290039055611a14565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a5991815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b81811015611a9157858101830151858201604001528201611a75565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611ac7575f80fd5b919050565b5f8060408385031215611add575f80fd5b611ae683611ab1565b946020939093013593505050565b5f805f60608486031215611b06575f80fd5b611b0f84611ab1565b9250611b1d60208501611ab1565b9150604084013590509250925092565b5f60208284031215611b3d575f80fd5b5035919050565b5f805f60608486031215611b56575f80fd5b611b5f84611ab1565b925060208401359150611b7460408501611ab1565b90509250925092565b5f60208284031215611b8d575f80fd5b611b9682611ab1565b9392505050565b5f8060408385031215611bae575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52602160045260245ffd5b6020810160028310611bf157634e487b7160e01b5f52602160045260245ffd5b91905290565b80151581146115ed575f80fd5b5f805f805f8060c08789031215611c19575f80fd5b863595506020870135945060408701359350606087013592506080870135915060a0870135611c4781611bf7565b809150509295509295509295565b5f8060408385031215611c66575f80fd5b611c6f83611ab1565b9150611c7d60208401611ab1565b90509250929050565b600181811c90821680611c9a57607f821691505b602082108103611cb857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561056c5761056c611cbe565b808202811582820484141761056c5761056c611cbe565b5f82611d1657634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f436f6e7472616374206973206e6f7420696e2074686520726571756972656420604082015264737461746560d81b606082015260800190565b602080825260159082015274139bc81858dd1a5d99481cdd185ad948199bdd5b99605a1b604082015260600190565b8082018082111561056c5761056c611cbe565b5f60208284031215611db2575f80fd5b8151611b9681611bf7565b60208082526022908201527f4578636565647320746f74616c206d6178696d756d207374616b6520616d6f756040820152611b9d60f21b606082015260800190565b5f60018201611e1057611e10611cbe565b506001019056fea2646970667358221220cbf9715f334991d3b8316512d9b2bdb409ab5f70d96d682737399fc6ee0e7a2764736f6c63430008140033