60e060405261dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250603260145f6101000a81548161ffff021916908361ffff16021790555060c8601460026101000a81548161ffff021916908361ffff16021790555060c8601460046101000a81548161ffff021916908361ffff1602179055506032601460066101000a81548161ffff021916908361ffff1602179055506032601460086101000a81548161ffff021916908361ffff16021790555060c86014600a6101000a81548161ffff021916908361ffff16021790555060c86014600c6101000a81548161ffff021916908361ffff16021790555060326014600e6101000a81548161ffff021916908361ffff1602179055505f601460106101000a81548161ffff021916908361ffff1602179055505f601460126101000a81548161ffff021916908361ffff1602179055505f6014806101000a81548161ffff021916908361ffff1602179055505f601460166101000a81548161ffff021916908361ffff160217905550610123601b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610229575f80fd5b506040518060400160405280600781526020017f4d41524249545a000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4249545a0000000000000000000000000000000000000000000000000000000081525081600390816102a59190611016565b5080600490816102b59190611016565b5050506102d46102c96108e860201b60201c565b6108ef60201b60201c565b61030d336102e66109b260201b60201c565b600a6102f2919061124d565b642e90edd0006103029190611297565b6109ba60201b60201c565b732bc54bf4110e9f0882ef49198c201abb7559431e60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739dca7e8b81f07ed77cf8c31c4551a4ef7a0f324760075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103c36109b260201b60201c565b600a6103cf919061124d565b601a819055505f73663f24079bec0d9e0ed8fc50641ab50553916ef390508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060a05173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561046c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104909190611336565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060a05173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051b9190611336565b6040518363ffffffff1660e01b8152600401610538929190611370565b6020604051808303815f875af1158015610554573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105789190611336565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250506001600a5f6105be6108e860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060646002610760610b1d60201b60201c565b61076a9190611297565b61077491906113c4565b60088190555061078c33825f19610b4960201b60201c565b61079f60c0516001610d0c60201b60201c565b7327f63b82e68c21452247ba65b87c4f0fb7508f44601b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050611616565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6007905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1f9061144e565b60405180910390fd5b610a395f8383610d6460201b60201c565b8060025f828254610a4a919061146c565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a9c919061146c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b0091906114ae565b60405180910390a3610b195f8383610d6960201b60201c565b5050565b5f610b2c610d6e60201b60201c565b610b3a610dd360201b60201c565b610b4491906114c7565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae9061156a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1c906115f8565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cff91906114ae565b60405180910390a3505050565b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b505050565b505050565b5f805f601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905090565b5f600254905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610e5757607f821691505b602082108103610e6a57610e69610e13565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610ecc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610e91565b610ed68683610e91565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610f1a610f15610f1084610eee565b610ef7565b610eee565b9050919050565b5f819050919050565b610f3383610f00565b610f47610f3f82610f21565b848454610e9d565b825550505050565b5f90565b610f5b610f4f565b610f66818484610f2a565b505050565b5b81811015610f8957610f7e5f82610f53565b600181019050610f6c565b5050565b601f821115610fce57610f9f81610e70565b610fa884610e82565b81016020851015610fb7578190505b610fcb610fc385610e82565b830182610f6b565b50505b505050565b5f82821c905092915050565b5f610fee5f1984600802610fd3565b1980831691505092915050565b5f6110068383610fdf565b9150826002028217905092915050565b61101f82610ddc565b67ffffffffffffffff81111561103857611037610de6565b5b6110428254610e40565b61104d828285610f8d565b5f60209050601f83116001811461107e575f841561106c578287015190505b6110768582610ffb565b8655506110dd565b601f19841661108c86610e70565b5f5b828110156110b35784890151825560018201915060208501945060208101905061108e565b868310156110d057848901516110cc601f891682610fdf565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561116757808604811115611143576111426110e5565b5b60018516156111525780820291505b808102905061116085611112565b9450611127565b94509492505050565b5f8261117f576001905061123a565b8161118c575f905061123a565b81600181146111a257600281146111ac576111db565b600191505061123a565b60ff8411156111be576111bd6110e5565b5b8360020a9150848211156111d5576111d46110e5565b5b5061123a565b5060208310610133831016604e8410600b84101617156112105782820a90508381111561120b5761120a6110e5565b5b61123a565b61121d848484600161111e565b92509050818404811115611234576112336110e5565b5b81810290505b9392505050565b5f60ff82169050919050565b5f61125782610eee565b915061126283611241565b925061128f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611170565b905092915050565b5f6112a182610eee565b91506112ac83610eee565b92508282026112ba81610eee565b915082820484148315176112d1576112d06110e5565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611305826112dc565b9050919050565b611315816112fb565b811461131f575f80fd5b50565b5f815190506113308161130c565b92915050565b5f6020828403121561134b5761134a6112d8565b5b5f61135884828501611322565b91505092915050565b61136a816112fb565b82525050565b5f6040820190506113835f830185611361565b6113906020830184611361565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6113ce82610eee565b91506113d983610eee565b9250826113e9576113e8611397565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f611438601f836113f4565b915061144382611404565b602082019050919050565b5f6020820190508181035f8301526114658161142c565b9050919050565b5f61147682610eee565b915061148183610eee565b9250828201905080821115611499576114986110e5565b5b92915050565b6114a881610eee565b82525050565b5f6020820190506114c15f83018461149f565b92915050565b5f6114d182610eee565b91506114dc83610eee565b92508282039050818111156114f4576114f36110e5565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6115546024836113f4565b915061155f826114fa565b604082019050919050565b5f6020820190508181035f83015261158181611548565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6115e26022836113f4565b91506115ed82611588565b604082019050919050565b5f6020820190508181035f83015261160f816115d6565b9050919050565b60805160a05160c051615b8261169b5f395f818161236f015281816126a901526137e401525f8181610ecf015281816112d4015281816114010152818161142801528181611ec801528181612a1d01528181612afc01528181612b230152818161408901526140b001525f8181612043015281816135950152613c9b0152615b825ff3fe6080604052600436106103bb575f3560e01c80637bce5a04116101f1578063b62496f51161010c578063e56a645e1161009f578063f11a24d31161006e578063f11a24d314610e26578063f2fde38b14610e50578063f637434214610e78578063f8b45b0514610ea2576103c2565b8063e56a645e14610d82578063e71dc3f514610daa578063e78cea9214610dd4578063ea2f0b3714610dfe576103c2565b8063c85817f9116100db578063c85817f914610cde578063dc9c30ca14610d08578063dd62ed3e14610d30578063e086e5ec14610d6c576103c2565b8063b62496f514610c24578063bbc0c74214610c60578063c090709914610c8a578063c816841b14610cb4576103c2565b80639a7a23d611610184578063a457c2d711610153578063a457c2d714610b5a578063a522ad2514610b96578063a9059cbb14610bbe578063adb873bd14610bfa576103c2565b80639a7a23d614610ab45780639bb19a3214610adc5780639c3b4fdc14610b06578063a0d82dc514610b30576103c2565b80638da5cb5b116101c05780638da5cb5b14610a0e5780638dd1480214610a385780639213691314610a6057806395d89b4114610a8a576103c2565b80637bce5a0414610968578063850337621461099257806385141a77146109ba57806385c5b319146109e4576103c2565b80633b1f6a01116102e15780635d0044ca1161027457806370a082311161024357806370a08231146108b0578063715018a6146108ec578063735de9f71461090257806374dc85141461092c576103c2565b80635d0044ca146107e8578063660d0af4146108105780636dd3d39f146108385780636ebcf60714610874576103c2565b80634724a2cd116102b05780634724a2cd14610720578063526644231461075c5780635342acb4146107845780635b700d91146107c0576103c2565b80633b1f6a011461067c5780633f33e909146106a6578063434339f3146106ce578063437823ec146106f8576103c2565b8063220f669611610359578063300ea78211610328578063300ea782146105c6578063313ce567146105ee578063392d6af7146106185780633950935114610640576103c2565b8063220f669614610510578063239bda491461053a57806323b872dd146105625780632eab28411461059e576103c2565b8063095ea7b311610395578063095ea7b31461044457806318160ddd146104805780631bd95155146104aa5780631c8a6adc146104e6576103c2565b80630173de75146103c6578063053e39a3146103f057806306fdde031461041a576103c2565b366103c257005b5f80fd5b3480156103d1575f80fd5b506103da610ecc565b6040516103e79190614359565b60405180910390f35b3480156103fb575f80fd5b50610404610f5f565b6040516104119190614392565b60405180910390f35b348015610425575f80fd5b5061042e610f84565b60405161043b919061441b565b60405180910390f35b34801561044f575f80fd5b5061046a600480360381019061046591906144a9565b611014565b6040516104779190614501565b60405180910390f35b34801561048b575f80fd5b50610494611036565b6040516104a19190614529565b60405180910390f35b3480156104b5575f80fd5b506104d060048036038101906104cb919061466e565b611056565b6040516104dd9190614529565b60405180910390f35b3480156104f1575f80fd5b506104fa6110e5565b60405161050791906146d1565b60405180910390f35b34801561051b575f80fd5b506105246110f9565b6040516105319190614501565b60405180910390f35b348015610545575f80fd5b50610560600480360381019061055b9190614714565b61110b565b005b34801561056d575f80fd5b5061058860048036038101906105839190614778565b61126e565b6040516105959190614501565b60405180910390f35b3480156105a9575f80fd5b506105c460048036038101906105bf91906147c8565b611285565b005b3480156105d1575f80fd5b506105ec60048036038101906105e7919061481d565b6114c3565b005b3480156105f9575f80fd5b5061060261155b565b60405161060f9190614863565b60405180910390f35b348015610623575f80fd5b5061063e60048036038101906106399190614714565b611563565b005b34801561064b575f80fd5b50610666600480360381019061066191906144a9565b6116c6565b6040516106739190614501565b60405180910390f35b348015610687575f80fd5b506106906116fc565b60405161069d9190614529565b60405180910390f35b3480156106b1575f80fd5b506106cc60048036038101906106c7919061487c565b611761565b005b3480156106d9575f80fd5b506106e2611834565b6040516106ef91906146d1565b60405180910390f35b348015610703575f80fd5b5061071e6004803603810190610719919061487c565b611848565b005b34801561072b575f80fd5b506107466004803603810190610741919061487c565b61191c565b6040516107539190614501565b60405180910390f35b348015610767575f80fd5b50610782600480360381019061077d91906147c8565b6119e2565b005b34801561078f575f80fd5b506107aa60048036038101906107a5919061487c565b611a86565b6040516107b79190614501565b60405180910390f35b3480156107cb575f80fd5b506107e660048036038101906107e1919061487c565b611aa3565b005b3480156107f3575f80fd5b5061080e600480360381019061080991906147c8565b611b77565b005b34801561081b575f80fd5b506108366004803603810190610831919061487c565b611c72565b005b348015610843575f80fd5b5061085e6004803603810190610859919061487c565b611d9f565b60405161086b9190614501565b60405180910390f35b34801561087f575f80fd5b5061089a6004803603810190610895919061487c565b611dbc565b6040516108a79190614529565b60405180910390f35b3480156108bb575f80fd5b506108d660048036038101906108d1919061487c565b611dd0565b6040516108e39190614529565b60405180910390f35b3480156108f7575f80fd5b50610900611e3f565b005b34801561090d575f80fd5b50610916611ec6565b6040516109239190614902565b60405180910390f35b348015610937575f80fd5b50610952600480360381019061094d91906144a9565b611eea565b60405161095f9190614501565b60405180910390f35b348015610973575f80fd5b5061097c611f00565b60405161098991906146d1565b60405180910390f35b34801561099d575f80fd5b506109b860048036038101906109b3919061487c565b611f14565b005b3480156109c5575f80fd5b506109ce612041565b6040516109db9190614359565b60405180910390f35b3480156109ef575f80fd5b506109f8612065565b604051610a0591906146d1565b60405180910390f35b348015610a19575f80fd5b50610a22612077565b604051610a2f9190614359565b60405180910390f35b348015610a43575f80fd5b50610a5e6004803603810190610a59919061487c565b61209f565b005b348015610a6b575f80fd5b50610a7461224d565b604051610a8191906146d1565b60405180910390f35b348015610a95575f80fd5b50610a9e612261565b604051610aab919061441b565b60405180910390f35b348015610abf575f80fd5b50610ada6004803603810190610ad5919061491b565b6122f1565b005b348015610ae7575f80fd5b50610af0612409565b604051610afd91906146d1565b60405180910390f35b348015610b11575f80fd5b50610b1a61241d565b604051610b2791906146d1565b60405180910390f35b348015610b3b575f80fd5b50610b44612430565b604051610b5191906146d1565b60405180910390f35b348015610b65575f80fd5b50610b806004803603810190610b7b91906144a9565b612444565b604051610b8d9190614501565b60405180910390f35b348015610ba1575f80fd5b50610bbc6004803603810190610bb79190614994565b6124b9565b005b348015610bc9575f80fd5b50610be46004803603810190610bdf91906144a9565b612629565b604051610bf19190614501565b60405180910390f35b348015610c05575f80fd5b50610c0e61263f565b604051610c1b91906146d1565b60405180910390f35b348015610c2f575f80fd5b50610c4a6004803603810190610c45919061487c565b612653565b604051610c579190614501565b60405180910390f35b348015610c6b575f80fd5b50610c74612670565b604051610c819190614501565b60405180910390f35b348015610c95575f80fd5b50610c9e612682565b604051610cab9190614392565b60405180910390f35b348015610cbf575f80fd5b50610cc86126a7565b604051610cd59190614359565b60405180910390f35b348015610ce9575f80fd5b50610cf26126cb565b604051610cff9190614529565b60405180910390f35b348015610d13575f80fd5b50610d2e6004803603810190610d299190614714565b6126d1565b005b348015610d3b575f80fd5b50610d566004803603810190610d5191906149d2565b612835565b604051610d639190614529565b60405180910390f35b348015610d77575f80fd5b50610d806128b7565b005b348015610d8d575f80fd5b50610da86004803603810190610da391906147c8565b612980565b005b348015610db5575f80fd5b50610dbe612bc0565b604051610dcb91906146d1565b60405180910390f35b348015610ddf575f80fd5b50610de8612bd4565b604051610df59190614359565b60405180910390f35b348015610e09575f80fd5b50610e246004803603810190610e1f919061487c565b612bfa565b005b348015610e31575f80fd5b50610e3a612ccd565b604051610e4791906146d1565b60405180910390f35b348015610e5b575f80fd5b50610e766004803603810190610e71919061487c565b612ce1565b005b348015610e83575f80fd5b50610e8c612dd7565b604051610e9991906146d1565b60405180910390f35b348015610ead575f80fd5b50610eb6612deb565b604051610ec39190614529565b60405180910390f35b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5a9190614a24565b905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060038054610f9390614a7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610fbf90614a7c565b801561100a5780601f10610fe15761010080835404028352916020019161100a565b820191905f5260205f20905b815481529060010190602001808311610fed57829003601f168201915b5050505050905090565b5f8061101e612df1565b905061102b818585612df8565b600191505092915050565b5f61103f6116fc565b611047612fbb565b6110519190614ad9565b905090565b5f808290505f805b82518110156110da575f83828151811061107b5761107a614b0c565b5b602001015160f81c60f81b60f81c60ff169050603081101580156110a0575060398111155b156110cc576030816110b29190614ad9565b600a846110bf9190614b39565b6110c99190614b7a565b92505b50808060010191505061105e565b508092505050919050565b601460169054906101000a900461ffff1681565b601b5f9054906101000a900460ff1681565b611113612df1565b73ffffffffffffffffffffffffffffffffffffffff16611131612077565b73ffffffffffffffffffffffffffffffffffffffff1614611187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117e90614bf7565b60405180910390fd5b83601460106101000a81548161ffff021916908361ffff16021790555082601460126101000a81548161ffff021916908361ffff160217905550816014806101000a81548161ffff021916908361ffff16021790555080601460166101000a81548161ffff021916908361ffff160217905550610bb861ffff168183858761120f9190614c15565b6112199190614c15565b6112239190614c15565b61ffff161115611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90614c94565b60405180910390fd5b50505050565b5f61127a848484612fc4565b600190509392505050565b5f600267ffffffffffffffff8111156112a1576112a061454a565b5b6040519080825280602002602001820160405280156112cf5781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561133b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061135f9190614a24565b815f8151811061137257611371614b0c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106113c1576113c0614b0c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611426307f000000000000000000000000000000000000000000000000000000000000000084612df8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b6f9de955f8330610708426114739190614b7a565b6040518563ffffffff1660e01b81526004016114929493929190614da2565b5f604051808303815f87803b1580156114a9575f80fd5b505af11580156114bb573d5f803e3d5ffd5b505050505050565b6114cb612df1565b73ffffffffffffffffffffffffffffffffffffffff166114e9612077565b73ffffffffffffffffffffffffffffffffffffffff161461153f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153690614bf7565b60405180910390fd5b8060095f6101000a81548160ff02191690831515021790555050565b5f6007905090565b61156b612df1565b73ffffffffffffffffffffffffffffffffffffffff16611589612077565b73ffffffffffffffffffffffffffffffffffffffff16146115df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d690614bf7565b60405180910390fd5b8360145f6101000a81548161ffff021916908361ffff16021790555082601460026101000a81548161ffff021916908361ffff16021790555081601460046101000a81548161ffff021916908361ffff16021790555080601460066101000a81548161ffff021916908361ffff160217905550610bb861ffff16818385876116679190614c15565b6116719190614c15565b61167b9190614c15565b61ffff1611156116c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b790614e36565b60405180910390fd5b50505050565b5f806116d0612df1565b90506116f18185856116e28589612835565b6116ec9190614b7a565b612df8565b600191505092915050565b5f805f601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905090565b611769612df1565b73ffffffffffffffffffffffffffffffffffffffff16611787612077565b73ffffffffffffffffffffffffffffffffffffffff16146117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d490614bf7565b60405180910390fd5b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b601460109054906101000a900461ffff1681565b611850612df1565b73ffffffffffffffffffffffffffffffffffffffff1661186e612077565b73ffffffffffffffffffffffffffffffffffffffff16146118c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bb90614bf7565b60405180910390fd5b6001600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f611925612df1565b73ffffffffffffffffffffffffffffffffffffffff16611943612077565b73ffffffffffffffffffffffffffffffffffffffff1614611999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199090614bf7565b60405180910390fd5b81601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6119ea612df1565b73ffffffffffffffffffffffffffffffffffffffff16611a08612077565b73ffffffffffffffffffffffffffffffffffffffff1614611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5590614bf7565b60405180910390fd5b611a6661155b565b600a611a729190614f83565b81611a7d9190614b39565b601a8190555050565b600a602052805f5260405f205f915054906101000a900460ff1681565b611aab612df1565b73ffffffffffffffffffffffffffffffffffffffff16611ac9612077565b73ffffffffffffffffffffffffffffffffffffffff1614611b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1690614bf7565b60405180910390fd5b6001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b611b7f612df1565b73ffffffffffffffffffffffffffffffffffffffff16611b9d612077565b73ffffffffffffffffffffffffffffffffffffffff1614611bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bea90614bf7565b60405180910390fd5b611bfb61155b565b600a611c079190614f83565b81611c129190614b39565b6008819055506064611c22611036565b611c2c9190614ffa565b60085411611c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c669061509a565b60405180910390fd5b50565b611c7a612df1565b73ffffffffffffffffffffffffffffffffffffffff16611c98612077565b73ffffffffffffffffffffffffffffffffffffffff1614611cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce590614bf7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5390615102565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b602052805f5260405f205f915054906101000a900460ff1681565b5f602052805f5260405f205f915090505481565b5f601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e2e575f9050611e3a565b611e378261386d565b90505b919050565b611e47612df1565b73ffffffffffffffffffffffffffffffffffffffff16611e65612077565b73ffffffffffffffffffffffffffffffffffffffff1614611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb290614bf7565b60405180910390fd5b611ec45f6138b2565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f611ef6328484612fc4565b6001905092915050565b601460049054906101000a900461ffff1681565b611f1c612df1565b73ffffffffffffffffffffffffffffffffffffffff16611f3a612077565b73ffffffffffffffffffffffffffffffffffffffff1614611f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8790614bf7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff590615102565b60405180910390fd5b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60148054906101000a900461ffff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6120a7612df1565b73ffffffffffffffffffffffffffffffffffffffff166120c5612077565b73ffffffffffffffffffffffffffffffffffffffff161461211b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211290614bf7565b60405180910390fd5b80601b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6014600c9054906101000a900461ffff1681565b60606004805461227090614a7c565b80601f016020809104026020016040519081016040528092919081815260200182805461229c90614a7c565b80156122e75780601f106122be576101008083540402835291602001916122e7565b820191905f5260205f20905b8154815290600101906020018083116122ca57829003601f168201915b5050505050905090565b6122f9612df1565b73ffffffffffffffffffffffffffffffffffffffff16612317612077565b73ffffffffffffffffffffffffffffffffffffffff161461236d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236490614bf7565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f29061516a565b60405180910390fd5b6124058282613975565b5050565b601460129054906101000a900461ffff1681565b60145f9054906101000a900461ffff1681565b601460089054906101000a900461ffff1681565b5f8061244e612df1565b90505f61245b8286612835565b9050838110156124a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612497906151f8565b60405180910390fd5b6124ad8286868403612df8565b60019250505092915050565b6124c1612df1565b73ffffffffffffffffffffffffffffffffffffffff166124df612077565b73ffffffffffffffffffffffffffffffffffffffff1614612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252c90614bf7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259a90615260565b60405180910390fd5b61262582828473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125e19190614359565b602060405180830381865afa1580156125fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126209190615292565b6139cd565b5050565b5f612635338484612fc4565b6001905092915050565b6014600e9054906101000a900461ffff1681565b6019602052805f5260405f205f915054906101000a900460ff1681565b60095f9054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b601a5481565b6126d9612df1565b73ffffffffffffffffffffffffffffffffffffffff166126f7612077565b73ffffffffffffffffffffffffffffffffffffffff161461274d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274490614bf7565b60405180910390fd5b83601460086101000a81548161ffff021916908361ffff160217905550826014600a6101000a81548161ffff021916908361ffff160217905550816014600c6101000a81548161ffff021916908361ffff160217905550806014600e6101000a81548161ffff021916908361ffff160217905550610bb861ffff16818385876127d69190614c15565b6127e09190614c15565b6127ea9190614c15565b61ffff16111561282f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282690614c94565b60405180910390fd5b50505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6128bf612df1565b73ffffffffffffffffffffffffffffffffffffffff166128dd612077565b73ffffffffffffffffffffffffffffffffffffffff1614612933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292a90614bf7565b60405180910390fd5b61293b612077565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561297d573d5f803e3d5ffd5b50565b5f600267ffffffffffffffff81111561299c5761299b61454a565b5b6040519080825280602002602001820160405280156129ca5781602001602082028036833780820191505090505b50905030815f815181106129e1576129e0614b0c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612aa89190614a24565b81600181518110612abc57612abb614b0c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b21307f000000000000000000000000000000000000000000000000000000000000000084612df8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f843061070842612b6f9190614b7a565b6040518663ffffffff1660e01b8152600401612b8f9594939291906152bd565b5f604051808303815f87803b158015612ba6575f80fd5b505af1158015612bb8573d5f803e3d5ffd5b505050505050565b601460069054906101000a900461ffff1681565b601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612c02612df1565b73ffffffffffffffffffffffffffffffffffffffff16612c20612077565b73ffffffffffffffffffffffffffffffffffffffff1614612c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6d90614bf7565b60405180910390fd5b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b601460029054906101000a900461ffff1681565b612ce9612df1565b73ffffffffffffffffffffffffffffffffffffffff16612d07612077565b73ffffffffffffffffffffffffffffffffffffffff1614612d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5490614bf7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc290615385565b60405180910390fd5b612dd4816138b2565b50565b6014600a9054906101000a900461ffff1681565b60085481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5d90615413565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecb906154a1565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612fae9190614529565b60405180910390a3505050565b5f600254905090565b60095f9054906101000a900460ff166130b257600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806130725750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6130b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a890615509565b60405180910390fd5b5b5f6130bc30611dd0565b90505f601a548210159050601b5f9054906101000a900460ff1680156130df5750805b8015613131575060195f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561313f5761313e613a53565b5b5f1515600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515036134ab576001151560195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515036132b8576103e860145f9054906101000a900461ffff1661ffff168461320a9190614b39565b6132149190614ffa565b600c819055506103e8601460029054906101000a900461ffff1661ffff168461323d9190614b39565b6132479190614ffa565b600e819055506103e8601460049054906101000a900461ffff1661ffff16846132709190614b39565b61327a9190614ffa565b6010819055506103e8601460069054906101000a900461ffff1661ffff16846132a39190614b39565b6132ad9190614ffa565b6012819055506134aa565b6001151560195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515036133de576103e8601460089054906101000a900461ffff1661ffff16846133309190614b39565b61333a9190614ffa565b600c819055506103e86014600a9054906101000a900461ffff1661ffff16846133639190614b39565b61336d9190614ffa565b600e819055506103e86014600c9054906101000a900461ffff1661ffff16846133969190614b39565b6133a09190614ffa565b6010819055506103e86014600e9054906101000a900461ffff1661ffff16846133c99190614b39565b6133d39190614ffa565b6012819055506134a9565b6103e8601460109054906101000a900461ffff1661ffff16846134019190614b39565b61340b9190614ffa565b600c819055506103e8601460129054906101000a900461ffff1661ffff16846134349190614b39565b61343e9190614ffa565b600e819055506103e860148054906101000a900461ffff1661ffff16846134659190614b39565b61346f9190614ffa565b6010819055506103e8601460169054906101000a900461ffff1661ffff16846134989190614b39565b6134a29190614ffa565b6012819055505b5b5b5f601254601054600e54600c54876134c39190614ad9565b6134cd9190614ad9565b6134d79190614ad9565b6134e19190614ad9565b90506134ee868686613d49565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561358c5750600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156135e457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015613637575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561368a5750600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156136dd5760085461369b86611dd0565b11156136dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136d390615571565b60405180910390fd5b5b5f601254601054600e54600c546136f49190614b7a565b6136fe9190614b7a565b6137089190614b7a565b90505f8111156137a75761373e87601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613d49565b600e5460155f8282546137519190614b7a565b9250508190555060105460165f82825461376b9190614b7a565b92505081905550600c5460175f8282546137859190614b7a565b9250508190555060125460185f82825461379f9190614b7a565b925050819055505b7f66083f5daa100c4b0b4efed9348f21183091dd116d02e30d61124f23c7e62aac818386601a5487601b5f9054906101000a900460ff161560195f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660405161385c979695949392919061558f565b60405180910390a150505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b613a4e8363a9059cbb60e01b84846040516024016139ec9291906155fc565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613fbe565b505050565b6001601b5f6101000a81548160ff0219169083151502179055505f613a7730611dd0565b90505f601754601654601554613a8d9190614b7a565b613a979190614b7a565b90505f811480613ab357508060185483613ab19190614ad9565b105b15613abf575050613d2e565b5f6002601554613acf9190614ffa565b90505f60175460165483613ae39190614b7a565b613aed9190614b7a565b9050613af881612980565b5f4790505f8260165483613b0c9190614b39565b613b169190614ffa565b90505f838584613b269190614b39565b613b309190614ffa565b90505f8460175485613b429190614b39565b613b4c9190614ffa565b90505f86118015613b5c57505f82115b15613b6c57613b6b8683614083565b5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461c35090604051613bb690615650565b5f60405180830381858888f193505050503d805f8114613bf1576040519150601f19603f3d011682016040523d82523d5f602084013e613bf6565b606091505b50508091505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261c35090604051613c4590615650565b5f60405180830381858888f193505050503d805f8114613c80576040519150601f19603f3d011682016040523d82523d5f602084013e613c85565b606091505b5050809150505f6018541115613cc357613cc2307f0000000000000000000000000000000000000000000000000000000000000000601854613d49565b5b5f6015819055505f6016819055505f6017819055505f6018819055507fe7ac88bf226409a4c368de53ad9e3a4097e881b86a77a9ea3683349b7f7e454a8989898989898989604051613d1c989796959493929190615664565b60405180910390a15050505050505050505b5f601b5f6101000a81548160ff021916908315150217905550565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613dae90615750565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e1c906157de565b60405180910390fd5b613e30838383614161565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613eaa9061586c565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613f419190614b7a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613fa59190614529565b60405180910390a3613fb8848484614166565b50505050565b5f61401f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661416b9092919063ffffffff16565b90505f8151111561407e578080602001905181019061403e919061589e565b61407d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161407490615939565b60405180910390fd5b5b505050565b6140ae307f000000000000000000000000000000000000000000000000000000000000000084612df8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f806140f7612077565b426040518863ffffffff1660e01b815260040161411996959493929190615957565b60606040518083038185885af1158015614135573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061415a91906159b6565b5050505050565b505050565b505050565b606061417984845f85614182565b90509392505050565b6060824710156141c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016141be90615a76565b60405180910390fd5b6141d085614292565b61420f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161420690615ade565b60405180910390fd5b5f808673ffffffffffffffffffffffffffffffffffffffff1685876040516142379190615b36565b5f6040518083038185875af1925050503d805f8114614271576040519150601f19603f3d011682016040523d82523d5f602084013e614276565b606091505b50915091506142868282866142b4565b92505050949350505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606083156142c457829050614313565b5f835111156142d65782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161430a919061441b565b60405180910390fd5b9392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6143438261431a565b9050919050565b61435381614339565b82525050565b5f60208201905061436c5f83018461434a565b92915050565b5f61437c8261431a565b9050919050565b61438c81614372565b82525050565b5f6020820190506143a55f830184614383565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6143ed826143ab565b6143f781856143b5565b93506144078185602086016143c5565b614410816143d3565b840191505092915050565b5f6020820190508181035f83015261443381846143e3565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b61445581614339565b811461445f575f80fd5b50565b5f813590506144708161444c565b92915050565b5f819050919050565b61448881614476565b8114614492575f80fd5b50565b5f813590506144a38161447f565b92915050565b5f80604083850312156144bf576144be614444565b5b5f6144cc85828601614462565b92505060206144dd85828601614495565b9150509250929050565b5f8115159050919050565b6144fb816144e7565b82525050565b5f6020820190506145145f8301846144f2565b92915050565b61452381614476565b82525050565b5f60208201905061453c5f83018461451a565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b614580826143d3565b810181811067ffffffffffffffff8211171561459f5761459e61454a565b5b80604052505050565b5f6145b161443b565b90506145bd8282614577565b919050565b5f67ffffffffffffffff8211156145dc576145db61454a565b5b6145e5826143d3565b9050602081019050919050565b828183375f83830152505050565b5f61461261460d846145c2565b6145a8565b90508281526020810184848401111561462e5761462d614546565b5b6146398482856145f2565b509392505050565b5f82601f83011261465557614654614542565b5b8135614665848260208601614600565b91505092915050565b5f6020828403121561468357614682614444565b5b5f82013567ffffffffffffffff8111156146a05761469f614448565b5b6146ac84828501614641565b91505092915050565b5f61ffff82169050919050565b6146cb816146b5565b82525050565b5f6020820190506146e45f8301846146c2565b92915050565b6146f3816146b5565b81146146fd575f80fd5b50565b5f8135905061470e816146ea565b92915050565b5f805f806080858703121561472c5761472b614444565b5b5f61473987828801614700565b945050602061474a87828801614700565b935050604061475b87828801614700565b925050606061476c87828801614700565b91505092959194509250565b5f805f6060848603121561478f5761478e614444565b5b5f61479c86828701614462565b93505060206147ad86828701614462565b92505060406147be86828701614495565b9150509250925092565b5f602082840312156147dd576147dc614444565b5b5f6147ea84828501614495565b91505092915050565b6147fc816144e7565b8114614806575f80fd5b50565b5f81359050614817816147f3565b92915050565b5f6020828403121561483257614831614444565b5b5f61483f84828501614809565b91505092915050565b5f60ff82169050919050565b61485d81614848565b82525050565b5f6020820190506148765f830184614854565b92915050565b5f6020828403121561489157614890614444565b5b5f61489e84828501614462565b91505092915050565b5f819050919050565b5f6148ca6148c56148c08461431a565b6148a7565b61431a565b9050919050565b5f6148db826148b0565b9050919050565b5f6148ec826148d1565b9050919050565b6148fc816148e2565b82525050565b5f6020820190506149155f8301846148f3565b92915050565b5f806040838503121561493157614930614444565b5b5f61493e85828601614462565b925050602061494f85828601614809565b9150509250929050565b5f61496382614339565b9050919050565b61497381614959565b811461497d575f80fd5b50565b5f8135905061498e8161496a565b92915050565b5f80604083850312156149aa576149a9614444565b5b5f6149b785828601614980565b92505060206149c885828601614462565b9150509250929050565b5f80604083850312156149e8576149e7614444565b5b5f6149f585828601614462565b9250506020614a0685828601614462565b9150509250929050565b5f81519050614a1e8161444c565b92915050565b5f60208284031215614a3957614a38614444565b5b5f614a4684828501614a10565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680614a9357607f821691505b602082108103614aa657614aa5614a4f565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614ae382614476565b9150614aee83614476565b9250828203905081811115614b0657614b05614aac565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f614b4382614476565b9150614b4e83614476565b9250828202614b5c81614476565b91508282048414831517614b7357614b72614aac565b5b5092915050565b5f614b8482614476565b9150614b8f83614476565b9250828201905080821115614ba757614ba6614aac565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614be16020836143b5565b9150614bec82614bad565b602082019050919050565b5f6020820190508181035f830152614c0e81614bd5565b9050919050565b5f614c1f826146b5565b9150614c2a836146b5565b9250828201905061ffff811115614c4457614c43614aac565b5b92915050565b7f4d757374206b6565702066656573203c3d2033302500000000000000000000005f82015250565b5f614c7e6015836143b5565b9150614c8982614c4a565b602082019050919050565b5f6020820190508181035f830152614cab81614c72565b9050919050565b5f819050919050565b5f614cd5614cd0614ccb84614cb2565b6148a7565b614476565b9050919050565b614ce581614cbb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614d1d81614339565b82525050565b5f614d2e8383614d14565b60208301905092915050565b5f602082019050919050565b5f614d5082614ceb565b614d5a8185614cf5565b9350614d6583614d05565b805f5b83811015614d95578151614d7c8882614d23565b9750614d8783614d3a565b925050600181019050614d68565b5085935050505092915050565b5f608082019050614db55f830187614cdc565b8181036020830152614dc78186614d46565b9050614dd6604083018561434a565b614de3606083018461451a565b95945050505050565b7f4d757374206b65657020666565732062656c6f772033302500000000000000005f82015250565b5f614e206018836143b5565b9150614e2b82614dec565b602082019050919050565b5f6020820190508181035f830152614e4d81614e14565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115614ea957808604811115614e8557614e84614aac565b5b6001851615614e945780820291505b8081029050614ea285614e54565b9450614e69565b94509492505050565b5f82614ec15760019050614f7c565b81614ece575f9050614f7c565b8160018114614ee45760028114614eee57614f1d565b6001915050614f7c565b60ff841115614f0057614eff614aac565b5b8360020a915084821115614f1757614f16614aac565b5b50614f7c565b5060208310610133831016604e8410600b8410161715614f525782820a905083811115614f4d57614f4c614aac565b5b614f7c565b614f5f8484846001614e60565b92509050818404811115614f7657614f75614aac565b5b81810290505b9392505050565b5f614f8d82614476565b9150614f9883614848565b9250614fc57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614eb2565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61500482614476565b915061500f83614476565b92508261501f5761501e614fcd565b5b828204905092915050565b7f4d61782077616c6c6574206d7573742062652067726561746572207468616e205f8201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b5f6150846022836143b5565b915061508f8261502a565b604082019050919050565b5f6020820190508181035f8301526150b181615078565b9050919050565b7f43616e27742073657420300000000000000000000000000000000000000000005f82015250565b5f6150ec600b836143b5565b91506150f7826150b8565b602082019050919050565b5f6020820190508181035f830152615119816150e0565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665640000000000005f82015250565b5f615154601a836143b5565b915061515f82615120565b602082019050919050565b5f6020820190508181035f83015261518181615148565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6151e26025836143b5565b91506151ed82615188565b604082019050919050565b5f6020820190508181035f83015261520f816151d6565b9050919050565b7f77616c6c6574416464726573732063616e2774206265203020616464726573735f82015250565b5f61524a6020836143b5565b915061525582615216565b602082019050919050565b5f6020820190508181035f8301526152778161523e565b9050919050565b5f8151905061528c8161447f565b92915050565b5f602082840312156152a7576152a6614444565b5b5f6152b48482850161527e565b91505092915050565b5f60a0820190506152d05f83018861451a565b6152dd6020830187614cdc565b81810360408301526152ef8186614d46565b90506152fe606083018561434a565b61530b608083018461451a565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61536f6026836143b5565b915061537a82615315565b604082019050919050565b5f6020820190508181035f83015261539c81615363565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6153fd6024836143b5565b9150615408826153a3565b604082019050919050565b5f6020820190508181035f83015261542a816153f1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61548b6022836143b5565b915061549682615431565b604082019050919050565b5f6020820190508181035f8301526154b88161547f565b9050919050565b7f54726164696e67206973206e6f7420616374697665207965742e0000000000005f82015250565b5f6154f3601a836143b5565b91506154fe826154bf565b602082019050919050565b5f6020820190508181035f830152615520816154e7565b9050919050565b7f4d61782077616c6c6574206c696d6974207265616368656400000000000000005f82015250565b5f61555b6018836143b5565b915061556682615527565b602082019050919050565b5f6020820190508181035f8301526155888161554f565b9050919050565b5f60e0820190506155a25f83018a61451a565b6155af602083018961451a565b6155bc604083018861451a565b6155c9606083018761451a565b6155d660808301866144f2565b6155e360a08301856144f2565b6155f060c08301846144f2565b98975050505050505050565b5f60408201905061560f5f83018561434a565b61561c602083018461451a565b9392505050565b5f81905092915050565b50565b5f61563b5f83615623565b91506156468261562d565b5f82019050919050565b5f61565a82615630565b9150819050919050565b5f610100820190506156785f83018b61451a565b615685602083018a61451a565b615692604083018961451a565b61569f606083018861451a565b6156ac608083018761451a565b6156b960a083018661451a565b6156c660c083018561451a565b6156d360e083018461451a565b9998505050505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61573a6025836143b5565b9150615745826156e0565b604082019050919050565b5f6020820190508181035f8301526157678161572e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6157c86023836143b5565b91506157d38261576e565b604082019050919050565b5f6020820190508181035f8301526157f5816157bc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6158566026836143b5565b9150615861826157fc565b604082019050919050565b5f6020820190508181035f8301526158838161584a565b9050919050565b5f81519050615898816147f3565b92915050565b5f602082840312156158b3576158b2614444565b5b5f6158c08482850161588a565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e5f8201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b5f615923602a836143b5565b915061592e826158c9565b604082019050919050565b5f6020820190508181035f83015261595081615917565b9050919050565b5f60c08201905061596a5f83018961434a565b615977602083018861451a565b6159846040830187614cdc565b6159916060830186614cdc565b61599e608083018561434a565b6159ab60a083018461451a565b979650505050505050565b5f805f606084860312156159cd576159cc614444565b5b5f6159da8682870161527e565b93505060206159eb8682870161527e565b92505060406159fc8682870161527e565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f5f8201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b5f615a606026836143b5565b9150615a6b82615a06565b604082019050919050565b5f6020820190508181035f830152615a8d81615a54565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000005f82015250565b5f615ac8601d836143b5565b9150615ad382615a94565b602082019050919050565b5f6020820190508181035f830152615af581615abc565b9050919050565b5f81519050919050565b5f615b1082615afc565b615b1a8185615623565b9350615b2a8185602086016143c5565b80840191505092915050565b5f615b418284615b06565b91508190509291505056fea26469706673582212200bfdeb9ad2ccc0b0ddf0476e736cc3c624074b647a7836d2b269b8dfc325118064736f6c634300081a0033