{"/app/modules/engine/src/errors.ts":{"path":"/app/modules/engine/src/errors.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":159}},"2":{"start":{"line":4,"column":23},"end":{"line":4,"column":55}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":85}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":31}},"5":{"start":{"line":11,"column":0},"end":{"line":11,"column":36}},"6":{"start":{"line":12,"column":0},"end":{"line":12,"column":35}},"7":{"start":{"line":13,"column":0},"end":{"line":26,"column":2}},"8":{"start":{"line":29,"column":8},"end":{"line":29,"column":85}},"9":{"start":{"line":30,"column":8},"end":{"line":30,"column":31}},"10":{"start":{"line":33,"column":0},"end":{"line":33,"column":36}},"11":{"start":{"line":34,"column":0},"end":{"line":34,"column":35}},"12":{"start":{"line":35,"column":0},"end":{"line":38,"column":2}},"13":{"start":{"line":41,"column":8},"end":{"line":41,"column":85}},"14":{"start":{"line":42,"column":8},"end":{"line":42,"column":31}},"15":{"start":{"line":45,"column":0},"end":{"line":45,"column":36}},"16":{"start":{"line":46,"column":0},"end":{"line":46,"column":35}},"17":{"start":{"line":47,"column":0},"end":{"line":50,"column":2}},"18":{"start":{"line":53,"column":8},"end":{"line":53,"column":97}},"19":{"start":{"line":54,"column":8},"end":{"line":54,"column":31}},"20":{"start":{"line":57,"column":0},"end":{"line":57,"column":60}},"21":{"start":{"line":58,"column":0},"end":{"line":58,"column":59}},"22":{"start":{"line":59,"column":0},"end":{"line":68,"column":2}},"23":{"start":{"line":71,"column":8},"end":{"line":71,"column":81}},"24":{"start":{"line":72,"column":8},"end":{"line":72,"column":31}},"25":{"start":{"line":75,"column":0},"end":{"line":75,"column":28}},"26":{"start":{"line":76,"column":0},"end":{"line":76,"column":27}},"27":{"start":{"line":77,"column":0},"end":{"line":95,"column":2}},"28":{"start":{"line":98,"column":8},"end":{"line":98,"column":99}},"29":{"start":{"line":99,"column":8},"end":{"line":99,"column":31}},"30":{"start":{"line":102,"column":0},"end":{"line":102,"column":48}},"31":{"start":{"line":103,"column":0},"end":{"line":103,"column":47}},"32":{"start":{"line":104,"column":0},"end":{"line":109,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":73},"end":{"line":9,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":28,"column":4},"end":{"line":28,"column":5}},"loc":{"start":{"line":28,"column":73},"end":{"line":31,"column":5}},"line":28},"2":{"name":"(anonymous_2)","decl":{"start":{"line":40,"column":4},"end":{"line":40,"column":5}},"loc":{"start":{"line":40,"column":73},"end":{"line":43,"column":5}},"line":40},"3":{"name":"(anonymous_3)","decl":{"start":{"line":52,"column":4},"end":{"line":52,"column":5}},"loc":{"start":{"line":52,"column":73},"end":{"line":55,"column":5}},"line":52},"4":{"name":"(anonymous_4)","decl":{"start":{"line":70,"column":4},"end":{"line":70,"column":5}},"loc":{"start":{"line":70,"column":73},"end":{"line":73,"column":5}},"line":70},"5":{"name":"(anonymous_5)","decl":{"start":{"line":97,"column":4},"end":{"line":97,"column":5}},"loc":{"start":{"line":97,"column":66},"end":{"line":100,"column":5}},"line":97}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":59},"end":{"line":6,"column":71}},"type":"default-arg","locations":[{"start":{"line":6,"column":69},"end":{"line":6,"column":71}}],"line":6},"1":{"loc":{"start":{"line":28,"column":59},"end":{"line":28,"column":71}},"type":"default-arg","locations":[{"start":{"line":28,"column":69},"end":{"line":28,"column":71}}],"line":28},"2":{"loc":{"start":{"line":40,"column":59},"end":{"line":40,"column":71}},"type":"default-arg","locations":[{"start":{"line":40,"column":69},"end":{"line":40,"column":71}}],"line":40},"3":{"loc":{"start":{"line":52,"column":59},"end":{"line":52,"column":71}},"type":"default-arg","locations":[{"start":{"line":52,"column":69},"end":{"line":52,"column":71}}],"line":52},"4":{"loc":{"start":{"line":70,"column":59},"end":{"line":70,"column":71}},"type":"default-arg","locations":[{"start":{"line":70,"column":69},"end":{"line":70,"column":71}}],"line":70},"5":{"loc":{"start":{"line":97,"column":52},"end":{"line":97,"column":64}},"type":"default-arg","locations":[{"start":{"line":97,"column":62},"end":{"line":97,"column":64}}],"line":97}},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":1,"6":1,"7":1,"8":0,"9":0,"10":1,"11":1,"12":1,"13":0,"14":0,"15":1,"16":1,"17":1,"18":7,"19":7,"20":1,"21":1,"22":1,"23":83,"24":83,"25":1,"26":1,"27":1,"28":0,"29":0,"30":1,"31":1,"32":1},"f":{"0":0,"1":0,"2":0,"3":7,"4":83,"5":0},"b":{"0":[0],"1":[0],"2":[0],"3":[0],"4":[0],"5":[0]},"inputSourceMap":{"version":3,"file":"/app/modules/engine/src/errors.ts","sources":["/app/modules/engine/src/errors.ts"],"names":[],"mappings":"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","sourcesContent":["import { EngineError, EngineParams, Values } from \"@connext/vector-types\";\n\nexport class DisputeError extends EngineError {\n  static readonly type = \"DisputeError\";\n\n  static readonly reasons = {\n    ChannelDefundTxFailed: \"Failed to send defund channel tx\",\n    ChannelDisputeTxFailed: \"Failed to send dispute channel tx\",\n    ChannelNotInDispute: \"Channel is not in dispute\",\n    ChannelNotFound: \"Channel not found\",\n    CouldNotGetActiveTransfers: \"Failed to retrieve active transfers from store\",\n    CouldNotGetChannel: \"Failed to retrieve channel from store\",\n    CouldNotGetTransfer: \"Failed to retrieve transfer from store\",\n    TransferNotFound: \"Transfer not found\",\n    TransferNotDisputed: \"Transfer not in dispute\",\n    TransferDefundTxFailed: \"Failed to send defund transfer tx\",\n    TransferDisputeTxFailed: \"Failed to send dispute transfer tx\",\n    Unknown: \"Unknown dispute error\",\n  } as const;\n\n  constructor(\n    public readonly message: Values<typeof DisputeError.reasons>,\n    channelAddress: string,\n    publicIdentifier: string,\n    context: any = {},\n  ) {\n    super(message, channelAddress, publicIdentifier, context, DisputeError.type);\n  }\n}\n\nexport class CheckInError extends EngineError {\n  static readonly type = \"CheckInError\";\n\n  static readonly reasons = {\n    ChannelNotFound: \"Channel not found\",\n    Unknown: \"Unknown check-in error\",\n  } as const;\n\n  constructor(\n    public readonly message: Values<typeof CheckInError.reasons>,\n    channelAddress: string,\n    publicIdentifier: string,\n    context: any = {},\n  ) {\n    super(message, channelAddress, publicIdentifier, context, CheckInError.type);\n  }\n}\n\nexport class IsAliveError extends EngineError {\n  static readonly type = \"IsAliveError\";\n\n  static readonly reasons = {\n    ChannelNotFound: \"Channel not found\",\n    Unknown: \"Unknown isAlive error\",\n  } as const;\n\n  constructor(\n    public readonly message: Values<typeof IsAliveError.reasons>,\n    channelAddress: string,\n    publicIdentifier: string,\n    context: any = {},\n  ) {\n    super(message, channelAddress, publicIdentifier, context, IsAliveError.type);\n  }\n}\n\nexport class ParameterConversionError extends EngineError {\n  static readonly type = \"ParameterConversionError\";\n\n  static readonly reasons = {\n    BobDoesntSubmitAlice: \"Bob cannot submit Alice's withdrawals\",\n    CannotSendToSelf: \"An initiator cannot be a receiver on the same chain\",\n    CouldNotGetQuote: \"Failed to get quote\",\n    CouldNotSignWithdrawal: \"Failed to sign withdrawal commitment\",\n    FailedToGetRegisteredTransfer: \"Could not get transfer registry information\",\n    FeeGreaterThanAmount: \"Fees charged are greater than amount\",\n    NoOp: \"Cannot create withdrawal with 0 amount and no call\",\n    WithdrawToZero: \"Cannot withdraw to AddressZero\",\n  } as const;\n\n  constructor(\n    public readonly message: Values<typeof ParameterConversionError.reasons>,\n    channelAddress: string,\n    publicIdentifier: string,\n    context: any = {},\n  ) {\n    super(message, channelAddress, publicIdentifier, context, ParameterConversionError.type);\n  }\n}\n\nexport class RpcError extends EngineError {\n  static readonly type = \"RpcError\";\n\n  static readonly reasons = {\n    ChainServiceFailure: \"Failed to execute chain service method\",\n    ChannelNotFound: \"Channel not found\",\n    DecryptFailed: \"Failed to decrypt\",\n    EngineMethodFailure: \"Failed to execute engine method\",\n    InvalidParams: \"Parameters from rpc request are malformed\",\n    InvalidRpcSchema: \"Rpc request is malformed\",\n    InvalidMethod: \"Rpc method is invalid\",\n    ParamConversionFailed: \"Failed to convert engine \",\n    ProtocolMethodFailed: \"Failed to execute protocol method\",\n    SignerNotInChannel: \"Signer is not in channel\",\n    StoreMethodFailed: \"Failed to execute store method\",\n    TransferNotFound: \"Transfer not found\",\n    SigningFailed: \"Failed to sign message\",\n    UtilitySigningFailed: \"Failed to sign utility message\",\n    WithdrawResolutionFailed: \"Withdrawal commitment not found post-create\",\n    TransactionFound: \"Withdrawal transaction found\",\n    CommitmentSingleSigned: \"Withdrawal commitment single-signed\",\n  } as const;\n\n  constructor(\n    public readonly message: Values<typeof RpcError.reasons>,\n    channelAddress: string,\n    publicIdentifier: string,\n    context: any = {},\n  ) {\n    super(message, channelAddress, publicIdentifier, context, RpcError.type);\n  }\n}\n\nexport class WithdrawQuoteError extends EngineError {\n  static readonly type = \"WithdrawQuoteError\";\n\n  static readonly reasons = {\n    ChannelNotFound: \"Channel not found\",\n    ChainServiceFailure: \"Chain service method failed\",\n    ExchangeRateError: \"Calculating exchange failed\",\n    SignatureFailure: \"Signing quote failed\",\n  } as const;\n\n  constructor(\n    public readonly message: Values<typeof WithdrawQuoteError.reasons>,\n    publicIdentifier: string,\n    request: EngineParams.GetWithdrawalQuote,\n    context: any = {},\n  ) {\n    super(message, request.channelAddress, publicIdentifier, context, WithdrawQuoteError.type);\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8228cef62aff614eeeab640cb8da447459d544fb"},"/app/modules/engine/src/index.ts":{"path":"/app/modules/engine/src/index.ts","statementMap":{"0":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"1":{"start":{"line":3,"column":28},"end":{"line":3,"column":110}},"2":{"start":{"line":3,"column":91},"end":{"line":3,"column":106}},"3":{"start":{"line":4,"column":4},"end":{"line":9,"column":7}},"4":{"start":{"line":5,"column":36},"end":{"line":5,"column":97}},"5":{"start":{"line":5,"column":42},"end":{"line":5,"column":70}},"6":{"start":{"line":5,"column":85},"end":{"line":5,"column":95}},"7":{"start":{"line":6,"column":35},"end":{"line":6,"column":100}},"8":{"start":{"line":6,"column":41},"end":{"line":6,"column":73}},"9":{"start":{"line":6,"column":88},"end":{"line":6,"column":98}},"10":{"start":{"line":7,"column":32},"end":{"line":7,"column":116}},"11":{"start":{"line":8,"column":8},"end":{"line":8,"column":78}},"12":{"start":{"line":11,"column":13},"end":{"line":21,"column":1}},"13":{"start":{"line":12,"column":12},"end":{"line":12,"column":14}},"14":{"start":{"line":13,"column":4},"end":{"line":14,"column":20}},"15":{"start":{"line":13,"column":21},"end":{"line":14,"column":20}},"16":{"start":{"line":14,"column":8},"end":{"line":14,"column":20}},"17":{"start":{"line":15,"column":4},"end":{"line":19,"column":9}},"18":{"start":{"line":16,"column":8},"end":{"line":19,"column":9}},"19":{"start":{"line":16,"column":21},"end":{"line":16,"column":22}},"20":{"start":{"line":16,"column":28},"end":{"line":16,"column":59}},"21":{"start":{"line":17,"column":12},"end":{"line":18,"column":34}},"22":{"start":{"line":18,"column":16},"end":{"line":18,"column":34}},"23":{"start":{"line":20,"column":4},"end":{"line":20,"column":13}},"24":{"start":{"line":22,"column":22},"end":{"line":24,"column":1}},"25":{"start":{"line":23,"column":4},"end":{"line":23,"column":62}},"26":{"start":{"line":25,"column":0},"end":{"line":25,"column":62}},"27":{"start":{"line":26,"column":0},"end":{"line":26,"column":44}},"28":{"start":{"line":27,"column":27},"end":{"line":27,"column":63}},"29":{"start":{"line":28,"column":26},"end":{"line":28,"column":61}},"30":{"start":{"line":29,"column":23},"end":{"line":29,"column":55}},"31":{"start":{"line":30,"column":23},"end":{"line":30,"column":55}},"32":{"start":{"line":31,"column":14},"end":{"line":31,"column":45}},"33":{"start":{"line":32,"column":23},"end":{"line":32,"column":49}},"34":{"start":{"line":33,"column":17},"end":{"line":33,"column":36}},"35":{"start":{"line":34,"column":25},"end":{"line":34,"column":52}},"36":{"start":{"line":35,"column":20},"end":{"line":35,"column":42}},"37":{"start":{"line":36,"column":16},"end":{"line":36,"column":34}},"38":{"start":{"line":37,"column":18},"end":{"line":37,"column":38}},"39":{"start":{"line":38,"column":0},"end":{"line":38,"column":34}},"40":{"start":{"line":41,"column":8},"end":{"line":41,"column":29}},"41":{"start":{"line":42,"column":8},"end":{"line":42,"column":35}},"42":{"start":{"line":43,"column":8},"end":{"line":43,"column":27}},"43":{"start":{"line":44,"column":8},"end":{"line":44,"column":29}},"44":{"start":{"line":45,"column":8},"end":{"line":45,"column":41}},"45":{"start":{"line":46,"column":8},"end":{"line":46,"column":45}},"46":{"start":{"line":47,"column":8},"end":{"line":47,"column":29}},"47":{"start":{"line":48,"column":8},"end":{"line":48,"column":52}},"48":{"start":{"line":51,"column":8},"end":{"line":64,"column":11}},"49":{"start":{"line":52,"column":27},"end":{"line":52,"column":181}},"50":{"start":{"line":53,"column":27},"end":{"line":53,"column":149}},"51":{"start":{"line":54,"column":12},"end":{"line":54,"column":61}},"52":{"start":{"line":55,"column":12},"end":{"line":55,"column":55}},"53":{"start":{"line":56,"column":12},"end":{"line":61,"column":13}},"54":{"start":{"line":57,"column":16},"end":{"line":57,"column":121}},"55":{"start":{"line":60,"column":16},"end":{"line":60,"column":88}},"56":{"start":{"line":62,"column":12},"end":{"line":62,"column":92}},"57":{"start":{"line":63,"column":12},"end":{"line":63,"column":26}},"58":{"start":{"line":67,"column":8},"end":{"line":67,"column":44}},"59":{"start":{"line":70,"column":8},"end":{"line":70,"column":41}},"60":{"start":{"line":73,"column":8},"end":{"line":75,"column":11}},"61":{"start":{"line":74,"column":12},"end":{"line":74,"column":214}},"62":{"start":{"line":78,"column":8},"end":{"line":87,"column":11}},"63":{"start":{"line":79,"column":12},"end":{"line":86,"column":15}},"64":{"start":{"line":91,"column":8},"end":{"line":102,"column":11}},"65":{"start":{"line":92,"column":29},"end":{"line":92,"column":100}},"66":{"start":{"line":93,"column":26},"end":{"line":93,"column":42}},"67":{"start":{"line":94,"column":12},"end":{"line":99,"column":13}},"68":{"start":{"line":95,"column":16},"end":{"line":98,"column":20}},"69":{"start":{"line":96,"column":114},"end":{"line":96,"column":123}},"70":{"start":{"line":100,"column":41},"end":{"line":100,"column":47}},"71":{"start":{"line":100,"column":59},"end":{"line":100,"column":95}},"72":{"start":{"line":101,"column":12},"end":{"line":101,"column":135}},"73":{"start":{"line":106,"column":8},"end":{"line":142,"column":11}},"74":{"start":{"line":107,"column":29},"end":{"line":107,"column":102}},"75":{"start":{"line":108,"column":26},"end":{"line":108,"column":42}},"76":{"start":{"line":109,"column":12},"end":{"line":114,"column":13}},"77":{"start":{"line":110,"column":16},"end":{"line":113,"column":20}},"78":{"start":{"line":111,"column":114},"end":{"line":111,"column":123}},"79":{"start":{"line":115,"column":31},"end":{"line":115,"column":100}},"80":{"start":{"line":116,"column":12},"end":{"line":118,"column":13}},"81":{"start":{"line":117,"column":16},"end":{"line":117,"column":73}},"82":{"start":{"line":119,"column":28},"end":{"line":119,"column":49}},"83":{"start":{"line":120,"column":12},"end":{"line":122,"column":13}},"84":{"start":{"line":121,"column":16},"end":{"line":121,"column":162}},"85":{"start":{"line":123,"column":12},"end":{"line":140,"column":13}},"86":{"start":{"line":124,"column":16},"end":{"line":139,"column":17}},"87":{"start":{"line":125,"column":34},"end":{"line":131,"column":21}},"88":{"start":{"line":132,"column":38},"end":{"line":132,"column":110}},"89":{"start":{"line":133,"column":20},"end":{"line":133,"column":108}},"90":{"start":{"line":136,"column":20},"end":{"line":138,"column":24}},"91":{"start":{"line":141,"column":12},"end":{"line":141,"column":143}},"92":{"start":{"line":146,"column":8},"end":{"line":156,"column":11}},"93":{"start":{"line":147,"column":29},"end":{"line":147,"column":99}},"94":{"start":{"line":148,"column":26},"end":{"line":148,"column":42}},"95":{"start":{"line":149,"column":12},"end":{"line":154,"column":13}},"96":{"start":{"line":150,"column":16},"end":{"line":153,"column":20}},"97":{"start":{"line":151,"column":114},"end":{"line":151,"column":123}},"98":{"start":{"line":155,"column":12},"end":{"line":155,"column":143}},"99":{"start":{"line":159,"column":8},"end":{"line":180,"column":11}},"100":{"start":{"line":160,"column":29},"end":{"line":160,"column":97}},"101":{"start":{"line":160,"column":79},"end":{"line":160,"column":96}},"102":{"start":{"line":161,"column":38},"end":{"line":161,"column":121}},"103":{"start":{"line":161,"column":82},"end":{"line":161,"column":119}},"104":{"start":{"line":162,"column":36},"end":{"line":173,"column":15}},"105":{"start":{"line":164,"column":28},"end":{"line":164,"column":52}},"106":{"start":{"line":166,"column":16},"end":{"line":171,"column":17}},"107":{"start":{"line":167,"column":20},"end":{"line":167,"column":100}},"108":{"start":{"line":170,"column":20},"end":{"line":170,"column":45}},"109":{"start":{"line":172,"column":16},"end":{"line":172,"column":42}},"110":{"start":{"line":174,"column":12},"end":{"line":179,"column":15}},"111":{"start":{"line":184,"column":8},"end":{"line":204,"column":11}},"112":{"start":{"line":185,"column":29},"end":{"line":185,"column":99}},"113":{"start":{"line":186,"column":26},"end":{"line":186,"column":42}},"114":{"start":{"line":187,"column":12},"end":{"line":192,"column":13}},"115":{"start":{"line":188,"column":16},"end":{"line":191,"column":20}},"116":{"start":{"line":189,"column":114},"end":{"line":189,"column":123}},"117":{"start":{"line":193,"column":12},"end":{"line":203,"column":13}},"118":{"start":{"line":194,"column":32},"end":{"line":194,"column":87}},"119":{"start":{"line":195,"column":16},"end":{"line":195,"column":57}},"120":{"start":{"line":198,"column":16},"end":{"line":202,"column":20}},"121":{"start":{"line":208,"column":8},"end":{"line":228,"column":11}},"122":{"start":{"line":209,"column":29},"end":{"line":209,"column":100}},"123":{"start":{"line":210,"column":26},"end":{"line":210,"column":42}},"124":{"start":{"line":211,"column":12},"end":{"line":216,"column":13}},"125":{"start":{"line":212,"column":16},"end":{"line":215,"column":20}},"126":{"start":{"line":213,"column":114},"end":{"line":213,"column":123}},"127":{"start":{"line":217,"column":12},"end":{"line":227,"column":13}},"128":{"start":{"line":218,"column":33},"end":{"line":218,"column":85}},"129":{"start":{"line":219,"column":16},"end":{"line":219,"column":58}},"130":{"start":{"line":222,"column":16},"end":{"line":226,"column":20}},"131":{"start":{"line":232,"column":8},"end":{"line":251,"column":11}},"132":{"start":{"line":233,"column":29},"end":{"line":233,"column":102}},"133":{"start":{"line":234,"column":26},"end":{"line":234,"column":42}},"134":{"start":{"line":235,"column":12},"end":{"line":240,"column":13}},"135":{"start":{"line":236,"column":16},"end":{"line":239,"column":20}},"136":{"start":{"line":237,"column":114},"end":{"line":237,"column":123}},"137":{"start":{"line":241,"column":12},"end":{"line":250,"column":13}},"138":{"start":{"line":242,"column":34},"end":{"line":242,"column":92}},"139":{"start":{"line":243,"column":16},"end":{"line":243,"column":59}},"140":{"start":{"line":246,"column":16},"end":{"line":249,"column":20}},"141":{"start":{"line":255,"column":8},"end":{"line":274,"column":11}},"142":{"start":{"line":256,"column":29},"end":{"line":256,"column":96}},"143":{"start":{"line":257,"column":26},"end":{"line":257,"column":42}},"144":{"start":{"line":258,"column":12},"end":{"line":263,"column":13}},"145":{"start":{"line":259,"column":16},"end":{"line":262,"column":20}},"146":{"start":{"line":260,"column":114},"end":{"line":260,"column":123}},"147":{"start":{"line":264,"column":12},"end":{"line":273,"column":13}},"148":{"start":{"line":265,"column":34},"end":{"line":265,"column":71}},"149":{"start":{"line":266,"column":16},"end":{"line":266,"column":59}},"150":{"start":{"line":269,"column":16},"end":{"line":272,"column":20}},"151":{"start":{"line":278,"column":8},"end":{"line":297,"column":11}},"152":{"start":{"line":279,"column":29},"end":{"line":279,"column":111}},"153":{"start":{"line":280,"column":26},"end":{"line":280,"column":42}},"154":{"start":{"line":281,"column":12},"end":{"line":286,"column":13}},"155":{"start":{"line":282,"column":16},"end":{"line":285,"column":20}},"156":{"start":{"line":283,"column":114},"end":{"line":283,"column":123}},"157":{"start":{"line":287,"column":12},"end":{"line":296,"column":13}},"158":{"start":{"line":288,"column":33},"end":{"line":288,"column":113}},"159":{"start":{"line":289,"column":16},"end":{"line":289,"column":58}},"160":{"start":{"line":292,"column":16},"end":{"line":295,"column":20}},"161":{"start":{"line":301,"column":8},"end":{"line":320,"column":11}},"162":{"start":{"line":302,"column":29},"end":{"line":302,"column":112}},"163":{"start":{"line":303,"column":26},"end":{"line":303,"column":42}},"164":{"start":{"line":304,"column":12},"end":{"line":309,"column":13}},"165":{"start":{"line":305,"column":16},"end":{"line":308,"column":20}},"166":{"start":{"line":306,"column":114},"end":{"line":306,"column":123}},"167":{"start":{"line":310,"column":12},"end":{"line":319,"column":13}},"168":{"start":{"line":311,"column":34},"end":{"line":311,"column":92}},"169":{"start":{"line":312,"column":16},"end":{"line":312,"column":59}},"170":{"start":{"line":315,"column":16},"end":{"line":318,"column":20}},"171":{"start":{"line":324,"column":8},"end":{"line":344,"column":11}},"172":{"start":{"line":325,"column":29},"end":{"line":325,"column":113}},"173":{"start":{"line":326,"column":26},"end":{"line":326,"column":42}},"174":{"start":{"line":327,"column":12},"end":{"line":332,"column":13}},"175":{"start":{"line":328,"column":16},"end":{"line":331,"column":20}},"176":{"start":{"line":329,"column":114},"end":{"line":329,"column":123}},"177":{"start":{"line":333,"column":12},"end":{"line":343,"column":13}},"178":{"start":{"line":334,"column":32},"end":{"line":334,"column":120}},"179":{"start":{"line":335,"column":16},"end":{"line":335,"column":57}},"180":{"start":{"line":338,"column":16},"end":{"line":342,"column":20}},"181":{"start":{"line":347,"column":8},"end":{"line":358,"column":11}},"182":{"start":{"line":348,"column":12},"end":{"line":357,"column":13}},"183":{"start":{"line":349,"column":32},"end":{"line":349,"column":67}},"184":{"start":{"line":350,"column":16},"end":{"line":350,"column":57}},"185":{"start":{"line":353,"column":16},"end":{"line":356,"column":20}},"186":{"start":{"line":362,"column":8},"end":{"line":374,"column":11}},"187":{"start":{"line":363,"column":29},"end":{"line":363,"column":106}},"188":{"start":{"line":364,"column":26},"end":{"line":364,"column":42}},"189":{"start":{"line":365,"column":12},"end":{"line":370,"column":13}},"190":{"start":{"line":366,"column":16},"end":{"line":369,"column":20}},"191":{"start":{"line":367,"column":114},"end":{"line":367,"column":123}},"192":{"start":{"line":371,"column":32},"end":{"line":371,"column":38}},"193":{"start":{"line":372,"column":27},"end":{"line":372,"column":136}},"194":{"start":{"line":373,"column":12},"end":{"line":373,"column":26}},"195":{"start":{"line":378,"column":8},"end":{"line":398,"column":11}},"196":{"start":{"line":379,"column":29},"end":{"line":379,"column":107}},"197":{"start":{"line":380,"column":26},"end":{"line":380,"column":42}},"198":{"start":{"line":381,"column":12},"end":{"line":386,"column":13}},"199":{"start":{"line":382,"column":16},"end":{"line":385,"column":20}},"200":{"start":{"line":383,"column":114},"end":{"line":383,"column":123}},"201":{"start":{"line":387,"column":35},"end":{"line":387,"column":41}},"202":{"start":{"line":388,"column":12},"end":{"line":397,"column":13}},"203":{"start":{"line":389,"column":31},"end":{"line":389,"column":83}},"204":{"start":{"line":390,"column":16},"end":{"line":390,"column":56}},"205":{"start":{"line":393,"column":16},"end":{"line":396,"column":20}},"206":{"start":{"line":402,"column":8},"end":{"line":422,"column":11}},"207":{"start":{"line":403,"column":29},"end":{"line":403,"column":124}},"208":{"start":{"line":404,"column":26},"end":{"line":404,"column":42}},"209":{"start":{"line":405,"column":12},"end":{"line":410,"column":13}},"210":{"start":{"line":406,"column":16},"end":{"line":409,"column":20}},"211":{"start":{"line":407,"column":114},"end":{"line":407,"column":123}},"212":{"start":{"line":411,"column":40},"end":{"line":411,"column":46}},"213":{"start":{"line":412,"column":12},"end":{"line":421,"column":13}},"214":{"start":{"line":413,"column":31},"end":{"line":413,"column":105}},"215":{"start":{"line":414,"column":16},"end":{"line":414,"column":56}},"216":{"start":{"line":417,"column":16},"end":{"line":420,"column":20}},"217":{"start":{"line":426,"column":8},"end":{"line":472,"column":11}},"218":{"start":{"line":427,"column":27},"end":{"line":427,"column":34}},"219":{"start":{"line":428,"column":29},"end":{"line":428,"column":62}},"220":{"start":{"line":429,"column":12},"end":{"line":429,"column":77}},"221":{"start":{"line":430,"column":29},"end":{"line":430,"column":89}},"222":{"start":{"line":431,"column":26},"end":{"line":431,"column":42}},"223":{"start":{"line":432,"column":12},"end":{"line":437,"column":13}},"224":{"start":{"line":433,"column":16},"end":{"line":436,"column":20}},"225":{"start":{"line":434,"column":114},"end":{"line":434,"column":123}},"226":{"start":{"line":438,"column":35},"end":{"line":438,"column":72}},"227":{"start":{"line":439,"column":12},"end":{"line":441,"column":13}},"228":{"start":{"line":440,"column":16},"end":{"line":440,"column":77}},"229":{"start":{"line":442,"column":38},"end":{"line":442,"column":108}},"230":{"start":{"line":443,"column":12},"end":{"line":445,"column":13}},"231":{"start":{"line":444,"column":16},"end":{"line":444,"column":80}},"232":{"start":{"line":446,"column":29},"end":{"line":446,"column":82}},"233":{"start":{"line":447,"column":12},"end":{"line":449,"column":13}},"234":{"start":{"line":448,"column":16},"end":{"line":448,"column":71}},"235":{"start":{"line":450,"column":28},"end":{"line":450,"column":47}},"236":{"start":{"line":451,"column":12},"end":{"line":453,"column":13}},"237":{"start":{"line":452,"column":16},"end":{"line":452,"column":32}},"238":{"start":{"line":454,"column":12},"end":{"line":456,"column":13}},"239":{"start":{"line":455,"column":16},"end":{"line":455,"column":32}},"240":{"start":{"line":457,"column":12},"end":{"line":457,"column":145}},"241":{"start":{"line":458,"column":30},"end":{"line":458,"column":82}},"242":{"start":{"line":459,"column":12},"end":{"line":463,"column":13}},"243":{"start":{"line":460,"column":28},"end":{"line":460,"column":48}},"244":{"start":{"line":461,"column":16},"end":{"line":461,"column":320}},"245":{"start":{"line":462,"column":16},"end":{"line":462,"column":32}},"246":{"start":{"line":464,"column":28},"end":{"line":464,"column":48}},"247":{"start":{"line":465,"column":12},"end":{"line":465,"column":125}},"248":{"start":{"line":466,"column":12},"end":{"line":470,"column":34}},"249":{"start":{"line":471,"column":12},"end":{"line":471,"column":28}},"250":{"start":{"line":476,"column":8},"end":{"line":491,"column":11}},"251":{"start":{"line":477,"column":27},"end":{"line":477,"column":41}},"252":{"start":{"line":478,"column":29},"end":{"line":478,"column":62}},"253":{"start":{"line":479,"column":12},"end":{"line":479,"column":77}},"254":{"start":{"line":480,"column":29},"end":{"line":480,"column":89}},"255":{"start":{"line":481,"column":26},"end":{"line":481,"column":42}},"256":{"start":{"line":482,"column":12},"end":{"line":487,"column":13}},"257":{"start":{"line":483,"column":16},"end":{"line":486,"column":20}},"258":{"start":{"line":484,"column":114},"end":{"line":484,"column":123}},"259":{"start":{"line":488,"column":24},"end":{"line":488,"column":149}},"260":{"start":{"line":489,"column":12},"end":{"line":489,"column":169}},"261":{"start":{"line":490,"column":12},"end":{"line":490,"column":23}},"262":{"start":{"line":495,"column":8},"end":{"line":531,"column":11}},"263":{"start":{"line":496,"column":27},"end":{"line":496,"column":36}},"264":{"start":{"line":497,"column":29},"end":{"line":497,"column":62}},"265":{"start":{"line":498,"column":12},"end":{"line":498,"column":77}},"266":{"start":{"line":499,"column":29},"end":{"line":499,"column":91}},"267":{"start":{"line":500,"column":26},"end":{"line":500,"column":42}},"268":{"start":{"line":501,"column":12},"end":{"line":506,"column":13}},"269":{"start":{"line":502,"column":16},"end":{"line":505,"column":20}},"270":{"start":{"line":503,"column":114},"end":{"line":503,"column":123}},"271":{"start":{"line":507,"column":28},"end":{"line":507,"column":31}},"272":{"start":{"line":508,"column":29},"end":{"line":508,"column":62}},"273":{"start":{"line":509,"column":24},"end":{"line":509,"column":25}},"274":{"start":{"line":510,"column":12},"end":{"line":524,"column":13}},"275":{"start":{"line":511,"column":16},"end":{"line":513,"column":17}},"276":{"start":{"line":512,"column":20},"end":{"line":512,"column":26}},"277":{"start":{"line":514,"column":30},"end":{"line":514,"column":51}},"278":{"start":{"line":515,"column":36},"end":{"line":515,"column":63}},"279":{"start":{"line":516,"column":39},"end":{"line":516,"column":223}},"280":{"start":{"line":517,"column":16},"end":{"line":519,"column":17}},"281":{"start":{"line":518,"column":20},"end":{"line":518,"column":26}},"282":{"start":{"line":520,"column":16},"end":{"line":520,"column":127}},"283":{"start":{"line":521,"column":16},"end":{"line":521,"column":63}},"284":{"start":{"line":522,"column":16},"end":{"line":522,"column":24}},"285":{"start":{"line":523,"column":16},"end":{"line":523,"column":52}},"286":{"start":{"line":525,"column":12},"end":{"line":529,"column":34}},"287":{"start":{"line":530,"column":12},"end":{"line":530,"column":30}},"288":{"start":{"line":535,"column":8},"end":{"line":566,"column":11}},"289":{"start":{"line":536,"column":27},"end":{"line":536,"column":46}},"290":{"start":{"line":537,"column":29},"end":{"line":537,"column":62}},"291":{"start":{"line":538,"column":12},"end":{"line":538,"column":77}},"292":{"start":{"line":539,"column":29},"end":{"line":539,"column":101}},"293":{"start":{"line":540,"column":26},"end":{"line":540,"column":42}},"294":{"start":{"line":541,"column":12},"end":{"line":546,"column":13}},"295":{"start":{"line":542,"column":16},"end":{"line":545,"column":20}},"296":{"start":{"line":543,"column":114},"end":{"line":543,"column":123}},"297":{"start":{"line":547,"column":31},"end":{"line":547,"column":100}},"298":{"start":{"line":548,"column":12},"end":{"line":550,"column":13}},"299":{"start":{"line":549,"column":16},"end":{"line":549,"column":73}},"300":{"start":{"line":551,"column":28},"end":{"line":551,"column":49}},"301":{"start":{"line":552,"column":12},"end":{"line":554,"column":13}},"302":{"start":{"line":553,"column":16},"end":{"line":553,"column":162}},"303":{"start":{"line":555,"column":32},"end":{"line":555,"column":93}},"304":{"start":{"line":556,"column":12},"end":{"line":562,"column":13}},"305":{"start":{"line":557,"column":16},"end":{"line":561,"column":20}},"306":{"start":{"line":563,"column":28},"end":{"line":563,"column":209}},"307":{"start":{"line":564,"column":12},"end":{"line":564,"column":166}},"308":{"start":{"line":565,"column":12},"end":{"line":565,"column":27}},"309":{"start":{"line":570,"column":8},"end":{"line":604,"column":11}},"310":{"start":{"line":571,"column":27},"end":{"line":571,"column":43}},"311":{"start":{"line":572,"column":29},"end":{"line":572,"column":62}},"312":{"start":{"line":573,"column":12},"end":{"line":573,"column":77}},"313":{"start":{"line":574,"column":29},"end":{"line":574,"column":103}},"314":{"start":{"line":575,"column":26},"end":{"line":575,"column":42}},"315":{"start":{"line":576,"column":12},"end":{"line":581,"column":13}},"316":{"start":{"line":577,"column":16},"end":{"line":580,"column":20}},"317":{"start":{"line":578,"column":114},"end":{"line":578,"column":123}},"318":{"start":{"line":582,"column":31},"end":{"line":582,"column":100}},"319":{"start":{"line":583,"column":12},"end":{"line":585,"column":13}},"320":{"start":{"line":584,"column":16},"end":{"line":584,"column":73}},"321":{"start":{"line":586,"column":28},"end":{"line":586,"column":49}},"322":{"start":{"line":587,"column":12},"end":{"line":589,"column":13}},"323":{"start":{"line":588,"column":16},"end":{"line":588,"column":162}},"324":{"start":{"line":590,"column":12},"end":{"line":590,"column":84}},"325":{"start":{"line":591,"column":33},"end":{"line":591,"column":153}},"326":{"start":{"line":592,"column":12},"end":{"line":594,"column":13}},"327":{"start":{"line":593,"column":16},"end":{"line":593,"column":75}},"328":{"start":{"line":595,"column":33},"end":{"line":595,"column":56}},"329":{"start":{"line":596,"column":12},"end":{"line":596,"column":120}},"330":{"start":{"line":597,"column":32},"end":{"line":597,"column":70}},"331":{"start":{"line":598,"column":12},"end":{"line":600,"column":13}},"332":{"start":{"line":599,"column":16},"end":{"line":599,"column":74}},"333":{"start":{"line":601,"column":24},"end":{"line":601,"column":46}},"334":{"start":{"line":602,"column":12},"end":{"line":602,"column":106}},"335":{"start":{"line":603,"column":12},"end":{"line":603,"column":49}},"336":{"start":{"line":608,"column":8},"end":{"line":643,"column":11}},"337":{"start":{"line":609,"column":27},"end":{"line":609,"column":44}},"338":{"start":{"line":610,"column":29},"end":{"line":610,"column":62}},"339":{"start":{"line":611,"column":12},"end":{"line":611,"column":77}},"340":{"start":{"line":612,"column":29},"end":{"line":612,"column":99}},"341":{"start":{"line":613,"column":26},"end":{"line":613,"column":42}},"342":{"start":{"line":614,"column":12},"end":{"line":619,"column":13}},"343":{"start":{"line":615,"column":16},"end":{"line":618,"column":20}},"344":{"start":{"line":616,"column":114},"end":{"line":616,"column":123}},"345":{"start":{"line":620,"column":32},"end":{"line":620,"column":94}},"346":{"start":{"line":621,"column":12},"end":{"line":623,"column":13}},"347":{"start":{"line":622,"column":16},"end":{"line":622,"column":74}},"348":{"start":{"line":624,"column":29},"end":{"line":624,"column":51}},"349":{"start":{"line":625,"column":12},"end":{"line":629,"column":13}},"350":{"start":{"line":626,"column":16},"end":{"line":628,"column":20}},"351":{"start":{"line":630,"column":12},"end":{"line":630,"column":85}},"352":{"start":{"line":631,"column":34},"end":{"line":631,"column":98}},"353":{"start":{"line":632,"column":12},"end":{"line":634,"column":13}},"354":{"start":{"line":633,"column":16},"end":{"line":633,"column":76}},"355":{"start":{"line":635,"column":34},"end":{"line":635,"column":58}},"356":{"start":{"line":636,"column":32},"end":{"line":636,"column":72}},"357":{"start":{"line":637,"column":12},"end":{"line":639,"column":13}},"358":{"start":{"line":638,"column":16},"end":{"line":638,"column":74}},"359":{"start":{"line":640,"column":24},"end":{"line":640,"column":46}},"360":{"start":{"line":641,"column":12},"end":{"line":641,"column":106}},"361":{"start":{"line":642,"column":12},"end":{"line":642,"column":49}},"362":{"start":{"line":647,"column":8},"end":{"line":707,"column":11}},"363":{"start":{"line":648,"column":27},"end":{"line":648,"column":37}},"364":{"start":{"line":649,"column":29},"end":{"line":649,"column":62}},"365":{"start":{"line":650,"column":12},"end":{"line":650,"column":77}},"366":{"start":{"line":651,"column":29},"end":{"line":651,"column":92}},"367":{"start":{"line":652,"column":26},"end":{"line":652,"column":42}},"368":{"start":{"line":653,"column":12},"end":{"line":658,"column":13}},"369":{"start":{"line":654,"column":16},"end":{"line":657,"column":20}},"370":{"start":{"line":655,"column":114},"end":{"line":655,"column":123}},"371":{"start":{"line":659,"column":31},"end":{"line":659,"column":100}},"372":{"start":{"line":660,"column":12},"end":{"line":662,"column":13}},"373":{"start":{"line":661,"column":16},"end":{"line":661,"column":73}},"374":{"start":{"line":663,"column":28},"end":{"line":663,"column":49}},"375":{"start":{"line":664,"column":12},"end":{"line":666,"column":13}},"376":{"start":{"line":665,"column":16},"end":{"line":665,"column":162}},"377":{"start":{"line":667,"column":33},"end":{"line":667,"column":163}},"378":{"start":{"line":668,"column":12},"end":{"line":670,"column":13}},"379":{"start":{"line":669,"column":16},"end":{"line":669,"column":75}},"380":{"start":{"line":671,"column":33},"end":{"line":671,"column":56}},"381":{"start":{"line":672,"column":37},"end":{"line":672,"column":117}},"382":{"start":{"line":673,"column":28},"end":{"line":673,"column":34}},"383":{"start":{"line":674,"column":29},"end":{"line":674,"column":215}},"384":{"start":{"line":674,"column":46},"end":{"line":674,"column":215}},"385":{"start":{"line":674,"column":116},"end":{"line":674,"column":205}},"386":{"start":{"line":675,"column":31},"end":{"line":675,"column":210}},"387":{"start":{"line":675,"column":48},"end":{"line":675,"column":210}},"388":{"start":{"line":675,"column":120},"end":{"line":675,"column":200}},"389":{"start":{"line":676,"column":32},"end":{"line":676,"column":70}},"390":{"start":{"line":677,"column":12},"end":{"line":679,"column":13}},"391":{"start":{"line":678,"column":16},"end":{"line":678,"column":74}},"392":{"start":{"line":680,"column":24},"end":{"line":680,"column":46}},"393":{"start":{"line":681,"column":31},"end":{"line":681,"column":66}},"394":{"start":{"line":682,"column":12},"end":{"line":682,"column":113}},"395":{"start":{"line":685,"column":12},"end":{"line":695,"column":13}},"396":{"start":{"line":686,"column":34},"end":{"line":686,"column":60}},"397":{"start":{"line":687,"column":16},"end":{"line":690,"column":17}},"398":{"start":{"line":688,"column":40},"end":{"line":688,"column":68}},"399":{"start":{"line":689,"column":20},"end":{"line":689,"column":112}},"400":{"start":{"line":691,"column":16},"end":{"line":691,"column":52}},"401":{"start":{"line":694,"column":16},"end":{"line":694,"column":153}},"402":{"start":{"line":696,"column":12},"end":{"line":704,"column":13}},"403":{"start":{"line":697,"column":35},"end":{"line":697,"column":87}},"404":{"start":{"line":698,"column":16},"end":{"line":702,"column":17}},"405":{"start":{"line":699,"column":20},"end":{"line":701,"column":24}},"406":{"start":{"line":703,"column":16},"end":{"line":703,"column":120}},"407":{"start":{"line":705,"column":12},"end":{"line":705,"column":136}},"408":{"start":{"line":706,"column":12},"end":{"line":706,"column":105}},"409":{"start":{"line":711,"column":8},"end":{"line":746,"column":11}},"410":{"start":{"line":712,"column":27},"end":{"line":712,"column":42}},"411":{"start":{"line":713,"column":29},"end":{"line":713,"column":62}},"412":{"start":{"line":714,"column":12},"end":{"line":714,"column":77}},"413":{"start":{"line":715,"column":29},"end":{"line":715,"column":97}},"414":{"start":{"line":716,"column":26},"end":{"line":716,"column":42}},"415":{"start":{"line":717,"column":12},"end":{"line":722,"column":13}},"416":{"start":{"line":718,"column":16},"end":{"line":721,"column":20}},"417":{"start":{"line":719,"column":114},"end":{"line":719,"column":123}},"418":{"start":{"line":723,"column":31},"end":{"line":723,"column":100}},"419":{"start":{"line":724,"column":12},"end":{"line":726,"column":13}},"420":{"start":{"line":725,"column":16},"end":{"line":725,"column":73}},"421":{"start":{"line":727,"column":28},"end":{"line":727,"column":49}},"422":{"start":{"line":728,"column":12},"end":{"line":732,"column":13}},"423":{"start":{"line":729,"column":16},"end":{"line":731,"column":20}},"424":{"start":{"line":733,"column":24},"end":{"line":733,"column":175}},"425":{"start":{"line":734,"column":12},"end":{"line":736,"column":13}},"426":{"start":{"line":735,"column":16},"end":{"line":735,"column":66}},"427":{"start":{"line":737,"column":37},"end":{"line":737,"column":51}},"428":{"start":{"line":738,"column":12},"end":{"line":744,"column":34}},"429":{"start":{"line":745,"column":12},"end":{"line":745,"column":62}},"430":{"start":{"line":750,"column":8},"end":{"line":792,"column":11}},"431":{"start":{"line":751,"column":27},"end":{"line":751,"column":55}},"432":{"start":{"line":752,"column":29},"end":{"line":752,"column":62}},"433":{"start":{"line":753,"column":12},"end":{"line":753,"column":77}},"434":{"start":{"line":754,"column":29},"end":{"line":754,"column":110}},"435":{"start":{"line":755,"column":26},"end":{"line":755,"column":42}},"436":{"start":{"line":756,"column":12},"end":{"line":761,"column":13}},"437":{"start":{"line":757,"column":16},"end":{"line":760,"column":20}},"438":{"start":{"line":758,"column":114},"end":{"line":758,"column":123}},"439":{"start":{"line":762,"column":31},"end":{"line":762,"column":100}},"440":{"start":{"line":763,"column":12},"end":{"line":765,"column":13}},"441":{"start":{"line":764,"column":16},"end":{"line":764,"column":73}},"442":{"start":{"line":766,"column":28},"end":{"line":766,"column":49}},"443":{"start":{"line":767,"column":12},"end":{"line":771,"column":13}},"444":{"start":{"line":768,"column":16},"end":{"line":770,"column":20}},"445":{"start":{"line":772,"column":25},"end":{"line":772,"column":84}},"446":{"start":{"line":773,"column":12},"end":{"line":777,"column":13}},"447":{"start":{"line":774,"column":16},"end":{"line":776,"column":20}},"448":{"start":{"line":778,"column":12},"end":{"line":783,"column":13}},"449":{"start":{"line":779,"column":16},"end":{"line":782,"column":20}},"450":{"start":{"line":784,"column":31},"end":{"line":784,"column":89}},"451":{"start":{"line":785,"column":12},"end":{"line":789,"column":13}},"452":{"start":{"line":786,"column":16},"end":{"line":788,"column":20}},"453":{"start":{"line":790,"column":12},"end":{"line":790,"column":168}},"454":{"start":{"line":791,"column":12},"end":{"line":791,"column":55}},"455":{"start":{"line":795,"column":8},"end":{"line":809,"column":11}},"456":{"start":{"line":796,"column":27},"end":{"line":796,"column":36}},"457":{"start":{"line":797,"column":29},"end":{"line":797,"column":62}},"458":{"start":{"line":798,"column":12},"end":{"line":798,"column":80}},"459":{"start":{"line":799,"column":12},"end":{"line":808,"column":13}},"460":{"start":{"line":800,"column":28},"end":{"line":800,"column":64}},"461":{"start":{"line":801,"column":16},"end":{"line":801,"column":79}},"462":{"start":{"line":802,"column":16},"end":{"line":802,"column":53}},"463":{"start":{"line":805,"column":16},"end":{"line":807,"column":20}},"464":{"start":{"line":813,"column":8},"end":{"line":835,"column":11}},"465":{"start":{"line":814,"column":27},"end":{"line":814,"column":47}},"466":{"start":{"line":815,"column":29},"end":{"line":815,"column":62}},"467":{"start":{"line":816,"column":12},"end":{"line":816,"column":77}},"468":{"start":{"line":817,"column":29},"end":{"line":817,"column":102}},"469":{"start":{"line":818,"column":26},"end":{"line":818,"column":42}},"470":{"start":{"line":819,"column":12},"end":{"line":824,"column":13}},"471":{"start":{"line":820,"column":16},"end":{"line":823,"column":20}},"472":{"start":{"line":821,"column":114},"end":{"line":821,"column":123}},"473":{"start":{"line":825,"column":12},"end":{"line":834,"column":13}},"474":{"start":{"line":826,"column":28},"end":{"line":826,"column":80}},"475":{"start":{"line":827,"column":16},"end":{"line":827,"column":79}},"476":{"start":{"line":828,"column":16},"end":{"line":828,"column":53}},"477":{"start":{"line":831,"column":16},"end":{"line":833,"column":20}},"478":{"start":{"line":839,"column":8},"end":{"line":866,"column":11}},"479":{"start":{"line":840,"column":27},"end":{"line":840,"column":40}},"480":{"start":{"line":841,"column":29},"end":{"line":841,"column":62}},"481":{"start":{"line":842,"column":12},"end":{"line":842,"column":77}},"482":{"start":{"line":843,"column":29},"end":{"line":843,"column":95}},"483":{"start":{"line":844,"column":26},"end":{"line":844,"column":42}},"484":{"start":{"line":845,"column":12},"end":{"line":850,"column":13}},"485":{"start":{"line":846,"column":16},"end":{"line":849,"column":20}},"486":{"start":{"line":847,"column":114},"end":{"line":847,"column":123}},"487":{"start":{"line":851,"column":12},"end":{"line":865,"column":13}},"488":{"start":{"line":852,"column":32},"end":{"line":852,"column":87}},"489":{"start":{"line":853,"column":16},"end":{"line":855,"column":17}},"490":{"start":{"line":854,"column":20},"end":{"line":854,"column":181}},"491":{"start":{"line":856,"column":37},"end":{"line":856,"column":124}},"492":{"start":{"line":857,"column":28},"end":{"line":857,"column":145}},"493":{"start":{"line":858,"column":16},"end":{"line":858,"column":173}},"494":{"start":{"line":859,"column":16},"end":{"line":859,"column":27}},"495":{"start":{"line":862,"column":16},"end":{"line":864,"column":20}},"496":{"start":{"line":870,"column":8},"end":{"line":899,"column":11}},"497":{"start":{"line":871,"column":27},"end":{"line":871,"column":41}},"498":{"start":{"line":872,"column":29},"end":{"line":872,"column":62}},"499":{"start":{"line":873,"column":12},"end":{"line":873,"column":77}},"500":{"start":{"line":874,"column":29},"end":{"line":874,"column":96}},"501":{"start":{"line":875,"column":26},"end":{"line":875,"column":42}},"502":{"start":{"line":876,"column":12},"end":{"line":881,"column":13}},"503":{"start":{"line":877,"column":16},"end":{"line":880,"column":20}},"504":{"start":{"line":878,"column":114},"end":{"line":878,"column":123}},"505":{"start":{"line":882,"column":34},"end":{"line":882,"column":72}},"506":{"start":{"line":883,"column":12},"end":{"line":885,"column":13}},"507":{"start":{"line":884,"column":16},"end":{"line":884,"column":76}},"508":{"start":{"line":886,"column":28},"end":{"line":886,"column":52}},"509":{"start":{"line":887,"column":12},"end":{"line":892,"column":15}},"510":{"start":{"line":893,"column":12},"end":{"line":897,"column":34}},"511":{"start":{"line":898,"column":12},"end":{"line":898,"column":53}},"512":{"start":{"line":903,"column":8},"end":{"line":919,"column":11}},"513":{"start":{"line":904,"column":29},"end":{"line":904,"column":101}},"514":{"start":{"line":905,"column":26},"end":{"line":905,"column":42}},"515":{"start":{"line":906,"column":12},"end":{"line":911,"column":13}},"516":{"start":{"line":907,"column":16},"end":{"line":910,"column":20}},"517":{"start":{"line":908,"column":114},"end":{"line":908,"column":123}},"518":{"start":{"line":912,"column":12},"end":{"line":918,"column":13}},"519":{"start":{"line":913,"column":32},"end":{"line":913,"column":89}},"520":{"start":{"line":914,"column":16},"end":{"line":914,"column":57}},"521":{"start":{"line":917,"column":16},"end":{"line":917,"column":176}},"522":{"start":{"line":923,"column":8},"end":{"line":954,"column":11}},"523":{"start":{"line":924,"column":29},"end":{"line":924,"column":98}},"524":{"start":{"line":925,"column":26},"end":{"line":925,"column":42}},"525":{"start":{"line":926,"column":12},"end":{"line":931,"column":13}},"526":{"start":{"line":927,"column":16},"end":{"line":930,"column":20}},"527":{"start":{"line":928,"column":114},"end":{"line":928,"column":123}},"528":{"start":{"line":932,"column":28},"end":{"line":932,"column":97}},"529":{"start":{"line":933,"column":12},"end":{"line":935,"column":13}},"530":{"start":{"line":934,"column":16},"end":{"line":934,"column":70}},"531":{"start":{"line":936,"column":26},"end":{"line":936,"column":44}},"532":{"start":{"line":937,"column":12},"end":{"line":939,"column":13}},"533":{"start":{"line":938,"column":16},"end":{"line":938,"column":170}},"534":{"start":{"line":940,"column":31},"end":{"line":940,"column":82}},"535":{"start":{"line":941,"column":12},"end":{"line":943,"column":13}},"536":{"start":{"line":942,"column":16},"end":{"line":942,"column":73}},"537":{"start":{"line":944,"column":28},"end":{"line":944,"column":121}},"538":{"start":{"line":945,"column":12},"end":{"line":952,"column":13}},"539":{"start":{"line":946,"column":16},"end":{"line":951,"column":17}},"540":{"start":{"line":947,"column":20},"end":{"line":947,"column":98}},"541":{"start":{"line":950,"column":20},"end":{"line":950,"column":123}},"542":{"start":{"line":953,"column":12},"end":{"line":953,"column":104}},"543":{"start":{"line":958,"column":8},"end":{"line":983,"column":11}},"544":{"start":{"line":959,"column":29},"end":{"line":959,"column":97}},"545":{"start":{"line":960,"column":26},"end":{"line":960,"column":42}},"546":{"start":{"line":961,"column":12},"end":{"line":966,"column":13}},"547":{"start":{"line":962,"column":16},"end":{"line":965,"column":20}},"548":{"start":{"line":963,"column":114},"end":{"line":963,"column":123}},"549":{"start":{"line":967,"column":28},"end":{"line":967,"column":97}},"550":{"start":{"line":968,"column":12},"end":{"line":970,"column":13}},"551":{"start":{"line":969,"column":16},"end":{"line":969,"column":70}},"552":{"start":{"line":971,"column":26},"end":{"line":971,"column":44}},"553":{"start":{"line":972,"column":12},"end":{"line":974,"column":13}},"554":{"start":{"line":973,"column":16},"end":{"line":973,"column":170}},"555":{"start":{"line":975,"column":12},"end":{"line":977,"column":13}},"556":{"start":{"line":976,"column":16},"end":{"line":976,"column":174}},"557":{"start":{"line":978,"column":31},"end":{"line":978,"column":81}},"558":{"start":{"line":979,"column":12},"end":{"line":981,"column":13}},"559":{"start":{"line":980,"column":16},"end":{"line":980,"column":73}},"560":{"start":{"line":982,"column":12},"end":{"line":982,"column":104}},"561":{"start":{"line":987,"column":8},"end":{"line":1003,"column":11}},"562":{"start":{"line":988,"column":29},"end":{"line":988,"column":99}},"563":{"start":{"line":989,"column":26},"end":{"line":989,"column":42}},"564":{"start":{"line":990,"column":12},"end":{"line":995,"column":13}},"565":{"start":{"line":991,"column":16},"end":{"line":994,"column":20}},"566":{"start":{"line":992,"column":114},"end":{"line":992,"column":123}},"567":{"start":{"line":996,"column":12},"end":{"line":1002,"column":13}},"568":{"start":{"line":997,"column":32},"end":{"line":997,"column":86}},"569":{"start":{"line":998,"column":16},"end":{"line":998,"column":57}},"570":{"start":{"line":1001,"column":16},"end":{"line":1001,"column":157}},"571":{"start":{"line":1007,"column":8},"end":{"line":1035,"column":11}},"572":{"start":{"line":1008,"column":29},"end":{"line":1008,"column":99}},"573":{"start":{"line":1009,"column":26},"end":{"line":1009,"column":42}},"574":{"start":{"line":1010,"column":12},"end":{"line":1015,"column":13}},"575":{"start":{"line":1011,"column":16},"end":{"line":1014,"column":20}},"576":{"start":{"line":1012,"column":114},"end":{"line":1012,"column":123}},"577":{"start":{"line":1016,"column":32},"end":{"line":1016,"column":67}},"578":{"start":{"line":1017,"column":12},"end":{"line":1019,"column":13}},"579":{"start":{"line":1018,"column":16},"end":{"line":1018,"column":74}},"580":{"start":{"line":1020,"column":29},"end":{"line":1020,"column":51}},"581":{"start":{"line":1021,"column":12},"end":{"line":1025,"column":13}},"582":{"start":{"line":1022,"column":16},"end":{"line":1024,"column":20}},"583":{"start":{"line":1026,"column":30},"end":{"line":1026,"column":104}},"584":{"start":{"line":1027,"column":12},"end":{"line":1029,"column":13}},"585":{"start":{"line":1028,"column":16},"end":{"line":1028,"column":72}},"586":{"start":{"line":1030,"column":31},"end":{"line":1030,"column":119}},"587":{"start":{"line":1031,"column":12},"end":{"line":1033,"column":13}},"588":{"start":{"line":1032,"column":16},"end":{"line":1032,"column":73}},"589":{"start":{"line":1034,"column":12},"end":{"line":1034,"column":104}},"590":{"start":{"line":1039,"column":8},"end":{"line":1068,"column":11}},"591":{"start":{"line":1040,"column":29},"end":{"line":1040,"column":98}},"592":{"start":{"line":1041,"column":26},"end":{"line":1041,"column":42}},"593":{"start":{"line":1042,"column":12},"end":{"line":1047,"column":13}},"594":{"start":{"line":1043,"column":16},"end":{"line":1046,"column":20}},"595":{"start":{"line":1044,"column":114},"end":{"line":1044,"column":123}},"596":{"start":{"line":1048,"column":32},"end":{"line":1048,"column":67}},"597":{"start":{"line":1049,"column":12},"end":{"line":1051,"column":13}},"598":{"start":{"line":1050,"column":16},"end":{"line":1050,"column":74}},"599":{"start":{"line":1052,"column":29},"end":{"line":1052,"column":51}},"600":{"start":{"line":1053,"column":12},"end":{"line":1057,"column":13}},"601":{"start":{"line":1054,"column":16},"end":{"line":1056,"column":20}},"602":{"start":{"line":1058,"column":12},"end":{"line":1062,"column":13}},"603":{"start":{"line":1059,"column":16},"end":{"line":1061,"column":20}},"604":{"start":{"line":1063,"column":30},"end":{"line":1063,"column":84}},"605":{"start":{"line":1064,"column":12},"end":{"line":1066,"column":13}},"606":{"start":{"line":1065,"column":16},"end":{"line":1065,"column":72}},"607":{"start":{"line":1067,"column":12},"end":{"line":1067,"column":103}},"608":{"start":{"line":1072,"column":8},"end":{"line":1104,"column":11}},"609":{"start":{"line":1073,"column":29},"end":{"line":1073,"column":95}},"610":{"start":{"line":1074,"column":26},"end":{"line":1074,"column":42}},"611":{"start":{"line":1075,"column":12},"end":{"line":1080,"column":13}},"612":{"start":{"line":1076,"column":16},"end":{"line":1079,"column":20}},"613":{"start":{"line":1077,"column":114},"end":{"line":1077,"column":123}},"614":{"start":{"line":1081,"column":28},"end":{"line":1081,"column":97}},"615":{"start":{"line":1082,"column":12},"end":{"line":1084,"column":13}},"616":{"start":{"line":1083,"column":16},"end":{"line":1083,"column":70}},"617":{"start":{"line":1085,"column":26},"end":{"line":1085,"column":44}},"618":{"start":{"line":1086,"column":12},"end":{"line":1088,"column":13}},"619":{"start":{"line":1087,"column":16},"end":{"line":1087,"column":170}},"620":{"start":{"line":1089,"column":12},"end":{"line":1091,"column":13}},"621":{"start":{"line":1090,"column":16},"end":{"line":1090,"column":174}},"622":{"start":{"line":1092,"column":28},"end":{"line":1092,"column":30}},"623":{"start":{"line":1093,"column":30},"end":{"line":1093,"column":105}},"624":{"start":{"line":1094,"column":26},"end":{"line":1094,"column":97}},"625":{"start":{"line":1095,"column":12},"end":{"line":1102,"column":13}},"626":{"start":{"line":1096,"column":31},"end":{"line":1096,"column":151}},"627":{"start":{"line":1097,"column":16},"end":{"line":1101,"column":19}},"628":{"start":{"line":1103,"column":12},"end":{"line":1103,"column":53}},"629":{"start":{"line":1107,"column":8},"end":{"line":1118,"column":11}},"630":{"start":{"line":1108,"column":12},"end":{"line":1117,"column":13}},"631":{"start":{"line":1109,"column":16},"end":{"line":1109,"column":49}},"632":{"start":{"line":1110,"column":16},"end":{"line":1110,"column":59}},"633":{"start":{"line":1113,"column":16},"end":{"line":1116,"column":20}},"634":{"start":{"line":1122,"column":8},"end":{"line":1144,"column":11}},"635":{"start":{"line":1123,"column":12},"end":{"line":1123,"column":79}},"636":{"start":{"line":1124,"column":29},"end":{"line":1124,"column":94}},"637":{"start":{"line":1125,"column":26},"end":{"line":1125,"column":43}},"638":{"start":{"line":1126,"column":12},"end":{"line":1132,"column":13}},"639":{"start":{"line":1127,"column":16},"end":{"line":1127,"column":143}},"640":{"start":{"line":1128,"column":16},"end":{"line":1131,"column":19}},"641":{"start":{"line":1130,"column":120},"end":{"line":1130,"column":131}},"642":{"start":{"line":1133,"column":31},"end":{"line":1133,"column":66}},"643":{"start":{"line":1134,"column":12},"end":{"line":1138,"column":13}},"644":{"start":{"line":1135,"column":16},"end":{"line":1137,"column":19}},"645":{"start":{"line":1139,"column":24},"end":{"line":1139,"column":62}},"646":{"start":{"line":1140,"column":12},"end":{"line":1142,"column":13}},"647":{"start":{"line":1141,"column":16},"end":{"line":1141,"column":37}},"648":{"start":{"line":1143,"column":12},"end":{"line":1143,"column":34}},"649":{"start":{"line":1146,"column":39},"end":{"line":1146,"column":43}},"650":{"start":{"line":1147,"column":8},"end":{"line":1147,"column":55}},"651":{"start":{"line":1149,"column":41},"end":{"line":1149,"column":45}},"652":{"start":{"line":1150,"column":8},"end":{"line":1150,"column":59}},"653":{"start":{"line":1152,"column":43},"end":{"line":1152,"column":47}},"654":{"start":{"line":1153,"column":8},"end":{"line":1153,"column":62}},"655":{"start":{"line":1156,"column":8},"end":{"line":1159,"column":9}},"656":{"start":{"line":1157,"column":12},"end":{"line":1157,"column":38}},"657":{"start":{"line":1158,"column":12},"end":{"line":1158,"column":19}},"658":{"start":{"line":1160,"column":8},"end":{"line":1160,"column":87}},"659":{"start":{"line":1160,"column":64},"end":{"line":1160,"column":85}},"660":{"start":{"line":1163,"column":0},"end":{"line":1163,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":44},"end":{"line":2,"column":45}},"loc":{"start":{"line":2,"column":89},"end":{"line":10,"column":1}},"line":2},"1":{"name":"adopt","decl":{"start":{"line":3,"column":13},"end":{"line":3,"column":18}},"loc":{"start":{"line":3,"column":26},"end":{"line":3,"column":112}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":3,"column":70},"end":{"line":3,"column":71}},"loc":{"start":{"line":3,"column":89},"end":{"line":3,"column":108}},"line":3},"3":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":36},"end":{"line":4,"column":37}},"loc":{"start":{"line":4,"column":63},"end":{"line":9,"column":5}},"line":4},"4":{"name":"fulfilled","decl":{"start":{"line":5,"column":17},"end":{"line":5,"column":26}},"loc":{"start":{"line":5,"column":34},"end":{"line":5,"column":99}},"line":5},"5":{"name":"rejected","decl":{"start":{"line":6,"column":17},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":33},"end":{"line":6,"column":102}},"line":6},"6":{"name":"step","decl":{"start":{"line":7,"column":17},"end":{"line":7,"column":21}},"loc":{"start":{"line":7,"column":30},"end":{"line":7,"column":118}},"line":7},"7":{"name":"(anonymous_7)","decl":{"start":{"line":11,"column":38},"end":{"line":11,"column":39}},"loc":{"start":{"line":11,"column":54},"end":{"line":21,"column":1}},"line":11},"8":{"name":"(anonymous_8)","decl":{"start":{"line":22,"column":56},"end":{"line":22,"column":57}},"loc":{"start":{"line":22,"column":71},"end":{"line":24,"column":1}},"line":22},"9":{"name":"(anonymous_9)","decl":{"start":{"line":40,"column":4},"end":{"line":40,"column":5}},"loc":{"start":{"line":40,"column":88},"end":{"line":49,"column":5}},"line":40},"10":{"name":"(anonymous_10)","decl":{"start":{"line":50,"column":4},"end":{"line":50,"column":5}},"loc":{"start":{"line":50,"column":137},"end":{"line":65,"column":5}},"line":50},"11":{"name":"(anonymous_11)","decl":{"start":{"line":51,"column":47},"end":{"line":51,"column":48}},"loc":{"start":{"line":51,"column":60},"end":{"line":64,"column":9}},"line":51},"12":{"name":"(anonymous_12)","decl":{"start":{"line":66,"column":4},"end":{"line":66,"column":5}},"loc":{"start":{"line":66,"column":27},"end":{"line":68,"column":5}},"line":66},"13":{"name":"(anonymous_13)","decl":{"start":{"line":69,"column":4},"end":{"line":69,"column":5}},"loc":{"start":{"line":69,"column":24},"end":{"line":71,"column":5}},"line":69},"14":{"name":"(anonymous_14)","decl":{"start":{"line":72,"column":4},"end":{"line":72,"column":5}},"loc":{"start":{"line":72,"column":40},"end":{"line":76,"column":5}},"line":72},"15":{"name":"(anonymous_15)","decl":{"start":{"line":73,"column":47},"end":{"line":73,"column":48}},"loc":{"start":{"line":73,"column":60},"end":{"line":75,"column":9}},"line":73},"16":{"name":"(anonymous_16)","decl":{"start":{"line":77,"column":4},"end":{"line":77,"column":5}},"loc":{"start":{"line":77,"column":16},"end":{"line":88,"column":5}},"line":77},"17":{"name":"(anonymous_17)","decl":{"start":{"line":78,"column":47},"end":{"line":78,"column":48}},"loc":{"start":{"line":78,"column":60},"end":{"line":87,"column":9}},"line":78},"18":{"name":"(anonymous_18)","decl":{"start":{"line":89,"column":4},"end":{"line":89,"column":5}},"loc":{"start":{"line":89,"column":29},"end":{"line":103,"column":5}},"line":89},"19":{"name":"(anonymous_19)","decl":{"start":{"line":91,"column":47},"end":{"line":91,"column":48}},"loc":{"start":{"line":91,"column":60},"end":{"line":102,"column":9}},"line":91},"20":{"name":"(anonymous_20)","decl":{"start":{"line":96,"column":107},"end":{"line":96,"column":108}},"loc":{"start":{"line":96,"column":114},"end":{"line":96,"column":123}},"line":96},"21":{"name":"(anonymous_21)","decl":{"start":{"line":104,"column":4},"end":{"line":104,"column":5}},"loc":{"start":{"line":104,"column":31},"end":{"line":143,"column":5}},"line":104},"22":{"name":"(anonymous_22)","decl":{"start":{"line":106,"column":47},"end":{"line":106,"column":48}},"loc":{"start":{"line":106,"column":60},"end":{"line":142,"column":9}},"line":106},"23":{"name":"(anonymous_23)","decl":{"start":{"line":111,"column":107},"end":{"line":111,"column":108}},"loc":{"start":{"line":111,"column":114},"end":{"line":111,"column":123}},"line":111},"24":{"name":"(anonymous_24)","decl":{"start":{"line":144,"column":4},"end":{"line":144,"column":5}},"loc":{"start":{"line":144,"column":28},"end":{"line":157,"column":5}},"line":144},"25":{"name":"(anonymous_25)","decl":{"start":{"line":146,"column":47},"end":{"line":146,"column":48}},"loc":{"start":{"line":146,"column":60},"end":{"line":156,"column":9}},"line":146},"26":{"name":"(anonymous_26)","decl":{"start":{"line":151,"column":107},"end":{"line":151,"column":108}},"loc":{"start":{"line":151,"column":114},"end":{"line":151,"column":123}},"line":151},"27":{"name":"(anonymous_27)","decl":{"start":{"line":158,"column":4},"end":{"line":158,"column":5}},"loc":{"start":{"line":158,"column":16},"end":{"line":181,"column":5}},"line":158},"28":{"name":"(anonymous_28)","decl":{"start":{"line":159,"column":47},"end":{"line":159,"column":48}},"loc":{"start":{"line":159,"column":60},"end":{"line":180,"column":9}},"line":159},"29":{"name":"(anonymous_29)","decl":{"start":{"line":160,"column":66},"end":{"line":160,"column":67}},"loc":{"start":{"line":160,"column":79},"end":{"line":160,"column":96}},"line":160},"30":{"name":"(anonymous_30)","decl":{"start":{"line":161,"column":69},"end":{"line":161,"column":70}},"loc":{"start":{"line":161,"column":82},"end":{"line":161,"column":119}},"line":161},"31":{"name":"(anonymous_31)","decl":{"start":{"line":162,"column":68},"end":{"line":162,"column":69}},"loc":{"start":{"line":162,"column":88},"end":{"line":173,"column":13}},"line":162},"32":{"name":"(anonymous_32)","decl":{"start":{"line":182,"column":4},"end":{"line":182,"column":5}},"loc":{"start":{"line":182,"column":28},"end":{"line":205,"column":5}},"line":182},"33":{"name":"(anonymous_33)","decl":{"start":{"line":184,"column":47},"end":{"line":184,"column":48}},"loc":{"start":{"line":184,"column":60},"end":{"line":204,"column":9}},"line":184},"34":{"name":"(anonymous_34)","decl":{"start":{"line":189,"column":107},"end":{"line":189,"column":108}},"loc":{"start":{"line":189,"column":114},"end":{"line":189,"column":123}},"line":189},"35":{"name":"(anonymous_35)","decl":{"start":{"line":206,"column":4},"end":{"line":206,"column":5}},"loc":{"start":{"line":206,"column":29},"end":{"line":229,"column":5}},"line":206},"36":{"name":"(anonymous_36)","decl":{"start":{"line":208,"column":47},"end":{"line":208,"column":48}},"loc":{"start":{"line":208,"column":60},"end":{"line":228,"column":9}},"line":208},"37":{"name":"(anonymous_37)","decl":{"start":{"line":213,"column":107},"end":{"line":213,"column":108}},"loc":{"start":{"line":213,"column":114},"end":{"line":213,"column":123}},"line":213},"38":{"name":"(anonymous_38)","decl":{"start":{"line":230,"column":4},"end":{"line":230,"column":5}},"loc":{"start":{"line":230,"column":31},"end":{"line":252,"column":5}},"line":230},"39":{"name":"(anonymous_39)","decl":{"start":{"line":232,"column":47},"end":{"line":232,"column":48}},"loc":{"start":{"line":232,"column":60},"end":{"line":251,"column":9}},"line":232},"40":{"name":"(anonymous_40)","decl":{"start":{"line":237,"column":107},"end":{"line":237,"column":108}},"loc":{"start":{"line":237,"column":114},"end":{"line":237,"column":123}},"line":237},"41":{"name":"(anonymous_41)","decl":{"start":{"line":253,"column":4},"end":{"line":253,"column":5}},"loc":{"start":{"line":253,"column":25},"end":{"line":275,"column":5}},"line":253},"42":{"name":"(anonymous_42)","decl":{"start":{"line":255,"column":47},"end":{"line":255,"column":48}},"loc":{"start":{"line":255,"column":60},"end":{"line":274,"column":9}},"line":255},"43":{"name":"(anonymous_43)","decl":{"start":{"line":260,"column":107},"end":{"line":260,"column":108}},"loc":{"start":{"line":260,"column":114},"end":{"line":260,"column":123}},"line":260},"44":{"name":"(anonymous_44)","decl":{"start":{"line":276,"column":4},"end":{"line":276,"column":5}},"loc":{"start":{"line":276,"column":40},"end":{"line":298,"column":5}},"line":276},"45":{"name":"(anonymous_45)","decl":{"start":{"line":278,"column":47},"end":{"line":278,"column":48}},"loc":{"start":{"line":278,"column":60},"end":{"line":297,"column":9}},"line":278},"46":{"name":"(anonymous_46)","decl":{"start":{"line":283,"column":107},"end":{"line":283,"column":108}},"loc":{"start":{"line":283,"column":114},"end":{"line":283,"column":123}},"line":283},"47":{"name":"(anonymous_47)","decl":{"start":{"line":299,"column":4},"end":{"line":299,"column":5}},"loc":{"start":{"line":299,"column":41},"end":{"line":321,"column":5}},"line":299},"48":{"name":"(anonymous_48)","decl":{"start":{"line":301,"column":47},"end":{"line":301,"column":48}},"loc":{"start":{"line":301,"column":60},"end":{"line":320,"column":9}},"line":301},"49":{"name":"(anonymous_49)","decl":{"start":{"line":306,"column":107},"end":{"line":306,"column":108}},"loc":{"start":{"line":306,"column":114},"end":{"line":306,"column":123}},"line":306},"50":{"name":"(anonymous_50)","decl":{"start":{"line":322,"column":4},"end":{"line":322,"column":5}},"loc":{"start":{"line":322,"column":42},"end":{"line":345,"column":5}},"line":322},"51":{"name":"(anonymous_51)","decl":{"start":{"line":324,"column":47},"end":{"line":324,"column":48}},"loc":{"start":{"line":324,"column":60},"end":{"line":344,"column":9}},"line":324},"52":{"name":"(anonymous_52)","decl":{"start":{"line":329,"column":107},"end":{"line":329,"column":108}},"loc":{"start":{"line":329,"column":114},"end":{"line":329,"column":123}},"line":329},"53":{"name":"(anonymous_53)","decl":{"start":{"line":346,"column":4},"end":{"line":346,"column":5}},"loc":{"start":{"line":346,"column":23},"end":{"line":359,"column":5}},"line":346},"54":{"name":"(anonymous_54)","decl":{"start":{"line":347,"column":47},"end":{"line":347,"column":48}},"loc":{"start":{"line":347,"column":60},"end":{"line":358,"column":9}},"line":347},"55":{"name":"(anonymous_55)","decl":{"start":{"line":360,"column":4},"end":{"line":360,"column":5}},"loc":{"start":{"line":360,"column":35},"end":{"line":375,"column":5}},"line":360},"56":{"name":"(anonymous_56)","decl":{"start":{"line":362,"column":47},"end":{"line":362,"column":48}},"loc":{"start":{"line":362,"column":60},"end":{"line":374,"column":9}},"line":362},"57":{"name":"(anonymous_57)","decl":{"start":{"line":367,"column":107},"end":{"line":367,"column":108}},"loc":{"start":{"line":367,"column":114},"end":{"line":367,"column":123}},"line":367},"58":{"name":"(anonymous_58)","decl":{"start":{"line":376,"column":4},"end":{"line":376,"column":5}},"loc":{"start":{"line":376,"column":36},"end":{"line":399,"column":5}},"line":376},"59":{"name":"(anonymous_59)","decl":{"start":{"line":378,"column":47},"end":{"line":378,"column":48}},"loc":{"start":{"line":378,"column":60},"end":{"line":398,"column":9}},"line":378},"60":{"name":"(anonymous_60)","decl":{"start":{"line":383,"column":107},"end":{"line":383,"column":108}},"loc":{"start":{"line":383,"column":114},"end":{"line":383,"column":123}},"line":383},"61":{"name":"(anonymous_61)","decl":{"start":{"line":400,"column":4},"end":{"line":400,"column":5}},"loc":{"start":{"line":400,"column":53},"end":{"line":423,"column":5}},"line":400},"62":{"name":"(anonymous_62)","decl":{"start":{"line":402,"column":47},"end":{"line":402,"column":48}},"loc":{"start":{"line":402,"column":60},"end":{"line":422,"column":9}},"line":402},"63":{"name":"(anonymous_63)","decl":{"start":{"line":407,"column":107},"end":{"line":407,"column":108}},"loc":{"start":{"line":407,"column":114},"end":{"line":407,"column":123}},"line":407},"64":{"name":"(anonymous_64)","decl":{"start":{"line":424,"column":4},"end":{"line":424,"column":5}},"loc":{"start":{"line":424,"column":18},"end":{"line":473,"column":5}},"line":424},"65":{"name":"(anonymous_65)","decl":{"start":{"line":426,"column":47},"end":{"line":426,"column":48}},"loc":{"start":{"line":426,"column":60},"end":{"line":472,"column":9}},"line":426},"66":{"name":"(anonymous_66)","decl":{"start":{"line":434,"column":107},"end":{"line":434,"column":108}},"loc":{"start":{"line":434,"column":114},"end":{"line":434,"column":123}},"line":434},"67":{"name":"(anonymous_67)","decl":{"start":{"line":474,"column":4},"end":{"line":474,"column":5}},"loc":{"start":{"line":474,"column":25},"end":{"line":492,"column":5}},"line":474},"68":{"name":"(anonymous_68)","decl":{"start":{"line":476,"column":47},"end":{"line":476,"column":48}},"loc":{"start":{"line":476,"column":60},"end":{"line":491,"column":9}},"line":476},"69":{"name":"(anonymous_69)","decl":{"start":{"line":484,"column":107},"end":{"line":484,"column":108}},"loc":{"start":{"line":484,"column":114},"end":{"line":484,"column":123}},"line":484},"70":{"name":"(anonymous_70)","decl":{"start":{"line":493,"column":4},"end":{"line":493,"column":5}},"loc":{"start":{"line":493,"column":20},"end":{"line":532,"column":5}},"line":493},"71":{"name":"(anonymous_71)","decl":{"start":{"line":495,"column":47},"end":{"line":495,"column":48}},"loc":{"start":{"line":495,"column":60},"end":{"line":531,"column":9}},"line":495},"72":{"name":"(anonymous_72)","decl":{"start":{"line":503,"column":107},"end":{"line":503,"column":108}},"loc":{"start":{"line":503,"column":114},"end":{"line":503,"column":123}},"line":503},"73":{"name":"(anonymous_73)","decl":{"start":{"line":533,"column":4},"end":{"line":533,"column":5}},"loc":{"start":{"line":533,"column":30},"end":{"line":567,"column":5}},"line":533},"74":{"name":"(anonymous_74)","decl":{"start":{"line":535,"column":47},"end":{"line":535,"column":48}},"loc":{"start":{"line":535,"column":60},"end":{"line":566,"column":9}},"line":535},"75":{"name":"(anonymous_75)","decl":{"start":{"line":543,"column":107},"end":{"line":543,"column":108}},"loc":{"start":{"line":543,"column":114},"end":{"line":543,"column":123}},"line":543},"76":{"name":"(anonymous_76)","decl":{"start":{"line":568,"column":4},"end":{"line":568,"column":5}},"loc":{"start":{"line":568,"column":27},"end":{"line":605,"column":5}},"line":568},"77":{"name":"(anonymous_77)","decl":{"start":{"line":570,"column":47},"end":{"line":570,"column":48}},"loc":{"start":{"line":570,"column":60},"end":{"line":604,"column":9}},"line":570},"78":{"name":"(anonymous_78)","decl":{"start":{"line":578,"column":107},"end":{"line":578,"column":108}},"loc":{"start":{"line":578,"column":114},"end":{"line":578,"column":123}},"line":578},"79":{"name":"(anonymous_79)","decl":{"start":{"line":606,"column":4},"end":{"line":606,"column":5}},"loc":{"start":{"line":606,"column":28},"end":{"line":644,"column":5}},"line":606},"80":{"name":"(anonymous_80)","decl":{"start":{"line":608,"column":47},"end":{"line":608,"column":48}},"loc":{"start":{"line":608,"column":60},"end":{"line":643,"column":9}},"line":608},"81":{"name":"(anonymous_81)","decl":{"start":{"line":616,"column":107},"end":{"line":616,"column":108}},"loc":{"start":{"line":616,"column":114},"end":{"line":616,"column":123}},"line":616},"82":{"name":"(anonymous_82)","decl":{"start":{"line":645,"column":4},"end":{"line":645,"column":5}},"loc":{"start":{"line":645,"column":21},"end":{"line":708,"column":5}},"line":645},"83":{"name":"(anonymous_83)","decl":{"start":{"line":647,"column":47},"end":{"line":647,"column":48}},"loc":{"start":{"line":647,"column":60},"end":{"line":707,"column":9}},"line":647},"84":{"name":"(anonymous_84)","decl":{"start":{"line":655,"column":107},"end":{"line":655,"column":108}},"loc":{"start":{"line":655,"column":114},"end":{"line":655,"column":123}},"line":655},"85":{"name":"(anonymous_85)","decl":{"start":{"line":674,"column":29},"end":{"line":674,"column":30}},"loc":{"start":{"line":674,"column":46},"end":{"line":674,"column":215}},"line":674},"86":{"name":"(anonymous_86)","decl":{"start":{"line":674,"column":106},"end":{"line":674,"column":107}},"loc":{"start":{"line":674,"column":116},"end":{"line":674,"column":205}},"line":674},"87":{"name":"(anonymous_87)","decl":{"start":{"line":675,"column":31},"end":{"line":675,"column":32}},"loc":{"start":{"line":675,"column":48},"end":{"line":675,"column":210}},"line":675},"88":{"name":"(anonymous_88)","decl":{"start":{"line":675,"column":110},"end":{"line":675,"column":111}},"loc":{"start":{"line":675,"column":120},"end":{"line":675,"column":200}},"line":675},"89":{"name":"(anonymous_89)","decl":{"start":{"line":709,"column":4},"end":{"line":709,"column":5}},"loc":{"start":{"line":709,"column":26},"end":{"line":747,"column":5}},"line":709},"90":{"name":"(anonymous_90)","decl":{"start":{"line":711,"column":47},"end":{"line":711,"column":48}},"loc":{"start":{"line":711,"column":60},"end":{"line":746,"column":9}},"line":711},"91":{"name":"(anonymous_91)","decl":{"start":{"line":719,"column":107},"end":{"line":719,"column":108}},"loc":{"start":{"line":719,"column":114},"end":{"line":719,"column":123}},"line":719},"92":{"name":"(anonymous_92)","decl":{"start":{"line":748,"column":4},"end":{"line":748,"column":5}},"loc":{"start":{"line":748,"column":39},"end":{"line":793,"column":5}},"line":748},"93":{"name":"(anonymous_93)","decl":{"start":{"line":750,"column":47},"end":{"line":750,"column":48}},"loc":{"start":{"line":750,"column":60},"end":{"line":792,"column":9}},"line":750},"94":{"name":"(anonymous_94)","decl":{"start":{"line":758,"column":107},"end":{"line":758,"column":108}},"loc":{"start":{"line":758,"column":114},"end":{"line":758,"column":123}},"line":758},"95":{"name":"(anonymous_95)","decl":{"start":{"line":794,"column":4},"end":{"line":794,"column":5}},"loc":{"start":{"line":794,"column":23},"end":{"line":810,"column":5}},"line":794},"96":{"name":"(anonymous_96)","decl":{"start":{"line":795,"column":47},"end":{"line":795,"column":48}},"loc":{"start":{"line":795,"column":60},"end":{"line":809,"column":9}},"line":795},"97":{"name":"(anonymous_97)","decl":{"start":{"line":811,"column":4},"end":{"line":811,"column":5}},"loc":{"start":{"line":811,"column":31},"end":{"line":836,"column":5}},"line":811},"98":{"name":"(anonymous_98)","decl":{"start":{"line":813,"column":47},"end":{"line":813,"column":48}},"loc":{"start":{"line":813,"column":60},"end":{"line":835,"column":9}},"line":813},"99":{"name":"(anonymous_99)","decl":{"start":{"line":821,"column":107},"end":{"line":821,"column":108}},"loc":{"start":{"line":821,"column":114},"end":{"line":821,"column":123}},"line":821},"100":{"name":"(anonymous_100)","decl":{"start":{"line":837,"column":4},"end":{"line":837,"column":5}},"loc":{"start":{"line":837,"column":24},"end":{"line":867,"column":5}},"line":837},"101":{"name":"(anonymous_101)","decl":{"start":{"line":839,"column":47},"end":{"line":839,"column":48}},"loc":{"start":{"line":839,"column":60},"end":{"line":866,"column":9}},"line":839},"102":{"name":"(anonymous_102)","decl":{"start":{"line":847,"column":107},"end":{"line":847,"column":108}},"loc":{"start":{"line":847,"column":114},"end":{"line":847,"column":123}},"line":847},"103":{"name":"(anonymous_103)","decl":{"start":{"line":868,"column":4},"end":{"line":868,"column":5}},"loc":{"start":{"line":868,"column":25},"end":{"line":900,"column":5}},"line":868},"104":{"name":"(anonymous_104)","decl":{"start":{"line":870,"column":47},"end":{"line":870,"column":48}},"loc":{"start":{"line":870,"column":60},"end":{"line":899,"column":9}},"line":870},"105":{"name":"(anonymous_105)","decl":{"start":{"line":878,"column":107},"end":{"line":878,"column":108}},"loc":{"start":{"line":878,"column":114},"end":{"line":878,"column":123}},"line":878},"106":{"name":"(anonymous_106)","decl":{"start":{"line":901,"column":4},"end":{"line":901,"column":5}},"loc":{"start":{"line":901,"column":23},"end":{"line":920,"column":5}},"line":901},"107":{"name":"(anonymous_107)","decl":{"start":{"line":903,"column":47},"end":{"line":903,"column":48}},"loc":{"start":{"line":903,"column":60},"end":{"line":919,"column":9}},"line":903},"108":{"name":"(anonymous_108)","decl":{"start":{"line":908,"column":107},"end":{"line":908,"column":108}},"loc":{"start":{"line":908,"column":114},"end":{"line":908,"column":123}},"line":908},"109":{"name":"(anonymous_109)","decl":{"start":{"line":921,"column":4},"end":{"line":921,"column":5}},"loc":{"start":{"line":921,"column":20},"end":{"line":955,"column":5}},"line":921},"110":{"name":"(anonymous_110)","decl":{"start":{"line":923,"column":47},"end":{"line":923,"column":48}},"loc":{"start":{"line":923,"column":60},"end":{"line":954,"column":9}},"line":923},"111":{"name":"(anonymous_111)","decl":{"start":{"line":928,"column":107},"end":{"line":928,"column":108}},"loc":{"start":{"line":928,"column":114},"end":{"line":928,"column":123}},"line":928},"112":{"name":"(anonymous_112)","decl":{"start":{"line":956,"column":4},"end":{"line":956,"column":5}},"loc":{"start":{"line":956,"column":19},"end":{"line":984,"column":5}},"line":956},"113":{"name":"(anonymous_113)","decl":{"start":{"line":958,"column":47},"end":{"line":958,"column":48}},"loc":{"start":{"line":958,"column":60},"end":{"line":983,"column":9}},"line":958},"114":{"name":"(anonymous_114)","decl":{"start":{"line":963,"column":107},"end":{"line":963,"column":108}},"loc":{"start":{"line":963,"column":114},"end":{"line":963,"column":123}},"line":963},"115":{"name":"(anonymous_115)","decl":{"start":{"line":985,"column":4},"end":{"line":985,"column":5}},"loc":{"start":{"line":985,"column":31},"end":{"line":1004,"column":5}},"line":985},"116":{"name":"(anonymous_116)","decl":{"start":{"line":987,"column":47},"end":{"line":987,"column":48}},"loc":{"start":{"line":987,"column":60},"end":{"line":1003,"column":9}},"line":987},"117":{"name":"(anonymous_117)","decl":{"start":{"line":992,"column":107},"end":{"line":992,"column":108}},"loc":{"start":{"line":992,"column":114},"end":{"line":992,"column":123}},"line":992},"118":{"name":"(anonymous_118)","decl":{"start":{"line":1005,"column":4},"end":{"line":1005,"column":5}},"loc":{"start":{"line":1005,"column":28},"end":{"line":1036,"column":5}},"line":1005},"119":{"name":"(anonymous_119)","decl":{"start":{"line":1007,"column":47},"end":{"line":1007,"column":48}},"loc":{"start":{"line":1007,"column":60},"end":{"line":1035,"column":9}},"line":1007},"120":{"name":"(anonymous_120)","decl":{"start":{"line":1012,"column":107},"end":{"line":1012,"column":108}},"loc":{"start":{"line":1012,"column":114},"end":{"line":1012,"column":123}},"line":1012},"121":{"name":"(anonymous_121)","decl":{"start":{"line":1037,"column":4},"end":{"line":1037,"column":5}},"loc":{"start":{"line":1037,"column":27},"end":{"line":1069,"column":5}},"line":1037},"122":{"name":"(anonymous_122)","decl":{"start":{"line":1039,"column":47},"end":{"line":1039,"column":48}},"loc":{"start":{"line":1039,"column":60},"end":{"line":1068,"column":9}},"line":1039},"123":{"name":"(anonymous_123)","decl":{"start":{"line":1044,"column":107},"end":{"line":1044,"column":108}},"loc":{"start":{"line":1044,"column":114},"end":{"line":1044,"column":123}},"line":1044},"124":{"name":"(anonymous_124)","decl":{"start":{"line":1070,"column":4},"end":{"line":1070,"column":5}},"loc":{"start":{"line":1070,"column":17},"end":{"line":1105,"column":5}},"line":1070},"125":{"name":"(anonymous_125)","decl":{"start":{"line":1072,"column":47},"end":{"line":1072,"column":48}},"loc":{"start":{"line":1072,"column":60},"end":{"line":1104,"column":9}},"line":1072},"126":{"name":"(anonymous_126)","decl":{"start":{"line":1077,"column":107},"end":{"line":1077,"column":108}},"loc":{"start":{"line":1077,"column":114},"end":{"line":1077,"column":123}},"line":1077},"127":{"name":"(anonymous_127)","decl":{"start":{"line":1106,"column":4},"end":{"line":1106,"column":5}},"loc":{"start":{"line":1106,"column":19},"end":{"line":1119,"column":5}},"line":1106},"128":{"name":"(anonymous_128)","decl":{"start":{"line":1107,"column":47},"end":{"line":1107,"column":48}},"loc":{"start":{"line":1107,"column":60},"end":{"line":1118,"column":9}},"line":1107},"129":{"name":"(anonymous_129)","decl":{"start":{"line":1120,"column":4},"end":{"line":1120,"column":5}},"loc":{"start":{"line":1120,"column":21},"end":{"line":1145,"column":5}},"line":1120},"130":{"name":"(anonymous_130)","decl":{"start":{"line":1122,"column":47},"end":{"line":1122,"column":48}},"loc":{"start":{"line":1122,"column":60},"end":{"line":1144,"column":9}},"line":1122},"131":{"name":"(anonymous_131)","decl":{"start":{"line":1130,"column":111},"end":{"line":1130,"column":112}},"loc":{"start":{"line":1130,"column":120},"end":{"line":1130,"column":131}},"line":1130},"132":{"name":"(anonymous_132)","decl":{"start":{"line":1146,"column":4},"end":{"line":1146,"column":5}},"loc":{"start":{"line":1146,"column":45},"end":{"line":1148,"column":5}},"line":1146},"133":{"name":"(anonymous_133)","decl":{"start":{"line":1146,"column":33},"end":{"line":1146,"column":34}},"loc":{"start":{"line":1146,"column":39},"end":{"line":1146,"column":43}},"line":1146},"134":{"name":"(anonymous_134)","decl":{"start":{"line":1149,"column":4},"end":{"line":1149,"column":5}},"loc":{"start":{"line":1149,"column":47},"end":{"line":1151,"column":5}},"line":1149},"135":{"name":"(anonymous_135)","decl":{"start":{"line":1149,"column":35},"end":{"line":1149,"column":36}},"loc":{"start":{"line":1149,"column":41},"end":{"line":1149,"column":45}},"line":1149},"136":{"name":"(anonymous_136)","decl":{"start":{"line":1152,"column":4},"end":{"line":1152,"column":5}},"loc":{"start":{"line":1152,"column":49},"end":{"line":1154,"column":5}},"line":1152},"137":{"name":"(anonymous_137)","decl":{"start":{"line":1152,"column":37},"end":{"line":1152,"column":38}},"loc":{"start":{"line":1152,"column":43},"end":{"line":1152,"column":47}},"line":1152},"138":{"name":"(anonymous_138)","decl":{"start":{"line":1155,"column":4},"end":{"line":1155,"column":5}},"loc":{"start":{"line":1155,"column":15},"end":{"line":1161,"column":5}},"line":1155},"139":{"name":"(anonymous_139)","decl":{"start":{"line":1160,"column":57},"end":{"line":1160,"column":58}},"loc":{"start":{"line":1160,"column":64},"end":{"line":1160,"column":85}},"line":1160}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":17},"end":{"line":2,"column":21}},{"start":{"line":2,"column":25},"end":{"line":2,"column":39}},{"start":{"line":2,"column":44},"end":{"line":10,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":35},"end":{"line":3,"column":109}},"type":"cond-expr","locations":[{"start":{"line":3,"column":56},"end":{"line":3,"column":61}},{"start":{"line":3,"column":64},"end":{"line":3,"column":109}}],"line":3},"2":{"loc":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"type":"binary-expr","locations":[{"start":{"line":4,"column":16},"end":{"line":4,"column":17}},{"start":{"line":4,"column":22},"end":{"line":4,"column":33}}],"line":4},"3":{"loc":{"start":{"line":7,"column":32},"end":{"line":7,"column":115}},"type":"cond-expr","locations":[{"start":{"line":7,"column":46},"end":{"line":7,"column":67}},{"start":{"line":7,"column":70},"end":{"line":7,"column":115}}],"line":7},"4":{"loc":{"start":{"line":8,"column":51},"end":{"line":8,"column":67}},"type":"binary-expr","locations":[{"start":{"line":8,"column":51},"end":{"line":8,"column":61}},{"start":{"line":8,"column":65},"end":{"line":8,"column":67}}],"line":8},"5":{"loc":{"start":{"line":11,"column":13},"end":{"line":21,"column":1}},"type":"binary-expr","locations":[{"start":{"line":11,"column":14},"end":{"line":11,"column":18}},{"start":{"line":11,"column":22},"end":{"line":11,"column":33}},{"start":{"line":11,"column":38},"end":{"line":21,"column":1}}],"line":11},"6":{"loc":{"start":{"line":13,"column":21},"end":{"line":14,"column":20}},"type":"if","locations":[{"start":{"line":13,"column":21},"end":{"line":14,"column":20}},{"start":{"line":13,"column":21},"end":{"line":14,"column":20}}],"line":13},"7":{"loc":{"start":{"line":13,"column":25},"end":{"line":13,"column":87}},"type":"binary-expr","locations":[{"start":{"line":13,"column":25},"end":{"line":13,"column":67}},{"start":{"line":13,"column":71},"end":{"line":13,"column":87}}],"line":13},"8":{"loc":{"start":{"line":15,"column":4},"end":{"line":19,"column":9}},"type":"if","locations":[{"start":{"line":15,"column":4},"end":{"line":19,"column":9}},{"start":{"line":15,"column":4},"end":{"line":19,"column":9}}],"line":15},"9":{"loc":{"start":{"line":15,"column":8},"end":{"line":15,"column":71}},"type":"binary-expr","locations":[{"start":{"line":15,"column":8},"end":{"line":15,"column":17}},{"start":{"line":15,"column":21},"end":{"line":15,"column":71}}],"line":15},"10":{"loc":{"start":{"line":17,"column":12},"end":{"line":18,"column":34}},"type":"if","locations":[{"start":{"line":17,"column":12},"end":{"line":18,"column":34}},{"start":{"line":17,"column":12},"end":{"line":18,"column":34}}],"line":17},"11":{"loc":{"start":{"line":17,"column":16},"end":{"line":17,"column":90}},"type":"binary-expr","locations":[{"start":{"line":17,"column":16},"end":{"line":17,"column":35}},{"start":{"line":17,"column":39},"end":{"line":17,"column":90}}],"line":17},"12":{"loc":{"start":{"line":22,"column":22},"end":{"line":24,"column":1}},"type":"binary-expr","locations":[{"start":{"line":22,"column":23},"end":{"line":22,"column":27}},{"start":{"line":22,"column":31},"end":{"line":22,"column":51}},{"start":{"line":22,"column":56},"end":{"line":24,"column":1}}],"line":22},"13":{"loc":{"start":{"line":23,"column":11},"end":{"line":23,"column":61}},"type":"cond-expr","locations":[{"start":{"line":23,"column":37},"end":{"line":23,"column":40}},{"start":{"line":23,"column":43},"end":{"line":23,"column":61}}],"line":23},"14":{"loc":{"start":{"line":23,"column":12},"end":{"line":23,"column":33}},"type":"binary-expr","locations":[{"start":{"line":23,"column":12},"end":{"line":23,"column":15}},{"start":{"line":23,"column":19},"end":{"line":23,"column":33}}],"line":23},"15":{"loc":{"start":{"line":56,"column":12},"end":{"line":61,"column":13}},"type":"if","locations":[{"start":{"line":56,"column":12},"end":{"line":61,"column":13}},{"start":{"line":56,"column":12},"end":{"line":61,"column":13}}],"line":56},"16":{"loc":{"start":{"line":94,"column":12},"end":{"line":99,"column":13}},"type":"if","locations":[{"start":{"line":94,"column":12},"end":{"line":99,"column":13}},{"start":{"line":94,"column":12},"end":{"line":99,"column":13}}],"line":94},"17":{"loc":{"start":{"line":96,"column":40},"end":{"line":96,"column":134}},"type":"cond-expr","locations":[{"start":{"line":96,"column":91},"end":{"line":96,"column":97}},{"start":{"line":96,"column":100},"end":{"line":96,"column":134}}],"line":96},"18":{"loc":{"start":{"line":96,"column":40},"end":{"line":96,"column":88}},"type":"binary-expr","locations":[{"start":{"line":96,"column":40},"end":{"line":96,"column":71}},{"start":{"line":96,"column":75},"end":{"line":96,"column":88}}],"line":96},"19":{"loc":{"start":{"line":109,"column":12},"end":{"line":114,"column":13}},"type":"if","locations":[{"start":{"line":109,"column":12},"end":{"line":114,"column":13}},{"start":{"line":109,"column":12},"end":{"line":114,"column":13}}],"line":109},"20":{"loc":{"start":{"line":111,"column":40},"end":{"line":111,"column":134}},"type":"cond-expr","locations":[{"start":{"line":111,"column":91},"end":{"line":111,"column":97}},{"start":{"line":111,"column":100},"end":{"line":111,"column":134}}],"line":111},"21":{"loc":{"start":{"line":111,"column":40},"end":{"line":111,"column":88}},"type":"binary-expr","locations":[{"start":{"line":111,"column":40},"end":{"line":111,"column":71}},{"start":{"line":111,"column":75},"end":{"line":111,"column":88}}],"line":111},"22":{"loc":{"start":{"line":116,"column":12},"end":{"line":118,"column":13}},"type":"if","locations":[{"start":{"line":116,"column":12},"end":{"line":118,"column":13}},{"start":{"line":116,"column":12},"end":{"line":118,"column":13}}],"line":116},"23":{"loc":{"start":{"line":120,"column":12},"end":{"line":122,"column":13}},"type":"if","locations":[{"start":{"line":120,"column":12},"end":{"line":122,"column":13}},{"start":{"line":120,"column":12},"end":{"line":122,"column":13}}],"line":120},"24":{"loc":{"start":{"line":123,"column":12},"end":{"line":140,"column":13}},"type":"if","locations":[{"start":{"line":123,"column":12},"end":{"line":140,"column":13}},{"start":{"line":123,"column":12},"end":{"line":140,"column":13}}],"line":123},"25":{"loc":{"start":{"line":149,"column":12},"end":{"line":154,"column":13}},"type":"if","locations":[{"start":{"line":149,"column":12},"end":{"line":154,"column":13}},{"start":{"line":149,"column":12},"end":{"line":154,"column":13}}],"line":149},"26":{"loc":{"start":{"line":151,"column":40},"end":{"line":151,"column":134}},"type":"cond-expr","locations":[{"start":{"line":151,"column":91},"end":{"line":151,"column":97}},{"start":{"line":151,"column":100},"end":{"line":151,"column":134}}],"line":151},"27":{"loc":{"start":{"line":151,"column":40},"end":{"line":151,"column":88}},"type":"binary-expr","locations":[{"start":{"line":151,"column":40},"end":{"line":151,"column":71}},{"start":{"line":151,"column":75},"end":{"line":151,"column":88}}],"line":151},"28":{"loc":{"start":{"line":166,"column":16},"end":{"line":171,"column":17}},"type":"if","locations":[{"start":{"line":166,"column":16},"end":{"line":171,"column":17}},{"start":{"line":166,"column":16},"end":{"line":171,"column":17}}],"line":166},"29":{"loc":{"start":{"line":167,"column":30},"end":{"line":167,"column":99}},"type":"cond-expr","locations":[{"start":{"line":167,"column":80},"end":{"line":167,"column":86}},{"start":{"line":167,"column":89},"end":{"line":167,"column":99}}],"line":167},"30":{"loc":{"start":{"line":167,"column":30},"end":{"line":167,"column":77}},"type":"binary-expr","locations":[{"start":{"line":167,"column":30},"end":{"line":167,"column":60}},{"start":{"line":167,"column":64},"end":{"line":167,"column":77}}],"line":167},"31":{"loc":{"start":{"line":187,"column":12},"end":{"line":192,"column":13}},"type":"if","locations":[{"start":{"line":187,"column":12},"end":{"line":192,"column":13}},{"start":{"line":187,"column":12},"end":{"line":192,"column":13}}],"line":187},"32":{"loc":{"start":{"line":188,"column":113},"end":{"line":188,"column":177}},"type":"cond-expr","locations":[{"start":{"line":188,"column":170},"end":{"line":188,"column":172}},{"start":{"line":188,"column":175},"end":{"line":188,"column":177}}],"line":188},"33":{"loc":{"start":{"line":188,"column":113},"end":{"line":188,"column":167}},"type":"binary-expr","locations":[{"start":{"line":188,"column":113},"end":{"line":188,"column":150}},{"start":{"line":188,"column":154},"end":{"line":188,"column":167}}],"line":188},"34":{"loc":{"start":{"line":189,"column":40},"end":{"line":189,"column":134}},"type":"cond-expr","locations":[{"start":{"line":189,"column":91},"end":{"line":189,"column":97}},{"start":{"line":189,"column":100},"end":{"line":189,"column":134}}],"line":189},"35":{"loc":{"start":{"line":189,"column":40},"end":{"line":189,"column":88}},"type":"binary-expr","locations":[{"start":{"line":189,"column":40},"end":{"line":189,"column":71}},{"start":{"line":189,"column":75},"end":{"line":189,"column":88}}],"line":189},"36":{"loc":{"start":{"line":211,"column":12},"end":{"line":216,"column":13}},"type":"if","locations":[{"start":{"line":211,"column":12},"end":{"line":216,"column":13}},{"start":{"line":211,"column":12},"end":{"line":216,"column":13}}],"line":211},"37":{"loc":{"start":{"line":213,"column":40},"end":{"line":213,"column":134}},"type":"cond-expr","locations":[{"start":{"line":213,"column":91},"end":{"line":213,"column":97}},{"start":{"line":213,"column":100},"end":{"line":213,"column":134}}],"line":213},"38":{"loc":{"start":{"line":213,"column":40},"end":{"line":213,"column":88}},"type":"binary-expr","locations":[{"start":{"line":213,"column":40},"end":{"line":213,"column":71}},{"start":{"line":213,"column":75},"end":{"line":213,"column":88}}],"line":213},"39":{"loc":{"start":{"line":235,"column":12},"end":{"line":240,"column":13}},"type":"if","locations":[{"start":{"line":235,"column":12},"end":{"line":240,"column":13}},{"start":{"line":235,"column":12},"end":{"line":240,"column":13}}],"line":235},"40":{"loc":{"start":{"line":236,"column":113},"end":{"line":236,"column":177}},"type":"cond-expr","locations":[{"start":{"line":236,"column":170},"end":{"line":236,"column":172}},{"start":{"line":236,"column":175},"end":{"line":236,"column":177}}],"line":236},"41":{"loc":{"start":{"line":236,"column":113},"end":{"line":236,"column":167}},"type":"binary-expr","locations":[{"start":{"line":236,"column":113},"end":{"line":236,"column":150}},{"start":{"line":236,"column":154},"end":{"line":236,"column":167}}],"line":236},"42":{"loc":{"start":{"line":237,"column":40},"end":{"line":237,"column":134}},"type":"cond-expr","locations":[{"start":{"line":237,"column":91},"end":{"line":237,"column":97}},{"start":{"line":237,"column":100},"end":{"line":237,"column":134}}],"line":237},"43":{"loc":{"start":{"line":237,"column":40},"end":{"line":237,"column":88}},"type":"binary-expr","locations":[{"start":{"line":237,"column":40},"end":{"line":237,"column":71}},{"start":{"line":237,"column":75},"end":{"line":237,"column":88}}],"line":237},"44":{"loc":{"start":{"line":258,"column":12},"end":{"line":263,"column":13}},"type":"if","locations":[{"start":{"line":258,"column":12},"end":{"line":263,"column":13}},{"start":{"line":258,"column":12},"end":{"line":263,"column":13}}],"line":258},"45":{"loc":{"start":{"line":260,"column":40},"end":{"line":260,"column":134}},"type":"cond-expr","locations":[{"start":{"line":260,"column":91},"end":{"line":260,"column":97}},{"start":{"line":260,"column":100},"end":{"line":260,"column":134}}],"line":260},"46":{"loc":{"start":{"line":260,"column":40},"end":{"line":260,"column":88}},"type":"binary-expr","locations":[{"start":{"line":260,"column":40},"end":{"line":260,"column":71}},{"start":{"line":260,"column":75},"end":{"line":260,"column":88}}],"line":260},"47":{"loc":{"start":{"line":281,"column":12},"end":{"line":286,"column":13}},"type":"if","locations":[{"start":{"line":281,"column":12},"end":{"line":286,"column":13}},{"start":{"line":281,"column":12},"end":{"line":286,"column":13}}],"line":281},"48":{"loc":{"start":{"line":282,"column":113},"end":{"line":282,"column":177}},"type":"cond-expr","locations":[{"start":{"line":282,"column":170},"end":{"line":282,"column":172}},{"start":{"line":282,"column":175},"end":{"line":282,"column":177}}],"line":282},"49":{"loc":{"start":{"line":282,"column":113},"end":{"line":282,"column":167}},"type":"binary-expr","locations":[{"start":{"line":282,"column":113},"end":{"line":282,"column":150}},{"start":{"line":282,"column":154},"end":{"line":282,"column":167}}],"line":282},"50":{"loc":{"start":{"line":283,"column":40},"end":{"line":283,"column":134}},"type":"cond-expr","locations":[{"start":{"line":283,"column":91},"end":{"line":283,"column":97}},{"start":{"line":283,"column":100},"end":{"line":283,"column":134}}],"line":283},"51":{"loc":{"start":{"line":283,"column":40},"end":{"line":283,"column":88}},"type":"binary-expr","locations":[{"start":{"line":283,"column":40},"end":{"line":283,"column":71}},{"start":{"line":283,"column":75},"end":{"line":283,"column":88}}],"line":283},"52":{"loc":{"start":{"line":292,"column":117},"end":{"line":292,"column":181}},"type":"cond-expr","locations":[{"start":{"line":292,"column":174},"end":{"line":292,"column":176}},{"start":{"line":292,"column":179},"end":{"line":292,"column":181}}],"line":292},"53":{"loc":{"start":{"line":292,"column":117},"end":{"line":292,"column":171}},"type":"binary-expr","locations":[{"start":{"line":292,"column":117},"end":{"line":292,"column":154}},{"start":{"line":292,"column":158},"end":{"line":292,"column":171}}],"line":292},"54":{"loc":{"start":{"line":304,"column":12},"end":{"line":309,"column":13}},"type":"if","locations":[{"start":{"line":304,"column":12},"end":{"line":309,"column":13}},{"start":{"line":304,"column":12},"end":{"line":309,"column":13}}],"line":304},"55":{"loc":{"start":{"line":306,"column":40},"end":{"line":306,"column":134}},"type":"cond-expr","locations":[{"start":{"line":306,"column":91},"end":{"line":306,"column":97}},{"start":{"line":306,"column":100},"end":{"line":306,"column":134}}],"line":306},"56":{"loc":{"start":{"line":306,"column":40},"end":{"line":306,"column":88}},"type":"binary-expr","locations":[{"start":{"line":306,"column":40},"end":{"line":306,"column":71}},{"start":{"line":306,"column":75},"end":{"line":306,"column":88}}],"line":306},"57":{"loc":{"start":{"line":327,"column":12},"end":{"line":332,"column":13}},"type":"if","locations":[{"start":{"line":327,"column":12},"end":{"line":332,"column":13}},{"start":{"line":327,"column":12},"end":{"line":332,"column":13}}],"line":327},"58":{"loc":{"start":{"line":329,"column":40},"end":{"line":329,"column":134}},"type":"cond-expr","locations":[{"start":{"line":329,"column":91},"end":{"line":329,"column":97}},{"start":{"line":329,"column":100},"end":{"line":329,"column":134}}],"line":329},"59":{"loc":{"start":{"line":329,"column":40},"end":{"line":329,"column":88}},"type":"binary-expr","locations":[{"start":{"line":329,"column":40},"end":{"line":329,"column":71}},{"start":{"line":329,"column":75},"end":{"line":329,"column":88}}],"line":329},"60":{"loc":{"start":{"line":365,"column":12},"end":{"line":370,"column":13}},"type":"if","locations":[{"start":{"line":365,"column":12},"end":{"line":370,"column":13}},{"start":{"line":365,"column":12},"end":{"line":370,"column":13}}],"line":365},"61":{"loc":{"start":{"line":367,"column":40},"end":{"line":367,"column":134}},"type":"cond-expr","locations":[{"start":{"line":367,"column":91},"end":{"line":367,"column":97}},{"start":{"line":367,"column":100},"end":{"line":367,"column":134}}],"line":367},"62":{"loc":{"start":{"line":367,"column":40},"end":{"line":367,"column":88}},"type":"binary-expr","locations":[{"start":{"line":367,"column":40},"end":{"line":367,"column":71}},{"start":{"line":367,"column":75},"end":{"line":367,"column":88}}],"line":367},"63":{"loc":{"start":{"line":381,"column":12},"end":{"line":386,"column":13}},"type":"if","locations":[{"start":{"line":381,"column":12},"end":{"line":386,"column":13}},{"start":{"line":381,"column":12},"end":{"line":386,"column":13}}],"line":381},"64":{"loc":{"start":{"line":383,"column":40},"end":{"line":383,"column":134}},"type":"cond-expr","locations":[{"start":{"line":383,"column":91},"end":{"line":383,"column":97}},{"start":{"line":383,"column":100},"end":{"line":383,"column":134}}],"line":383},"65":{"loc":{"start":{"line":383,"column":40},"end":{"line":383,"column":88}},"type":"binary-expr","locations":[{"start":{"line":383,"column":40},"end":{"line":383,"column":71}},{"start":{"line":383,"column":75},"end":{"line":383,"column":88}}],"line":383},"66":{"loc":{"start":{"line":405,"column":12},"end":{"line":410,"column":13}},"type":"if","locations":[{"start":{"line":405,"column":12},"end":{"line":410,"column":13}},{"start":{"line":405,"column":12},"end":{"line":410,"column":13}}],"line":405},"67":{"loc":{"start":{"line":407,"column":40},"end":{"line":407,"column":134}},"type":"cond-expr","locations":[{"start":{"line":407,"column":91},"end":{"line":407,"column":97}},{"start":{"line":407,"column":100},"end":{"line":407,"column":134}}],"line":407},"68":{"loc":{"start":{"line":407,"column":40},"end":{"line":407,"column":88}},"type":"binary-expr","locations":[{"start":{"line":407,"column":40},"end":{"line":407,"column":71}},{"start":{"line":407,"column":75},"end":{"line":407,"column":88}}],"line":407},"69":{"loc":{"start":{"line":432,"column":12},"end":{"line":437,"column":13}},"type":"if","locations":[{"start":{"line":432,"column":12},"end":{"line":437,"column":13}},{"start":{"line":432,"column":12},"end":{"line":437,"column":13}}],"line":432},"70":{"loc":{"start":{"line":434,"column":40},"end":{"line":434,"column":134}},"type":"cond-expr","locations":[{"start":{"line":434,"column":91},"end":{"line":434,"column":97}},{"start":{"line":434,"column":100},"end":{"line":434,"column":134}}],"line":434},"71":{"loc":{"start":{"line":434,"column":40},"end":{"line":434,"column":88}},"type":"binary-expr","locations":[{"start":{"line":434,"column":40},"end":{"line":434,"column":71}},{"start":{"line":434,"column":75},"end":{"line":434,"column":88}}],"line":434},"72":{"loc":{"start":{"line":439,"column":12},"end":{"line":441,"column":13}},"type":"if","locations":[{"start":{"line":439,"column":12},"end":{"line":441,"column":13}},{"start":{"line":439,"column":12},"end":{"line":441,"column":13}}],"line":439},"73":{"loc":{"start":{"line":443,"column":12},"end":{"line":445,"column":13}},"type":"if","locations":[{"start":{"line":443,"column":12},"end":{"line":445,"column":13}},{"start":{"line":443,"column":12},"end":{"line":445,"column":13}}],"line":443},"74":{"loc":{"start":{"line":447,"column":12},"end":{"line":449,"column":13}},"type":"if","locations":[{"start":{"line":447,"column":12},"end":{"line":449,"column":13}},{"start":{"line":447,"column":12},"end":{"line":449,"column":13}}],"line":447},"75":{"loc":{"start":{"line":451,"column":12},"end":{"line":453,"column":13}},"type":"if","locations":[{"start":{"line":451,"column":12},"end":{"line":453,"column":13}},{"start":{"line":451,"column":12},"end":{"line":453,"column":13}}],"line":451},"76":{"loc":{"start":{"line":454,"column":12},"end":{"line":456,"column":13}},"type":"if","locations":[{"start":{"line":454,"column":12},"end":{"line":456,"column":13}},{"start":{"line":454,"column":12},"end":{"line":456,"column":13}}],"line":454},"77":{"loc":{"start":{"line":459,"column":12},"end":{"line":463,"column":13}},"type":"if","locations":[{"start":{"line":459,"column":12},"end":{"line":463,"column":13}},{"start":{"line":459,"column":12},"end":{"line":463,"column":13}}],"line":459},"78":{"loc":{"start":{"line":461,"column":67},"end":{"line":461,"column":163}},"type":"cond-expr","locations":[{"start":{"line":461,"column":156},"end":{"line":461,"column":158}},{"start":{"line":461,"column":161},"end":{"line":461,"column":163}}],"line":461},"79":{"loc":{"start":{"line":461,"column":67},"end":{"line":461,"column":153}},"type":"binary-expr","locations":[{"start":{"line":461,"column":67},"end":{"line":461,"column":136}},{"start":{"line":461,"column":140},"end":{"line":461,"column":153}}],"line":461},"80":{"loc":{"start":{"line":461,"column":73},"end":{"line":461,"column":126}},"type":"cond-expr","locations":[{"start":{"line":461,"column":106},"end":{"line":461,"column":112}},{"start":{"line":461,"column":115},"end":{"line":461,"column":126}}],"line":461},"81":{"loc":{"start":{"line":461,"column":73},"end":{"line":461,"column":103}},"type":"binary-expr","locations":[{"start":{"line":461,"column":73},"end":{"line":461,"column":85}},{"start":{"line":461,"column":89},"end":{"line":461,"column":103}}],"line":461},"82":{"loc":{"start":{"line":467,"column":24},"end":{"line":467,"column":128}},"type":"cond-expr","locations":[{"start":{"line":467,"column":43},"end":{"line":467,"column":91}},{"start":{"line":467,"column":94},"end":{"line":467,"column":128}}],"line":467},"83":{"loc":{"start":{"line":482,"column":12},"end":{"line":487,"column":13}},"type":"if","locations":[{"start":{"line":482,"column":12},"end":{"line":487,"column":13}},{"start":{"line":482,"column":12},"end":{"line":487,"column":13}}],"line":482},"84":{"loc":{"start":{"line":484,"column":40},"end":{"line":484,"column":134}},"type":"cond-expr","locations":[{"start":{"line":484,"column":91},"end":{"line":484,"column":97}},{"start":{"line":484,"column":100},"end":{"line":484,"column":134}}],"line":484},"85":{"loc":{"start":{"line":484,"column":40},"end":{"line":484,"column":88}},"type":"binary-expr","locations":[{"start":{"line":484,"column":40},"end":{"line":484,"column":71}},{"start":{"line":484,"column":75},"end":{"line":484,"column":88}}],"line":484},"86":{"loc":{"start":{"line":489,"column":39},"end":{"line":489,"column":128}},"type":"cond-expr","locations":[{"start":{"line":489,"column":53},"end":{"line":489,"column":96}},{"start":{"line":489,"column":99},"end":{"line":489,"column":128}}],"line":489},"87":{"loc":{"start":{"line":501,"column":12},"end":{"line":506,"column":13}},"type":"if","locations":[{"start":{"line":501,"column":12},"end":{"line":506,"column":13}},{"start":{"line":501,"column":12},"end":{"line":506,"column":13}}],"line":501},"88":{"loc":{"start":{"line":502,"column":113},"end":{"line":502,"column":177}},"type":"cond-expr","locations":[{"start":{"line":502,"column":170},"end":{"line":502,"column":172}},{"start":{"line":502,"column":175},"end":{"line":502,"column":177}}],"line":502},"89":{"loc":{"start":{"line":502,"column":113},"end":{"line":502,"column":167}},"type":"binary-expr","locations":[{"start":{"line":502,"column":113},"end":{"line":502,"column":150}},{"start":{"line":502,"column":154},"end":{"line":502,"column":167}}],"line":502},"90":{"loc":{"start":{"line":503,"column":40},"end":{"line":503,"column":134}},"type":"cond-expr","locations":[{"start":{"line":503,"column":91},"end":{"line":503,"column":97}},{"start":{"line":503,"column":100},"end":{"line":503,"column":134}}],"line":503},"91":{"loc":{"start":{"line":503,"column":40},"end":{"line":503,"column":88}},"type":"binary-expr","locations":[{"start":{"line":503,"column":40},"end":{"line":503,"column":71}},{"start":{"line":503,"column":75},"end":{"line":503,"column":88}}],"line":503},"92":{"loc":{"start":{"line":511,"column":16},"end":{"line":513,"column":17}},"type":"if","locations":[{"start":{"line":511,"column":16},"end":{"line":513,"column":17}},{"start":{"line":511,"column":16},"end":{"line":513,"column":17}}],"line":511},"93":{"loc":{"start":{"line":516,"column":39},"end":{"line":516,"column":223}},"type":"binary-expr","locations":[{"start":{"line":516,"column":39},"end":{"line":516,"column":68}},{"start":{"line":516,"column":72},"end":{"line":516,"column":223}}],"line":516},"94":{"loc":{"start":{"line":516,"column":73},"end":{"line":516,"column":206}},"type":"cond-expr","locations":[{"start":{"line":516,"column":187},"end":{"line":516,"column":193}},{"start":{"line":516,"column":196},"end":{"line":516,"column":206}}],"line":516},"95":{"loc":{"start":{"line":516,"column":73},"end":{"line":516,"column":184}},"type":"binary-expr","locations":[{"start":{"line":516,"column":73},"end":{"line":516,"column":167}},{"start":{"line":516,"column":171},"end":{"line":516,"column":184}}],"line":516},"96":{"loc":{"start":{"line":516,"column":79},"end":{"line":516,"column":157}},"type":"cond-expr","locations":[{"start":{"line":516,"column":128},"end":{"line":516,"column":134}},{"start":{"line":516,"column":137},"end":{"line":516,"column":157}}],"line":516},"97":{"loc":{"start":{"line":516,"column":79},"end":{"line":516,"column":125}},"type":"binary-expr","locations":[{"start":{"line":516,"column":79},"end":{"line":516,"column":108}},{"start":{"line":516,"column":112},"end":{"line":516,"column":125}}],"line":516},"98":{"loc":{"start":{"line":517,"column":16},"end":{"line":519,"column":17}},"type":"if","locations":[{"start":{"line":517,"column":16},"end":{"line":519,"column":17}},{"start":{"line":517,"column":16},"end":{"line":519,"column":17}}],"line":517},"99":{"loc":{"start":{"line":526,"column":24},"end":{"line":526,"column":134}},"type":"cond-expr","locations":[{"start":{"line":526,"column":45},"end":{"line":526,"column":95}},{"start":{"line":526,"column":98},"end":{"line":526,"column":134}}],"line":526},"100":{"loc":{"start":{"line":541,"column":12},"end":{"line":546,"column":13}},"type":"if","locations":[{"start":{"line":541,"column":12},"end":{"line":546,"column":13}},{"start":{"line":541,"column":12},"end":{"line":546,"column":13}}],"line":541},"101":{"loc":{"start":{"line":542,"column":113},"end":{"line":542,"column":177}},"type":"cond-expr","locations":[{"start":{"line":542,"column":170},"end":{"line":542,"column":172}},{"start":{"line":542,"column":175},"end":{"line":542,"column":177}}],"line":542},"102":{"loc":{"start":{"line":542,"column":113},"end":{"line":542,"column":167}},"type":"binary-expr","locations":[{"start":{"line":542,"column":113},"end":{"line":542,"column":150}},{"start":{"line":542,"column":154},"end":{"line":542,"column":167}}],"line":542},"103":{"loc":{"start":{"line":543,"column":40},"end":{"line":543,"column":134}},"type":"cond-expr","locations":[{"start":{"line":543,"column":91},"end":{"line":543,"column":97}},{"start":{"line":543,"column":100},"end":{"line":543,"column":134}}],"line":543},"104":{"loc":{"start":{"line":543,"column":40},"end":{"line":543,"column":88}},"type":"binary-expr","locations":[{"start":{"line":543,"column":40},"end":{"line":543,"column":71}},{"start":{"line":543,"column":75},"end":{"line":543,"column":88}}],"line":543},"105":{"loc":{"start":{"line":548,"column":12},"end":{"line":550,"column":13}},"type":"if","locations":[{"start":{"line":548,"column":12},"end":{"line":550,"column":13}},{"start":{"line":548,"column":12},"end":{"line":550,"column":13}}],"line":548},"106":{"loc":{"start":{"line":552,"column":12},"end":{"line":554,"column":13}},"type":"if","locations":[{"start":{"line":552,"column":12},"end":{"line":554,"column":13}},{"start":{"line":552,"column":12},"end":{"line":554,"column":13}}],"line":552},"107":{"loc":{"start":{"line":556,"column":12},"end":{"line":562,"column":13}},"type":"if","locations":[{"start":{"line":556,"column":12},"end":{"line":562,"column":13}},{"start":{"line":556,"column":12},"end":{"line":562,"column":13}}],"line":556},"108":{"loc":{"start":{"line":563,"column":112},"end":{"line":563,"column":185}},"type":"cond-expr","locations":[{"start":{"line":563,"column":138},"end":{"line":563,"column":159}},{"start":{"line":563,"column":162},"end":{"line":563,"column":185}}],"line":563},"109":{"loc":{"start":{"line":564,"column":39},"end":{"line":564,"column":125}},"type":"cond-expr","locations":[{"start":{"line":564,"column":57},"end":{"line":564,"column":104}},{"start":{"line":564,"column":107},"end":{"line":564,"column":125}}],"line":564},"110":{"loc":{"start":{"line":576,"column":12},"end":{"line":581,"column":13}},"type":"if","locations":[{"start":{"line":576,"column":12},"end":{"line":581,"column":13}},{"start":{"line":576,"column":12},"end":{"line":581,"column":13}}],"line":576},"111":{"loc":{"start":{"line":577,"column":113},"end":{"line":577,"column":177}},"type":"cond-expr","locations":[{"start":{"line":577,"column":170},"end":{"line":577,"column":172}},{"start":{"line":577,"column":175},"end":{"line":577,"column":177}}],"line":577},"112":{"loc":{"start":{"line":577,"column":113},"end":{"line":577,"column":167}},"type":"binary-expr","locations":[{"start":{"line":577,"column":113},"end":{"line":577,"column":150}},{"start":{"line":577,"column":154},"end":{"line":577,"column":167}}],"line":577},"113":{"loc":{"start":{"line":578,"column":40},"end":{"line":578,"column":134}},"type":"cond-expr","locations":[{"start":{"line":578,"column":91},"end":{"line":578,"column":97}},{"start":{"line":578,"column":100},"end":{"line":578,"column":134}}],"line":578},"114":{"loc":{"start":{"line":578,"column":40},"end":{"line":578,"column":88}},"type":"binary-expr","locations":[{"start":{"line":578,"column":40},"end":{"line":578,"column":71}},{"start":{"line":578,"column":75},"end":{"line":578,"column":88}}],"line":578},"115":{"loc":{"start":{"line":583,"column":12},"end":{"line":585,"column":13}},"type":"if","locations":[{"start":{"line":583,"column":12},"end":{"line":585,"column":13}},{"start":{"line":583,"column":12},"end":{"line":585,"column":13}}],"line":583},"116":{"loc":{"start":{"line":587,"column":12},"end":{"line":589,"column":13}},"type":"if","locations":[{"start":{"line":587,"column":12},"end":{"line":589,"column":13}},{"start":{"line":587,"column":12},"end":{"line":589,"column":13}}],"line":587},"117":{"loc":{"start":{"line":592,"column":12},"end":{"line":594,"column":13}},"type":"if","locations":[{"start":{"line":592,"column":12},"end":{"line":594,"column":13}},{"start":{"line":592,"column":12},"end":{"line":594,"column":13}}],"line":592},"118":{"loc":{"start":{"line":598,"column":12},"end":{"line":600,"column":13}},"type":"if","locations":[{"start":{"line":598,"column":12},"end":{"line":600,"column":13}},{"start":{"line":598,"column":12},"end":{"line":600,"column":13}}],"line":598},"119":{"loc":{"start":{"line":614,"column":12},"end":{"line":619,"column":13}},"type":"if","locations":[{"start":{"line":614,"column":12},"end":{"line":619,"column":13}},{"start":{"line":614,"column":12},"end":{"line":619,"column":13}}],"line":614},"120":{"loc":{"start":{"line":615,"column":113},"end":{"line":615,"column":177}},"type":"cond-expr","locations":[{"start":{"line":615,"column":170},"end":{"line":615,"column":172}},{"start":{"line":615,"column":175},"end":{"line":615,"column":177}}],"line":615},"121":{"loc":{"start":{"line":615,"column":113},"end":{"line":615,"column":167}},"type":"binary-expr","locations":[{"start":{"line":615,"column":113},"end":{"line":615,"column":150}},{"start":{"line":615,"column":154},"end":{"line":615,"column":167}}],"line":615},"122":{"loc":{"start":{"line":616,"column":40},"end":{"line":616,"column":134}},"type":"cond-expr","locations":[{"start":{"line":616,"column":91},"end":{"line":616,"column":97}},{"start":{"line":616,"column":100},"end":{"line":616,"column":134}}],"line":616},"123":{"loc":{"start":{"line":616,"column":40},"end":{"line":616,"column":88}},"type":"binary-expr","locations":[{"start":{"line":616,"column":40},"end":{"line":616,"column":71}},{"start":{"line":616,"column":75},"end":{"line":616,"column":88}}],"line":616},"124":{"loc":{"start":{"line":621,"column":12},"end":{"line":623,"column":13}},"type":"if","locations":[{"start":{"line":621,"column":12},"end":{"line":623,"column":13}},{"start":{"line":621,"column":12},"end":{"line":623,"column":13}}],"line":621},"125":{"loc":{"start":{"line":625,"column":12},"end":{"line":629,"column":13}},"type":"if","locations":[{"start":{"line":625,"column":12},"end":{"line":629,"column":13}},{"start":{"line":625,"column":12},"end":{"line":629,"column":13}}],"line":625},"126":{"loc":{"start":{"line":626,"column":116},"end":{"line":626,"column":180}},"type":"cond-expr","locations":[{"start":{"line":626,"column":173},"end":{"line":626,"column":175}},{"start":{"line":626,"column":178},"end":{"line":626,"column":180}}],"line":626},"127":{"loc":{"start":{"line":626,"column":116},"end":{"line":626,"column":170}},"type":"binary-expr","locations":[{"start":{"line":626,"column":116},"end":{"line":626,"column":153}},{"start":{"line":626,"column":157},"end":{"line":626,"column":170}}],"line":626},"128":{"loc":{"start":{"line":632,"column":12},"end":{"line":634,"column":13}},"type":"if","locations":[{"start":{"line":632,"column":12},"end":{"line":634,"column":13}},{"start":{"line":632,"column":12},"end":{"line":634,"column":13}}],"line":632},"129":{"loc":{"start":{"line":637,"column":12},"end":{"line":639,"column":13}},"type":"if","locations":[{"start":{"line":637,"column":12},"end":{"line":639,"column":13}},{"start":{"line":637,"column":12},"end":{"line":639,"column":13}}],"line":637},"130":{"loc":{"start":{"line":653,"column":12},"end":{"line":658,"column":13}},"type":"if","locations":[{"start":{"line":653,"column":12},"end":{"line":658,"column":13}},{"start":{"line":653,"column":12},"end":{"line":658,"column":13}}],"line":653},"131":{"loc":{"start":{"line":654,"column":113},"end":{"line":654,"column":177}},"type":"cond-expr","locations":[{"start":{"line":654,"column":170},"end":{"line":654,"column":172}},{"start":{"line":654,"column":175},"end":{"line":654,"column":177}}],"line":654},"132":{"loc":{"start":{"line":654,"column":113},"end":{"line":654,"column":167}},"type":"binary-expr","locations":[{"start":{"line":654,"column":113},"end":{"line":654,"column":150}},{"start":{"line":654,"column":154},"end":{"line":654,"column":167}}],"line":654},"133":{"loc":{"start":{"line":655,"column":40},"end":{"line":655,"column":134}},"type":"cond-expr","locations":[{"start":{"line":655,"column":91},"end":{"line":655,"column":97}},{"start":{"line":655,"column":100},"end":{"line":655,"column":134}}],"line":655},"134":{"loc":{"start":{"line":655,"column":40},"end":{"line":655,"column":88}},"type":"binary-expr","locations":[{"start":{"line":655,"column":40},"end":{"line":655,"column":71}},{"start":{"line":655,"column":75},"end":{"line":655,"column":88}}],"line":655},"135":{"loc":{"start":{"line":660,"column":12},"end":{"line":662,"column":13}},"type":"if","locations":[{"start":{"line":660,"column":12},"end":{"line":662,"column":13}},{"start":{"line":660,"column":12},"end":{"line":662,"column":13}}],"line":660},"136":{"loc":{"start":{"line":664,"column":12},"end":{"line":666,"column":13}},"type":"if","locations":[{"start":{"line":664,"column":12},"end":{"line":666,"column":13}},{"start":{"line":664,"column":12},"end":{"line":666,"column":13}}],"line":664},"137":{"loc":{"start":{"line":668,"column":12},"end":{"line":670,"column":13}},"type":"if","locations":[{"start":{"line":668,"column":12},"end":{"line":670,"column":13}},{"start":{"line":668,"column":12},"end":{"line":670,"column":13}}],"line":668},"138":{"loc":{"start":{"line":672,"column":37},"end":{"line":672,"column":117}},"type":"cond-expr","locations":[{"start":{"line":672,"column":107},"end":{"line":672,"column":109}},{"start":{"line":672,"column":112},"end":{"line":672,"column":117}}],"line":672},"139":{"loc":{"start":{"line":672,"column":37},"end":{"line":672,"column":104}},"type":"binary-expr","locations":[{"start":{"line":672,"column":37},"end":{"line":672,"column":87}},{"start":{"line":672,"column":91},"end":{"line":672,"column":104}}],"line":672},"140":{"loc":{"start":{"line":674,"column":116},"end":{"line":674,"column":205}},"type":"binary-expr","locations":[{"start":{"line":674,"column":116},"end":{"line":674,"column":161}},{"start":{"line":674,"column":165},"end":{"line":674,"column":205}}],"line":674},"141":{"loc":{"start":{"line":675,"column":120},"end":{"line":675,"column":200}},"type":"binary-expr","locations":[{"start":{"line":675,"column":120},"end":{"line":675,"column":165}},{"start":{"line":675,"column":169},"end":{"line":675,"column":200}}],"line":675},"142":{"loc":{"start":{"line":677,"column":12},"end":{"line":679,"column":13}},"type":"if","locations":[{"start":{"line":677,"column":12},"end":{"line":679,"column":13}},{"start":{"line":677,"column":12},"end":{"line":679,"column":13}}],"line":677},"143":{"loc":{"start":{"line":687,"column":16},"end":{"line":690,"column":17}},"type":"if","locations":[{"start":{"line":687,"column":16},"end":{"line":690,"column":17}},{"start":{"line":687,"column":16},"end":{"line":690,"column":17}}],"line":687},"144":{"loc":{"start":{"line":689,"column":38},"end":{"line":689,"column":111}},"type":"cond-expr","locations":[{"start":{"line":689,"column":72},"end":{"line":689,"column":99}},{"start":{"line":689,"column":102},"end":{"line":689,"column":111}}],"line":689},"145":{"loc":{"start":{"line":696,"column":12},"end":{"line":704,"column":13}},"type":"if","locations":[{"start":{"line":696,"column":12},"end":{"line":704,"column":13}},{"start":{"line":696,"column":12},"end":{"line":704,"column":13}}],"line":696},"146":{"loc":{"start":{"line":698,"column":16},"end":{"line":702,"column":17}},"type":"if","locations":[{"start":{"line":698,"column":16},"end":{"line":702,"column":17}},{"start":{"line":698,"column":16},"end":{"line":702,"column":17}}],"line":698},"147":{"loc":{"start":{"line":717,"column":12},"end":{"line":722,"column":13}},"type":"if","locations":[{"start":{"line":717,"column":12},"end":{"line":722,"column":13}},{"start":{"line":717,"column":12},"end":{"line":722,"column":13}}],"line":717},"148":{"loc":{"start":{"line":718,"column":113},"end":{"line":718,"column":177}},"type":"cond-expr","locations":[{"start":{"line":718,"column":170},"end":{"line":718,"column":172}},{"start":{"line":718,"column":175},"end":{"line":718,"column":177}}],"line":718},"149":{"loc":{"start":{"line":718,"column":113},"end":{"line":718,"column":167}},"type":"binary-expr","locations":[{"start":{"line":718,"column":113},"end":{"line":718,"column":150}},{"start":{"line":718,"column":154},"end":{"line":718,"column":167}}],"line":718},"150":{"loc":{"start":{"line":719,"column":40},"end":{"line":719,"column":134}},"type":"cond-expr","locations":[{"start":{"line":719,"column":91},"end":{"line":719,"column":97}},{"start":{"line":719,"column":100},"end":{"line":719,"column":134}}],"line":719},"151":{"loc":{"start":{"line":719,"column":40},"end":{"line":719,"column":88}},"type":"binary-expr","locations":[{"start":{"line":719,"column":40},"end":{"line":719,"column":71}},{"start":{"line":719,"column":75},"end":{"line":719,"column":88}}],"line":719},"152":{"loc":{"start":{"line":724,"column":12},"end":{"line":726,"column":13}},"type":"if","locations":[{"start":{"line":724,"column":12},"end":{"line":726,"column":13}},{"start":{"line":724,"column":12},"end":{"line":726,"column":13}}],"line":724},"153":{"loc":{"start":{"line":728,"column":12},"end":{"line":732,"column":13}},"type":"if","locations":[{"start":{"line":728,"column":12},"end":{"line":732,"column":13}},{"start":{"line":728,"column":12},"end":{"line":732,"column":13}}],"line":728},"154":{"loc":{"start":{"line":734,"column":12},"end":{"line":736,"column":13}},"type":"if","locations":[{"start":{"line":734,"column":12},"end":{"line":736,"column":13}},{"start":{"line":734,"column":12},"end":{"line":736,"column":13}}],"line":734},"155":{"loc":{"start":{"line":756,"column":12},"end":{"line":761,"column":13}},"type":"if","locations":[{"start":{"line":756,"column":12},"end":{"line":761,"column":13}},{"start":{"line":756,"column":12},"end":{"line":761,"column":13}}],"line":756},"156":{"loc":{"start":{"line":757,"column":113},"end":{"line":757,"column":177}},"type":"cond-expr","locations":[{"start":{"line":757,"column":170},"end":{"line":757,"column":172}},{"start":{"line":757,"column":175},"end":{"line":757,"column":177}}],"line":757},"157":{"loc":{"start":{"line":757,"column":113},"end":{"line":757,"column":167}},"type":"binary-expr","locations":[{"start":{"line":757,"column":113},"end":{"line":757,"column":150}},{"start":{"line":757,"column":154},"end":{"line":757,"column":167}}],"line":757},"158":{"loc":{"start":{"line":758,"column":40},"end":{"line":758,"column":134}},"type":"cond-expr","locations":[{"start":{"line":758,"column":91},"end":{"line":758,"column":97}},{"start":{"line":758,"column":100},"end":{"line":758,"column":134}}],"line":758},"159":{"loc":{"start":{"line":758,"column":40},"end":{"line":758,"column":88}},"type":"binary-expr","locations":[{"start":{"line":758,"column":40},"end":{"line":758,"column":71}},{"start":{"line":758,"column":75},"end":{"line":758,"column":88}}],"line":758},"160":{"loc":{"start":{"line":763,"column":12},"end":{"line":765,"column":13}},"type":"if","locations":[{"start":{"line":763,"column":12},"end":{"line":765,"column":13}},{"start":{"line":763,"column":12},"end":{"line":765,"column":13}}],"line":763},"161":{"loc":{"start":{"line":767,"column":12},"end":{"line":771,"column":13}},"type":"if","locations":[{"start":{"line":767,"column":12},"end":{"line":771,"column":13}},{"start":{"line":767,"column":12},"end":{"line":771,"column":13}}],"line":767},"162":{"loc":{"start":{"line":773,"column":12},"end":{"line":777,"column":13}},"type":"if","locations":[{"start":{"line":773,"column":12},"end":{"line":777,"column":13}},{"start":{"line":773,"column":12},"end":{"line":777,"column":13}}],"line":773},"163":{"loc":{"start":{"line":774,"column":148},"end":{"line":774,"column":212}},"type":"cond-expr","locations":[{"start":{"line":774,"column":205},"end":{"line":774,"column":207}},{"start":{"line":774,"column":210},"end":{"line":774,"column":212}}],"line":774},"164":{"loc":{"start":{"line":774,"column":148},"end":{"line":774,"column":202}},"type":"binary-expr","locations":[{"start":{"line":774,"column":148},"end":{"line":774,"column":185}},{"start":{"line":774,"column":189},"end":{"line":774,"column":202}}],"line":774},"165":{"loc":{"start":{"line":778,"column":12},"end":{"line":783,"column":13}},"type":"if","locations":[{"start":{"line":778,"column":12},"end":{"line":783,"column":13}},{"start":{"line":778,"column":12},"end":{"line":783,"column":13}}],"line":778},"166":{"loc":{"start":{"line":779,"column":140},"end":{"line":779,"column":204}},"type":"cond-expr","locations":[{"start":{"line":779,"column":197},"end":{"line":779,"column":199}},{"start":{"line":779,"column":202},"end":{"line":779,"column":204}}],"line":779},"167":{"loc":{"start":{"line":779,"column":140},"end":{"line":779,"column":194}},"type":"binary-expr","locations":[{"start":{"line":779,"column":140},"end":{"line":779,"column":177}},{"start":{"line":779,"column":181},"end":{"line":779,"column":194}}],"line":779},"168":{"loc":{"start":{"line":785,"column":12},"end":{"line":789,"column":13}},"type":"if","locations":[{"start":{"line":785,"column":12},"end":{"line":789,"column":13}},{"start":{"line":785,"column":12},"end":{"line":789,"column":13}}],"line":785},"169":{"loc":{"start":{"line":785,"column":16},"end":{"line":785,"column":58}},"type":"binary-expr","locations":[{"start":{"line":785,"column":16},"end":{"line":785,"column":34}},{"start":{"line":785,"column":38},"end":{"line":785,"column":58}}],"line":785},"170":{"loc":{"start":{"line":786,"column":146},"end":{"line":786,"column":210}},"type":"cond-expr","locations":[{"start":{"line":786,"column":203},"end":{"line":786,"column":205}},{"start":{"line":786,"column":208},"end":{"line":786,"column":210}}],"line":786},"171":{"loc":{"start":{"line":786,"column":146},"end":{"line":786,"column":200}},"type":"binary-expr","locations":[{"start":{"line":786,"column":146},"end":{"line":786,"column":183}},{"start":{"line":786,"column":187},"end":{"line":786,"column":200}}],"line":786},"172":{"loc":{"start":{"line":819,"column":12},"end":{"line":824,"column":13}},"type":"if","locations":[{"start":{"line":819,"column":12},"end":{"line":824,"column":13}},{"start":{"line":819,"column":12},"end":{"line":824,"column":13}}],"line":819},"173":{"loc":{"start":{"line":821,"column":40},"end":{"line":821,"column":134}},"type":"cond-expr","locations":[{"start":{"line":821,"column":91},"end":{"line":821,"column":97}},{"start":{"line":821,"column":100},"end":{"line":821,"column":134}}],"line":821},"174":{"loc":{"start":{"line":821,"column":40},"end":{"line":821,"column":88}},"type":"binary-expr","locations":[{"start":{"line":821,"column":40},"end":{"line":821,"column":71}},{"start":{"line":821,"column":75},"end":{"line":821,"column":88}}],"line":821},"175":{"loc":{"start":{"line":845,"column":12},"end":{"line":850,"column":13}},"type":"if","locations":[{"start":{"line":845,"column":12},"end":{"line":850,"column":13}},{"start":{"line":845,"column":12},"end":{"line":850,"column":13}}],"line":845},"176":{"loc":{"start":{"line":846,"column":113},"end":{"line":846,"column":177}},"type":"cond-expr","locations":[{"start":{"line":846,"column":170},"end":{"line":846,"column":172}},{"start":{"line":846,"column":175},"end":{"line":846,"column":177}}],"line":846},"177":{"loc":{"start":{"line":846,"column":113},"end":{"line":846,"column":167}},"type":"binary-expr","locations":[{"start":{"line":846,"column":113},"end":{"line":846,"column":150}},{"start":{"line":846,"column":154},"end":{"line":846,"column":167}}],"line":846},"178":{"loc":{"start":{"line":847,"column":40},"end":{"line":847,"column":134}},"type":"cond-expr","locations":[{"start":{"line":847,"column":91},"end":{"line":847,"column":97}},{"start":{"line":847,"column":100},"end":{"line":847,"column":134}}],"line":847},"179":{"loc":{"start":{"line":847,"column":40},"end":{"line":847,"column":88}},"type":"binary-expr","locations":[{"start":{"line":847,"column":40},"end":{"line":847,"column":71}},{"start":{"line":847,"column":75},"end":{"line":847,"column":88}}],"line":847},"180":{"loc":{"start":{"line":853,"column":16},"end":{"line":855,"column":17}},"type":"if","locations":[{"start":{"line":853,"column":16},"end":{"line":855,"column":17}},{"start":{"line":853,"column":16},"end":{"line":855,"column":17}}],"line":853},"181":{"loc":{"start":{"line":856,"column":37},"end":{"line":856,"column":124}},"type":"cond-expr","locations":[{"start":{"line":856,"column":77},"end":{"line":856,"column":98}},{"start":{"line":856,"column":101},"end":{"line":856,"column":124}}],"line":856},"182":{"loc":{"start":{"line":858,"column":43},"end":{"line":858,"column":132}},"type":"cond-expr","locations":[{"start":{"line":858,"column":57},"end":{"line":858,"column":100}},{"start":{"line":858,"column":103},"end":{"line":858,"column":132}}],"line":858},"183":{"loc":{"start":{"line":876,"column":12},"end":{"line":881,"column":13}},"type":"if","locations":[{"start":{"line":876,"column":12},"end":{"line":881,"column":13}},{"start":{"line":876,"column":12},"end":{"line":881,"column":13}}],"line":876},"184":{"loc":{"start":{"line":878,"column":40},"end":{"line":878,"column":134}},"type":"cond-expr","locations":[{"start":{"line":878,"column":91},"end":{"line":878,"column":97}},{"start":{"line":878,"column":100},"end":{"line":878,"column":134}}],"line":878},"185":{"loc":{"start":{"line":878,"column":40},"end":{"line":878,"column":88}},"type":"binary-expr","locations":[{"start":{"line":878,"column":40},"end":{"line":878,"column":71}},{"start":{"line":878,"column":75},"end":{"line":878,"column":88}}],"line":878},"186":{"loc":{"start":{"line":883,"column":12},"end":{"line":885,"column":13}},"type":"if","locations":[{"start":{"line":883,"column":12},"end":{"line":885,"column":13}},{"start":{"line":883,"column":12},"end":{"line":885,"column":13}}],"line":883},"187":{"loc":{"start":{"line":906,"column":12},"end":{"line":911,"column":13}},"type":"if","locations":[{"start":{"line":906,"column":12},"end":{"line":911,"column":13}},{"start":{"line":906,"column":12},"end":{"line":911,"column":13}}],"line":906},"188":{"loc":{"start":{"line":908,"column":40},"end":{"line":908,"column":134}},"type":"cond-expr","locations":[{"start":{"line":908,"column":91},"end":{"line":908,"column":97}},{"start":{"line":908,"column":100},"end":{"line":908,"column":134}}],"line":908},"189":{"loc":{"start":{"line":908,"column":40},"end":{"line":908,"column":88}},"type":"binary-expr","locations":[{"start":{"line":908,"column":40},"end":{"line":908,"column":71}},{"start":{"line":908,"column":75},"end":{"line":908,"column":88}}],"line":908},"190":{"loc":{"start":{"line":926,"column":12},"end":{"line":931,"column":13}},"type":"if","locations":[{"start":{"line":926,"column":12},"end":{"line":931,"column":13}},{"start":{"line":926,"column":12},"end":{"line":931,"column":13}}],"line":926},"191":{"loc":{"start":{"line":927,"column":113},"end":{"line":927,"column":177}},"type":"cond-expr","locations":[{"start":{"line":927,"column":170},"end":{"line":927,"column":172}},{"start":{"line":927,"column":175},"end":{"line":927,"column":177}}],"line":927},"192":{"loc":{"start":{"line":927,"column":113},"end":{"line":927,"column":167}},"type":"binary-expr","locations":[{"start":{"line":927,"column":113},"end":{"line":927,"column":150}},{"start":{"line":927,"column":154},"end":{"line":927,"column":167}}],"line":927},"193":{"loc":{"start":{"line":928,"column":40},"end":{"line":928,"column":134}},"type":"cond-expr","locations":[{"start":{"line":928,"column":91},"end":{"line":928,"column":97}},{"start":{"line":928,"column":100},"end":{"line":928,"column":134}}],"line":928},"194":{"loc":{"start":{"line":928,"column":40},"end":{"line":928,"column":88}},"type":"binary-expr","locations":[{"start":{"line":928,"column":40},"end":{"line":928,"column":71}},{"start":{"line":928,"column":75},"end":{"line":928,"column":88}}],"line":928},"195":{"loc":{"start":{"line":933,"column":12},"end":{"line":935,"column":13}},"type":"if","locations":[{"start":{"line":933,"column":12},"end":{"line":935,"column":13}},{"start":{"line":933,"column":12},"end":{"line":935,"column":13}}],"line":933},"196":{"loc":{"start":{"line":937,"column":12},"end":{"line":939,"column":13}},"type":"if","locations":[{"start":{"line":937,"column":12},"end":{"line":939,"column":13}},{"start":{"line":937,"column":12},"end":{"line":939,"column":13}}],"line":937},"197":{"loc":{"start":{"line":941,"column":12},"end":{"line":943,"column":13}},"type":"if","locations":[{"start":{"line":941,"column":12},"end":{"line":943,"column":13}},{"start":{"line":941,"column":12},"end":{"line":943,"column":13}}],"line":941},"198":{"loc":{"start":{"line":945,"column":12},"end":{"line":952,"column":13}},"type":"if","locations":[{"start":{"line":945,"column":12},"end":{"line":952,"column":13}},{"start":{"line":945,"column":12},"end":{"line":952,"column":13}}],"line":945},"199":{"loc":{"start":{"line":945,"column":16},"end":{"line":945,"column":56}},"type":"binary-expr","locations":[{"start":{"line":945,"column":16},"end":{"line":945,"column":32}},{"start":{"line":945,"column":36},"end":{"line":945,"column":56}}],"line":945},"200":{"loc":{"start":{"line":961,"column":12},"end":{"line":966,"column":13}},"type":"if","locations":[{"start":{"line":961,"column":12},"end":{"line":966,"column":13}},{"start":{"line":961,"column":12},"end":{"line":966,"column":13}}],"line":961},"201":{"loc":{"start":{"line":962,"column":113},"end":{"line":962,"column":177}},"type":"cond-expr","locations":[{"start":{"line":962,"column":170},"end":{"line":962,"column":172}},{"start":{"line":962,"column":175},"end":{"line":962,"column":177}}],"line":962},"202":{"loc":{"start":{"line":962,"column":113},"end":{"line":962,"column":167}},"type":"binary-expr","locations":[{"start":{"line":962,"column":113},"end":{"line":962,"column":150}},{"start":{"line":962,"column":154},"end":{"line":962,"column":167}}],"line":962},"203":{"loc":{"start":{"line":963,"column":40},"end":{"line":963,"column":134}},"type":"cond-expr","locations":[{"start":{"line":963,"column":91},"end":{"line":963,"column":97}},{"start":{"line":963,"column":100},"end":{"line":963,"column":134}}],"line":963},"204":{"loc":{"start":{"line":963,"column":40},"end":{"line":963,"column":88}},"type":"binary-expr","locations":[{"start":{"line":963,"column":40},"end":{"line":963,"column":71}},{"start":{"line":963,"column":75},"end":{"line":963,"column":88}}],"line":963},"205":{"loc":{"start":{"line":968,"column":12},"end":{"line":970,"column":13}},"type":"if","locations":[{"start":{"line":968,"column":12},"end":{"line":970,"column":13}},{"start":{"line":968,"column":12},"end":{"line":970,"column":13}}],"line":968},"206":{"loc":{"start":{"line":972,"column":12},"end":{"line":974,"column":13}},"type":"if","locations":[{"start":{"line":972,"column":12},"end":{"line":974,"column":13}},{"start":{"line":972,"column":12},"end":{"line":974,"column":13}}],"line":972},"207":{"loc":{"start":{"line":975,"column":12},"end":{"line":977,"column":13}},"type":"if","locations":[{"start":{"line":975,"column":12},"end":{"line":977,"column":13}},{"start":{"line":975,"column":12},"end":{"line":977,"column":13}}],"line":975},"208":{"loc":{"start":{"line":979,"column":12},"end":{"line":981,"column":13}},"type":"if","locations":[{"start":{"line":979,"column":12},"end":{"line":981,"column":13}},{"start":{"line":979,"column":12},"end":{"line":981,"column":13}}],"line":979},"209":{"loc":{"start":{"line":990,"column":12},"end":{"line":995,"column":13}},"type":"if","locations":[{"start":{"line":990,"column":12},"end":{"line":995,"column":13}},{"start":{"line":990,"column":12},"end":{"line":995,"column":13}}],"line":990},"210":{"loc":{"start":{"line":992,"column":40},"end":{"line":992,"column":134}},"type":"cond-expr","locations":[{"start":{"line":992,"column":91},"end":{"line":992,"column":97}},{"start":{"line":992,"column":100},"end":{"line":992,"column":134}}],"line":992},"211":{"loc":{"start":{"line":992,"column":40},"end":{"line":992,"column":88}},"type":"binary-expr","locations":[{"start":{"line":992,"column":40},"end":{"line":992,"column":71}},{"start":{"line":992,"column":75},"end":{"line":992,"column":88}}],"line":992},"212":{"loc":{"start":{"line":1010,"column":12},"end":{"line":1015,"column":13}},"type":"if","locations":[{"start":{"line":1010,"column":12},"end":{"line":1015,"column":13}},{"start":{"line":1010,"column":12},"end":{"line":1015,"column":13}}],"line":1010},"213":{"loc":{"start":{"line":1012,"column":40},"end":{"line":1012,"column":134}},"type":"cond-expr","locations":[{"start":{"line":1012,"column":91},"end":{"line":1012,"column":97}},{"start":{"line":1012,"column":100},"end":{"line":1012,"column":134}}],"line":1012},"214":{"loc":{"start":{"line":1012,"column":40},"end":{"line":1012,"column":88}},"type":"binary-expr","locations":[{"start":{"line":1012,"column":40},"end":{"line":1012,"column":71}},{"start":{"line":1012,"column":75},"end":{"line":1012,"column":88}}],"line":1012},"215":{"loc":{"start":{"line":1017,"column":12},"end":{"line":1019,"column":13}},"type":"if","locations":[{"start":{"line":1017,"column":12},"end":{"line":1019,"column":13}},{"start":{"line":1017,"column":12},"end":{"line":1019,"column":13}}],"line":1017},"216":{"loc":{"start":{"line":1021,"column":12},"end":{"line":1025,"column":13}},"type":"if","locations":[{"start":{"line":1021,"column":12},"end":{"line":1025,"column":13}},{"start":{"line":1021,"column":12},"end":{"line":1025,"column":13}}],"line":1021},"217":{"loc":{"start":{"line":1027,"column":12},"end":{"line":1029,"column":13}},"type":"if","locations":[{"start":{"line":1027,"column":12},"end":{"line":1029,"column":13}},{"start":{"line":1027,"column":12},"end":{"line":1029,"column":13}}],"line":1027},"218":{"loc":{"start":{"line":1031,"column":12},"end":{"line":1033,"column":13}},"type":"if","locations":[{"start":{"line":1031,"column":12},"end":{"line":1033,"column":13}},{"start":{"line":1031,"column":12},"end":{"line":1033,"column":13}}],"line":1031},"219":{"loc":{"start":{"line":1042,"column":12},"end":{"line":1047,"column":13}},"type":"if","locations":[{"start":{"line":1042,"column":12},"end":{"line":1047,"column":13}},{"start":{"line":1042,"column":12},"end":{"line":1047,"column":13}}],"line":1042},"220":{"loc":{"start":{"line":1044,"column":40},"end":{"line":1044,"column":134}},"type":"cond-expr","locations":[{"start":{"line":1044,"column":91},"end":{"line":1044,"column":97}},{"start":{"line":1044,"column":100},"end":{"line":1044,"column":134}}],"line":1044},"221":{"loc":{"start":{"line":1044,"column":40},"end":{"line":1044,"column":88}},"type":"binary-expr","locations":[{"start":{"line":1044,"column":40},"end":{"line":1044,"column":71}},{"start":{"line":1044,"column":75},"end":{"line":1044,"column":88}}],"line":1044},"222":{"loc":{"start":{"line":1049,"column":12},"end":{"line":1051,"column":13}},"type":"if","locations":[{"start":{"line":1049,"column":12},"end":{"line":1051,"column":13}},{"start":{"line":1049,"column":12},"end":{"line":1051,"column":13}}],"line":1049},"223":{"loc":{"start":{"line":1053,"column":12},"end":{"line":1057,"column":13}},"type":"if","locations":[{"start":{"line":1053,"column":12},"end":{"line":1057,"column":13}},{"start":{"line":1053,"column":12},"end":{"line":1057,"column":13}}],"line":1053},"224":{"loc":{"start":{"line":1058,"column":12},"end":{"line":1062,"column":13}},"type":"if","locations":[{"start":{"line":1058,"column":12},"end":{"line":1062,"column":13}},{"start":{"line":1058,"column":12},"end":{"line":1062,"column":13}}],"line":1058},"225":{"loc":{"start":{"line":1064,"column":12},"end":{"line":1066,"column":13}},"type":"if","locations":[{"start":{"line":1064,"column":12},"end":{"line":1066,"column":13}},{"start":{"line":1064,"column":12},"end":{"line":1066,"column":13}}],"line":1064},"226":{"loc":{"start":{"line":1075,"column":12},"end":{"line":1080,"column":13}},"type":"if","locations":[{"start":{"line":1075,"column":12},"end":{"line":1080,"column":13}},{"start":{"line":1075,"column":12},"end":{"line":1080,"column":13}}],"line":1075},"227":{"loc":{"start":{"line":1077,"column":40},"end":{"line":1077,"column":134}},"type":"cond-expr","locations":[{"start":{"line":1077,"column":91},"end":{"line":1077,"column":97}},{"start":{"line":1077,"column":100},"end":{"line":1077,"column":134}}],"line":1077},"228":{"loc":{"start":{"line":1077,"column":40},"end":{"line":1077,"column":88}},"type":"binary-expr","locations":[{"start":{"line":1077,"column":40},"end":{"line":1077,"column":71}},{"start":{"line":1077,"column":75},"end":{"line":1077,"column":88}}],"line":1077},"229":{"loc":{"start":{"line":1082,"column":12},"end":{"line":1084,"column":13}},"type":"if","locations":[{"start":{"line":1082,"column":12},"end":{"line":1084,"column":13}},{"start":{"line":1082,"column":12},"end":{"line":1084,"column":13}}],"line":1082},"230":{"loc":{"start":{"line":1086,"column":12},"end":{"line":1088,"column":13}},"type":"if","locations":[{"start":{"line":1086,"column":12},"end":{"line":1088,"column":13}},{"start":{"line":1086,"column":12},"end":{"line":1088,"column":13}}],"line":1086},"231":{"loc":{"start":{"line":1089,"column":12},"end":{"line":1091,"column":13}},"type":"if","locations":[{"start":{"line":1089,"column":12},"end":{"line":1091,"column":13}},{"start":{"line":1089,"column":12},"end":{"line":1091,"column":13}}],"line":1089},"232":{"loc":{"start":{"line":1093,"column":30},"end":{"line":1093,"column":105}},"type":"cond-expr","locations":[{"start":{"line":1093,"column":82},"end":{"line":1093,"column":84}},{"start":{"line":1093,"column":87},"end":{"line":1093,"column":105}}],"line":1093},"233":{"loc":{"start":{"line":1093,"column":30},"end":{"line":1093,"column":79}},"type":"binary-expr","locations":[{"start":{"line":1093,"column":30},"end":{"line":1093,"column":62}},{"start":{"line":1093,"column":66},"end":{"line":1093,"column":79}}],"line":1093},"234":{"loc":{"start":{"line":1094,"column":26},"end":{"line":1094,"column":97}},"type":"cond-expr","locations":[{"start":{"line":1094,"column":74},"end":{"line":1094,"column":76}},{"start":{"line":1094,"column":79},"end":{"line":1094,"column":97}}],"line":1094},"235":{"loc":{"start":{"line":1094,"column":26},"end":{"line":1094,"column":71}},"type":"binary-expr","locations":[{"start":{"line":1094,"column":26},"end":{"line":1094,"column":54}},{"start":{"line":1094,"column":58},"end":{"line":1094,"column":71}}],"line":1094},"236":{"loc":{"start":{"line":1099,"column":37},"end":{"line":1099,"column":99}},"type":"cond-expr","locations":[{"start":{"line":1099,"column":54},"end":{"line":1099,"column":63}},{"start":{"line":1099,"column":66},"end":{"line":1099,"column":99}}],"line":1099},"237":{"loc":{"start":{"line":1100,"column":27},"end":{"line":1100,"column":102}},"type":"cond-expr","locations":[{"start":{"line":1100,"column":44},"end":{"line":1100,"column":90}},{"start":{"line":1100,"column":93},"end":{"line":1100,"column":102}}],"line":1100},"238":{"loc":{"start":{"line":1126,"column":12},"end":{"line":1132,"column":13}},"type":"if","locations":[{"start":{"line":1126,"column":12},"end":{"line":1132,"column":13}},{"start":{"line":1126,"column":12},"end":{"line":1132,"column":13}}],"line":1126},"239":{"loc":{"start":{"line":1127,"column":81},"end":{"line":1127,"column":139}},"type":"cond-expr","locations":[{"start":{"line":1127,"column":132},"end":{"line":1127,"column":134}},{"start":{"line":1127,"column":137},"end":{"line":1127,"column":139}}],"line":1127},"240":{"loc":{"start":{"line":1127,"column":81},"end":{"line":1127,"column":129}},"type":"binary-expr","locations":[{"start":{"line":1127,"column":81},"end":{"line":1127,"column":112}},{"start":{"line":1127,"column":116},"end":{"line":1127,"column":129}}],"line":1127},"241":{"loc":{"start":{"line":1128,"column":88},"end":{"line":1128,"column":207}},"type":"cond-expr","locations":[{"start":{"line":1128,"column":200},"end":{"line":1128,"column":202}},{"start":{"line":1128,"column":205},"end":{"line":1128,"column":207}}],"line":1128},"242":{"loc":{"start":{"line":1128,"column":88},"end":{"line":1128,"column":197}},"type":"binary-expr","locations":[{"start":{"line":1128,"column":88},"end":{"line":1128,"column":180}},{"start":{"line":1128,"column":184},"end":{"line":1128,"column":197}}],"line":1128},"243":{"loc":{"start":{"line":1128,"column":94},"end":{"line":1128,"column":170}},"type":"cond-expr","locations":[{"start":{"line":1128,"column":144},"end":{"line":1128,"column":150}},{"start":{"line":1128,"column":153},"end":{"line":1128,"column":170}}],"line":1128},"244":{"loc":{"start":{"line":1128,"column":94},"end":{"line":1128,"column":141}},"type":"binary-expr","locations":[{"start":{"line":1128,"column":94},"end":{"line":1128,"column":124}},{"start":{"line":1128,"column":128},"end":{"line":1128,"column":141}}],"line":1128},"245":{"loc":{"start":{"line":1130,"column":44},"end":{"line":1130,"column":142}},"type":"cond-expr","locations":[{"start":{"line":1130,"column":95},"end":{"line":1130,"column":101}},{"start":{"line":1130,"column":104},"end":{"line":1130,"column":142}}],"line":1130},"246":{"loc":{"start":{"line":1130,"column":44},"end":{"line":1130,"column":92}},"type":"binary-expr","locations":[{"start":{"line":1130,"column":44},"end":{"line":1130,"column":75}},{"start":{"line":1130,"column":79},"end":{"line":1130,"column":92}}],"line":1130},"247":{"loc":{"start":{"line":1134,"column":12},"end":{"line":1138,"column":13}},"type":"if","locations":[{"start":{"line":1134,"column":12},"end":{"line":1138,"column":13}},{"start":{"line":1134,"column":12},"end":{"line":1138,"column":13}}],"line":1134},"248":{"loc":{"start":{"line":1135,"column":85},"end":{"line":1135,"column":204}},"type":"cond-expr","locations":[{"start":{"line":1135,"column":197},"end":{"line":1135,"column":199}},{"start":{"line":1135,"column":202},"end":{"line":1135,"column":204}}],"line":1135},"249":{"loc":{"start":{"line":1135,"column":85},"end":{"line":1135,"column":194}},"type":"binary-expr","locations":[{"start":{"line":1135,"column":85},"end":{"line":1135,"column":177}},{"start":{"line":1135,"column":181},"end":{"line":1135,"column":194}}],"line":1135},"250":{"loc":{"start":{"line":1135,"column":91},"end":{"line":1135,"column":167}},"type":"cond-expr","locations":[{"start":{"line":1135,"column":141},"end":{"line":1135,"column":147}},{"start":{"line":1135,"column":150},"end":{"line":1135,"column":167}}],"line":1135},"251":{"loc":{"start":{"line":1135,"column":91},"end":{"line":1135,"column":138}},"type":"binary-expr","locations":[{"start":{"line":1135,"column":91},"end":{"line":1135,"column":121}},{"start":{"line":1135,"column":125},"end":{"line":1135,"column":138}}],"line":1135},"252":{"loc":{"start":{"line":1140,"column":12},"end":{"line":1142,"column":13}},"type":"if","locations":[{"start":{"line":1140,"column":12},"end":{"line":1142,"column":13}},{"start":{"line":1140,"column":12},"end":{"line":1142,"column":13}}],"line":1140},"253":{"loc":{"start":{"line":1146,"column":24},"end":{"line":1146,"column":43}},"type":"default-arg","locations":[{"start":{"line":1146,"column":33},"end":{"line":1146,"column":43}}],"line":1146},"254":{"loc":{"start":{"line":1149,"column":26},"end":{"line":1149,"column":45}},"type":"default-arg","locations":[{"start":{"line":1149,"column":35},"end":{"line":1149,"column":45}}],"line":1149},"255":{"loc":{"start":{"line":1152,"column":28},"end":{"line":1152,"column":47}},"type":"default-arg","locations":[{"start":{"line":1152,"column":37},"end":{"line":1152,"column":47}}],"line":1152},"256":{"loc":{"start":{"line":1156,"column":8},"end":{"line":1159,"column":9}},"type":"if","locations":[{"start":{"line":1156,"column":8},"end":{"line":1159,"column":9}},{"start":{"line":1156,"column":8},"end":{"line":1159,"column":9}}],"line":1156}},"s":{"0":1,"1":328,"2":0,"3":326,"4":328,"5":328,"6":73,"7":0,"8":0,"9":0,"10":571,"11":326,"12":1,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":85,"41":85,"42":85,"43":85,"44":85,"45":85,"46":85,"47":85,"48":85,"49":85,"50":85,"51":85,"52":85,"53":85,"54":85,"55":0,"56":85,"57":85,"58":166,"59":0,"60":85,"61":85,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":2,"93":2,"94":2,"95":2,"96":2,"97":2,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":2,"112":2,"113":2,"114":2,"115":2,"116":2,"117":0,"118":0,"119":0,"120":0,"121":2,"122":2,"123":2,"124":2,"125":2,"126":2,"127":0,"128":0,"129":0,"130":0,"131":2,"132":2,"133":2,"134":2,"135":2,"136":2,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":4,"152":4,"153":4,"154":4,"155":4,"156":4,"157":0,"158":0,"159":0,"160":0,"161":2,"162":2,"163":2,"164":2,"165":2,"166":2,"167":0,"168":0,"169":0,"170":0,"171":6,"172":6,"173":6,"174":6,"175":6,"176":6,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":2,"187":2,"188":2,"189":2,"190":2,"191":2,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":5,"218":5,"219":5,"220":5,"221":5,"222":5,"223":5,"224":5,"225":5,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":5,"251":5,"252":5,"253":5,"254":5,"255":5,"256":5,"257":5,"258":5,"259":0,"260":0,"261":0,"262":4,"263":4,"264":4,"265":4,"266":4,"267":4,"268":4,"269":4,"270":4,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":4,"289":4,"290":4,"291":4,"292":4,"293":4,"294":4,"295":4,"296":4,"297":0,"298":0,"299":0,"300":0,"301":0,"302":0,"303":0,"304":0,"305":0,"306":0,"307":0,"308":0,"309":9,"310":9,"311":9,"312":9,"313":9,"314":9,"315":9,"316":9,"317":9,"318":0,"319":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"331":0,"332":0,"333":0,"334":0,"335":0,"336":6,"337":6,"338":6,"339":6,"340":6,"341":6,"342":6,"343":6,"344":6,"345":0,"346":0,"347":0,"348":0,"349":0,"350":0,"351":0,"352":0,"353":0,"354":0,"355":0,"356":0,"357":0,"358":0,"359":0,"360":0,"361":0,"362":8,"363":8,"364":8,"365":8,"366":8,"367":8,"368":8,"369":8,"370":8,"371":0,"372":0,"373":0,"374":0,"375":0,"376":0,"377":0,"378":0,"379":0,"380":0,"381":0,"382":0,"383":0,"384":0,"385":0,"386":0,"387":0,"388":0,"389":0,"390":0,"391":0,"392":0,"393":0,"394":0,"395":0,"396":0,"397":0,"398":0,"399":0,"400":0,"401":0,"402":0,"403":0,"404":0,"405":0,"406":0,"407":0,"408":0,"409":0,"410":0,"411":0,"412":0,"413":0,"414":0,"415":0,"416":0,"417":0,"418":0,"419":0,"420":0,"421":0,"422":0,"423":0,"424":0,"425":0,"426":0,"427":0,"428":0,"429":0,"430":0,"431":0,"432":0,"433":0,"434":0,"435":0,"436":0,"437":0,"438":0,"439":0,"440":0,"441":0,"442":0,"443":0,"444":0,"445":0,"446":0,"447":0,"448":0,"449":0,"450":0,"451":0,"452":0,"453":0,"454":0,"455":0,"456":0,"457":0,"458":0,"459":0,"460":0,"461":0,"462":0,"463":0,"464":2,"465":2,"466":2,"467":2,"468":2,"469":2,"470":2,"471":2,"472":2,"473":0,"474":0,"475":0,"476":0,"477":0,"478":0,"479":0,"480":0,"481":0,"482":0,"483":0,"484":0,"485":0,"486":0,"487":0,"488":0,"489":0,"490":0,"491":0,"492":0,"493":0,"494":0,"495":0,"496":0,"497":0,"498":0,"499":0,"500":0,"501":0,"502":0,"503":0,"504":0,"505":0,"506":0,"507":0,"508":0,"509":0,"510":0,"511":0,"512":0,"513":0,"514":0,"515":0,"516":0,"517":0,"518":0,"519":0,"520":0,"521":0,"522":2,"523":2,"524":2,"525":2,"526":2,"527":2,"528":0,"529":0,"530":0,"531":0,"532":0,"533":0,"534":0,"535":0,"536":0,"537":0,"538":0,"539":0,"540":0,"541":0,"542":0,"543":2,"544":2,"545":2,"546":2,"547":2,"548":2,"549":0,"550":0,"551":0,"552":0,"553":0,"554":0,"555":0,"556":0,"557":0,"558":0,"559":0,"560":0,"561":0,"562":0,"563":0,"564":0,"565":0,"566":0,"567":0,"568":0,"569":0,"570":0,"571":2,"572":2,"573":2,"574":2,"575":2,"576":2,"577":0,"578":0,"579":0,"580":0,"581":0,"582":0,"583":0,"584":0,"585":0,"586":0,"587":0,"588":0,"589":0,"590":2,"591":2,"592":2,"593":2,"594":2,"595":2,"596":0,"597":0,"598":0,"599":0,"600":0,"601":0,"602":0,"603":0,"604":0,"605":0,"606":0,"607":0,"608":0,"609":0,"610":0,"611":0,"612":0,"613":0,"614":0,"615":0,"616":0,"617":0,"618":0,"619":0,"620":0,"621":0,"622":0,"623":0,"624":0,"625":0,"626":0,"627":0,"628":0,"629":0,"630":0,"631":0,"632":0,"633":0,"634":83,"635":83,"636":83,"637":83,"638":83,"639":8,"640":8,"641":90,"642":75,"643":75,"644":2,"645":73,"646":73,"647":73,"648":0,"649":0,"650":0,"651":0,"652":0,"653":0,"654":0,"655":0,"656":0,"657":0,"658":0,"659":0,"660":1},"f":{"0":326,"1":328,"2":0,"3":326,"4":328,"5":0,"6":571,"7":0,"8":1,"9":85,"10":85,"11":85,"12":166,"13":0,"14":85,"15":85,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":2,"25":2,"26":2,"27":0,"28":0,"29":0,"30":0,"31":0,"32":2,"33":2,"34":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":0,"42":0,"43":0,"44":4,"45":4,"46":4,"47":2,"48":2,"49":2,"50":6,"51":6,"52":6,"53":0,"54":0,"55":2,"56":2,"57":2,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":5,"65":5,"66":5,"67":5,"68":5,"69":5,"70":4,"71":4,"72":4,"73":4,"74":4,"75":4,"76":9,"77":9,"78":9,"79":6,"80":6,"81":6,"82":8,"83":8,"84":8,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":2,"98":2,"99":2,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":2,"110":2,"111":2,"112":2,"113":2,"114":2,"115":0,"116":0,"117":0,"118":2,"119":2,"120":2,"121":2,"122":2,"123":2,"124":0,"125":0,"126":0,"127":0,"128":0,"129":83,"130":83,"131":90,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0},"b":{"0":[1,1,1],"1":[328,0],"2":[326,326],"3":[243,328],"4":[326,326],"5":[1,1,1],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[1,1,1],"13":[0,1],"14":[1,1],"15":[85,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[2,0],"26":[0,2],"27":[2,2],"28":[0,0],"29":[0,0],"30":[0,0],"31":[2,0],"32":[1,1],"33":[2,2],"34":[0,2],"35":[2,2],"36":[2,0],"37":[0,2],"38":[2,2],"39":[2,0],"40":[1,1],"41":[2,2],"42":[0,2],"43":[2,2],"44":[0,0],"45":[0,0],"46":[0,0],"47":[4,0],"48":[3,1],"49":[4,4],"50":[0,4],"51":[4,4],"52":[0,0],"53":[0,0],"54":[2,0],"55":[0,2],"56":[2,2],"57":[6,0],"58":[0,6],"59":[6,6],"60":[2,0],"61":[0,2],"62":[2,2],"63":[0,0],"64":[0,0],"65":[0,0],"66":[0,0],"67":[0,0],"68":[0,0],"69":[5,0],"70":[0,5],"71":[5,5],"72":[0,0],"73":[0,0],"74":[0,0],"75":[0,0],"76":[0,0],"77":[0,0],"78":[0,0],"79":[0,0],"80":[0,0],"81":[0,0],"82":[0,0],"83":[5,0],"84":[0,5],"85":[5,5],"86":[0,0],"87":[4,0],"88":[3,1],"89":[4,4],"90":[0,4],"91":[4,4],"92":[0,0],"93":[0,0],"94":[0,0],"95":[0,0],"96":[0,0],"97":[0,0],"98":[0,0],"99":[0,0],"100":[4,0],"101":[3,1],"102":[4,4],"103":[0,4],"104":[4,4],"105":[0,0],"106":[0,0],"107":[0,0],"108":[0,0],"109":[0,0],"110":[9,0],"111":[8,1],"112":[9,9],"113":[0,9],"114":[9,9],"115":[0,0],"116":[0,0],"117":[0,0],"118":[0,0],"119":[6,0],"120":[5,1],"121":[6,6],"122":[0,6],"123":[6,6],"124":[0,0],"125":[0,0],"126":[0,0],"127":[0,0],"128":[0,0],"129":[0,0],"130":[8,0],"131":[7,1],"132":[8,8],"133":[0,8],"134":[8,8],"135":[0,0],"136":[0,0],"137":[0,0],"138":[0,0],"139":[0,0],"140":[0,0],"141":[0,0],"142":[0,0],"143":[0,0],"144":[0,0],"145":[0,0],"146":[0,0],"147":[0,0],"148":[0,0],"149":[0,0],"150":[0,0],"151":[0,0],"152":[0,0],"153":[0,0],"154":[0,0],"155":[0,0],"156":[0,0],"157":[0,0],"158":[0,0],"159":[0,0],"160":[0,0],"161":[0,0],"162":[0,0],"163":[0,0],"164":[0,0],"165":[0,0],"166":[0,0],"167":[0,0],"168":[0,0],"169":[0,0],"170":[0,0],"171":[0,0],"172":[2,0],"173":[0,2],"174":[2,2],"175":[0,0],"176":[0,0],"177":[0,0],"178":[0,0],"179":[0,0],"180":[0,0],"181":[0,0],"182":[0,0],"183":[0,0],"184":[0,0],"185":[0,0],"186":[0,0],"187":[0,0],"188":[0,0],"189":[0,0],"190":[2,0],"191":[1,1],"192":[2,2],"193":[0,2],"194":[2,2],"195":[0,0],"196":[0,0],"197":[0,0],"198":[0,0],"199":[0,0],"200":[2,0],"201":[1,1],"202":[2,2],"203":[0,2],"204":[2,2],"205":[0,0],"206":[0,0],"207":[0,0],"208":[0,0],"209":[0,0],"210":[0,0],"211":[0,0],"212":[2,0],"213":[0,2],"214":[2,2],"215":[0,0],"216":[0,0],"217":[0,0],"218":[0,0],"219":[2,0],"220":[0,2],"221":[2,2],"222":[0,0],"223":[0,0],"224":[0,0],"225":[0,0],"226":[0,0],"227":[0,0],"228":[0,0],"229":[0,0],"230":[0,0],"231":[0,0],"232":[0,0],"233":[0,0],"234":[0,0],"235":[0,0],"236":[0,0],"237":[0,0],"238":[8,75],"239":[8,0],"240":[8,8],"241":[0,8],"242":[8,8],"243":[0,8],"244":[8,8],"245":[0,8],"246":[8,8],"247":[2,73],"248":[0,2],"249":[2,2],"250":[0,2],"251":[2,2],"252":[73,0],"253":[0],"254":[0],"255":[0],"256":[0,0]},"inputSourceMap":{"version":3,"file":"/app/modules/engine/src/index.ts","sources":["/app/modules/engine/src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { WithdrawCommitment } from \"@connext/vector-contracts\";\nimport { Vector } from \"@connext/vector-protocol\";\nimport {\n  ChainAddresses,\n  IChannelSigner,\n  IMessagingService,\n  IVectorProtocol,\n  Result,\n  EngineParams,\n  ChannelRpcMethodsResponsesMap,\n  IVectorEngine,\n  EngineEventMap,\n  IEngineStore,\n  EngineEvent,\n  EngineEvents,\n  ChannelRpcMethod,\n  IVectorChainService,\n  WITHDRAWAL_RECONCILED_EVENT,\n  ChannelRpcMethods,\n  IExternalValidation,\n  AUTODEPLOY_CHAIN_IDS,\n  EngineError,\n  VectorError,\n  jsonifyError,\n  MinimalTransaction,\n  WITHDRAWAL_RESOLVED_EVENT,\n  VectorErrorJson,\n} from \"@connext/vector-types\";\nimport { getRandomBytes32, getParticipant, hashWithdrawalQuote, delay } from \"@connext/vector-utils\";\nimport pino from \"pino\";\nimport Ajv from \"ajv\";\nimport { Evt } from \"evt\";\n\nimport { version } from \"../package.json\";\n\nimport { DisputeError, IsAliveError, RpcError } from \"./errors\";\nimport {\n  convertConditionalTransferParams,\n  convertResolveConditionParams,\n  convertSetupParams,\n  convertWithdrawParams,\n} from \"./paramConverter\";\nimport { setupEngineListeners } from \"./listeners\";\nimport { getEngineEvtContainer, withdrawRetryForTransferId, addTransactionToCommitment } from \"./utils\";\nimport { sendIsAlive } from \"./isAlive\";\n\nexport const ajv = new Ajv();\n\nexport type EngineEvtContainer = { [K in EngineEvent]: Evt<EngineEventMap[K]> };\n\nexport class VectorEngine implements IVectorEngine {\n  // Setup event container to emit events from vector\n  private readonly evts: EngineEvtContainer = getEngineEvtContainer();\n\n  private constructor(\n    private readonly signer: IChannelSigner,\n    private readonly messaging: IMessagingService,\n    private readonly store: IEngineStore,\n    private readonly vector: IVectorProtocol,\n    private readonly chainService: IVectorChainService,\n    private readonly chainAddresses: ChainAddresses,\n    private readonly logger: pino.BaseLogger,\n  ) {}\n\n  static async connect(\n    messaging: IMessagingService,\n    store: IEngineStore,\n    signer: IChannelSigner,\n    chainService: IVectorChainService,\n    chainAddresses: ChainAddresses,\n    logger: pino.BaseLogger,\n    skipCheckIn: boolean,\n    gasSubsidyPercentage: number,\n    validationService?: IExternalValidation,\n  ): Promise<VectorEngine> {\n    const vector = await Vector.connect(\n      messaging,\n      store,\n      signer,\n      chainService,\n      logger.child({ module: \"VectorProtocol\" }),\n      skipCheckIn,\n      validationService,\n    );\n    const engine = new VectorEngine(\n      signer,\n      messaging,\n      store,\n      vector,\n      chainService,\n      chainAddresses,\n      logger.child({ module: \"VectorEngine\" }),\n    );\n    await engine.setupListener(gasSubsidyPercentage);\n    logger.debug({}, \"Setup engine listeners\");\n    if (!skipCheckIn) {\n      sendIsAlive(engine.signer, engine.messaging, engine.store, engine.chainService, engine.logger);\n    } else {\n      logger.warn(\"Skipping isAlive broadcast because of skipCheckIn config\");\n    }\n    logger.info({ vector: vector.publicIdentifier }, \"Vector Engine connected 🚀!\");\n    return engine;\n  }\n\n  get publicIdentifier(): string {\n    return this.vector.publicIdentifier;\n  }\n\n  get signerAddress(): string {\n    return this.vector.signerAddress;\n  }\n\n  private async setupListener(gasSubsidyPercentage: number): Promise<void> {\n    await setupEngineListeners(\n      this.evts,\n      this.chainService,\n      this.vector,\n      this.messaging,\n      this.signer,\n      this.store,\n      this.chainAddresses,\n      this.logger,\n      this.setup.bind(this),\n      gasSubsidyPercentage,\n    );\n  }\n\n  private async getConfig(): Promise<\n    Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getConfig], EngineError>\n  > {\n    return Result.ok([\n      {\n        index: 0,\n        publicIdentifier: this.publicIdentifier,\n        signerAddress: this.signerAddress,\n        chainAddresses: this.chainAddresses,\n      },\n    ]);\n  }\n\n  private async getTransferQuote(\n    params: EngineParams.GetTransferQuote,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getTransferQuote], EngineError>> {\n    const validate = ajv.compile(EngineParams.GetTransferQuoteSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    const { routerIdentifier, ...message } = params;\n    return this.messaging.sendTransferQuoteMessage(Result.ok(message), routerIdentifier, this.publicIdentifier);\n  }\n\n  private async getWithdrawalQuote(\n    params: EngineParams.GetWithdrawalQuote,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getWithdrawalQuote], EngineError>> {\n    const validate = ajv.compile(EngineParams.GetWithdrawalQuoteSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    const channelRes = await this.getChannelState({ channelAddress: params.channelAddress });\n    if (channelRes.isError) {\n      return Result.fail(channelRes.getError()!);\n    }\n    const channel = channelRes.getValue();\n    if (!channel) {\n      return Result.fail(new RpcError(RpcError.reasons.ChannelNotFound, params.channelAddress, this.publicIdentifier));\n    }\n\n    if (this.publicIdentifier === channel.aliceIdentifier) {\n      try {\n        // return 0 for quoted fee if you are alice (since you are the submitter)\n        const quote = {\n          channelAddress: params.channelAddress,\n          amount: params.amount,\n          assetId: params.assetId,\n          fee: \"0\",\n          expiry: (Date.now() + 30_000).toString(),\n        };\n        const signature = await this.signer.signMessage(hashWithdrawalQuote(quote));\n        return Result.ok({ ...quote, signature });\n      } catch (e) {\n        return Result.fail(\n          new RpcError(RpcError.reasons.SigningFailed, params.channelAddress, this.publicIdentifier, {\n            signingError: jsonifyError(e),\n          }),\n        );\n      }\n    }\n\n    // you are not alice, send request to channel counterparty\n    return this.messaging.sendWithdrawalQuoteMessage(Result.ok(params), channel.aliceIdentifier, this.publicIdentifier);\n  }\n\n  private async getRouterConfig(\n    params: EngineParams.GetRouterConfig,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getRouterConfig], EngineError>> {\n    const validate = ajv.compile(EngineParams.GetRouterConfigSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    return this.messaging.sendRouterConfigMessage(Result.ok(undefined), params.routerIdentifier, this.publicIdentifier);\n  }\n\n  private async getStatus(): Promise<\n    Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getStatus], EngineError>\n  > {\n    const chainIds = Object.keys(this.chainAddresses).map((chainId) => parseInt(chainId));\n    const providerResponses = await Promise.all(chainIds.map((chainId) => this.chainService.getSyncing(chainId)));\n    const providerSyncing = Object.fromEntries(\n      chainIds.map((chainId, index) => {\n        const res = providerResponses[index];\n        let syncing:\n          | string\n          | boolean\n          | { startingBlock: string; currentBlock: string; highestBlock: string }\n          | undefined;\n        if (res.isError) {\n          syncing = res.getError()?.message;\n        } else {\n          syncing = res.getValue();\n        }\n        return [chainId, syncing];\n      }),\n    );\n    return Result.ok({\n      version,\n      publicIdentifier: this.publicIdentifier,\n      signerAddress: this.signerAddress,\n      providerSyncing,\n    });\n  }\n\n  private async getChannelState(\n    params: EngineParams.GetChannelState,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getChannelState], EngineError>> {\n    const validate = ajv.compile(EngineParams.GetChannelStateSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, params.channelAddress ?? \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    try {\n      const channel = await this.store.getChannelState(params.channelAddress);\n      return Result.ok(channel);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.StoreMethodFailed, params.channelAddress, this.publicIdentifier, {\n          storeMethod: \"getChannelState\",\n          storeError: e.message,\n          params,\n        }),\n      );\n    }\n  }\n\n  private async getTransferState(\n    params: EngineParams.GetTransferState,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getTransferState], EngineError>> {\n    const validate = ajv.compile(EngineParams.GetTransferStateSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    try {\n      const transfer = await this.store.getTransferState(params.transferId);\n      return Result.ok(transfer);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.StoreMethodFailed, \"\", this.publicIdentifier, {\n          storeMethod: \"getTransferState\",\n          storeError: e.message,\n          params,\n        }),\n      );\n    }\n  }\n\n  private async getActiveTransfers(\n    params: EngineParams.GetActiveTransfers,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getActiveTransfers], EngineError>> {\n    const validate = ajv.compile(EngineParams.GetActiveTransfersSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, params.channelAddress ?? \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    try {\n      const transfers = await this.store.getActiveTransfers(params.channelAddress);\n      return Result.ok(transfers);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.StoreMethodFailed, params.channelAddress, this.publicIdentifier, {\n          storeMethod: \"getActiveTransfers\",\n          storeError: e.message,\n        }),\n      );\n    }\n  }\n\n  private async getTransfers(\n    params: EngineParams.GetTransfers,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getTransfers], EngineError>> {\n    const validate = ajv.compile(EngineParams.GetTransfersSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    try {\n      const transfers = await this.store.getTransfers(params);\n      return Result.ok(transfers);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.StoreMethodFailed, \"\", this.publicIdentifier, {\n          storeMethod: \"getTransfers\",\n          storeError: e.message,\n        }),\n      );\n    }\n  }\n\n  private async getTransferStateByRoutingId(\n    params: EngineParams.GetTransferStateByRoutingId,\n  ): Promise<\n    Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getTransferStateByRoutingId], EngineError>\n  > {\n    const validate = ajv.compile(EngineParams.GetTransferStateByRoutingIdSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, params.channelAddress ?? \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    try {\n      const transfer = await this.store.getTransferByRoutingId(params.channelAddress, params.routingId);\n      return Result.ok(transfer);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.StoreMethodFailed, params.channelAddress ?? \"\", this.publicIdentifier, {\n          storeMethod: \"getTransferByRoutingId\",\n          storeError: e.message,\n        }),\n      );\n    }\n  }\n\n  private async getTransferStatesByRoutingId(\n    params: EngineParams.GetTransferStatesByRoutingId,\n  ): Promise<\n    Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getTransferStatesByRoutingId], EngineError>\n  > {\n    const validate = ajv.compile(EngineParams.GetTransferStatesByRoutingIdSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    try {\n      const transfers = await this.store.getTransfersByRoutingId(params.routingId);\n      return Result.ok(transfers);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.StoreMethodFailed, \"\", this.publicIdentifier, {\n          storeMethod: \"getTransfersByRoutingId\",\n          storeError: e.message,\n        }),\n      );\n    }\n  }\n\n  private async getChannelStateByParticipants(\n    params: EngineParams.GetChannelStateByParticipants,\n  ): Promise<\n    Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getChannelStateByParticipants], EngineError>\n  > {\n    const validate = ajv.compile(EngineParams.GetChannelStateByParticipantsSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    try {\n      const channel = await this.store.getChannelStateByParticipants(params.alice, params.bob, params.chainId);\n      return Result.ok(channel);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.StoreMethodFailed, \"\", this.publicIdentifier, {\n          storeMethod: \"getChannelStateByParticipants\",\n          storeError: e.message,\n          params,\n        }),\n      );\n    }\n  }\n\n  private async getChannelStates(): Promise<\n    Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getChannelStates], EngineError>\n  > {\n    try {\n      const channel = await this.store.getChannelStates();\n      return Result.ok(channel);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.StoreMethodFailed, \"\", this.publicIdentifier, {\n          storeMethod: \"getChannelStates\",\n          storeError: e.message,\n        }),\n      );\n    }\n  }\n\n  private async getRegisteredTransfers(\n    params: EngineParams.GetRegisteredTransfers,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getRegisteredTransfers], EngineError>> {\n    const validate = ajv.compile(EngineParams.GetRegisteredTransfersSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    const { chainId } = params;\n    const result = await this.chainService.getRegisteredTransfers(\n      this.chainAddresses[chainId].transferRegistryAddress,\n      chainId,\n    );\n    return result;\n  }\n\n  private async getWithdrawalCommitment(\n    params: EngineParams.GetWithdrawalCommitment,\n  ): Promise<\n    Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getWithdrawalCommitment], EngineError>\n  > {\n    const validate = ajv.compile(EngineParams.GetWithdrawalCommitmentSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    const { transferId } = params;\n    try {\n      const result = await this.store.getWithdrawalCommitment(transferId);\n      return Result.ok(result);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.StoreMethodFailed, \"\", this.publicIdentifier, {\n          storeMethod: \"getWithdrawalCommitment\",\n          error: jsonifyError(e),\n        }),\n      );\n    }\n  }\n\n  private async getWithdrawalCommitmentByTransactionHash(\n    params: EngineParams.GetWithdrawalCommitmentByTransactionHash,\n  ): Promise<\n    Result<\n      ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getWithdrawalCommitmentByTransactionHash],\n      EngineError\n    >\n  > {\n    const validate = ajv.compile(EngineParams.GetWithdrawalCommitmentByTransactionHashSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    const { transactionHash } = params;\n    try {\n      const result = await this.store.getWithdrawalCommitmentByTransactionHash(transactionHash);\n      return Result.ok(result);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.StoreMethodFailed, \"\", this.publicIdentifier, {\n          storeMethod: \"getWithdrawalCommitmentByTransactionHash\",\n          error: jsonifyError(e),\n        }),\n      );\n    }\n  }\n\n  private async setup(\n    params: EngineParams.Setup,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_setup], VectorError>> {\n    const method = \"setup\";\n    const methodId = getRandomBytes32();\n    this.logger.info({ params, method, methodId }, \"Method started\");\n    const validate = ajv.compile(EngineParams.SetupSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    const chainProviders = this.chainService.getChainProviders();\n    if (chainProviders.isError) {\n      return Result.fail(chainProviders.getError()!);\n    }\n\n    const setupParamsResult = await convertSetupParams(params, this.chainAddresses);\n    if (setupParamsResult.isError) {\n      return Result.fail(setupParamsResult.getError()!);\n    }\n    const setupRes = await this.vector.setup(setupParamsResult.getValue());\n\n    if (setupRes.isError) {\n      return Result.fail(setupRes.getError()!);\n    }\n\n    const channel = setupRes.getValue();\n    if (this.signerAddress === channel.bob) {\n      return setupRes;\n    }\n\n    // If it is alice && chain id is in autodeployable chains, deploy contract\n    if (!AUTODEPLOY_CHAIN_IDS.includes(channel.networkContext.chainId)) {\n      return setupRes;\n    }\n\n    this.logger.info(\n      { method, chainId: channel.networkContext.chainId, channel: channel.channelAddress },\n      \"Deploying channel multisig\",\n    );\n\n    const deployRes = await this.chainService.sendDeployChannelTx(channel);\n    if (deployRes.isError) {\n      const err = deployRes.getError();\n      this.logger.error(\n        {\n          ...(err?.context ?? {}),\n          chainId: channel.networkContext.chainId,\n          channel: channel.channelAddress,\n          error: deployRes.getError()!.message,\n        },\n        \"Failed to deploy channel multisig\",\n      );\n      return setupRes;\n    }\n    const receipt = deployRes.getValue();\n    this.logger.debug({ chainId: channel.networkContext.chainId, hash: receipt.transactionHash }, \"Deploy tx mined\");\n    this.logger.info(\n      {\n        result: setupRes.isError ? jsonifyError(setupRes.getError()!) : setupRes.getValue().channelAddress,\n        method,\n        methodId,\n      },\n      \"Method complete\",\n    );\n    return setupRes;\n  }\n\n  private async requestSetup(params: EngineParams.Setup): Promise<Result<{ channelAddress: string }, EngineError>> {\n    const method = \"requestSetup\";\n    const methodId = getRandomBytes32();\n    this.logger.info({ params, method, methodId }, \"Method started\");\n    const validate = ajv.compile(EngineParams.SetupSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    const res = await this.messaging.sendSetupMessage(\n      Result.ok(params),\n      params.counterpartyIdentifier,\n      this.publicIdentifier,\n    );\n    this.logger.info(\n      { result: res.isError ? jsonifyError(res.getError()!) : res.getValue().channelAddress, method, methodId },\n      \"Method complete\",\n    );\n    return res;\n  }\n\n  private async deposit(\n    params: EngineParams.Deposit,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_deposit], EngineError>> {\n    const method = \"deposit\";\n    const methodId = getRandomBytes32();\n    this.logger.info({ params, method, methodId }, \"Method started\");\n    const validate = ajv.compile(EngineParams.DepositSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, params.channelAddress ?? \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    // NOTE: There is a race-condition for deposits because the onchain process\n    // is out-of-band of the protocol. For instance:\n    // 1. Alice deposits 5 onchain\n    // 2a. Alice sends single-signed update where she has reconciled the 5\n    // 2b. Bob deposits 3 onchain\n    // 3. Bob receives Alice's signature, and attempts to reconcile on their\n    //    own. Bob reconciles 8 and fails to recover Alice's signature properly\n    //    leaving all 8 out of the channel.\n\n    // This race condition should be handled by the protocol retries\n    const timeout = 500;\n    let depositRes = await this.vector.deposit(params);\n    let count = 1;\n    for (const _ of Array(3).fill(0)) {\n      // If its not an error, do not retry\n      if (!depositRes.isError) {\n        break;\n      }\n      const error = depositRes.getError()!;\n      // IFF deposit fails because you or the counterparty fails to recover\n      // signatures, retry\n      // This should be the message from *.reasons.BadSignatures in the protocol\n      // errors\n      const recoveryErr = \"Could not recover signers\";\n      const recoveryFailed = error.message === recoveryErr || error.context?.counterpartyError?.message === recoveryErr;\n\n      if (!recoveryFailed) {\n        break;\n      }\n      this.logger.warn({ attempt: count, channelAddress: params.channelAddress }, \"Retrying deposit reconciliation\");\n      depositRes = await this.vector.deposit(params);\n      count++;\n      await delay(timeout);\n    }\n    this.logger.info(\n      {\n        result: depositRes.isError ? jsonifyError(depositRes.getError()!) : depositRes.getValue().channelAddress,\n        method,\n        methodId,\n      },\n      \"Method complete\",\n    );\n\n    return depositRes;\n  }\n\n  private async requestCollateral(params: EngineParams.RequestCollateral): Promise<Result<undefined, EngineError>> {\n    const method = \"requestCollateral\";\n    const methodId = getRandomBytes32();\n    this.logger.info({ params, method, methodId }, \"Method started\");\n    const validate = ajv.compile(EngineParams.RequestCollateralSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, params.channelAddress ?? \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    const channelRes = await this.getChannelState({ channelAddress: params.channelAddress });\n    if (channelRes.isError) {\n      return Result.fail(channelRes.getError()!);\n    }\n    const channel = channelRes.getValue();\n    if (!channel) {\n      return Result.fail(new RpcError(RpcError.reasons.ChannelNotFound, params.channelAddress, this.publicIdentifier));\n    }\n\n    const participant = getParticipant(channel, this.publicIdentifier);\n    if (!participant) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.SignerNotInChannel, channel.channelAddress, this.publicIdentifier, {\n          alice: channel.aliceIdentifier,\n          bob: channel.bobIdentifier,\n          signer: this.publicIdentifier,\n        }),\n      );\n    }\n\n    const request = await this.messaging.sendRequestCollateralMessage(\n      Result.ok(params),\n      participant === \"alice\" ? channel.bobIdentifier : channel.aliceIdentifier,\n      this.publicIdentifier,\n    );\n    this.logger.info(\n      { result: request.isError ? jsonifyError(request.getError()!) : request.getValue(), method, methodId },\n      \"Method complete\",\n    );\n    return request as Result<undefined, EngineError>;\n  }\n\n  private async createTransfer(\n    params: EngineParams.ConditionalTransfer,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_createTransfer], VectorError>> {\n    const method = \"createTransfer\";\n    const methodId = getRandomBytes32();\n    this.logger.info({ params, method, methodId }, \"Method started\");\n    const validate = ajv.compile(EngineParams.ConditionalTransferSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, params.channelAddress ?? \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    const channelRes = await this.getChannelState({ channelAddress: params.channelAddress });\n    if (channelRes.isError) {\n      return Result.fail(channelRes.getError()!);\n    }\n    const channel = channelRes.getValue();\n    if (!channel) {\n      return Result.fail(new RpcError(RpcError.reasons.ChannelNotFound, params.channelAddress, this.publicIdentifier));\n    }\n    this.logger.info({ channel, method, methodId }, \"Pre-transfer channel\");\n\n    // First, get translated `create` params using the passed in conditional transfer ones\n    const createResult = await convertConditionalTransferParams(\n      params,\n      this.signer,\n      channel,\n      this.chainService,\n      this.messaging,\n    );\n    if (createResult.isError) {\n      return Result.fail(createResult.getError()!);\n    }\n    const createParams = createResult.getValue();\n    this.logger.info({ transferParams: createParams, method, methodId }, \"Created conditional transfer params\");\n    const protocolRes = await this.vector.create(createParams);\n    if (protocolRes.isError) {\n      return Result.fail(protocolRes.getError()!);\n    }\n    const res = protocolRes.getValue();\n    this.logger.info({ channelAddress: res.channelAddress, method, methodId }, \"Method complete\");\n    return Result.ok(res);\n  }\n\n  private async resolveTransfer(\n    params: EngineParams.ResolveTransfer,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_resolveTransfer], EngineError>> {\n    const method = \"resolveTransfer\";\n    const methodId = getRandomBytes32();\n    this.logger.info({ params, method, methodId }, \"Method started\");\n    const validate = ajv.compile(EngineParams.ResolveTransferSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, params.channelAddress ?? \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    const transferRes = await this.getTransferState({ transferId: params.transferId });\n    if (transferRes.isError) {\n      return Result.fail(transferRes.getError()!);\n    }\n    const transfer = transferRes.getValue();\n    if (!transfer) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.TransferNotFound, params.channelAddress ?? \"\", this.publicIdentifier, {\n          transferId: params.transferId,\n        }),\n      );\n    }\n    this.logger.info({ transfer, method, methodId }, \"Transfer pre-resolve\");\n\n    // First, get translated `create` params using the passed in conditional transfer ones\n    const resolveResult = convertResolveConditionParams(params, transfer);\n    if (resolveResult.isError) {\n      return Result.fail(resolveResult.getError()!);\n    }\n    const resolveParams = resolveResult.getValue();\n    const protocolRes = await this.vector.resolve(resolveParams);\n    if (protocolRes.isError) {\n      return Result.fail(protocolRes.getError()!);\n    }\n    const res = protocolRes.getValue();\n    this.logger.info({ channelAddress: res.channelAddress, method, methodId }, \"Method complete\");\n    return Result.ok(res);\n  }\n\n  private async withdraw(\n    params: EngineParams.Withdraw,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_withdraw], EngineError>> {\n    const method = \"withdraw\";\n    const methodId = getRandomBytes32();\n    this.logger.info({ params, method, methodId }, \"Method started\");\n    const validate = ajv.compile(EngineParams.WithdrawSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, params.channelAddress ?? \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    const channelRes = await this.getChannelState({ channelAddress: params.channelAddress });\n    if (channelRes.isError) {\n      return Result.fail(channelRes.getError()!);\n    }\n    const channel = channelRes.getValue();\n    if (!channel) {\n      return Result.fail(new RpcError(RpcError.reasons.ChannelNotFound, params.channelAddress, this.publicIdentifier));\n    }\n\n    // First, get translated `create` params from withdraw\n    const createResult = await convertWithdrawParams(\n      params,\n      this.signer,\n      channel,\n      this.chainAddresses,\n      this.chainService,\n      this.messaging,\n    );\n    if (createResult.isError) {\n      return Result.fail(createResult.getError()!);\n    }\n    const createParams = createResult.getValue();\n    const initiatorSubmits = createParams.meta.initiatorSubmits ?? false;\n\n    // set up event listeners before sending request\n    const timeout = 300_000;\n    const resolved = (_transferId: string) =>\n      this.evts[WITHDRAWAL_RESOLVED_EVENT].waitFor(\n        (data) => data.channelAddress === params.channelAddress && data.transfer.transferId === _transferId,\n        timeout,\n      );\n    const reconciled = (_transferId: string) =>\n      this.evts[WITHDRAWAL_RECONCILED_EVENT].waitFor(\n        (data) => data.channelAddress === params.channelAddress && data.transferId === _transferId,\n        timeout,\n      );\n\n    // create withdrawal transfer\n    const protocolRes = await this.vector.create(createParams);\n    if (protocolRes.isError) {\n      return Result.fail(protocolRes.getError()!);\n    }\n    const res = protocolRes.getValue();\n    const transferId = res.latestUpdate.details.transferId;\n    this.logger.info({ channelAddress: params.channelAddress, transferId }, \"Withdraw transfer created\");\n\n    let transactionHash: string | undefined;\n    let transaction: MinimalTransaction | undefined;\n    try {\n      // wait for resolution either way\n      const _resolved = await resolved(transferId);\n\n      // if we arent explicitly submitting, wait for counterparty to submit\n      if (!initiatorSubmits) {\n        const _reconciled = await reconciled(transferId);\n        transactionHash = typeof _reconciled === \"object\" ? _reconciled.transactionHash : undefined;\n      }\n      transaction = _resolved.transaction;\n    } catch (e) {\n      this.logger.warn(\n        { channelAddress: params.channelAddress, transferId, timeout, initiatorSubmits },\n        \"Withdraw tx not processed properly\",\n      );\n    }\n    if (!transaction) {\n      // try to get from store\n      const commitment = await this.store.getWithdrawalCommitment(transferId);\n      if (!commitment) {\n        return Result.fail(\n          new RpcError(RpcError.reasons.WithdrawResolutionFailed, params.channelAddress, this.publicIdentifier, {\n            transferId,\n          }),\n        );\n      }\n\n      transaction = (await WithdrawCommitment.fromJson(commitment)).getSignedTransaction();\n    }\n\n    this.logger.info(\n      { channelAddress: res.channelAddress, method, methodId, transactionHash, transaction },\n      \"Method complete\",\n    );\n    return Result.ok({ channel: res, transactionHash, transaction: transaction! });\n  }\n\n  private async withdrawRetry(\n    params: EngineParams.WithdrawRetry,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_withdrawRetry], EngineError>> {\n    const method = \"withdrawRetry\";\n    const methodId = getRandomBytes32();\n    this.logger.info({ params, method, methodId }, \"Method started\");\n    const validate = ajv.compile(EngineParams.WithdrawRetrySchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, params.channelAddress ?? \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    const channelRes = await this.getChannelState({ channelAddress: params.channelAddress });\n    if (channelRes.isError) {\n      return Result.fail(channelRes.getError()!);\n    }\n    const channel = channelRes.getValue();\n    if (!channel) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.ChannelNotFound, params.channelAddress, this.publicIdentifier, {\n          transferId: params.transferId,\n        }),\n      );\n    }\n\n    const res = await withdrawRetryForTransferId(\n      params.transferId,\n      channel,\n      this.store,\n      this.chainService,\n      this.logger,\n      this.messaging,\n      this.publicIdentifier,\n    );\n\n    if (res.isError) {\n      return Result.fail(res.getError()!);\n    }\n\n    const withdrawRetryRes = res.getValue();\n\n    this.logger.info(\n      {\n        channel: channel,\n        method,\n        methodId,\n        txHash: withdrawRetryRes.transactionHash,\n        channelAddress: withdrawRetryRes.channelAddress,\n      },\n      \"Method complete\",\n    );\n\n    return Result.ok(withdrawRetryRes);\n  }\n\n  private async addTransactionToCommitment(\n    params: EngineParams.AddTransactionToCommitment,\n  ): Promise<\n    Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_addTransactionToCommitment], EngineError>\n  > {\n    const method = \"addTransactionToCommitment\";\n    const methodId = getRandomBytes32();\n    this.logger.info({ params, method, methodId }, \"Method started\");\n    const validate = ajv.compile(EngineParams.AddTransactionToCommitmentSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, params.channelAddress ?? \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    const channelRes = await this.getChannelState({ channelAddress: params.channelAddress });\n    if (channelRes.isError) {\n      return Result.fail(channelRes.getError()!);\n    }\n    const channel = channelRes.getValue();\n    if (!channel) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.ChannelNotFound, params.channelAddress, this.publicIdentifier, {\n          transferId: params.transferId,\n        }),\n      );\n    }\n\n    const json = await this.store.getWithdrawalCommitment(params.transferId);\n    if (!json) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.WithdrawResolutionFailed, channel.channelAddress, this.publicIdentifier ?? \"\", {\n          transferId: params.transferId,\n        }),\n      );\n    }\n\n    if (json.transactionHash) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.TransactionFound, channel.channelAddress, this.publicIdentifier ?? \"\", {\n          transferId: params.transferId,\n          transactionHash: json.transactionHash,\n        }),\n      );\n    }\n\n    const commitment = await WithdrawCommitment.fromJson(json);\n\n    if (!json.bobSignature || !json.aliceSignature) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.CommitmentSingleSigned, channel.channelAddress, this.publicIdentifier ?? \"\", {\n          transferId: params.transferId,\n        }),\n      );\n    }\n\n    await addTransactionToCommitment(\n      params.transactionHash,\n      params.transferId,\n      commitment,\n      this.messaging,\n      channel,\n      this.store,\n      this.publicIdentifier,\n    );\n    return Result.ok(undefined);\n  }\n\n  private async decrypt(encrypted: string): Promise<Result<string, EngineError>> {\n    const method = \"decrypt\";\n    const methodId = getRandomBytes32();\n    this.logger.info({ encrypted, method, methodId }, \"Method started\");\n    try {\n      const res = await this.signer.decrypt(encrypted);\n      this.logger.info({ res, method, methodId }, \"Method complete\");\n      return Result.ok(res);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.DecryptFailed, \"\", this.publicIdentifier, {\n          decryptError: e.message,\n        }),\n      );\n    }\n  }\n\n  private async signUtilityMessage(params: EngineParams.SignUtilityMessage): Promise<Result<string, EngineError>> {\n    const method = \"signUtilityMessage\";\n    const methodId = getRandomBytes32();\n    this.logger.info({ params, method, methodId }, \"Method started\");\n    const validate = ajv.compile(EngineParams.SignUtilityMessageSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    try {\n      const sig = await this.signer.signUtilityMessage(params.message);\n      this.logger.info({ sig, method, methodId }, \"Method complete\");\n      return Result.ok(sig);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.UtilitySigningFailed, \"\", this.publicIdentifier, {\n          signingError: e.message,\n        }),\n      );\n    }\n  }\n\n  private async sendIsAlive(\n    params: EngineParams.SendIsAlive,\n  ): Promise<Result<{ channelAddress: string }, EngineError>> {\n    const method = \"sendIsAlive\";\n    const methodId = getRandomBytes32();\n    this.logger.info({ params, method, methodId }, \"Method started\");\n    const validate = ajv.compile(EngineParams.SendIsAliveSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, params.channelAddress ?? \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    try {\n      const channel = await this.store.getChannelState(params.channelAddress);\n      if (!channel) {\n        return Result.fail(\n          new IsAliveError(IsAliveError.reasons.ChannelNotFound, params.channelAddress, this.signer.publicIdentifier),\n        );\n      }\n      const counterparty = this.signer.address === channel.alice ? channel.bobIdentifier : channel.aliceIdentifier;\n      const res = await this.messaging.sendIsAliveMessage(\n        Result.ok(params),\n        counterparty,\n        this.signer.publicIdentifier,\n      );\n      this.logger.info(\n        { result: res.isError ? jsonifyError(res.getError()!) : res.getValue().channelAddress, method, methodId },\n        \"Method complete\",\n      );\n      return res;\n    } catch (e) {\n      return Result.fail(\n        new IsAliveError(IsAliveError.reasons.Unknown, params.channelAddress, this.signer.publicIdentifier, {\n          isAliveError: e.message,\n        }),\n      );\n    }\n  }\n\n  // RESTORE STATE\n  // NOTE: this is not added to the protocol queue. That is because if your\n  // channel needs to be restored, any updates you are sent or try to send\n  // will fail until your store is properly updated. The failures create\n  // a natural lock. However, it is due to these failures that the protocol\n  // methods are retried.\n  private async restoreState(\n    params: EngineParams.RestoreState,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[\"chan_restoreState\"], EngineError>> {\n    const method = \"restoreState\";\n    const methodId = getRandomBytes32();\n    this.logger.info({ params, method, methodId }, \"Method started\");\n    const validate = ajv.compile(EngineParams.RestoreStateSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    // Request protocol restore\n    const restoreResult = await this.vector.restoreState(params);\n    if (restoreResult.isError) {\n      return Result.fail(restoreResult.getError()!);\n    }\n\n    const channel = restoreResult.getValue();\n\n    // Post to evt\n    this.evts[EngineEvents.RESTORE_STATE_EVENT].post({\n      channelAddress: channel.channelAddress,\n      aliceIdentifier: channel.aliceIdentifier,\n      bobIdentifier: channel.bobIdentifier,\n      chainId: channel.networkContext.chainId,\n    });\n\n    this.logger.info(\n      {\n        channel: channel.channelAddress,\n        method,\n        methodId,\n      },\n      \"Method complete\",\n    );\n    return Result.ok(channel);\n  }\n\n  // DISPUTE METHODS\n  private async getDispute(\n    params: EngineParams.GetChannelDispute,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getDispute], EngineError>> {\n    const validate = ajv.compile(EngineParams.GetChannelDisputeSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    try {\n      const dispute = await this.store.getChannelDispute(params.channelAddress);\n      return Result.ok(dispute);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.StoreMethodFailed, params.channelAddress, this.publicIdentifier, { params }),\n      );\n    }\n  }\n\n  private async dispute(\n    params: EngineParams.DisputeChannel,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_dispute], EngineError>> {\n    const validate = ajv.compile(EngineParams.DisputeChannelSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, params.channelAddress ?? \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    const channel = await this.getChannelState({ channelAddress: params.channelAddress });\n    if (channel.isError) {\n      return Result.fail(channel.getError()!);\n    }\n    const state = channel.getValue();\n    if (!state) {\n      return Result.fail(\n        new DisputeError(DisputeError.reasons.ChannelNotFound, params.channelAddress, this.publicIdentifier),\n      );\n    }\n    const disputeRes = await this.chainService.sendDisputeChannelTx(state);\n    if (disputeRes.isError) {\n      return Result.fail(disputeRes.getError()!);\n    }\n\n    // save the dispute\n    const dispute = await this.chainService.getChannelDispute(state.channelAddress, state.networkContext.chainId);\n    if (!dispute.isError && !!dispute.getValue()) {\n      try {\n        await this.store.saveChannelDispute(state.channelAddress, dispute.getValue()!);\n      } catch (e) {\n        this.logger.error({ ...jsonifyError(e) }, \"Failed to save channel dispute\");\n      }\n    }\n\n    return Result.ok({ transactionHash: disputeRes.getValue().transactionHash });\n  }\n\n  private async defund(\n    params: EngineParams.DefundChannel,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_defund], EngineError>> {\n    const validate = ajv.compile(EngineParams.DefundChannelSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, params.channelAddress ?? \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    const channel = await this.getChannelState({ channelAddress: params.channelAddress });\n    if (channel.isError) {\n      return Result.fail(channel.getError()!);\n    }\n    const state = channel.getValue();\n    if (!state) {\n      return Result.fail(\n        new DisputeError(DisputeError.reasons.ChannelNotFound, params.channelAddress, this.publicIdentifier),\n      );\n    }\n    if (!state.inDispute) {\n      return Result.fail(\n        new DisputeError(DisputeError.reasons.ChannelNotInDispute, params.channelAddress, this.publicIdentifier),\n      );\n    }\n    const disputeRes = await this.chainService.sendDefundChannelTx(state);\n    if (disputeRes.isError) {\n      return Result.fail(disputeRes.getError()!);\n    }\n\n    return Result.ok({ transactionHash: disputeRes.getValue().transactionHash });\n  }\n\n  private async getTransferDispute(\n    params: EngineParams.GetTransferDispute,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_getTransferDispute], EngineError>> {\n    const validate = ajv.compile(EngineParams.DisputeTransferSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    try {\n      const dispute = await this.store.getTransferDispute(params.transferId);\n      return Result.ok(dispute);\n    } catch (e) {\n      return Result.fail(new RpcError(RpcError.reasons.StoreMethodFailed, \"\", this.publicIdentifier, { params }));\n    }\n  }\n\n  private async disputeTransfer(\n    params: EngineParams.DisputeTransfer,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_disputeTransfer], EngineError>> {\n    const validate = ajv.compile(EngineParams.DisputeTransferSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n    const transferRes = await this.getTransferState(params);\n    if (transferRes.isError) {\n      return Result.fail(transferRes.getError()!);\n    }\n    const transfer = transferRes.getValue();\n    if (!transfer) {\n      return Result.fail(\n        new DisputeError(DisputeError.reasons.TransferNotFound, \"\", this.publicIdentifier, {\n          transferId: params.transferId,\n        }),\n      );\n    }\n\n    // Get active transfers\n    const activeRes = await this.getActiveTransfers({ channelAddress: transfer.channelAddress });\n    if (activeRes.isError) {\n      return Result.fail(activeRes.getError()!);\n    }\n    const disputeRes = await this.chainService.sendDisputeTransferTx(transfer.transferId, activeRes.getValue());\n    if (disputeRes.isError) {\n      return Result.fail(disputeRes.getError()!);\n    }\n    return Result.ok({ transactionHash: disputeRes.getValue().transactionHash });\n  }\n\n  private async defundTransfer(\n    params: EngineParams.DefundTransfer,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_defundTransfer], EngineError>> {\n    const validate = ajv.compile(EngineParams.DefundTransferSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    const transferRes = await this.getTransferState(params);\n    if (transferRes.isError) {\n      return Result.fail(transferRes.getError()!);\n    }\n    const transfer = transferRes.getValue();\n    if (!transfer) {\n      return Result.fail(\n        new DisputeError(DisputeError.reasons.TransferNotFound, \"\", this.publicIdentifier, {\n          transferId: params.transferId,\n        }),\n      );\n    }\n\n    if (!transfer.inDispute) {\n      return Result.fail(\n        new DisputeError(DisputeError.reasons.TransferNotDisputed, transfer.channelAddress, this.publicIdentifier, {\n          transferId: transfer.transferId,\n        }),\n      );\n    }\n\n    const defundRes = await this.chainService.sendDefundTransferTx(transfer);\n    if (defundRes.isError) {\n      return Result.fail(defundRes.getError()!);\n    }\n    return Result.ok({ transactionHash: defundRes.getValue().transactionHash });\n  }\n\n  private async exit(\n    params: EngineParams.ExitChannel,\n  ): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_exit], EngineError>> {\n    const validate = ajv.compile(EngineParams.ExitChannelSchema);\n    const valid = validate(params);\n    if (!valid) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.InvalidParams, \"\", this.publicIdentifier, {\n          invalidParamsError: validate.errors?.map((e) => e.message).join(\",\"),\n          invalidParams: params,\n        }),\n      );\n    }\n\n    const channel = await this.getChannelState({ channelAddress: params.channelAddress });\n    if (channel.isError) {\n      return Result.fail(channel.getError()!);\n    }\n    const state = channel.getValue();\n    if (!state) {\n      return Result.fail(\n        new DisputeError(DisputeError.reasons.ChannelNotFound, params.channelAddress, this.publicIdentifier),\n      );\n    }\n    if (!state.inDispute) {\n      return Result.fail(\n        new DisputeError(DisputeError.reasons.ChannelNotInDispute, params.channelAddress, this.publicIdentifier),\n      );\n    }\n\n    const results: { assetId: string; transactionHash?: string; error?: VectorErrorJson }[] = [];\n    const recipient = params.recipient ?? this.signerAddress;\n    const owner = params.owner ?? this.signerAddress;\n    for (const assetId of params.assetIds) {\n      const result = await this.chainService.sendExitChannelTx(\n        state.channelAddress,\n        state.networkContext.chainId,\n        assetId,\n        owner,\n        recipient,\n      );\n      results.push({\n        assetId,\n        transactionHash: result.isError ? undefined : result.getValue().transactionHash,\n        error: result.isError ? jsonifyError(result.getError()!) : undefined,\n      });\n    }\n\n    return Result.ok(results);\n  }\n\n  // NOTE: no need to retry here because this method is not relevant\n  // to restoreState conditions\n  private async syncDisputes(): Promise<Result<void, EngineError>> {\n    try {\n      await this.vector.syncDisputes();\n      return Result.ok(undefined);\n    } catch (e) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.ProtocolMethodFailed, \"\", this.publicIdentifier, {\n          method: \"syncDisputes\",\n          error: jsonifyError(e),\n        }),\n      );\n    }\n  }\n\n  // JSON RPC interface -- this will accept:\n  // - \"chan_deposit\"\n  // - \"chan_createTransfer\"\n  // - \"chan_resolveTransfer\"\n  // - etc.\n  public async request<T extends ChannelRpcMethod>(\n    payload: EngineParams.RpcRequest,\n  ): Promise<ChannelRpcMethodsResponsesMap[T]> {\n    this.logger.debug({ payload, method: \"request\" }, \"Method called\");\n    const validate = ajv.compile(EngineParams.RpcRequestSchema);\n    const valid = validate(payload);\n    if (!valid) {\n      this.logger.error({ method: \"request\", payload, ...(validate.errors ?? {}) });\n      throw new RpcError(\n        RpcError.reasons.InvalidRpcSchema,\n        payload.params?.channelAddress ?? \"\",\n        this.publicIdentifier,\n        {\n          invalidRpcRequest: payload,\n          invalidRpcRequestError: validate.errors?.map((err) => err.message).join(\",\"),\n        },\n      );\n    }\n\n    const methodName = payload.method.replace(\"chan_\", \"\");\n    if (typeof this[methodName] !== \"function\") {\n      throw new RpcError(RpcError.reasons.InvalidMethod, payload.params?.channelAddress ?? \"\", this.publicIdentifier, {\n        payload,\n      });\n    }\n\n    // every method must be a result type\n    const res = await this[methodName](payload.params);\n    if (res.isError) {\n      throw res.getError();\n    }\n    return res.getValue();\n  }\n\n  ///////////////////////////////////\n  // EVENT METHODS\n\n  public on<T extends EngineEvent>(\n    event: T,\n    callback: (payload: EngineEventMap[T]) => void | Promise<void>,\n    filter: (payload: EngineEventMap[T]) => boolean = () => true,\n  ): void {\n    this.evts[event].pipe(filter).attach(callback);\n  }\n\n  public once<T extends EngineEvent>(\n    event: T,\n    callback: (payload: EngineEventMap[T]) => void | Promise<void>,\n    filter: (payload: EngineEventMap[T]) => boolean = () => true,\n  ): void {\n    this.evts[event].pipe(filter).attachOnce(callback);\n  }\n\n  public waitFor<T extends EngineEvent>(\n    event: T,\n    timeout: number,\n    filter: (payload: EngineEventMap[T]) => boolean = () => true,\n  ): Promise<EngineEventMap[T]> {\n    return this.evts[event].pipe(filter).waitFor(timeout);\n  }\n\n  public off<T extends EngineEvent>(event?: T): void {\n    if (event) {\n      this.evts[event].detach();\n      return;\n    }\n\n    Object.keys(EngineEvents).forEach((k) => this.evts[k].detach());\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"80b1dc7275ce2bf303ccb8eda5f4066496bd003a"},"/app/modules/engine/src/paramConverter.ts":{"path":"/app/modules/engine/src/paramConverter.ts","statementMap":{"0":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"1":{"start":{"line":3,"column":28},"end":{"line":3,"column":110}},"2":{"start":{"line":3,"column":91},"end":{"line":3,"column":106}},"3":{"start":{"line":4,"column":4},"end":{"line":9,"column":7}},"4":{"start":{"line":5,"column":36},"end":{"line":5,"column":97}},"5":{"start":{"line":5,"column":42},"end":{"line":5,"column":70}},"6":{"start":{"line":5,"column":85},"end":{"line":5,"column":95}},"7":{"start":{"line":6,"column":35},"end":{"line":6,"column":100}},"8":{"start":{"line":6,"column":41},"end":{"line":6,"column":73}},"9":{"start":{"line":6,"column":88},"end":{"line":6,"column":98}},"10":{"start":{"line":7,"column":32},"end":{"line":7,"column":116}},"11":{"start":{"line":8,"column":8},"end":{"line":8,"column":78}},"12":{"start":{"line":11,"column":0},"end":{"line":11,"column":62}},"13":{"start":{"line":12,"column":0},"end":{"line":12,"column":151}},"14":{"start":{"line":13,"column":27},"end":{"line":13,"column":63}},"15":{"start":{"line":14,"column":23},"end":{"line":14,"column":55}},"16":{"start":{"line":15,"column":23},"end":{"line":15,"column":55}},"17":{"start":{"line":16,"column":20},"end":{"line":16,"column":55}},"18":{"start":{"line":17,"column":20},"end":{"line":17,"column":55}},"19":{"start":{"line":18,"column":18},"end":{"line":18,"column":51}},"20":{"start":{"line":19,"column":17},"end":{"line":19,"column":36}},"21":{"start":{"line":22,"column":4},"end":{"line":33,"column":7}},"22":{"start":{"line":23,"column":8},"end":{"line":32,"column":11}},"23":{"start":{"line":35,"column":0},"end":{"line":35,"column":48}},"24":{"start":{"line":38,"column":4},"end":{"line":109,"column":7}},"25":{"start":{"line":39,"column":107},"end":{"line":39,"column":113}},"26":{"start":{"line":40,"column":33},"end":{"line":40,"column":127}},"27":{"start":{"line":41,"column":33},"end":{"line":41,"column":133}},"28":{"start":{"line":42,"column":36},"end":{"line":42,"column":98}},"29":{"start":{"line":43,"column":8},"end":{"line":47,"column":9}},"30":{"start":{"line":44,"column":12},"end":{"line":46,"column":16}},"31":{"start":{"line":48,"column":30},"end":{"line":48,"column":39}},"32":{"start":{"line":49,"column":8},"end":{"line":91,"column":9}},"33":{"start":{"line":50,"column":24},"end":{"line":50,"column":36}},"34":{"start":{"line":51,"column":12},"end":{"line":77,"column":13}},"35":{"start":{"line":52,"column":33},"end":{"line":72,"column":22}},"36":{"start":{"line":73,"column":16},"end":{"line":75,"column":17}},"37":{"start":{"line":74,"column":20},"end":{"line":74,"column":268}},"38":{"start":{"line":76,"column":16},"end":{"line":76,"column":44}},"39":{"start":{"line":78,"column":24},"end":{"line":78,"column":61}},"40":{"start":{"line":79,"column":12},"end":{"line":81,"column":13}},"41":{"start":{"line":80,"column":16},"end":{"line":80,"column":205}},"42":{"start":{"line":82,"column":34},"end":{"line":82,"column":165}},"43":{"start":{"line":83,"column":12},"end":{"line":90,"column":14}},"44":{"start":{"line":92,"column":28},"end":{"line":94,"column":151}},"45":{"start":{"line":95,"column":8},"end":{"line":97,"column":9}},"46":{"start":{"line":96,"column":12},"end":{"line":96,"column":279}},"47":{"start":{"line":98,"column":31},"end":{"line":98,"column":53}},"48":{"start":{"line":99,"column":37},"end":{"line":99,"column":63}},"49":{"start":{"line":100,"column":8},"end":{"line":108,"column":11}},"50":{"start":{"line":111,"column":0},"end":{"line":111,"column":76}},"51":{"start":{"line":114,"column":55},"end":{"line":114,"column":61}},"52":{"start":{"line":115,"column":4},"end":{"line":120,"column":7}},"53":{"start":{"line":122,"column":0},"end":{"line":122,"column":70}},"54":{"start":{"line":125,"column":4},"end":{"line":189,"column":7}},"55":{"start":{"line":126,"column":68},"end":{"line":126,"column":74}},"56":{"start":{"line":127,"column":24},"end":{"line":127,"column":60}},"57":{"start":{"line":128,"column":26},"end":{"line":128,"column":64}},"58":{"start":{"line":129,"column":33},"end":{"line":129,"column":102}},"59":{"start":{"line":130,"column":8},"end":{"line":132,"column":9}},"60":{"start":{"line":131,"column":12},"end":{"line":131,"column":202}},"61":{"start":{"line":133,"column":8},"end":{"line":135,"column":9}},"62":{"start":{"line":134,"column":12},"end":{"line":134,"column":196}},"63":{"start":{"line":136,"column":23},"end":{"line":136,"column":68}},"64":{"start":{"line":137,"column":8},"end":{"line":141,"column":9}},"65":{"start":{"line":138,"column":12},"end":{"line":140,"column":16}},"66":{"start":{"line":142,"column":22},"end":{"line":148,"column":9}},"67":{"start":{"line":149,"column":27},"end":{"line":149,"column":206}},"68":{"start":{"line":151,"column":8},"end":{"line":160,"column":9}},"69":{"start":{"line":152,"column":12},"end":{"line":152,"column":83}},"70":{"start":{"line":155,"column":12},"end":{"line":159,"column":16}},"71":{"start":{"line":161,"column":36},"end":{"line":161,"column":98}},"72":{"start":{"line":162,"column":37},"end":{"line":171,"column":9}},"73":{"start":{"line":172,"column":28},"end":{"line":172,"column":216}},"74":{"start":{"line":173,"column":8},"end":{"line":175,"column":9}},"75":{"start":{"line":174,"column":12},"end":{"line":174,"column":279}},"76":{"start":{"line":176,"column":31},"end":{"line":176,"column":53}},"77":{"start":{"line":177,"column":8},"end":{"line":188,"column":11}},"78":{"start":{"line":191,"column":0},"end":{"line":191,"column":54}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":44},"end":{"line":2,"column":45}},"loc":{"start":{"line":2,"column":89},"end":{"line":10,"column":1}},"line":2},"1":{"name":"adopt","decl":{"start":{"line":3,"column":13},"end":{"line":3,"column":18}},"loc":{"start":{"line":3,"column":26},"end":{"line":3,"column":112}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":3,"column":70},"end":{"line":3,"column":71}},"loc":{"start":{"line":3,"column":89},"end":{"line":3,"column":108}},"line":3},"3":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":36},"end":{"line":4,"column":37}},"loc":{"start":{"line":4,"column":63},"end":{"line":9,"column":5}},"line":4},"4":{"name":"fulfilled","decl":{"start":{"line":5,"column":17},"end":{"line":5,"column":26}},"loc":{"start":{"line":5,"column":34},"end":{"line":5,"column":99}},"line":5},"5":{"name":"rejected","decl":{"start":{"line":6,"column":17},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":33},"end":{"line":6,"column":102}},"line":6},"6":{"name":"step","decl":{"start":{"line":7,"column":17},"end":{"line":7,"column":21}},"loc":{"start":{"line":7,"column":30},"end":{"line":7,"column":118}},"line":7},"7":{"name":"convertSetupParams","decl":{"start":{"line":20,"column":9},"end":{"line":20,"column":27}},"loc":{"start":{"line":20,"column":52},"end":{"line":34,"column":1}},"line":20},"8":{"name":"(anonymous_8)","decl":{"start":{"line":22,"column":43},"end":{"line":22,"column":44}},"loc":{"start":{"line":22,"column":56},"end":{"line":33,"column":5}},"line":22},"9":{"name":"convertConditionalTransferParams","decl":{"start":{"line":36,"column":9},"end":{"line":36,"column":41}},"loc":{"start":{"line":36,"column":91},"end":{"line":110,"column":1}},"line":36},"10":{"name":"(anonymous_10)","decl":{"start":{"line":38,"column":43},"end":{"line":38,"column":44}},"loc":{"start":{"line":38,"column":56},"end":{"line":109,"column":5}},"line":38},"11":{"name":"convertResolveConditionParams","decl":{"start":{"line":112,"column":9},"end":{"line":112,"column":38}},"loc":{"start":{"line":112,"column":57},"end":{"line":121,"column":1}},"line":112},"12":{"name":"convertWithdrawParams","decl":{"start":{"line":123,"column":9},"end":{"line":123,"column":30}},"loc":{"start":{"line":123,"column":97},"end":{"line":190,"column":1}},"line":123},"13":{"name":"(anonymous_13)","decl":{"start":{"line":125,"column":43},"end":{"line":125,"column":44}},"loc":{"start":{"line":125,"column":56},"end":{"line":189,"column":5}},"line":125}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":17},"end":{"line":2,"column":21}},{"start":{"line":2,"column":25},"end":{"line":2,"column":39}},{"start":{"line":2,"column":44},"end":{"line":10,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":35},"end":{"line":3,"column":109}},"type":"cond-expr","locations":[{"start":{"line":3,"column":56},"end":{"line":3,"column":61}},{"start":{"line":3,"column":64},"end":{"line":3,"column":109}}],"line":3},"2":{"loc":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"type":"binary-expr","locations":[{"start":{"line":4,"column":16},"end":{"line":4,"column":17}},{"start":{"line":4,"column":22},"end":{"line":4,"column":33}}],"line":4},"3":{"loc":{"start":{"line":7,"column":32},"end":{"line":7,"column":115}},"type":"cond-expr","locations":[{"start":{"line":7,"column":46},"end":{"line":7,"column":67}},{"start":{"line":7,"column":70},"end":{"line":7,"column":115}}],"line":7},"4":{"loc":{"start":{"line":8,"column":51},"end":{"line":8,"column":67}},"type":"binary-expr","locations":[{"start":{"line":8,"column":51},"end":{"line":8,"column":61}},{"start":{"line":8,"column":65},"end":{"line":8,"column":67}}],"line":8},"5":{"loc":{"start":{"line":25,"column":21},"end":{"line":25,"column":125}},"type":"cond-expr","locations":[{"start":{"line":25,"column":71},"end":{"line":25,"column":73}},{"start":{"line":25,"column":76},"end":{"line":25,"column":125}}],"line":25},"6":{"loc":{"start":{"line":25,"column":21},"end":{"line":25,"column":68}},"type":"binary-expr","locations":[{"start":{"line":25,"column":21},"end":{"line":25,"column":51}},{"start":{"line":25,"column":55},"end":{"line":25,"column":68}}],"line":25},"7":{"loc":{"start":{"line":40,"column":33},"end":{"line":40,"column":127}},"type":"cond-expr","locations":[{"start":{"line":40,"column":92},"end":{"line":40,"column":94}},{"start":{"line":40,"column":97},"end":{"line":40,"column":127}}],"line":40},"8":{"loc":{"start":{"line":40,"column":33},"end":{"line":40,"column":89}},"type":"binary-expr","locations":[{"start":{"line":40,"column":33},"end":{"line":40,"column":72}},{"start":{"line":40,"column":76},"end":{"line":40,"column":89}}],"line":40},"9":{"loc":{"start":{"line":41,"column":54},"end":{"line":41,"column":132}},"type":"cond-expr","locations":[{"start":{"line":41,"column":113},"end":{"line":41,"column":115}},{"start":{"line":41,"column":118},"end":{"line":41,"column":132}}],"line":41},"10":{"loc":{"start":{"line":41,"column":54},"end":{"line":41,"column":110}},"type":"binary-expr","locations":[{"start":{"line":41,"column":54},"end":{"line":41,"column":93}},{"start":{"line":41,"column":97},"end":{"line":41,"column":110}}],"line":41},"11":{"loc":{"start":{"line":42,"column":36},"end":{"line":42,"column":98}},"type":"cond-expr","locations":[{"start":{"line":42,"column":71},"end":{"line":42,"column":82}},{"start":{"line":42,"column":85},"end":{"line":42,"column":98}}],"line":42},"12":{"loc":{"start":{"line":43,"column":8},"end":{"line":47,"column":9}},"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":47,"column":9}},{"start":{"line":43,"column":8},"end":{"line":47,"column":9}}],"line":43},"13":{"loc":{"start":{"line":43,"column":12},"end":{"line":43,"column":104}},"type":"binary-expr","locations":[{"start":{"line":43,"column":12},"end":{"line":43,"column":49}},{"start":{"line":43,"column":53},"end":{"line":43,"column":104}}],"line":43},"14":{"loc":{"start":{"line":49,"column":8},"end":{"line":91,"column":9}},"type":"if","locations":[{"start":{"line":49,"column":8},"end":{"line":91,"column":9}},{"start":{"line":49,"column":8},"end":{"line":91,"column":9}}],"line":49},"15":{"loc":{"start":{"line":49,"column":12},"end":{"line":49,"column":111}},"type":"binary-expr","locations":[{"start":{"line":49,"column":12},"end":{"line":49,"column":21}},{"start":{"line":49,"column":25},"end":{"line":49,"column":111}}],"line":49},"16":{"loc":{"start":{"line":51,"column":12},"end":{"line":77,"column":13}},"type":"if","locations":[{"start":{"line":51,"column":12},"end":{"line":77,"column":13}},{"start":{"line":51,"column":12},"end":{"line":77,"column":13}}],"line":51},"17":{"loc":{"start":{"line":52,"column":33},"end":{"line":72,"column":22}},"type":"cond-expr","locations":[{"start":{"line":53,"column":22},"end":{"line":60,"column":73}},{"start":{"line":61,"column":22},"end":{"line":72,"column":22}}],"line":52},"18":{"loc":{"start":{"line":73,"column":16},"end":{"line":75,"column":17}},"type":"if","locations":[{"start":{"line":73,"column":16},"end":{"line":75,"column":17}},{"start":{"line":73,"column":16},"end":{"line":75,"column":17}}],"line":73},"19":{"loc":{"start":{"line":79,"column":12},"end":{"line":81,"column":13}},"type":"if","locations":[{"start":{"line":79,"column":12},"end":{"line":81,"column":13}},{"start":{"line":79,"column":12},"end":{"line":81,"column":13}}],"line":79},"20":{"loc":{"start":{"line":82,"column":34},"end":{"line":82,"column":165}},"type":"cond-expr","locations":[{"start":{"line":82,"column":156},"end":{"line":82,"column":158}},{"start":{"line":82,"column":161},"end":{"line":82,"column":165}}],"line":82},"21":{"loc":{"start":{"line":82,"column":34},"end":{"line":82,"column":153}},"type":"binary-expr","locations":[{"start":{"line":82,"column":34},"end":{"line":82,"column":136}},{"start":{"line":82,"column":140},"end":{"line":82,"column":153}}],"line":82},"22":{"loc":{"start":{"line":82,"column":40},"end":{"line":82,"column":126}},"type":"cond-expr","locations":[{"start":{"line":82,"column":91},"end":{"line":82,"column":97}},{"start":{"line":82,"column":100},"end":{"line":82,"column":126}}],"line":82},"23":{"loc":{"start":{"line":82,"column":40},"end":{"line":82,"column":88}},"type":"binary-expr","locations":[{"start":{"line":82,"column":40},"end":{"line":82,"column":61}},{"start":{"line":82,"column":65},"end":{"line":82,"column":88}}],"line":82},"24":{"loc":{"start":{"line":85,"column":27},"end":{"line":85,"column":183}},"type":"cond-expr","locations":[{"start":{"line":85,"column":145},"end":{"line":85,"column":147}},{"start":{"line":85,"column":150},"end":{"line":85,"column":183}}],"line":85},"25":{"loc":{"start":{"line":85,"column":27},"end":{"line":85,"column":142}},"type":"binary-expr","locations":[{"start":{"line":85,"column":27},"end":{"line":85,"column":125}},{"start":{"line":85,"column":129},"end":{"line":85,"column":142}}],"line":85},"26":{"loc":{"start":{"line":85,"column":33},"end":{"line":85,"column":115}},"type":"cond-expr","locations":[{"start":{"line":85,"column":84},"end":{"line":85,"column":90}},{"start":{"line":85,"column":93},"end":{"line":85,"column":115}}],"line":85},"27":{"loc":{"start":{"line":85,"column":33},"end":{"line":85,"column":81}},"type":"binary-expr","locations":[{"start":{"line":85,"column":33},"end":{"line":85,"column":54}},{"start":{"line":85,"column":58},"end":{"line":85,"column":81}}],"line":85},"28":{"loc":{"start":{"line":92,"column":28},"end":{"line":94,"column":151}},"type":"cond-expr","locations":[{"start":{"line":93,"column":14},"end":{"line":93,"column":145}},{"start":{"line":94,"column":14},"end":{"line":94,"column":151}}],"line":92},"29":{"loc":{"start":{"line":95,"column":8},"end":{"line":97,"column":9}},"type":"if","locations":[{"start":{"line":95,"column":8},"end":{"line":97,"column":9}},{"start":{"line":95,"column":8},"end":{"line":97,"column":9}}],"line":95},"30":{"loc":{"start":{"line":106,"column":21},"end":{"line":106,"column":122}},"type":"cond-expr","locations":[{"start":{"line":106,"column":62},"end":{"line":106,"column":69}},{"start":{"line":106,"column":72},"end":{"line":106,"column":122}}],"line":106},"31":{"loc":{"start":{"line":106,"column":21},"end":{"line":106,"column":59}},"type":"binary-expr","locations":[{"start":{"line":106,"column":21},"end":{"line":106,"column":37}},{"start":{"line":106,"column":41},"end":{"line":106,"column":59}}],"line":106},"32":{"loc":{"start":{"line":107,"column":51},"end":{"line":107,"column":128}},"type":"cond-expr","locations":[{"start":{"line":107,"column":108},"end":{"line":107,"column":123}},{"start":{"line":107,"column":126},"end":{"line":107,"column":128}}],"line":107},"33":{"loc":{"start":{"line":107,"column":51},"end":{"line":107,"column":105}},"type":"binary-expr","locations":[{"start":{"line":107,"column":51},"end":{"line":107,"column":75}},{"start":{"line":107,"column":79},"end":{"line":107,"column":105}}],"line":107},"34":{"loc":{"start":{"line":107,"column":133},"end":{"line":107,"column":201}},"type":"cond-expr","locations":[{"start":{"line":107,"column":184},"end":{"line":107,"column":196}},{"start":{"line":107,"column":199},"end":{"line":107,"column":201}}],"line":107},"35":{"loc":{"start":{"line":107,"column":133},"end":{"line":107,"column":181}},"type":"binary-expr","locations":[{"start":{"line":107,"column":133},"end":{"line":107,"column":154}},{"start":{"line":107,"column":158},"end":{"line":107,"column":181}}],"line":107},"36":{"loc":{"start":{"line":119,"column":47},"end":{"line":119,"column":103}},"type":"cond-expr","locations":[{"start":{"line":119,"column":96},"end":{"line":119,"column":98}},{"start":{"line":119,"column":101},"end":{"line":119,"column":103}}],"line":119},"37":{"loc":{"start":{"line":119,"column":47},"end":{"line":119,"column":93}},"type":"binary-expr","locations":[{"start":{"line":119,"column":47},"end":{"line":119,"column":76}},{"start":{"line":119,"column":80},"end":{"line":119,"column":93}}],"line":119},"38":{"loc":{"start":{"line":119,"column":108},"end":{"line":119,"column":152}},"type":"cond-expr","locations":[{"start":{"line":119,"column":143},"end":{"line":119,"column":147}},{"start":{"line":119,"column":150},"end":{"line":119,"column":152}}],"line":119},"39":{"loc":{"start":{"line":119,"column":108},"end":{"line":119,"column":140}},"type":"binary-expr","locations":[{"start":{"line":119,"column":108},"end":{"line":119,"column":121}},{"start":{"line":119,"column":125},"end":{"line":119,"column":140}}],"line":119},"40":{"loc":{"start":{"line":129,"column":33},"end":{"line":129,"column":102}},"type":"cond-expr","locations":[{"start":{"line":129,"column":92},"end":{"line":129,"column":94}},{"start":{"line":129,"column":97},"end":{"line":129,"column":102}}],"line":129},"41":{"loc":{"start":{"line":129,"column":33},"end":{"line":129,"column":89}},"type":"binary-expr","locations":[{"start":{"line":129,"column":33},"end":{"line":129,"column":72}},{"start":{"line":129,"column":76},"end":{"line":129,"column":89}}],"line":129},"42":{"loc":{"start":{"line":130,"column":8},"end":{"line":132,"column":9}},"type":"if","locations":[{"start":{"line":130,"column":8},"end":{"line":132,"column":9}},{"start":{"line":130,"column":8},"end":{"line":132,"column":9}}],"line":130},"43":{"loc":{"start":{"line":130,"column":12},"end":{"line":130,"column":64}},"type":"binary-expr","locations":[{"start":{"line":130,"column":12},"end":{"line":130,"column":28}},{"start":{"line":130,"column":32},"end":{"line":130,"column":64}}],"line":130},"44":{"loc":{"start":{"line":133,"column":8},"end":{"line":135,"column":9}},"type":"if","locations":[{"start":{"line":133,"column":8},"end":{"line":135,"column":9}},{"start":{"line":133,"column":8},"end":{"line":135,"column":9}}],"line":133},"45":{"loc":{"start":{"line":136,"column":23},"end":{"line":136,"column":68}},"type":"binary-expr","locations":[{"start":{"line":136,"column":23},"end":{"line":136,"column":30}},{"start":{"line":136,"column":34},"end":{"line":136,"column":68}}],"line":136},"46":{"loc":{"start":{"line":137,"column":8},"end":{"line":141,"column":9}},"type":"if","locations":[{"start":{"line":137,"column":8},"end":{"line":141,"column":9}},{"start":{"line":137,"column":8},"end":{"line":141,"column":9}}],"line":137},"47":{"loc":{"start":{"line":137,"column":12},"end":{"line":137,"column":43}},"type":"binary-expr","locations":[{"start":{"line":137,"column":12},"end":{"line":137,"column":33}},{"start":{"line":137,"column":37},"end":{"line":137,"column":43}}],"line":137},"48":{"loc":{"start":{"line":161,"column":36},"end":{"line":161,"column":98}},"type":"cond-expr","locations":[{"start":{"line":161,"column":71},"end":{"line":161,"column":82}},{"start":{"line":161,"column":85},"end":{"line":161,"column":98}}],"line":161},"49":{"loc":{"start":{"line":169,"column":20},"end":{"line":169,"column":91}},"type":"cond-expr","locations":[{"start":{"line":169,"column":59},"end":{"line":169,"column":65}},{"start":{"line":169,"column":68},"end":{"line":169,"column":91}}],"line":169},"50":{"loc":{"start":{"line":169,"column":20},"end":{"line":169,"column":56}},"type":"binary-expr","locations":[{"start":{"line":169,"column":20},"end":{"line":169,"column":35}},{"start":{"line":169,"column":39},"end":{"line":169,"column":56}}],"line":169},"51":{"loc":{"start":{"line":170,"column":22},"end":{"line":170,"column":80}},"type":"cond-expr","locations":[{"start":{"line":170,"column":65},"end":{"line":170,"column":73}},{"start":{"line":170,"column":76},"end":{"line":170,"column":80}}],"line":170},"52":{"loc":{"start":{"line":170,"column":22},"end":{"line":170,"column":62}},"type":"binary-expr","locations":[{"start":{"line":170,"column":22},"end":{"line":170,"column":39}},{"start":{"line":170,"column":43},"end":{"line":170,"column":62}}],"line":170},"53":{"loc":{"start":{"line":173,"column":8},"end":{"line":175,"column":9}},"type":"if","locations":[{"start":{"line":173,"column":8},"end":{"line":175,"column":9}},{"start":{"line":173,"column":8},"end":{"line":175,"column":9}}],"line":173},"54":{"loc":{"start":{"line":186,"column":21},"end":{"line":186,"column":122}},"type":"cond-expr","locations":[{"start":{"line":186,"column":62},"end":{"line":186,"column":69}},{"start":{"line":186,"column":72},"end":{"line":186,"column":122}}],"line":186},"55":{"loc":{"start":{"line":186,"column":21},"end":{"line":186,"column":59}},"type":"binary-expr","locations":[{"start":{"line":186,"column":21},"end":{"line":186,"column":37}},{"start":{"line":186,"column":41},"end":{"line":186,"column":59}}],"line":186},"56":{"loc":{"start":{"line":187,"column":51},"end":{"line":187,"column":95}},"type":"cond-expr","locations":[{"start":{"line":187,"column":86},"end":{"line":187,"column":90}},{"start":{"line":187,"column":93},"end":{"line":187,"column":95}}],"line":187},"57":{"loc":{"start":{"line":187,"column":51},"end":{"line":187,"column":83}},"type":"binary-expr","locations":[{"start":{"line":187,"column":51},"end":{"line":187,"column":64}},{"start":{"line":187,"column":68},"end":{"line":187,"column":83}}],"line":187}},"s":{"0":1,"1":67,"2":0,"3":45,"4":66,"5":66,"6":0,"7":1,"8":1,"9":0,"10":112,"11":45,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":2,"22":2,"23":1,"24":29,"25":29,"26":29,"27":29,"28":29,"29":29,"30":1,"31":28,"32":28,"33":28,"34":28,"35":26,"36":26,"37":1,"38":25,"39":27,"40":27,"41":1,"42":26,"43":26,"44":26,"45":26,"46":2,"47":24,"48":24,"49":24,"50":1,"51":1,"52":1,"53":1,"54":14,"55":14,"56":14,"57":14,"58":14,"59":14,"60":0,"61":14,"62":0,"63":14,"64":14,"65":0,"66":14,"67":14,"68":14,"69":14,"70":1,"71":13,"72":13,"73":13,"74":13,"75":1,"76":12,"77":12,"78":1},"f":{"0":45,"1":67,"2":0,"3":45,"4":66,"5":1,"6":112,"7":2,"8":2,"9":29,"10":29,"11":1,"12":14,"13":14},"b":{"0":[1,1,1],"1":[67,0],"2":[45,45],"3":[45,67],"4":[45,45],"5":[1,1],"6":[2,2],"7":[27,2],"8":[29,29],"9":[29,0],"10":[29,29],"11":[17,12],"12":[1,28],"13":[29,1],"14":[28,0],"15":[28,28],"16":[26,2],"17":[14,12],"18":[1,25],"19":[1,26],"20":[0,26],"21":[26,26],"22":[0,26],"23":[26,26],"24":[26,0],"25":[26,26],"26":[0,26],"27":[26,26],"28":[23,3],"29":[2,24],"30":[22,2],"31":[24,24],"32":[24,0],"33":[24,24],"34":[24,0],"35":[24,24],"36":[1,0],"37":[1,1],"38":[1,0],"39":[1,1],"40":[0,14],"41":[14,14],"42":[0,14],"43":[14,0],"44":[0,14],"45":[14,12],"46":[0,14],"47":[14,0],"48":[7,6],"49":[11,2],"50":[13,13],"51":[11,2],"52":[13,13],"53":[1,12],"54":[2,10],"55":[12,12],"56":[0,12],"57":[12,12]},"inputSourceMap":{"version":3,"file":"/app/modules/engine/src/paramConverter.ts","sources":["/app/modules/engine/src/paramConverter.ts"],"names":[],"mappings":"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","sourcesContent":["import { WithdrawCommitment } from \"@connext/vector-contracts\";\nimport { getRandomBytes32, getSignerAddressFromPublicIdentifier } from \"@connext/vector-utils\";\nimport {\n  CreateTransferParams,\n  ResolveTransferParams,\n  FullChannelState,\n  Result,\n  DEFAULT_TRANSFER_TIMEOUT,\n  DEFAULT_CHANNEL_TIMEOUT,\n  FullTransferState,\n  WithdrawState,\n  EngineParams,\n  IChannelSigner,\n  ChainAddresses,\n  RouterSchemas,\n  TransferNames,\n  TransferName,\n  IVectorChainReader,\n  EngineError,\n  jsonifyError,\n  IMessagingService,\n  DEFAULT_FEE_EXPIRY,\n  SetupParams,\n} from \"@connext/vector-types\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { AddressZero } from \"@ethersproject/constants\";\nimport { getAddress } from \"@ethersproject/address\";\n\nimport { ParameterConversionError } from \"./errors\";\n\nexport async function convertSetupParams(\n  params: EngineParams.Setup,\n  chainAddresses: ChainAddresses,\n): Promise<Result<SetupParams>> {\n  return Result.ok({\n    counterpartyIdentifier: params.counterpartyIdentifier,\n    timeout: params.timeout ?? DEFAULT_CHANNEL_TIMEOUT.toString(),\n    networkContext: {\n      channelFactoryAddress: chainAddresses[params.chainId].channelFactoryAddress,\n      transferRegistryAddress: chainAddresses[params.chainId].transferRegistryAddress,\n      chainId: params.chainId,\n    },\n    meta: params.meta,\n  });\n}\n\nexport async function convertConditionalTransferParams(\n  params: EngineParams.ConditionalTransfer,\n  signer: IChannelSigner,\n  channel: FullChannelState,\n  chainReader: IVectorChainReader,\n  messaging: IMessagingService,\n): Promise<Result<CreateTransferParams, EngineError>> {\n  const { channelAddress, amount, assetId, recipient, details, type, timeout, meta: providedMeta } = params;\n\n  const recipientChainId = params.recipientChainId ?? channel.networkContext.chainId;\n  const recipientAssetId = getAddress(params.recipientAssetId ?? params.assetId);\n  const channelCounterparty = signer.address === channel.alice ? channel.bob : channel.alice;\n\n  if (recipient === signer.publicIdentifier && recipientChainId === channel.networkContext.chainId) {\n    // If signer is also the receipient on same chain/network\n    return Result.fail(\n      new ParameterConversionError(\n        ParameterConversionError.reasons.CannotSendToSelf,\n        channelAddress,\n        signer.publicIdentifier,\n        {\n          params,\n        },\n      ),\n    );\n  }\n\n  // If the recipient is the channel counterparty, no default routing\n  // meta needs to be created, otherwise create the default routing meta.\n  // NOTE: While the engine and protocol do not care about the structure\n  // of the meta, this is where several relevant default values are\n  // set for the higher level modules to parse\n  let baseRoutingMeta: RouterSchemas.RouterMeta | undefined = undefined;\n  if (recipient && getSignerAddressFromPublicIdentifier(recipient) !== channelCounterparty) {\n    // Get a quote if it is not provided\n    // NOTE: this explicitly assumes that the channel.alice is the\n    // router identifier.\n    let quote = params.quote;\n    if (!quote) {\n      const quoteRes =\n        signer.publicIdentifier !== channel.aliceIdentifier\n          ? await messaging.sendTransferQuoteMessage(\n              Result.ok({\n                amount: params.amount,\n                assetId: params.assetId,\n                chainId: channel.networkContext.chainId,\n                recipient,\n                recipientChainId,\n                recipientAssetId,\n              }),\n              channel.aliceIdentifier,\n              signer.publicIdentifier,\n            )\n          : Result.ok({\n              signature: undefined,\n              chainId: channel.networkContext.chainId,\n              routerIdentifier: signer.publicIdentifier,\n              amount: params.amount,\n              assetId: params.assetId,\n              recipient,\n              recipientChainId,\n              recipientAssetId,\n              fee: \"0\",\n              expiry: (Date.now() + DEFAULT_FEE_EXPIRY).toString(),\n            });\n      if (quoteRes.isError) {\n        return Result.fail(\n          new ParameterConversionError(\n            ParameterConversionError.reasons.CouldNotGetQuote,\n            channelAddress,\n            signer.publicIdentifier,\n            { params, quoteError: jsonifyError(quoteRes.getError()!) },\n          ),\n        );\n      }\n      quote = quoteRes.getValue();\n    }\n    const fee = BigNumber.from(quote.fee);\n    if (fee.gt(params.amount)) {\n      return Result.fail(\n        new ParameterConversionError(\n          ParameterConversionError.reasons.FeeGreaterThanAmount,\n          channelAddress,\n          signer.publicIdentifier,\n          { quote },\n        ),\n      );\n    }\n    const requireOnline = providedMeta?.requireOnline ?? true; // true by default\n    baseRoutingMeta = {\n      requireOnline,\n      routingId: providedMeta?.routingId ?? getRandomBytes32(),\n      path: [{ recipient, recipientChainId, recipientAssetId }],\n      quote: {\n        ...quote, // use our own values by default\n        routerIdentifier: channel.aliceIdentifier,\n        amount: params.amount,\n        assetId: params.assetId,\n        chainId: channel.networkContext.chainId,\n        recipient,\n        recipientChainId,\n        recipientAssetId,\n      },\n    };\n  }\n\n  // TODO: transfers should be allowed to go to participants outside of the\n  // channel (i.e. some dispute recovery address). This should be passed in\n  // via the transfer params as a `recoveryAddress` variable\n  // const transferStateRecipient = recipient ? getSignerAddressFromPublicIdentifier(recipient) : channelCounterparty; #437\n\n  // Get the transfer information from the chain reader\n  const registryRes = !type.startsWith(`0x`)\n    ? await chainReader.getRegisteredTransferByName(\n        type as TransferName,\n        channel.networkContext.transferRegistryAddress,\n        channel.networkContext.chainId,\n      )\n    : await chainReader.getRegisteredTransferByDefinition(\n        type,\n        channel.networkContext.transferRegistryAddress,\n        channel.networkContext.chainId,\n      );\n  if (registryRes.isError) {\n    return Result.fail(\n      new ParameterConversionError(\n        ParameterConversionError.reasons.FailedToGetRegisteredTransfer,\n        channelAddress,\n        signer.publicIdentifier,\n        { params, registryError: jsonifyError(registryRes.getError()!) },\n      ),\n    );\n  }\n  const { definition } = registryRes.getValue()!;\n\n  // Construct initial state\n  const transferInitialState = {\n    ...details,\n  };\n\n  return Result.ok({\n    channelAddress,\n    balance: { to: [signer.address, channelCounterparty], amount: [amount.toString(), \"0\"] },\n    assetId,\n    transferDefinition: definition,\n    transferInitialState,\n    timeout: timeout ?? DEFAULT_TRANSFER_TIMEOUT.toString(),\n    meta: {\n      ...(baseRoutingMeta ?? {}),\n      ...(providedMeta ?? {}),\n    },\n  });\n}\n\nexport function convertResolveConditionParams(\n  params: EngineParams.ResolveTransfer,\n  transfer: FullTransferState,\n): Result<ResolveTransferParams, EngineError> {\n  const { channelAddress, transferResolver, meta } = params;\n\n  return Result.ok({\n    channelAddress,\n    transferId: transfer.transferId,\n    transferResolver,\n    meta: { ...(transfer.meta ?? {}), ...(meta ?? {}) },\n  });\n}\n\nexport async function convertWithdrawParams(\n  params: EngineParams.Withdraw,\n  signer: IChannelSigner,\n  channel: FullChannelState,\n  chainAddresses: ChainAddresses,\n  chainReader: IVectorChainReader,\n  _messaging: IMessagingService,\n): Promise<Result<CreateTransferParams, EngineError>> {\n  const { channelAddress, callTo, callData, meta, timeout } = params;\n  const assetId = getAddress(params.assetId);\n  const recipient = getAddress(params.recipient);\n  const initiatorSubmits = params.initiatorSubmits ?? false;\n\n  // TODO: refactor to always determine who submits based on the\n  // `initiatorSubmits` flag. #428\n  if (initiatorSubmits && signer.address === channel.alice) {\n    return Result.fail(\n      new ParameterConversionError(\n        ParameterConversionError.reasons.BobDoesntSubmitAlice,\n        channelAddress,\n        signer.publicIdentifier,\n        { params },\n      ),\n    );\n  }\n\n  // If recipient is AddressZero, throw\n  if (recipient === AddressZero) {\n    return Result.fail(\n      new ParameterConversionError(\n        ParameterConversionError.reasons.WithdrawToZero,\n        channelAddress,\n        signer.publicIdentifier,\n        { params },\n      ),\n    );\n  }\n\n  // If it is a no-op, throw\n  const noCall = !callTo || callTo === AddressZero;\n  if (params.amount === \"0\" && noCall) {\n    return Result.fail(\n      new ParameterConversionError(ParameterConversionError.reasons.NoOp, channelAddress, signer.publicIdentifier, {\n        params,\n      }),\n    );\n  }\n\n  // No more withdrawal quotes: https://github.com/connext/vector/issues/529\n  const quote = {\n    // use hardcoded values\n    channelAddress: channel.channelAddress,\n    amount: params.amount,\n    assetId: params.assetId,\n    fee: \"0\",\n    expiry: (Date.now() + DEFAULT_FEE_EXPIRY).toString(),\n  };\n\n  const commitment = new WithdrawCommitment(\n    channel.channelAddress,\n    channel.alice,\n    channel.bob,\n    params.recipient,\n    assetId,\n    params.amount,\n    // Use channel nonce as a way to keep withdraw hashes unique\n    channel.nonce.toString(),\n    callTo,\n    callData,\n  );\n\n  let initiatorSignature: string;\n  try {\n    initiatorSignature = await signer.signMessage(commitment.hashToSign());\n  } catch (err) {\n    return Result.fail(\n      new ParameterConversionError(\n        ParameterConversionError.reasons.CouldNotSignWithdrawal,\n        channelAddress,\n        signer.publicIdentifier,\n        {\n          signatureError: err.message,\n          params,\n          commitment: commitment.toJson(),\n        },\n      ),\n    );\n  }\n\n  const channelCounterparty = channel.alice === signer.address ? channel.bob : channel.alice;\n\n  const transferInitialState: WithdrawState = {\n    initiatorSignature,\n    initiator: signer.address,\n    responder: channelCounterparty,\n    data: commitment.hashToSign(),\n    nonce: channel.nonce.toString(),\n    fee: \"0\",\n    callTo: callTo ?? AddressZero,\n    callData: callData ?? \"0x\",\n  };\n\n  // Get the transfer information from the chain reader\n  const registryRes = await chainReader.getRegisteredTransferByName(\n    TransferNames.Withdraw,\n    chainAddresses[channel.networkContext.chainId].transferRegistryAddress,\n    channel.networkContext.chainId,\n  );\n  if (registryRes.isError) {\n    return Result.fail(\n      new ParameterConversionError(\n        ParameterConversionError.reasons.FailedToGetRegisteredTransfer,\n        channelAddress,\n        signer.publicIdentifier,\n        { params, registryError: jsonifyError(registryRes.getError()!) },\n      ),\n    );\n  }\n  const { definition } = registryRes.getValue()!;\n\n  return Result.ok({\n    channelAddress,\n    balance: {\n      amount: [params.amount, \"0\"],\n      to: [recipient, channelCounterparty],\n    },\n    assetId,\n    transferDefinition: definition,\n    transferInitialState,\n    timeout: timeout ?? DEFAULT_TRANSFER_TIMEOUT.toString(),\n    // Note: we MUST include withdrawNonce in meta. The counterparty will NOT have the same nonce on their end otherwise.\n    meta: {\n      ...(meta ?? {}),\n      quote: {\n        ...quote, // use our own values by default\n        channelAddress,\n        amount: params.amount,\n        assetId: params.assetId,\n      },\n      withdrawNonce: channel.nonce.toString(),\n      initiatorSubmits,\n    },\n  });\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1302c2e3d613deae6f6ad82e36f0eec2135be006"},"/app/modules/engine/src/listeners.ts":{"path":"/app/modules/engine/src/listeners.ts","statementMap":{"0":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"1":{"start":{"line":3,"column":28},"end":{"line":3,"column":110}},"2":{"start":{"line":3,"column":91},"end":{"line":3,"column":106}},"3":{"start":{"line":4,"column":4},"end":{"line":9,"column":7}},"4":{"start":{"line":5,"column":36},"end":{"line":5,"column":97}},"5":{"start":{"line":5,"column":42},"end":{"line":5,"column":70}},"6":{"start":{"line":5,"column":85},"end":{"line":5,"column":95}},"7":{"start":{"line":6,"column":35},"end":{"line":6,"column":100}},"8":{"start":{"line":6,"column":41},"end":{"line":6,"column":73}},"9":{"start":{"line":6,"column":88},"end":{"line":6,"column":98}},"10":{"start":{"line":7,"column":32},"end":{"line":7,"column":116}},"11":{"start":{"line":8,"column":8},"end":{"line":8,"column":78}},"12":{"start":{"line":11,"column":22},"end":{"line":13,"column":1}},"13":{"start":{"line":12,"column":4},"end":{"line":12,"column":62}},"14":{"start":{"line":14,"column":0},"end":{"line":14,"column":62}},"15":{"start":{"line":15,"column":0},"end":{"line":15,"column":250}},"16":{"start":{"line":16,"column":27},"end":{"line":16,"column":63}},"17":{"start":{"line":17,"column":23},"end":{"line":17,"column":55}},"18":{"start":{"line":18,"column":23},"end":{"line":18,"column":55}},"19":{"start":{"line":19,"column":18},"end":{"line":19,"column":51}},"20":{"start":{"line":20,"column":20},"end":{"line":20,"column":55}},"21":{"start":{"line":21,"column":20},"end":{"line":21,"column":55}},"22":{"start":{"line":22,"column":15},"end":{"line":22,"column":47}},"23":{"start":{"line":23,"column":17},"end":{"line":23,"column":36}},"24":{"start":{"line":24,"column":16},"end":{"line":24,"column":34}},"25":{"start":{"line":26,"column":4},"end":{"line":181,"column":7}},"26":{"start":{"line":27,"column":8},"end":{"line":30,"column":11}},"27":{"start":{"line":27,"column":84},"end":{"line":27,"column":132}},"28":{"start":{"line":28,"column":74},"end":{"line":28,"column":79}},"29":{"start":{"line":29,"column":12},"end":{"line":29,"column":60}},"30":{"start":{"line":31,"column":8},"end":{"line":34,"column":11}},"31":{"start":{"line":31,"column":84},"end":{"line":31,"column":148}},"32":{"start":{"line":32,"column":74},"end":{"line":32,"column":79}},"33":{"start":{"line":33,"column":12},"end":{"line":33,"column":62}},"34":{"start":{"line":35,"column":8},"end":{"line":40,"column":11}},"35":{"start":{"line":35,"column":84},"end":{"line":37,"column":10}},"36":{"start":{"line":36,"column":12},"end":{"line":36,"column":136}},"37":{"start":{"line":38,"column":74},"end":{"line":38,"column":79}},"38":{"start":{"line":39,"column":12},"end":{"line":39,"column":61}},"39":{"start":{"line":41,"column":8},"end":{"line":44,"column":11}},"40":{"start":{"line":41,"column":84},"end":{"line":41,"column":241}},"41":{"start":{"line":41,"column":131},"end":{"line":41,"column":238}},"42":{"start":{"line":42,"column":74},"end":{"line":42,"column":79}},"43":{"start":{"line":43,"column":12},"end":{"line":43,"column":62}},"44":{"start":{"line":45,"column":8},"end":{"line":50,"column":11}},"45":{"start":{"line":45,"column":84},"end":{"line":47,"column":10}},"46":{"start":{"line":46,"column":12},"end":{"line":46,"column":143}},"47":{"start":{"line":48,"column":74},"end":{"line":48,"column":79}},"48":{"start":{"line":49,"column":12},"end":{"line":49,"column":61}},"49":{"start":{"line":51,"column":8},"end":{"line":54,"column":11}},"50":{"start":{"line":51,"column":84},"end":{"line":51,"column":248}},"51":{"start":{"line":51,"column":131},"end":{"line":51,"column":245}},"52":{"start":{"line":52,"column":74},"end":{"line":52,"column":79}},"53":{"start":{"line":53,"column":12},"end":{"line":53,"column":62}},"54":{"start":{"line":55,"column":8},"end":{"line":88,"column":12}},"55":{"start":{"line":55,"column":98},"end":{"line":88,"column":10}},"56":{"start":{"line":57,"column":34},"end":{"line":57,"column":66}},"57":{"start":{"line":58,"column":27},"end":{"line":58,"column":52}},"58":{"start":{"line":59,"column":29},"end":{"line":59,"column":62}},"59":{"start":{"line":60,"column":12},"end":{"line":63,"column":13}},"60":{"start":{"line":61,"column":16},"end":{"line":61,"column":149}},"61":{"start":{"line":62,"column":16},"end":{"line":62,"column":23}},"62":{"start":{"line":64,"column":39},"end":{"line":64,"column":56}},"63":{"start":{"line":65,"column":28},"end":{"line":65,"column":71}},"64":{"start":{"line":66,"column":12},"end":{"line":71,"column":13}},"65":{"start":{"line":67,"column":16},"end":{"line":67,"column":88}},"66":{"start":{"line":68,"column":16},"end":{"line":69,"column":204}},"67":{"start":{"line":70,"column":16},"end":{"line":70,"column":23}},"68":{"start":{"line":72,"column":12},"end":{"line":78,"column":15}},"69":{"start":{"line":79,"column":12},"end":{"line":79,"column":126}},"70":{"start":{"line":80,"column":12},"end":{"line":82,"column":13}},"71":{"start":{"line":81,"column":16},"end":{"line":81,"column":143}},"72":{"start":{"line":83,"column":12},"end":{"line":85,"column":13}},"73":{"start":{"line":84,"column":16},"end":{"line":84,"column":23}},"74":{"start":{"line":86,"column":12},"end":{"line":86,"column":105}},"75":{"start":{"line":87,"column":12},"end":{"line":87,"column":19}},"76":{"start":{"line":89,"column":8},"end":{"line":99,"column":12}},"77":{"start":{"line":89,"column":108},"end":{"line":99,"column":10}},"78":{"start":{"line":91,"column":27},"end":{"line":91,"column":62}},"79":{"start":{"line":92,"column":12},"end":{"line":95,"column":13}},"80":{"start":{"line":93,"column":16},"end":{"line":93,"column":140}},"81":{"start":{"line":94,"column":16},"end":{"line":94,"column":23}},"82":{"start":{"line":96,"column":12},"end":{"line":96,"column":89}},"83":{"start":{"line":97,"column":12},"end":{"line":97,"column":183}},"84":{"start":{"line":98,"column":12},"end":{"line":98,"column":145}},"85":{"start":{"line":100,"column":8},"end":{"line":116,"column":12}},"86":{"start":{"line":100,"column":96},"end":{"line":116,"column":10}},"87":{"start":{"line":102,"column":27},"end":{"line":102,"column":50}},"88":{"start":{"line":103,"column":12},"end":{"line":106,"column":13}},"89":{"start":{"line":104,"column":16},"end":{"line":104,"column":140}},"90":{"start":{"line":105,"column":16},"end":{"line":105,"column":23}},"91":{"start":{"line":107,"column":30},"end":{"line":107,"column":47}},"92":{"start":{"line":108,"column":12},"end":{"line":108,"column":75}},"93":{"start":{"line":109,"column":24},"end":{"line":114,"column":14}},"94":{"start":{"line":115,"column":12},"end":{"line":115,"column":193}},"95":{"start":{"line":117,"column":8},"end":{"line":131,"column":12}},"96":{"start":{"line":117,"column":112},"end":{"line":131,"column":10}},"97":{"start":{"line":119,"column":27},"end":{"line":119,"column":60}},"98":{"start":{"line":120,"column":29},"end":{"line":120,"column":62}},"99":{"start":{"line":121,"column":12},"end":{"line":121,"column":101}},"100":{"start":{"line":122,"column":12},"end":{"line":125,"column":13}},"101":{"start":{"line":123,"column":16},"end":{"line":123,"column":156}},"102":{"start":{"line":124,"column":16},"end":{"line":124,"column":23}},"103":{"start":{"line":126,"column":28},"end":{"line":126,"column":51}},"104":{"start":{"line":127,"column":12},"end":{"line":127,"column":110}},"105":{"start":{"line":128,"column":36},"end":{"line":128,"column":128}},"106":{"start":{"line":129,"column":12},"end":{"line":129,"column":84}},"107":{"start":{"line":130,"column":12},"end":{"line":130,"column":98}},"108":{"start":{"line":132,"column":8},"end":{"line":134,"column":12}},"109":{"start":{"line":132,"column":99},"end":{"line":134,"column":10}},"110":{"start":{"line":133,"column":12},"end":{"line":133,"column":158}},"111":{"start":{"line":135,"column":8},"end":{"line":159,"column":12}},"112":{"start":{"line":135,"column":95},"end":{"line":159,"column":10}},"113":{"start":{"line":136,"column":59},"end":{"line":136,"column":74}},"114":{"start":{"line":137,"column":31},"end":{"line":137,"column":78}},"115":{"start":{"line":138,"column":12},"end":{"line":145,"column":13}},"116":{"start":{"line":139,"column":16},"end":{"line":143,"column":45}},"117":{"start":{"line":144,"column":16},"end":{"line":144,"column":23}},"118":{"start":{"line":146,"column":23},"end":{"line":146,"column":87}},"119":{"start":{"line":147,"column":12},"end":{"line":147,"column":38}},"120":{"start":{"line":148,"column":12},"end":{"line":148,"column":74}},"121":{"start":{"line":149,"column":28},"end":{"line":149,"column":71}},"122":{"start":{"line":150,"column":29},"end":{"line":150,"column":69}},"123":{"start":{"line":151,"column":12},"end":{"line":158,"column":15}},"124":{"start":{"line":160,"column":8},"end":{"line":162,"column":11}},"125":{"start":{"line":161,"column":12},"end":{"line":161,"column":160}},"126":{"start":{"line":163,"column":8},"end":{"line":165,"column":11}},"127":{"start":{"line":164,"column":12},"end":{"line":164,"column":156}},"128":{"start":{"line":166,"column":8},"end":{"line":168,"column":11}},"129":{"start":{"line":167,"column":12},"end":{"line":167,"column":157}},"130":{"start":{"line":169,"column":8},"end":{"line":171,"column":11}},"131":{"start":{"line":170,"column":12},"end":{"line":170,"column":155}},"132":{"start":{"line":172,"column":8},"end":{"line":174,"column":11}},"133":{"start":{"line":173,"column":12},"end":{"line":173,"column":155}},"134":{"start":{"line":175,"column":8},"end":{"line":177,"column":11}},"135":{"start":{"line":176,"column":12},"end":{"line":176,"column":156}},"136":{"start":{"line":178,"column":8},"end":{"line":180,"column":11}},"137":{"start":{"line":179,"column":12},"end":{"line":179,"column":156}},"138":{"start":{"line":183,"column":0},"end":{"line":183,"column":52}},"139":{"start":{"line":186,"column":4},"end":{"line":208,"column":7}},"140":{"start":{"line":187,"column":35},"end":{"line":187,"column":107}},"141":{"start":{"line":188,"column":35},"end":{"line":206,"column":10}},"142":{"start":{"line":188,"column":45},"end":{"line":206,"column":10}},"143":{"start":{"line":189,"column":37},"end":{"line":189,"column":127}},"144":{"start":{"line":190,"column":26},"end":{"line":196,"column":13}},"145":{"start":{"line":197,"column":12},"end":{"line":205,"column":13}},"146":{"start":{"line":198,"column":34},"end":{"line":198,"column":101}},"147":{"start":{"line":199,"column":16},"end":{"line":199,"column":104}},"148":{"start":{"line":202,"column":16},"end":{"line":204,"column":20}},"149":{"start":{"line":207,"column":8},"end":{"line":207,"column":52}},"150":{"start":{"line":210,"column":0},"end":{"line":210,"column":48}},"151":{"start":{"line":212,"column":4},"end":{"line":230,"column":7}},"152":{"start":{"line":213,"column":23},"end":{"line":213,"column":51}},"153":{"start":{"line":214,"column":25},"end":{"line":214,"column":58}},"154":{"start":{"line":215,"column":32},"end":{"line":215,"column":87}},"155":{"start":{"line":216,"column":8},"end":{"line":216,"column":85}},"156":{"start":{"line":217,"column":40},"end":{"line":220,"column":12}},"157":{"start":{"line":217,"column":92},"end":{"line":220,"column":10}},"158":{"start":{"line":218,"column":31},"end":{"line":218,"column":103}},"159":{"start":{"line":219,"column":12},"end":{"line":219,"column":87}},"160":{"start":{"line":221,"column":32},"end":{"line":221,"column":74}},"161":{"start":{"line":221,"column":70},"end":{"line":221,"column":73}},"162":{"start":{"line":222,"column":38},"end":{"line":224,"column":11}},"163":{"start":{"line":222,"column":75},"end":{"line":224,"column":10}},"164":{"start":{"line":223,"column":12},"end":{"line":223,"column":76}},"165":{"start":{"line":225,"column":8},"end":{"line":229,"column":13}},"166":{"start":{"line":225,"column":66},"end":{"line":229,"column":10}},"167":{"start":{"line":226,"column":12},"end":{"line":226,"column":107}},"168":{"start":{"line":227,"column":12},"end":{"line":227,"column":125}},"169":{"start":{"line":228,"column":12},"end":{"line":228,"column":100}},"170":{"start":{"line":232,"column":0},"end":{"line":232,"column":64}},"171":{"start":{"line":234,"column":4},"end":{"line":234,"column":102}},"172":{"start":{"line":235,"column":131},"end":{"line":235,"column":156}},"173":{"start":{"line":236,"column":20},"end":{"line":242,"column":5}},"174":{"start":{"line":243,"column":4},"end":{"line":243,"column":58}},"175":{"start":{"line":246,"column":4},"end":{"line":246,"column":119}},"176":{"start":{"line":247,"column":131},"end":{"line":247,"column":156}},"177":{"start":{"line":248,"column":20},"end":{"line":255,"column":5}},"178":{"start":{"line":253,"column":59},"end":{"line":253,"column":116}},"179":{"start":{"line":256,"column":4},"end":{"line":256,"column":71}},"180":{"start":{"line":260,"column":4},"end":{"line":328,"column":7}},"181":{"start":{"line":261,"column":30},"end":{"line":261,"column":115}},"182":{"start":{"line":262,"column":8},"end":{"line":265,"column":9}},"183":{"start":{"line":263,"column":12},"end":{"line":263,"column":151}},"184":{"start":{"line":264,"column":12},"end":{"line":264,"column":19}},"185":{"start":{"line":266,"column":8},"end":{"line":268,"column":9}},"186":{"start":{"line":267,"column":12},"end":{"line":267,"column":19}},"187":{"start":{"line":269,"column":212},"end":{"line":269,"column":237}},"188":{"start":{"line":270,"column":8},"end":{"line":270,"column":86}},"189":{"start":{"line":271,"column":25},"end":{"line":271,"column":46}},"190":{"start":{"line":272,"column":8},"end":{"line":275,"column":9}},"191":{"start":{"line":273,"column":12},"end":{"line":273,"column":77}},"192":{"start":{"line":274,"column":12},"end":{"line":274,"column":19}},"193":{"start":{"line":276,"column":29},"end":{"line":276,"column":159}},"194":{"start":{"line":278,"column":8},"end":{"line":284,"column":9}},"195":{"start":{"line":279,"column":12},"end":{"line":279,"column":99}},"196":{"start":{"line":280,"column":12},"end":{"line":280,"column":47}},"197":{"start":{"line":283,"column":12},"end":{"line":283,"column":57}},"198":{"start":{"line":285,"column":25},"end":{"line":285,"column":109}},"199":{"start":{"line":285,"column":51},"end":{"line":285,"column":108}},"200":{"start":{"line":286,"column":24},"end":{"line":294,"column":9}},"201":{"start":{"line":293,"column":112},"end":{"line":293,"column":124}},"202":{"start":{"line":295,"column":8},"end":{"line":295,"column":85}},"203":{"start":{"line":296,"column":8},"end":{"line":306,"column":9}},"204":{"start":{"line":298,"column":12},"end":{"line":304,"column":15}},"205":{"start":{"line":305,"column":12},"end":{"line":305,"column":19}},"206":{"start":{"line":307,"column":8},"end":{"line":327,"column":9}},"207":{"start":{"line":309,"column":12},"end":{"line":315,"column":15}},"208":{"start":{"line":316,"column":31},"end":{"line":316,"column":77}},"209":{"start":{"line":317,"column":42},"end":{"line":317,"column":115}},"210":{"start":{"line":317,"column":65},"end":{"line":317,"column":114}},"211":{"start":{"line":318,"column":12},"end":{"line":320,"column":13}},"212":{"start":{"line":319,"column":16},"end":{"line":319,"column":23}},"213":{"start":{"line":321,"column":12},"end":{"line":326,"column":16}},"214":{"start":{"line":330,"column":0},"end":{"line":330,"column":78}},"215":{"start":{"line":333,"column":4},"end":{"line":364,"column":7}},"216":{"start":{"line":334,"column":30},"end":{"line":334,"column":115}},"217":{"start":{"line":335,"column":8},"end":{"line":338,"column":9}},"218":{"start":{"line":336,"column":12},"end":{"line":336,"column":151}},"219":{"start":{"line":337,"column":12},"end":{"line":337,"column":19}},"220":{"start":{"line":339,"column":8},"end":{"line":341,"column":9}},"221":{"start":{"line":340,"column":12},"end":{"line":340,"column":19}},"222":{"start":{"line":342,"column":8},"end":{"line":342,"column":129}},"223":{"start":{"line":343,"column":178},"end":{"line":343,"column":203}},"224":{"start":{"line":344,"column":29},"end":{"line":344,"column":159}},"225":{"start":{"line":346,"column":8},"end":{"line":352,"column":9}},"226":{"start":{"line":347,"column":12},"end":{"line":347,"column":98}},"227":{"start":{"line":348,"column":12},"end":{"line":348,"column":47}},"228":{"start":{"line":351,"column":12},"end":{"line":351,"column":57}},"229":{"start":{"line":353,"column":25},"end":{"line":353,"column":46}},"230":{"start":{"line":354,"column":24},"end":{"line":362,"column":9}},"231":{"start":{"line":358,"column":63},"end":{"line":358,"column":120}},"232":{"start":{"line":361,"column":112},"end":{"line":361,"column":124}},"233":{"start":{"line":363,"column":8},"end":{"line":363,"column":86}},"234":{"start":{"line":367,"column":4},"end":{"line":377,"column":7}},"235":{"start":{"line":368,"column":30},"end":{"line":368,"column":115}},"236":{"start":{"line":369,"column":8},"end":{"line":372,"column":9}},"237":{"start":{"line":370,"column":12},"end":{"line":370,"column":183}},"238":{"start":{"line":371,"column":12},"end":{"line":371,"column":19}},"239":{"start":{"line":373,"column":8},"end":{"line":375,"column":9}},"240":{"start":{"line":374,"column":12},"end":{"line":374,"column":19}},"241":{"start":{"line":376,"column":8},"end":{"line":376,"column":152}},"242":{"start":{"line":381,"column":4},"end":{"line":465,"column":7}},"243":{"start":{"line":382,"column":30},"end":{"line":382,"column":115}},"244":{"start":{"line":383,"column":8},"end":{"line":386,"column":9}},"245":{"start":{"line":384,"column":12},"end":{"line":384,"column":151}},"246":{"start":{"line":385,"column":12},"end":{"line":385,"column":19}},"247":{"start":{"line":387,"column":8},"end":{"line":389,"column":9}},"248":{"start":{"line":388,"column":12},"end":{"line":388,"column":19}},"249":{"start":{"line":390,"column":23},"end":{"line":390,"column":59}},"250":{"start":{"line":391,"column":25},"end":{"line":391,"column":58}},"251":{"start":{"line":392,"column":175},"end":{"line":392,"column":200}},"252":{"start":{"line":393,"column":8},"end":{"line":393,"column":81}},"253":{"start":{"line":394,"column":8},"end":{"line":397,"column":9}},"254":{"start":{"line":395,"column":12},"end":{"line":395,"column":117}},"255":{"start":{"line":396,"column":12},"end":{"line":396,"column":19}},"256":{"start":{"line":398,"column":33},"end":{"line":400,"column":57}},"257":{"start":{"line":399,"column":36},"end":{"line":399,"column":50}},"258":{"start":{"line":401,"column":8},"end":{"line":408,"column":30}},"259":{"start":{"line":410,"column":8},"end":{"line":413,"column":9}},"260":{"start":{"line":411,"column":12},"end":{"line":411,"column":419}},"261":{"start":{"line":412,"column":12},"end":{"line":412,"column":158}},"262":{"start":{"line":414,"column":25},"end":{"line":414,"column":109}},"263":{"start":{"line":414,"column":51},"end":{"line":414,"column":108}},"264":{"start":{"line":415,"column":24},"end":{"line":428,"column":9}},"265":{"start":{"line":429,"column":8},"end":{"line":429,"column":76}},"266":{"start":{"line":430,"column":8},"end":{"line":433,"column":9}},"267":{"start":{"line":431,"column":12},"end":{"line":431,"column":163}},"268":{"start":{"line":432,"column":12},"end":{"line":432,"column":19}},"269":{"start":{"line":434,"column":8},"end":{"line":437,"column":9}},"270":{"start":{"line":435,"column":12},"end":{"line":435,"column":149}},"271":{"start":{"line":436,"column":12},"end":{"line":436,"column":19}},"272":{"start":{"line":438,"column":8},"end":{"line":442,"column":9}},"273":{"start":{"line":439,"column":12},"end":{"line":439,"column":82}},"274":{"start":{"line":440,"column":12},"end":{"line":440,"column":115}},"275":{"start":{"line":441,"column":12},"end":{"line":441,"column":19}},"276":{"start":{"line":443,"column":8},"end":{"line":447,"column":9}},"277":{"start":{"line":444,"column":12},"end":{"line":444,"column":82}},"278":{"start":{"line":445,"column":12},"end":{"line":445,"column":118}},"279":{"start":{"line":446,"column":12},"end":{"line":446,"column":19}},"280":{"start":{"line":448,"column":35},"end":{"line":448,"column":130}},"281":{"start":{"line":449,"column":8},"end":{"line":453,"column":9}},"282":{"start":{"line":450,"column":12},"end":{"line":450,"column":82}},"283":{"start":{"line":451,"column":12},"end":{"line":451,"column":139}},"284":{"start":{"line":452,"column":12},"end":{"line":452,"column":19}},"285":{"start":{"line":454,"column":19},"end":{"line":454,"column":48}},"286":{"start":{"line":455,"column":8},"end":{"line":455,"column":54}},"287":{"start":{"line":456,"column":8},"end":{"line":456,"column":78}},"288":{"start":{"line":457,"column":8},"end":{"line":463,"column":11}},"289":{"start":{"line":464,"column":8},"end":{"line":464,"column":86}},"290":{"start":{"line":467,"column":0},"end":{"line":467,"column":80}},"291":{"start":{"line":468,"column":27},"end":{"line":475,"column":2}},"292":{"start":{"line":468,"column":71},"end":{"line":475,"column":2}},"293":{"start":{"line":469,"column":25},"end":{"line":469,"column":186}},"294":{"start":{"line":470,"column":4},"end":{"line":472,"column":5}},"295":{"start":{"line":471,"column":8},"end":{"line":471,"column":67}},"296":{"start":{"line":473,"column":27},"end":{"line":473,"column":50}},"297":{"start":{"line":474,"column":4},"end":{"line":474,"column":80}},"298":{"start":{"line":476,"column":0},"end":{"line":476,"column":48}},"299":{"start":{"line":477,"column":26},"end":{"line":547,"column":2}},"300":{"start":{"line":477,"column":116},"end":{"line":547,"column":2}},"301":{"start":{"line":479,"column":19},"end":{"line":479,"column":38}},"302":{"start":{"line":480,"column":21},"end":{"line":480,"column":54}},"303":{"start":{"line":481,"column":96},"end":{"line":481,"column":108}},"304":{"start":{"line":482,"column":4},"end":{"line":482,"column":125}},"305":{"start":{"line":483,"column":164},"end":{"line":483,"column":172}},"306":{"start":{"line":484,"column":29},"end":{"line":484,"column":96}},"307":{"start":{"line":485,"column":29},"end":{"line":485,"column":122}},"308":{"start":{"line":485,"column":67},"end":{"line":485,"column":81}},"309":{"start":{"line":486,"column":4},"end":{"line":486,"column":114}},"310":{"start":{"line":487,"column":21},"end":{"line":487,"column":105}},"311":{"start":{"line":487,"column":47},"end":{"line":487,"column":104}},"312":{"start":{"line":488,"column":20},"end":{"line":500,"column":5}},"313":{"start":{"line":501,"column":4},"end":{"line":501,"column":71}},"314":{"start":{"line":502,"column":4},"end":{"line":505,"column":5}},"315":{"start":{"line":503,"column":8},"end":{"line":503,"column":64}},"316":{"start":{"line":504,"column":8},"end":{"line":504,"column":15}},"317":{"start":{"line":506,"column":23},"end":{"line":506,"column":170}},"318":{"start":{"line":507,"column":31},"end":{"line":507,"column":80}},"319":{"start":{"line":508,"column":4},"end":{"line":508,"column":75}},"320":{"start":{"line":509,"column":4},"end":{"line":509,"column":83}},"321":{"start":{"line":510,"column":23},"end":{"line":515,"column":6}},"322":{"start":{"line":516,"column":4},"end":{"line":524,"column":5}},"323":{"start":{"line":517,"column":8},"end":{"line":522,"column":32}},"324":{"start":{"line":523,"column":8},"end":{"line":523,"column":15}},"325":{"start":{"line":525,"column":4},"end":{"line":525,"column":120}},"326":{"start":{"line":526,"column":4},"end":{"line":546,"column":5}},"327":{"start":{"line":527,"column":8},"end":{"line":527,"column":129}},"328":{"start":{"line":528,"column":35},"end":{"line":528,"column":117}},"329":{"start":{"line":529,"column":8},"end":{"line":545,"column":9}},"330":{"start":{"line":530,"column":36},"end":{"line":530,"column":81}},"331":{"start":{"line":531,"column":12},"end":{"line":531,"column":69}},"332":{"start":{"line":532,"column":12},"end":{"line":532,"column":55}},"333":{"start":{"line":533,"column":12},"end":{"line":533,"column":91}},"334":{"start":{"line":534,"column":12},"end":{"line":534,"column":177}},"335":{"start":{"line":535,"column":12},"end":{"line":541,"column":15}},"336":{"start":{"line":544,"column":12},"end":{"line":544,"column":106}},"337":{"start":{"line":548,"column":0},"end":{"line":548,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":44},"end":{"line":2,"column":45}},"loc":{"start":{"line":2,"column":89},"end":{"line":10,"column":1}},"line":2},"1":{"name":"adopt","decl":{"start":{"line":3,"column":13},"end":{"line":3,"column":18}},"loc":{"start":{"line":3,"column":26},"end":{"line":3,"column":112}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":3,"column":70},"end":{"line":3,"column":71}},"loc":{"start":{"line":3,"column":89},"end":{"line":3,"column":108}},"line":3},"3":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":36},"end":{"line":4,"column":37}},"loc":{"start":{"line":4,"column":63},"end":{"line":9,"column":5}},"line":4},"4":{"name":"fulfilled","decl":{"start":{"line":5,"column":17},"end":{"line":5,"column":26}},"loc":{"start":{"line":5,"column":34},"end":{"line":5,"column":99}},"line":5},"5":{"name":"rejected","decl":{"start":{"line":6,"column":17},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":33},"end":{"line":6,"column":102}},"line":6},"6":{"name":"step","decl":{"start":{"line":7,"column":17},"end":{"line":7,"column":21}},"loc":{"start":{"line":7,"column":30},"end":{"line":7,"column":118}},"line":7},"7":{"name":"(anonymous_7)","decl":{"start":{"line":11,"column":56},"end":{"line":11,"column":57}},"loc":{"start":{"line":11,"column":71},"end":{"line":13,"column":1}},"line":11},"8":{"name":"setupEngineListeners","decl":{"start":{"line":25,"column":9},"end":{"line":25,"column":29}},"loc":{"start":{"line":25,"column":137},"end":{"line":182,"column":1}},"line":25},"9":{"name":"(anonymous_9)","decl":{"start":{"line":26,"column":43},"end":{"line":26,"column":44}},"loc":{"start":{"line":26,"column":56},"end":{"line":181,"column":5}},"line":26},"10":{"name":"(anonymous_10)","decl":{"start":{"line":27,"column":73},"end":{"line":27,"column":74}},"loc":{"start":{"line":27,"column":84},"end":{"line":27,"column":132}},"line":27},"11":{"name":"(anonymous_11)","decl":{"start":{"line":27,"column":134},"end":{"line":27,"column":135}},"loc":{"start":{"line":27,"column":145},"end":{"line":30,"column":9}},"line":27},"12":{"name":"(anonymous_12)","decl":{"start":{"line":31,"column":73},"end":{"line":31,"column":74}},"loc":{"start":{"line":31,"column":84},"end":{"line":31,"column":148}},"line":31},"13":{"name":"(anonymous_13)","decl":{"start":{"line":31,"column":150},"end":{"line":31,"column":151}},"loc":{"start":{"line":31,"column":161},"end":{"line":34,"column":9}},"line":31},"14":{"name":"(anonymous_14)","decl":{"start":{"line":35,"column":73},"end":{"line":35,"column":74}},"loc":{"start":{"line":35,"column":84},"end":{"line":37,"column":10}},"line":35},"15":{"name":"(anonymous_15)","decl":{"start":{"line":35,"column":116},"end":{"line":35,"column":117}},"loc":{"start":{"line":35,"column":129},"end":{"line":37,"column":9}},"line":35},"16":{"name":"(anonymous_16)","decl":{"start":{"line":37,"column":12},"end":{"line":37,"column":13}},"loc":{"start":{"line":37,"column":23},"end":{"line":40,"column":9}},"line":37},"17":{"name":"(anonymous_17)","decl":{"start":{"line":41,"column":73},"end":{"line":41,"column":74}},"loc":{"start":{"line":41,"column":84},"end":{"line":41,"column":241}},"line":41},"18":{"name":"(anonymous_18)","decl":{"start":{"line":41,"column":116},"end":{"line":41,"column":117}},"loc":{"start":{"line":41,"column":129},"end":{"line":41,"column":240}},"line":41},"19":{"name":"(anonymous_19)","decl":{"start":{"line":41,"column":243},"end":{"line":41,"column":244}},"loc":{"start":{"line":41,"column":254},"end":{"line":44,"column":9}},"line":41},"20":{"name":"(anonymous_20)","decl":{"start":{"line":45,"column":73},"end":{"line":45,"column":74}},"loc":{"start":{"line":45,"column":84},"end":{"line":47,"column":10}},"line":45},"21":{"name":"(anonymous_21)","decl":{"start":{"line":45,"column":116},"end":{"line":45,"column":117}},"loc":{"start":{"line":45,"column":129},"end":{"line":47,"column":9}},"line":45},"22":{"name":"(anonymous_22)","decl":{"start":{"line":47,"column":12},"end":{"line":47,"column":13}},"loc":{"start":{"line":47,"column":23},"end":{"line":50,"column":9}},"line":47},"23":{"name":"(anonymous_23)","decl":{"start":{"line":51,"column":73},"end":{"line":51,"column":74}},"loc":{"start":{"line":51,"column":84},"end":{"line":51,"column":248}},"line":51},"24":{"name":"(anonymous_24)","decl":{"start":{"line":51,"column":116},"end":{"line":51,"column":117}},"loc":{"start":{"line":51,"column":129},"end":{"line":51,"column":247}},"line":51},"25":{"name":"(anonymous_25)","decl":{"start":{"line":51,"column":250},"end":{"line":51,"column":251}},"loc":{"start":{"line":51,"column":261},"end":{"line":54,"column":9}},"line":51},"26":{"name":"(anonymous_26)","decl":{"start":{"line":55,"column":73},"end":{"line":55,"column":74}},"loc":{"start":{"line":55,"column":98},"end":{"line":88,"column":10}},"line":55},"27":{"name":"(anonymous_27)","decl":{"start":{"line":55,"column":130},"end":{"line":55,"column":131}},"loc":{"start":{"line":55,"column":143},"end":{"line":88,"column":9}},"line":55},"28":{"name":"(anonymous_28)","decl":{"start":{"line":89,"column":83},"end":{"line":89,"column":84}},"loc":{"start":{"line":89,"column":108},"end":{"line":99,"column":10}},"line":89},"29":{"name":"(anonymous_29)","decl":{"start":{"line":89,"column":140},"end":{"line":89,"column":141}},"loc":{"start":{"line":89,"column":153},"end":{"line":99,"column":9}},"line":89},"30":{"name":"(anonymous_30)","decl":{"start":{"line":100,"column":71},"end":{"line":100,"column":72}},"loc":{"start":{"line":100,"column":96},"end":{"line":116,"column":10}},"line":100},"31":{"name":"(anonymous_31)","decl":{"start":{"line":100,"column":128},"end":{"line":100,"column":129}},"loc":{"start":{"line":100,"column":141},"end":{"line":116,"column":9}},"line":100},"32":{"name":"(anonymous_32)","decl":{"start":{"line":117,"column":81},"end":{"line":117,"column":82}},"loc":{"start":{"line":117,"column":112},"end":{"line":131,"column":10}},"line":117},"33":{"name":"(anonymous_33)","decl":{"start":{"line":117,"column":144},"end":{"line":117,"column":145}},"loc":{"start":{"line":117,"column":157},"end":{"line":131,"column":9}},"line":117},"34":{"name":"(anonymous_34)","decl":{"start":{"line":132,"column":89},"end":{"line":132,"column":90}},"loc":{"start":{"line":132,"column":99},"end":{"line":134,"column":10}},"line":132},"35":{"name":"(anonymous_35)","decl":{"start":{"line":132,"column":131},"end":{"line":132,"column":132}},"loc":{"start":{"line":132,"column":144},"end":{"line":134,"column":9}},"line":132},"36":{"name":"(anonymous_36)","decl":{"start":{"line":135,"column":85},"end":{"line":135,"column":86}},"loc":{"start":{"line":135,"column":95},"end":{"line":159,"column":10}},"line":135},"37":{"name":"(anonymous_37)","decl":{"start":{"line":135,"column":127},"end":{"line":135,"column":128}},"loc":{"start":{"line":135,"column":140},"end":{"line":159,"column":9}},"line":135},"38":{"name":"(anonymous_38)","decl":{"start":{"line":160,"column":75},"end":{"line":160,"column":76}},"loc":{"start":{"line":160,"column":85},"end":{"line":162,"column":9}},"line":160},"39":{"name":"(anonymous_39)","decl":{"start":{"line":163,"column":71},"end":{"line":163,"column":72}},"loc":{"start":{"line":163,"column":81},"end":{"line":165,"column":9}},"line":163},"40":{"name":"(anonymous_40)","decl":{"start":{"line":166,"column":72},"end":{"line":166,"column":73}},"loc":{"start":{"line":166,"column":82},"end":{"line":168,"column":9}},"line":166},"41":{"name":"(anonymous_41)","decl":{"start":{"line":169,"column":70},"end":{"line":169,"column":71}},"loc":{"start":{"line":169,"column":80},"end":{"line":171,"column":9}},"line":169},"42":{"name":"(anonymous_42)","decl":{"start":{"line":172,"column":70},"end":{"line":172,"column":71}},"loc":{"start":{"line":172,"column":80},"end":{"line":174,"column":9}},"line":172},"43":{"name":"(anonymous_43)","decl":{"start":{"line":175,"column":71},"end":{"line":175,"column":72}},"loc":{"start":{"line":175,"column":81},"end":{"line":177,"column":9}},"line":175},"44":{"name":"(anonymous_44)","decl":{"start":{"line":178,"column":71},"end":{"line":178,"column":72}},"loc":{"start":{"line":178,"column":81},"end":{"line":180,"column":9}},"line":178},"45":{"name":"getWithdrawalQuote","decl":{"start":{"line":184,"column":9},"end":{"line":184,"column":27}},"loc":{"start":{"line":184,"column":100},"end":{"line":209,"column":1}},"line":184},"46":{"name":"(anonymous_46)","decl":{"start":{"line":186,"column":43},"end":{"line":186,"column":44}},"loc":{"start":{"line":186,"column":56},"end":{"line":208,"column":5}},"line":186},"47":{"name":"(anonymous_47)","decl":{"start":{"line":188,"column":35},"end":{"line":188,"column":36}},"loc":{"start":{"line":188,"column":45},"end":{"line":206,"column":10}},"line":188},"48":{"name":"(anonymous_48)","decl":{"start":{"line":188,"column":77},"end":{"line":188,"column":78}},"loc":{"start":{"line":188,"column":90},"end":{"line":206,"column":9}},"line":188},"49":{"name":"resolveExistingWithdrawals","decl":{"start":{"line":211,"column":9},"end":{"line":211,"column":35}},"loc":{"start":{"line":211,"column":123},"end":{"line":231,"column":1}},"line":211},"50":{"name":"(anonymous_50)","decl":{"start":{"line":212,"column":43},"end":{"line":212,"column":44}},"loc":{"start":{"line":212,"column":56},"end":{"line":230,"column":5}},"line":212},"51":{"name":"(anonymous_51)","decl":{"start":{"line":217,"column":78},"end":{"line":217,"column":79}},"loc":{"start":{"line":217,"column":92},"end":{"line":220,"column":10}},"line":217},"52":{"name":"(anonymous_52)","decl":{"start":{"line":217,"column":124},"end":{"line":217,"column":125}},"loc":{"start":{"line":217,"column":137},"end":{"line":220,"column":9}},"line":217},"53":{"name":"(anonymous_53)","decl":{"start":{"line":221,"column":63},"end":{"line":221,"column":64}},"loc":{"start":{"line":221,"column":70},"end":{"line":221,"column":73}},"line":221},"54":{"name":"(anonymous_54)","decl":{"start":{"line":222,"column":61},"end":{"line":222,"column":62}},"loc":{"start":{"line":222,"column":75},"end":{"line":224,"column":10}},"line":222},"55":{"name":"(anonymous_55)","decl":{"start":{"line":222,"column":107},"end":{"line":222,"column":108}},"loc":{"start":{"line":222,"column":120},"end":{"line":224,"column":9}},"line":222},"56":{"name":"(anonymous_56)","decl":{"start":{"line":225,"column":52},"end":{"line":225,"column":53}},"loc":{"start":{"line":225,"column":66},"end":{"line":229,"column":10}},"line":225},"57":{"name":"(anonymous_57)","decl":{"start":{"line":225,"column":98},"end":{"line":225,"column":99}},"loc":{"start":{"line":225,"column":111},"end":{"line":229,"column":9}},"line":225},"58":{"name":"handleSetup","decl":{"start":{"line":233,"column":9},"end":{"line":233,"column":20}},"loc":{"start":{"line":233,"column":58},"end":{"line":244,"column":1}},"line":233},"59":{"name":"handleDepositReconciliation","decl":{"start":{"line":245,"column":9},"end":{"line":245,"column":36}},"loc":{"start":{"line":245,"column":74},"end":{"line":257,"column":1}},"line":245},"60":{"name":"(anonymous_60)","decl":{"start":{"line":253,"column":52},"end":{"line":253,"column":53}},"loc":{"start":{"line":253,"column":59},"end":{"line":253,"column":116}},"line":253},"61":{"name":"handleConditionalTransferCreation","decl":{"start":{"line":258,"column":9},"end":{"line":258,"column":42}},"loc":{"start":{"line":258,"column":120},"end":{"line":329,"column":1}},"line":258},"62":{"name":"(anonymous_62)","decl":{"start":{"line":260,"column":43},"end":{"line":260,"column":44}},"loc":{"start":{"line":260,"column":56},"end":{"line":328,"column":5}},"line":260},"63":{"name":"(anonymous_63)","decl":{"start":{"line":285,"column":44},"end":{"line":285,"column":45}},"loc":{"start":{"line":285,"column":51},"end":{"line":285,"column":108}},"line":285},"64":{"name":"(anonymous_64)","decl":{"start":{"line":293,"column":105},"end":{"line":293,"column":106}},"loc":{"start":{"line":293,"column":112},"end":{"line":293,"column":124}},"line":293},"65":{"name":"(anonymous_65)","decl":{"start":{"line":317,"column":58},"end":{"line":317,"column":59}},"loc":{"start":{"line":317,"column":65},"end":{"line":317,"column":114}},"line":317},"66":{"name":"handleConditionalTransferResolution","decl":{"start":{"line":331,"column":9},"end":{"line":331,"column":44}},"loc":{"start":{"line":331,"column":103},"end":{"line":365,"column":1}},"line":331},"67":{"name":"(anonymous_67)","decl":{"start":{"line":333,"column":43},"end":{"line":333,"column":44}},"loc":{"start":{"line":333,"column":56},"end":{"line":364,"column":5}},"line":333},"68":{"name":"(anonymous_68)","decl":{"start":{"line":358,"column":56},"end":{"line":358,"column":57}},"loc":{"start":{"line":358,"column":63},"end":{"line":358,"column":120}},"line":358},"69":{"name":"(anonymous_69)","decl":{"start":{"line":361,"column":105},"end":{"line":361,"column":106}},"loc":{"start":{"line":361,"column":112},"end":{"line":361,"column":124}},"line":361},"70":{"name":"handleWithdrawalTransferCreation","decl":{"start":{"line":366,"column":9},"end":{"line":366,"column":41}},"loc":{"start":{"line":366,"column":127},"end":{"line":378,"column":1}},"line":366},"71":{"name":"(anonymous_71)","decl":{"start":{"line":367,"column":43},"end":{"line":367,"column":44}},"loc":{"start":{"line":367,"column":56},"end":{"line":377,"column":5}},"line":367},"72":{"name":"handleWithdrawalTransferResolution","decl":{"start":{"line":379,"column":9},"end":{"line":379,"column":43}},"loc":{"start":{"line":379,"column":129},"end":{"line":466,"column":1}},"line":379},"73":{"name":"(anonymous_73)","decl":{"start":{"line":381,"column":43},"end":{"line":381,"column":44}},"loc":{"start":{"line":381,"column":56},"end":{"line":465,"column":5}},"line":381},"74":{"name":"(anonymous_74)","decl":{"start":{"line":399,"column":20},"end":{"line":399,"column":21}},"loc":{"start":{"line":399,"column":36},"end":{"line":399,"column":50}},"line":399},"75":{"name":"(anonymous_75)","decl":{"start":{"line":414,"column":44},"end":{"line":414,"column":45}},"loc":{"start":{"line":414,"column":51},"end":{"line":414,"column":108}},"line":414},"76":{"name":"(anonymous_76)","decl":{"start":{"line":468,"column":27},"end":{"line":468,"column":28}},"loc":{"start":{"line":468,"column":71},"end":{"line":475,"column":2}},"line":468},"77":{"name":"(anonymous_77)","decl":{"start":{"line":468,"column":105},"end":{"line":468,"column":106}},"loc":{"start":{"line":468,"column":118},"end":{"line":475,"column":1}},"line":468},"78":{"name":"(anonymous_78)","decl":{"start":{"line":477,"column":26},"end":{"line":477,"column":27}},"loc":{"start":{"line":477,"column":116},"end":{"line":547,"column":2}},"line":477},"79":{"name":"(anonymous_79)","decl":{"start":{"line":477,"column":150},"end":{"line":477,"column":151}},"loc":{"start":{"line":477,"column":163},"end":{"line":547,"column":1}},"line":477},"80":{"name":"(anonymous_80)","decl":{"start":{"line":485,"column":51},"end":{"line":485,"column":52}},"loc":{"start":{"line":485,"column":67},"end":{"line":485,"column":81}},"line":485},"81":{"name":"(anonymous_81)","decl":{"start":{"line":487,"column":40},"end":{"line":487,"column":41}},"loc":{"start":{"line":487,"column":47},"end":{"line":487,"column":104}},"line":487}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":17},"end":{"line":2,"column":21}},{"start":{"line":2,"column":25},"end":{"line":2,"column":39}},{"start":{"line":2,"column":44},"end":{"line":10,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":35},"end":{"line":3,"column":109}},"type":"cond-expr","locations":[{"start":{"line":3,"column":56},"end":{"line":3,"column":61}},{"start":{"line":3,"column":64},"end":{"line":3,"column":109}}],"line":3},"2":{"loc":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"type":"binary-expr","locations":[{"start":{"line":4,"column":16},"end":{"line":4,"column":17}},{"start":{"line":4,"column":22},"end":{"line":4,"column":33}}],"line":4},"3":{"loc":{"start":{"line":7,"column":32},"end":{"line":7,"column":115}},"type":"cond-expr","locations":[{"start":{"line":7,"column":46},"end":{"line":7,"column":67}},{"start":{"line":7,"column":70},"end":{"line":7,"column":115}}],"line":7},"4":{"loc":{"start":{"line":8,"column":51},"end":{"line":8,"column":67}},"type":"binary-expr","locations":[{"start":{"line":8,"column":51},"end":{"line":8,"column":61}},{"start":{"line":8,"column":65},"end":{"line":8,"column":67}}],"line":8},"5":{"loc":{"start":{"line":11,"column":22},"end":{"line":13,"column":1}},"type":"binary-expr","locations":[{"start":{"line":11,"column":23},"end":{"line":11,"column":27}},{"start":{"line":11,"column":31},"end":{"line":11,"column":51}},{"start":{"line":11,"column":56},"end":{"line":13,"column":1}}],"line":11},"6":{"loc":{"start":{"line":12,"column":11},"end":{"line":12,"column":61}},"type":"cond-expr","locations":[{"start":{"line":12,"column":37},"end":{"line":12,"column":40}},{"start":{"line":12,"column":43},"end":{"line":12,"column":61}}],"line":12},"7":{"loc":{"start":{"line":12,"column":12},"end":{"line":12,"column":33}},"type":"binary-expr","locations":[{"start":{"line":12,"column":12},"end":{"line":12,"column":15}},{"start":{"line":12,"column":19},"end":{"line":12,"column":33}}],"line":12},"8":{"loc":{"start":{"line":60,"column":12},"end":{"line":63,"column":13}},"type":"if","locations":[{"start":{"line":60,"column":12},"end":{"line":63,"column":13}},{"start":{"line":60,"column":12},"end":{"line":63,"column":13}}],"line":60},"9":{"loc":{"start":{"line":61,"column":37},"end":{"line":61,"column":109}},"type":"cond-expr","locations":[{"start":{"line":61,"column":90},"end":{"line":61,"column":96}},{"start":{"line":61,"column":99},"end":{"line":61,"column":109}}],"line":61},"10":{"loc":{"start":{"line":61,"column":37},"end":{"line":61,"column":87}},"type":"binary-expr","locations":[{"start":{"line":61,"column":37},"end":{"line":61,"column":70}},{"start":{"line":61,"column":74},"end":{"line":61,"column":87}}],"line":61},"11":{"loc":{"start":{"line":66,"column":12},"end":{"line":71,"column":13}},"type":"if","locations":[{"start":{"line":66,"column":12},"end":{"line":71,"column":13}},{"start":{"line":66,"column":12},"end":{"line":71,"column":13}}],"line":66},"12":{"loc":{"start":{"line":68,"column":16},"end":{"line":69,"column":203}},"type":"binary-expr","locations":[{"start":{"line":68,"column":16},"end":{"line":68,"column":29}},{"start":{"line":69,"column":20},"end":{"line":69,"column":203}}],"line":68},"13":{"loc":{"start":{"line":77,"column":29},"end":{"line":77,"column":104}},"type":"cond-expr","locations":[{"start":{"line":77,"column":94},"end":{"line":77,"column":96}},{"start":{"line":77,"column":99},"end":{"line":77,"column":104}}],"line":77},"14":{"loc":{"start":{"line":77,"column":29},"end":{"line":77,"column":91}},"type":"binary-expr","locations":[{"start":{"line":77,"column":29},"end":{"line":77,"column":74}},{"start":{"line":77,"column":78},"end":{"line":77,"column":91}}],"line":77},"15":{"loc":{"start":{"line":80,"column":12},"end":{"line":82,"column":13}},"type":"if","locations":[{"start":{"line":80,"column":12},"end":{"line":82,"column":13}},{"start":{"line":80,"column":12},"end":{"line":82,"column":13}}],"line":80},"16":{"loc":{"start":{"line":80,"column":16},"end":{"line":80,"column":107}},"type":"binary-expr","locations":[{"start":{"line":80,"column":16},"end":{"line":80,"column":52}},{"start":{"line":80,"column":56},"end":{"line":80,"column":107}}],"line":80},"17":{"loc":{"start":{"line":83,"column":12},"end":{"line":85,"column":13}},"type":"if","locations":[{"start":{"line":83,"column":12},"end":{"line":85,"column":13}},{"start":{"line":83,"column":12},"end":{"line":85,"column":13}}],"line":83},"18":{"loc":{"start":{"line":92,"column":12},"end":{"line":95,"column":13}},"type":"if","locations":[{"start":{"line":92,"column":12},"end":{"line":95,"column":13}},{"start":{"line":92,"column":12},"end":{"line":95,"column":13}}],"line":92},"19":{"loc":{"start":{"line":93,"column":38},"end":{"line":93,"column":110}},"type":"cond-expr","locations":[{"start":{"line":93,"column":91},"end":{"line":93,"column":97}},{"start":{"line":93,"column":100},"end":{"line":93,"column":110}}],"line":93},"20":{"loc":{"start":{"line":93,"column":38},"end":{"line":93,"column":88}},"type":"binary-expr","locations":[{"start":{"line":93,"column":38},"end":{"line":93,"column":71}},{"start":{"line":93,"column":75},"end":{"line":93,"column":88}}],"line":93},"21":{"loc":{"start":{"line":103,"column":12},"end":{"line":106,"column":13}},"type":"if","locations":[{"start":{"line":103,"column":12},"end":{"line":106,"column":13}},{"start":{"line":103,"column":12},"end":{"line":106,"column":13}}],"line":103},"22":{"loc":{"start":{"line":104,"column":38},"end":{"line":104,"column":110}},"type":"cond-expr","locations":[{"start":{"line":104,"column":91},"end":{"line":104,"column":97}},{"start":{"line":104,"column":100},"end":{"line":104,"column":110}}],"line":104},"23":{"loc":{"start":{"line":104,"column":38},"end":{"line":104,"column":88}},"type":"binary-expr","locations":[{"start":{"line":104,"column":38},"end":{"line":104,"column":71}},{"start":{"line":104,"column":75},"end":{"line":104,"column":88}}],"line":104},"24":{"loc":{"start":{"line":112,"column":25},"end":{"line":112,"column":132}},"type":"cond-expr","locations":[{"start":{"line":112,"column":78},"end":{"line":112,"column":80}},{"start":{"line":112,"column":83},"end":{"line":112,"column":132}}],"line":112},"25":{"loc":{"start":{"line":112,"column":25},"end":{"line":112,"column":75}},"type":"binary-expr","locations":[{"start":{"line":112,"column":25},"end":{"line":112,"column":58}},{"start":{"line":112,"column":62},"end":{"line":112,"column":75}}],"line":112},"26":{"loc":{"start":{"line":115,"column":57},"end":{"line":115,"column":191}},"type":"cond-expr","locations":[{"start":{"line":115,"column":71},"end":{"line":115,"column":113}},{"start":{"line":115,"column":116},"end":{"line":115,"column":191}}],"line":115},"27":{"loc":{"start":{"line":122,"column":12},"end":{"line":125,"column":13}},"type":"if","locations":[{"start":{"line":122,"column":12},"end":{"line":125,"column":13}},{"start":{"line":122,"column":12},"end":{"line":125,"column":13}}],"line":122},"28":{"loc":{"start":{"line":123,"column":38},"end":{"line":123,"column":116}},"type":"cond-expr","locations":[{"start":{"line":123,"column":97},"end":{"line":123,"column":103}},{"start":{"line":123,"column":106},"end":{"line":123,"column":116}}],"line":123},"29":{"loc":{"start":{"line":123,"column":38},"end":{"line":123,"column":94}},"type":"binary-expr","locations":[{"start":{"line":123,"column":38},"end":{"line":123,"column":77}},{"start":{"line":123,"column":81},"end":{"line":123,"column":94}}],"line":123},"30":{"loc":{"start":{"line":138,"column":12},"end":{"line":145,"column":13}},"type":"if","locations":[{"start":{"line":138,"column":12},"end":{"line":145,"column":13}},{"start":{"line":138,"column":12},"end":{"line":145,"column":13}}],"line":138},"31":{"loc":{"start":{"line":157,"column":22},"end":{"line":157,"column":87}},"type":"cond-expr","locations":[{"start":{"line":157,"column":65},"end":{"line":157,"column":71}},{"start":{"line":157,"column":74},"end":{"line":157,"column":87}}],"line":157},"32":{"loc":{"start":{"line":157,"column":22},"end":{"line":157,"column":62}},"type":"binary-expr","locations":[{"start":{"line":157,"column":22},"end":{"line":157,"column":39}},{"start":{"line":157,"column":43},"end":{"line":157,"column":62}}],"line":157},"33":{"loc":{"start":{"line":187,"column":35},"end":{"line":187,"column":107}},"type":"cond-expr","locations":[{"start":{"line":187,"column":97},"end":{"line":187,"column":99}},{"start":{"line":187,"column":102},"end":{"line":187,"column":107}}],"line":187},"34":{"loc":{"start":{"line":187,"column":35},"end":{"line":187,"column":94}},"type":"binary-expr","locations":[{"start":{"line":187,"column":35},"end":{"line":187,"column":77}},{"start":{"line":187,"column":81},"end":{"line":187,"column":94}}],"line":187},"35":{"loc":{"start":{"line":189,"column":37},"end":{"line":189,"column":127}},"type":"cond-expr","locations":[{"start":{"line":189,"column":58},"end":{"line":189,"column":110}},{"start":{"line":189,"column":113},"end":{"line":189,"column":127}}],"line":189},"36":{"loc":{"start":{"line":219,"column":19},"end":{"line":219,"column":86}},"type":"cond-expr","locations":[{"start":{"line":219,"column":66},"end":{"line":219,"column":74}},{"start":{"line":219,"column":77},"end":{"line":219,"column":86}}],"line":219},"37":{"loc":{"start":{"line":219,"column":19},"end":{"line":219,"column":63}},"type":"binary-expr","locations":[{"start":{"line":219,"column":19},"end":{"line":219,"column":38}},{"start":{"line":219,"column":42},"end":{"line":219,"column":63}}],"line":219},"38":{"loc":{"start":{"line":262,"column":8},"end":{"line":265,"column":9}},"type":"if","locations":[{"start":{"line":262,"column":8},"end":{"line":265,"column":9}},{"start":{"line":262,"column":8},"end":{"line":265,"column":9}}],"line":262},"39":{"loc":{"start":{"line":266,"column":8},"end":{"line":268,"column":9}},"type":"if","locations":[{"start":{"line":266,"column":8},"end":{"line":268,"column":9}},{"start":{"line":266,"column":8},"end":{"line":268,"column":9}}],"line":266},"40":{"loc":{"start":{"line":272,"column":8},"end":{"line":275,"column":9}},"type":"if","locations":[{"start":{"line":272,"column":8},"end":{"line":275,"column":9}},{"start":{"line":272,"column":8},"end":{"line":275,"column":9}}],"line":272},"41":{"loc":{"start":{"line":278,"column":8},"end":{"line":284,"column":9}},"type":"if","locations":[{"start":{"line":278,"column":8},"end":{"line":284,"column":9}},{"start":{"line":278,"column":8},"end":{"line":284,"column":9}}],"line":278},"42":{"loc":{"start":{"line":293,"column":31},"end":{"line":293,"column":125}},"type":"cond-expr","locations":[{"start":{"line":293,"column":89},"end":{"line":293,"column":95}},{"start":{"line":293,"column":98},"end":{"line":293,"column":125}}],"line":293},"43":{"loc":{"start":{"line":293,"column":31},"end":{"line":293,"column":86}},"type":"binary-expr","locations":[{"start":{"line":293,"column":31},"end":{"line":293,"column":69}},{"start":{"line":293,"column":73},"end":{"line":293,"column":86}}],"line":293},"44":{"loc":{"start":{"line":296,"column":8},"end":{"line":306,"column":9}},"type":"if","locations":[{"start":{"line":296,"column":8},"end":{"line":306,"column":9}},{"start":{"line":296,"column":8},"end":{"line":306,"column":9}}],"line":296},"45":{"loc":{"start":{"line":296,"column":12},"end":{"line":297,"column":212}},"type":"binary-expr","locations":[{"start":{"line":296,"column":12},"end":{"line":296,"column":68}},{"start":{"line":297,"column":12},"end":{"line":297,"column":212}}],"line":296},"46":{"loc":{"start":{"line":297,"column":13},"end":{"line":297,"column":183}},"type":"cond-expr","locations":[{"start":{"line":297,"column":162},"end":{"line":297,"column":168}},{"start":{"line":297,"column":171},"end":{"line":297,"column":183}}],"line":297},"47":{"loc":{"start":{"line":297,"column":13},"end":{"line":297,"column":159}},"type":"binary-expr","locations":[{"start":{"line":297,"column":13},"end":{"line":297,"column":142}},{"start":{"line":297,"column":146},"end":{"line":297,"column":159}}],"line":297},"48":{"loc":{"start":{"line":297,"column":20},"end":{"line":297,"column":128}},"type":"cond-expr","locations":[{"start":{"line":297,"column":121},"end":{"line":297,"column":123}},{"start":{"line":297,"column":126},"end":{"line":297,"column":128}}],"line":297},"49":{"loc":{"start":{"line":297,"column":20},"end":{"line":297,"column":118}},"type":"binary-expr","locations":[{"start":{"line":297,"column":20},"end":{"line":297,"column":101}},{"start":{"line":297,"column":105},"end":{"line":297,"column":118}}],"line":297},"50":{"loc":{"start":{"line":297,"column":26},"end":{"line":297,"column":91}},"type":"cond-expr","locations":[{"start":{"line":297,"column":75},"end":{"line":297,"column":81}},{"start":{"line":297,"column":84},"end":{"line":297,"column":91}}],"line":297},"51":{"loc":{"start":{"line":297,"column":26},"end":{"line":297,"column":72}},"type":"binary-expr","locations":[{"start":{"line":297,"column":26},"end":{"line":297,"column":55}},{"start":{"line":297,"column":59},"end":{"line":297,"column":72}}],"line":297},"52":{"loc":{"start":{"line":307,"column":8},"end":{"line":327,"column":9}},"type":"if","locations":[{"start":{"line":307,"column":8},"end":{"line":327,"column":9}},{"start":{"line":307,"column":8},"end":{"line":327,"column":9}}],"line":307},"53":{"loc":{"start":{"line":307,"column":12},"end":{"line":308,"column":217}},"type":"binary-expr","locations":[{"start":{"line":307,"column":12},"end":{"line":307,"column":68}},{"start":{"line":308,"column":12},"end":{"line":308,"column":217}}],"line":307},"54":{"loc":{"start":{"line":308,"column":13},"end":{"line":308,"column":183}},"type":"cond-expr","locations":[{"start":{"line":308,"column":162},"end":{"line":308,"column":168}},{"start":{"line":308,"column":171},"end":{"line":308,"column":183}}],"line":308},"55":{"loc":{"start":{"line":308,"column":13},"end":{"line":308,"column":159}},"type":"binary-expr","locations":[{"start":{"line":308,"column":13},"end":{"line":308,"column":142}},{"start":{"line":308,"column":146},"end":{"line":308,"column":159}}],"line":308},"56":{"loc":{"start":{"line":308,"column":20},"end":{"line":308,"column":128}},"type":"cond-expr","locations":[{"start":{"line":308,"column":121},"end":{"line":308,"column":123}},{"start":{"line":308,"column":126},"end":{"line":308,"column":128}}],"line":308},"57":{"loc":{"start":{"line":308,"column":20},"end":{"line":308,"column":118}},"type":"binary-expr","locations":[{"start":{"line":308,"column":20},"end":{"line":308,"column":101}},{"start":{"line":308,"column":105},"end":{"line":308,"column":118}}],"line":308},"58":{"loc":{"start":{"line":308,"column":26},"end":{"line":308,"column":91}},"type":"cond-expr","locations":[{"start":{"line":308,"column":75},"end":{"line":308,"column":81}},{"start":{"line":308,"column":84},"end":{"line":308,"column":91}}],"line":308},"59":{"loc":{"start":{"line":308,"column":26},"end":{"line":308,"column":72}},"type":"binary-expr","locations":[{"start":{"line":308,"column":26},"end":{"line":308,"column":55}},{"start":{"line":308,"column":59},"end":{"line":308,"column":72}}],"line":308},"60":{"loc":{"start":{"line":318,"column":12},"end":{"line":320,"column":13}},"type":"if","locations":[{"start":{"line":318,"column":12},"end":{"line":320,"column":13}},{"start":{"line":318,"column":12},"end":{"line":320,"column":13}}],"line":318},"61":{"loc":{"start":{"line":335,"column":8},"end":{"line":338,"column":9}},"type":"if","locations":[{"start":{"line":335,"column":8},"end":{"line":338,"column":9}},{"start":{"line":335,"column":8},"end":{"line":338,"column":9}}],"line":335},"62":{"loc":{"start":{"line":339,"column":8},"end":{"line":341,"column":9}},"type":"if","locations":[{"start":{"line":339,"column":8},"end":{"line":341,"column":9}},{"start":{"line":339,"column":8},"end":{"line":341,"column":9}}],"line":339},"63":{"loc":{"start":{"line":346,"column":8},"end":{"line":352,"column":9}},"type":"if","locations":[{"start":{"line":346,"column":8},"end":{"line":352,"column":9}},{"start":{"line":346,"column":8},"end":{"line":352,"column":9}}],"line":346},"64":{"loc":{"start":{"line":361,"column":31},"end":{"line":361,"column":125}},"type":"cond-expr","locations":[{"start":{"line":361,"column":89},"end":{"line":361,"column":95}},{"start":{"line":361,"column":98},"end":{"line":361,"column":125}}],"line":361},"65":{"loc":{"start":{"line":361,"column":31},"end":{"line":361,"column":86}},"type":"binary-expr","locations":[{"start":{"line":361,"column":31},"end":{"line":361,"column":69}},{"start":{"line":361,"column":73},"end":{"line":361,"column":86}}],"line":361},"66":{"loc":{"start":{"line":369,"column":8},"end":{"line":372,"column":9}},"type":"if","locations":[{"start":{"line":369,"column":8},"end":{"line":372,"column":9}},{"start":{"line":369,"column":8},"end":{"line":372,"column":9}}],"line":369},"67":{"loc":{"start":{"line":373,"column":8},"end":{"line":375,"column":9}},"type":"if","locations":[{"start":{"line":373,"column":8},"end":{"line":375,"column":9}},{"start":{"line":373,"column":8},"end":{"line":375,"column":9}}],"line":373},"68":{"loc":{"start":{"line":379,"column":102},"end":{"line":379,"column":127}},"type":"default-arg","locations":[{"start":{"line":379,"column":111},"end":{"line":379,"column":127}}],"line":379},"69":{"loc":{"start":{"line":383,"column":8},"end":{"line":386,"column":9}},"type":"if","locations":[{"start":{"line":383,"column":8},"end":{"line":386,"column":9}},{"start":{"line":383,"column":8},"end":{"line":386,"column":9}}],"line":383},"70":{"loc":{"start":{"line":387,"column":8},"end":{"line":389,"column":9}},"type":"if","locations":[{"start":{"line":387,"column":8},"end":{"line":389,"column":9}},{"start":{"line":387,"column":8},"end":{"line":389,"column":9}}],"line":387},"71":{"loc":{"start":{"line":394,"column":8},"end":{"line":397,"column":9}},"type":"if","locations":[{"start":{"line":394,"column":8},"end":{"line":397,"column":9}},{"start":{"line":394,"column":8},"end":{"line":397,"column":9}}],"line":394},"72":{"loc":{"start":{"line":410,"column":8},"end":{"line":413,"column":9}},"type":"if","locations":[{"start":{"line":410,"column":8},"end":{"line":413,"column":9}},{"start":{"line":410,"column":8},"end":{"line":413,"column":9}}],"line":410},"73":{"loc":{"start":{"line":411,"column":303},"end":{"line":411,"column":417}},"type":"cond-expr","locations":[{"start":{"line":411,"column":403},"end":{"line":411,"column":405}},{"start":{"line":411,"column":408},"end":{"line":411,"column":417}}],"line":411},"74":{"loc":{"start":{"line":411,"column":303},"end":{"line":411,"column":400}},"type":"binary-expr","locations":[{"start":{"line":411,"column":303},"end":{"line":411,"column":383}},{"start":{"line":411,"column":387},"end":{"line":411,"column":400}}],"line":411},"75":{"loc":{"start":{"line":411,"column":309},"end":{"line":411,"column":373}},"type":"cond-expr","locations":[{"start":{"line":411,"column":344},"end":{"line":411,"column":350}},{"start":{"line":411,"column":353},"end":{"line":411,"column":373}}],"line":411},"76":{"loc":{"start":{"line":411,"column":309},"end":{"line":411,"column":341}},"type":"binary-expr","locations":[{"start":{"line":411,"column":309},"end":{"line":411,"column":322}},{"start":{"line":411,"column":326},"end":{"line":411,"column":341}}],"line":411},"77":{"loc":{"start":{"line":427,"column":25},"end":{"line":427,"column":114}},"type":"cond-expr","locations":[{"start":{"line":427,"column":72},"end":{"line":427,"column":78}},{"start":{"line":427,"column":81},"end":{"line":427,"column":114}}],"line":427},"78":{"loc":{"start":{"line":427,"column":25},"end":{"line":427,"column":69}},"type":"binary-expr","locations":[{"start":{"line":427,"column":25},"end":{"line":427,"column":44}},{"start":{"line":427,"column":48},"end":{"line":427,"column":69}}],"line":427},"79":{"loc":{"start":{"line":430,"column":8},"end":{"line":433,"column":9}},"type":"if","locations":[{"start":{"line":430,"column":8},"end":{"line":433,"column":9}},{"start":{"line":430,"column":8},"end":{"line":433,"column":9}}],"line":430},"80":{"loc":{"start":{"line":434,"column":8},"end":{"line":437,"column":9}},"type":"if","locations":[{"start":{"line":434,"column":8},"end":{"line":437,"column":9}},{"start":{"line":434,"column":8},"end":{"line":437,"column":9}}],"line":434},"81":{"loc":{"start":{"line":438,"column":8},"end":{"line":442,"column":9}},"type":"if","locations":[{"start":{"line":438,"column":8},"end":{"line":442,"column":9}},{"start":{"line":438,"column":8},"end":{"line":442,"column":9}}],"line":438},"82":{"loc":{"start":{"line":443,"column":8},"end":{"line":447,"column":9}},"type":"if","locations":[{"start":{"line":443,"column":8},"end":{"line":447,"column":9}},{"start":{"line":443,"column":8},"end":{"line":447,"column":9}}],"line":443},"83":{"loc":{"start":{"line":449,"column":8},"end":{"line":453,"column":9}},"type":"if","locations":[{"start":{"line":449,"column":8},"end":{"line":453,"column":9}},{"start":{"line":449,"column":8},"end":{"line":453,"column":9}}],"line":449},"84":{"loc":{"start":{"line":470,"column":4},"end":{"line":472,"column":5}},"type":"if","locations":[{"start":{"line":470,"column":4},"end":{"line":472,"column":5}},{"start":{"line":470,"column":4},"end":{"line":472,"column":5}}],"line":470},"85":{"loc":{"start":{"line":484,"column":29},"end":{"line":484,"column":96}},"type":"cond-expr","locations":[{"start":{"line":484,"column":86},"end":{"line":484,"column":88}},{"start":{"line":484,"column":91},"end":{"line":484,"column":96}}],"line":484},"86":{"loc":{"start":{"line":484,"column":29},"end":{"line":484,"column":83}},"type":"binary-expr","locations":[{"start":{"line":484,"column":29},"end":{"line":484,"column":66}},{"start":{"line":484,"column":70},"end":{"line":484,"column":83}}],"line":484},"87":{"loc":{"start":{"line":502,"column":4},"end":{"line":505,"column":5}},"type":"if","locations":[{"start":{"line":502,"column":4},"end":{"line":505,"column":5}},{"start":{"line":502,"column":4},"end":{"line":505,"column":5}}],"line":502},"88":{"loc":{"start":{"line":516,"column":4},"end":{"line":524,"column":5}},"type":"if","locations":[{"start":{"line":516,"column":4},"end":{"line":524,"column":5}},{"start":{"line":516,"column":4},"end":{"line":524,"column":5}}],"line":516},"89":{"loc":{"start":{"line":526,"column":4},"end":{"line":546,"column":5}},"type":"if","locations":[{"start":{"line":526,"column":4},"end":{"line":546,"column":5}},{"start":{"line":526,"column":4},"end":{"line":546,"column":5}}],"line":526},"90":{"loc":{"start":{"line":526,"column":8},"end":{"line":526,"column":53}},"type":"binary-expr","locations":[{"start":{"line":526,"column":8},"end":{"line":526,"column":32}},{"start":{"line":526,"column":36},"end":{"line":526,"column":53}}],"line":526},"91":{"loc":{"start":{"line":529,"column":8},"end":{"line":545,"column":9}},"type":"if","locations":[{"start":{"line":529,"column":8},"end":{"line":545,"column":9}},{"start":{"line":529,"column":8},"end":{"line":545,"column":9}}],"line":529}},"s":{"0":1,"1":604,"2":546,"3":133,"4":604,"5":604,"6":0,"7":0,"8":0,"9":0,"10":737,"11":133,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":90,"26":90,"27":0,"28":5,"29":5,"30":90,"31":0,"32":5,"33":5,"34":90,"35":2,"36":2,"37":5,"38":5,"39":90,"40":3,"41":3,"42":5,"43":5,"44":90,"45":2,"46":2,"47":5,"48":5,"49":90,"50":3,"51":3,"52":5,"53":5,"54":90,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":90,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":90,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":90,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":90,"109":0,"110":0,"111":90,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":90,"125":0,"126":90,"127":0,"128":90,"129":0,"130":90,"131":0,"132":90,"133":0,"134":90,"135":0,"136":90,"137":0,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":0,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":4,"181":4,"182":4,"183":0,"184":0,"185":4,"186":2,"187":2,"188":2,"189":2,"190":2,"191":0,"192":0,"193":2,"194":2,"195":0,"196":0,"197":2,"198":2,"199":2,"200":2,"201":0,"202":2,"203":2,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":2,"211":1,"212":0,"213":1,"214":1,"215":3,"216":3,"217":3,"218":0,"219":0,"220":3,"221":3,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":2,"235":2,"236":2,"237":0,"238":0,"239":2,"240":0,"241":2,"242":4,"243":4,"244":4,"245":0,"246":0,"247":4,"248":0,"249":4,"250":4,"251":4,"252":4,"253":4,"254":0,"255":0,"256":4,"257":8,"258":4,"259":4,"260":3,"261":3,"262":4,"263":4,"264":4,"265":4,"266":4,"267":1,"268":1,"269":3,"270":3,"271":3,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":0,"289":0,"290":1,"291":1,"292":11,"293":11,"294":11,"295":0,"296":11,"297":11,"298":1,"299":1,"300":3,"301":3,"302":3,"303":3,"304":3,"305":3,"306":3,"307":3,"308":6,"309":3,"310":3,"311":3,"312":3,"313":3,"314":3,"315":0,"316":0,"317":3,"318":3,"319":3,"320":3,"321":3,"322":3,"323":0,"324":0,"325":3,"326":3,"327":1,"328":1,"329":1,"330":1,"331":1,"332":1,"333":1,"334":1,"335":1,"336":0,"337":1},"f":{"0":133,"1":604,"2":546,"3":133,"4":604,"5":0,"6":737,"7":1,"8":90,"9":90,"10":0,"11":5,"12":0,"13":5,"14":2,"15":2,"16":5,"17":3,"18":3,"19":5,"20":2,"21":2,"22":5,"23":3,"24":3,"25":5,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":0,"59":0,"60":0,"61":4,"62":4,"63":2,"64":0,"65":2,"66":3,"67":3,"68":0,"69":0,"70":2,"71":2,"72":4,"73":4,"74":8,"75":4,"76":11,"77":11,"78":3,"79":3,"80":6,"81":3},"b":{"0":[1,1,1],"1":[58,546],"2":[133,133],"3":[133,604],"4":[133,133],"5":[1,1,1],"6":[0,1],"7":[1,1],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,1],"34":[1,1],"35":[0,1],"36":[1,0],"37":[1,1],"38":[0,4],"39":[2,2],"40":[0,2],"41":[0,2],"42":[2,0],"43":[2,2],"44":[1,1],"45":[2,1],"46":[0,1],"47":[1,1],"48":[1,0],"49":[1,1],"50":[0,1],"51":[1,1],"52":[1,0],"53":[1,1],"54":[0,1],"55":[1,1],"56":[1,0],"57":[1,1],"58":[0,1],"59":[1,1],"60":[0,1],"61":[0,3],"62":[3,0],"63":[0,0],"64":[0,0],"65":[0,0],"66":[0,2],"67":[0,2],"68":[0],"69":[0,4],"70":[0,4],"71":[0,4],"72":[3,1],"73":[0,3],"74":[3,3],"75":[3,0],"76":[3,3],"77":[1,3],"78":[4,4],"79":[1,3],"80":[3,0],"81":[0,0],"82":[0,0],"83":[0,0],"84":[0,11],"85":[0,3],"86":[3,3],"87":[0,3],"88":[0,3],"89":[1,2],"90":[3,1],"91":[1,0]},"inputSourceMap":{"version":3,"file":"/app/modules/engine/src/listeners.ts","sources":["/app/modules/engine/src/listeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { WithdrawCommitment } from \"@connext/vector-contracts\";\nimport {\n  ChainAddresses,\n  ChannelUpdateEvent,\n  ConditionalTransferCreatedPayload,\n  ConditionalTransferResolvedPayload,\n  DepositReconciledPayload,\n  EngineEvents,\n  FullChannelState,\n  FullTransferState,\n  IChannelSigner,\n  IEngineStore,\n  IMessagingService,\n  IVectorChainService,\n  IVectorProtocol,\n  ProtocolEventName,\n  TransferNames,\n  SetupPayload,\n  UpdateType,\n  WithdrawalCreatedPayload,\n  WithdrawalResolvedPayload,\n  WITHDRAWAL_RECONCILED_EVENT,\n  IVectorChainReader,\n  REQUEST_COLLATERAL_EVENT,\n  ChannelRpcMethods,\n  EngineParams,\n  ChannelRpcMethodsResponsesMap,\n  Result,\n  ChainError,\n  EngineError,\n  VectorError,\n  IS_ALIVE_EVENT,\n  Values,\n  jsonifyError,\n  WithdrawalQuote,\n  IVectorStore,\n  DEFAULT_FEE_EXPIRY,\n  DEFAULT_CHANNEL_TIMEOUT,\n  RouterSchemas,\n} from \"@connext/vector-types\";\nimport { getRandomBytes32, hashWithdrawalQuote, mkSig } from \"@connext/vector-utils\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { Zero } from \"@ethersproject/constants\";\nimport Pino, { BaseLogger } from \"pino\";\n\nimport { IsAliveError, WithdrawQuoteError } from \"./errors\";\nimport { EngineEvtContainer } from \"./index\";\nimport { submitUnsubmittedWithdrawals } from \"./utils\";\n\nexport async function setupEngineListeners(\n  evts: EngineEvtContainer,\n  chainService: IVectorChainService,\n  vector: IVectorProtocol,\n  messaging: IMessagingService,\n  signer: IChannelSigner,\n  store: IEngineStore,\n  chainAddresses: ChainAddresses,\n  logger: Pino.BaseLogger,\n  setup: (\n    params: EngineParams.Setup,\n  ) => Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_setup], EngineError>>,\n  gasSubsidyPercentage: number,\n): Promise<void> {\n  // Set up listener for channel setup\n  vector.on(\n    ProtocolEventName.CHANNEL_UPDATE_EVENT,\n    (event) => handleSetup(event, signer, vector, evts, logger),\n    (event) => {\n      const {\n        updatedChannelState: {\n          latestUpdate: { type },\n        },\n      } = event;\n      return type === UpdateType.setup;\n    },\n  );\n\n  // Set up listener for deposit reconciliations\n  vector.on(\n    ProtocolEventName.CHANNEL_UPDATE_EVENT,\n    (event) => handleDepositReconciliation(event, signer, vector, evts, logger),\n    (event) => {\n      const {\n        updatedChannelState: {\n          latestUpdate: { type },\n        },\n      } = event;\n      return type === UpdateType.deposit;\n    },\n  );\n\n  // Set up listener for conditional transfer creations\n  vector.on(\n    ProtocolEventName.CHANNEL_UPDATE_EVENT,\n    async (event) =>\n      await handleConditionalTransferCreation(\n        event,\n        store,\n        chainService,\n        chainAddresses,\n        evts,\n        logger,\n        signer,\n        messaging,\n      ),\n    (event) => {\n      const {\n        updatedChannelState: {\n          latestUpdate: { type },\n        },\n      } = event;\n      return type === UpdateType.create;\n    },\n  );\n\n  // Set up listener for conditional transfer resolutions\n  vector.on(\n    ProtocolEventName.CHANNEL_UPDATE_EVENT,\n    async (event) =>\n      await handleConditionalTransferResolution(event, chainAddresses, store, chainService, evts, logger),\n    (event) => {\n      const {\n        updatedChannelState: {\n          latestUpdate: { type },\n        },\n      } = event;\n      return type === UpdateType.resolve;\n    },\n  );\n\n  // Set up listener for withdrawal transfer creations\n  vector.on(\n    ProtocolEventName.CHANNEL_UPDATE_EVENT,\n    async (event) =>\n      await handleWithdrawalTransferCreation(\n        event,\n        signer,\n        vector,\n        store,\n        evts,\n        chainAddresses,\n        chainService,\n        logger,\n        messaging,\n      ),\n    (event) => {\n      const {\n        updatedChannelState: {\n          latestUpdate: { type },\n        },\n      } = event;\n      return type === UpdateType.create;\n    },\n  );\n\n  // Set up listener for withdrawal resolutions\n  vector.on(\n    ProtocolEventName.CHANNEL_UPDATE_EVENT,\n    async (event) =>\n      await handleWithdrawalTransferResolution(event, signer, store, evts, chainAddresses, chainService, logger),\n    (event) => {\n      const {\n        updatedChannelState: {\n          latestUpdate: { type },\n        },\n      } = event;\n      return type === UpdateType.resolve;\n    },\n  );\n\n  await messaging.onReceiveIsAliveMessage(\n    signer.publicIdentifier,\n    async (\n      params: Result<{ channelAddress: string; skipCheckIn?: boolean }, VectorError>,\n      from: string,\n      inbox: string,\n    ) => {\n      const needsResponse = from !== signer.publicIdentifier;\n      const method = \"onReceiveIsAliveMessage\";\n      const methodId = getRandomBytes32();\n      if (params.isError) {\n        logger.warn({ error: params.getError()?.message, method, methodId }, \"Error received\");\n        return;\n      }\n\n      // get channel\n      const { channelAddress } = params.getValue();\n      const channel = await store.getChannelState(channelAddress);\n      if (!channel) {\n        logger.error({ channelAddress, method, methodId }, \"Channel not found\");\n        needsResponse &&\n          messaging.respondToIsAliveMessage(\n            inbox,\n            Result.fail(\n              new IsAliveError(IsAliveError.reasons.ChannelNotFound, channelAddress, signer.publicIdentifier),\n            ),\n          );\n        return;\n      }\n\n      // post to EVT\n      evts[IS_ALIVE_EVENT].post({\n        aliceIdentifier: channel.aliceIdentifier,\n        bobIdentifier: channel.bobIdentifier,\n        chainId: channel.networkContext.chainId,\n        channelAddress: channel.channelAddress,\n        skipCheckIn: params.getValue().skipCheckIn ?? false,\n      });\n\n      // handle hanging withdrawals\n      // do NOT await this -- could involve 2+ onchain transactions:\n      // one to deploy a channel and one to submit tx for each commitment\n      resolveExistingWithdrawals(channel, signer, store, vector, chainAddresses, chainService, evts, logger, messaging);\n\n      // if channel is not a mainnet channel and user is alice, we can attempt to resubmit unsubmitted withdrawals\n      if (channel.networkContext.chainId !== 1 && signer.publicIdentifier === channel.aliceIdentifier) {\n        submitUnsubmittedWithdrawals(\n          channel,\n          store,\n          chainAddresses,\n          chainService,\n          logger,\n          messaging,\n          signer.publicIdentifier,\n        );\n      }\n\n      // respond if necessary\n      if (!needsResponse) {\n        return;\n      }\n      await messaging.respondToIsAliveMessage(inbox, Result.ok({ channelAddress }));\n      return;\n    },\n  );\n\n  await messaging.onReceiveRequestCollateralMessage(signer.publicIdentifier, async (params, from, inbox) => {\n    const method = \"onReceiveRequestCollateralMessage\";\n    if (params.isError) {\n      logger.error({ error: params.getError()?.message, method }, \"Error received\");\n      return;\n    }\n    logger.info({ params: params.getValue(), method, from }, \"Handling message\");\n\n    evts[REQUEST_COLLATERAL_EVENT].post({\n      ...params.getValue(),\n      aliceIdentifier: signer.publicIdentifier,\n      bobIdentifier: from,\n    });\n\n    await messaging.respondToRequestCollateralMessage(\n      inbox,\n      Result.ok({ message: \"Successfully requested collateral\" }),\n    );\n  });\n\n  await messaging.onReceiveSetupMessage(signer.publicIdentifier, async (params, from, inbox) => {\n    const method = \"onReceiveSetupMessage\";\n    if (params.isError) {\n      logger.error({ error: params.getError()?.message, method }, \"Error received\");\n      return;\n    }\n    const setupInfo = params.getValue();\n    logger.info({ params: setupInfo, method }, \"Handling message\");\n    const res = await setup({\n      chainId: setupInfo.chainId,\n      counterpartyIdentifier: from,\n      timeout: setupInfo.timeout ?? DEFAULT_CHANNEL_TIMEOUT.toString(),\n      meta: setupInfo.meta,\n    });\n    await messaging.respondToSetupMessage(\n      inbox,\n      res.isError ? Result.fail(res.getError()!) : Result.ok({ channelAddress: res.getValue().channelAddress }),\n    );\n  });\n\n  await messaging.onReceiveWithdrawalQuoteMessage(signer.publicIdentifier, async (quoteRequest, from, inbox) => {\n    const method = \"onReceiveWithdrawalQuoteMessage\";\n    const methodId = getRandomBytes32();\n    logger.info({ method, methodId, quoteRequest: quoteRequest.toJson() }, \"Method started\");\n    if (quoteRequest.isError) {\n      logger.error({ error: quoteRequest.getError()?.message, method, methodId }, \"Error received\");\n      return;\n    }\n    const request = quoteRequest.getValue();\n    logger.info({ ...request, method, methodId }, \"Calculating quote\");\n    const calculatedQuote = await getWithdrawalQuote(\n      request,\n      gasSubsidyPercentage,\n      signer,\n      store,\n      chainService,\n      logger,\n    );\n    await messaging.respondToWithdrawalQuoteMessage(inbox, calculatedQuote);\n\n    logger.info({ quote: calculatedQuote.toJson(), method, methodId }, \"Method complete\");\n  });\n\n  // if this message is received, means that a transfer we sent was routed completely to the end recipient\n  // emit the appropriate event to our external listeners\n  await messaging.onReceiveTransferRoutingCompleteMessage(signer.publicIdentifier, async (data) => {\n    evts.CONDITIONAL_TRANSFER_ROUTING_COMPLETE.post({ ...data.getValue(), publicIdentifier: signer.publicIdentifier });\n\n    // in a multihop world we would check if we routed this transfer ourselves and if so we would\n    // send a message back to our previous leg sender\n  });\n\n  // receive this message when withdraw tx is received\n  await messaging.onReceiveWithdrawalSubmittedMessage(signer.publicIdentifier, async (data) => {\n    const { channelAddress, transferId, txHash } = data.getValue();\n    const commitment = await store.getWithdrawalCommitment(transferId);\n    if (!commitment) {\n      logger.error(\n        {\n          method: \"onReceiveWithdrawalSubmittedMessage\",\n          transferId,\n          txHash,\n        },\n        \"No commitment in store\",\n      );\n      return;\n    }\n    const wc = await WithdrawCommitment.fromJson(commitment);\n    wc.addTransaction(txHash);\n    await store.saveWithdrawalCommitment(transferId, wc.toJson());\n    const channel = await store.getChannelState(channelAddress);\n    const transfer = await store.getTransferState(transferId);\n    // Withdrawal resolution meta will include the transaction hash,\n    // post to EVT here\n    evts[WITHDRAWAL_RECONCILED_EVENT].post({\n      aliceIdentifier: channel!.aliceIdentifier,\n      bobIdentifier: channel!.bobIdentifier,\n      channelAddress,\n      transferId,\n      transactionHash: txHash,\n      meta: transfer?.meta,\n    });\n  });\n\n  ////////////////////////////\n  /// CHAIN SERVICE EVENTS\n  chainService.on(EngineEvents.TRANSACTION_SUBMITTED, (data) => {\n    evts[EngineEvents.TRANSACTION_SUBMITTED].post({\n      ...data,\n      publicIdentifier: signer.publicIdentifier,\n    });\n  });\n\n  chainService.on(EngineEvents.TRANSACTION_MINED, (data) => {\n    evts[EngineEvents.TRANSACTION_MINED].post({ ...data, publicIdentifier: signer.publicIdentifier });\n  });\n\n  chainService.on(EngineEvents.TRANSACTION_FAILED, (data) => {\n    evts[EngineEvents.TRANSACTION_FAILED].post({ ...data, publicIdentifier: signer.publicIdentifier });\n  });\n\n  chainService.on(EngineEvents.CHANNEL_DISPUTED, (data) => {\n    evts[EngineEvents.CHANNEL_DISPUTED].post({ ...data, publicIdentifier: signer.publicIdentifier });\n  });\n\n  chainService.on(EngineEvents.CHANNEL_DEFUNDED, (data) => {\n    evts[EngineEvents.CHANNEL_DEFUNDED].post({ ...data, publicIdentifier: signer.publicIdentifier });\n  });\n\n  chainService.on(EngineEvents.TRANSFER_DISPUTED, (data) => {\n    evts[EngineEvents.TRANSFER_DISPUTED].post({ ...data, publicIdentifier: signer.publicIdentifier });\n  });\n\n  chainService.on(EngineEvents.TRANSFER_DEFUNDED, (data) => {\n    evts[EngineEvents.TRANSFER_DEFUNDED].post({ ...data, publicIdentifier: signer.publicIdentifier });\n  });\n}\n\nexport async function getWithdrawalQuote(\n  request: EngineParams.GetWithdrawalQuote,\n  _gasSubsidyPercentage: number,\n  signer: IChannelSigner,\n  _store: IVectorStore,\n  _chainService: IVectorChainService,\n  _logger: BaseLogger,\n): Promise<Result<WithdrawalQuote, WithdrawQuoteError>> {\n  const receiveExactAmount = request.receiveExactAmount ?? false;\n  // Helper to sign the quote + return to user\n  const createAndSignQuote = async (_fee: BigNumber): Promise<Result<WithdrawalQuote, WithdrawQuoteError>> => {\n    const withdrawalAmount = receiveExactAmount ? BigNumber.from(request.amount).add(_fee) : request.amount;\n    const quote = {\n      channelAddress: request.channelAddress,\n      amount: withdrawalAmount.toString(), // hash of negative value fails\n      assetId: request.assetId,\n      fee: _fee.toString(),\n      expiry: (Date.now() + DEFAULT_FEE_EXPIRY).toString(), // TODO: make this configurable #436\n    };\n    try {\n      const signature = await signer.signMessage(hashWithdrawalQuote(quote));\n      return Result.ok({ ...quote, signature });\n    } catch (e) {\n      return Result.fail(\n        new WithdrawQuoteError(WithdrawQuoteError.reasons.SignatureFailure, signer.publicIdentifier, request, {\n          error: jsonifyError(e),\n        }),\n      );\n    }\n  };\n\n  // removing withdrawal fees since they are currently trusted and they show up on the wrong side of the channel\n  // see https://github.com/connext/vector/issues/529\n  return createAndSignQuote(Zero);\n}\n\nexport async function resolveExistingWithdrawals(\n  channel: FullChannelState,\n  signer: IChannelSigner,\n  store: IEngineStore,\n  vector: IVectorProtocol,\n  chainAddresses: ChainAddresses,\n  chainService: IVectorChainService,\n  evts: EngineEvtContainer,\n  logger: BaseLogger,\n  messaging: IMessagingService,\n): Promise<void> {\n  const method = \"resolveExistingWithdrawals\";\n  const methodId = getRandomBytes32();\n  // check for withdrawals between you and counterparty that need to be resolved\n  // by you\n  const activeTransfers = await vector.getActiveTransfers(channel.channelAddress);\n  logger.info({ method, methodId }, \"Got active transfers in isAlive channel\");\n  // active transfer needs to be a withdrawal\n  // isWithdrawTransfer is async so it needs to be awaited\n  const withdrawalsOnlyPromises = await Promise.all(\n    activeTransfers.map(async (transfer) => {\n      const isWithdraw = await isWithdrawTransfer(transfer, chainAddresses, chainService);\n      return !isWithdraw.isError && isWithdraw.getValue() ? transfer : undefined;\n    }),\n  );\n  const withdrawalsOnly = withdrawalsOnlyPromises.filter((x) => !!x); // filter undefined\n  const withdrawalsToComplete = withdrawalsOnly.filter(async (transfer) => {\n    return transfer!.responderIdentifier === signer.publicIdentifier;\n  });\n  await Promise.all(\n    withdrawalsToComplete.map(async (transfer) => {\n      logger.info({ method, methodId, transfer: transfer!.transferId }, \"Found withdrawal to handle\");\n      await resolveWithdrawal(channel, transfer!, vector, evts, store, signer, chainService, logger, messaging);\n      logger.info({ method, methodId, transfer: transfer!.transferId }, \"Resolved withdrawal\");\n    }),\n  );\n}\n\nfunction handleSetup(\n  event: ChannelUpdateEvent,\n  signer: IChannelSigner,\n  vector: IVectorProtocol,\n  evts: EngineEvtContainer,\n  logger: Pino.BaseLogger,\n): void {\n  logger.info({ channelAddress: event.updatedChannelState.channelAddress }, \"Handling setup event\");\n  // Emit the properly structured event\n  const {\n    channelAddress,\n    aliceIdentifier,\n    bobIdentifier,\n    networkContext: { chainId },\n    latestUpdate: {\n      details: { meta },\n    },\n  } = event.updatedChannelState as FullChannelState;\n  const payload: SetupPayload = {\n    channelAddress,\n    aliceIdentifier,\n    bobIdentifier,\n    chainId,\n    meta,\n  };\n  evts[EngineEvents.SETUP].post(payload);\n}\n\nfunction handleDepositReconciliation(\n  event: ChannelUpdateEvent,\n  signer: IChannelSigner,\n  vector: IVectorProtocol,\n  evts: EngineEvtContainer,\n  logger: Pino.BaseLogger,\n): void {\n  logger.info({ channelAddress: event.updatedChannelState.channelAddress }, \"Handling deposit reconciliation event\");\n  // Emit the properly structured event\n  const {\n    aliceIdentifier,\n    bobIdentifier,\n    channelAddress,\n    balances,\n    assetIds,\n    latestUpdate: {\n      assetId,\n      details: { meta },\n    },\n  } = event.updatedChannelState as FullChannelState;\n  const payload: DepositReconciledPayload = {\n    aliceIdentifier,\n    bobIdentifier,\n    channelAddress,\n    assetId,\n    channelBalance: balances[assetIds.findIndex((a) => getAddress(a) === getAddress(assetId))],\n    meta,\n  };\n  evts[EngineEvents.DEPOSIT_RECONCILED].post(payload);\n}\n\nexport async function handleConditionalTransferCreation(\n  event: ChannelUpdateEvent,\n  store: IEngineStore,\n  chainService: IVectorChainReader,\n  chainAddresses: ChainAddresses,\n  evts: EngineEvtContainer,\n  logger: Pino.BaseLogger,\n  signer: IChannelSigner,\n  messaging: IMessagingService,\n): Promise<void> {\n  const isWithdrawRes = await isWithdrawTransfer(event.updatedTransfer!, chainAddresses, chainService);\n  if (isWithdrawRes.isError) {\n    logger.warn(\n      { method: \"isWithdrawRes\", ...isWithdrawRes.getError()!.context },\n      \"Failed to determine if transfer is withdrawal\",\n    );\n    return;\n  }\n\n  if (isWithdrawRes.getValue()) {\n    return;\n  }\n  const {\n    aliceIdentifier,\n    bobIdentifier,\n    assetIds,\n    balances,\n    channelAddress,\n    networkContext: { chainId },\n    latestUpdate: {\n      assetId,\n      details: {\n        transferId,\n        transferDefinition,\n        meta: { routingId },\n      },\n    },\n  } = event.updatedChannelState as FullChannelState;\n  logger.info({ channelAddress }, \"Handling conditional transfer create event\");\n  // Emit the properly structured event\n  const transfer = event.updatedTransfer;\n  if (!transfer) {\n    logger.warn({ transferId }, \"Transfer not found after creation\");\n    return;\n  }\n\n  const registryInfo = await chainService.getRegisteredTransferByDefinition(\n    transferDefinition,\n    chainAddresses[chainId].transferRegistryAddress,\n    chainId,\n  );\n  let conditionType: string;\n  if (registryInfo.isError) {\n    logger.warn({ error: registryInfo.getError()!.message }, \"Failed to get registry info\");\n    conditionType = transferDefinition;\n  } else {\n    conditionType = registryInfo.getValue().name;\n  }\n\n  const assetIdx = assetIds.findIndex((a) => getAddress(a) === getAddress(assetId));\n  const payload: ConditionalTransferCreatedPayload = {\n    aliceIdentifier,\n    bobIdentifier,\n    channelAddress,\n    channelBalance: balances[assetIdx],\n    transfer,\n    conditionType,\n    activeTransferIds: event.updatedTransfers?.map((t) => t.transferId),\n  };\n  evts[EngineEvents.CONDITIONAL_TRANSFER_CREATED].post(payload);\n\n  // TRANSFER_ROUTING_COMPLETE event\n\n  // if transfer is created and we are the end recipient, emit event now and end\n  if (\n    transfer.responderIdentifier === signer.publicIdentifier &&\n    ((transfer.meta as RouterSchemas.RouterMeta)?.path ?? [])[0]?.recipient === signer.publicIdentifier\n  ) {\n    evts.CONDITIONAL_TRANSFER_ROUTING_COMPLETE.post({\n      publicIdentifier: signer.publicIdentifier,\n      initiatorIdentifier: transfer.initiatorIdentifier,\n      responderIdentifier: transfer.responderIdentifier,\n      routingId,\n      meta: transfer.meta,\n    });\n    return;\n  }\n\n  // if we are the exit router, also send out-of-protocol NATS message to the sender\n  // of the linked transfer so they know the path is complete (and can forward to their sender and so on)\n  if (\n    transfer.initiatorIdentifier === signer.publicIdentifier &&\n    ((transfer.meta as RouterSchemas.RouterMeta)?.path ?? [])[0]?.recipient === transfer.responderIdentifier\n  ) {\n    // post event since routing is complete\n    evts.CONDITIONAL_TRANSFER_ROUTING_COMPLETE.post({\n      publicIdentifier: signer.publicIdentifier,\n      initiatorIdentifier: transfer.initiatorIdentifier,\n      responderIdentifier: transfer.responderIdentifier,\n      routingId,\n      meta: transfer.meta,\n    });\n\n    // notify previous leg sender\n    // first transfer leg should have been created at this point\n    const _transfers = await store.getTransfersByRoutingId(routingId);\n    const correspondingTransfer = _transfers.find((t) => t.responderIdentifier === signer.publicIdentifier);\n    if (!correspondingTransfer) {\n      return;\n    }\n    await messaging.publishTransferRoutingCompleteMessage(\n      correspondingTransfer.initiatorIdentifier,\n      signer.publicIdentifier,\n      Result.ok({\n        initiatorIdentifier: transfer.initiatorIdentifier,\n        responderIdentifier: transfer.responderIdentifier,\n        routingId,\n        meta: transfer.meta,\n      }),\n    );\n  }\n}\n\nasync function handleConditionalTransferResolution(\n  event: ChannelUpdateEvent,\n  chainAddresses: ChainAddresses,\n  store: IEngineStore,\n  chainService: IVectorChainReader,\n  evts: EngineEvtContainer,\n  logger: Pino.BaseLogger,\n): Promise<void> {\n  const isWithdrawRes = await isWithdrawTransfer(event.updatedTransfer!, chainAddresses, chainService);\n  if (isWithdrawRes.isError) {\n    logger.warn(\n      { method: \"isWithdrawRes\", ...isWithdrawRes.getError()!.context },\n      \"Failed to determine if transfer is withdrawal\",\n    );\n    return;\n  }\n  if (isWithdrawRes.getValue()) {\n    return;\n  }\n  logger.info(\n    { channelAddress: event.updatedChannelState.channelAddress },\n    \"Handling conditional transfer resolve event\",\n  );\n  const {\n    aliceIdentifier,\n    bobIdentifier,\n    channelAddress,\n    assetIds,\n    balances,\n    networkContext: { chainId },\n    latestUpdate: {\n      assetId,\n      details: { transferDefinition },\n    },\n  } = event.updatedChannelState as FullChannelState;\n  // Emit the properly structured event\n  const registryInfo = await chainService.getRegisteredTransferByDefinition(\n    transferDefinition,\n    chainAddresses[chainId].transferRegistryAddress,\n    chainId,\n  );\n  let conditionType: string;\n  if (registryInfo.isError) {\n    logger.warn({ error: registryInfo.getError()!.message }, \"Faild to get registry info\");\n    conditionType = transferDefinition;\n  } else {\n    conditionType = registryInfo.getValue().name;\n  }\n  const transfer = event.updatedTransfer;\n  const payload: ConditionalTransferResolvedPayload = {\n    aliceIdentifier,\n    bobIdentifier,\n    channelAddress,\n    channelBalance: balances[assetIds.findIndex((a) => getAddress(a) === getAddress(assetId))],\n    transfer: transfer!,\n    conditionType,\n    activeTransferIds: event.updatedTransfers?.map((t) => t.transferId),\n  };\n  evts[EngineEvents.CONDITIONAL_TRANSFER_RESOLVED].post(payload);\n}\n\nasync function handleWithdrawalTransferCreation(\n  event: ChannelUpdateEvent,\n  signer: IChannelSigner,\n  vector: IVectorProtocol,\n  store: IEngineStore,\n  evts: EngineEvtContainer,\n  chainAddresses: ChainAddresses,\n  chainService: IVectorChainService,\n  logger: Pino.BaseLogger,\n  messaging: IMessagingService,\n): Promise<void> {\n  const isWithdrawRes = await isWithdrawTransfer(event.updatedTransfer!, chainAddresses, chainService);\n  if (isWithdrawRes.isError) {\n    logger.warn(\n      { method: \"handleWithdrawalTransferCreation\", error: jsonifyError(isWithdrawRes.getError()!) },\n      \"Failed to determine if transfer is withdrawal\",\n    );\n    return;\n  }\n  if (!isWithdrawRes.getValue()) {\n    return;\n  }\n  await resolveWithdrawal(\n    event.updatedChannelState,\n    event.updatedTransfer!,\n    vector,\n    evts,\n    store,\n    signer,\n    chainService,\n    logger,\n    messaging,\n  );\n}\n\nexport async function handleWithdrawalTransferResolution(\n  event: ChannelUpdateEvent,\n  signer: IChannelSigner,\n  store: IEngineStore,\n  evts: EngineEvtContainer,\n  chainAddresses: ChainAddresses,\n  chainService: IVectorChainService,\n  logger: Pino.BaseLogger = Pino(),\n): Promise<void> {\n  const isWithdrawRes = await isWithdrawTransfer(event.updatedTransfer!, chainAddresses, chainService);\n  if (isWithdrawRes.isError) {\n    logger.warn(\n      { method: \"isWithdrawRes\", ...isWithdrawRes.getError()!.context },\n      \"Failed to determine if transfer is withdrawal\",\n    );\n    return;\n  }\n  if (!isWithdrawRes.getValue()) {\n    return;\n  }\n  const method = \"handleWithdrawalTransferResolution\";\n  const methodId = getRandomBytes32();\n\n  const {\n    aliceIdentifier,\n    bobIdentifier,\n    channelAddress,\n    balances,\n    assetIds,\n    alice,\n    bob,\n    latestUpdate: {\n      details: { transferId, meta },\n      assetId,\n      fromIdentifier,\n    },\n  } = event.updatedChannelState as FullChannelState;\n  logger.info({ method, channelAddress, transferId, methodId }, \"Started\");\n\n  // Get the withdrawal amount\n  if (!event.updatedTransfer) {\n    logger.warn({ method, transferId, channelAddress }, \"Could not find transfer for withdrawal resolution\");\n    return;\n  }\n\n  // withdrawals burn the balance on resolve, so the only\n  // reliable way to get a withdrawal amount is\n  // via the initial balance in the transfer state\n  const withdrawalAmount = event.updatedTransfer.transferState.balance.amount\n    .reduce((prev, curr) => prev.add(curr), BigNumber.from(0))\n    .sub(event.updatedTransfer.transferState.fee);\n\n  logger.info(\n    {\n      method,\n      methodId,\n      withdrawalAmount: withdrawalAmount.toString(),\n      initiator: event.updatedTransfer.initiator,\n      responder: event.updatedTransfer.responder,\n      fee: event.updatedTransfer.transferState.fee,\n    },\n    \"Withdrawal info\",\n  );\n\n  // if the transfer got cancelled, do not create commitment\n  let commitment: WithdrawCommitment | undefined;\n  if (event.updatedTransfer.transferResolver!.responderSignature !== mkSig(\"0x0\")) {\n    // Generate commitment, and save the double signed version\n    commitment = new WithdrawCommitment(\n      channelAddress,\n      alice,\n      bob,\n      event.updatedTransfer.balance.to[0],\n      assetId,\n      withdrawalAmount.toString(),\n      event.updatedTransfer.transferState.nonce,\n      event.updatedTransfer.transferState.callTo,\n      event.updatedTransfer.transferState.callData,\n      meta?.transactionHash ?? undefined,\n    );\n    await commitment.addSignatures(\n      event.updatedTransfer.transferState.initiatorSignature,\n      event.updatedTransfer.transferResolver!.responderSignature,\n    );\n  }\n\n  // Post to evt\n  const assetIdx = assetIds.findIndex((a) => getAddress(a) === getAddress(assetId));\n  const payload: WithdrawalResolvedPayload = {\n    aliceIdentifier,\n    bobIdentifier,\n    assetId,\n    amount: withdrawalAmount.toString(),\n    fee: event.updatedTransfer.transferState.fee,\n    recipient: event.updatedTransfer.balance.to[0],\n    channelBalance: balances[assetIdx],\n    channelAddress,\n    transfer: event.updatedTransfer,\n    callTo: event.updatedTransfer.transferState.callTo,\n    callData: event.updatedTransfer.transferState.callData,\n    transaction: commitment?.getSignedTransaction(),\n  };\n  evts[EngineEvents.WITHDRAWAL_RESOLVED].post(payload);\n\n  // if the transfer got cancelled, no need to do anything\n  if (event.updatedTransfer.transferResolver!.responderSignature === mkSig(\"0x0\")) {\n    logger.warn(\n      { method, methodId, withdrawalAmount: withdrawalAmount.toString(), assetId, transfer: event.updatedTransfer },\n      \"Withdrawal was cancelled\",\n    );\n    return;\n  }\n\n  // If it is not from counterparty, do not respond\n  if (fromIdentifier === signer.publicIdentifier) {\n    logger.debug(\n      { method, methodId, withdrawalAmount: withdrawalAmount.toString(), assetId },\n      \"Our own resolution, no need to do anything\",\n    );\n    return;\n  }\n  // Try to submit the transaction to chain IFF you are alice\n  // Otherwise, alice should have submitted the tx (hash is in meta)\n  if (signer.address !== alice) {\n    // Store the double signed commitment\n    await store.saveWithdrawalCommitment(transferId, commitment!.toJson());\n    logger.info({ method, methodId, withdrawalAmount: withdrawalAmount.toString(), assetId }, \"Completed\");\n    return;\n  }\n\n  // Here, alice is handling her own resolved withdrawals\n\n  // If it is mainnet, alice should hold the withdrawals and submit them\n  // at a lower gas price.\n  // NOTE: The logic to hold withdrawals until gas price is lower exists in\n  // the server-node ONLY. This makes the implicit assumption that browser-nodes\n  // will *NOT* be alice. This is safe because this assumption is also made\n  // on setup when the browser-node will always `requestSetup`\n  if (event.updatedChannelState.networkContext.chainId === 1) {\n    await store.saveWithdrawalCommitment(transferId, commitment!.toJson());\n    logger.debug({ method, channel: event.updatedChannelState.channelAddress }, \"Holding mainnet withdrawal\");\n    return;\n  }\n\n  // Submit withdrawal to chain IFF not mainnet\n  const withdrawalResponse = await chainService.sendWithdrawTx(\n    event.updatedChannelState,\n    commitment!.getSignedTransaction(),\n  );\n\n  if (withdrawalResponse.isError) {\n    // Store the double signed commitment\n    await store.saveWithdrawalCommitment(transferId, commitment!.toJson());\n    logger.warn(\n      { method, error: withdrawalResponse.getError()!.message, channelAddress, transferId },\n      \"Failed to submit withdraw\",\n    );\n    return;\n  }\n  const tx = withdrawalResponse.getValue();\n  commitment!.addTransaction(tx.transactionHash);\n  await store.saveWithdrawalCommitment(transferId, commitment!.toJson());\n\n  // alice submitted her own withdrawal, post to evt\n  evts[WITHDRAWAL_RECONCILED_EVENT].post({\n    aliceIdentifier,\n    bobIdentifier,\n    channelAddress,\n    transferId,\n    transactionHash: tx.transactionHash,\n  });\n  logger.info({ transactionHash: tx.transactionHash }, \"Submitted withdraw tx\");\n}\n\nexport const isWithdrawTransfer = async (\n  transfer: FullTransferState,\n  chainAddresses: ChainAddresses,\n  chainService: IVectorChainReader,\n): Promise<Result<boolean, ChainError>> => {\n  const withdrawInfo = await chainService.getRegisteredTransferByName(\n    TransferNames.Withdraw,\n    chainAddresses[transfer.chainId].transferRegistryAddress,\n    transfer.chainId,\n  );\n  if (withdrawInfo.isError) {\n    return Result.fail(withdrawInfo.getError()!);\n  }\n  const { definition } = withdrawInfo.getValue();\n  return Result.ok(transfer.transferDefinition === definition);\n};\n\nexport const resolveWithdrawal = async (\n  channelState: FullChannelState,\n  transfer: FullTransferState,\n  vector: IVectorProtocol,\n  evts: EngineEvtContainer,\n  store: IEngineStore,\n  signer: IChannelSigner,\n  chainService: IVectorChainService,\n  logger: BaseLogger,\n  messaging: IMessagingService,\n): Promise<void> => {\n  const method = \"resolveWithdrawal\";\n  const methodId = getRandomBytes32();\n\n  // If you receive a withdrawal creation, you should\n  // resolve the withdrawal with your signature\n  const {\n    aliceIdentifier,\n    bobIdentifier,\n    channelAddress,\n    balances,\n    assetIds,\n    alice,\n    bob,\n  } = channelState as FullChannelState;\n  logger.info(\n    { channelAddress, transferId: transfer.transferId, assetId: transfer.assetId, method, methodId },\n    \"Started\",\n  );\n\n  // Get the recipient + amount from the transfer state\n  const {\n    meta,\n    assetId,\n    initiatorIdentifier,\n    transferId,\n    transferState: { nonce, initiatorSignature, fee, initiator, responder, callTo, callData, balance },\n  } = transfer;\n\n  // determine whether or not alice should submit\n  const initiatorSubmits = meta.initiatorSubmits ?? false;\n\n  // withdrawals burn the balance on resolve, so the only\n  // reliable way to get a withdrawal amount is\n  // via the initial balance in the transfer state\n  const withdrawalAmount = balance.amount.reduce((prev, curr) => prev.add(curr), BigNumber.from(0)).sub(fee);\n  logger.debug({ withdrawalAmount: withdrawalAmount.toString(), initiator, responder, fee }, \"Withdrawal info\");\n\n  // Post to evt\n  const assetIdx = assetIds.findIndex((a) => getAddress(a) === getAddress(assetId));\n  const payload: WithdrawalCreatedPayload = {\n    aliceIdentifier,\n    bobIdentifier,\n    assetId,\n    amount: withdrawalAmount.toString(),\n    fee,\n    recipient: balance.to[0],\n    channelBalance: balances[assetIdx],\n    channelAddress,\n    transfer,\n    callTo,\n    callData,\n  };\n  evts[EngineEvents.WITHDRAWAL_CREATED].post(payload);\n\n  // If it is not from counterparty, do not respond\n  if (initiatorIdentifier === signer.publicIdentifier) {\n    logger.info({ method }, \"Waiting for counterparty sig\");\n    return;\n  }\n\n  // no longer checking withdrawal quote, see https://github.com/connext/vector/issues/529\n\n  const commitment = new WithdrawCommitment(\n    channelAddress,\n    alice,\n    bob,\n    balance.to[0],\n    assetId,\n    withdrawalAmount.toString(),\n    nonce,\n    callTo,\n    callData,\n  );\n\n  // Generate your signature on the withdrawal commitment\n  const responderSignature = await signer.signMessage(commitment.hashToSign());\n  await commitment.addSignatures(initiatorSignature, responderSignature);\n\n  // Store the double signed commitment\n  await store.saveWithdrawalCommitment(transfer.transferId, commitment.toJson());\n\n  // Resolve withdrawal from counterparty\n  // See note above re: fees + injected validation\n  const resolveRes = await vector.resolve({\n    transferResolver: { responderSignature },\n    transferId,\n    channelAddress,\n    meta,\n  });\n\n  // Handle the error\n  if (resolveRes.isError) {\n    logger.error(\n      {\n        method,\n        error: resolveRes.getError()!.message,\n        transferId,\n        channelAddress,\n      },\n      \"Failed to resolve\",\n    );\n    return;\n  }\n\n  // Withdrawal successfully resolved\n  logger.info({ method, amount: withdrawalAmount.toString(), assetId: transfer.assetId, fee }, \"Withdrawal resolved\");\n\n  // Assume that only alice will try to submit the withdrawal to chain.\n  // Alice may or may not charge a fee for this service, and both parties\n  // are welcome to submit the commitment if the other party does not.\n  if (signer.address === alice && !initiatorSubmits) {\n    // Submit withdrawal to chain\n    logger.info(\n      { method, withdrawalAmount: withdrawalAmount.toString(), channelAddress },\n      \"Submitting withdrawal to chain\",\n    );\n    const withdrawalResponse = await chainService.sendWithdrawTx(channelState, commitment.getSignedTransaction());\n\n    // IFF the withdrawal was successfully submitted, resolve the transfer\n    // with the transactionHash in the meta\n    if (!withdrawalResponse.isError) {\n      const transactionHash = withdrawalResponse.getValue()!.transactionHash;\n      logger.info({ method, transactionHash }, \"Submitted tx\");\n      commitment.addTransaction(transactionHash);\n      await store.saveWithdrawalCommitment(transfer.transferId, commitment.toJson());\n\n      // publish to counterparty\n      await messaging.publishWithdrawalSubmittedMessage(\n        bobIdentifier,\n        aliceIdentifier,\n        Result.ok({ transferId, txHash: transactionHash, channelAddress }),\n      );\n\n      // Post to reconciliation evt on submission\n      evts[WITHDRAWAL_RECONCILED_EVENT].post({\n        aliceIdentifier,\n        bobIdentifier,\n        channelAddress,\n        transferId,\n        transactionHash,\n      });\n    } else {\n      // log the transaction error, try to resolve with an undefined hash\n      logger.error({ error: withdrawalResponse.getError()!.message, method }, \"Failed to submit tx\");\n    }\n  }\n};\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0ab49e85ab270d15f4a035c97aac89747b1dd940"},"/app/modules/engine/src/utils.ts":{"path":"/app/modules/engine/src/utils.ts","statementMap":{"0":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"1":{"start":{"line":3,"column":28},"end":{"line":3,"column":110}},"2":{"start":{"line":3,"column":91},"end":{"line":3,"column":106}},"3":{"start":{"line":4,"column":4},"end":{"line":9,"column":7}},"4":{"start":{"line":5,"column":36},"end":{"line":5,"column":97}},"5":{"start":{"line":5,"column":42},"end":{"line":5,"column":70}},"6":{"start":{"line":5,"column":85},"end":{"line":5,"column":95}},"7":{"start":{"line":6,"column":35},"end":{"line":6,"column":100}},"8":{"start":{"line":6,"column":41},"end":{"line":6,"column":73}},"9":{"start":{"line":6,"column":88},"end":{"line":6,"column":98}},"10":{"start":{"line":7,"column":32},"end":{"line":7,"column":116}},"11":{"start":{"line":8,"column":8},"end":{"line":8,"column":78}},"12":{"start":{"line":11,"column":0},"end":{"line":11,"column":62}},"13":{"start":{"line":12,"column":0},"end":{"line":12,"column":179}},"14":{"start":{"line":13,"column":23},"end":{"line":13,"column":55}},"15":{"start":{"line":14,"column":27},"end":{"line":14,"column":63}},"16":{"start":{"line":15,"column":23},"end":{"line":15,"column":55}},"17":{"start":{"line":16,"column":14},"end":{"line":16,"column":28}},"18":{"start":{"line":17,"column":20},"end":{"line":17,"column":55}},"19":{"start":{"line":18,"column":17},"end":{"line":18,"column":36}},"20":{"start":{"line":19,"column":30},"end":{"line":40,"column":1}},"21":{"start":{"line":20,"column":4},"end":{"line":39,"column":6}},"22":{"start":{"line":41,"column":0},"end":{"line":41,"column":54}},"23":{"start":{"line":43,"column":4},"end":{"line":43,"column":153}},"24":{"start":{"line":45,"column":0},"end":{"line":45,"column":44}},"25":{"start":{"line":48,"column":4},"end":{"line":103,"column":7}},"26":{"start":{"line":49,"column":23},"end":{"line":49,"column":51}},"27":{"start":{"line":50,"column":25},"end":{"line":50,"column":58}},"28":{"start":{"line":51,"column":8},"end":{"line":70,"column":9}},"29":{"start":{"line":52,"column":25},"end":{"line":52,"column":72}},"30":{"start":{"line":53,"column":12},"end":{"line":57,"column":13}},"31":{"start":{"line":54,"column":16},"end":{"line":56,"column":20}},"32":{"start":{"line":58,"column":12},"end":{"line":63,"column":13}},"33":{"start":{"line":59,"column":16},"end":{"line":62,"column":20}},"34":{"start":{"line":64,"column":12},"end":{"line":64,"column":84}},"35":{"start":{"line":65,"column":12},"end":{"line":69,"column":13}},"36":{"start":{"line":66,"column":16},"end":{"line":68,"column":20}},"37":{"start":{"line":71,"column":29},"end":{"line":71,"column":155}},"38":{"start":{"line":72,"column":8},"end":{"line":75,"column":9}},"39":{"start":{"line":73,"column":12},"end":{"line":73,"column":145}},"40":{"start":{"line":74,"column":12},"end":{"line":74,"column":71}},"41":{"start":{"line":76,"column":21},"end":{"line":76,"column":95}},"42":{"start":{"line":78,"column":8},"end":{"line":96,"column":9}},"43":{"start":{"line":79,"column":12},"end":{"line":85,"column":47}},"44":{"start":{"line":86,"column":12},"end":{"line":86,"column":42}},"45":{"start":{"line":89,"column":12},"end":{"line":89,"column":126}},"46":{"start":{"line":90,"column":23},"end":{"line":90,"column":100}},"47":{"start":{"line":91,"column":12},"end":{"line":93,"column":13}},"48":{"start":{"line":92,"column":16},"end":{"line":92,"column":181}},"49":{"start":{"line":94,"column":12},"end":{"line":94,"column":148}},"50":{"start":{"line":95,"column":12},"end":{"line":95,"column":51}},"51":{"start":{"line":97,"column":8},"end":{"line":97,"column":118}},"52":{"start":{"line":98,"column":8},"end":{"line":102,"column":11}},"53":{"start":{"line":105,"column":0},"end":{"line":105,"column":64}},"54":{"start":{"line":107,"column":4},"end":{"line":113,"column":7}},"55":{"start":{"line":108,"column":8},"end":{"line":110,"column":9}},"56":{"start":{"line":109,"column":12},"end":{"line":109,"column":307}},"57":{"start":{"line":111,"column":8},"end":{"line":111,"column":51}},"58":{"start":{"line":112,"column":8},"end":{"line":112,"column":78}},"59":{"start":{"line":115,"column":0},"end":{"line":115,"column":64}},"60":{"start":{"line":118,"column":4},"end":{"line":134,"column":7}},"61":{"start":{"line":119,"column":23},"end":{"line":119,"column":53}},"62":{"start":{"line":120,"column":25},"end":{"line":120,"column":58}},"63":{"start":{"line":121,"column":29},"end":{"line":121,"column":218}},"64":{"start":{"line":122,"column":8},"end":{"line":124,"column":9}},"65":{"start":{"line":123,"column":12},"end":{"line":123,"column":188}},"66":{"start":{"line":125,"column":28},"end":{"line":125,"column":125}},"67":{"start":{"line":126,"column":8},"end":{"line":133,"column":9}},"68":{"start":{"line":127,"column":12},"end":{"line":127,"column":118}},"69":{"start":{"line":128,"column":31},"end":{"line":128,"column":97}},"70":{"start":{"line":129,"column":24},"end":{"line":129,"column":158}},"71":{"start":{"line":130,"column":12},"end":{"line":132,"column":13}},"72":{"start":{"line":131,"column":16},"end":{"line":131,"column":161}},"73":{"start":{"line":136,"column":0},"end":{"line":136,"column":68}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":44},"end":{"line":2,"column":45}},"loc":{"start":{"line":2,"column":89},"end":{"line":10,"column":1}},"line":2},"1":{"name":"adopt","decl":{"start":{"line":3,"column":13},"end":{"line":3,"column":18}},"loc":{"start":{"line":3,"column":26},"end":{"line":3,"column":112}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":3,"column":70},"end":{"line":3,"column":71}},"loc":{"start":{"line":3,"column":89},"end":{"line":3,"column":108}},"line":3},"3":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":36},"end":{"line":4,"column":37}},"loc":{"start":{"line":4,"column":63},"end":{"line":9,"column":5}},"line":4},"4":{"name":"fulfilled","decl":{"start":{"line":5,"column":17},"end":{"line":5,"column":26}},"loc":{"start":{"line":5,"column":34},"end":{"line":5,"column":99}},"line":5},"5":{"name":"rejected","decl":{"start":{"line":6,"column":17},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":33},"end":{"line":6,"column":102}},"line":6},"6":{"name":"step","decl":{"start":{"line":7,"column":17},"end":{"line":7,"column":21}},"loc":{"start":{"line":7,"column":30},"end":{"line":7,"column":118}},"line":7},"7":{"name":"(anonymous_7)","decl":{"start":{"line":19,"column":30},"end":{"line":19,"column":31}},"loc":{"start":{"line":19,"column":36},"end":{"line":40,"column":1}},"line":19},"8":{"name":"normalizeGasFees","decl":{"start":{"line":42,"column":9},"end":{"line":42,"column":25}},"loc":{"start":{"line":42,"column":140},"end":{"line":44,"column":1}},"line":42},"9":{"name":"withdrawRetryForTransferId","decl":{"start":{"line":46,"column":9},"end":{"line":46,"column":35}},"loc":{"start":{"line":46,"column":127},"end":{"line":104,"column":1}},"line":46},"10":{"name":"(anonymous_10)","decl":{"start":{"line":48,"column":43},"end":{"line":48,"column":44}},"loc":{"start":{"line":48,"column":56},"end":{"line":103,"column":5}},"line":48},"11":{"name":"addTransactionToCommitment","decl":{"start":{"line":106,"column":9},"end":{"line":106,"column":35}},"loc":{"start":{"line":106,"column":122},"end":{"line":114,"column":1}},"line":106},"12":{"name":"(anonymous_12)","decl":{"start":{"line":107,"column":43},"end":{"line":107,"column":44}},"loc":{"start":{"line":107,"column":56},"end":{"line":113,"column":5}},"line":107},"13":{"name":"submitUnsubmittedWithdrawals","decl":{"start":{"line":116,"column":9},"end":{"line":116,"column":37}},"loc":{"start":{"line":116,"column":121},"end":{"line":135,"column":1}},"line":116},"14":{"name":"(anonymous_14)","decl":{"start":{"line":118,"column":43},"end":{"line":118,"column":44}},"loc":{"start":{"line":118,"column":56},"end":{"line":134,"column":5}},"line":118}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":17},"end":{"line":2,"column":21}},{"start":{"line":2,"column":25},"end":{"line":2,"column":39}},{"start":{"line":2,"column":44},"end":{"line":10,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":35},"end":{"line":3,"column":109}},"type":"cond-expr","locations":[{"start":{"line":3,"column":56},"end":{"line":3,"column":61}},{"start":{"line":3,"column":64},"end":{"line":3,"column":109}}],"line":3},"2":{"loc":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"type":"binary-expr","locations":[{"start":{"line":4,"column":16},"end":{"line":4,"column":17}},{"start":{"line":4,"column":22},"end":{"line":4,"column":33}}],"line":4},"3":{"loc":{"start":{"line":7,"column":32},"end":{"line":7,"column":115}},"type":"cond-expr","locations":[{"start":{"line":7,"column":46},"end":{"line":7,"column":67}},{"start":{"line":7,"column":70},"end":{"line":7,"column":115}}],"line":7},"4":{"loc":{"start":{"line":8,"column":51},"end":{"line":8,"column":67}},"type":"binary-expr","locations":[{"start":{"line":8,"column":51},"end":{"line":8,"column":61}},{"start":{"line":8,"column":65},"end":{"line":8,"column":67}}],"line":8},"5":{"loc":{"start":{"line":51,"column":8},"end":{"line":70,"column":9}},"type":"if","locations":[{"start":{"line":51,"column":8},"end":{"line":70,"column":9}},{"start":{"line":51,"column":8},"end":{"line":70,"column":9}}],"line":51},"6":{"loc":{"start":{"line":53,"column":12},"end":{"line":57,"column":13}},"type":"if","locations":[{"start":{"line":53,"column":12},"end":{"line":57,"column":13}},{"start":{"line":53,"column":12},"end":{"line":57,"column":13}}],"line":53},"7":{"loc":{"start":{"line":54,"column":148},"end":{"line":54,"column":228}},"type":"cond-expr","locations":[{"start":{"line":54,"column":207},"end":{"line":54,"column":223}},{"start":{"line":54,"column":226},"end":{"line":54,"column":228}}],"line":54},"8":{"loc":{"start":{"line":54,"column":148},"end":{"line":54,"column":204}},"type":"binary-expr","locations":[{"start":{"line":54,"column":148},"end":{"line":54,"column":173}},{"start":{"line":54,"column":177},"end":{"line":54,"column":204}}],"line":54},"9":{"loc":{"start":{"line":58,"column":12},"end":{"line":63,"column":13}},"type":"if","locations":[{"start":{"line":58,"column":12},"end":{"line":63,"column":13}},{"start":{"line":58,"column":12},"end":{"line":63,"column":13}}],"line":58},"10":{"loc":{"start":{"line":59,"column":140},"end":{"line":59,"column":220}},"type":"cond-expr","locations":[{"start":{"line":59,"column":199},"end":{"line":59,"column":215}},{"start":{"line":59,"column":218},"end":{"line":59,"column":220}}],"line":59},"11":{"loc":{"start":{"line":59,"column":140},"end":{"line":59,"column":196}},"type":"binary-expr","locations":[{"start":{"line":59,"column":140},"end":{"line":59,"column":165}},{"start":{"line":59,"column":169},"end":{"line":59,"column":196}}],"line":59},"12":{"loc":{"start":{"line":65,"column":12},"end":{"line":69,"column":13}},"type":"if","locations":[{"start":{"line":65,"column":12},"end":{"line":69,"column":13}},{"start":{"line":65,"column":12},"end":{"line":69,"column":13}}],"line":65},"13":{"loc":{"start":{"line":65,"column":16},"end":{"line":65,"column":58}},"type":"binary-expr","locations":[{"start":{"line":65,"column":16},"end":{"line":65,"column":34}},{"start":{"line":65,"column":38},"end":{"line":65,"column":58}}],"line":65},"14":{"loc":{"start":{"line":66,"column":146},"end":{"line":66,"column":226}},"type":"cond-expr","locations":[{"start":{"line":66,"column":205},"end":{"line":66,"column":221}},{"start":{"line":66,"column":224},"end":{"line":66,"column":226}}],"line":66},"15":{"loc":{"start":{"line":66,"column":146},"end":{"line":66,"column":202}},"type":"binary-expr","locations":[{"start":{"line":66,"column":146},"end":{"line":66,"column":171}},{"start":{"line":66,"column":175},"end":{"line":66,"column":202}}],"line":66},"16":{"loc":{"start":{"line":72,"column":8},"end":{"line":75,"column":9}},"type":"if","locations":[{"start":{"line":72,"column":8},"end":{"line":75,"column":9}},{"start":{"line":72,"column":8},"end":{"line":75,"column":9}}],"line":72},"17":{"loc":{"start":{"line":76,"column":21},"end":{"line":76,"column":95}},"type":"binary-expr","locations":[{"start":{"line":76,"column":21},"end":{"line":76,"column":46}},{"start":{"line":76,"column":50},"end":{"line":76,"column":95}}],"line":76},"18":{"loc":{"start":{"line":78,"column":8},"end":{"line":96,"column":9}},"type":"if","locations":[{"start":{"line":78,"column":8},"end":{"line":96,"column":9}},{"start":{"line":78,"column":8},"end":{"line":96,"column":9}}],"line":78},"19":{"loc":{"start":{"line":78,"column":12},"end":{"line":78,"column":43}},"type":"binary-expr","locations":[{"start":{"line":78,"column":12},"end":{"line":78,"column":35}},{"start":{"line":78,"column":39},"end":{"line":78,"column":43}}],"line":78},"20":{"loc":{"start":{"line":91,"column":12},"end":{"line":93,"column":13}},"type":"if","locations":[{"start":{"line":91,"column":12},"end":{"line":93,"column":13}},{"start":{"line":91,"column":12},"end":{"line":93,"column":13}}],"line":91},"21":{"loc":{"start":{"line":92,"column":56},"end":{"line":92,"column":125}},"type":"cond-expr","locations":[{"start":{"line":92,"column":105},"end":{"line":92,"column":111}},{"start":{"line":92,"column":114},"end":{"line":92,"column":125}}],"line":92},"22":{"loc":{"start":{"line":92,"column":56},"end":{"line":92,"column":102}},"type":"binary-expr","locations":[{"start":{"line":92,"column":56},"end":{"line":92,"column":85}},{"start":{"line":92,"column":89},"end":{"line":92,"column":102}}],"line":92},"23":{"loc":{"start":{"line":94,"column":61},"end":{"line":94,"column":108}},"type":"cond-expr","locations":[{"start":{"line":94,"column":74},"end":{"line":94,"column":76}},{"start":{"line":94,"column":79},"end":{"line":94,"column":108}}],"line":94},"24":{"loc":{"start":{"line":108,"column":8},"end":{"line":110,"column":9}},"type":"if","locations":[{"start":{"line":108,"column":8},"end":{"line":110,"column":9}},{"start":{"line":108,"column":8},"end":{"line":110,"column":9}}],"line":108},"25":{"loc":{"start":{"line":109,"column":62},"end":{"line":109,"column":180}},"type":"cond-expr","locations":[{"start":{"line":109,"column":133},"end":{"line":109,"column":154}},{"start":{"line":109,"column":157},"end":{"line":109,"column":180}}],"line":109},"26":{"loc":{"start":{"line":122,"column":8},"end":{"line":124,"column":9}},"type":"if","locations":[{"start":{"line":122,"column":8},"end":{"line":124,"column":9}},{"start":{"line":122,"column":8},"end":{"line":124,"column":9}}],"line":122},"27":{"loc":{"start":{"line":123,"column":52},"end":{"line":123,"column":131}},"type":"cond-expr","locations":[{"start":{"line":123,"column":111},"end":{"line":123,"column":117}},{"start":{"line":123,"column":120},"end":{"line":123,"column":131}}],"line":123},"28":{"loc":{"start":{"line":123,"column":52},"end":{"line":123,"column":108}},"type":"binary-expr","locations":[{"start":{"line":123,"column":52},"end":{"line":123,"column":91}},{"start":{"line":123,"column":95},"end":{"line":123,"column":108}}],"line":123},"29":{"loc":{"start":{"line":130,"column":12},"end":{"line":132,"column":13}},"type":"if","locations":[{"start":{"line":130,"column":12},"end":{"line":132,"column":13}},{"start":{"line":130,"column":12},"end":{"line":132,"column":13}}],"line":130}},"s":{"0":1,"1":14,"2":3,"3":5,"4":14,"5":14,"6":0,"7":0,"8":0,"9":0,"10":19,"11":5,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":91,"22":1,"23":0,"24":1,"25":2,"26":2,"27":2,"28":2,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":2,"38":2,"39":0,"40":0,"41":2,"42":2,"43":1,"44":1,"45":1,"46":1,"47":1,"48":0,"49":1,"50":1,"51":2,"52":2,"53":1,"54":2,"55":2,"56":1,"57":2,"58":2,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":0,"66":1,"67":1,"68":2,"69":2,"70":2,"71":2,"72":0,"73":1},"f":{"0":5,"1":14,"2":3,"3":5,"4":14,"5":0,"6":19,"7":91,"8":0,"9":2,"10":2,"11":2,"12":2,"13":1,"14":1},"b":{"0":[1,1,1],"1":[11,3],"2":[5,5],"3":[5,14],"4":[5,5],"5":[0,2],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,2],"17":[2,0],"18":[1,1],"19":[2,1],"20":[0,1],"21":[0,0],"22":[0,0],"23":[0,1],"24":[1,1],"25":[1,0],"26":[0,1],"27":[0,0],"28":[0,0],"29":[0,2]},"inputSourceMap":{"version":3,"file":"/app/modules/engine/src/utils.ts","sources":["/app/modules/engine/src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n  ConditionalTransferCreatedPayload,\n  ConditionalTransferResolvedPayload,\n  DepositReconciledPayload,\n  WithdrawalCreatedPayload,\n  WithdrawalResolvedPayload,\n  WithdrawalReconciledPayload,\n  SetupPayload,\n  RequestCollateralPayload,\n  RestoreStatePayload,\n  IsAlivePayload,\n  EngineEvents,\n  ChainServiceEvents,\n  TransactionSubmittedPayload,\n  TransactionMinedPayload,\n  TransactionFailedPayload,\n  IVectorChainReader,\n  Result,\n  ChannelDisputedPayload,\n  ChannelDefundedPayload,\n  TransferDisputedPayload,\n  TransferDefundedPayload,\n  ConditionalTransferRoutingCompletePayload,\n  ChainAddresses,\n  ChannelRpcMethodsResponsesMap,\n  ChannelRpcMethods,\n  EngineError,\n  FullChannelState,\n  IEngineStore,\n  IVectorChainService,\n  TransferNames,\n  jsonifyError,\n  IMessagingService,\n} from \"@connext/vector-types\";\nimport { WithdrawCommitment } from \"@connext/vector-contracts\";\nimport { FeeCalculationError, normalizeFee, getRandomBytes32, getParticipant } from \"@connext/vector-utils\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { Evt } from \"evt\";\nimport { AddressZero, HashZero } from \"@ethersproject/constants\";\nimport { BaseLogger } from \"pino\";\n\nimport { EngineEvtContainer } from \"./index\";\nimport { RpcError } from \"./errors\";\n\nexport const getEngineEvtContainer = (): EngineEvtContainer => {\n  return {\n    [EngineEvents.IS_ALIVE]: Evt.create<IsAlivePayload>(),\n    [EngineEvents.SETUP]: Evt.create<SetupPayload>(),\n    [EngineEvents.CONDITIONAL_TRANSFER_CREATED]: Evt.create<ConditionalTransferCreatedPayload>(),\n    [EngineEvents.CONDITIONAL_TRANSFER_RESOLVED]: Evt.create<ConditionalTransferResolvedPayload>(),\n    [EngineEvents.CONDITIONAL_TRANSFER_ROUTING_COMPLETE]: Evt.create<ConditionalTransferRoutingCompletePayload>(),\n    [EngineEvents.DEPOSIT_RECONCILED]: Evt.create<DepositReconciledPayload>(),\n    [EngineEvents.REQUEST_COLLATERAL]: Evt.create<RequestCollateralPayload>(),\n    [EngineEvents.RESTORE_STATE_EVENT]: Evt.create<RestoreStatePayload>(),\n    [EngineEvents.WITHDRAWAL_CREATED]: Evt.create<WithdrawalCreatedPayload>(),\n    [EngineEvents.WITHDRAWAL_RESOLVED]: Evt.create<WithdrawalResolvedPayload>(),\n    [EngineEvents.WITHDRAWAL_RECONCILED]: Evt.create<WithdrawalReconciledPayload>(),\n    [ChainServiceEvents.TRANSACTION_SUBMITTED]: Evt.create<\n      TransactionSubmittedPayload & { publicIdentifier: string }\n    >(),\n    [ChainServiceEvents.TRANSACTION_MINED]: Evt.create<TransactionMinedPayload & { publicIdentifier: string }>(),\n    [ChainServiceEvents.TRANSACTION_FAILED]: Evt.create<TransactionFailedPayload & { publicIdentifier: string }>(),\n    [ChainServiceEvents.CHANNEL_DISPUTED]: Evt.create<ChannelDisputedPayload & { publicIdentifier: string }>(),\n    [ChainServiceEvents.CHANNEL_DEFUNDED]: Evt.create<ChannelDefundedPayload & { publicIdentifier: string }>(),\n    [ChainServiceEvents.TRANSFER_DISPUTED]: Evt.create<TransferDisputedPayload & { publicIdentifier: string }>(),\n    [ChainServiceEvents.TRANSFER_DEFUNDED]: Evt.create<TransferDefundedPayload & { publicIdentifier: string }>(),\n  };\n};\n\n// Yes, this is dumb. It helps with mocking because using\n// sinon to mock vector-utils functions does not work\nexport function normalizeGasFees(\n  fee: BigNumber,\n  baseAssetDecimals: number,\n  desiredFeeAssetId: string, // asset you want fee denominated in\n  desiredFeeAssetDecimals: number,\n  chainId: number,\n  ethReader: IVectorChainReader,\n  logger: BaseLogger,\n  gasPriceOverride?: BigNumber,\n): Promise<Result<BigNumber, FeeCalculationError>> {\n  return normalizeFee(\n    fee,\n    baseAssetDecimals,\n    desiredFeeAssetId,\n    desiredFeeAssetDecimals,\n    chainId,\n    ethReader,\n    logger,\n    gasPriceOverride,\n  );\n}\n\nexport async function withdrawRetryForTransferId(\n  transferId: string,\n  channel: FullChannelState,\n  store: IEngineStore,\n  chainService: IVectorChainService,\n  logger: BaseLogger,\n  messaging: IMessagingService,\n  publicIdentifier: string,\n  commitment?: WithdrawCommitment,\n): Promise<Result<ChannelRpcMethodsResponsesMap[typeof ChannelRpcMethods.chan_withdrawRetry], EngineError>> {\n  const method = \"withdrawRetryForTransferId\";\n  const methodId = getRandomBytes32();\n  if (!commitment) {\n    const json = await store.getWithdrawalCommitment(transferId);\n    if (!json) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.WithdrawResolutionFailed, channel.channelAddress, publicIdentifier ?? \"\", {\n          transferId: transferId,\n        }),\n      );\n    }\n\n    if (json.transactionHash) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.TransactionFound, channel.channelAddress, publicIdentifier ?? \"\", {\n          transferId: transferId,\n          transactionHash: json.transactionHash,\n        }),\n      );\n    }\n\n    commitment = await WithdrawCommitment.fromJson(json);\n\n    if (!json.bobSignature || !json.aliceSignature) {\n      return Result.fail(\n        new RpcError(RpcError.reasons.CommitmentSingleSigned, channel.channelAddress, publicIdentifier ?? \"\", {\n          transferId: transferId,\n        }),\n      );\n    }\n  }\n\n  // before submitting, check status\n  const wasSubmitted = await chainService.getWithdrawalTransactionRecord(\n    commitment.toJson(),\n    channel.channelAddress,\n    channel.networkContext.chainId,\n  );\n  if (wasSubmitted.isError) {\n    logger.error(\n      { method, methodId, error: jsonifyError(wasSubmitted.getError()!) },\n      \"Could not check submission status\",\n    );\n    return Result.fail(wasSubmitted.getError()!);\n  }\n  const noOp = commitment.amount === \"0\" && commitment.callTo === AddressZero;\n  let txHash;\n  if (wasSubmitted.getValue() || noOp) {\n    logger.info(\n      {\n        transferId,\n        channelAddress: channel.channelAddress,\n        commitment,\n        wasSubmitted: wasSubmitted.getValue(),\n        noOp,\n      },\n      \"Previously submitted / no-op\",\n    );\n    txHash = HashZero;\n  } else {\n    logger.info({ method, methodId, channelAddress: channel.channelAddress, transferId }, \"Withdraw retry initiated\");\n    const tx = await chainService.sendWithdrawTx(channel, commitment.getSignedTransaction());\n    if (tx.isError) {\n      logger.error(\n        { method, methodId, error: tx.getError()?.toJson(), commitment },\n        \"Error in chainService.sendWithdrawTx\",\n      );\n    }\n    logger.info(\n      { method, methodId, transactionHash: tx.isError ? \"\" : tx.getValue().transactionHash },\n      \"Submitted unsubmitted withdrawal\",\n    );\n    txHash = tx.getValue().transactionHash;\n  }\n  await addTransactionToCommitment(txHash, transferId, commitment, messaging, channel, store, publicIdentifier);\n\n  return Result.ok({\n    transactionHash: txHash,\n    transferId: transferId,\n    channelAddress: channel.channelAddress,\n  });\n}\n\nexport async function addTransactionToCommitment(\n  transactionHash: string,\n  transferId: string,\n  commitment: WithdrawCommitment,\n  messaging: IMessagingService,\n  channel: FullChannelState,\n  store: IEngineStore,\n  publicIdentifier: string,\n): Promise<void> {\n  if (transactionHash !== HashZero) {\n    await messaging.publishWithdrawalSubmittedMessage(\n      getParticipant(channel, publicIdentifier) === \"alice\" ? channel.bobIdentifier : channel.aliceIdentifier,\n      publicIdentifier,\n      Result.ok({ txHash: transactionHash, transferId, channelAddress: channel.channelAddress }),\n    );\n  }\n  commitment.addTransaction(transactionHash);\n  await store.saveWithdrawalCommitment(transferId, commitment.toJson());\n}\n\nexport async function submitUnsubmittedWithdrawals(\n  channel: FullChannelState,\n  store: IEngineStore,\n  chainAddresses: ChainAddresses,\n  chainService: IVectorChainService,\n  logger: BaseLogger,\n  messaging: IMessagingService,\n  publicIdentifier: string,\n): Promise<void> {\n  const method = \"submitUnsubmittedWithdrawals\";\n  const methodId = getRandomBytes32();\n\n  const withdrawInfo = await chainService.getRegisteredTransferByName(\n    TransferNames.Withdraw,\n    chainAddresses[channel.networkContext.chainId].transferRegistryAddress,\n    channel.networkContext.chainId,\n  );\n  if (withdrawInfo.isError) {\n    logger.error(\n      { method, methodId, error: withdrawInfo.getError()?.toJson() },\n      \"Error in chainService.getRegisteredTransferByName\",\n    );\n  }\n\n  const unsubmitted = await store.getUnsubmittedWithdrawals(channel.channelAddress, withdrawInfo.getValue().definition);\n  for (const u of unsubmitted) {\n    logger.info({ method, methodId, transferId: u.transfer.transferId }, \"Submitting unsubmitted withdrawal\");\n\n    const commitment = await WithdrawCommitment.fromJson(u.commitment);\n    const res = await withdrawRetryForTransferId(\n      u.transfer.transferId,\n      channel,\n      store,\n      chainService,\n      logger,\n      messaging,\n      publicIdentifier,\n      commitment,\n    );\n\n    if (res.isError) {\n      logger.error(\n        { method, methodId, error: jsonifyError(res.getError()!), commitment: u },\n        \"Error submitting unsubmitted withdrawal\",\n      );\n    }\n  }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"316b2a179aa25524b7e4c9e6fd303782c3ea19ba"},"/app/modules/engine/src/isAlive.ts":{"path":"/app/modules/engine/src/isAlive.ts","statementMap":{"0":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"1":{"start":{"line":3,"column":28},"end":{"line":3,"column":110}},"2":{"start":{"line":3,"column":91},"end":{"line":3,"column":106}},"3":{"start":{"line":4,"column":4},"end":{"line":9,"column":7}},"4":{"start":{"line":5,"column":36},"end":{"line":5,"column":97}},"5":{"start":{"line":5,"column":42},"end":{"line":5,"column":70}},"6":{"start":{"line":5,"column":85},"end":{"line":5,"column":95}},"7":{"start":{"line":6,"column":35},"end":{"line":6,"column":100}},"8":{"start":{"line":6,"column":41},"end":{"line":6,"column":73}},"9":{"start":{"line":6,"column":88},"end":{"line":6,"column":98}},"10":{"start":{"line":7,"column":32},"end":{"line":7,"column":116}},"11":{"start":{"line":8,"column":8},"end":{"line":8,"column":78}},"12":{"start":{"line":11,"column":0},"end":{"line":11,"column":62}},"13":{"start":{"line":12,"column":0},"end":{"line":12,"column":29}},"14":{"start":{"line":13,"column":23},"end":{"line":13,"column":55}},"15":{"start":{"line":14,"column":23},"end":{"line":14,"column":55}},"16":{"start":{"line":16,"column":4},"end":{"line":52,"column":7}},"17":{"start":{"line":17,"column":23},"end":{"line":17,"column":36}},"18":{"start":{"line":18,"column":25},"end":{"line":18,"column":55}},"19":{"start":{"line":19,"column":26},"end":{"line":19,"column":58}},"20":{"start":{"line":20,"column":8},"end":{"line":23,"column":9}},"21":{"start":{"line":21,"column":12},"end":{"line":21,"column":126}},"22":{"start":{"line":22,"column":12},"end":{"line":22,"column":19}},"23":{"start":{"line":24,"column":32},"end":{"line":24,"column":97}},"24":{"start":{"line":24,"column":81},"end":{"line":24,"column":96}},"25":{"start":{"line":25,"column":8},"end":{"line":25,"column":91}},"26":{"start":{"line":26,"column":8},"end":{"line":51,"column":13}},"27":{"start":{"line":26,"column":52},"end":{"line":51,"column":10}},"28":{"start":{"line":28,"column":12},"end":{"line":31,"column":13}},"29":{"start":{"line":29,"column":16},"end":{"line":29,"column":180}},"30":{"start":{"line":30,"column":16},"end":{"line":30,"column":23}},"31":{"start":{"line":32,"column":32},"end":{"line":32,"column":97}},"32":{"start":{"line":33,"column":12},"end":{"line":36,"column":13}},"33":{"start":{"line":34,"column":16},"end":{"line":34,"column":164}},"34":{"start":{"line":35,"column":16},"end":{"line":35,"column":23}},"35":{"start":{"line":37,"column":43},"end":{"line":37,"column":116}},"36":{"start":{"line":38,"column":24},"end":{"line":38,"column":179}},"37":{"start":{"line":39,"column":12},"end":{"line":50,"column":13}},"38":{"start":{"line":40,"column":16},"end":{"line":46,"column":52}},"39":{"start":{"line":49,"column":16},"end":{"line":49,"column":158}},"40":{"start":{"line":54,"column":0},"end":{"line":54,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":44},"end":{"line":2,"column":45}},"loc":{"start":{"line":2,"column":89},"end":{"line":10,"column":1}},"line":2},"1":{"name":"adopt","decl":{"start":{"line":3,"column":13},"end":{"line":3,"column":18}},"loc":{"start":{"line":3,"column":26},"end":{"line":3,"column":112}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":3,"column":70},"end":{"line":3,"column":71}},"loc":{"start":{"line":3,"column":89},"end":{"line":3,"column":108}},"line":3},"3":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":36},"end":{"line":4,"column":37}},"loc":{"start":{"line":4,"column":63},"end":{"line":9,"column":5}},"line":4},"4":{"name":"fulfilled","decl":{"start":{"line":5,"column":17},"end":{"line":5,"column":26}},"loc":{"start":{"line":5,"column":34},"end":{"line":5,"column":99}},"line":5},"5":{"name":"rejected","decl":{"start":{"line":6,"column":17},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":33},"end":{"line":6,"column":102}},"line":6},"6":{"name":"step","decl":{"start":{"line":7,"column":17},"end":{"line":7,"column":21}},"loc":{"start":{"line":7,"column":30},"end":{"line":7,"column":118}},"line":7},"7":{"name":"sendIsAlive","decl":{"start":{"line":15,"column":9},"end":{"line":15,"column":20}},"loc":{"start":{"line":15,"column":71},"end":{"line":53,"column":1}},"line":15},"8":{"name":"(anonymous_8)","decl":{"start":{"line":16,"column":43},"end":{"line":16,"column":44}},"loc":{"start":{"line":16,"column":56},"end":{"line":52,"column":5}},"line":16},"9":{"name":"(anonymous_9)","decl":{"start":{"line":24,"column":70},"end":{"line":24,"column":71}},"loc":{"start":{"line":24,"column":81},"end":{"line":24,"column":96}},"line":24},"10":{"name":"(anonymous_10)","decl":{"start":{"line":26,"column":39},"end":{"line":26,"column":40}},"loc":{"start":{"line":26,"column":52},"end":{"line":51,"column":10}},"line":26},"11":{"name":"(anonymous_11)","decl":{"start":{"line":26,"column":84},"end":{"line":26,"column":85}},"loc":{"start":{"line":26,"column":97},"end":{"line":51,"column":9}},"line":26}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":17},"end":{"line":2,"column":21}},{"start":{"line":2,"column":25},"end":{"line":2,"column":39}},{"start":{"line":2,"column":44},"end":{"line":10,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":35},"end":{"line":3,"column":109}},"type":"cond-expr","locations":[{"start":{"line":3,"column":56},"end":{"line":3,"column":61}},{"start":{"line":3,"column":64},"end":{"line":3,"column":109}}],"line":3},"2":{"loc":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"type":"binary-expr","locations":[{"start":{"line":4,"column":16},"end":{"line":4,"column":17}},{"start":{"line":4,"column":22},"end":{"line":4,"column":33}}],"line":4},"3":{"loc":{"start":{"line":7,"column":32},"end":{"line":7,"column":115}},"type":"cond-expr","locations":[{"start":{"line":7,"column":46},"end":{"line":7,"column":67}},{"start":{"line":7,"column":70},"end":{"line":7,"column":115}}],"line":7},"4":{"loc":{"start":{"line":8,"column":51},"end":{"line":8,"column":67}},"type":"binary-expr","locations":[{"start":{"line":8,"column":51},"end":{"line":8,"column":61}},{"start":{"line":8,"column":65},"end":{"line":8,"column":67}}],"line":8},"5":{"loc":{"start":{"line":20,"column":8},"end":{"line":23,"column":9}},"type":"if","locations":[{"start":{"line":20,"column":8},"end":{"line":23,"column":9}},{"start":{"line":20,"column":8},"end":{"line":23,"column":9}}],"line":20},"6":{"loc":{"start":{"line":28,"column":12},"end":{"line":31,"column":13}},"type":"if","locations":[{"start":{"line":28,"column":12},"end":{"line":31,"column":13}},{"start":{"line":28,"column":12},"end":{"line":31,"column":13}}],"line":28},"7":{"loc":{"start":{"line":33,"column":12},"end":{"line":36,"column":13}},"type":"if","locations":[{"start":{"line":33,"column":12},"end":{"line":36,"column":13}},{"start":{"line":33,"column":12},"end":{"line":36,"column":13}}],"line":33},"8":{"loc":{"start":{"line":37,"column":43},"end":{"line":37,"column":116}},"type":"cond-expr","locations":[{"start":{"line":37,"column":69},"end":{"line":37,"column":90}},{"start":{"line":37,"column":93},"end":{"line":37,"column":116}}],"line":37},"9":{"loc":{"start":{"line":39,"column":12},"end":{"line":50,"column":13}},"type":"if","locations":[{"start":{"line":39,"column":12},"end":{"line":50,"column":13}},{"start":{"line":39,"column":12},"end":{"line":50,"column":13}}],"line":39},"10":{"loc":{"start":{"line":44,"column":27},"end":{"line":44,"column":96}},"type":"cond-expr","locations":[{"start":{"line":44,"column":77},"end":{"line":44,"column":83}},{"start":{"line":44,"column":86},"end":{"line":44,"column":96}}],"line":44},"11":{"loc":{"start":{"line":44,"column":27},"end":{"line":44,"column":74}},"type":"binary-expr","locations":[{"start":{"line":44,"column":27},"end":{"line":44,"column":57}},{"start":{"line":44,"column":61},"end":{"line":44,"column":74}}],"line":44},"12":{"loc":{"start":{"line":45,"column":29},"end":{"line":45,"column":98}},"type":"cond-expr","locations":[{"start":{"line":45,"column":79},"end":{"line":45,"column":85}},{"start":{"line":45,"column":88},"end":{"line":45,"column":98}}],"line":45},"13":{"loc":{"start":{"line":45,"column":29},"end":{"line":45,"column":76}},"type":"binary-expr","locations":[{"start":{"line":45,"column":29},"end":{"line":45,"column":59}},{"start":{"line":45,"column":63},"end":{"line":45,"column":76}}],"line":45}},"s":{"0":1,"1":176,"2":0,"3":89,"4":176,"5":176,"6":0,"7":0,"8":0,"9":0,"10":265,"11":89,"12":1,"13":1,"14":1,"15":1,"16":87,"17":87,"18":87,"19":87,"20":87,"21":0,"22":0,"23":87,"24":87,"25":87,"26":87,"27":2,"28":2,"29":0,"30":0,"31":2,"32":2,"33":0,"34":0,"35":2,"36":2,"37":2,"38":0,"39":2,"40":1},"f":{"0":89,"1":176,"2":0,"3":89,"4":176,"5":0,"6":265,"7":87,"8":87,"9":87,"10":2,"11":2},"b":{"0":[1,1,1],"1":[176,0],"2":[89,89],"3":[89,176],"4":[89,89],"5":[0,87],"6":[0,2],"7":[0,2],"8":[1,1],"9":[0,2],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0]},"inputSourceMap":{"version":3,"file":"/app/modules/engine/src/isAlive.ts","sources":["/app/modules/engine/src/isAlive.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wDAAqH;AACrH,wDAAuD;AAGvD,SAAsB,WAAW,CAC/B,QAAwB,EACxB,SAA4B,EAC5B,KAAmB,EACnB,YAAiC,EACjC,MAAkB;;QAElB,MAAM,MAAM,GAAG,aAAa,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACnD,IAAI,SAAS,CAAC,OAAO,EAAE;YACrB,MAAM,CAAC,KAAK,iCAAM,SAAS,CAAC,QAAQ,EAAE,KAAE,MAAM,KAAI,+BAA+B,CAAC,CAAC;YACnF,OAAO;SACR;QACD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1F,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,2BAA2B,CAAC,CAAC;QACnF,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,CAAO,OAAO,EAAE,EAAE;;YAC7B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;gBAC7D,MAAM,CAAC,KAAK,CACV,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,EAC5G,uCAAuC,CACxC,CAAC;gBACF,OAAO;aACR;YACD,MAAM,WAAW,GAAG,6BAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YACvE,IAAI,CAAC,WAAW,EAAE;gBAChB,MAAM,CAAC,KAAK,CACV,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,EAC5G,uBAAuB,CACxB,CAAC;gBACF,OAAO;aACR;YACD,MAAM,sBAAsB,GAAG,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;YACzG,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAC5C,qBAAM,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,EACrD,sBAAsB,EACtB,QAAQ,CAAC,gBAAgB,CAC1B,CAAC;YACF,IAAI,GAAG,CAAC,OAAO,EAAE;gBACf,MAAM,CAAC,KAAK,CACV;oBACE,MAAM;oBACN,sBAAsB;oBACtB,OAAO,EAAE,OAAO,CAAC,cAAc;oBAC/B,KAAK,EAAE,MAAA,GAAG,CAAC,QAAQ,EAAE,0CAAE,OAAO;oBAC9B,OAAO,EAAE,MAAA,GAAG,CAAC,QAAQ,EAAE,0CAAE,OAAO;iBACjC,EACD,+BAA+B,CAChC,CAAC;aACH;iBAAM;gBACL,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,EAC3F,mCAAmC,CACpC,CAAC;aACH;QACH,CAAC,CAAA,CAAC,CACH,CAAC;IACJ,CAAC;CAAA;AA1DD,kCA0DC","sourcesContent":["import { IChannelSigner, IEngineStore, IMessagingService, IVectorChainService, Result } from \"@connext/vector-types\";\nimport { getParticipant } from \"@connext/vector-utils\";\nimport { BaseLogger } from \"pino\";\n\nexport async function sendIsAlive(\n  mySigner: IChannelSigner,\n  messaging: IMessagingService,\n  store: IEngineStore,\n  chainService: IVectorChainService,\n  logger: BaseLogger,\n): Promise<void> {\n  const method = \"sendIsAlive\";\n  const channels = await store.getChannelStates();\n  const providers = chainService.getChainProviders();\n  if (providers.isError) {\n    logger.error({ ...providers.getError(), method }, \"Error getting chain providers\");\n    return;\n  }\n  const supportedChains = Object.keys(providers.getValue()).map((chain) => parseInt(chain));\n  logger.info({ method, numChannels: channels.length }, \"Sending check-in messages\");\n  await Promise.all(\n    channels.map(async (channel) => {\n      if (!supportedChains.includes(channel.networkContext.chainId)) {\n        logger.debug(\n          { chainId: channel.networkContext.chainId, supportedChains, method, channelAddress: channel.channelAddress },\n          \"Channel chain not supported, skipping\",\n        );\n        return;\n      }\n      const participant = getParticipant(channel, mySigner.publicIdentifier);\n      if (!participant) {\n        logger.error(\n          { participant, alice: channel.aliceIdentifier, bob: channel.bobIdentifier, channel: channel.channelAddress },\n          \"Signer not in channel\",\n        );\n        return;\n      }\n      const counterpartyIdentifier = participant === \"alice\" ? channel.bobIdentifier : channel.aliceIdentifier;\n      const res = await messaging.sendIsAliveMessage(\n        Result.ok({ channelAddress: channel.channelAddress }),\n        counterpartyIdentifier,\n        mySigner.publicIdentifier,\n      );\n      if (res.isError) {\n        logger.error(\n          {\n            method,\n            counterpartyIdentifier,\n            channel: channel.channelAddress,\n            error: res.getError()?.message,\n            context: res.getError()?.context,\n          },\n          \"Error sending checkIn message\",\n        );\n      } else {\n        logger.info(\n          { method, counterpartyIdentifier, channel: channel.channelAddress, result: res.getValue() },\n          \"Successfully sent checkIn message\",\n        );\n      }\n    }),\n  );\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"674e4be39441e2e6bed91c71803ce6dc35c5fa76"}}