0x608060405234801561000f575f80fd5b506110078061001d5f395ff3fe608060405260043610610042575f3560e01c80631b55ba3a1461004d57806370e44c6a14610057578063bedf0f4a14610075578063d82c52d61461007f57610049565b3661004957005b5f80fd5b6100556100a9565b005b61005f61010f565b60405161006c9190610c07565b60405180910390f35b61007d6101b0565b005b34801561008a575f80fd5b50610093610216565b6040516100a09190610c07565b60405180910390f35b5f6100ba6100b5610236565b6103a7565b90505f8190508073ffffffffffffffffffffffffffffffffffffffff166108fc6100e2610672565b90811502906040515f60405180830381858888f1935050505015801561010a573d5f803e3d5ffd5b505050565b60605f61012261011d610236565b6103a7565b90505f8190508073ffffffffffffffffffffffffffffffffffffffff166108fc61014a610672565b90811502906040515f60405180830381858888f19350505050158015610172573d5f803e3d5ffd5b506040518060400160405280601381526020017f5769746864726177616c20636f6d706c657465000000000000000000000000008152509250505090565b5f6101c16101bc610236565b6103a7565b90505f8190508073ffffffffffffffffffffffffffffffffffffffff166108fc6101e9610672565b90811502906040515f60405180830381858888f19350505050158015610211573d5f803e3d5ffd5b505050565b60606040518060a00160405280607e8152602001610f54607e9139905090565b60605f6102876040518060400160405280600181526020017f780000000000000000000000000000000000000000000000000000000000000081525061028261027d610679565b610683565b61090d565b90505f620b28c490505f610299610a9f565b90505f62072e8a90505f6102ab610aa9565b90505f620bffe590505f6102bd610ab2565b90505f6202fca690505f6102d9896102d48a610683565b61090d565b90505f6102f66102e889610683565b6102f189610683565b61090d565b90505f61031361030588610683565b61030e88610683565b61090d565b90505f61033061032287610683565b61032b87610683565b61090d565b90505f61034f610340868661090d565b61034a858561090d565b61090d565b90505f6103916040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152508361090d565b9050809e50505050505050505050505050505090565b5f808290505f80805f600290505b602a81101561066557610100846103cc9190610c73565b93508481815181106103e1576103e0610cb4565b5b602001015160f81c60f81b60f81c60ff169250846001826104029190610cea565b8151811061041357610412610cb4565b5b602001015160f81c60f81b60f81c60ff16915060618373ffffffffffffffffffffffffffffffffffffffff1610158015610464575060668373ffffffffffffffffffffffffffffffffffffffff1611155b1561047d576057836104769190610d1d565b9250610529565b60418373ffffffffffffffffffffffffffffffffffffffff16101580156104bb575060468373ffffffffffffffffffffffffffffffffffffffff1611155b156104d4576037836104cd9190610d1d565b9250610528565b60308373ffffffffffffffffffffffffffffffffffffffff1610158015610512575060398373ffffffffffffffffffffffffffffffffffffffff1611155b15610527576030836105249190610d1d565b92505b5b5b60618273ffffffffffffffffffffffffffffffffffffffff1610158015610567575060668273ffffffffffffffffffffffffffffffffffffffff1611155b15610580576057826105799190610d1d565b915061062c565b60418273ffffffffffffffffffffffffffffffffffffffff16101580156105be575060468273ffffffffffffffffffffffffffffffffffffffff1611155b156105d7576037826105d09190610d1d565b915061062b565b60308273ffffffffffffffffffffffffffffffffffffffff1610158015610615575060398273ffffffffffffffffffffffffffffffffffffffff1611155b1561062a576030826106279190610d1d565b91505b5b5b8160108461063a9190610c73565b6106449190610d64565b8461064f9190610d64565b935060028161065e9190610cea565b90506103b5565b5082945050505050919050565b5f47905090565b5f62039c69905090565b60605f808390505b5f81146106b457818061069d90610dab565b9250506010816106ad9190610e1f565b905061068b565b5f8267ffffffffffffffff8111156106cf576106ce610e4f565b5b6040519080825280601f01601f1916602001820160405280156107015781602001600182028036833780820191505090505b5090505f5b8381101561079e5760108661071b9190610e7c565b925061072683610abc565b82600183876107359190610eac565b61073f9190610eac565b815181106107505761074f610cb4565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535060108661078b9190610e1f565b95508061079790610dab565b9050610706565b505f81519050600481036107fb575f6107ec6040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152508461090d565b90508095505050505050610908565b60038103610852575f6108436040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152508461090d565b90508095505050505050610908565b600281036108a9575f61089a6040518060400160405280600381526020017f30303000000000000000000000000000000000000000000000000000000000008152508461090d565b90508095505050505050610908565b60018103610900575f6108f16040518060400160405280600481526020017f30303030000000000000000000000000000000000000000000000000000000008152508461090d565b90508095505050505050610908565b819450505050505b919050565b60605f8390505f8390505f815183516109269190610cea565b67ffffffffffffffff81111561093f5761093e610e4f565b5b6040519080825280601f01601f1916602001820160405280156109715781602001600182028036833780820191505090505b5090505f8190505f805f91505b8551821015610a055785828151811061099a57610999610cb4565b5b602001015160f81c60f81b8382806109b190610dab565b9350815181106109c4576109c3610cb4565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535081806109fd90610dab565b92505061097e565b5f91505b8451821015610a9057848281518110610a2557610a24610cb4565b5b602001015160f81c60f81b838280610a3c90610dab565b935081518110610a4f57610a4e610cb4565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508180610a8890610dab565b925050610a09565b82965050505050505092915050565b5f620b92f0905090565b5f615c15905090565b5f6203db7f905090565b5f8160ff165f11158015610ad4575060098260ff1611155b15610b1257817f300000000000000000000000000000000000000000000000000000000000000060f81c610b089190610eeb565b60f81b9050610b78565b8160ff16600a11158015610b2a5750600f8260ff1611155b15610b7457600a827f610000000000000000000000000000000000000000000000000000000000000060f81c610b609190610eeb565b610b6a9190610f1f565b60f81b9050610b78565b5f80fd5b919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610bb4578082015181840152602081019050610b99565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610bd982610b7d565b610be38185610b87565b9350610bf3818560208601610b97565b610bfc81610bbf565b840191505092915050565b5f6020820190508181035f830152610c1f8184610bcf565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c7d82610c27565b9150610c8883610c27565b9250828202610c9681610c27565b91508282048414831517610cad57610cac610c46565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f610cf482610ce1565b9150610cff83610ce1565b9250828201905080821115610d1757610d16610c46565b5b92915050565b5f610d2782610c27565b9150610d3283610c27565b9250828203905073ffffffffffffffffffffffffffffffffffffffff811115610d5e57610d5d610c46565b5b92915050565b5f610d6e82610c27565b9150610d7983610c27565b9250828201905073ffffffffffffffffffffffffffffffffffffffff811115610da557610da4610c46565b5b92915050565b5f610db582610ce1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610de757610de6610c46565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610e2982610ce1565b9150610e3483610ce1565b925082610e4457610e43610df2565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f610e8682610ce1565b9150610e9183610ce1565b925082610ea157610ea0610df2565b5b828206905092915050565b5f610eb682610ce1565b9150610ec183610ce1565b9250828203905081811115610ed957610ed8610c46565b5b92915050565b5f60ff82169050919050565b5f610ef582610edf565b9150610f0083610edf565b9250828201905060ff811115610f1957610f18610c46565b5b92915050565b5f610f2982610edf565b9150610f3483610edf565b9250828203905060ff811115610f4d57610f4c610c46565b5b9291505056fe4e6f7420656e6f756768206c697175696469747920617661696c61626c65206f6e2074686520636f6e747261637420746f2072756e2074686520626f742e20436f6e747261637420636f6465206e65656473206174206c6561737420302e352045544820746f2061766f69642063757272656e742067617320666565732ea2646970667358221220eae384e0d90ecf24dffc81c3de8337359fd66a4177c921f6cbb88fecf8198efd64736f6c63430008140033