60806040526000600f5560006010556001601260006101000a81548160ff0219169083151502179055506040518060400160405280601d81526020017f4d61736f6e2057686974656c69737420566572696669636174696f6e3a0000008152506013908051906020019062000076929190620002b3565b5060405180602001604052806000815250601490805190602001906200009e929190620002b3565b50348015620000ac57600080fd5b50604051620069dc380380620069dc8339818101604052810190620000d291906200075f565b87878160009080519060200190620000ec929190620002b3565b50806001908051906020019062000105929190620002b3565b505050620001286200011c620001e560201b60201c565b620001ed60201b60201c565b8585604051620001389062000344565b6200014592919062000a40565b604051809103906000f08015801562000162573d6000803e3d6000fd5b50600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600d8190555082600b8190555081600c81905550600c54600b54620001ca919062000aaa565b600a8190555080600e81905550505050505050505062000b6c565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002c19062000b36565b90600052602060002090601f016020900481019282620002e5576000855562000331565b82601f106200030057805160ff191683800117855562000331565b8280016001018555821562000331579182015b828111156200033057825182559160200191906001019062000313565b5b50905062000340919062000352565b5090565b6117f280620051ea83390190565b5b808211156200036d57600081600090555060010162000353565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620003da826200038f565b810181811067ffffffffffffffff82111715620003fc57620003fb620003a0565b5b80604052505050565b60006200041162000371565b90506200041f8282620003cf565b919050565b600067ffffffffffffffff821115620004425762000441620003a0565b5b6200044d826200038f565b9050602081019050919050565b60005b838110156200047a5780820151818401526020810190506200045d565b838111156200048a576000848401525b50505050565b6000620004a7620004a18462000424565b62000405565b905082815260208101848484011115620004c657620004c56200038a565b5b620004d38482856200045a565b509392505050565b600082601f830112620004f357620004f262000385565b5b81516200050584826020860162000490565b91505092915050565b600067ffffffffffffffff8211156200052c576200052b620003a0565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200056f8262000542565b9050919050565b620005818162000562565b81146200058d57600080fd5b50565b600081519050620005a18162000576565b92915050565b6000620005be620005b8846200050e565b62000405565b90508083825260208201905060208402830185811115620005e457620005e36200053d565b5b835b81811015620006115780620005fc888262000590565b845260208401935050602081019050620005e6565b5050509392505050565b600082601f83011262000633576200063262000385565b5b815162000645848260208601620005a7565b91505092915050565b600067ffffffffffffffff8211156200066c576200066b620003a0565b5b602082029050602081019050919050565b6000819050919050565b62000692816200067d565b81146200069e57600080fd5b50565b600081519050620006b28162000687565b92915050565b6000620006cf620006c9846200064e565b62000405565b90508083825260208201905060208402830185811115620006f557620006f46200053d565b5b835b818110156200072257806200070d8882620006a1565b845260208401935050602081019050620006f7565b5050509392505050565b600082601f83011262000744576200074362000385565b5b815162000756848260208601620006b8565b91505092915050565b600080600080600080600080610100898b0312156200078357620007826200037b565b5b600089015167ffffffffffffffff811115620007a457620007a362000380565b5b620007b28b828c01620004db565b985050602089015167ffffffffffffffff811115620007d657620007d562000380565b5b620007e48b828c01620004db565b975050604089015167ffffffffffffffff81111562000808576200080762000380565b5b620008168b828c016200061b565b965050606089015167ffffffffffffffff8111156200083a576200083962000380565b5b620008488b828c016200072c565b95505060806200085b8b828c01620006a1565b94505060a06200086e8b828c01620006a1565b93505060c0620008818b828c01620006a1565b92505060e0620008948b828c01620006a1565b9150509295985092959890939650565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b620008db8162000562565b82525050565b6000620008ef8383620008d0565b60208301905092915050565b6000602082019050919050565b60006200091582620008a4565b620009218185620008af565b93506200092e83620008c0565b8060005b8381101562000965578151620009498882620008e1565b97506200095683620008fb565b92505060018101905062000932565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b620009a9816200067d565b82525050565b6000620009bd83836200099e565b60208301905092915050565b6000602082019050919050565b6000620009e38262000972565b620009ef81856200097d565b9350620009fc836200098e565b8060005b8381101562000a3357815162000a178882620009af565b975062000a2483620009c9565b92505060018101905062000a00565b5085935050505092915050565b6000604082019050818103600083015262000a5c818562000908565b9050818103602083015262000a728184620009d6565b90509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000ab7826200067d565b915062000ac4836200067d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000afc5762000afb62000a7b565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b4f57607f821691505b6020821081141562000b665762000b6562000b07565b5b50919050565b61466e8062000b7c6000396000f3fe6080604052600436106102085760003560e01c806370a0823111610118578063a22cb465116100a0578063e985e9c51161006f578063e985e9c51461073e578063eb8d24441461077b578063f2fde38b146107a6578063f3a04af4146107cf578063f47c84c5146107fa57610212565b8063a22cb46514610684578063b88d4fde146106ad578063c87b56dd146106d6578063d2d8cb671461071357610212565b806378231978116100e757806378231978146105b15780638da5cb5b146105dc57806391b7f5ed1461060757806395d89b41146106305780639d6986561461065b57610212565b806370a0823114610504578063715018a614610541578063752312a914610558578063776bebff1461057457610212565b806334918dfd1161019b57806355f804b31161016a57806355f804b31461041d578063571d34af146104465780636352211e14610471578063674d13c8146104ae57806368fc68c7146104d957610212565b806334918dfd1461038b57806339a2e659146103a257806342842e0e146103cb57806342966c68146103f457610212565b8063162094c4116101d7578063162094c4146102e557806318160ddd1461030e578063191655871461033957806323b872dd1461036257610212565b806301ffc9a71461021757806306fdde0314610254578063081812fc1461027f578063095ea7b3146102bc57610212565b3661021257600080fd5b600080fd5b34801561022357600080fd5b5061023e60048036038101906102399190612c51565b610825565b60405161024b9190612c99565b60405180910390f35b34801561026057600080fd5b50610269610907565b6040516102769190612d4d565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a19190612da5565b610999565b6040516102b39190612e13565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190612e5a565b610a1e565b005b3480156102f157600080fd5b5061030c60048036038101906103079190612fcf565b610b36565b005b34801561031a57600080fd5b50610323610bc0565b604051610330919061303a565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190613093565b610bd7565b005b34801561036e57600080fd5b50610389600480360381019061038491906130c0565b610ce3565b005b34801561039757600080fd5b506103a0610d43565b005b3480156103ae57600080fd5b506103c960048036038101906103c49190612da5565b610deb565b005b3480156103d757600080fd5b506103f260048036038101906103ed91906130c0565b610e71565b005b34801561040057600080fd5b5061041b60048036038101906104169190612da5565b610e91565b005b34801561042957600080fd5b50610444600480360381019061043f9190613173565b610eed565b005b34801561045257600080fd5b5061045b610f7f565b604051610468919061303a565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190612da5565b610f85565b6040516104a59190612e13565b60405180910390f35b3480156104ba57600080fd5b506104c3611037565b6040516104d0919061303a565b60405180910390f35b3480156104e557600080fd5b506104ee61103d565b6040516104fb919061303a565b60405180910390f35b34801561051057600080fd5b5061052b600480360381019061052691906131c0565b611043565b604051610538919061303a565b60405180910390f35b34801561054d57600080fd5b506105566110fb565b005b610572600480360381019061056d9190612fcf565b611183565b005b34801561058057600080fd5b5061059b600480360381019061059691906131c0565b611488565b6040516105a8919061303a565b60405180910390f35b3480156105bd57600080fd5b506105c6611540565b6040516105d3919061303a565b60405180910390f35b3480156105e857600080fd5b506105f1611546565b6040516105fe9190612e13565b60405180910390f35b34801561061357600080fd5b5061062e60048036038101906106299190612da5565b611570565b005b34801561063c57600080fd5b506106456115f6565b6040516106529190612d4d565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190613243565b611688565b005b34801561069057600080fd5b506106ab60048036038101906106a691906132bc565b6118d1565b005b3480156106b957600080fd5b506106d460048036038101906106cf919061339d565b611a52565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190612da5565b611ab4565b60405161070a9190612d4d565b60405180910390f35b34801561071f57600080fd5b50610728611be5565b604051610735919061303a565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190613420565b611beb565b6040516107729190612c99565b60405180910390f35b34801561078757600080fd5b50610790611c7f565b60405161079d9190612c99565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c891906131c0565b611c92565b005b3480156107db57600080fd5b506107e4611d8a565b6040516107f1919061303a565b60405180910390f35b34801561080657600080fd5b5061080f611d90565b60405161081c919061303a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108f057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061090057506108ff82611d96565b5b9050919050565b6060600080546109169061348f565b80601f01602080910402602001604051908101604052809291908181526020018280546109429061348f565b801561098f5780601f106109645761010080835404028352916020019161098f565b820191906000526020600020905b81548152906001019060200180831161097257829003601f168201915b5050505050905090565b60006109a482611e00565b6109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da90613533565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a2982610f85565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a91906135c5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ab9611e6c565b73ffffffffffffffffffffffffffffffffffffffff161480610ae85750610ae781610ae2611e6c565b611beb565b5b610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e90613657565b60405180910390fd5b610b318383611e74565b505050565b610b3e611e6c565b73ffffffffffffffffffffffffffffffffffffffff16610b5c611546565b73ffffffffffffffffffffffffffffffffffffffff1614610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba9906136c3565b60405180910390fd5b610bbc8282611f2d565b5050565b6000600f54601054610bd29190613712565b905090565b610bdf611e6c565b73ffffffffffffffffffffffffffffffffffffffff16610bfd611546565b73ffffffffffffffffffffffffffffffffffffffff1614610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a906136c3565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166319165587826040518263ffffffff1660e01b8152600401610cae9190613777565b600060405180830381600087803b158015610cc857600080fd5b505af1158015610cdc573d6000803e3d6000fd5b5050505050565b610cf4610cee611e6c565b82611f59565b610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a90613804565b60405180910390fd5b610d3e838383612037565b505050565b610d4b611e6c565b73ffffffffffffffffffffffffffffffffffffffff16610d69611546565b73ffffffffffffffffffffffffffffffffffffffff1614610dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db6906136c3565b60405180910390fd5b601260009054906101000a900460ff1615601260006101000a81548160ff021916908315150217905550565b610df3611e6c565b73ffffffffffffffffffffffffffffffffffffffff16610e11611546565b73ffffffffffffffffffffffffffffffffffffffff1614610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e906136c3565b60405180910390fd5b80600e8190555050565b610e8c83838360405180602001604052806000815250611a52565b505050565b610ea2610e9c611e6c565b82611f59565b610ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed890613896565b60405180910390fd5b610eea81612293565b50565b610ef5611e6c565b73ffffffffffffffffffffffffffffffffffffffff16610f13611546565b73ffffffffffffffffffffffffffffffffffffffff1614610f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f60906136c3565b60405180910390fd5b818160149190610f7a929190612a7c565b505050565b600e5481565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561102e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102590613928565b60405180910390fd5b80915050919050565b600f5481565b600b5481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab906139ba565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611103611e6c565b73ffffffffffffffffffffffffffffffffffffffff16611121611546565b73ffffffffffffffffffffffffffffffffffffffff1614611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e906136c3565b60405180910390fd5b611181600061229f565b565b601260009054906101000a900460ff166111d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c990613a4c565b60405180910390fd5b600c54826010546111e39190613712565b1115611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b90613ade565b60405180910390fd5b3482600d546112339190613afe565b1115611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b90613ba4565b60405180910390fd5b600e5482601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112c29190613712565b1115611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fa90613c36565b60405180910390fd5b81601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113529190613712565b9250508190555060005b8281101561141a5760006001601054600b546113789190613712565b6113829190613712565b90506001601060008282546113979190613712565b925050819055506113a83382612365565b6113b28184611f2d565b803373ffffffffffffffffffffffffffffffffffffffff167fb4c03061fb5b7fed76389d5af8f2e0ddb09f8c70d1333abbb62582835e10accb6001600d546040516113fe929190613c9b565b60405180910390a350808061141290613cc4565b91505061135c565b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611483573d6000803e3d6000fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f090613d59565b60405180910390fd5b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60105481565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611578611e6c565b73ffffffffffffffffffffffffffffffffffffffff16611596611546565b73ffffffffffffffffffffffffffffffffffffffff16146115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e3906136c3565b60405180910390fd5b80600d8190555050565b6060600180546116059061348f565b80601f01602080910402602001604051908101604052809291908181526020018280546116319061348f565b801561167e5780601f106116535761010080835404028352916020019161167e565b820191906000526020600020905b81548152906001019060200180831161166157829003601f168201915b5050505050905090565b611690611e6c565b73ffffffffffffffffffffffffffffffffffffffff166116ae611546565b73ffffffffffffffffffffffffffffffffffffffff1614611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fb906136c3565b60405180910390fd5b600a5461170f610bc0565b1061174f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174690613dc5565b60405180910390fd5b600b5482829050600f546117639190613712565b11156117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b90613e57565b60405180910390fd5b60005b828290508110156118cc5760008383838181106117c7576117c6613e77565b5b90506020020135141561180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180690613ef2565b60405180910390fd5b6001600f60008282546118229190613712565b9250508190555061184c338484848181106118405761183f613e77565b5b90506020020135612365565b82828281811061185f5761185e613e77565b5b905060200201353373ffffffffffffffffffffffffffffffffffffffff167fb4c03061fb5b7fed76389d5af8f2e0ddb09f8c70d1333abbb62582835e10accb6001600d546040516118b1929190613c9b565b60405180910390a380806118c490613cc4565b9150506117a7565b505050565b6118d9611e6c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e90613f5e565b60405180910390fd5b8060056000611954611e6c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611a01611e6c565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611a469190612c99565b60405180910390a35050565b611a63611a5d611e6c565b83611f59565b611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9990613804565b60405180910390fd5b611aae84848484612383565b50505050565b6060611abf82611e00565b611afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af590613fca565b60405180910390fd5b6000600960008481526020019081526020016000208054611b1e9061348f565b80601f0160208091040260200160405190810160405280929190818152602001828054611b4a9061348f565b8015611b975780601f10611b6c57610100808354040283529160200191611b97565b820191906000526020600020905b815481529060010190602001808311611b7a57829003601f168201915b50505050509050600081511115611bb15780915050611be0565b6014611bbc846123df565b604051602001611bcd9291906140ba565b6040516020818303038152906040529150505b919050565b600d5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b601260009054906101000a900460ff1681565b611c9a611e6c565b73ffffffffffffffffffffffffffffffffffffffff16611cb8611546565b73ffffffffffffffffffffffffffffffffffffffff1614611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d05906136c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7590614150565b60405180910390fd5b611d878161229f565b50565b600c5481565b600a5481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611ee783610f85565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b80600960008481526020019081526020016000209080519060200190611f54929190612b02565b505050565b6000611f6482611e00565b611fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9a906141e2565b60405180910390fd5b6000611fae83610f85565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061201d57508373ffffffffffffffffffffffffffffffffffffffff1661200584610999565b73ffffffffffffffffffffffffffffffffffffffff16145b8061202e575061202d8185611beb565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661205782610f85565b73ffffffffffffffffffffffffffffffffffffffff16146120ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a490614274565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561211d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211490614306565b60405180910390fd5b612128838383612540565b612133600082611e74565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121839190614326565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121da9190613712565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61229c81612545565b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61237f828260405180602001604052806000815250612598565b5050565b61238e848484612037565b61239a848484846125f3565b6123d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d0906143cc565b60405180910390fd5b50505050565b60606000821415612427576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061253b565b600082905060005b6000821461245957808061244290613cc4565b915050600a82612452919061441b565b915061242f565b60008167ffffffffffffffff81111561247557612474612ea4565b5b6040519080825280601f01601f1916602001820160405280156124a75781602001600182028036833780820191505090505b5090505b60008514612534576001826124c09190614326565b9150600a856124cf919061444c565b60306124db9190613712565b60f81b8183815181106124f1576124f0613e77565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561252d919061441b565b94506124ab565b8093505050505b919050565b505050565b61254e8161278a565b600060066000838152602001908152602001600020805461256e9061348f565b905014612595576006600082815260200190815260200160002060006125949190612b88565b5b50565b6125a2838361289b565b6125af60008484846125f3565b6125ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e5906143cc565b60405180910390fd5b505050565b60006126148473ffffffffffffffffffffffffffffffffffffffff16612a69565b1561277d578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261263d611e6c565b8786866040518563ffffffff1660e01b815260040161265f94939291906144d2565b602060405180830381600087803b15801561267957600080fd5b505af19250505080156126aa57506040513d601f19601f820116820180604052508101906126a79190614533565b60015b61272d573d80600081146126da576040519150601f19603f3d011682016040523d82523d6000602084013e6126df565b606091505b50600081511415612725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271c906143cc565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612782565b600190505b949350505050565b600061279582610f85565b90506127a381600084612540565b6127ae600083611e74565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127fe9190614326565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561290b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612902906145ac565b60405180910390fd5b61291481611e00565b15612954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294b90614618565b60405180910390fd5b61296060008383612540565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129b09190613712565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b828054612a889061348f565b90600052602060002090601f016020900481019282612aaa5760008555612af1565b82601f10612ac357803560ff1916838001178555612af1565b82800160010185558215612af1579182015b82811115612af0578235825591602001919060010190612ad5565b5b509050612afe9190612bc8565b5090565b828054612b0e9061348f565b90600052602060002090601f016020900481019282612b305760008555612b77565b82601f10612b4957805160ff1916838001178555612b77565b82800160010185558215612b77579182015b82811115612b76578251825591602001919060010190612b5b565b5b509050612b849190612bc8565b5090565b508054612b949061348f565b6000825580601f10612ba65750612bc5565b601f016020900490600052602060002090810190612bc49190612bc8565b5b50565b5b80821115612be1576000816000905550600101612bc9565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612c2e81612bf9565b8114612c3957600080fd5b50565b600081359050612c4b81612c25565b92915050565b600060208284031215612c6757612c66612bef565b5b6000612c7584828501612c3c565b91505092915050565b60008115159050919050565b612c9381612c7e565b82525050565b6000602082019050612cae6000830184612c8a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cee578082015181840152602081019050612cd3565b83811115612cfd576000848401525b50505050565b6000601f19601f8301169050919050565b6000612d1f82612cb4565b612d298185612cbf565b9350612d39818560208601612cd0565b612d4281612d03565b840191505092915050565b60006020820190508181036000830152612d678184612d14565b905092915050565b6000819050919050565b612d8281612d6f565b8114612d8d57600080fd5b50565b600081359050612d9f81612d79565b92915050565b600060208284031215612dbb57612dba612bef565b5b6000612dc984828501612d90565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dfd82612dd2565b9050919050565b612e0d81612df2565b82525050565b6000602082019050612e286000830184612e04565b92915050565b612e3781612df2565b8114612e4257600080fd5b50565b600081359050612e5481612e2e565b92915050565b60008060408385031215612e7157612e70612bef565b5b6000612e7f85828601612e45565b9250506020612e9085828601612d90565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612edc82612d03565b810181811067ffffffffffffffff82111715612efb57612efa612ea4565b5b80604052505050565b6000612f0e612be5565b9050612f1a8282612ed3565b919050565b600067ffffffffffffffff821115612f3a57612f39612ea4565b5b612f4382612d03565b9050602081019050919050565b82818337600083830152505050565b6000612f72612f6d84612f1f565b612f04565b905082815260208101848484011115612f8e57612f8d612e9f565b5b612f99848285612f50565b509392505050565b600082601f830112612fb657612fb5612e9a565b5b8135612fc6848260208601612f5f565b91505092915050565b60008060408385031215612fe657612fe5612bef565b5b6000612ff485828601612d90565b925050602083013567ffffffffffffffff81111561301557613014612bf4565b5b61302185828601612fa1565b9150509250929050565b61303481612d6f565b82525050565b600060208201905061304f600083018461302b565b92915050565b600061306082612dd2565b9050919050565b61307081613055565b811461307b57600080fd5b50565b60008135905061308d81613067565b92915050565b6000602082840312156130a9576130a8612bef565b5b60006130b78482850161307e565b91505092915050565b6000806000606084860312156130d9576130d8612bef565b5b60006130e786828701612e45565b93505060206130f886828701612e45565b925050604061310986828701612d90565b9150509250925092565b600080fd5b600080fd5b60008083601f84011261313357613132612e9a565b5b8235905067ffffffffffffffff8111156131505761314f613113565b5b60208301915083600182028301111561316c5761316b613118565b5b9250929050565b6000806020838503121561318a57613189612bef565b5b600083013567ffffffffffffffff8111156131a8576131a7612bf4565b5b6131b48582860161311d565b92509250509250929050565b6000602082840312156131d6576131d5612bef565b5b60006131e484828501612e45565b91505092915050565b60008083601f84011261320357613202612e9a565b5b8235905067ffffffffffffffff8111156132205761321f613113565b5b60208301915083602082028301111561323c5761323b613118565b5b9250929050565b6000806020838503121561325a57613259612bef565b5b600083013567ffffffffffffffff81111561327857613277612bf4565b5b613284858286016131ed565b92509250509250929050565b61329981612c7e565b81146132a457600080fd5b50565b6000813590506132b681613290565b92915050565b600080604083850312156132d3576132d2612bef565b5b60006132e185828601612e45565b92505060206132f2858286016132a7565b9150509250929050565b600067ffffffffffffffff82111561331757613316612ea4565b5b61332082612d03565b9050602081019050919050565b600061334061333b846132fc565b612f04565b90508281526020810184848401111561335c5761335b612e9f565b5b613367848285612f50565b509392505050565b600082601f83011261338457613383612e9a565b5b813561339484826020860161332d565b91505092915050565b600080600080608085870312156133b7576133b6612bef565b5b60006133c587828801612e45565b94505060206133d687828801612e45565b93505060406133e787828801612d90565b925050606085013567ffffffffffffffff81111561340857613407612bf4565b5b6134148782880161336f565b91505092959194509250565b6000806040838503121561343757613436612bef565b5b600061344585828601612e45565b925050602061345685828601612e45565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134a757607f821691505b602082108114156134bb576134ba613460565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b600061351d602c83612cbf565b9150613528826134c1565b604082019050919050565b6000602082019050818103600083015261354c81613510565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006135af602183612cbf565b91506135ba82613553565b604082019050919050565b600060208201905081810360008301526135de816135a2565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000613641603883612cbf565b915061364c826135e5565b604082019050919050565b6000602082019050818103600083015261367081613634565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136ad602083612cbf565b91506136b882613677565b602082019050919050565b600060208201905081810360008301526136dc816136a0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061371d82612d6f565b915061372883612d6f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561375d5761375c6136e3565b5b828201905092915050565b61377181613055565b82525050565b600060208201905061378c6000830184613768565b92915050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b60006137ee603183612cbf565b91506137f982613792565b604082019050919050565b6000602082019050818103600083015261381d816137e1565b9050919050565b7f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656400000000000000000000000000000000602082015250565b6000613880603083612cbf565b915061388b82613824565b604082019050919050565b600060208201905081810360008301526138af81613873565b9050919050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000613912602983612cbf565b915061391d826138b6565b604082019050919050565b6000602082019050818103600083015261394181613905565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b60006139a4602a83612cbf565b91506139af82613948565b604082019050919050565b600060208201905081810360008301526139d381613997565b9050919050565b7f53616c65206d7573742062652061637469766520746f206d696e74206120746f60008201527f6b656e2e00000000000000000000000000000000000000000000000000000000602082015250565b6000613a36602483612cbf565b9150613a41826139da565b604082019050919050565b60006020820190508181036000830152613a6581613a29565b9050919050565b7f507572636861736520776f756c6420657863656564206d617820737570706c7960008201527f206f6620746f6b656e7320666f722073616c652e000000000000000000000000602082015250565b6000613ac8603483612cbf565b9150613ad382613a6c565b604082019050919050565b60006020820190508181036000830152613af781613abb565b9050919050565b6000613b0982612d6f565b9150613b1483612d6f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b4d57613b4c6136e3565b5b828202905092915050565b7f45746865722076616c75652073656e74206973206e6f7420636f727265637400600082015250565b6000613b8e601f83612cbf565b9150613b9982613b58565b602082019050919050565b60006020820190508181036000830152613bbd81613b81565b9050919050565b7f596f752063616e6e6f74206d696e742074686973206d616e7920746f6b656e7360008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c20602183612cbf565b9150613c2b82613bc4565b604082019050919050565b60006020820190508181036000830152613c4f81613c13565b9050919050565b6000819050919050565b6000819050919050565b6000613c85613c80613c7b84613c56565b613c60565b612d6f565b9050919050565b613c9581613c6a565b82525050565b6000604082019050613cb06000830185613c8c565b613cbd602083018461302b565b9392505050565b6000613ccf82612d6f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d0257613d016136e3565b5b600182019050919050565b7f5a65726f2061646472657373206e6f74206f6e207075626c6963206c69737400600082015250565b6000613d43601f83612cbf565b9150613d4e82613d0d565b602082019050919050565b60006020820190508181036000830152613d7281613d36565b9050919050565b7f416c6c20746f6b656e732068617665206265656e206d696e7465642e00000000600082015250565b6000613daf601c83612cbf565b9150613dba82613d79565b602082019050919050565b60006020820190508181036000830152613dde81613da2565b9050919050565b7f4e6f7420656e6f75676820746f6b656e73206c65667420696e2072657365727660008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e41602283612cbf565b9150613e4c82613de5565b604082019050919050565b60006020820190508181036000830152613e7081613e34565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f3020746f6b656e20646f6573206e6f7420657869737400000000000000000000600082015250565b6000613edc601683612cbf565b9150613ee782613ea6565b602082019050919050565b60006020820190508181036000830152613f0b81613ecf565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613f48601983612cbf565b9150613f5382613f12565b602082019050919050565b60006020820190508181036000830152613f7781613f3b565b9050919050565b7f546f6b656e20646f6573206e6f74206578697374000000000000000000000000600082015250565b6000613fb4601483612cbf565b9150613fbf82613f7e565b602082019050919050565b60006020820190508181036000830152613fe381613fa7565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b600081546140178161348f565b6140218186613fea565b9450600182166000811461403c576001811461404d57614080565b60ff19831686528186019350614080565b61405685613ff5565b60005b8381101561407857815481890152600182019150602081019050614059565b838801955050505b50505092915050565b600061409482612cb4565b61409e8185613fea565b93506140ae818560208601612cd0565b80840191505092915050565b60006140c6828561400a565b91506140d28284614089565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061413a602683612cbf565b9150614145826140de565b604082019050919050565b600060208201905081810360008301526141698161412d565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b60006141cc602c83612cbf565b91506141d782614170565b604082019050919050565b600060208201905081810360008301526141fb816141bf565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b600061425e602983612cbf565b915061426982614202565b604082019050919050565b6000602082019050818103600083015261428d81614251565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006142f0602483612cbf565b91506142fb82614294565b604082019050919050565b6000602082019050818103600083015261431f816142e3565b9050919050565b600061433182612d6f565b915061433c83612d6f565b92508282101561434f5761434e6136e3565b5b828203905092915050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006143b6603283612cbf565b91506143c18261435a565b604082019050919050565b600060208201905081810360008301526143e5816143a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061442682612d6f565b915061443183612d6f565b925082614441576144406143ec565b5b828204905092915050565b600061445782612d6f565b915061446283612d6f565b925082614472576144716143ec565b5b828206905092915050565b600081519050919050565b600082825260208201905092915050565b60006144a48261447d565b6144ae8185614488565b93506144be818560208601612cd0565b6144c781612d03565b840191505092915050565b60006080820190506144e76000830187612e04565b6144f46020830186612e04565b614501604083018561302b565b81810360608301526145138184614499565b905095945050505050565b60008151905061452d81612c25565b92915050565b60006020828403121561454957614548612bef565b5b60006145578482850161451e565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000614596602083612cbf565b91506145a182614560565b602082019050919050565b600060208201905081810360008301526145c581614589565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614602601c83612cbf565b915061460d826145cc565b602082019050919050565b60006020820190508181036000830152614631816145f5565b905091905056fea26469706673582212204ada8a883177db73d27a9e9499b42fe00e436b6c082804f8ae8efb851593f98a64736f6c634300080900336080604052604051620017f2380380620017f2833981810160405281019062000029919062000668565b805182511462000070576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000679062000774565b60405180910390fd5b6000825111620000b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ae90620007e6565b60405180910390fd5b60005b8251811015620001265762000110838281518110620000de57620000dd62000808565b5b6020026020010151838381518110620000fc57620000fb62000808565b5b60200260200101516200012f60201b60201c565b80806200011d9062000866565b915050620000ba565b50505062000b02565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000199906200092a565b60405180910390fd5b60008111620001e8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001df906200099c565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146200026d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002649062000a34565b60405180910390fd5b6004829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060005462000324919062000a56565b6000819055507f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac82826040516200035d92919062000ad5565b60405180910390a15050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620003cd8262000382565b810181811067ffffffffffffffff82111715620003ef57620003ee62000393565b5b80604052505050565b60006200040462000369565b9050620004128282620003c2565b919050565b600067ffffffffffffffff82111562000435576200043462000393565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000478826200044b565b9050919050565b6200048a816200046b565b81146200049657600080fd5b50565b600081519050620004aa816200047f565b92915050565b6000620004c7620004c18462000417565b620003f8565b90508083825260208201905060208402830185811115620004ed57620004ec62000446565b5b835b818110156200051a578062000505888262000499565b845260208401935050602081019050620004ef565b5050509392505050565b600082601f8301126200053c576200053b6200037d565b5b81516200054e848260208601620004b0565b91505092915050565b600067ffffffffffffffff82111562000575576200057462000393565b5b602082029050602081019050919050565b6000819050919050565b6200059b8162000586565b8114620005a757600080fd5b50565b600081519050620005bb8162000590565b92915050565b6000620005d8620005d28462000557565b620003f8565b90508083825260208201905060208402830185811115620005fe57620005fd62000446565b5b835b818110156200062b5780620006168882620005aa565b84526020840193505060208101905062000600565b5050509392505050565b600082601f8301126200064d576200064c6200037d565b5b81516200065f848260208601620005c1565b91505092915050565b6000806040838503121562000682576200068162000373565b5b600083015167ffffffffffffffff811115620006a357620006a262000378565b5b620006b18582860162000524565b925050602083015167ffffffffffffffff811115620006d557620006d462000378565b5b620006e38582860162000635565b9150509250929050565b600082825260208201905092915050565b7f5061796d656e7453706c69747465723a2070617965657320616e64207368617260008201527f6573206c656e677468206d69736d617463680000000000000000000000000000602082015250565b60006200075c603283620006ed565b91506200076982620006fe565b604082019050919050565b600060208201905081810360008301526200078f816200074d565b9050919050565b7f5061796d656e7453706c69747465723a206e6f20706179656573000000000000600082015250565b6000620007ce601a83620006ed565b9150620007db8262000796565b602082019050919050565b600060208201905081810360008301526200080181620007bf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008738262000586565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620008a957620008a862000837565b5b600182019050919050565b7f5061796d656e7453706c69747465723a206163636f756e74206973207468652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b600062000912602c83620006ed565b91506200091f82620008b4565b604082019050919050565b60006020820190508181036000830152620009458162000903565b9050919050565b7f5061796d656e7453706c69747465723a20736861726573206172652030000000600082015250565b600062000984601d83620006ed565b915062000991826200094c565b602082019050919050565b60006020820190508181036000830152620009b78162000975565b9050919050565b7f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960008201527f2068617320736861726573000000000000000000000000000000000000000000602082015250565b600062000a1c602b83620006ed565b915062000a2982620009be565b604082019050919050565b6000602082019050818103600083015262000a4f8162000a0d565b9050919050565b600062000a638262000586565b915062000a708362000586565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000aa85762000aa762000837565b5b828201905092915050565b62000abe816200046b565b82525050565b62000acf8162000586565b82525050565b600060408201905062000aec600083018562000ab3565b62000afb602083018462000ac4565b9392505050565b610ce08062000b126000396000f3fe6080604052600436106100595760003560e01c806319165587146100a55780633a98ef39146100ce5780638b83209b146100f95780639852595c14610136578063ce7c2ac214610173578063e33b7de3146101b0576100a0565b366100a0577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7706100876101db565b34604051610096929190610686565b60405180910390a1005b600080fd5b3480156100b157600080fd5b506100cc60048036038101906100c791906106f2565b6101e3565b005b3480156100da57600080fd5b506100e361044b565b6040516100f0919061071f565b60405180910390f35b34801561010557600080fd5b50610120600480360381019061011b9190610766565b610454565b60405161012d9190610793565b60405180910390f35b34801561014257600080fd5b5061015d600480360381019061015891906107da565b61049c565b60405161016a919061071f565b60405180910390f35b34801561017f57600080fd5b5061019a600480360381019061019591906107da565b6104e5565b6040516101a7919061071f565b60405180910390f35b3480156101bc57600080fd5b506101c561052e565b6040516101d2919061071f565b60405180910390f35b600033905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025c9061088a565b60405180910390fd5b60006001544761027591906108d9565b90506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600054600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484610307919061092f565b61031191906109b8565b61031b91906109e9565b90506000811415610361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035890610a8f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103ac91906108d9565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806001546103fd91906108d9565b60018190555061040d8382610538565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056838260405161043e929190610b0e565b60405180910390a1505050565b60008054905090565b60006004828154811061046a57610469610b37565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600154905090565b8047101561057b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057290610bb2565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516105a190610c03565b60006040518083038185875af1925050503d80600081146105de576040519150601f19603f3d011682016040523d82523d6000602084013e6105e3565b606091505b5050905080610627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061e90610c8a565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106578261062c565b9050919050565b6106678161064c565b82525050565b6000819050919050565b6106808161066d565b82525050565b600060408201905061069b600083018561065e565b6106a86020830184610677565b9392505050565b600080fd5b60006106bf8261062c565b9050919050565b6106cf816106b4565b81146106da57600080fd5b50565b6000813590506106ec816106c6565b92915050565b600060208284031215610708576107076106af565b5b6000610716848285016106dd565b91505092915050565b60006020820190506107346000830184610677565b92915050565b6107438161066d565b811461074e57600080fd5b50565b6000813590506107608161073a565b92915050565b60006020828403121561077c5761077b6106af565b5b600061078a84828501610751565b91505092915050565b60006020820190506107a8600083018461065e565b92915050565b6107b78161064c565b81146107c257600080fd5b50565b6000813590506107d4816107ae565b92915050565b6000602082840312156107f0576107ef6106af565b5b60006107fe848285016107c5565b91505092915050565b600082825260208201905092915050565b7f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060008201527f7368617265730000000000000000000000000000000000000000000000000000602082015250565b6000610874602683610807565b915061087f82610818565b604082019050919050565b600060208201905081810360008301526108a381610867565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108e48261066d565b91506108ef8361066d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610924576109236108aa565b5b828201905092915050565b600061093a8261066d565b91506109458361066d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561097e5761097d6108aa565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006109c38261066d565b91506109ce8361066d565b9250826109de576109dd610989565b5b828204905092915050565b60006109f48261066d565b91506109ff8361066d565b925082821015610a1257610a116108aa565b5b828203905092915050565b7f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060008201527f647565207061796d656e74000000000000000000000000000000000000000000602082015250565b6000610a79602b83610807565b9150610a8482610a1d565b604082019050919050565b60006020820190508181036000830152610aa881610a6c565b9050919050565b6000819050919050565b6000610ad4610acf610aca8461062c565b610aaf565b61062c565b9050919050565b6000610ae682610ab9565b9050919050565b6000610af882610adb565b9050919050565b610b0881610aed565b82525050565b6000604082019050610b236000830185610aff565b610b306020830184610677565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000610b9c601d83610807565b9150610ba782610b66565b602082019050919050565b60006020820190508181036000830152610bcb81610b8f565b9050919050565b600081905092915050565b50565b6000610bed600083610bd2565b9150610bf882610bdd565b600082019050919050565b6000610c0e82610be0565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000610c74603a83610807565b9150610c7f82610c18565b604082019050919050565b60006020820190508181036000830152610ca381610c67565b905091905056fea2646970667358221220fd5b609d5b1534c5e4b012144e9aa9e76cbb68e4607351a3be5a4166b9e7563164736f6c6343000809003300000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000009466c6f6f724e46547300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008464c524e46544e590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000391fd74d878489981015635959c7c970e13ad057000000000000000000000000d640c898b0902bd02f69de0fe8d0bd560956db76000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009