608060405234801561001057600080fd5b5060405161398f38038061398f833981810160405281019061003291906104dd565b87878160009081610043919061081a565b508060019081610053919061081a565b5050506100726100676100c360201b60201c565b6100cb60201b60201c565b6100818161019160201b60201c565b8560079081610090919061081a565b5084600890816100a0919061081a565b508360098190555082600b8190555081600c8190555050505050505050506109fb565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61019f61022060201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361020e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102059061096f565b60405180910390fd5b61021d816100cb60201b60201c565b50565b61022e6100c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166102526102aa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146102a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029f906109db565b60405180910390fd5b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61033b826102f2565b810181811067ffffffffffffffff8211171561035a57610359610303565b5b80604052505050565b600061036d6102d4565b90506103798282610332565b919050565b600067ffffffffffffffff82111561039957610398610303565b5b6103a2826102f2565b9050602081019050919050565b60005b838110156103cd5780820151818401526020810190506103b2565b60008484015250505050565b60006103ec6103e78461037e565b610363565b905082815260208101848484011115610408576104076102ed565b5b6104138482856103af565b509392505050565b600082601f8301126104305761042f6102e8565b5b81516104408482602086016103d9565b91505092915050565b6000819050919050565b61045c81610449565b811461046757600080fd5b50565b60008151905061047981610453565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006104aa8261047f565b9050919050565b6104ba8161049f565b81146104c557600080fd5b50565b6000815190506104d7816104b1565b92915050565b600080600080600080600080610100898b0312156104fe576104fd6102de565b5b600089015167ffffffffffffffff81111561051c5761051b6102e3565b5b6105288b828c0161041b565b985050602089015167ffffffffffffffff811115610549576105486102e3565b5b6105558b828c0161041b565b975050604089015167ffffffffffffffff811115610576576105756102e3565b5b6105828b828c0161041b565b965050606089015167ffffffffffffffff8111156105a3576105a26102e3565b5b6105af8b828c0161041b565b95505060806105c08b828c0161046a565b94505060a06105d18b828c0161046a565b93505060c06105e28b828c0161046a565b92505060e06105f38b828c016104c8565b9150509295985092959890939650565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061065557607f821691505b6020821081036106685761066761060e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026106d07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610693565b6106da8683610693565b95508019841693508086168417925050509392505050565b6000819050919050565b600061071761071261070d84610449565b6106f2565b610449565b9050919050565b6000819050919050565b610731836106fc565b61074561073d8261071e565b8484546106a0565b825550505050565b600090565b61075a61074d565b610765818484610728565b505050565b5b818110156107895761077e600082610752565b60018101905061076b565b5050565b601f8211156107ce5761079f8161066e565b6107a884610683565b810160208510156107b7578190505b6107cb6107c385610683565b83018261076a565b50505b505050565b600082821c905092915050565b60006107f1600019846008026107d3565b1980831691505092915050565b600061080a83836107e0565b9150826002028217905092915050565b61082382610603565b67ffffffffffffffff81111561083c5761083b610303565b5b610846825461063d565b61085182828561078d565b600060209050601f8311600181146108845760008415610872578287015190505b61087c85826107fe565b8655506108e4565b601f1984166108928661066e565b60005b828110156108ba57848901518255600182019150602085019450602081019050610895565b868310156108d757848901516108d3601f8916826107e0565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006109596026836108ec565b9150610964826108fd565b604082019050919050565b600060208201905081810360008301526109888161094c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006109c56020836108ec565b91506109d08261098f565b602082019050919050565b600060208201905081810360008301526109f4816109b8565b9050919050565b612f8580610a0a6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de578063a35a343611610097578063c87b56dd11610071578063c87b56dd14610427578063dd11247e14610457578063e985e9c514610475578063f2fde38b146104a55761018e565b8063a35a3436146103cf578063b88d4fde146103ed578063c24a0f8b146104095761018e565b806370a082311461031f578063715018a61461034f5780638d4e4083146103595780638da5cb5b1461037757806395d89b4114610395578063a22cb465146103b35761018e565b8063312c58661161014b578063516f279e11610125578063516f279e146102ab57806351958a56146102c9578063573c80fa146102e55780636352211e146102ef5761018e565b8063312c58661461026757806342842e0e14610285578063480d0ca2146102a15761018e565b806301ffc9a71461019357806306fdde03146101c3578063081812fc146101e1578063095ea7b3146102115780630b97bc861461022d57806323b872dd1461024b575b600080fd5b6101ad60048036038101906101a89190611f28565b6104c1565b6040516101ba9190611f70565b60405180910390f35b6101cb6105a3565b6040516101d8919061201b565b60405180910390f35b6101fb60048036038101906101f69190612073565b610635565b60405161020891906120e1565b60405180910390f35b61022b60048036038101906102269190612128565b61067b565b005b610235610792565b6040516102429190612177565b60405180910390f35b61026560048036038101906102609190612192565b610798565b005b61026f6107f8565b60405161027c919061201b565b60405180910390f35b61029f600480360381019061029a9190612192565b610886565b005b6102a96108a6565b005b6102b36108f7565b6040516102c0919061201b565b60405180910390f35b6102e360048036038101906102de9190612128565b610985565b005b6102ed610a0a565b005b61030960048036038101906103049190612073565b610b81565b60405161031691906120e1565b60405180910390f35b610339600480360381019061033491906121e5565b610c07565b6040516103469190612177565b60405180910390f35b610357610cbe565b005b610361610cd2565b60405161036e9190611f70565b60405180910390f35b61037f610ce5565b60405161038c91906120e1565b60405180910390f35b61039d610d0f565b6040516103aa919061201b565b60405180910390f35b6103cd60048036038101906103c8919061223e565b610da1565b005b6103d7610db7565b6040516103e49190612177565b60405180910390f35b610407600480360381019061040291906123b3565b610dbd565b005b610411610e1f565b60405161041e9190612177565b60405180910390f35b610441600480360381019061043c9190612073565b610e25565b60405161044e919061201b565b60405180910390f35b61045f610e8d565b60405161046c9190612177565b60405180910390f35b61048f600480360381019061048a9190612436565b610e93565b60405161049c9190611f70565b60405180910390f35b6104bf60048036038101906104ba91906121e5565b610f27565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061058c57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061059c575061059b82610faa565b5b9050919050565b6060600080546105b2906124a5565b80601f01602080910402602001604051908101604052809291908181526020018280546105de906124a5565b801561062b5780601f106106005761010080835404028352916020019161062b565b820191906000526020600020905b81548152906001019060200180831161060e57829003601f168201915b5050505050905090565b600061064082611014565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061068682610b81565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ed90612548565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661071561105f565b73ffffffffffffffffffffffffffffffffffffffff16148061074457506107438161073e61105f565b610e93565b5b610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a906125da565b60405180910390fd5b61078d8383611067565b505050565b600b5481565b6107a96107a361105f565b82611120565b6107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df9061266c565b60405180910390fd5b6107f38383836111b5565b505050565b60088054610805906124a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610831906124a5565b801561087e5780601f106108535761010080835404028352916020019161087e565b820191906000526020600020905b81548152906001019060200180831161086157829003601f168201915b505050505081565b6108a183838360405180602001604052806000815250610dbd565b505050565b6108ae6114ae565b6001600d60006101000a81548160ff0219169083151502179055507f084dc9f8eaab16d3d95f7a2c1dc0ef4d7004806072d38cce672841d9ea59874960405160405180910390a1565b60078054610904906124a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610930906124a5565b801561097d5780601f106109525761010080835404028352916020019161097d565b820191906000526020600020905b81548152906001019060200180831161096057829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff166109a582610b81565b73ffffffffffffffffffffffffffffffffffffffff16146109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f2906126d8565b60405180910390fd5b610a063383836111b5565b5050565b610a126114ae565b600b544210158015610a265750600c544211155b610a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5c90612744565b60405180910390fd5b600d60009054906101000a900460ff1615610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac906127b0565b60405180910390fd5b600954600a5410610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af29061281c565b60405180910390fd5b60006001600a54610b0c919061286b565b9050600a6000815480929190610b219061289f565b9190505550610b30338261152c565b3373ffffffffffffffffffffffffffffffffffffffff167fe3bc6f5972e89b7adec47f0277204f27cd981570e200dd4d408093535c9e8e6982604051610b769190612177565b60405180910390a250565b600080610b8d8361154a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590612933565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6e906129c5565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cc66114ae565b610cd06000611587565b565b600d60009054906101000a900460ff1681565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610d1e906124a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4a906124a5565b8015610d975780601f10610d6c57610100808354040283529160200191610d97565b820191906000526020600020905b815481529060010190602001808311610d7a57829003601f168201915b5050505050905090565b610db3610dac61105f565b838361164d565b5050565b600a5481565b610dce610dc861105f565b83611120565b610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e049061266c565b60405180910390fd5b610e19848484846117b9565b50505050565b600c5481565b6060610e3082611014565b6000610e3a611815565b90506000815111610e5a5760405180602001604052806000815250610e85565b80610e648461182c565b604051602001610e75929190612a21565b6040516020818303038152906040525b915050919050565b60095481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f2f6114ae565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9590612ab7565b60405180910390fd5b610fa781611587565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61101d816118fa565b61105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105390612933565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110da83610b81565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061112c83610b81565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061116e575061116d8185610e93565b5b806111ac57508373ffffffffffffffffffffffffffffffffffffffff1661119484610635565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166111d582610b81565b73ffffffffffffffffffffffffffffffffffffffff161461122b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122290612b49565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361129a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129190612bdb565b60405180910390fd5b6112a7838383600161193b565b8273ffffffffffffffffffffffffffffffffffffffff166112c782610b81565b73ffffffffffffffffffffffffffffffffffffffff161461131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612b49565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46114a98383836001611941565b505050565b6114b661105f565b73ffffffffffffffffffffffffffffffffffffffff166114d4610ce5565b73ffffffffffffffffffffffffffffffffffffffff161461152a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152190612c47565b60405180910390fd5b565b611546828260405180602001604052806000815250611947565b5050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b290612cb3565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117ac9190611f70565b60405180910390a3505050565b6117c48484846111b5565b6117d0848484846119a2565b61180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180690612d45565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606000600161183b84611b29565b01905060008167ffffffffffffffff81111561185a57611859612288565b5b6040519080825280601f01601f19166020018201604052801561188c5781602001600182028036833780820191505090505b509050600082602001820190505b6001156118ef578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816118e3576118e2612d65565b5b0494506000850361189a575b819350505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1661191c8361154a565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b6119518383611c7c565b61195e60008484846119a2565b61199d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199490612d45565b60405180910390fd5b505050565b60006119c38473ffffffffffffffffffffffffffffffffffffffff16611e99565b15611b1c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026119ec61105f565b8786866040518563ffffffff1660e01b8152600401611a0e9493929190612de9565b6020604051808303816000875af1925050508015611a4a57506040513d601f19601f82011682018060405250810190611a479190612e4a565b60015b611acc573d8060008114611a7a576040519150601f19603f3d011682016040523d82523d6000602084013e611a7f565b606091505b506000815103611ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abb90612d45565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611b21565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611b87577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611b7d57611b7c612d65565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611bc4576d04ee2d6d415b85acef81000000008381611bba57611bb9612d65565b5b0492506020810190505b662386f26fc100008310611bf357662386f26fc100008381611be957611be8612d65565b5b0492506010810190505b6305f5e1008310611c1c576305f5e1008381611c1257611c11612d65565b5b0492506008810190505b6127108310611c41576127108381611c3757611c36612d65565b5b0492506004810190505b60648310611c645760648381611c5a57611c59612d65565b5b0492506002810190505b600a8310611c73576001810190505b80915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce290612ec3565b60405180910390fd5b611cf4816118fa565b15611d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2b90612f2f565b60405180910390fd5b611d4260008383600161193b565b611d4b816118fa565b15611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290612f2f565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611e95600083836001611941565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f0581611ed0565b8114611f1057600080fd5b50565b600081359050611f2281611efc565b92915050565b600060208284031215611f3e57611f3d611ec6565b5b6000611f4c84828501611f13565b91505092915050565b60008115159050919050565b611f6a81611f55565b82525050565b6000602082019050611f856000830184611f61565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611fc5578082015181840152602081019050611faa565b60008484015250505050565b6000601f19601f8301169050919050565b6000611fed82611f8b565b611ff78185611f96565b9350612007818560208601611fa7565b61201081611fd1565b840191505092915050565b600060208201905081810360008301526120358184611fe2565b905092915050565b6000819050919050565b6120508161203d565b811461205b57600080fd5b50565b60008135905061206d81612047565b92915050565b60006020828403121561208957612088611ec6565b5b60006120978482850161205e565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120cb826120a0565b9050919050565b6120db816120c0565b82525050565b60006020820190506120f660008301846120d2565b92915050565b612105816120c0565b811461211057600080fd5b50565b600081359050612122816120fc565b92915050565b6000806040838503121561213f5761213e611ec6565b5b600061214d85828601612113565b925050602061215e8582860161205e565b9150509250929050565b6121718161203d565b82525050565b600060208201905061218c6000830184612168565b92915050565b6000806000606084860312156121ab576121aa611ec6565b5b60006121b986828701612113565b93505060206121ca86828701612113565b92505060406121db8682870161205e565b9150509250925092565b6000602082840312156121fb576121fa611ec6565b5b600061220984828501612113565b91505092915050565b61221b81611f55565b811461222657600080fd5b50565b60008135905061223881612212565b92915050565b6000806040838503121561225557612254611ec6565b5b600061226385828601612113565b925050602061227485828601612229565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6122c082611fd1565b810181811067ffffffffffffffff821117156122df576122de612288565b5b80604052505050565b60006122f2611ebc565b90506122fe82826122b7565b919050565b600067ffffffffffffffff82111561231e5761231d612288565b5b61232782611fd1565b9050602081019050919050565b82818337600083830152505050565b600061235661235184612303565b6122e8565b90508281526020810184848401111561237257612371612283565b5b61237d848285612334565b509392505050565b600082601f83011261239a5761239961227e565b5b81356123aa848260208601612343565b91505092915050565b600080600080608085870312156123cd576123cc611ec6565b5b60006123db87828801612113565b94505060206123ec87828801612113565b93505060406123fd8782880161205e565b925050606085013567ffffffffffffffff81111561241e5761241d611ecb565b5b61242a87828801612385565b91505092959194509250565b6000806040838503121561244d5761244c611ec6565b5b600061245b85828601612113565b925050602061246c85828601612113565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124bd57607f821691505b6020821081036124d0576124cf612476565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612532602183611f96565b915061253d826124d6565b604082019050919050565b6000602082019050818103600083015261256181612525565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b60006125c4603d83611f96565b91506125cf82612568565b604082019050919050565b600060208201905081810360008301526125f3816125b7565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612656602d83611f96565b9150612661826125fa565b604082019050919050565b6000602082019050818103600083015261268581612649565b9050919050565b7f596f7520646f206e6f74206f776e2074686973207469636b65742e0000000000600082015250565b60006126c2601b83611f96565b91506126cd8261268c565b602082019050919050565b600060208201905081810360008301526126f1816126b5565b9050919050565b7f4576656e74206973206e6f74206163746976652e000000000000000000000000600082015250565b600061272e601483611f96565b9150612739826126f8565b602082019050919050565b6000602082019050818103600083015261275d81612721565b9050919050565b7f4576656e742069732066696e616c697a65642e00000000000000000000000000600082015250565b600061279a601383611f96565b91506127a582612764565b602082019050919050565b600060208201905081810360008301526127c98161278d565b9050919050565b7f416c6c207469636b65747320736f6c642e000000000000000000000000000000600082015250565b6000612806601183611f96565b9150612811826127d0565b602082019050919050565b60006020820190508181036000830152612835816127f9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128768261203d565b91506128818361203d565b92508282019050808211156128995761289861283c565b5b92915050565b60006128aa8261203d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128dc576128db61283c565b5b600182019050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b600061291d601883611f96565b9150612928826128e7565b602082019050919050565b6000602082019050818103600083015261294c81612910565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006129af602983611f96565b91506129ba82612953565b604082019050919050565b600060208201905081810360008301526129de816129a2565b9050919050565b600081905092915050565b60006129fb82611f8b565b612a0581856129e5565b9350612a15818560208601611fa7565b80840191505092915050565b6000612a2d82856129f0565b9150612a3982846129f0565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612aa1602683611f96565b9150612aac82612a45565b604082019050919050565b60006020820190508181036000830152612ad081612a94565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000612b33602583611f96565b9150612b3e82612ad7565b604082019050919050565b60006020820190508181036000830152612b6281612b26565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bc5602483611f96565b9150612bd082612b69565b604082019050919050565b60006020820190508181036000830152612bf481612bb8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c31602083611f96565b9150612c3c82612bfb565b602082019050919050565b60006020820190508181036000830152612c6081612c24565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000612c9d601983611f96565b9150612ca882612c67565b602082019050919050565b60006020820190508181036000830152612ccc81612c90565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000612d2f603283611f96565b9150612d3a82612cd3565b604082019050919050565b60006020820190508181036000830152612d5e81612d22565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000612dbb82612d94565b612dc58185612d9f565b9350612dd5818560208601611fa7565b612dde81611fd1565b840191505092915050565b6000608082019050612dfe60008301876120d2565b612e0b60208301866120d2565b612e186040830185612168565b8181036060830152612e2a8184612db0565b905095945050505050565b600081519050612e4481611efc565b92915050565b600060208284031215612e6057612e5f611ec6565b5b6000612e6e84828501612e35565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000612ead602083611f96565b9150612eb882612e77565b602082019050919050565b60006020820190508181036000830152612edc81612ea0565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000612f19601c83611f96565b9150612f2482612ee3565b602082019050919050565b60006020820190508181036000830152612f4881612f0c565b905091905056fea26469706673582212200b3e9b99950ce9e7c71778c9f4cc1511f808039ee7cfb93e68aa86ee2b49699964736f6c634300081a003300000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000006733239c0000000000000000000000000000000000000000000000000000000067333134000000000000000000000000ecabfdcce8d66a7de0973abe714adf5cd55e7ce40000000000000000000000000000000000000000000000000000000000000017426173652057696e6e657220416e6e6f6e63656d656e74000000000000000000000000000000000000000000000000000000000000000000000000000000000a4241534557494e414e4e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064f6e6c696e650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003968747470733a2f2f7777772e626173652e6f72672f5f6e6578742f7374617469632f6d656469612f6c6f676f2e66366664656466632e73766700000000000000