60806040526001600260006101000a81548160ff0219169083151502179055506000600760006101000a81548160ff021916908315150217905550611388600b5560405180602001604052806000815250600c90816200006091906200046f565b503480156200006e57600080fd5b506040518060400160405280600981526020017f4c61737420486f706500000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f4c480000000000000000000000000000000000000000000000000000000000008152508160009081620000ec91906200046f565b508060019081620000fe91906200046f565b50505062000121620001156200012760201b60201c565b6200012f60201b60201c565b62000556565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200027757607f821691505b6020821081036200028d576200028c6200022f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002f77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b8565b620003038683620002b8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003506200034a62000344846200031b565b62000325565b6200031b565b9050919050565b6000819050919050565b6200036c836200032f565b620003846200037b8262000357565b848454620002c5565b825550505050565b600090565b6200039b6200038c565b620003a881848462000361565b505050565b5b81811015620003d057620003c460008262000391565b600181019050620003ae565b5050565b601f8211156200041f57620003e98162000293565b620003f484620002a8565b8101602085101562000404578190505b6200041c6200041385620002a8565b830182620003ad565b50505b505050565b600082821c905092915050565b6000620004446000198460080262000424565b1980831691505092915050565b60006200045f838362000431565b9150826002028217905092915050565b6200047a82620001f5565b67ffffffffffffffff81111562000496576200049562000200565b5b620004a282546200025e565b620004af828285620003d4565b600060209050601f831160018114620004e75760008415620004d2578287015190505b620004de858262000451565b8655506200054e565b601f198416620004f78662000293565b60005b828110156200052157848901518255600182019150602085019450602081019050620004fa565b868310156200054157848901516200053d601f89168262000431565b8355505b6001600288020188555050505b505050505050565b61386f80620005666000396000f3fe6080604052600436106101ee5760003560e01c8063715018a61161010d578063b88d4fde116100a0578063e8a3d4851161006f578063e8a3d485146106ee578063e985e9c514610719578063f2fde38b14610756578063fdb8e34e1461077f578063fddcb5ea146107a8576101ee565b8063b88d4fde14610620578063c080519714610649578063c87b56dd14610686578063d5abeb01146106c3576101ee565b8063a0712d68116100dc578063a0712d6814610575578063a0bcfc7f14610591578063a22cb465146105ba578063b1f7f0eb146105e3576101ee565b8063715018a6146104f1578063801fe59b146105085780638da5cb5b1461051f57806395d89b411461054a576101ee565b80633ccfd60b1161018557806355a554651161015457806355a55465146104255780636352211e1461044e5780636f8b44b01461048b57806370a08231146104b4576101ee565b80633ccfd60b1461037d57806342842e0e146103945780634aaf78f1146103bd5780634f6ccce7146103e8576101ee565b806318160ddd116101c157806318160ddd146102c15780631a34fe81146102ec57806323b872dd146103175780632f745c5914610340576101ee565b806301ffc9a7146101f357806306fdde0314610230578063081812fc1461025b578063095ea7b314610298575b600080fd5b3480156101ff57600080fd5b5061021a600480360381019061021591906124bb565b6107e5565b6040516102279190612503565b60405180910390f35b34801561023c57600080fd5b506102456108a7565b60405161025291906125b7565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d919061260f565b610935565b60405161028f919061267d565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba91906126c4565b6109ba565b005b3480156102cd57600080fd5b506102d6610cb3565b6040516102e39190612713565b60405180910390f35b3480156102f857600080fd5b50610301610cc0565b60405161030e9190612713565b60405180910390f35b34801561032357600080fd5b5061033e6004803603810190610339919061272e565b610cc5565b005b34801561034c57600080fd5b50610367600480360381019061036291906126c4565b6110c8565b6040516103749190612713565b60405180910390f35b34801561038957600080fd5b506103926111b6565b005b3480156103a057600080fd5b506103bb60048036038101906103b6919061272e565b611237565b005b3480156103c957600080fd5b506103d2611257565b6040516103df9190612503565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a919061260f565b61126a565b60405161041c9190612713565b60405180910390f35b34801561043157600080fd5b5061044c600480360381019061044791906127ad565b6112b4565b005b34801561045a57600080fd5b506104756004803603810190610470919061260f565b6112eb565b604051610482919061267d565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad919061260f565b6113f7565b005b3480156104c057600080fd5b506104db60048036038101906104d691906127ed565b611409565b6040516104e89190612713565b60405180910390f35b3480156104fd57600080fd5b506105066114e2565b005b34801561051457600080fd5b5061051d6114f6565b005b34801561052b57600080fd5b5061053461152a565b604051610541919061267d565b60405180910390f35b34801561055657600080fd5b5061055f611554565b60405161056c91906125b7565b60405180910390f35b61058f600480360381019061058a919061260f565b6115e2565b005b34801561059d57600080fd5b506105b860048036038101906105b3919061294f565b611646565b005b3480156105c657600080fd5b506105e160048036038101906105dc9190612998565b611661565b005b3480156105ef57600080fd5b5061060a600480360381019061060591906127ed565b611996565b6040516106179190612503565b60405180910390f35b34801561062c57600080fd5b5061064760048036038101906106429190612a79565b6119b6565b005b34801561065557600080fd5b50610670600480360381019061066b919061260f565b611a09565b60405161067d9190612503565b60405180910390f35b34801561069257600080fd5b506106ad60048036038101906106a8919061260f565b611a29565b6040516106ba91906125b7565b60405180910390f35b3480156106cf57600080fd5b506106d8611ad1565b6040516106e59190612713565b60405180910390f35b3480156106fa57600080fd5b50610703611ad7565b60405161071091906125b7565b60405180910390f35b34801561072557600080fd5b50610740600480360381019061073b9190612afc565b611aee565b60405161074d9190612503565b60405180910390f35b34801561076257600080fd5b5061077d600480360381019061077891906127ed565b611bd3565b005b34801561078b57600080fd5b506107a660048036038101906107a19190612cc7565b611c56565b005b3480156107b457600080fd5b506107cf60048036038101906107ca91906127ed565b611d0d565b6040516107dc9190612713565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061084057506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610870575063780e9d6360e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108a05750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600080546108b490612d6e565b80601f01602080910402602001604051908101604052809291908181526020018280546108e090612d6e565b801561092d5780601f106109025761010080835404028352916020019161092d565b820191906000526020600020905b81548152906001019060200180831161091057829003601f168201915b505050505081565b600061094082611d56565b61097f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097690612e11565b60405180910390fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1f90612e7d565b60405180910390fd5b6000610a33826112eb565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610a785750610a768133611aee565b155b15610aaf576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600760009054906101000a900460ff16158015610aea57506008600083815260200190815260200160002060009054906101000a900460ff16155b15610c0057610b0e8373ffffffffffffffffffffffffffffffffffffffff16611d67565b15610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4590612f0f565b60405180910390fd5b826005600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4610cae565b826005600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505050565b6000600380549050905090565b600a81565b600260009054906101000a900460ff16610d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0b90612f7b565b60405180910390fd5b610d1d81611d56565b610d53576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16610d73826112eb565b73ffffffffffffffffffffffffffffffffffffffff1614610dc0576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e26576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e955750610e6682610935565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610ea65750610ea58433611aee565b5b905080610edf576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558260038381548110610f2a57610f29612f9b565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600082118015610ff85750600073ffffffffffffffffffffffffffffffffffffffff166003600184610fa49190612ff9565b81548110610fb557610fb4612f9b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156110675783600360018461100d9190612ff9565b8154811061101e5761101d612f9b565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b60006110d383611409565b821061110b576040517f0ddac30e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060038054905090505b8083101561117e57611128836112eb565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611171578382036111685750506111b0565b81806001019250505b8280600101935050611117565b6040517f7339954700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b6111be611d8a565b60003373ffffffffffffffffffffffffffffffffffffffff16476040516111e49061305e565b60006040518083038185875af1925050503d8060008114611221576040519150601f19603f3d011682016040523d82523d6000602084013e611226565b606091505b505090508061123457600080fd5b50565b611252838383604051806020016040528060008152506119b6565b505050565b600760009054906101000a900460ff1681565b6000611274610cb3565b82106112ac576040517fa723001c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b819050919050565b6112bc611d8a565b806008600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006112f682611d56565b61132c576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff166003838154811061135957611358612f9b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e557600382815481106113b3576113b2612f9b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506113f2565b818060010192505061132d565b919050565b6113ff611d8a565b80600b8190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611470576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600380549050905060005b818110156114d75761148f816112eb565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ca5782806001019350505b808060010191505061147e565b508192505050919050565b6114ea611d8a565b6114f46000611e08565b565b6114fe611d8a565b600760009054906101000a900460ff1615600760006101000a81548160ff021916908315150217905550565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6001805461156190612d6e565b80601f016020809104026020016040519081016040528092919081815260200182805461158d90612d6e565b80156115da5780601f106115af576101008083540402835291602001916115da565b820191906000526020600020905b8154815290600101906020018083116115bd57829003601f168201915b505050505081565b600b54816115ee610cb3565b6115f89190613073565b1115611639576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163090613115565b60405180910390fd5b6116433382611ece565b50565b61164e611d8a565b80600c908161165d91906132e1565b5050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c690612e7d565b60405180910390fd5b600760009054906101000a900460ff161580156117365750600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118985761175a8273ffffffffffffffffffffffffffffffffffffffff16611d67565b1561179a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179190612f0f565b60405180910390fd5b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161188b9190612503565b60405180910390a3611992565b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516119899190612503565b60405180910390a35b5050565b60096020528060005260406000206000915054906101000a900460ff1681565b6119c1848484610cc5565b6119cd84848484611eec565b611a03576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60086020528060005260406000206000915054906101000a900460ff1681565b6060611a3482611d56565b611a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a90613425565b60405180910390fd5b6000600c8054611a8290612d6e565b905011611a9e5760405180602001604052806000815250611aca565b600c611aa98361205d565b604051602001611aba929190613550565b6040516020818303038152906040525b9050919050565b600b5481565b606060405180602001604052806000815250905090565b60007304e30f733acab45bc068005fdbff11c08bfc76d773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b405760019050611bcd565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690505b92915050565b611bdb611d8a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c41906135f1565b60405180910390fd5b611c5381611e08565b50565b611c5e611d8a565b60005b8251811015611d0857818181518110611c7d57611c7c612f9b565b5b602002602001015160096000858481518110611c9c57611c9b612f9b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d0090613611565b915050611c61565b505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600060038054905082109050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b611d926121bd565b73ffffffffffffffffffffffffffffffffffffffff16611db061152a565b73ffffffffffffffffffffffffffffffffffffffff1614611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd906136a5565b60405180910390fd5b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611ee88282604051806020016040528060008152506121c5565b5050565b6000808473ffffffffffffffffffffffffffffffffffffffff163b03611f155760019050612055565b8373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b8152600401611f54949392919061371a565b6020604051808303816000875af1925050508015611f9057506040513d601f19601f82011682018060405250810190611f8d919061377b565b60015b612009573d8060008114611fc0576040519150601f19603f3d011682016040523d82523d6000602084013e611fc5565b606091505b506000815103612001576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b6060600082036120a4576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506121b8565b600082905060005b600082146120d65780806120bf90613611565b915050600a826120cf91906137d7565b91506120ac565b60008167ffffffffffffffff8111156120f2576120f1612824565b5b6040519080825280601f01601f1916602001820160405280156121245781602001600182028036833780820191505090505b5090505b600085146121b15760018261213d9190612ff9565b9150600a8561214c9190613808565b60306121589190613073565b60f81b81838151811061216e5761216d612f9b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121aa91906137d7565b9450612128565b8093505050505b919050565b600033905090565b6121cf8383612228565b6121ed60008460016003805490506121e79190612ff9565b84611eec565b612223576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361228e576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081036122c8576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600380549050905060005b60018303811015612373576003600181600181540180825580915050039060005260206000200160009054906101000a9050508082018473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480806001019150506122d5565b506003839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001826123e49190612ff9565b816123ef9190613073565b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61249881612463565b81146124a357600080fd5b50565b6000813590506124b58161248f565b92915050565b6000602082840312156124d1576124d0612459565b5b60006124df848285016124a6565b91505092915050565b60008115159050919050565b6124fd816124e8565b82525050565b600060208201905061251860008301846124f4565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561255857808201518184015260208101905061253d565b83811115612567576000848401525b50505050565b6000601f19601f8301169050919050565b60006125898261251e565b6125938185612529565b93506125a381856020860161253a565b6125ac8161256d565b840191505092915050565b600060208201905081810360008301526125d1818461257e565b905092915050565b6000819050919050565b6125ec816125d9565b81146125f757600080fd5b50565b600081359050612609816125e3565b92915050565b60006020828403121561262557612624612459565b5b6000612633848285016125fa565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126678261263c565b9050919050565b6126778161265c565b82525050565b6000602082019050612692600083018461266e565b92915050565b6126a18161265c565b81146126ac57600080fd5b50565b6000813590506126be81612698565b92915050565b600080604083850312156126db576126da612459565b5b60006126e9858286016126af565b92505060206126fa858286016125fa565b9150509250929050565b61270d816125d9565b82525050565b60006020820190506127286000830184612704565b92915050565b60008060006060848603121561274757612746612459565b5b6000612755868287016126af565b9350506020612766868287016126af565b9250506040612777868287016125fa565b9150509250925092565b61278a816124e8565b811461279557600080fd5b50565b6000813590506127a781612781565b92915050565b600080604083850312156127c4576127c3612459565b5b60006127d2858286016125fa565b92505060206127e385828601612798565b9150509250929050565b60006020828403121561280357612802612459565b5b6000612811848285016126af565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61285c8261256d565b810181811067ffffffffffffffff8211171561287b5761287a612824565b5b80604052505050565b600061288e61244f565b905061289a8282612853565b919050565b600067ffffffffffffffff8211156128ba576128b9612824565b5b6128c38261256d565b9050602081019050919050565b82818337600083830152505050565b60006128f26128ed8461289f565b612884565b90508281526020810184848401111561290e5761290d61281f565b5b6129198482856128d0565b509392505050565b600082601f8301126129365761293561281a565b5b81356129468482602086016128df565b91505092915050565b60006020828403121561296557612964612459565b5b600082013567ffffffffffffffff8111156129835761298261245e565b5b61298f84828501612921565b91505092915050565b600080604083850312156129af576129ae612459565b5b60006129bd858286016126af565b92505060206129ce85828601612798565b9150509250929050565b600067ffffffffffffffff8211156129f3576129f2612824565b5b6129fc8261256d565b9050602081019050919050565b6000612a1c612a17846129d8565b612884565b905082815260208101848484011115612a3857612a3761281f565b5b612a438482856128d0565b509392505050565b600082601f830112612a6057612a5f61281a565b5b8135612a70848260208601612a09565b91505092915050565b60008060008060808587031215612a9357612a92612459565b5b6000612aa1878288016126af565b9450506020612ab2878288016126af565b9350506040612ac3878288016125fa565b925050606085013567ffffffffffffffff811115612ae457612ae361245e565b5b612af087828801612a4b565b91505092959194509250565b60008060408385031215612b1357612b12612459565b5b6000612b21858286016126af565b9250506020612b32858286016126af565b9150509250929050565b600067ffffffffffffffff821115612b5757612b56612824565b5b602082029050602081019050919050565b600080fd5b6000612b80612b7b84612b3c565b612884565b90508083825260208201905060208402830185811115612ba357612ba2612b68565b5b835b81811015612bcc5780612bb888826126af565b845260208401935050602081019050612ba5565b5050509392505050565b600082601f830112612beb57612bea61281a565b5b8135612bfb848260208601612b6d565b91505092915050565b600067ffffffffffffffff821115612c1f57612c1e612824565b5b602082029050602081019050919050565b6000612c43612c3e84612c04565b612884565b90508083825260208201905060208402830185811115612c6657612c65612b68565b5b835b81811015612c8f5780612c7b8882612798565b845260208401935050602081019050612c68565b5050509392505050565b600082601f830112612cae57612cad61281a565b5b8135612cbe848260208601612c30565b91505092915050565b60008060408385031215612cde57612cdd612459565b5b600083013567ffffffffffffffff811115612cfc57612cfb61245e565b5b612d0885828601612bd6565b925050602083013567ffffffffffffffff811115612d2957612d2861245e565b5b612d3585828601612c99565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d8657607f821691505b602082108103612d9957612d98612d3f565b5b50919050565b7f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560008201527f78697374656e7420746f6b656e00000000000000000000000000000000000000602082015250565b6000612dfb602d83612529565b9150612e0682612d9f565b604082019050919050565b60006020820190508181036000830152612e2a81612dee565b9050919050565b7f455243373231413a20617070726f766520746f2063616c6c6572000000000000600082015250565b6000612e67601a83612529565b9150612e7282612e31565b602082019050919050565b60006020820190508181036000830152612e9681612e5a565b9050919050565b7f53616c65732077696c6c206265206f70656e6564206166746572206d696e742060008201527f697320636f6d706c6574652e0000000000000000000000000000000000000000602082015250565b6000612ef9602c83612529565b9150612f0482612e9d565b604082019050919050565b60006020820190508181036000830152612f2881612eec565b9050919050565b7f596f75206e656564205472616e7366657220546f6b656e000000000000000000600082015250565b6000612f65601783612529565b9150612f7082612f2f565b602082019050919050565b60006020820190508181036000830152612f9481612f58565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613004826125d9565b915061300f836125d9565b92508282101561302257613021612fca565b5b828203905092915050565b600081905092915050565b50565b600061304860008361302d565b915061305382613038565b600082019050919050565b60006130698261303b565b9150819050919050565b600061307e826125d9565b9150613089836125d9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130be576130bd612fca565b5b828201905092915050565b7f45786365656473206d617820737570706c790000000000000000000000000000600082015250565b60006130ff601283612529565b915061310a826130c9565b602082019050919050565b6000602082019050818103600083015261312e816130f2565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261315a565b6131a1868361315a565b95508019841693508086168417925050509392505050565b6000819050919050565b60006131de6131d96131d4846125d9565b6131b9565b6125d9565b9050919050565b6000819050919050565b6131f8836131c3565b61320c613204826131e5565b848454613167565b825550505050565b600090565b613221613214565b61322c8184846131ef565b505050565b5b8181101561325057613245600082613219565b600181019050613232565b5050565b601f8211156132955761326681613135565b61326f8461314a565b8101602085101561327e578190505b61329261328a8561314a565b830182613231565b50505b505050565b600082821c905092915050565b60006132b86000198460080261329a565b1980831691505092915050565b60006132d183836132a7565b9150826002028217905092915050565b6132ea8261251e565b67ffffffffffffffff81111561330357613302612824565b5b61330d8254612d6e565b613318828285613254565b600060209050601f83116001811461334b5760008415613339578287015190505b61334385826132c5565b8655506133ab565b601f19841661335986613135565b60005b828110156133815784890151825560018201915060208501945060208101905061335c565b8683101561339e578489015161339a601f8916826132a7565b8355505b6001600288020188555050505b505050505050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b600061340f602f83612529565b915061341a826133b3565b604082019050919050565b6000602082019050818103600083015261343e81613402565b9050919050565b600081905092915050565b6000815461345d81612d6e565b6134678186613445565b945060018216600081146134825760018114613497576134ca565b60ff19831686528115158202860193506134ca565b6134a085613135565b60005b838110156134c2578154818901526001820191506020810190506134a3565b838801955050505b50505092915050565b60006134de8261251e565b6134e88185613445565b93506134f881856020860161253a565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b600061353a600583613445565b915061354582613504565b600582019050919050565b600061355c8285613450565b915061356882846134d3565b91506135738261352d565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135db602683612529565b91506135e68261357f565b604082019050919050565b6000602082019050818103600083015261360a816135ce565b9050919050565b600061361c826125d9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361364e5761364d612fca565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061368f602083612529565b915061369a82613659565b602082019050919050565b600060208201905081810360008301526136be81613682565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006136ec826136c5565b6136f681856136d0565b935061370681856020860161253a565b61370f8161256d565b840191505092915050565b600060808201905061372f600083018761266e565b61373c602083018661266e565b6137496040830185612704565b818103606083015261375b81846136e1565b905095945050505050565b6000815190506137758161248f565b92915050565b60006020828403121561379157613790612459565b5b600061379f84828501613766565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137e2826125d9565b91506137ed836125d9565b9250826137fd576137fc6137a8565b5b828204905092915050565b6000613813826125d9565b915061381e836125d9565b92508261382e5761382d6137a8565b5b82820690509291505056fea2646970667358221220a0f09deb23133c8d1413fa2a9e3f869e3269bb21022dd3f288a0bcb18e071aad64736f6c634300080f0033