0xfc36a67ae2a5656a995a6c08deb979b2232acfc8d198ff08f2caa886e9b759de608060405234801561001057600080fd5b506137e3806100206000396000f3fe608060405234801561001057600080fd5b50600436106102315760003560e01c80639065714711610130578063ac9650d8116100b8578063d547741f1161007c578063d547741f1461058e578063e8a3d485146105a1578063e985e9c5146105a9578063f242432a146105d7578063f5298aca146105ea57600080fd5b8063ac9650d8146104f6578063b03f452814610516578063b24f2d3914610529578063bd85b03914610547578063d53913931461056757600080fd5b806395d89b41116100ff57806395d89b41146104ad5780639bcf7a15146104b5578063a217fddf146104c8578063a22cb465146104d0578063a32fa5b3146104e357600080fd5b8063906571471461043b57806391d148541461044e578063938e3d7b14610487578063949c09f71461049a57600080fd5b80632f2ff15d116101be578063600dd5ea11610182578063600dd5ea146103cf57806363b45e2d146103e25780636b20c454146103ea57806383040532146103fd5780638da5cb5b1461042057600080fd5b80632f2ff15d1461034c57806336568abe1461035f5780633b1475a7146103725780634cc157df1461037a5780634e1273f4146103af57600080fd5b806313af40351161020557806313af4035146102bf5780632419f51b146102d4578063248a9ca3146102e75780632a55205a146103075780632eb2c2d61461033957600080fd5b8062fdd58e1461023657806301ffc9a71461027457806306fdde03146102975780630e89341c146102ac575b600080fd5b610261610244366004612a3e565b600360209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b610287610282366004612a7e565b6105fd565b604051901515815260200161026b565b61029f61066a565b60405161026b9190612aeb565b61029f6102ba366004612afe565b6106f8565b6102d26102cd366004612b17565b6107e6565b005b6102616102e2366004612afe565b610817565b6102616102f5366004612afe565b60009081526010602052604090205490565b61031a610315366004612b32565b61086e565b604080516001600160a01b03909316835260208301919091520161026b565b6102d2610347366004612c9d565b6108ab565b6102d261035a366004612d46565b61093a565b6102d261036d366004612d46565b6109b7565b600d54610261565b61038d610388366004612afe565b6109fb565b604080516001600160a01b03909316835261ffff90911660208301520161026b565b6103c26103bd366004612d72565b610a66565b60405161026b9190612e77565b6102d26103dd366004612a3e565b610b7a565b600a54610261565b6102d26103f8366004612e8a565b610ba9565b61028761040b366004612afe565b600c6020526000908152604090205460ff1681565b6007546040516001600160a01b03909116815260200161026b565b6102d2610449366004612efd565b610d4b565b61028761045c366004612d46565b6000918252600f602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6102d2610495366004612f66565b610d90565b6102d26104a8366004612f9a565b610dbe565b61029f610fe3565b6102d26104c3366004613032565b610ff0565b610261600081565b6102d26104de366004613067565b611020565b6102876104f1366004612d46565b6110d8565b6105096105043660046130a3565b61112e565b60405161026b9190613117565b6102d2610524366004613179565b61129d565b6008546001600160a01b03811690600160a01b900461ffff1661038d565b610261610555366004612afe565b600e6020526000908152604090205481565b6102617f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102d261059c366004612d46565b6113ba565b61029f6113d3565b6102876105b73660046131d7565b600460209081526000928352604080842090915290825290205460ff1681565b6102d26105e5366004613201565b6113e0565b6102d26105f8366004613265565b611468565b60006301ffc9a760e01b6001600160e01b03198316148061062e5750636cdb3d1360e11b6001600160e01b03198316145b8061064957506303a24d0760e21b6001600160e01b03198316145b8061066457506001600160e01b0319821663152a902d60e11b145b92915050565b6001805461067790613298565b80601f01602080910402602001604051908101604052809291908181526020018280546106a390613298565b80156106f05780601f106106c5576101008083540402835291602001916106f0565b820191906000526020600020905b8154815290600101906020018083116106d357829003601f168201915b505050505081565b60008181526005602052604081208054606092919061071690613298565b80601f016020809104026020016040519081016040528092919081815260200182805461074290613298565b801561078f5780601f106107645761010080835404028352916020019161078f565b820191906000526020600020905b81548152906001019060200180831161077257829003601f168201915b505050505090506000815111156107a65792915050565b60006107b18461155d565b9050806107bd856116db565b6040516020016107ce9291906132d2565b60405160208183030381529060405292505050919050565b6107ee6117e3565b61080b576040516316ccb9cb60e11b815260040160405180910390fd5b61081481611810565b50565b6000610822600a5490565b821061084957604051630793127760e11b8152600481018390526024015b60405180910390fd5b600a828154811061085c5761085c613301565b90600052602060002001549050919050565b60008060008061087d866109fb565b90945084925061ffff169050612710610896828761332d565b6108a0919061335a565b925050509250929050565b6001600160a01b0385163314806108e557506001600160a01b038516600090815260046020908152604080832033845290915290205460ff165b6109265760405162461bcd60e51b81526020600482015260126024820152710853d5d3915497d3d497d054141493d5915160721b6044820152606401610840565b6109338585858585611862565b5050505050565b6000828152601060205260409020546109539033611a15565b6000828152600f602090815260408083206001600160a01b038516845290915290205460ff16156109a957604051636a4e0b3560e11b81526001600160a01b038216600482015260248101839052604401610840565b6109b38282611a6a565b5050565b336001600160a01b038216146109f1576040516320b4e31160e11b81523360048201526001600160a01b0382166024820152604401610840565b6109b38282611ac5565b6000818152600960209081526040808320815180830190925280546001600160a01b031680835260019091015492820192909252829115610a425780516020820151610a5c565b6008546001600160a01b03811690600160a01b900461ffff165b9250925050915091565b60608151835114610a895760405162461bcd60e51b81526004016108409061336e565b600083516001600160401b03811115610aa457610aa4612b54565b604051908082528060200260200182016040528015610acd578160200160208202803683370190505b50905060005b8451811015610b725760036000868381518110610af257610af2613301565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000858381518110610b2e57610b2e613301565b6020026020010151815260200190815260200160002054828281518110610b5757610b57613301565b6020908102919091010152610b6b81613397565b9050610ad3565b509392505050565b610b826117e3565b610b9f57604051636fae358160e11b815260040160405180910390fd5b6109b38282611b27565b336001600160a01b038416811480610be657506001600160a01b0380851660009081526004602090815260408083209385168352929052205460ff165b610c265760405162461bcd60e51b81526020600482015260116024820152702ab730b8383937bb32b21031b0b63632b960791b6044820152606401610840565b8151835114610c695760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b6044820152606401610840565b60005b8351811015610d3957828181518110610c8757610c87613301565b602002602001015160036000876001600160a01b03166001600160a01b031681526020019081526020016000206000868481518110610cc857610cc8613301565b60200260200101518152602001908152602001600020541015610d275760405162461bcd60e51b8152602060048201526017602482015276139bdd08195b9bdd59da081d1bdad95b9cc81bdddb9959604a1b6044820152606401610840565b610d326001826133b0565b9050610c6c565b50610d45848484611bb7565b50505050565b610d56838383611d6c565b610d807f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a684611a6a565b610d8b600084611a6a565b505050565b610d986117e3565b610db557604051639f7f092560e01b815260040160405180910390fd5b61081481611e8a565b3360009081527f3ac2ae920192ffec1f2616e363ccfeffb7844a5d9224b2df5eacfefada837607602052604090205460ff16610e365760405162461bcd60e51b81526020600482015260176024820152762737ba1030baba3437b934bd32b2103a379036b4b73a1760491b6044820152606401610840565b6000825111610e7e5760405162461bcd60e51b815260206004820152601460248201527326b4b73a34b733903d32b937903a37b5b2b7399760611b6044820152606401610840565b8151835114610ec25760405162461bcd60e51b815260206004820152601060248201526f2632b733ba341036b4b9b6b0ba31b41760811b6044820152606401610840565b6000610ecd600d5490565b9050806000805b8651811015610fa357600019878281518110610ef257610ef2613301565b602002602001015103610f3c5783878281518110610f1257610f12613301565b6020908102919091010152610f286001856133b0565b9350610f356001836133b0565b9150610f91565b83878281518110610f4f57610f4f613301565b602002602001015110610f915760405162461bcd60e51b815260206004820152600a6024820152691a5b9d985b1a59081a5960b21b6044820152606401610840565b610f9c6001826133b0565b9050610ed4565b508015610fb857610fb5828286611f66565b50505b82600d81905550610fda87878760405180602001604052806000815250611fca565b50505050505050565b6002805461067790613298565b610ff86117e3565b61101557604051636fae358160e11b815260040160405180910390fd5b610d8b838383612125565b336001600160a01b038316810361106a5760405162461bcd60e51b815260206004820152600e60248201526d20a8282927ab24a723afa9a2a62360911b6044820152606401610840565b6001600160a01b03818116600081815260046020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191015b60405180910390a3505050565b6000828152600f6020908152604080832083805290915281205460ff1661112557506000828152600f602090815260408083206001600160a01b038516845290915290205460ff16610664565b50600192915050565b6060816001600160401b0381111561114857611148612b54565b60405190808252806020026020018201604052801561117b57816020015b60608152602001906001900390816111665790505b509050336000805b84811015611294578115611202576111e0308787848181106111a7576111a7613301565b90506020028101906111b991906133c3565b866040516020016111cc93929190613410565b6040516020818303038152906040526121d0565b8482815181106111f2576111f2613301565b6020026020010181905250611282565b6112643087878481811061121857611218613301565b905060200281019061122a91906133c3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506121d092505050565b84828151811061127657611276613301565b60200260200101819052505b8061128c81613397565b915050611183565b50505092915050565b3360009081527f3ac2ae920192ffec1f2616e363ccfeffb7844a5d9224b2df5eacfefada837607602052604090205460ff166113155760405162461bcd60e51b81526020600482015260176024820152762737ba1030baba3437b934bd32b2103a379036b4b73a1760491b6044820152606401610840565b600080611321600d5490565b90506000198503611357578091506001600d600082825461134291906133b0565b90915550611352905081856121fc565b611397565b8085106113935760405162461bcd60e51b815260206004820152600a6024820152691a5b9d985b1a59081a5960b21b6044820152606401610840565b8491505b6113b286838560405180602001604052806000815250612214565b505050505050565b6000828152601060205260409020546109f19033611a15565b6006805461067790613298565b6001600160a01b03851633148061141a57506001600160a01b038516600090815260046020908152604080832033845290915290205460ff165b61145b5760405162461bcd60e51b81526020600482015260126024820152710853d5d3915497d3d497d054141493d5915160721b6044820152606401610840565b61093385858585856122ed565b336001600160a01b0384168114806114a557506001600160a01b0380851660009081526004602090815260408083209385168352929052205460ff165b6114e55760405162461bcd60e51b81526020600482015260116024820152702ab730b8383937bb32b21031b0b63632b960791b6044820152606401610840565b6001600160a01b03841660009081526003602090815260408083208684529091529020548211156115525760405162461bcd60e51b8152602060048201526017602482015276139bdd08195b9bdd59da081d1bdad95b9cc81bdddb9959604a1b6044820152606401610840565b610d45848484612413565b6060600061156a600a5490565b90506000600a8054806020026020016040519081016040528092919081815260200182805480156115ba57602002820191906000526020600020905b8154815260200190600101908083116115a6575b5050505050905060005b828110156116be578181815181106115de576115de613301565b60200260200101518510156116ac57600b600083838151811061160357611603613301565b60200260200101518152602001908152602001600020805461162490613298565b80601f016020809104026020016040519081016040528092919081815260200182805461165090613298565b801561169d5780601f106116725761010080835404028352916020019161169d565b820191906000526020600020905b81548152906001019060200180831161168057829003601f168201915b50505050509350505050919050565b6116b76001826133b0565b90506115c4565b506040516309797f6960e21b815260048101859052602401610840565b6060816000036117025750506040805180820190915260018152600360fc1b602082015290565b8160005b811561172c578061171681613397565b91506117259050600a8361335a565b9150611706565b6000816001600160401b0381111561174657611746612b54565b6040519080825280601f01601f191660200182016040528015611770576020820181803683370190505b5090505b84156117db57611785600183613436565b9150611792600a86613449565b61179d9060306133b0565b60f81b8183815181106117b2576117b2613301565b60200101906001600160f81b031916908160001a9053506117d4600a8661335a565b9450611774565b949350505050565b60006117f76007546001600160a01b031690565b6001600160a01b0316336001600160a01b031614905090565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a35050565b81518351146118835760405162461bcd60e51b81526004016108409061336e565b6001600160a01b0384166118a95760405162461bcd60e51b81526004016108409061345d565b336118b8818787878787612538565b60005b84518110156119af5760008582815181106118d8576118d8613301565b6020026020010151905060008583815181106118f6576118f6613301565b6020908102919091018101516001600160a01b038b1660009081526003835260408082208683529093529190912054909150818110156119485760405162461bcd60e51b815260040161084090613483565b6001600160a01b03808b16600090815260036020818152604080842088855282528084208787039055938d168352908152828220868352905290812080548492906119949084906133b0565b92505081905550505050806119a890613397565b90506118bb565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516119ff9291906134ad565b60405180910390a46113b2818787878787612586565b6000828152600f602090815260408083206001600160a01b038516845290915290205460ff166109b35760405163043c588360e11b81526001600160a01b038216600482015260248101839052604401610840565b6000828152600f602090815260408083206001600160a01b0385168085529252808320805460ff1916600117905551339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b611acf8282611a15565b6000828152600f602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b612710811115611b5557604051630a4930ad60e31b8152612710600482015260248101829052604401610840565b600880546001600160a01b0384166001600160b01b03199091168117600160a01b61ffff851602179091556040518281527f90d7ec04bcb8978719414f82e52e4cb651db41d0e6f8cea6118c2191e6183adb9060200160405180910390a25050565b6001600160a01b038316611bfe5760405162461bcd60e51b815260206004820152600e60248201526d232927a6afad22a927afa0a2222960911b6044820152606401610840565b8051825114611c1f5760405162461bcd60e51b81526004016108409061336e565b6000339050611c4281856000868660405180602001604052806000815250612538565b60005b8351811015611d0d576000848281518110611c6257611c62613301565b602002602001015190506000848381518110611c8057611c80613301565b6020908102919091018101516001600160a01b0389166000908152600383526040808220868352909352919091205490915081811015611cd25760405162461bcd60e51b815260040161084090613483565b6001600160a01b0388166000908152600360209081526040808320958352949052929092209103905580611d0581613397565b915050611c45565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d5e9291906134ad565b60405180910390a450505050565b600054610100900460ff1615808015611d8c5750600054600160ff909116105b80611da65750303b158015611da6575060005460ff166001145b611e095760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610840565b6000805460ff191660011790558015611e2c576000805461ff0019166101001790555b611e3683836126d9565b611e3f84611810565b8015610d45576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b600060068054611e9990613298565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec590613298565b8015611f125780601f10611ee757610100808354040283529160200191611f12565b820191906000526020600020905b815481529060010190602001808311611ef557829003601f168201915b505050505090508160069081611f289190613521565b507fc9c7c3fe08b88b4df9d4d47ef47d2c43d55c025a0ba88ca442580ed9e7348a168183604051611f5a9291906135e0565b60405180910390a15050565b600080611f7384866133b0565b600a8054600181019091557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8018190556000818152600b60205260409020909250829150611fc18482613521565b50935093915050565b6001600160a01b038416611ff05760405162461bcd60e51b81526004016108409061345d565b81518351146120115760405162461bcd60e51b81526004016108409061336e565b3361202181600087878787612538565b60005b84518110156120bd5783818151811061203f5761203f613301565b602002602001015160036000886001600160a01b03166001600160a01b03168152602001908152602001600020600087848151811061208057612080613301565b6020026020010151815260200190815260200160002060008282546120a591906133b0565b909155508190506120b581613397565b915050612024565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161210e9291906134ad565b60405180910390a461093381600087878787612586565b61271081111561215357604051630a4930ad60e31b8152612710600482015260248101829052604401610840565b6040805180820182526001600160a01b038481168083526020808401868152600089815260098352869020945185546001600160a01b031916941693909317845591516001909301929092559151838152909185917f7365cf4122f072a3365c20d54eff9b38d73c096c28e1892ec8f5b0e403a0f12d91016110cb565b60606121f58383604051806060016040528060278152602001613787602791396126f2565b9392505050565b6000828152600560205260409020610d8b8282613521565b6001600160a01b03841661223a5760405162461bcd60e51b81526004016108409061345d565b3361225a8160008761224b8861276a565b6122548861276a565b87612538565b6001600160a01b03851660009081526003602090815260408083208784529091528120805485929061228d9084906133b0565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610933816000878787876127b5565b6001600160a01b0384166123135760405162461bcd60e51b81526004016108409061345d565b3361232381878761224b8861276a565b6001600160a01b0386166000908152600360209081526040808320878452909152902054838110156123675760405162461bcd60e51b815260040161084090613483565b6001600160a01b0380881660009081526003602081815260408084208a855282528084208987039055938a168352908152828220888352905290812080548692906123b39084906133b0565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610fda8288888888886127b5565b6001600160a01b03831661245a5760405162461bcd60e51b815260206004820152600e60248201526d232927a6afad22a927afa0a2222960911b6044820152606401610840565b336124898185600061246b8761276a565b6124748761276a565b60405180602001604052806000815250612538565b6001600160a01b0384166000908152600360209081526040808320868452909152902054828110156124cd5760405162461bcd60e51b815260040161084090613483565b6001600160a01b03858116600081815260036020908152604080832089845282528083208887039055805189815291820188905291938616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b6001600160a01b038516158061255557506001600160a01b038416155b1561256d57612568868686868686612892565b6113b2565b60405163a24e573d60e01b815260040160405180910390fd5b6001600160a01b0384163b156113b25760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906125ca9089908990889088908890600401613605565b6020604051808303816000875af1925050508015612605575060408051601f3d908101601f1916820190925261260291810190613663565b60015b61268757612611613680565b806308c379a00361264a575061262561369c565b80612630575061264c565b8060405162461bcd60e51b81526004016108409190612aeb565b505b60405162461bcd60e51b815260206004820152601060248201526f10a2a92198989a9aa922a1a2a4ab22a960811b6044820152606401610840565b6001600160e01b0319811663bc197c8160e01b14610fda5760405162461bcd60e51b815260206004820152600f60248201526e1513d2d15394d7d491529150d51151608a1b6044820152606401610840565b60016126e58382613521565b506002610d8b8282613521565b6060600080856001600160a01b03168560405161270f9190613725565b600060405180830381855af49150503d806000811461274a576040519150601f19603f3d011682016040523d82523d6000602084013e61274f565b606091505b50915091506127608683838761299e565b9695505050505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106127a4576127a4613301565b602090810291909101015292915050565b6001600160a01b0384163b156113b25760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906127f99089908990889088908890600401613741565b6020604051808303816000875af1925050508015612834575060408051601f3d908101601f1916820190925261283191810190613663565b60015b61284057612611613680565b6001600160e01b0319811663f23a6e6160e01b14610fda5760405162461bcd60e51b815260206004820152600f60248201526e1513d2d15394d7d491529150d51151608a1b6044820152606401610840565b6001600160a01b0385166129195760005b8351811015612917578281815181106128be576128be613301565b6020026020010151600e60008684815181106128dc576128dc613301565b60200260200101518152602001908152602001600020600082825461290191906133b0565b90915550612910905081613397565b90506128a3565b505b6001600160a01b0384166113b25760005b8351811015610fda5782818151811061294557612945613301565b6020026020010151600e600086848151811061296357612963613301565b6020026020010151815260200190815260200160002060008282546129889190613436565b90915550612997905081613397565b905061292a565b60608315612a0d578251600003612a06576001600160a01b0385163b612a065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610840565b50816117db565b6117db83838151156126305781518083602001fd5b80356001600160a01b0381168114612a3957600080fd5b919050565b60008060408385031215612a5157600080fd5b612a5a83612a22565b946020939093013593505050565b6001600160e01b03198116811461081457600080fd5b600060208284031215612a9057600080fd5b81356121f581612a68565b60005b83811015612ab6578181015183820152602001612a9e565b50506000910152565b60008151808452612ad7816020860160208601612a9b565b601f01601f19169290920160200192915050565b6020815260006121f56020830184612abf565b600060208284031215612b1057600080fd5b5035919050565b600060208284031215612b2957600080fd5b6121f582612a22565b60008060408385031215612b4557600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715612b8f57612b8f612b54565b6040525050565b60006001600160401b03821115612baf57612baf612b54565b5060051b60200190565b600082601f830112612bca57600080fd5b81356020612bd782612b96565b604051612be48282612b6a565b83815260059390931b8501820192828101915086841115612c0457600080fd5b8286015b84811015612c1f5780358352918301918301612c08565b509695505050505050565b600082601f830112612c3b57600080fd5b81356001600160401b03811115612c5457612c54612b54565b604051612c6b601f8301601f191660200182612b6a565b818152846020838601011115612c8057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215612cb557600080fd5b612cbe86612a22565b9450612ccc60208701612a22565b935060408601356001600160401b0380821115612ce857600080fd5b612cf489838a01612bb9565b94506060880135915080821115612d0a57600080fd5b612d1689838a01612bb9565b93506080880135915080821115612d2c57600080fd5b50612d3988828901612c2a565b9150509295509295909350565b60008060408385031215612d5957600080fd5b82359150612d6960208401612a22565b90509250929050565b60008060408385031215612d8557600080fd5b82356001600160401b0380821115612d9c57600080fd5b818501915085601f830112612db057600080fd5b81356020612dbd82612b96565b604051612dca8282612b6a565b83815260059390931b8501820192828101915089841115612dea57600080fd5b948201945b83861015612e0f57612e0086612a22565b82529482019490820190612def565b96505086013592505080821115612e2557600080fd5b50612e3285828601612bb9565b9150509250929050565b600081518084526020808501945080840160005b83811015612e6c57815187529582019590820190600101612e50565b509495945050505050565b6020815260006121f56020830184612e3c565b600080600060608486031215612e9f57600080fd5b612ea884612a22565b925060208401356001600160401b0380821115612ec457600080fd5b612ed087838801612bb9565b93506040860135915080821115612ee657600080fd5b50612ef386828701612bb9565b9150509250925092565b600080600060608486031215612f1257600080fd5b612f1b84612a22565b925060208401356001600160401b0380821115612f3757600080fd5b612f4387838801612c2a565b93506040860135915080821115612f5957600080fd5b50612ef386828701612c2a565b600060208284031215612f7857600080fd5b81356001600160401b03811115612f8e57600080fd5b6117db84828501612c2a565b60008060008060808587031215612fb057600080fd5b612fb985612a22565b935060208501356001600160401b0380821115612fd557600080fd5b612fe188838901612bb9565b94506040870135915080821115612ff757600080fd5b61300388838901612bb9565b9350606087013591508082111561301957600080fd5b5061302687828801612c2a565b91505092959194509250565b60008060006060848603121561304757600080fd5b8335925061305760208501612a22565b9150604084013590509250925092565b6000806040838503121561307a57600080fd5b61308383612a22565b91506020830135801515811461309857600080fd5b809150509250929050565b600080602083850312156130b657600080fd5b82356001600160401b03808211156130cd57600080fd5b818501915085601f8301126130e157600080fd5b8135818111156130f057600080fd5b8660208260051b850101111561310557600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561316c57603f1988860301845261315a858351612abf565b9450928501929085019060010161313e565b5092979650505050505050565b6000806000806080858703121561318f57600080fd5b61319885612a22565b93506020850135925060408501356001600160401b038111156131ba57600080fd5b6131c687828801612c2a565b949793965093946060013593505050565b600080604083850312156131ea57600080fd5b6131f383612a22565b9150612d6960208401612a22565b600080600080600060a0868803121561321957600080fd5b61322286612a22565b945061323060208701612a22565b9350604086013592506060860135915060808601356001600160401b0381111561325957600080fd5b612d3988828901612c2a565b60008060006060848603121561327a57600080fd5b61328384612a22565b95602085013595506040909401359392505050565b600181811c908216806132ac57607f821691505b6020821081036132cc57634e487b7160e01b600052602260045260246000fd5b50919050565b600083516132e4818460208801612a9b565b8351908301906132f8818360208801612a9b565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761066457610664613317565b634e487b7160e01b600052601260045260246000fd5b60008261336957613369613344565b500490565b6020808252600f908201526e0988a9c8ea890be9a92a69a82a8869608b1b604082015260600190565b6000600182016133a9576133a9613317565b5060010190565b8082018082111561066457610664613317565b6000808335601e198436030181126133da57600080fd5b8301803591506001600160401b038211156133f457600080fd5b60200191503681900382131561340957600080fd5b9250929050565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b8181038181111561066457610664613317565b60008261345857613458613344565b500690565b6020808252600c908201526b2a27afad22a927afa0a2222960a11b604082015260600190565b60208082526010908201526f125394d551919250d251539517d0905360821b604082015260600190565b6040815260006134c06040830185612e3c565b82810360208401526134d28185612e3c565b95945050505050565b601f821115610d8b57600081815260208120601f850160051c810160208610156135025750805b601f850160051c820191505b818110156113b25782815560010161350e565b81516001600160401b0381111561353a5761353a612b54565b61354e816135488454613298565b846134db565b602080601f831160018114613583576000841561356b5750858301515b600019600386901b1c1916600185901b1785556113b2565b600085815260208120601f198616915b828110156135b257888601518255948401946001909101908401613593565b50858210156135d05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6040815260006135f36040830185612abf565b82810360208401526134d28185612abf565b6001600160a01b0386811682528516602082015260a06040820181905260009061363190830186612e3c565b82810360608401526136438186612e3c565b905082810360808401526136578185612abf565b98975050505050505050565b60006020828403121561367557600080fd5b81516121f581612a68565b600060033d11156136995760046000803e5060005160e01c5b90565b600060443d10156136aa5790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156136d957505050505090565b82850191508151818111156136f15750505050505090565b843d870101602082850101111561370b5750505050505090565b61371a60208286010187612b6a565b509095945050505050565b60008251613737818460208701612a9b565b9190910192915050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061377b90830184612abf565b97965050505050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220741daacfaac8e71fd960416da55596eb3272dcab8a915ebe6299fd71ae7fdcfd64736f6c63430008110033