60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57414f44414f204e4654000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f57414f4e4654000000000000000000000000000000000000000000000000000081525081600090816200008f91906200051d565b508060019081620000a191906200051d565b5050506000600760006101000a81548160ff021916908315150217905550620000d46000801b336200013e60201b60201c565b620001067f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336200013e60201b60201c565b620001387f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336200013e60201b60201c565b62000604565b6200015082826200023060201b60201c565b6200022c5760016008600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620001d16200029b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006008600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200032557607f821691505b6020821081036200033b576200033a620002dd565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003a57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000366565b620003b1868362000366565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003fe620003f8620003f284620003c9565b620003d3565b620003c9565b9050919050565b6000819050919050565b6200041a83620003dd565b62000432620004298262000405565b84845462000373565b825550505050565b600090565b620004496200043a565b620004568184846200040f565b505050565b5b818110156200047e57620004726000826200043f565b6001810190506200045c565b5050565b601f821115620004cd57620004978162000341565b620004a28462000356565b81016020851015620004b2578190505b620004ca620004c18562000356565b8301826200045b565b50505b505050565b600082821c905092915050565b6000620004f260001984600802620004d2565b1980831691505092915050565b60006200050d8383620004df565b9150826002028217905092915050565b6200052882620002a3565b67ffffffffffffffff811115620005445762000543620002ae565b5b6200055082546200030c565b6200055d82828562000482565b600060209050601f83116001811462000595576000841562000580578287015190505b6200058c8582620004ff565b865550620005fc565b601f198416620005a58662000341565b60005b82811015620005cf57848901518255600182019150602085019450602081019050620005a8565b86831015620005ef5784890151620005eb601f891682620004df565b8355505b6001600288020188555050505b505050505050565b613df380620006146000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de578063b88d4fde11610097578063d539139311610071578063d53913931461046b578063d547741f14610489578063e63ab1e9146104a5578063e985e9c5146104c35761018e565b8063b88d4fde14610403578063c87b56dd1461041f578063d204c45e1461044f5761018e565b806370a08231146103415780638456cb591461037157806391d148541461037b57806395d89b41146103ab578063a217fddf146103c9578063a22cb465146103e75761018e565b80632f2ff15d1161014b57806342842e0e1161012557806342842e0e146102bb57806342966c68146102d75780635c975abb146102f35780636352211e146103115761018e565b80632f2ff15d1461027957806336568abe146102955780633f4ba83a146102b15761018e565b806301ffc9a71461019357806306fdde03146101c3578063081812fc146101e1578063095ea7b31461021157806323b872dd1461022d578063248a9ca314610249575b600080fd5b6101ad60048036038101906101a8919061283c565b6104f3565b6040516101ba9190612884565b60405180910390f35b6101cb610505565b6040516101d8919061292f565b60405180910390f35b6101fb60048036038101906101f69190612987565b610597565b60405161020891906129f5565b60405180910390f35b61022b60048036038101906102269190612a3c565b6105dd565b005b61024760048036038101906102429190612a7c565b6106f4565b005b610263600480360381019061025e9190612b05565b610754565b6040516102709190612b41565b60405180910390f35b610293600480360381019061028e9190612b5c565b610774565b005b6102af60048036038101906102aa9190612b5c565b610795565b005b6102b9610818565b005b6102d560048036038101906102d09190612a7c565b61084d565b005b6102f160048036038101906102ec9190612987565b61086d565b005b6102fb6108c9565b6040516103089190612884565b60405180910390f35b61032b60048036038101906103269190612987565b6108e0565b60405161033891906129f5565b60405180910390f35b61035b60048036038101906103569190612b9c565b610966565b6040516103689190612bd8565b60405180910390f35b610379610a1d565b005b61039560048036038101906103909190612b5c565b610a52565b6040516103a29190612884565b60405180910390f35b6103b3610abd565b6040516103c0919061292f565b60405180910390f35b6103d1610b4f565b6040516103de9190612b41565b60405180910390f35b61040160048036038101906103fc9190612c1f565b610b56565b005b61041d60048036038101906104189190612d94565b610b6c565b005b61043960048036038101906104349190612987565b610bce565b604051610446919061292f565b60405180910390f35b61046960048036038101906104649190612eb8565b610be0565b005b610473610c3c565b6040516104809190612b41565b60405180910390f35b6104a3600480360381019061049e9190612b5c565b610c60565b005b6104ad610c81565b6040516104ba9190612b41565b60405180910390f35b6104dd60048036038101906104d89190612f14565b610ca5565b6040516104ea9190612884565b60405180910390f35b60006104fe82610d39565b9050919050565b60606000805461051490612f83565b80601f016020809104026020016040519081016040528092919081815260200182805461054090612f83565b801561058d5780601f106105625761010080835404028352916020019161058d565b820191906000526020600020905b81548152906001019060200180831161057057829003601f168201915b5050505050905090565b60006105a282610db3565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105e8826108e0565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064f90613026565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610677610dfe565b73ffffffffffffffffffffffffffffffffffffffff1614806106a657506106a5816106a0610dfe565b610ca5565b5b6106e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dc906130b8565b60405180910390fd5b6106ef8383610e06565b505050565b6107056106ff610dfe565b82610ebf565b610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b9061314a565b60405180910390fd5b61074f838383610f54565b505050565b600060086000838152602001908152602001600020600101549050919050565b61077d82610754565b6107868161124d565b6107908383611261565b505050565b61079d610dfe565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461080a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610801906131dc565b60405180910390fd5b6108148282611342565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6108428161124d565b61084a611424565b50565b61086883838360405180602001604052806000815250610b6c565b505050565b61087e610878610dfe565b82610ebf565b6108bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b49061314a565b60405180910390fd5b6108c681611487565b50565b6000600760009054906101000a900460ff16905090565b6000806108ec83611493565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361095d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095490613248565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd906132da565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610a478161124d565b610a4f6114d0565b50565b60006008600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060018054610acc90612f83565b80601f0160208091040260200160405190810160405280929190818152602001828054610af890612f83565b8015610b455780601f10610b1a57610100808354040283529160200191610b45565b820191906000526020600020905b815481529060010190602001808311610b2857829003601f168201915b5050505050905090565b6000801b81565b610b68610b61610dfe565b8383611533565b5050565b610b7d610b77610dfe565b83610ebf565b610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb39061314a565b60405180910390fd5b610bc88484848461169f565b50505050565b6060610bd9826116fb565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610c0a8161124d565b6000610c16600961180d565b9050610c22600961181b565b610c2c8482611831565b610c36818461184f565b50505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610c6982610754565b610c728161124d565b610c7c8383611342565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610dac5750610dab826118bc565b5b9050919050565b610dbc8161199e565b610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df290613248565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610e79836108e0565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610ecb836108e0565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610f0d5750610f0c8185610ca5565b5b80610f4b57508373ffffffffffffffffffffffffffffffffffffffff16610f3384610597565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610f74826108e0565b73ffffffffffffffffffffffffffffffffffffffff1614610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc19061336c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611039576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611030906133fe565b60405180910390fd5b61104683838360016119df565b8273ffffffffffffffffffffffffffffffffffffffff16611066826108e0565b73ffffffffffffffffffffffffffffffffffffffff16146110bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b39061336c565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461124883838360016119f9565b505050565b61125e81611259610dfe565b6119ff565b50565b61126b8282610a52565b61133e5760016008600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112e3610dfe565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b61134c8282610a52565b156114205760006008600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113c5610dfe565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b61142c611a84565b6000600760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611470610dfe565b60405161147d91906129f5565b60405180910390a1565b61149081611acd565b50565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6114d8611b20565b6001600760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861151c610dfe565b60405161152991906129f5565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115989061346a565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516116929190612884565b60405180910390a3505050565b6116aa848484610f54565b6116b684848484611b6a565b6116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec906134fc565b60405180910390fd5b50505050565b606061170682610db3565b600060066000848152602001908152602001600020805461172690612f83565b80601f016020809104026020016040519081016040528092919081815260200182805461175290612f83565b801561179f5780601f106117745761010080835404028352916020019161179f565b820191906000526020600020905b81548152906001019060200180831161178257829003601f168201915b5050505050905060006117b0611cf1565b905060008151036117c5578192505050611808565b6000825111156117fa5780826040516020016117e2929190613558565b60405160208183030381529060405292505050611808565b61180384611d08565b925050505b919050565b600081600001549050919050565b6001816000016000828254019250508190555050565b61184b828260405180602001604052806000815250611d70565b5050565b6118588261199e565b611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188e906135ee565b60405180910390fd5b806006600084815260200190815260200160002090816118b791906137ba565b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061198757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611997575061199682611dcb565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166119c083611493565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6119e7611b20565b6119f384848484611e35565b50505050565b50505050565b611a098282610a52565b611a8057611a1681611f5b565b611a248360001c6020611f88565b604051602001611a35929190613924565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a77919061292f565b60405180910390fd5b5050565b611a8c6108c9565b611acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac2906139aa565b60405180910390fd5b565b611ad6816121c4565b6000600660008381526020019081526020016000208054611af690612f83565b905014611b1d57600660008281526020019081526020016000206000611b1c9190612773565b5b50565b611b286108c9565b15611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f90613a16565b60405180910390fd5b565b6000611b8b8473ffffffffffffffffffffffffffffffffffffffff16612312565b15611ce4578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611bb4610dfe565b8786866040518563ffffffff1660e01b8152600401611bd69493929190613a8b565b6020604051808303816000875af1925050508015611c1257506040513d601f19601f82011682018060405250810190611c0f9190613aec565b60015b611c94573d8060008114611c42576040519150601f19603f3d011682016040523d82523d6000602084013e611c47565b606091505b506000815103611c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c83906134fc565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611ce9565b600190505b949350505050565b606060405180602001604052806000815250905090565b6060611d1382610db3565b6000611d1d611cf1565b90506000815111611d3d5760405180602001604052806000815250611d68565b80611d4784612335565b604051602001611d58929190613558565b6040516020818303038152906040525b915050919050565b611d7a8383612403565b611d876000848484611b6a565b611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd906134fc565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6001811115611f5557600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611ec95780600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ec19190613b48565b925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611f545780600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f4c9190613b7c565b925050819055505b5b50505050565b6060611f818273ffffffffffffffffffffffffffffffffffffffff16601460ff16611f88565b9050919050565b606060006002836002611f9b9190613bb0565b611fa59190613b7c565b67ffffffffffffffff811115611fbe57611fbd612c69565b5b6040519080825280601f01601f191660200182016040528015611ff05781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061202857612027613bf2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061208c5761208b613bf2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026120cc9190613bb0565b6120d69190613b7c565b90505b6001811115612176577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061211857612117613bf2565b5b1a60f81b82828151811061212f5761212e613bf2565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061216f90613c21565b90506120d9565b50600084146121ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b190613c96565b60405180910390fd5b8091505092915050565b60006121cf826108e0565b90506121df8160008460016119df565b6121e8826108e0565b90506004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461230e8160008460016119f9565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60606000600161234484612620565b01905060008167ffffffffffffffff81111561236357612362612c69565b5b6040519080825280601f01601f1916602001820160405280156123955781602001600182028036833780820191505090505b509050600082602001820190505b6001156123f8578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816123ec576123eb613cb6565b5b049450600085036123a3575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246990613d31565b60405180910390fd5b61247b8161199e565b156124bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b290613d9d565b60405180910390fd5b6124c96000838360016119df565b6124d28161199e565b15612512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250990613d9d565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461261c6000838360016119f9565b5050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061267e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161267457612673613cb6565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106126bb576d04ee2d6d415b85acef810000000083816126b1576126b0613cb6565b5b0492506020810190505b662386f26fc1000083106126ea57662386f26fc1000083816126e0576126df613cb6565b5b0492506010810190505b6305f5e1008310612713576305f5e100838161270957612708613cb6565b5b0492506008810190505b612710831061273857612710838161272e5761272d613cb6565b5b0492506004810190505b6064831061275b576064838161275157612750613cb6565b5b0492506002810190505b600a831061276a576001810190505b80915050919050565b50805461277f90612f83565b6000825580601f1061279157506127b0565b601f0160209004906000526020600020908101906127af91906127b3565b5b50565b5b808211156127cc5760008160009055506001016127b4565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612819816127e4565b811461282457600080fd5b50565b60008135905061283681612810565b92915050565b600060208284031215612852576128516127da565b5b600061286084828501612827565b91505092915050565b60008115159050919050565b61287e81612869565b82525050565b60006020820190506128996000830184612875565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128d95780820151818401526020810190506128be565b60008484015250505050565b6000601f19601f8301169050919050565b60006129018261289f565b61290b81856128aa565b935061291b8185602086016128bb565b612924816128e5565b840191505092915050565b6000602082019050818103600083015261294981846128f6565b905092915050565b6000819050919050565b61296481612951565b811461296f57600080fd5b50565b6000813590506129818161295b565b92915050565b60006020828403121561299d5761299c6127da565b5b60006129ab84828501612972565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129df826129b4565b9050919050565b6129ef816129d4565b82525050565b6000602082019050612a0a60008301846129e6565b92915050565b612a19816129d4565b8114612a2457600080fd5b50565b600081359050612a3681612a10565b92915050565b60008060408385031215612a5357612a526127da565b5b6000612a6185828601612a27565b9250506020612a7285828601612972565b9150509250929050565b600080600060608486031215612a9557612a946127da565b5b6000612aa386828701612a27565b9350506020612ab486828701612a27565b9250506040612ac586828701612972565b9150509250925092565b6000819050919050565b612ae281612acf565b8114612aed57600080fd5b50565b600081359050612aff81612ad9565b92915050565b600060208284031215612b1b57612b1a6127da565b5b6000612b2984828501612af0565b91505092915050565b612b3b81612acf565b82525050565b6000602082019050612b566000830184612b32565b92915050565b60008060408385031215612b7357612b726127da565b5b6000612b8185828601612af0565b9250506020612b9285828601612a27565b9150509250929050565b600060208284031215612bb257612bb16127da565b5b6000612bc084828501612a27565b91505092915050565b612bd281612951565b82525050565b6000602082019050612bed6000830184612bc9565b92915050565b612bfc81612869565b8114612c0757600080fd5b50565b600081359050612c1981612bf3565b92915050565b60008060408385031215612c3657612c356127da565b5b6000612c4485828601612a27565b9250506020612c5585828601612c0a565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ca1826128e5565b810181811067ffffffffffffffff82111715612cc057612cbf612c69565b5b80604052505050565b6000612cd36127d0565b9050612cdf8282612c98565b919050565b600067ffffffffffffffff821115612cff57612cfe612c69565b5b612d08826128e5565b9050602081019050919050565b82818337600083830152505050565b6000612d37612d3284612ce4565b612cc9565b905082815260208101848484011115612d5357612d52612c64565b5b612d5e848285612d15565b509392505050565b600082601f830112612d7b57612d7a612c5f565b5b8135612d8b848260208601612d24565b91505092915050565b60008060008060808587031215612dae57612dad6127da565b5b6000612dbc87828801612a27565b9450506020612dcd87828801612a27565b9350506040612dde87828801612972565b925050606085013567ffffffffffffffff811115612dff57612dfe6127df565b5b612e0b87828801612d66565b91505092959194509250565b600067ffffffffffffffff821115612e3257612e31612c69565b5b612e3b826128e5565b9050602081019050919050565b6000612e5b612e5684612e17565b612cc9565b905082815260208101848484011115612e7757612e76612c64565b5b612e82848285612d15565b509392505050565b600082601f830112612e9f57612e9e612c5f565b5b8135612eaf848260208601612e48565b91505092915050565b60008060408385031215612ecf57612ece6127da565b5b6000612edd85828601612a27565b925050602083013567ffffffffffffffff811115612efe57612efd6127df565b5b612f0a85828601612e8a565b9150509250929050565b60008060408385031215612f2b57612f2a6127da565b5b6000612f3985828601612a27565b9250506020612f4a85828601612a27565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f9b57607f821691505b602082108103612fae57612fad612f54565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006130106021836128aa565b915061301b82612fb4565b604082019050919050565b6000602082019050818103600083015261303f81613003565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b60006130a2603d836128aa565b91506130ad82613046565b604082019050919050565b600060208201905081810360008301526130d181613095565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000613134602d836128aa565b915061313f826130d8565b604082019050919050565b6000602082019050818103600083015261316381613127565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b60006131c6602f836128aa565b91506131d18261316a565b604082019050919050565b600060208201905081810360008301526131f5816131b9565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006132326018836128aa565b915061323d826131fc565b602082019050919050565b6000602082019050818103600083015261326181613225565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006132c46029836128aa565b91506132cf82613268565b604082019050919050565b600060208201905081810360008301526132f3816132b7565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006133566025836128aa565b9150613361826132fa565b604082019050919050565b6000602082019050818103600083015261338581613349565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133e86024836128aa565b91506133f38261338c565b604082019050919050565b60006020820190508181036000830152613417816133db565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006134546019836128aa565b915061345f8261341e565b602082019050919050565b6000602082019050818103600083015261348381613447565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006134e66032836128aa565b91506134f18261348a565b604082019050919050565b60006020820190508181036000830152613515816134d9565b9050919050565b600081905092915050565b60006135328261289f565b61353c818561351c565b935061354c8185602086016128bb565b80840191505092915050565b60006135648285613527565b91506135708284613527565b91508190509392505050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b60006135d8602e836128aa565b91506135e38261357c565b604082019050919050565b60006020820190508181036000830152613607816135cb565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026136707fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613633565b61367a8683613633565b95508019841693508086168417925050509392505050565b6000819050919050565b60006136b76136b26136ad84612951565b613692565b612951565b9050919050565b6000819050919050565b6136d18361369c565b6136e56136dd826136be565b848454613640565b825550505050565b600090565b6136fa6136ed565b6137058184846136c8565b505050565b5b818110156137295761371e6000826136f2565b60018101905061370b565b5050565b601f82111561376e5761373f8161360e565b61374884613623565b81016020851015613757578190505b61376b61376385613623565b83018261370a565b50505b505050565b600082821c905092915050565b600061379160001984600802613773565b1980831691505092915050565b60006137aa8383613780565b9150826002028217905092915050565b6137c38261289f565b67ffffffffffffffff8111156137dc576137db612c69565b5b6137e68254612f83565b6137f182828561372d565b600060209050601f8311600181146138245760008415613812578287015190505b61381c858261379e565b865550613884565b601f1984166138328661360e565b60005b8281101561385a57848901518255600182019150602085019450602081019050613835565b868310156138775784890151613873601f891682613780565b8355505b6001600288020188555050505b505050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006138c260178361351c565b91506138cd8261388c565b601782019050919050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061390e60118361351c565b9150613919826138d8565b601182019050919050565b600061392f826138b5565b915061393b8285613527565b915061394682613901565b91506139528284613527565b91508190509392505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006139946014836128aa565b915061399f8261395e565b602082019050919050565b600060208201905081810360008301526139c381613987565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613a006010836128aa565b9150613a0b826139ca565b602082019050919050565b60006020820190508181036000830152613a2f816139f3565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613a5d82613a36565b613a678185613a41565b9350613a778185602086016128bb565b613a80816128e5565b840191505092915050565b6000608082019050613aa060008301876129e6565b613aad60208301866129e6565b613aba6040830185612bc9565b8181036060830152613acc8184613a52565b905095945050505050565b600081519050613ae681612810565b92915050565b600060208284031215613b0257613b016127da565b5b6000613b1084828501613ad7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b5382612951565b9150613b5e83612951565b9250828203905081811115613b7657613b75613b19565b5b92915050565b6000613b8782612951565b9150613b9283612951565b9250828201905080821115613baa57613ba9613b19565b5b92915050565b6000613bbb82612951565b9150613bc683612951565b9250828202613bd481612951565b91508282048414831517613beb57613bea613b19565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613c2c82612951565b915060008203613c3f57613c3e613b19565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000613c806020836128aa565b9150613c8b82613c4a565b602082019050919050565b60006020820190508181036000830152613caf81613c73565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613d1b6020836128aa565b9150613d2682613ce5565b602082019050919050565b60006020820190508181036000830152613d4a81613d0e565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613d87601c836128aa565b9150613d9282613d51565b602082019050919050565b60006020820190508181036000830152613db681613d7a565b905091905056fea2646970667358221220c2f30d2d8b82557f39dfa9f7d96d5583b2d281bf4f12c2d61a3319fc8132254064736f6c63430008120033