0x6080604052600436106101cd5760003560e01c80636bcef9a6116100f7578063a563833b11610095578063c87b56dd11610064578063c87b56dd1461057a578063dd62ed3e1461059a578063e985e9c5146105e0578063f835ab001461060057600080fd5b8063a563833b14610505578063a9059cbb14610526578063b3720c3414610546578063b88d4fde1461056757600080fd5b806388a8c95c116100d157806388a8c95c1461047957806391cca3db1461049957806395d89b41146104b9578063a22cb465146104e557600080fd5b80636bcef9a6146104195780636c0360eb1461042e57806370a082311461044357600080fd5b806323b872dd1161016f5780634f02c4201161013e5780634f02c4201461038657806355f804b3146103a35780636352211e146103c35780636a21f8e1146103f957600080fd5b806323b872dd14610328578063313ce567146103485780633ccfd60b1461035c57806342842e0e1461037357600080fd5b8063095ea7b3116101ab578063095ea7b31461028357806318148f1b146102a357806318160ddd146102d05780631a72b87d146102f357600080fd5b806301ffc9a7146101d257806306fdde0314610207578063081812fc1461024b575b600080fd5b3480156101de57600080fd5b506101f26101ed366004611bfb565b61063b565b60405190151581526020015b60405180910390f35b34801561021357600080fd5b50604080518082019091526012815271537061636520506f702054726f6f7065727360701b60208201525b6040516101fe9190611c68565b34801561025757600080fd5b5061026b610266366004611c7b565b6106a3565b6040516001600160a01b0390911681526020016101fe565b34801561028f57600080fd5b506101f261029e366004611cab565b6106e0565b3480156102af57600080fd5b506102c36102be366004611cd5565b610810565b6040516101fe9190611cf0565b3480156102dc57600080fd5b506102e56108a8565b6040519081526020016101fe565b3480156102ff57600080fd5b5061031361030e366004611cab565b6108c7565b60405163ffffffff90911681526020016101fe565b34801561033457600080fd5b506101f2610343366004611d3a565b610910565b34801561035457600080fd5b5060086102e5565b34801561036857600080fd5b506103716109ef565b005b610371610381366004611d3a565b610a55565b34801561039257600080fd5b506001546103139063ffffffff1681565b3480156103af57600080fd5b506103716103be366004611e02565b610b9c565b3480156103cf57600080fd5b5061026b6103de366004611c7b565b6006602052600090815260409020546001600160a01b031681565b34801561040557600080fd5b50610371610414366004611e5b565b610bd6565b34801561042557600080fd5b50610371610c1e565b34801561043a57600080fd5b5061023e610c69565b34801561044f57600080fd5b506102e561045e366004611cd5565b6001600160a01b031660009081526008602052604090205490565b34801561048557600080fd5b50610371610494366004611cd5565b610cf7565b3480156104a557600080fd5b5060035461026b906001600160a01b031681565b3480156104c557600080fd5b5060408051808201909152600381526214d41560ea1b602082015261023e565b3480156104f157600080fd5b50610371610500366004611e76565b610d43565b34801561051157600080fd5b506003546101f290600160a01b900460ff1681565b34801561053257600080fd5b506101f2610541366004611cab565b610d7d565b34801561055257600080fd5b506003546101f290600160a81b900460ff1681565b610371610575366004611ea9565b610dcc565b34801561058657600080fd5b5061023e610595366004611c7b565b610f00565b3480156105a657600080fd5b506102e56105b5366004611f25565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105ec57600080fd5b506101f26105fb366004611f25565b610fd0565b34801561060c57600080fd5b5061037161061b366004611e5b565b336000908152600b60205260409020805460ff1916911515919091179055565b600354600090600160a01b900460ff16801561066757506380ac58cd60e01b6001600160e01b03198316145b8061068257506301ffc9a760e01b6001600160e01b03198316145b8061069d57506336372b0760e01b6001600160e01b03198316145b92915050565b6000818152600660205260408120546001600160a01b03166106c457600080fd5b506000908152600760205260409020546001600160a01b031690565b60006106ee6008600a61203a565b8211801561071457506106cd6107066008600a61203a565b6107109190612046565b8211155b156107d6576000828152600660205260409020546001600160a01b031633811480159061074857506107468133610fd0565b155b1561079a5760405162461bcd60e51b815260206004820152601c60248201527f5350543734313a20596f7520617265206e6f7420617070726f7665640000000060448201526064015b60405180910390fd5b600083815260076020526040902080546001600160a01b0319166001600160a01b0386161790556107cc818585610ffe565b600191505061069d565b3360008181526005602090815260408083206001600160a01b03881684529091529020839055610807908484611044565b50600192915050565b6001600160a01b03811660009081526009602090815260409182902080548351818402810184019094528084526060939283018282801561089c57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff168152602001906004019060208260030104928301926001038202915080841161085f5790505b50505050509050919050565b60006108b66008600a61203a565b6108c2906106cd612059565b905090565b600960205281600052604060002081815481106108e357600080fd5b9060005260206000209060089182820401919006600402915091509054906101000a900463ffffffff1681565b600061091e6008600a61203a565b8211801561094457506106cd6109366008600a61203a565b6109409190612046565b8211155b156109ce57336001600160a01b03851614806109795750610964826106a3565b6001600160a01b0316336001600160a01b0316145b8061098957506109898433610fd0565b6109a55760405162461bcd60e51b815260040161079190612070565b6109b0848484611096565b6109c684846109c16008600a61203a565b611165565b5060016109e8565b6109d98433846111bb565b6109e4848484611271565b5060015b9392505050565b6003546001600160a01b03163314610a195760405162461bcd60e51b8152600401610791906120a5565b6003546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610a52573d6000803e3d6000fd5b50565b336001600160a01b0384161480610a855750610a70816106a3565b6001600160a01b0316336001600160a01b0316145b80610a955750610a958333610fd0565b610ab15760405162461bcd60e51b815260040161079190612070565b610abc838383611096565b610acd83836109c16008600a61203a565b6001600160a01b0382163b15801590610b795750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c91906120d0565b6001600160e01b03191614155b15610b97576040516301d6c93560e61b815260040160405180910390fd5b505050565b6003546001600160a01b03163314610bc65760405162461bcd60e51b8152600401610791906120a5565b6000610bd28282612175565b5050565b6003546001600160a01b03163314610c005760405162461bcd60e51b8152600401610791906120a5565b60038054911515600160a81b0260ff60a81b19909216919091179055565b6003546001600160a01b03163314610c485760405162461bcd60e51b8152600401610791906120a5565b6003805460ff60a01b198116600160a01b9182900460ff1615909102179055565b60008054610c76906120ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca2906120ed565b8015610cef5780601f10610cc457610100808354040283529160200191610cef565b820191906000526020600020905b815481529060010190602001808311610cd257829003601f168201915b505050505081565b6003546001600160a01b03163314610d215760405162461bcd60e51b8152600401610791906120a5565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526004602090815260408083206001600160a01b03871684529091529020805460ff1916831515179055610bd29083836116b7565b600081815260066020526040812054336001600160a01b0390911603610dc157610da8338484611096565b610db933846109c16008600a61203a565b50600161069d565b610807338484611271565b336001600160a01b0385161480610dfc5750610de7826106a3565b6001600160a01b0316336001600160a01b0316145b80610e0c5750610e0c8433610fd0565b610e285760405162461bcd60e51b815260040161079190612070565b610e33848484611096565b610e4484846109c16008600a61203a565b6001600160a01b0383163b15801590610edc5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610e8c903390899088908890600401612235565b6020604051808303816000875af1158015610eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecf91906120d0565b6001600160e01b03191614155b15610efa576040516301d6c93560e61b815260040160405180910390fd5b50505050565b60606106cd610f116008600a61203a565b610f1b9190612046565b821115610f5f5760405162461bcd60e51b815260206004820152601260248201527114d4150dcd0c4e881a5b9d985b1a59081a5960721b6044820152606401610791565b60008054610f6c906120ed565b9050600003610f8957505060408051602081019091526000815290565b6000610fa9610f9a6008600a61203a565b610fa49085612272565b6116fe565b604051602001610fba929190612285565b6040516020818303038152906040529050919050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b80826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b816001600160a01b0316836001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161108991815260200190565b60405180910390a3505050565b63ffffffff81166000908152600660205260409020546001600160a01b038481169116146111065760405162461bcd60e51b815260206004820152601760248201527f5350543734313a20496e636f7272656374206f776e65720000000000000000006044820152606401610791565b63ffffffff8116600090815260076020908152604080832080546001600160a01b0319908116909155600690925290912080549091166001600160a01b038416179055611154838383611807565b610b9783838363ffffffff166119af565b6001600160a01b0383166000908152600860205260408120805483929061118d908490612272565b90915550506001600160a01b0382166000908152600860205260409020805482019055610b978383836119f5565b6001600160a01b038084166000908152600560209081526040808320938616835292905220548111156112305760405162461bcd60e51b815260206004820152601e60248201527f5350543734313a20696e73756666696369656e7420616c6c6f77616e636500006044820152606401610791565b6001600160a01b03808416600090815260056020908152604080832093861683529290529081208054839290611267908490612272565b9091555050505050565b6001600160a01b0383166000908152600860205260409020548111156112e95760405162461bcd60e51b815260206004820152602760248201527f5350543734313a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b6064820152608401610791565b60006112f76008600a61203a565b6001600160a01b03851660009081526008602052604090205461131a9190612332565b9050600061132a6008600a61203a565b6001600160a01b03851660009081526008602052604090205461134d9190612332565b905061135a858585611165565b60006113686008600a61203a565b6001600160a01b03871660009081526008602052604090205461138b9190612332565b9050600061139b6008600a61203a565b6001600160a01b0387166000908152600860205260409020546113be9190612332565b6001600160a01b038816600090815260096020526040902090915060028386101561146a5781541561146a576000826000815481106113ff576113ff612346565b60009182526020808320600880840490910154865460018101885587865292852091830490910180546007948516600490810261010090810a90940463ffffffff908116969095160290920a8481029302199091169190911790559150611468908b9083611096565b505b8285111561151a5780541561150f576114cc60008983600185805490506114919190612272565b815481106114a1576114a1612346565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16611096565b808054806114dc576114dc61235c565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a0219169055905561151a565b61151888611a3a565b505b60006115286008600a61203a565b6115329089612372565b6003549091506001600160a01b038b81169116148061155a5750600354600160a81b900460ff165b8061157d57506001600160a01b0389166000908152600b602052604090205460ff165b806115a057506001600160a01b038a166000908152600b602052604090205460ff165b156115b15750505050505050505050565b80156116ab5782548082106115c657806115c8565b815b905060005b818110156115ff576115ed8c8c876000815481106114a1576114a1612346565b806115f781612386565b9150506115cd565b5061160a8183612272565b8354909250905080821061161e5780611620565b815b905060005b818110156116955761164560008c86600188805490506114919190612272565b838054806116555761165561235c565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a021916905590558061168d81612386565b915050611625565b506116a98a6116a48385612272565b611ade565b505b50505050505050505050565b816001600160a01b0316836001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611089911515815260200190565b6060816000036117255750506040805180820190915260018152600360fc1b602082015290565b8160005b811561174f578061173981612386565b91506117489050600a83612372565b9150611729565b60008167ffffffffffffffff81111561176a5761176a611d76565b6040519080825280601f01601f191660200182016040528015611794576020820181803683370190505b5090505b84156117ff576117a9600183612272565b91506117b6600a86612332565b6117c190603061239f565b60f81b8183815181106117d6576117d6612346565b60200101906001600160f81b031916908160001a9053506117f8600a86612372565b9450611798565b949350505050565b63ffffffff81166000908152600a60209081526040808320546001600160a01b0387168452600990925282208054919290919082611846600184612272565b8154811061185657611856612346565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1690508083858154811061189157611891612346565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff160217905550828054806118d4576118d461235c565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a0219169055905561190d600183612272565b1561192b5763ffffffff81166000908152600a602052604090208490555b6001600160a01b038616600081815260096020908152604082208054600180820183558285529284206008820401805460079092166004026101000a63ffffffff81810219909316928c160291909117905592909152905461198d9190612272565b63ffffffff9095166000908152600a6020526040902094909455505050505050565b80826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161108991815260200190565b6001805463ffffffff19811663ffffffff918216830182169081178355600081815260066020908152604080832080546001600160a01b0319166001600160a01b038916908117909155835260098083528184208054868652600a8552928520839055908352958101865594825281206008850401805460079095166004026101000a9384021990941692820292909217909255611ad99083836119af565b919050565b80600003611aea575050565b80600103611afb57610b9782611a3a565b6001546001600160a01b03831660009081526009602052604081205463ffffffff90921691905b83811015611bbf57600192830163ffffffff818116600081815260066020908152604080832080546001600160a01b0319166001600160a01b038d16908117909155600a8352818420899055835260098252822080549889018155825281206008880401805460079098166004026101000a93840219909716928202929092179095559093611bb3919087906119af565b60019182019101611b22565b50506001805463ffffffff19811663ffffffff9182169490940116929092179091555050565b6001600160e01b031981168114610a5257600080fd5b600060208284031215611c0d57600080fd5b81356109e881611be5565b60005b83811015611c33578181015183820152602001611c1b565b50506000910152565b60008151808452611c54816020860160208601611c18565b601f01601f19169290920160200192915050565b6020815260006109e86020830184611c3c565b600060208284031215611c8d57600080fd5b5035919050565b80356001600160a01b0381168114611ad957600080fd5b60008060408385031215611cbe57600080fd5b611cc783611c94565b946020939093013593505050565b600060208284031215611ce757600080fd5b6109e882611c94565b6020808252825182820181905260009190848201906040850190845b81811015611d2e57835163ffffffff1683529284019291840191600101611d0c565b50909695505050505050565b600080600060608486031215611d4f57600080fd5b611d5884611c94565b9250611d6660208501611c94565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611da757611da7611d76565b604051601f8501601f19908116603f01168101908282118183101715611dcf57611dcf611d76565b81604052809350858152868686011115611de857600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611e1457600080fd5b813567ffffffffffffffff811115611e2b57600080fd5b8201601f81018413611e3c57600080fd5b6117ff84823560208401611d8c565b80358015158114611ad957600080fd5b600060208284031215611e6d57600080fd5b6109e882611e4b565b60008060408385031215611e8957600080fd5b611e9283611c94565b9150611ea060208401611e4b565b90509250929050565b60008060008060808587031215611ebf57600080fd5b611ec885611c94565b9350611ed660208601611c94565b925060408501359150606085013567ffffffffffffffff811115611ef957600080fd5b8501601f81018713611f0a57600080fd5b611f1987823560208401611d8c565b91505092959194509250565b60008060408385031215611f3857600080fd5b611f4183611c94565b9150611ea060208401611c94565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611fa0578160001904821115611f8657611f86611f4f565b80851615611f9357918102915b93841c9390800290611f6a565b509250929050565b600082611fb75750600161069d565b81611fc45750600061069d565b81600181146107cc5760028103611ff15760ff841115611fe657611fe6611f4f565b50506001821b61069d565b5060208310610133831016604e8410600b8410161715612014575081810a61069d565b61201e8383611f65565b806000190482111561203257612032611f4f565b029392505050565b60006109e88383611fa8565b8082018082111561069d5761069d611f4f565b808202811582820484141761069d5761069d611f4f565b6020808252818101527f5350543734313a20596f7520646f6e2774206861766520746865207269676874604082015260600190565b6020808252601190820152702737ba103a3432903232bb32b637b832b960791b604082015260600190565b6000602082840312156120e257600080fd5b81516109e881611be5565b600181811c9082168061210157607f821691505b60208210810361212157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610b9757600081815260208120601f850160051c8101602086101561214e5750805b601f850160051c820191505b8181101561216d5782815560010161215a565b505050505050565b815167ffffffffffffffff81111561218f5761218f611d76565b6121a38161219d84546120ed565b84612127565b602080601f8311600181146121d857600084156121c05750858301515b600019600386901b1c1916600185901b17855561216d565b600085815260208120601f198616915b82811015612207578886015182559484019460019091019084016121e8565b50858210156122255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061226890830184611c3c565b9695505050505050565b8181038181111561069d5761069d611f4f565b6000808454612293816120ed565b600182811680156122ab57600181146122c0576122ef565b60ff19841687528215158302870194506122ef565b8860005260208060002060005b858110156122e65781548a8201529084019082016122cd565b50505082870194505b505050508351612303818360208801611c18565b64173539b7b760d91b9101908152600501949350505050565b634e487b7160e01b600052601260045260246000fd5b6000826123415761234161231c565b500690565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000826123815761238161231c565b500490565b60006001820161239857612398611f4f565b5060010190565b60ff818116838216019081111561069d5761069d611f4f56fea26469706673582212202cea7637dff09723a98309e2dfec4c7e35963cdc338db8c0c78b2d61a40d95da64736f6c63430008140033
0x61010060405260436080818152906200276260a03960009062000023908262000154565b506003805460ff60a81b191690553480156200003e57600080fd5b506200004d6008600a62000335565b6001805463ffffffff191663ffffffff92909216919091179055620000756008600a62000335565b62000083906106cd6200034a565b33600081815260086020526040902091909155600380546001600160a01b031916909117905562000364565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000da57607f821691505b602082108103620000fb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200014f57600081815260208120601f850160051c810160208610156200012a5750805b601f850160051c820191505b818110156200014b5782815560010162000136565b5050505b505050565b81516001600160401b03811115620001705762000170620000af565b6200018881620001818454620000c5565b8462000101565b602080601f831160018114620001c05760008415620001a75750858301515b600019600386901b1c1916600185901b1785556200014b565b600085815260208120601f198616915b82811015620001f157888601518255948401946001909101908401620001d0565b5085821015620002105787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002775781600019048211156200025b576200025b62000220565b808516156200026957918102915b93841c93908002906200023b565b509250929050565b60008262000290575060016200032f565b816200029f575060006200032f565b8160018114620002b85760028114620002c357620002e3565b60019150506200032f565b60ff841115620002d757620002d762000220565b50506001821b6200032f565b5060208310610133831016604e8410600b841016171562000308575081810a6200032f565b62000314838362000236565b80600019048211156200032b576200032b62000220565b0290505b92915050565b60006200034383836200027f565b9392505050565b80820281158282048414176200032f576200032f62000220565b6123ee80620003746000396000f3fe6080604052600436106101cd5760003560e01c80636bcef9a6116100f7578063a563833b11610095578063c87b56dd11610064578063c87b56dd1461057a578063dd62ed3e1461059a578063e985e9c5146105e0578063f835ab001461060057600080fd5b8063a563833b14610505578063a9059cbb14610526578063b3720c3414610546578063b88d4fde1461056757600080fd5b806388a8c95c116100d157806388a8c95c1461047957806391cca3db1461049957806395d89b41146104b9578063a22cb465146104e557600080fd5b80636bcef9a6146104195780636c0360eb1461042e57806370a082311461044357600080fd5b806323b872dd1161016f5780634f02c4201161013e5780634f02c4201461038657806355f804b3146103a35780636352211e146103c35780636a21f8e1146103f957600080fd5b806323b872dd14610328578063313ce567146103485780633ccfd60b1461035c57806342842e0e1461037357600080fd5b8063095ea7b3116101ab578063095ea7b31461028357806318148f1b146102a357806318160ddd146102d05780631a72b87d146102f357600080fd5b806301ffc9a7146101d257806306fdde0314610207578063081812fc1461024b575b600080fd5b3480156101de57600080fd5b506101f26101ed366004611bfb565b61063b565b60405190151581526020015b60405180910390f35b34801561021357600080fd5b50604080518082019091526012815271537061636520506f702054726f6f7065727360701b60208201525b6040516101fe9190611c68565b34801561025757600080fd5b5061026b610266366004611c7b565b6106a3565b6040516001600160a01b0390911681526020016101fe565b34801561028f57600080fd5b506101f261029e366004611cab565b6106e0565b3480156102af57600080fd5b506102c36102be366004611cd5565b610810565b6040516101fe9190611cf0565b3480156102dc57600080fd5b506102e56108a8565b6040519081526020016101fe565b3480156102ff57600080fd5b5061031361030e366004611cab565b6108c7565b60405163ffffffff90911681526020016101fe565b34801561033457600080fd5b506101f2610343366004611d3a565b610910565b34801561035457600080fd5b5060086102e5565b34801561036857600080fd5b506103716109ef565b005b610371610381366004611d3a565b610a55565b34801561039257600080fd5b506001546103139063ffffffff1681565b3480156103af57600080fd5b506103716103be366004611e02565b610b9c565b3480156103cf57600080fd5b5061026b6103de366004611c7b565b6006602052600090815260409020546001600160a01b031681565b34801561040557600080fd5b50610371610414366004611e5b565b610bd6565b34801561042557600080fd5b50610371610c1e565b34801561043a57600080fd5b5061023e610c69565b34801561044f57600080fd5b506102e561045e366004611cd5565b6001600160a01b031660009081526008602052604090205490565b34801561048557600080fd5b50610371610494366004611cd5565b610cf7565b3480156104a557600080fd5b5060035461026b906001600160a01b031681565b3480156104c557600080fd5b5060408051808201909152600381526214d41560ea1b602082015261023e565b3480156104f157600080fd5b50610371610500366004611e76565b610d43565b34801561051157600080fd5b506003546101f290600160a01b900460ff1681565b34801561053257600080fd5b506101f2610541366004611cab565b610d7d565b34801561055257600080fd5b506003546101f290600160a81b900460ff1681565b610371610575366004611ea9565b610dcc565b34801561058657600080fd5b5061023e610595366004611c7b565b610f00565b3480156105a657600080fd5b506102e56105b5366004611f25565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105ec57600080fd5b506101f26105fb366004611f25565b610fd0565b34801561060c57600080fd5b5061037161061b366004611e5b565b336000908152600b60205260409020805460ff1916911515919091179055565b600354600090600160a01b900460ff16801561066757506380ac58cd60e01b6001600160e01b03198316145b8061068257506301ffc9a760e01b6001600160e01b03198316145b8061069d57506336372b0760e01b6001600160e01b03198316145b92915050565b6000818152600660205260408120546001600160a01b03166106c457600080fd5b506000908152600760205260409020546001600160a01b031690565b60006106ee6008600a61203a565b8211801561071457506106cd6107066008600a61203a565b6107109190612046565b8211155b156107d6576000828152600660205260409020546001600160a01b031633811480159061074857506107468133610fd0565b155b1561079a5760405162461bcd60e51b815260206004820152601c60248201527f5350543734313a20596f7520617265206e6f7420617070726f7665640000000060448201526064015b60405180910390fd5b600083815260076020526040902080546001600160a01b0319166001600160a01b0386161790556107cc818585610ffe565b600191505061069d565b3360008181526005602090815260408083206001600160a01b03881684529091529020839055610807908484611044565b50600192915050565b6001600160a01b03811660009081526009602090815260409182902080548351818402810184019094528084526060939283018282801561089c57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff168152602001906004019060208260030104928301926001038202915080841161085f5790505b50505050509050919050565b60006108b66008600a61203a565b6108c2906106cd612059565b905090565b600960205281600052604060002081815481106108e357600080fd5b9060005260206000209060089182820401919006600402915091509054906101000a900463ffffffff1681565b600061091e6008600a61203a565b8211801561094457506106cd6109366008600a61203a565b6109409190612046565b8211155b156109ce57336001600160a01b03851614806109795750610964826106a3565b6001600160a01b0316336001600160a01b0316145b8061098957506109898433610fd0565b6109a55760405162461bcd60e51b815260040161079190612070565b6109b0848484611096565b6109c684846109c16008600a61203a565b611165565b5060016109e8565b6109d98433846111bb565b6109e4848484611271565b5060015b9392505050565b6003546001600160a01b03163314610a195760405162461bcd60e51b8152600401610791906120a5565b6003546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610a52573d6000803e3d6000fd5b50565b336001600160a01b0384161480610a855750610a70816106a3565b6001600160a01b0316336001600160a01b0316145b80610a955750610a958333610fd0565b610ab15760405162461bcd60e51b815260040161079190612070565b610abc838383611096565b610acd83836109c16008600a61203a565b6001600160a01b0382163b15801590610b795750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c91906120d0565b6001600160e01b03191614155b15610b97576040516301d6c93560e61b815260040160405180910390fd5b505050565b6003546001600160a01b03163314610bc65760405162461bcd60e51b8152600401610791906120a5565b6000610bd28282612175565b5050565b6003546001600160a01b03163314610c005760405162461bcd60e51b8152600401610791906120a5565b60038054911515600160a81b0260ff60a81b19909216919091179055565b6003546001600160a01b03163314610c485760405162461bcd60e51b8152600401610791906120a5565b6003805460ff60a01b198116600160a01b9182900460ff1615909102179055565b60008054610c76906120ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca2906120ed565b8015610cef5780601f10610cc457610100808354040283529160200191610cef565b820191906000526020600020905b815481529060010190602001808311610cd257829003601f168201915b505050505081565b6003546001600160a01b03163314610d215760405162461bcd60e51b8152600401610791906120a5565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526004602090815260408083206001600160a01b03871684529091529020805460ff1916831515179055610bd29083836116b7565b600081815260066020526040812054336001600160a01b0390911603610dc157610da8338484611096565b610db933846109c16008600a61203a565b50600161069d565b610807338484611271565b336001600160a01b0385161480610dfc5750610de7826106a3565b6001600160a01b0316336001600160a01b0316145b80610e0c5750610e0c8433610fd0565b610e285760405162461bcd60e51b815260040161079190612070565b610e33848484611096565b610e4484846109c16008600a61203a565b6001600160a01b0383163b15801590610edc5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610e8c903390899088908890600401612235565b6020604051808303816000875af1158015610eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecf91906120d0565b6001600160e01b03191614155b15610efa576040516301d6c93560e61b815260040160405180910390fd5b50505050565b60606106cd610f116008600a61203a565b610f1b9190612046565b821115610f5f5760405162461bcd60e51b815260206004820152601260248201527114d4150dcd0c4e881a5b9d985b1a59081a5960721b6044820152606401610791565b60008054610f6c906120ed565b9050600003610f8957505060408051602081019091526000815290565b6000610fa9610f9a6008600a61203a565b610fa49085612272565b6116fe565b604051602001610fba929190612285565b6040516020818303038152906040529050919050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b80826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b816001600160a01b0316836001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161108991815260200190565b60405180910390a3505050565b63ffffffff81166000908152600660205260409020546001600160a01b038481169116146111065760405162461bcd60e51b815260206004820152601760248201527f5350543734313a20496e636f7272656374206f776e65720000000000000000006044820152606401610791565b63ffffffff8116600090815260076020908152604080832080546001600160a01b0319908116909155600690925290912080549091166001600160a01b038416179055611154838383611807565b610b9783838363ffffffff166119af565b6001600160a01b0383166000908152600860205260408120805483929061118d908490612272565b90915550506001600160a01b0382166000908152600860205260409020805482019055610b978383836119f5565b6001600160a01b038084166000908152600560209081526040808320938616835292905220548111156112305760405162461bcd60e51b815260206004820152601e60248201527f5350543734313a20696e73756666696369656e7420616c6c6f77616e636500006044820152606401610791565b6001600160a01b03808416600090815260056020908152604080832093861683529290529081208054839290611267908490612272565b9091555050505050565b6001600160a01b0383166000908152600860205260409020548111156112e95760405162461bcd60e51b815260206004820152602760248201527f5350543734313a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b6064820152608401610791565b60006112f76008600a61203a565b6001600160a01b03851660009081526008602052604090205461131a9190612332565b9050600061132a6008600a61203a565b6001600160a01b03851660009081526008602052604090205461134d9190612332565b905061135a858585611165565b60006113686008600a61203a565b6001600160a01b03871660009081526008602052604090205461138b9190612332565b9050600061139b6008600a61203a565b6001600160a01b0387166000908152600860205260409020546113be9190612332565b6001600160a01b038816600090815260096020526040902090915060028386101561146a5781541561146a576000826000815481106113ff576113ff612346565b60009182526020808320600880840490910154865460018101885587865292852091830490910180546007948516600490810261010090810a90940463ffffffff908116969095160290920a8481029302199091169190911790559150611468908b9083611096565b505b8285111561151a5780541561150f576114cc60008983600185805490506114919190612272565b815481106114a1576114a1612346565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16611096565b808054806114dc576114dc61235c565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a0219169055905561151a565b61151888611a3a565b505b60006115286008600a61203a565b6115329089612372565b6003549091506001600160a01b038b81169116148061155a5750600354600160a81b900460ff165b8061157d57506001600160a01b0389166000908152600b602052604090205460ff165b806115a057506001600160a01b038a166000908152600b602052604090205460ff165b156115b15750505050505050505050565b80156116ab5782548082106115c657806115c8565b815b905060005b818110156115ff576115ed8c8c876000815481106114a1576114a1612346565b806115f781612386565b9150506115cd565b5061160a8183612272565b8354909250905080821061161e5780611620565b815b905060005b818110156116955761164560008c86600188805490506114919190612272565b838054806116555761165561235c565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a021916905590558061168d81612386565b915050611625565b506116a98a6116a48385612272565b611ade565b505b50505050505050505050565b816001600160a01b0316836001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611089911515815260200190565b6060816000036117255750506040805180820190915260018152600360fc1b602082015290565b8160005b811561174f578061173981612386565b91506117489050600a83612372565b9150611729565b60008167ffffffffffffffff81111561176a5761176a611d76565b6040519080825280601f01601f191660200182016040528015611794576020820181803683370190505b5090505b84156117ff576117a9600183612272565b91506117b6600a86612332565b6117c190603061239f565b60f81b8183815181106117d6576117d6612346565b60200101906001600160f81b031916908160001a9053506117f8600a86612372565b9450611798565b949350505050565b63ffffffff81166000908152600a60209081526040808320546001600160a01b0387168452600990925282208054919290919082611846600184612272565b8154811061185657611856612346565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1690508083858154811061189157611891612346565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff160217905550828054806118d4576118d461235c565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a0219169055905561190d600183612272565b1561192b5763ffffffff81166000908152600a602052604090208490555b6001600160a01b038616600081815260096020908152604082208054600180820183558285529284206008820401805460079092166004026101000a63ffffffff81810219909316928c160291909117905592909152905461198d9190612272565b63ffffffff9095166000908152600a6020526040902094909455505050505050565b80826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161108991815260200190565b6001805463ffffffff19811663ffffffff918216830182169081178355600081815260066020908152604080832080546001600160a01b0319166001600160a01b038916908117909155835260098083528184208054868652600a8552928520839055908352958101865594825281206008850401805460079095166004026101000a9384021990941692820292909217909255611ad99083836119af565b919050565b80600003611aea575050565b80600103611afb57610b9782611a3a565b6001546001600160a01b03831660009081526009602052604081205463ffffffff90921691905b83811015611bbf57600192830163ffffffff818116600081815260066020908152604080832080546001600160a01b0319166001600160a01b038d16908117909155600a8352818420899055835260098252822080549889018155825281206008880401805460079098166004026101000a93840219909716928202929092179095559093611bb3919087906119af565b60019182019101611b22565b50506001805463ffffffff19811663ffffffff9182169490940116929092179091555050565b6001600160e01b031981168114610a5257600080fd5b600060208284031215611c0d57600080fd5b81356109e881611be5565b60005b83811015611c33578181015183820152602001611c1b565b50506000910152565b60008151808452611c54816020860160208601611c18565b601f01601f19169290920160200192915050565b6020815260006109e86020830184611c3c565b600060208284031215611c8d57600080fd5b5035919050565b80356001600160a01b0381168114611ad957600080fd5b60008060408385031215611cbe57600080fd5b611cc783611c94565b946020939093013593505050565b600060208284031215611ce757600080fd5b6109e882611c94565b6020808252825182820181905260009190848201906040850190845b81811015611d2e57835163ffffffff1683529284019291840191600101611d0c565b50909695505050505050565b600080600060608486031215611d4f57600080fd5b611d5884611c94565b9250611d6660208501611c94565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611da757611da7611d76565b604051601f8501601f19908116603f01168101908282118183101715611dcf57611dcf611d76565b81604052809350858152868686011115611de857600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611e1457600080fd5b813567ffffffffffffffff811115611e2b57600080fd5b8201601f81018413611e3c57600080fd5b6117ff84823560208401611d8c565b80358015158114611ad957600080fd5b600060208284031215611e6d57600080fd5b6109e882611e4b565b60008060408385031215611e8957600080fd5b611e9283611c94565b9150611ea060208401611e4b565b90509250929050565b60008060008060808587031215611ebf57600080fd5b611ec885611c94565b9350611ed660208601611c94565b925060408501359150606085013567ffffffffffffffff811115611ef957600080fd5b8501601f81018713611f0a57600080fd5b611f1987823560208401611d8c565b91505092959194509250565b60008060408385031215611f3857600080fd5b611f4183611c94565b9150611ea060208401611c94565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611fa0578160001904821115611f8657611f86611f4f565b80851615611f9357918102915b93841c9390800290611f6a565b509250929050565b600082611fb75750600161069d565b81611fc45750600061069d565b81600181146107cc5760028103611ff15760ff841115611fe657611fe6611f4f565b50506001821b61069d565b5060208310610133831016604e8410600b8410161715612014575081810a61069d565b61201e8383611f65565b806000190482111561203257612032611f4f565b029392505050565b60006109e88383611fa8565b8082018082111561069d5761069d611f4f565b808202811582820484141761069d5761069d611f4f565b6020808252818101527f5350543734313a20596f7520646f6e2774206861766520746865207269676874604082015260600190565b6020808252601190820152702737ba103a3432903232bb32b637b832b960791b604082015260600190565b6000602082840312156120e257600080fd5b81516109e881611be5565b600181811c9082168061210157607f821691505b60208210810361212157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610b9757600081815260208120601f850160051c8101602086101561214e5750805b601f850160051c820191505b8181101561216d5782815560010161215a565b505050505050565b815167ffffffffffffffff81111561218f5761218f611d76565b6121a38161219d84546120ed565b84612127565b602080601f8311600181146121d857600084156121c05750858301515b600019600386901b1c1916600185901b17855561216d565b600085815260208120601f198616915b82811015612207578886015182559484019460019091019084016121e8565b50858210156122255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061226890830184611c3c565b9695505050505050565b8181038181111561069d5761069d611f4f565b6000808454612293816120ed565b600182811680156122ab57600181146122c0576122ef565b60ff19841687528215158302870194506122ef565b8860005260208060002060005b858110156122e65781548a8201529084019082016122cd565b50505082870194505b505050508351612303818360208801611c18565b64173539b7b760d91b9101908152600501949350505050565b634e487b7160e01b600052601260045260246000fd5b6000826123415761234161231c565b500690565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000826123815761238161231c565b500490565b60006001820161239857612398611f4f565b5060010190565b60ff818116838216019081111561069d5761069d611f4f56fea26469706673582212202cea7637dff09723a98309e2dfec4c7e35963cdc338db8c0c78b2d61a40d95da64736f6c63430008140033697066733a2f2f6261667962656964736b6779746573337a6e34676532796f656a61686e6c37676d6c73757769726732637a73756a6878627a6377727468757574692f