0x60806040523480156200001157600080fd5b50600180556200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61409380620000f86000396000f3fe608060405234801561001057600080fd5b50600436106102f15760003560e01c80637a0ebc881161019d578063c740f8fd116100e9578063dc5b68a6116100a2578063f249c9c81161007c578063f249c9c8146106cb578063f2a93196146106de578063f5b541a6146106f1578063fea57c701461070657600080fd5b8063dc5b68a614610692578063e218aac3146106a5578063ec03f0d6146106b857600080fd5b8063c740f8fd1461062b578063ccbebbd31461063e578063ced33cd514610651578063d547741f14610659578063d57752b21461066c578063d7b8bec51461067f57600080fd5b8063a217fddf11610156578063b258a6f511610130578063b258a6f5146105cb578063b4a60e2f146105f2578063b76a899514610605578063c2d02a1a1461061857600080fd5b8063a217fddf14610590578063ac9650d814610598578063adaf7120146105b857600080fd5b80637a0ebc881461051e57806385519fbb1461053157806391d148541461054457806393002b7b146105575780639582d2481461056a578063a141ebe51461057d57600080fd5b80632f2ff15d1161025c578063480db80011610215578063621d2b87116101ef578063621d2b87146104d25780636c969373146104e557806375d05aad146104f857806379502c551461050b57600080fd5b8063480db800146104995780634c60a11e146104ac5780635899fce3146104bf57600080fd5b80632f2ff15d146104275780633525ab821461043a57806335f133321461044d578063360bb2981461046057806336568abe1461047357806341a360521461048657600080fd5b80631a54eadb116102ae5780631a54eadb146103975780631d38fcda146103aa5780631d9264e7146103bd5780632046a59d146103d0578063248a9ca3146103e357806327d77acf1461041457600080fd5b806301ffc9a7146102f657806311e1c19d1461031e578063131519811461033357806318ae69931461035e57806319ea7f55146103715780631a3e7df114610384575b600080fd5b610309610304366004613163565b610719565b60405190151581526020015b60405180910390f35b61033161032c3660046131d8565b610750565b005b600354610346906001600160a01b031681565b6040516001600160a01b039091168152602001610315565b61033161036c366004613271565b6107eb565b61033161037f3660046132dc565b61090c565b610331610392366004613342565b610992565b6103316103a53660046133d5565b610a27565b6103316103b83660046132dc565b610a68565b6103316103cb3660046133d5565b610b62565b6103316103de3660046133d5565b610c81565b6104066103f13660046133f2565b60009081526002602052604090206001015490565b604051908152602001610315565b610331610422366004613271565b610ccb565b61033161043536600461340b565b610d28565b610331610448366004613449565b610d4d565b61033161045b3660046132dc565b610db1565b61033161046e36600461353a565b610e32565b61033161048136600461340b565b610f37565b600654610346906001600160a01b031681565b6103316104a7366004613271565b610fba565b6103316104ba366004613271565b6110d9565b6103316104cd36600461357e565b611201565b6103316104e03660046132dc565b611257565b6103316104f33660046132dc565b611317565b6103316105063660046133d5565b61137e565b600454610346906001600160a01b031681565b600554610346906001600160a01b031681565b61033161053f3660046132dc565b6113c8565b61030961055236600461340b565b6115c9565b610331610565366004613271565b6115f4565b600754610346906001600160a01b031681565b61033161058b3660046135ac565b611922565b610406600081565b6105ab6105a63660046132dc565b611a2d565b6040516103159190613695565b6103316105c63660046133d5565b611b21565b6104067f8d4341681b282735dd0d55670ff8e0ad68a80cbfc2cee847065e9f771470f88f81565b610331610600366004613271565b611ba7565b610331610613366004613271565b611cd3565b610331610626366004613271565b611deb565b6103316106393660046133d5565b611f47565b61033161064c3660046133f2565b611fc3565b61033161201c565b61033161066736600461340b565b61209b565b61033161067a3660046131d8565b6120c0565b61033161068d3660046133d5565b612209565b6103316106a03660046136f7565b612247565b6103316106b3366004613271565b6123fe565b6103316106c63660046132dc565b61252a565b6103316106d93660046135ac565b612591565b6103316106ec3660046137cd565b612696565b61040660008051602061401783398151915281565b61033161071436600461388e565b61276d565b60006001600160e01b03198216637965db0b60e01b148061074a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b61075b6000336115c9565b61077857604051637bfa4b9f60e01b815260040160405180910390fd5b600480546040516311e1c19d60e01b81526001600160a01b03909116916311e1c19d916107b1918a918a918a918a918a918a9101613930565b600060405180830381600087803b1580156107cb57600080fd5b505af11580156107df573d6000803e3d6000fd5b50505050505050505050565b6107f66000336115c9565b61081357604051637bfa4b9f60e01b815260040160405180910390fd5b828114610836576040516001621398b960e31b0319815260040160405180910390fd5b60005b83811015610905576005546001600160a01b0316639d87999086868481811061086457610864613979565b905060200201602081019061087991906133d5565b85858581811061088b5761088b613979565b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526020029190910135602483015250604401600060405180830381600087803b1580156108da57600080fd5b505af11580156108ee573d6000803e3d6000fd5b5050505080806108fd906139a5565b915050610839565b5050505050565b6109176000336115c9565b61093457604051637bfa4b9f60e01b815260040160405180910390fd5b60005b8181101561098d5760065461097b906001600160a01b031684848481811061096157610961613979565b905060200201602081019061097691906133d5565b6127cd565b80610985816139a5565b915050610937565b505050565b61099d6000336115c9565b6109ba57604051637bfa4b9f60e01b815260040160405180910390fd5b60048054604051631a3e7df160e01b81526001600160a01b0390911691631a3e7df1916109ef918891889188918891016139be565b600060405180830381600087803b158015610a0957600080fd5b505af1158015610a1d573d6000803e3d6000fd5b5050505050505050565b610a326000336115c9565b610a4f57604051637bfa4b9f60e01b815260040160405180910390fd5b600754610a65906001600160a01b03168261280f565b50565b610a80600080516020614017833981519152336115c9565b610a9d57604051631f0853c160e21b815260040160405180910390fd5b60005b8181101561098d57828282818110610aba57610aba613979565b9050602002016020810190610acf91906133d5565b6001600160a01b03166362a5af3b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b0957600080fd5b505af1925050508015610b1a575060015b610b50573d808015610b48576040519150601f19603f3d011682016040523d82523d6000602084013e610b4d565b606091505b50505b80610b5a816139a5565b915050610aa0565b610b6d6000336115c9565b610b8a57604051637bfa4b9f60e01b815260040160405180910390fd5b60048054604051634bc63af160e11b81526000926001600160a01b039092169163978c75e291610bd491016020808252600590820152642222ac2b1960d91b604082015260600190565b600060405180830381865afa158015610bf1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c199190810190613a4a565b60200151604051631d9264e760e01b81526001600160a01b03848116600483015291925090821690631d9264e7906024015b600060405180830381600087803b158015610c6557600080fd5b505af1158015610c79573d6000803e3d6000fd5b505050505050565b610c8c6000336115c9565b610ca957604051637bfa4b9f60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610cd66000336115c9565b610cf357604051637bfa4b9f60e01b815260040160405180910390fd5b600480546040516327d77acf60e01b81526001600160a01b03909116916327d77acf916109ef91889188918891889101613af9565b600082815260026020526040902060010154610d43816128a4565b61098d83836128ae565b610d586000336115c9565b610d7557604051637bfa4b9f60e01b815260040160405180910390fd5b60048054604051631a92d5c160e11b81526001600160a01b03858116938201939093528315156024820152911690633525ab8290604401610c4b565b610dbc6000336115c9565b610dd957604051637bfa4b9f60e01b815260040160405180910390fd5b60005b8181101561098d57600754610e20906001600160a01b0316848484818110610e0657610e06613979565b9050602002016020810190610e1b91906133d5565b612934565b80610e2a816139a5565b915050610ddc565b610e3d6000336115c9565b610e5a57604051637bfa4b9f60e01b815260040160405180910390fd5b60048054604051634bc63af160e11b81526000926001600160a01b039092169163978c75e291610e8c91879101613b2b565b600060405180830381865afa158015610ea9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed19190810190613a4a565b6020015160405163184023eb60e11b8152600481018490529091506001600160a01b0382169063308047d690602401600060405180830381600087803b158015610f1a57600080fd5b505af1158015610f2e573d6000803e3d6000fd5b50505050505050565b6001600160a01b0381163314610fac5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610fb68282612976565b5050565b610fc56000336115c9565b610fe257604051637bfa4b9f60e01b815260040160405180910390fd5b828114611005576040516001621398b960e31b0319815260040160405180910390fd5b60005b838110156109055784848281811061102257611022613979565b905060200201602081019061103791906133d5565b6001600160a01b03166324873d1884848481811061105757611057613979565b905060200201602081019061106c9190613b55565b6040516001600160e01b031960e084901b1681526001600160801b039091166004820152602401600060405180830381600087803b1580156110ad57600080fd5b505af11580156110c1573d6000803e3d6000fd5b505050508060016110d29190613b70565b9050611008565b6110e46000336115c9565b61110157604051637bfa4b9f60e01b815260040160405180910390fd5b828114611124576040516001621398b960e31b0319815260040160405180910390fd5b60005b83811015610905576005546001600160a01b031663153b0d1e86868481811061115257611152613979565b905060200201602081019061116791906133d5565b85858581811061117957611179613979565b905060200201602081019061118e9190613b83565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015215156024820152604401600060405180830381600087803b1580156111d657600080fd5b505af11580156111ea573d6000803e3d6000fd5b5050505080806111f9906139a5565b915050611127565b61120c6000336115c9565b61122957604051637bfa4b9f60e01b815260040160405180910390fd5b600480546001600160a01b039384166001600160a01b03199182161790915560058054929093169116179055565b6112626000336115c9565b61127f57604051637bfa4b9f60e01b815260040160405180910390fd5b60005b8181101561098d5782828281811061129c5761129c613979565b90506020020160208101906112b191906133d5565b6001600160a01b031663d5e24ff16040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050508060016113109190613b70565b9050611282565b6113226000336115c9565b61133f57604051637bfa4b9f60e01b815260040160405180910390fd5b60005b8181101561098d5760075461136c906001600160a01b031684848481811061096157610961613979565b80611376816139a5565b915050611342565b6113896000336115c9565b6113a657604051637bfa4b9f60e01b815260040160405180910390fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6113d06129dd565b6113e8600080516020614017833981519152336115c9565b61140557604051631f0853c160e21b815260040160405180910390fd5b60005b818110156115bf57731d6b1d2ad091bec4aae6a131c92008701531fdaf83838381811061143757611437613979565b905060200201602081019061144c91906133d5565b6001600160a01b031603611478576003544790611472906001600160a01b031682612a36565b506115ad565b600083838381811061148c5761148c613979565b90506020020160208101906114a191906133d5565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156114e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150b9190613ba0565b905083838381811061151f5761151f613979565b905060200201602081019061153491906133d5565b60035460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af1158015611586573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115aa9190613bb9565b50505b6115b8816001613b70565b9050611408565b50610fb660018055565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6115fc6129dd565b611614600080516020614017833981519152336115c9565b61163157604051631f0853c160e21b815260040160405180910390fd5b828114611654576040516001621398b960e31b0319815260040160405180910390fd5b60005b8381101561191257600085858381811061167357611673613979565b905060200201602081019061168891906133d5565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156116ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f29190613ba0565b6005549091506001600160a01b0316638e19899e61175688888681811061171b5761171b613979565b905060200201602081019061173091906133d5565b61175188888881811061174557611745613979565b90506020020135612b4f565b612bc0565b6040518263ffffffff1660e01b815260040161177491815260200190565b600060405180830381600087803b15801561178e57600080fd5b505af11580156117a2573d6000803e3d6000fd5b5050505060008686848181106117ba576117ba613979565b90506020020160208101906117cf91906133d5565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611815573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118399190613ba0565b905084848481811061184d5761184d613979565b9050602002013582826118609190613bd6565b146118fd576005546001600160a01b03166348b7504488888681811061188857611888613979565b905060200201602081019061189d91906133d5565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401600060405180830381600087803b1580156118e457600080fd5b505af11580156118f8573d6000803e3d6000fd5b505050505b5061190b9050816001613b70565b9050611657565b5061191c60018055565b50505050565b61192d6000336115c9565b61194a57604051637bfa4b9f60e01b815260040160405180910390fd5b60005b838110156119f75761198485858381811061196a5761196a613979565b905060200201602081019061197f91906133d5565b612be4565b506119b485858381811061199a5761199a613979565b90506020020160208101906119af91906133d5565b612cd1565b506119e48585838181106119ca576119ca613979565b90506020020160208101906119df91906133d5565b612d32565b50806119ef816139a5565b91505061194d565b5060048054604051635de140ef60e11b81526001600160a01b039091169163bbc281de916109ef91889188918891889101613c9c565b6060816001600160401b03811115611a4757611a47613477565b604051908082528060200260200182016040528015611a7a57816020015b6060815260200190600190039081611a655790505b50905060005b82811015611b1a57611aea30858584818110611a9e57611a9e613979565b9050602002810190611ab09190613cf6565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e1892505050565b828281518110611afc57611afc613979565b60200260200101819052508080611b12906139a5565b915050611a80565b5092915050565b611b2c6000336115c9565b611b4957604051637bfa4b9f60e01b815260040160405180910390fd5b6004805460405163f2fde38b60e01b81526001600160a01b038481169382019390935291169063f2fde38b906024015b600060405180830381600087803b158015611b9357600080fd5b505af1158015610905573d6000803e3d6000fd5b611baf6129dd565b611bc7600080516020614017833981519152336115c9565b611be457604051631f0853c160e21b815260040160405180910390fd5b60005b838110156119125760005b82811015611cc057858583818110611c0c57611c0c613979565b9050602002016020810190611c2191906133d5565b6001600160a01b0316634604fad9858584818110611c4157611c41613979565b9050602002016020810190611c569190613d3c565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401600060405180830381600087803b158015611c9557600080fd5b505af1158015611ca9573d6000803e3d6000fd5b505050508080611cb8906139a5565b915050611bf2565b5080611ccb816139a5565b915050611be7565b611cde6000336115c9565b611cfb57604051637bfa4b9f60e01b815260040160405180910390fd5b828114611d1e576040516001621398b960e31b0319815260040160405180910390fd5b60005b8381101561090557848482818110611d3b57611d3b613979565b9050602002016020810190611d5091906133d5565b6001600160a01b031663c9f5088a848484818110611d7057611d70613979565b9050602002016020810190611d859190613b83565b6040518263ffffffff1660e01b8152600401611da5911515815260200190565b600060405180830381600087803b158015611dbf57600080fd5b505af1158015611dd3573d6000803e3d6000fd5b50505050806001611de49190613b70565b9050611d21565b6000611df781336115c9565b80611e275750611e277f8d4341681b282735dd0d55670ff8e0ad68a80cbfc2cee847065e9f771470f88f336115c9565b905080611e4757604051630f4bbd8d60e21b815260040160405180910390fd5b838214611e6a576040516001621398b960e31b0319815260040160405180910390fd5b60005b84811015610c79576005546001600160a01b03166348b75044878784818110611e9857611e98613979565b9050602002016020810190611ead91906133d5565b868685818110611ebf57611ebf613979565b9050602002016020810190611ed491906133d5565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401600060405180830381600087803b158015611f1c57600080fd5b505af1158015611f30573d6000803e3d6000fd5b505050508080611f3f906139a5565b915050611e6d565b611f526000336115c9565b611f6f57604051637bfa4b9f60e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f8b88960b58f21a01a12a7ff2727430f391f3afde57bdcc36dfb8b92a84f7e1fb9060200160405180910390a150565b611fce6000336115c9565b611feb57604051637bfa4b9f60e01b815260040160405180910390fd5b60055460405163ccbebbd360e01b8152600481018390526001600160a01b039091169063ccbebbd390602401611b79565b6120276000336115c9565b61204457604051637bfa4b9f60e01b815260040160405180910390fd5b600480546040805163ced33cd560e01b815290516001600160a01b039092169263ced33cd592828201926000929082900301818387803b15801561208757600080fd5b505af115801561191c573d6000803e3d6000fd5b6000828152600260205260409020600101546120b6816128a4565b61098d8383612976565b6120cb6000336115c9565b6120e857604051637bfa4b9f60e01b815260040160405180910390fd5b84831415806120f75750848114155b15612118576040516001621398b960e31b0319815260040160405180910390fd5b60005b85811015610f2e5786868281811061213557612135613979565b905060200201602081019061214a91906133d5565b6001600160a01b031663a40c96fe86868481811061216a5761216a613979565b905060200201602081019061217f9190613d6f565b85858581811061219157612191613979565b90506020020160208101906121a69190613d8c565b6040518363ffffffff1660e01b81526004016121c3929190613dc5565b600060405180830381600087803b1580156121dd57600080fd5b505af11580156121f1573d6000803e3d6000fd5b505050508060016122029190613b70565b905061211b565b6122146000336115c9565b61223157604051637bfa4b9f60e01b815260040160405180910390fd5b600654610a65906001600160a01b03168261280f565b600054610100900460ff16158080156122675750600054600160ff909116105b806122815750303b158015612281575060005460ff166001145b6122e45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610fa3565b6000805460ff191660011790558015612307576000805461ff0019166101001790555b612312600085612e3d565b60005b83518110156123615761234f60008051602061401783398151915285838151811061234257612342613979565b6020026020010151612e3d565b61235a816001613b70565b9050612315565b50600380546001600160a01b0319166001600160a01b0384169081179091556040519081527f8b88960b58f21a01a12a7ff2727430f391f3afde57bdcc36dfb8b92a84f7e1fb9060200160405180910390a1801561191c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6124066129dd565b61241e600080516020614017833981519152336115c9565b61243b57604051631f0853c160e21b815260040160405180910390fd5b60005b838110156119125760005b828110156125175785858381811061246357612463613979565b905060200201602081019061247891906133d5565b6001600160a01b031663610a768885858481811061249857612498613979565b90506020020160208101906124ad9190613d3c565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401600060405180830381600087803b1580156124ec57600080fd5b505af1158015612500573d6000803e3d6000fd5b50505050808061250f906139a5565b915050612449565b5080612522816139a5565b91505061243e565b6125356000336115c9565b61255257604051637bfa4b9f60e01b815260040160405180910390fd5b60005b8181101561098d5760065461257f906001600160a01b0316848484818110610e0657610e06613979565b80612589816139a5565b915050612555565b61259c6000336115c9565b6125b957604051637bfa4b9f60e01b815260040160405180910390fd5b8281146125dc576040516001621398b960e31b0319815260040160405180910390fd5b60005b83811015610905578484828181106125f9576125f9613979565b905060200201602081019061260e91906133d5565b6001600160a01b0316639f4235ae84848481811061262e5761262e613979565b905060c002016040518263ffffffff1660e01b81526004016126509190613de5565b600060405180830381600087803b15801561266a57600080fd5b505af115801561267e573d6000803e3d6000fd5b5050505080600161268f9190613b70565b90506125df565b6126a16000336115c9565b6126be57604051637bfa4b9f60e01b815260040160405180910390fd5b60048054604051634bc63af160e11b81526000926001600160a01b039092169163978c75e2916126f0918a9101613b2b565b600060405180830381865afa15801561270d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127359190810190613a4a565b602001516040516295a4b360e31b81529091506001600160a01b038216906304ad2598906107b1908890889088908890600401613e06565b6127786000336115c9565b61279557604051637bfa4b9f60e01b815260040160405180910390fd5b600754604051630fea57c760e41b815260048101849052602481018390526001600160a01b039091169063fea57c7090604401610c4b565b604051632f2ff15d60e01b815260008051602061401783398151915260048201526001600160a01b038281166024830152831690632f2ff15d90604401610c4b565b604051632f2ff15d60e01b8152600060048201526001600160a01b038281166024830152831690632f2ff15d90604401600060405180830381600087803b15801561285957600080fd5b505af115801561286d573d6000803e3d6000fd5b5050604051631b2b455f60e11b8152600060048201523060248201526001600160a01b03851692506336568abe9150604401610c4b565b610a658133612e47565b6128b882826115c9565b610fb65760008281526002602090815260408083206001600160a01b03851684529091529020805460ff191660011790556128f03390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60405163d547741f60e01b815260008051602061401783398151915260048201526001600160a01b03828116602483015283169063d547741f90604401610c4b565b61298082826115c9565b15610fb65760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600260015403612a2f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610fa3565b6002600155565b80471015612a865760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610fa3565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612ad3576040519150601f19603f3d011682016040523d82523d6000602084013e612ad8565b606091505b505090508061098d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610fa3565b60006bffffffffffffffffffffffff821115612bbc5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610fa3565b5090565b60006001600160a01b03831660a083901b6001600160a01b031916175b9392505050565b604080518082018252600881526773796d626f6c282960c01b60209182015281516004815260248101835290810180516001600160e01b03166395d89b4160e01b179052905160609160009182916001600160a01b03861691612c479190613f00565b600060405180830381855afa9150503d8060008114612c82576040519150601f19603f3d011682016040523d82523d6000602084013e612c87565b606091505b509150915081612cb55760405163a6c6589b60e01b81526001600160a01b0385166004820152602401610fa3565b80806020019051810190612cc99190613f1c565b949350505050565b60408051808201825260068152656e616d65282960d01b60209182015281516004815260248101835290810180516001600160e01b03166306fdde0360e01b179052905160609160009182916001600160a01b03861691612c479190613f00565b604080518082018252600a815269646563696d616c73282960b01b60209182015281516004815260248101835290810180516001600160e01b031663313ce56760e01b1790529051600091829182916001600160a01b03861691612d969190613f00565b600060405180830381855afa9150503d8060008114612dd1576040519150601f19603f3d011682016040523d82523d6000602084013e612dd6565b606091505b509150915081612e0457604051630f406bcd60e31b81526001600160a01b0385166004820152602401610fa3565b80806020019051810190612cc99190613f50565b6060612bdd838360405180606001604052806027815260200161403760279139612ea0565b610fb682826128ae565b612e5182826115c9565b610fb657612e5e81612f18565b612e69836020612f2a565b604051602001612e7a929190613f73565b60408051601f198184030181529082905262461bcd60e51b8252610fa391600401613b2b565b6060600080856001600160a01b031685604051612ebd9190613f00565b600060405180830381855af49150503d8060008114612ef8576040519150601f19603f3d011682016040523d82523d6000602084013e612efd565b606091505b5091509150612f0e868383876130c5565b9695505050505050565b606061074a6001600160a01b03831660145b60606000612f39836002613fe8565b612f44906002613b70565b6001600160401b03811115612f5b57612f5b613477565b6040519080825280601f01601f191660200182016040528015612f85576020820181803683370190505b509050600360fc1b81600081518110612fa057612fa0613979565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612fcf57612fcf613979565b60200101906001600160f81b031916908160001a9053506000612ff3846002613fe8565b612ffe906001613b70565b90505b6001811115613076576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061303257613032613979565b1a60f81b82828151811061304857613048613979565b60200101906001600160f81b031916908160001a90535060049490941c9361306f81613fff565b9050613001565b508315612bdd5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610fa3565b6060831561313457825160000361312d576001600160a01b0385163b61312d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610fa3565b5081612cc9565b612cc983838151156131495781518083602001fd5b8060405162461bcd60e51b8152600401610fa39190613b2b565b60006020828403121561317557600080fd5b81356001600160e01b031981168114612bdd57600080fd5b60008083601f84011261319f57600080fd5b5081356001600160401b038111156131b657600080fd5b6020830191508360208260051b85010111156131d157600080fd5b9250929050565b600080600080600080606087890312156131f157600080fd5b86356001600160401b038082111561320857600080fd5b6132148a838b0161318d565b9098509650602089013591508082111561322d57600080fd5b6132398a838b0161318d565b9096509450604089013591508082111561325257600080fd5b5061325f89828a0161318d565b979a9699509497509295939492505050565b6000806000806040858703121561328757600080fd5b84356001600160401b038082111561329e57600080fd5b6132aa8883890161318d565b909650945060208701359150808211156132c357600080fd5b506132d08782880161318d565b95989497509550505050565b600080602083850312156132ef57600080fd5b82356001600160401b0381111561330557600080fd5b6133118582860161318d565b90969095509350505050565b6001600160a01b0381168114610a6557600080fd5b803561333d8161331d565b919050565b6000806000806060858703121561335857600080fd5b84356001600160401b038082111561336f57600080fd5b818701915087601f83011261338357600080fd5b81358181111561339257600080fd5b8860208285010111156133a457600080fd5b602092830196509450508501356133ba8161331d565b915060408501356133ca8161331d565b939692955090935050565b6000602082840312156133e757600080fd5b8135612bdd8161331d565b60006020828403121561340457600080fd5b5035919050565b6000806040838503121561341e57600080fd5b8235915060208301356134308161331d565b809150509250929050565b8015158114610a6557600080fd5b6000806040838503121561345c57600080fd5b82356134678161331d565b915060208301356134308161343b565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156134b5576134b5613477565b604052919050565b60006001600160401b038211156134d6576134d6613477565b50601f01601f191660200190565b600082601f8301126134f557600080fd5b8135613508613503826134bd565b61348d565b81815284602083860101111561351d57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561354d57600080fd5b82356001600160401b0381111561356357600080fd5b61356f858286016134e4565b95602094909401359450505050565b6000806040838503121561359157600080fd5b823561359c8161331d565b915060208301356134308161331d565b600080600080604085870312156135c257600080fd5b84356001600160401b03808211156135d957600080fd5b6135e58883890161318d565b909650945060208701359150808211156135fe57600080fd5b818701915087601f83011261361257600080fd5b81358181111561362157600080fd5b88602060c08302850101111561363657600080fd5b95989497505060200194505050565b60005b83811015613660578181015183820152602001613648565b50506000910152565b60008151808452613681816020860160208601613645565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156136ea57603f198886030184526136d8858351613669565b945092850192908501906001016136bc565b5092979650505050505050565b60008060006060848603121561370c57600080fd5b83356137178161331d565b92506020848101356001600160401b038082111561373457600080fd5b818701915087601f83011261374857600080fd5b81358181111561375a5761375a613477565b8060051b915061376b84830161348d565b818152918301840191848101908a84111561378557600080fd5b938501935b838510156137af578435925061379f8361331d565b828252938501939085019061378a565b8097505050505050506137c460408501613332565b90509250925092565b6000806000806000606086880312156137e557600080fd5b85356001600160401b03808211156137fc57600080fd5b61380889838a016134e4565b9650602088013591508082111561381e57600080fd5b61382a89838a0161318d565b9096509450604088013591508082111561384357600080fd5b818801915088601f83011261385757600080fd5b81358181111561386657600080fd5b89602060e08302850101111561387b57600080fd5b9699959850939650602001949392505050565b600080604083850312156138a157600080fd5b50508035926020909101359150565b8183526000602080850194508260005b858110156138ee5781356138d38161331d565b6001600160a01b0316875295820195908201906001016138c0565b509495945050505050565b8183526000602080850194508260005b858110156138ee57813561391c8161343b565b151587529582019590820190600101613909565b60608152600061394460608301888a6138b0565b82810360208401526139578187896138b0565b9050828103604084015261396c8185876138f9565b9998505050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016139b7576139b761398f565b5060010190565b6060815283606082015283856080830137600060808583018101919091526001600160a01b039384166020830152919092166040830152601f909201601f19160101919050565b600082601f830112613a1657600080fd5b8151613a24613503826134bd565b818152846020838601011115613a3957600080fd5b612cc9826020830160208701613645565b600060208284031215613a5c57600080fd5b81516001600160401b0380821115613a7357600080fd5b9083019060608286031215613a8757600080fd5b604051606081018181108382111715613aa257613aa2613477565b604052825182811115613ab457600080fd5b613ac087828601613a05565b82525060208301519150613ad38261331d565b81602082015260408301519250613ae98361331d565b6040810192909252509392505050565b604081526000613b0d6040830186886138b0565b8281036020840152613b208185876138f9565b979650505050505050565b602081526000612bdd6020830184613669565b80356001600160801b038116811461333d57600080fd5b600060208284031215613b6757600080fd5b612bdd82613b3e565b8082018082111561074a5761074a61398f565b600060208284031215613b9557600080fd5b8135612bdd8161343b565b600060208284031215613bb257600080fd5b5051919050565b600060208284031215613bcb57600080fd5b8151612bdd8161343b565b8181038181111561074a5761074a61398f565b803561ffff8116811461333d57600080fd5b80356001600160401b038116811461333d57600080fd5b6001600160801b0380613c2483613b3e565b168352613c3360208301613be9565b61ffff808216602086015280613c4b60408601613be9565b16604086015250506001600160401b03613c6760608401613bfb565b166060840152608082013560038110613c7f57600080fd5b608084015280613c9160a08401613b3e565b1660a0840152505050565b604081526000613cb06040830186886138b0565b82810360208085019190915284825285910160005b85811015613cea57613cd78284613c12565b60c0928301929190910190600101613cc5565b50979650505050505050565b6000808335601e19843603018112613d0d57600080fd5b8301803591506001600160401b03821115613d2757600080fd5b6020019150368190038213156131d157600080fd5b600060208284031215613d4e57600080fd5b813563ffffffff81168114612bdd57600080fd5b60048110610a6557600080fd5b600060208284031215613d8157600080fd5b8135612bdd81613d62565b600060208284031215613d9e57600080fd5b612bdd82613be9565b60048110610a6557634e487b7160e01b600052602160045260246000fd5b60408101613dd284613da7565b92815261ffff9190911660209091015290565b60c0810161074a8284613c12565b803562ffffff8116811461333d57600080fd5b60006040808352613e1a81840187896138b0565b8381036020858101919091528582528691810160005b87811015613ef2578335613e4381613d62565b613e4c81613da7565b82526001600160401b03613e61858501613bfb565b168383015284840135613e738161331d565b6001600160a01b031682860152606062ffffff613e91868301613df3565b16908301526080613ea3858201613bfb565b6001600160401b03169083015260a0613ebd858201613332565b6001600160a01b03169083015260c0613ed7858201613df3565b62ffffff169083015260e09384019390910190600101613e30565b509998505050505050505050565b60008251613f12818460208701613645565b9190910192915050565b600060208284031215613f2e57600080fd5b81516001600160401b03811115613f4457600080fd5b612cc984828501613a05565b600060208284031215613f6257600080fd5b815160ff81168114612bdd57600080fd5b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613fab816017850160208801613645565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613fdc816028840160208801613645565b01602801949350505050565b808202811582820484141761074a5761074a61398f565b60008161400e5761400e61398f565b50600019019056fe523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220943a283a06ee96f8f91f58cfca10acbf5b454b0717f47755173d466ab35b539764736f6c63430008130033