608060405234801561000f575f80fd5b506040518060400160405280600181526020017f33000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f3300000000000000000000000000000000000000000000000000000000000000815250815f908161008a9190610b2e565b50806001908161009a9190610b2e565b5050503360075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100ed335f6100f260201b60201c565b610ca4565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610162575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016101599190610c3c565b60405180910390fd5b5f61017483835f6101eb60201b60201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146101e6575f6040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016101dd9190610c3c565b60405180910390fd5b505050565b5f806101fc8461040860201b60201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146102435761024281848661044160201b60201c565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146102d4576102885f855f8061050a60201b60201c565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461035357600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6104528383836106d560201b60201c565b610505575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104c657806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016104bd9190610c64565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016104fc929190610c7d565b60405180910390fd5b505050565b808061054257505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15610680575f610557846107a160201b60201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156105c157508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156105da57506105d8818461082d60201b60201c565b155b1561061c57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016106139190610c3c565b60405180910390fd5b811561067e57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561079857508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806107535750610752848461082d60201b60201c565b5b8061079757508273ffffffffffffffffffffffffffffffffffffffff1661077f836108bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f806107b28361040860201b60201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361082457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161081b9190610c64565b60405180910390fd5b80915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061096f57607f821691505b6020821081036109825761098161092b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109e47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826109a9565b6109ee86836109a9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610a32610a2d610a2884610a06565b610a0f565b610a06565b9050919050565b5f819050919050565b610a4b83610a18565b610a5f610a5782610a39565b8484546109b5565b825550505050565b5f90565b610a73610a67565b610a7e818484610a42565b505050565b5b81811015610aa157610a965f82610a6b565b600181019050610a84565b5050565b601f821115610ae657610ab781610988565b610ac08461099a565b81016020851015610acf578190505b610ae3610adb8561099a565b830182610a83565b50505b505050565b5f82821c905092915050565b5f610b065f1984600802610aeb565b1980831691505092915050565b5f610b1e8383610af7565b9150826002028217905092915050565b610b37826108f4565b67ffffffffffffffff811115610b5057610b4f6108fe565b5b610b5a8254610958565b610b65828285610aa5565b5f60209050601f831160018114610b96575f8415610b84578287015190505b610b8e8582610b13565b865550610bf5565b601f198416610ba486610988565b5f5b82811015610bcb57848901518255600182019150602085019450602081019050610ba6565b86831015610be85784890151610be4601f891682610af7565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c2682610bfd565b9050919050565b610c3681610c1c565b82525050565b5f602082019050610c4f5f830184610c2d565b92915050565b610c5e81610a06565b82525050565b5f602082019050610c775f830184610c55565b92915050565b5f604082019050610c905f830185610c2d565b610c9d6020830184610c55565b9392505050565b612e0480610cb15f395ff3fe608060405234801561000f575f80fd5b5060043610610135575f3560e01c806370a08231116100b6578063a6f9dae11161007a578063a6f9dae11461034a578063b88d4fde14610366578063c87b56dd14610382578063cec8d542146103b2578063d5609c12146103e3578063e985e9c5146103ff57610135565b806370a08231146102a657806390690c9a146102d657806395d89b41146102f2578063a22cb46514610310578063a2309ff81461032c57610135565b806332cb6b0c116100fd57806332cb6b0c146101ef57806342842e0e1461020d57806342966c68146102295780634f22b020146102455780636352211e1461027657610135565b806301ffc9a71461013957806306fdde0314610169578063081812fc14610187578063095ea7b3146101b757806323b872dd146101d3575b5f80fd5b610153600480360381019061014e9190611f2d565b61042f565b6040516101609190611f72565b60405180910390f35b610171610510565b60405161017e9190611ffb565b60405180910390f35b6101a1600480360381019061019c919061204e565b61059f565b6040516101ae91906120b8565b60405180910390f35b6101d160048036038101906101cc91906120fb565b6105ba565b005b6101ed60048036038101906101e89190612139565b6105d0565b005b6101f76106cf565b6040516102049190612198565b60405180910390f35b61022760048036038101906102229190612139565b6106d5565b005b610243600480360381019061023e919061204e565b6106f4565b005b61025f600480360381019061025a919061204e565b610776565b60405161026d92919061226a565b60405180910390f35b610290600480360381019061028b919061204e565b6107ae565b60405161029d91906120b8565b60405180910390f35b6102c060048036038101906102bb9190612291565b6107bf565b6040516102cd9190612198565b60405180910390f35b6102f060048036038101906102eb919061204e565b610875565b005b6102fa610a18565b6040516103079190611ffb565b60405180910390f35b61032a600480360381019061032591906122e6565b610aa8565b005b610334610abe565b6040516103419190612198565b60405180910390f35b610364600480360381019061035f9190612291565b610ac4565b005b610380600480360381019061037b9190612450565b610b5f565b005b61039c6004803603810190610397919061204e565b610b7c565b6040516103a99190611ffb565b60405180910390f35b6103cc60048036038101906103c7919061204e565b610be2565b6040516103da92919061226a565b60405180910390f35b6103fd60048036038101906103f89190612582565b610ca4565b005b61041960048036038101906104149190612600565b610e66565b6040516104269190611f72565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104f957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610509575061050882610ef4565b5b9050919050565b60605f805461051e9061266b565b80601f016020809104026020016040519081016040528092919081815260200182805461054a9061266b565b80156105955780601f1061056c57610100808354040283529160200191610595565b820191905f5260205f20905b81548152906001019060200180831161057857829003601f168201915b5050505050905090565b5f6105a982610f5d565b506105b382610fe3565b9050919050565b6105cc82826105c761101c565b611023565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610640575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161063791906120b8565b60405180910390fd5b5f610653838361064e61101c565b611035565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106c9578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016106c09392919061269b565b60405180910390fd5b50505050565b61271081565b6106ef83838360405180602001604052805f815250610b5f565b505050565b3373ffffffffffffffffffffffffffffffffffffffff16610714826107ae565b73ffffffffffffffffffffffffffffffffffffffff161461076a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107619061271a565b60405180910390fd5b61077381611240565b50565b6008602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900460ff16905082565b5f6107b882610f5d565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610830575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161082791906120b8565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610895826107ae565b73ffffffffffffffffffffffffffffffffffffffff16146108eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e290612782565b60405180910390fd5b5f60085f8381526020019081526020015f2090505f6002811115610912576109116121b1565b5b815f0160019054906101000a900460ff166002811115610935576109346121b1565b5b0361096b576001815f0160016101000a81548160ff02191690836002811115610961576109606121b1565b5b0217905550610a14565b6001600281111561097f5761097e6121b1565b5b815f0160019054906101000a900460ff1660028111156109a2576109a16121b1565b5b036109d8576002815f0160016101000a81548160ff021916908360028111156109ce576109cd6121b1565b5b0217905550610a13565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0a90612810565b60405180910390fd5b5b5050565b606060018054610a279061266b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a539061266b565b8015610a9e5780601f10610a7557610100808354040283529160200191610a9e565b820191905f5260205f20905b815481529060010190602001808311610a8157829003601f168201915b5050505050905090565b610aba610ab361101c565b83836112c2565b5050565b60065481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1c575f80fd5b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610b6a8484846105d0565b610b768484848461142b565b50505050565b6060610b87826115dd565b505f610b91611668565b90505f815111610baf5760405180602001604052805f815250610bda565b80610bb984611688565b604051602001610bca92919061288e565b6040516020818303038152906040525b915050919050565b5f805f73ffffffffffffffffffffffffffffffffffffffff16610c04846107ae565b73ffffffffffffffffffffffffffffffffffffffff1603610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c519061290a565b60405180910390fd5b60085f8481526020019081526020015f205f015f9054906101000a900460ff1660085f8581526020019081526020015f205f0160019054906101000a900460ff1691509150915091565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cfc575f80fd5b61271084849050600654610d109190612955565b1115610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d48906129d2565b60405180910390fd5b818190508484905014610d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9090612a60565b60405180910390fd5b5f5b84849050811015610e5f57610dc8838383818110610dbc57610dbb612a7e565b5b905060200201356115dd565b15610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff90612af5565b60405180910390fd5b610e52858583818110610e1e57610e1d612a7e565b5b9050602002016020810190610e339190612291565b848484818110610e4657610e45612a7e565b5b90506020020135611752565b8080600101915050610d9b565b5050505050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f80610f68836118ed565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fda57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610fd19190612198565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6110308383836001611926565b505050565b5f80611040846118ed565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461108157611080818486611ae5565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461110c576110c05f855f80611926565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461118b57600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f61124c5f835f611035565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112be57816040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016112b59190612198565b60405180910390fd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133257816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161132991906120b8565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161141e9190611f72565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b11156115d7578273ffffffffffffffffffffffffffffffffffffffff1663150b7a0261146e61101c565b8685856040518563ffffffff1660e01b81526004016114909493929190612b65565b6020604051808303815f875af19250505080156114cb57506040513d601f19601f820116820180604052508101906114c89190612bc3565b60015b61154c573d805f81146114f9576040519150601f19603f3d011682016040523d82523d5f602084013e6114fe565b606091505b505f81510361154457836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161153b91906120b8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146115d557836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016115cc91906120b8565b60405180910390fd5b505b50505050565b5f3073ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016116179190612198565b602060405180830381865afa92505050801561165157506040513d601f19601f8201168201806040525081019061164e9190612c02565b60015b61165d575f9050611663565b60019150505b919050565b6060604051806060016040528060368152602001612d9960369139905090565b60605f600161169684611ba8565b0190505f8167ffffffffffffffff8111156116b4576116b361232c565b5b6040519080825280601f01601f1916602001820160405280156116e65781602001600182028036833780820191505090505b5090505f82602001820190505b600115611747578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161173c5761173b612c2d565b5b0494505f85036116f3575b819350505050919050565b61271060065410611798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178f90612ca4565b60405180910390fd5b6117a1816115dd565b156117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d890612d0c565b60405180910390fd5b5f6107d08210156117f5576002905061180d565b611388821015611808576001905061180c565b5f90505b5b5f604051806040016040528083600281111561182c5761182b6121b1565b5b8152602001826002811115611844576118436121b1565b5b81525060085f8581526020019081526020015f205f820151815f015f6101000a81548160ff021916908360028111156118805761187f6121b1565b5b02179055506020820151815f0160016101000a81548160ff021916908360028111156118af576118ae6121b1565b5b02179055509050506118d0848460405180602001604052805f815250611cf9565b60065f8154809291906118e290612d2a565b919050555050505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061195e57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a90575f61196d84610f5d565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119d757508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156119ea57506119e88184610e66565b155b15611a2c57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611a2391906120b8565b60405180910390fd5b8115611a8e57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611af0838383611d14565b611ba3575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b6457806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611b5b9190612198565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611b9a929190612d71565b60405180910390fd5b505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611c04577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611bfa57611bf9612c2d565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611c41576d04ee2d6d415b85acef81000000008381611c3757611c36612c2d565b5b0492506020810190505b662386f26fc100008310611c7057662386f26fc100008381611c6657611c65612c2d565b5b0492506010810190505b6305f5e1008310611c99576305f5e1008381611c8f57611c8e612c2d565b5b0492506008810190505b6127108310611cbe576127108381611cb457611cb3612c2d565b5b0492506004810190505b60648310611ce15760648381611cd757611cd6612c2d565b5b0492506002810190505b600a8310611cf0576001810190505b80915050919050565b611d038383611dd4565b611d0f5f84848461142b565b505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611dcb57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611d8c5750611d8b8484610e66565b5b80611dca57508273ffffffffffffffffffffffffffffffffffffffff16611db283610fe3565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e44575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611e3b91906120b8565b60405180910390fd5b5f611e5083835f611035565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611ec2575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611eb991906120b8565b60405180910390fd5b505050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f0c81611ed8565b8114611f16575f80fd5b50565b5f81359050611f2781611f03565b92915050565b5f60208284031215611f4257611f41611ed0565b5b5f611f4f84828501611f19565b91505092915050565b5f8115159050919050565b611f6c81611f58565b82525050565b5f602082019050611f855f830184611f63565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611fcd82611f8b565b611fd78185611f95565b9350611fe7818560208601611fa5565b611ff081611fb3565b840191505092915050565b5f6020820190508181035f8301526120138184611fc3565b905092915050565b5f819050919050565b61202d8161201b565b8114612037575f80fd5b50565b5f8135905061204881612024565b92915050565b5f6020828403121561206357612062611ed0565b5b5f6120708482850161203a565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120a282612079565b9050919050565b6120b281612098565b82525050565b5f6020820190506120cb5f8301846120a9565b92915050565b6120da81612098565b81146120e4575f80fd5b50565b5f813590506120f5816120d1565b92915050565b5f806040838503121561211157612110611ed0565b5b5f61211e858286016120e7565b925050602061212f8582860161203a565b9150509250929050565b5f805f606084860312156121505761214f611ed0565b5b5f61215d868287016120e7565b935050602061216e868287016120e7565b925050604061217f8682870161203a565b9150509250925092565b6121928161201b565b82525050565b5f6020820190506121ab5f830184612189565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600381106121ef576121ee6121b1565b5b50565b5f8190506121ff826121de565b919050565b5f61220e826121f2565b9050919050565b61221e81612204565b82525050565b60038110612235576122346121b1565b5b50565b5f81905061224582612224565b919050565b5f61225482612238565b9050919050565b6122648161224a565b82525050565b5f60408201905061227d5f830185612215565b61228a602083018461225b565b9392505050565b5f602082840312156122a6576122a5611ed0565b5b5f6122b3848285016120e7565b91505092915050565b6122c581611f58565b81146122cf575f80fd5b50565b5f813590506122e0816122bc565b92915050565b5f80604083850312156122fc576122fb611ed0565b5b5f612309858286016120e7565b925050602061231a858286016122d2565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61236282611fb3565b810181811067ffffffffffffffff821117156123815761238061232c565b5b80604052505050565b5f612393611ec7565b905061239f8282612359565b919050565b5f67ffffffffffffffff8211156123be576123bd61232c565b5b6123c782611fb3565b9050602081019050919050565b828183375f83830152505050565b5f6123f46123ef846123a4565b61238a565b9050828152602081018484840111156124105761240f612328565b5b61241b8482856123d4565b509392505050565b5f82601f83011261243757612436612324565b5b81356124478482602086016123e2565b91505092915050565b5f805f806080858703121561246857612467611ed0565b5b5f612475878288016120e7565b9450506020612486878288016120e7565b93505060406124978782880161203a565b925050606085013567ffffffffffffffff8111156124b8576124b7611ed4565b5b6124c487828801612423565b91505092959194509250565b5f80fd5b5f80fd5b5f8083601f8401126124ed576124ec612324565b5b8235905067ffffffffffffffff81111561250a576125096124d0565b5b602083019150836020820283011115612526576125256124d4565b5b9250929050565b5f8083601f84011261254257612541612324565b5b8235905067ffffffffffffffff81111561255f5761255e6124d0565b5b60208301915083602082028301111561257b5761257a6124d4565b5b9250929050565b5f805f806040858703121561259a57612599611ed0565b5b5f85013567ffffffffffffffff8111156125b7576125b6611ed4565b5b6125c3878288016124d8565b9450945050602085013567ffffffffffffffff8111156125e6576125e5611ed4565b5b6125f28782880161252d565b925092505092959194509250565b5f806040838503121561261657612615611ed0565b5b5f612623858286016120e7565b9250506020612634858286016120e7565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061268257607f821691505b6020821081036126955761269461263e565b5b50919050565b5f6060820190506126ae5f8301866120a9565b6126bb6020830185612189565b6126c860408301846120a9565b949350505050565b7f4e6f7420796f7572204e465400000000000000000000000000000000000000005f82015250565b5f612704600c83611f95565b915061270f826126d0565b602082019050919050565b5f6020820190508181035f830152612731816126f8565b9050919050565b7f4e6f7420746865206f776e6572206f662074686973204e4654000000000000005f82015250565b5f61276c601983611f95565b915061277782612738565b602082019050919050565b5f6020820190508181035f83015261279981612760565b9050919050565b7f4e465420697320616c7265616479206174207468652068696768657374206c655f8201527f76656c0000000000000000000000000000000000000000000000000000000000602082015250565b5f6127fa602383611f95565b9150612805826127a0565b604082019050919050565b5f6020820190508181035f830152612827816127ee565b9050919050565b5f81905092915050565b5f61284282611f8b565b61284c818561282e565b935061285c818560208601611fa5565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000815250565b5f6128998285612838565b91506128a58284612838565b91506128b082612868565b6005820191508190509392505050565b7f4e465420646f6573206e6f7420657869737400000000000000000000000000005f82015250565b5f6128f4601283611f95565b91506128ff826128c0565b602082019050919050565b5f6020820190508181035f830152612921816128e8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61295f8261201b565b915061296a8361201b565b925082820190508082111561298257612981612928565b5b92915050565b7f41697264726f702065786365656473206d617820737570706c790000000000005f82015250565b5f6129bc601a83611f95565b91506129c782612988565b602082019050919050565b5f6020820190508181035f8301526129e9816129b0565b9050919050565b7f526563697069656e747320616e6420746f6b656e496473206c656e677468206d5f8201527f69736d6174630000000000000000000000000000000000000000000000000000602082015250565b5f612a4a602683611f95565b9150612a55826129f0565b604082019050919050565b5f6020820190508181035f830152612a7781612a3e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f546f6b656e20494420616c7265616479206d696e7465640000000000000000005f82015250565b5f612adf601783611f95565b9150612aea82612aab565b602082019050919050565b5f6020820190508181035f830152612b0c81612ad3565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f612b3782612b13565b612b418185612b1d565b9350612b51818560208601611fa5565b612b5a81611fb3565b840191505092915050565b5f608082019050612b785f8301876120a9565b612b8560208301866120a9565b612b926040830185612189565b8181036060830152612ba48184612b2d565b905095945050505050565b5f81519050612bbd81611f03565b92915050565b5f60208284031215612bd857612bd7611ed0565b5b5f612be584828501612baf565b91505092915050565b5f81519050612bfc816120d1565b92915050565b5f60208284031215612c1757612c16611ed0565b5b5f612c2484828501612bee565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4d617820737570706c79207265616368656400000000000000000000000000005f82015250565b5f612c8e601283611f95565b9150612c9982612c5a565b602082019050919050565b5f6020820190508181035f830152612cbb81612c82565b9050919050565b7f546f6b656e20494420616c7265616479206578697374730000000000000000005f82015250565b5f612cf6601783611f95565b9150612d0182612cc2565b602082019050919050565b5f6020820190508181035f830152612d2381612cea565b9050919050565b5f612d348261201b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d6657612d65612928565b5b600182019050919050565b5f604082019050612d845f8301856120a9565b612d916020830184612189565b939250505056fe697066733a2f2f516d61686e7039626736736536754d7470436a4742706732353657506d70694b7a6775336b67596279584e385a692fa264697066735822122017666edc3e7072653fc8591afbb24ca41e8888ac3316f7489a7684d8b50241da64736f6c634300081a0033