@hsuite/native-connect-angular 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/README.md +48 -0
  2. package/USAGE_EXAMPLES.md +476 -0
  3. package/assets/wallets/extension.svg +7 -0
  4. package/assets/wallets/hashpack.svg +6 -0
  5. package/assets/wallets/hsuite.svg +11 -0
  6. package/assets/wallets/kabila.svg +11 -0
  7. package/assets/wallets/walletconnect.svg +13 -0
  8. package/coverage/base.css +224 -0
  9. package/coverage/block-navigation.js +87 -0
  10. package/coverage/coverage-summary.json +50 -0
  11. package/coverage/favicon.png +0 -0
  12. package/coverage/index.html +476 -0
  13. package/coverage/lcov-report/base.css +224 -0
  14. package/coverage/lcov-report/block-navigation.js +87 -0
  15. package/coverage/lcov-report/favicon.png +0 -0
  16. package/coverage/lcov-report/index.html +476 -0
  17. package/coverage/lcov-report/lib/components/account-selector/account-actions/account-actions.component.ts.html +868 -0
  18. package/coverage/lcov-report/lib/components/account-selector/account-actions/index.html +116 -0
  19. package/coverage/lcov-report/lib/components/account-selector/account-filter/account-filter.component.ts.html +1288 -0
  20. package/coverage/lcov-report/lib/components/account-selector/account-filter/index.html +116 -0
  21. package/coverage/lcov-report/lib/components/account-selector/account-formatting.service.ts.html +685 -0
  22. package/coverage/lcov-report/lib/components/account-selector/account-grouping.service.ts.html +766 -0
  23. package/coverage/lcov-report/lib/components/account-selector/account-list/account-list.component.ts.html +1495 -0
  24. package/coverage/lcov-report/lib/components/account-selector/account-list/index.html +116 -0
  25. package/coverage/lcov-report/lib/components/account-selector/account-selector.component.ts.html +1495 -0
  26. package/coverage/lcov-report/lib/components/account-selector/account-selector.service.ts.html +1588 -0
  27. package/coverage/lcov-report/lib/components/account-selector/index.html +161 -0
  28. package/coverage/lcov-report/lib/components/wallet-account-display/index.html +116 -0
  29. package/coverage/lcov-report/lib/components/wallet-account-display/wallet-account-display.component.ts.html +505 -0
  30. package/coverage/lcov-report/lib/components/wallet-connect-button/index.html +116 -0
  31. package/coverage/lcov-report/lib/components/wallet-connect-button/wallet-connect-button.component.ts.html +805 -0
  32. package/coverage/lcov-report/lib/components/wallet-connect-prompt/index.html +116 -0
  33. package/coverage/lcov-report/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.ts.html +409 -0
  34. package/coverage/lcov-report/lib/components/wallet-connected-guard/index.html +116 -0
  35. package/coverage/lcov-report/lib/components/wallet-connected-guard/wallet-connected-guard.component.ts.html +304 -0
  36. package/coverage/lcov-report/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.ts.html +436 -0
  37. package/coverage/lcov-report/lib/components/wallet-connection-modal/connection-method-step/index.html +116 -0
  38. package/coverage/lcov-report/lib/components/wallet-connection-modal/index.html +116 -0
  39. package/coverage/lcov-report/lib/components/wallet-connection-modal/qr-pairing-step/index.html +116 -0
  40. package/coverage/lcov-report/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts.html +2287 -0
  41. package/coverage/lcov-report/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts.html +2275 -0
  42. package/coverage/lcov-report/lib/components/wallet-session-display/index.html +116 -0
  43. package/coverage/lcov-report/lib/components/wallet-session-display/wallet-session-display.component.ts.html +676 -0
  44. package/coverage/lcov-report/lib/components/wallet-transaction-status/index.html +116 -0
  45. package/coverage/lcov-report/lib/components/wallet-transaction-status/wallet-transaction-status.component.ts.html +703 -0
  46. package/coverage/lcov-report/lib/directives/index.html +146 -0
  47. package/coverage/lcov-report/lib/directives/wallet-connected.directive.ts.html +670 -0
  48. package/coverage/lcov-report/lib/directives/wallet-context.directive.ts.html +547 -0
  49. package/coverage/lcov-report/lib/directives/wallet-events.directive.ts.html +781 -0
  50. package/coverage/lcov-report/lib/hsuite-wallet.module.ts.html +715 -0
  51. package/coverage/lcov-report/lib/index.html +116 -0
  52. package/coverage/lcov-report/lib/models/connection-config.model.ts.html +280 -0
  53. package/coverage/lcov-report/lib/models/index.html +131 -0
  54. package/coverage/lcov-report/lib/models/provider-types.ts.html +577 -0
  55. package/coverage/lcov-report/lib/providers/base-wallet-provider.ts.html +1138 -0
  56. package/coverage/lcov-report/lib/providers/hsuite-native/channel-client.service.ts.html +2671 -0
  57. package/coverage/lcov-report/lib/providers/hsuite-native/index.html +116 -0
  58. package/coverage/lcov-report/lib/providers/hsuite-native-provider.ts.html +2347 -0
  59. package/coverage/lcov-report/lib/providers/index.html +146 -0
  60. package/coverage/lcov-report/lib/providers/p2p-native/index.html +131 -0
  61. package/coverage/lcov-report/lib/providers/p2p-native/p2p-native.provider.ts.html +2254 -0
  62. package/coverage/lcov-report/lib/providers/p2p-native/p2p-session-manager.ts.html +2170 -0
  63. package/coverage/lcov-report/lib/providers/wallet-error-handler.ts.html +1132 -0
  64. package/coverage/lcov-report/lib/providers/walletconnect/core/index.html +176 -0
  65. package/coverage/lcov-report/lib/providers/walletconnect/core/session-health.ts.html +673 -0
  66. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-client-manager.ts.html +1177 -0
  67. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-provider.ts.html +2563 -0
  68. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-session-store.ts.html +904 -0
  69. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts.html +982 -0
  70. package/coverage/lcov-report/lib/providers/walletconnect/signers/hedera-signer.ts.html +1915 -0
  71. package/coverage/lcov-report/lib/providers/walletconnect/signers/index.html +146 -0
  72. package/coverage/lcov-report/lib/providers/walletconnect/signers/signer-factory.ts.html +445 -0
  73. package/coverage/lcov-report/lib/providers/walletconnect/signers/xrpl-signer.ts.html +1519 -0
  74. package/coverage/lcov-report/lib/services/index.html +191 -0
  75. package/coverage/lcov-report/lib/services/logger.service.ts.html +463 -0
  76. package/coverage/lcov-report/lib/services/transaction-builders/base-transaction-builder.service.ts.html +1840 -0
  77. package/coverage/lcov-report/lib/services/transaction-builders/hedera-amount-utils.ts.html +337 -0
  78. package/coverage/lcov-report/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +3940 -0
  79. package/coverage/lcov-report/lib/services/transaction-builders/index.html +161 -0
  80. package/coverage/lcov-report/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +2581 -0
  81. package/coverage/lcov-report/lib/services/transaction.service.ts.html +1123 -0
  82. package/coverage/lcov-report/lib/services/unified-wallet.service.ts.html +2641 -0
  83. package/coverage/lcov-report/lib/services/wallet-context.service.ts.html +637 -0
  84. package/coverage/lcov-report/lib/services/wallet-event-bus.service.ts.html +643 -0
  85. package/coverage/lcov-report/lib/services/wallet-providers.service.ts.html +496 -0
  86. package/coverage/lcov-report/lib/transports/chrome-extension-transport.ts.html +823 -0
  87. package/coverage/lcov-report/lib/transports/index.html +116 -0
  88. package/coverage/lcov-report/lib/utils/index.html +116 -0
  89. package/coverage/lcov-report/lib/utils/ledger-icons.util.ts.html +319 -0
  90. package/coverage/lcov-report/prettify.css +1 -0
  91. package/coverage/lcov-report/prettify.js +2 -0
  92. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  93. package/coverage/lcov-report/sorter.js +210 -0
  94. package/coverage/lcov.info +19252 -0
  95. package/coverage/lib/components/account-selector/account-actions/account-actions.component.ts.html +868 -0
  96. package/coverage/lib/components/account-selector/account-actions/index.html +116 -0
  97. package/coverage/lib/components/account-selector/account-filter/account-filter.component.ts.html +1288 -0
  98. package/coverage/lib/components/account-selector/account-filter/index.html +116 -0
  99. package/coverage/lib/components/account-selector/account-formatting.service.ts.html +685 -0
  100. package/coverage/lib/components/account-selector/account-grouping.service.ts.html +766 -0
  101. package/coverage/lib/components/account-selector/account-list/account-list.component.ts.html +1495 -0
  102. package/coverage/lib/components/account-selector/account-list/index.html +116 -0
  103. package/coverage/lib/components/account-selector/account-selector.component.ts.html +1495 -0
  104. package/coverage/lib/components/account-selector/account-selector.service.ts.html +1588 -0
  105. package/coverage/lib/components/account-selector/index.html +161 -0
  106. package/coverage/lib/components/wallet-account-display/index.html +116 -0
  107. package/coverage/lib/components/wallet-account-display/wallet-account-display.component.ts.html +505 -0
  108. package/coverage/lib/components/wallet-connect-button/index.html +116 -0
  109. package/coverage/lib/components/wallet-connect-button/wallet-connect-button.component.ts.html +805 -0
  110. package/coverage/lib/components/wallet-connect-prompt/index.html +116 -0
  111. package/coverage/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.ts.html +409 -0
  112. package/coverage/lib/components/wallet-connected-guard/index.html +116 -0
  113. package/coverage/lib/components/wallet-connected-guard/wallet-connected-guard.component.ts.html +304 -0
  114. package/coverage/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.ts.html +436 -0
  115. package/coverage/lib/components/wallet-connection-modal/connection-method-step/index.html +116 -0
  116. package/coverage/lib/components/wallet-connection-modal/index.html +116 -0
  117. package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/index.html +116 -0
  118. package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts.html +2287 -0
  119. package/coverage/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts.html +2275 -0
  120. package/coverage/lib/components/wallet-session-display/index.html +116 -0
  121. package/coverage/lib/components/wallet-session-display/wallet-session-display.component.ts.html +676 -0
  122. package/coverage/lib/components/wallet-transaction-status/index.html +116 -0
  123. package/coverage/lib/components/wallet-transaction-status/wallet-transaction-status.component.ts.html +703 -0
  124. package/coverage/lib/directives/index.html +146 -0
  125. package/coverage/lib/directives/wallet-connected.directive.ts.html +670 -0
  126. package/coverage/lib/directives/wallet-context.directive.ts.html +547 -0
  127. package/coverage/lib/directives/wallet-events.directive.ts.html +781 -0
  128. package/coverage/lib/hsuite-wallet.module.ts.html +715 -0
  129. package/coverage/lib/index.html +116 -0
  130. package/coverage/lib/models/connection-config.model.ts.html +280 -0
  131. package/coverage/lib/models/index.html +131 -0
  132. package/coverage/lib/models/provider-types.ts.html +577 -0
  133. package/coverage/lib/providers/base-wallet-provider.ts.html +1138 -0
  134. package/coverage/lib/providers/hsuite-native/channel-client.service.ts.html +2671 -0
  135. package/coverage/lib/providers/hsuite-native/index.html +116 -0
  136. package/coverage/lib/providers/hsuite-native-provider.ts.html +2347 -0
  137. package/coverage/lib/providers/index.html +146 -0
  138. package/coverage/lib/providers/p2p-native/index.html +131 -0
  139. package/coverage/lib/providers/p2p-native/p2p-native.provider.ts.html +2254 -0
  140. package/coverage/lib/providers/p2p-native/p2p-session-manager.ts.html +2170 -0
  141. package/coverage/lib/providers/wallet-error-handler.ts.html +1132 -0
  142. package/coverage/lib/providers/walletconnect/core/index.html +176 -0
  143. package/coverage/lib/providers/walletconnect/core/session-health.ts.html +673 -0
  144. package/coverage/lib/providers/walletconnect/core/walletconnect-client-manager.ts.html +1177 -0
  145. package/coverage/lib/providers/walletconnect/core/walletconnect-provider.ts.html +2563 -0
  146. package/coverage/lib/providers/walletconnect/core/walletconnect-session-store.ts.html +904 -0
  147. package/coverage/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts.html +982 -0
  148. package/coverage/lib/providers/walletconnect/signers/hedera-signer.ts.html +1915 -0
  149. package/coverage/lib/providers/walletconnect/signers/index.html +146 -0
  150. package/coverage/lib/providers/walletconnect/signers/signer-factory.ts.html +445 -0
  151. package/coverage/lib/providers/walletconnect/signers/xrpl-signer.ts.html +1519 -0
  152. package/coverage/lib/services/index.html +191 -0
  153. package/coverage/lib/services/logger.service.ts.html +463 -0
  154. package/coverage/lib/services/transaction-builders/base-transaction-builder.service.ts.html +1840 -0
  155. package/coverage/lib/services/transaction-builders/hedera-amount-utils.ts.html +337 -0
  156. package/coverage/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +3940 -0
  157. package/coverage/lib/services/transaction-builders/index.html +161 -0
  158. package/coverage/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +2581 -0
  159. package/coverage/lib/services/transaction.service.ts.html +1123 -0
  160. package/coverage/lib/services/unified-wallet.service.ts.html +2641 -0
  161. package/coverage/lib/services/wallet-context.service.ts.html +637 -0
  162. package/coverage/lib/services/wallet-event-bus.service.ts.html +643 -0
  163. package/coverage/lib/services/wallet-providers.service.ts.html +496 -0
  164. package/coverage/lib/transports/chrome-extension-transport.ts.html +823 -0
  165. package/coverage/lib/transports/index.html +116 -0
  166. package/coverage/lib/utils/index.html +116 -0
  167. package/coverage/lib/utils/ledger-icons.util.ts.html +319 -0
  168. package/coverage/prettify.css +1 -0
  169. package/coverage/prettify.js +2 -0
  170. package/coverage/sort-arrow-sprite.png +0 -0
  171. package/coverage/sorter.js +210 -0
  172. package/dist/README.md +48 -0
  173. package/dist/fesm2022/hsuite-native-connect-angular.mjs +14592 -0
  174. package/dist/fesm2022/hsuite-native-connect-angular.mjs.map +1 -0
  175. package/dist/index.d.ts +6949 -0
  176. package/examples/minimal-connect.ts +178 -0
  177. package/examples/multi-protocol.ts +495 -0
  178. package/examples/transaction-signing.ts +361 -0
  179. package/jest.config.json +45 -0
  180. package/karma.conf.js +42 -0
  181. package/ng-package.json +20 -0
  182. package/package.json +60 -0
  183. package/src/index.ts +203 -0
  184. package/src/lib/components/account-selector/account-actions/account-actions.component.ts +261 -0
  185. package/src/lib/components/account-selector/account-filter/account-filter.component.ts +401 -0
  186. package/src/lib/components/account-selector/account-formatting.service.ts +200 -0
  187. package/src/lib/components/account-selector/account-grouping.service.ts +227 -0
  188. package/src/lib/components/account-selector/account-list/account-list.component.ts +470 -0
  189. package/src/lib/components/account-selector/account-selector.component.html +135 -0
  190. package/src/lib/components/account-selector/account-selector.component.scss +2039 -0
  191. package/src/lib/components/account-selector/account-selector.component.ts +470 -0
  192. package/src/lib/components/account-selector/account-selector.service.ts +501 -0
  193. package/src/lib/components/wallet-account-display/wallet-account-display.component.html +34 -0
  194. package/src/lib/components/wallet-account-display/wallet-account-display.component.scss +99 -0
  195. package/src/lib/components/wallet-account-display/wallet-account-display.component.ts +140 -0
  196. package/src/lib/components/wallet-connect-button/wallet-connect-button.component.html +14 -0
  197. package/src/lib/components/wallet-connect-button/wallet-connect-button.component.scss +272 -0
  198. package/src/lib/components/wallet-connect-button/wallet-connect-button.component.ts +240 -0
  199. package/src/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.html +24 -0
  200. package/src/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.scss +50 -0
  201. package/src/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.ts +108 -0
  202. package/src/lib/components/wallet-connected-guard/wallet-connected-guard.component.html +24 -0
  203. package/src/lib/components/wallet-connected-guard/wallet-connected-guard.component.ts +73 -0
  204. package/src/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.html +56 -0
  205. package/src/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.scss +218 -0
  206. package/src/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.ts +117 -0
  207. package/src/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.html +94 -0
  208. package/src/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.scss +272 -0
  209. package/src/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts +734 -0
  210. package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.html +197 -0
  211. package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.scss +678 -0
  212. package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts +730 -0
  213. package/src/lib/components/wallet-session-display/wallet-session-display.component.html +110 -0
  214. package/src/lib/components/wallet-session-display/wallet-session-display.component.scss +179 -0
  215. package/src/lib/components/wallet-session-display/wallet-session-display.component.ts +197 -0
  216. package/src/lib/components/wallet-transaction-status/wallet-transaction-status.component.html +65 -0
  217. package/src/lib/components/wallet-transaction-status/wallet-transaction-status.component.scss +254 -0
  218. package/src/lib/components/wallet-transaction-status/wallet-transaction-status.component.ts +206 -0
  219. package/src/lib/directives/wallet-connected.directive.ts +195 -0
  220. package/src/lib/directives/wallet-context.directive.ts +154 -0
  221. package/src/lib/directives/wallet-events.directive.ts +232 -0
  222. package/src/lib/hsuite-wallet.module.ts +210 -0
  223. package/src/lib/models/connection-config.model.ts +65 -0
  224. package/src/lib/models/provider-types.ts +164 -0
  225. package/src/lib/models/unified-account.model.ts +76 -0
  226. package/src/lib/models/wallet-context.model.ts +121 -0
  227. package/src/lib/models/wallet-events.model.ts +158 -0
  228. package/src/lib/providers/base-wallet-provider.ts +351 -0
  229. package/src/lib/providers/hsuite-native/channel-client.service.spec.ts +73 -0
  230. package/src/lib/providers/hsuite-native/channel-client.service.ts +862 -0
  231. package/src/lib/providers/hsuite-native/index.ts +8 -0
  232. package/src/lib/providers/hsuite-native-provider.ts +754 -0
  233. package/src/lib/providers/mobile-native/mobile-native.provider.spec.ts +19 -0
  234. package/src/lib/providers/p2p-native/index.ts +30 -0
  235. package/src/lib/providers/p2p-native/p2p-native.provider.spec.ts +523 -0
  236. package/src/lib/providers/p2p-native/p2p-native.provider.ts +723 -0
  237. package/src/lib/providers/p2p-native/p2p-session-manager.ts +695 -0
  238. package/src/lib/providers/wallet-error-handler.ts +349 -0
  239. package/src/lib/providers/walletconnect/core/base-signer.interface.ts +122 -0
  240. package/src/lib/providers/walletconnect/core/session-health.ts +196 -0
  241. package/src/lib/providers/walletconnect/core/walletconnect-client-manager.ts +364 -0
  242. package/src/lib/providers/walletconnect/core/walletconnect-provider.integration.spec.ts +348 -0
  243. package/src/lib/providers/walletconnect/core/walletconnect-provider.ts +826 -0
  244. package/src/lib/providers/walletconnect/core/walletconnect-session-store.ts +273 -0
  245. package/src/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts +299 -0
  246. package/src/lib/providers/walletconnect/core/walletconnect-types.ts +48 -0
  247. package/src/lib/providers/walletconnect/index.ts +33 -0
  248. package/src/lib/providers/walletconnect/signers/hedera-signer.spec.ts +367 -0
  249. package/src/lib/providers/walletconnect/signers/hedera-signer.ts +610 -0
  250. package/src/lib/providers/walletconnect/signers/signer-factory.spec.ts +62 -0
  251. package/src/lib/providers/walletconnect/signers/signer-factory.ts +120 -0
  252. package/src/lib/providers/walletconnect/signers/xrpl-signer.spec.ts +296 -0
  253. package/src/lib/providers/walletconnect/signers/xrpl-signer.ts +478 -0
  254. package/src/lib/services/logger.service.ts +126 -0
  255. package/src/lib/services/transaction-builders/base-transaction-builder.service.ts +585 -0
  256. package/src/lib/services/transaction-builders/hedera-amount-utils.ts +84 -0
  257. package/src/lib/services/transaction-builders/hedera-transaction-builder.service.spec.ts +741 -0
  258. package/src/lib/services/transaction-builders/hedera-transaction-builder.service.ts +1285 -0
  259. package/src/lib/services/transaction-builders/index.ts +54 -0
  260. package/src/lib/services/transaction-builders/xrpl-transaction-builder.service.spec.ts +937 -0
  261. package/src/lib/services/transaction-builders/xrpl-transaction-builder.service.ts +832 -0
  262. package/src/lib/services/transaction.service.ts +346 -0
  263. package/src/lib/services/unified-wallet.service.spec.ts +1382 -0
  264. package/src/lib/services/unified-wallet.service.ts +852 -0
  265. package/src/lib/services/wallet-context.service.ts +184 -0
  266. package/src/lib/services/wallet-event-bus.service.ts +186 -0
  267. package/src/lib/services/wallet-providers.service.ts +137 -0
  268. package/src/lib/transports/chrome-extension-transport.ts +246 -0
  269. package/src/lib/utils/index.ts +14 -0
  270. package/src/lib/utils/ledger-icons.util.ts +78 -0
  271. package/test/test-setup.ts +21 -0
  272. package/test-setup.ts +63 -0
  273. package/tsconfig.build.json +11 -0
  274. package/tsconfig.json +29 -0
  275. package/tsconfig.spec.json +15 -0
  276. package/vitest.config.ts +48 -0
@@ -0,0 +1,2581 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for lib/services/transaction-builders/xrpl-transaction-builder.service.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">lib/services/transaction-builders</a> xrpl-transaction-builder.service.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>832/832</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">81.94% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>59/72</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>25/25</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>832/832</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a>
475
+ <a name='L410'></a><a href='#L410'>410</a>
476
+ <a name='L411'></a><a href='#L411'>411</a>
477
+ <a name='L412'></a><a href='#L412'>412</a>
478
+ <a name='L413'></a><a href='#L413'>413</a>
479
+ <a name='L414'></a><a href='#L414'>414</a>
480
+ <a name='L415'></a><a href='#L415'>415</a>
481
+ <a name='L416'></a><a href='#L416'>416</a>
482
+ <a name='L417'></a><a href='#L417'>417</a>
483
+ <a name='L418'></a><a href='#L418'>418</a>
484
+ <a name='L419'></a><a href='#L419'>419</a>
485
+ <a name='L420'></a><a href='#L420'>420</a>
486
+ <a name='L421'></a><a href='#L421'>421</a>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a>
489
+ <a name='L424'></a><a href='#L424'>424</a>
490
+ <a name='L425'></a><a href='#L425'>425</a>
491
+ <a name='L426'></a><a href='#L426'>426</a>
492
+ <a name='L427'></a><a href='#L427'>427</a>
493
+ <a name='L428'></a><a href='#L428'>428</a>
494
+ <a name='L429'></a><a href='#L429'>429</a>
495
+ <a name='L430'></a><a href='#L430'>430</a>
496
+ <a name='L431'></a><a href='#L431'>431</a>
497
+ <a name='L432'></a><a href='#L432'>432</a>
498
+ <a name='L433'></a><a href='#L433'>433</a>
499
+ <a name='L434'></a><a href='#L434'>434</a>
500
+ <a name='L435'></a><a href='#L435'>435</a>
501
+ <a name='L436'></a><a href='#L436'>436</a>
502
+ <a name='L437'></a><a href='#L437'>437</a>
503
+ <a name='L438'></a><a href='#L438'>438</a>
504
+ <a name='L439'></a><a href='#L439'>439</a>
505
+ <a name='L440'></a><a href='#L440'>440</a>
506
+ <a name='L441'></a><a href='#L441'>441</a>
507
+ <a name='L442'></a><a href='#L442'>442</a>
508
+ <a name='L443'></a><a href='#L443'>443</a>
509
+ <a name='L444'></a><a href='#L444'>444</a>
510
+ <a name='L445'></a><a href='#L445'>445</a>
511
+ <a name='L446'></a><a href='#L446'>446</a>
512
+ <a name='L447'></a><a href='#L447'>447</a>
513
+ <a name='L448'></a><a href='#L448'>448</a>
514
+ <a name='L449'></a><a href='#L449'>449</a>
515
+ <a name='L450'></a><a href='#L450'>450</a>
516
+ <a name='L451'></a><a href='#L451'>451</a>
517
+ <a name='L452'></a><a href='#L452'>452</a>
518
+ <a name='L453'></a><a href='#L453'>453</a>
519
+ <a name='L454'></a><a href='#L454'>454</a>
520
+ <a name='L455'></a><a href='#L455'>455</a>
521
+ <a name='L456'></a><a href='#L456'>456</a>
522
+ <a name='L457'></a><a href='#L457'>457</a>
523
+ <a name='L458'></a><a href='#L458'>458</a>
524
+ <a name='L459'></a><a href='#L459'>459</a>
525
+ <a name='L460'></a><a href='#L460'>460</a>
526
+ <a name='L461'></a><a href='#L461'>461</a>
527
+ <a name='L462'></a><a href='#L462'>462</a>
528
+ <a name='L463'></a><a href='#L463'>463</a>
529
+ <a name='L464'></a><a href='#L464'>464</a>
530
+ <a name='L465'></a><a href='#L465'>465</a>
531
+ <a name='L466'></a><a href='#L466'>466</a>
532
+ <a name='L467'></a><a href='#L467'>467</a>
533
+ <a name='L468'></a><a href='#L468'>468</a>
534
+ <a name='L469'></a><a href='#L469'>469</a>
535
+ <a name='L470'></a><a href='#L470'>470</a>
536
+ <a name='L471'></a><a href='#L471'>471</a>
537
+ <a name='L472'></a><a href='#L472'>472</a>
538
+ <a name='L473'></a><a href='#L473'>473</a>
539
+ <a name='L474'></a><a href='#L474'>474</a>
540
+ <a name='L475'></a><a href='#L475'>475</a>
541
+ <a name='L476'></a><a href='#L476'>476</a>
542
+ <a name='L477'></a><a href='#L477'>477</a>
543
+ <a name='L478'></a><a href='#L478'>478</a>
544
+ <a name='L479'></a><a href='#L479'>479</a>
545
+ <a name='L480'></a><a href='#L480'>480</a>
546
+ <a name='L481'></a><a href='#L481'>481</a>
547
+ <a name='L482'></a><a href='#L482'>482</a>
548
+ <a name='L483'></a><a href='#L483'>483</a>
549
+ <a name='L484'></a><a href='#L484'>484</a>
550
+ <a name='L485'></a><a href='#L485'>485</a>
551
+ <a name='L486'></a><a href='#L486'>486</a>
552
+ <a name='L487'></a><a href='#L487'>487</a>
553
+ <a name='L488'></a><a href='#L488'>488</a>
554
+ <a name='L489'></a><a href='#L489'>489</a>
555
+ <a name='L490'></a><a href='#L490'>490</a>
556
+ <a name='L491'></a><a href='#L491'>491</a>
557
+ <a name='L492'></a><a href='#L492'>492</a>
558
+ <a name='L493'></a><a href='#L493'>493</a>
559
+ <a name='L494'></a><a href='#L494'>494</a>
560
+ <a name='L495'></a><a href='#L495'>495</a>
561
+ <a name='L496'></a><a href='#L496'>496</a>
562
+ <a name='L497'></a><a href='#L497'>497</a>
563
+ <a name='L498'></a><a href='#L498'>498</a>
564
+ <a name='L499'></a><a href='#L499'>499</a>
565
+ <a name='L500'></a><a href='#L500'>500</a>
566
+ <a name='L501'></a><a href='#L501'>501</a>
567
+ <a name='L502'></a><a href='#L502'>502</a>
568
+ <a name='L503'></a><a href='#L503'>503</a>
569
+ <a name='L504'></a><a href='#L504'>504</a>
570
+ <a name='L505'></a><a href='#L505'>505</a>
571
+ <a name='L506'></a><a href='#L506'>506</a>
572
+ <a name='L507'></a><a href='#L507'>507</a>
573
+ <a name='L508'></a><a href='#L508'>508</a>
574
+ <a name='L509'></a><a href='#L509'>509</a>
575
+ <a name='L510'></a><a href='#L510'>510</a>
576
+ <a name='L511'></a><a href='#L511'>511</a>
577
+ <a name='L512'></a><a href='#L512'>512</a>
578
+ <a name='L513'></a><a href='#L513'>513</a>
579
+ <a name='L514'></a><a href='#L514'>514</a>
580
+ <a name='L515'></a><a href='#L515'>515</a>
581
+ <a name='L516'></a><a href='#L516'>516</a>
582
+ <a name='L517'></a><a href='#L517'>517</a>
583
+ <a name='L518'></a><a href='#L518'>518</a>
584
+ <a name='L519'></a><a href='#L519'>519</a>
585
+ <a name='L520'></a><a href='#L520'>520</a>
586
+ <a name='L521'></a><a href='#L521'>521</a>
587
+ <a name='L522'></a><a href='#L522'>522</a>
588
+ <a name='L523'></a><a href='#L523'>523</a>
589
+ <a name='L524'></a><a href='#L524'>524</a>
590
+ <a name='L525'></a><a href='#L525'>525</a>
591
+ <a name='L526'></a><a href='#L526'>526</a>
592
+ <a name='L527'></a><a href='#L527'>527</a>
593
+ <a name='L528'></a><a href='#L528'>528</a>
594
+ <a name='L529'></a><a href='#L529'>529</a>
595
+ <a name='L530'></a><a href='#L530'>530</a>
596
+ <a name='L531'></a><a href='#L531'>531</a>
597
+ <a name='L532'></a><a href='#L532'>532</a>
598
+ <a name='L533'></a><a href='#L533'>533</a>
599
+ <a name='L534'></a><a href='#L534'>534</a>
600
+ <a name='L535'></a><a href='#L535'>535</a>
601
+ <a name='L536'></a><a href='#L536'>536</a>
602
+ <a name='L537'></a><a href='#L537'>537</a>
603
+ <a name='L538'></a><a href='#L538'>538</a>
604
+ <a name='L539'></a><a href='#L539'>539</a>
605
+ <a name='L540'></a><a href='#L540'>540</a>
606
+ <a name='L541'></a><a href='#L541'>541</a>
607
+ <a name='L542'></a><a href='#L542'>542</a>
608
+ <a name='L543'></a><a href='#L543'>543</a>
609
+ <a name='L544'></a><a href='#L544'>544</a>
610
+ <a name='L545'></a><a href='#L545'>545</a>
611
+ <a name='L546'></a><a href='#L546'>546</a>
612
+ <a name='L547'></a><a href='#L547'>547</a>
613
+ <a name='L548'></a><a href='#L548'>548</a>
614
+ <a name='L549'></a><a href='#L549'>549</a>
615
+ <a name='L550'></a><a href='#L550'>550</a>
616
+ <a name='L551'></a><a href='#L551'>551</a>
617
+ <a name='L552'></a><a href='#L552'>552</a>
618
+ <a name='L553'></a><a href='#L553'>553</a>
619
+ <a name='L554'></a><a href='#L554'>554</a>
620
+ <a name='L555'></a><a href='#L555'>555</a>
621
+ <a name='L556'></a><a href='#L556'>556</a>
622
+ <a name='L557'></a><a href='#L557'>557</a>
623
+ <a name='L558'></a><a href='#L558'>558</a>
624
+ <a name='L559'></a><a href='#L559'>559</a>
625
+ <a name='L560'></a><a href='#L560'>560</a>
626
+ <a name='L561'></a><a href='#L561'>561</a>
627
+ <a name='L562'></a><a href='#L562'>562</a>
628
+ <a name='L563'></a><a href='#L563'>563</a>
629
+ <a name='L564'></a><a href='#L564'>564</a>
630
+ <a name='L565'></a><a href='#L565'>565</a>
631
+ <a name='L566'></a><a href='#L566'>566</a>
632
+ <a name='L567'></a><a href='#L567'>567</a>
633
+ <a name='L568'></a><a href='#L568'>568</a>
634
+ <a name='L569'></a><a href='#L569'>569</a>
635
+ <a name='L570'></a><a href='#L570'>570</a>
636
+ <a name='L571'></a><a href='#L571'>571</a>
637
+ <a name='L572'></a><a href='#L572'>572</a>
638
+ <a name='L573'></a><a href='#L573'>573</a>
639
+ <a name='L574'></a><a href='#L574'>574</a>
640
+ <a name='L575'></a><a href='#L575'>575</a>
641
+ <a name='L576'></a><a href='#L576'>576</a>
642
+ <a name='L577'></a><a href='#L577'>577</a>
643
+ <a name='L578'></a><a href='#L578'>578</a>
644
+ <a name='L579'></a><a href='#L579'>579</a>
645
+ <a name='L580'></a><a href='#L580'>580</a>
646
+ <a name='L581'></a><a href='#L581'>581</a>
647
+ <a name='L582'></a><a href='#L582'>582</a>
648
+ <a name='L583'></a><a href='#L583'>583</a>
649
+ <a name='L584'></a><a href='#L584'>584</a>
650
+ <a name='L585'></a><a href='#L585'>585</a>
651
+ <a name='L586'></a><a href='#L586'>586</a>
652
+ <a name='L587'></a><a href='#L587'>587</a>
653
+ <a name='L588'></a><a href='#L588'>588</a>
654
+ <a name='L589'></a><a href='#L589'>589</a>
655
+ <a name='L590'></a><a href='#L590'>590</a>
656
+ <a name='L591'></a><a href='#L591'>591</a>
657
+ <a name='L592'></a><a href='#L592'>592</a>
658
+ <a name='L593'></a><a href='#L593'>593</a>
659
+ <a name='L594'></a><a href='#L594'>594</a>
660
+ <a name='L595'></a><a href='#L595'>595</a>
661
+ <a name='L596'></a><a href='#L596'>596</a>
662
+ <a name='L597'></a><a href='#L597'>597</a>
663
+ <a name='L598'></a><a href='#L598'>598</a>
664
+ <a name='L599'></a><a href='#L599'>599</a>
665
+ <a name='L600'></a><a href='#L600'>600</a>
666
+ <a name='L601'></a><a href='#L601'>601</a>
667
+ <a name='L602'></a><a href='#L602'>602</a>
668
+ <a name='L603'></a><a href='#L603'>603</a>
669
+ <a name='L604'></a><a href='#L604'>604</a>
670
+ <a name='L605'></a><a href='#L605'>605</a>
671
+ <a name='L606'></a><a href='#L606'>606</a>
672
+ <a name='L607'></a><a href='#L607'>607</a>
673
+ <a name='L608'></a><a href='#L608'>608</a>
674
+ <a name='L609'></a><a href='#L609'>609</a>
675
+ <a name='L610'></a><a href='#L610'>610</a>
676
+ <a name='L611'></a><a href='#L611'>611</a>
677
+ <a name='L612'></a><a href='#L612'>612</a>
678
+ <a name='L613'></a><a href='#L613'>613</a>
679
+ <a name='L614'></a><a href='#L614'>614</a>
680
+ <a name='L615'></a><a href='#L615'>615</a>
681
+ <a name='L616'></a><a href='#L616'>616</a>
682
+ <a name='L617'></a><a href='#L617'>617</a>
683
+ <a name='L618'></a><a href='#L618'>618</a>
684
+ <a name='L619'></a><a href='#L619'>619</a>
685
+ <a name='L620'></a><a href='#L620'>620</a>
686
+ <a name='L621'></a><a href='#L621'>621</a>
687
+ <a name='L622'></a><a href='#L622'>622</a>
688
+ <a name='L623'></a><a href='#L623'>623</a>
689
+ <a name='L624'></a><a href='#L624'>624</a>
690
+ <a name='L625'></a><a href='#L625'>625</a>
691
+ <a name='L626'></a><a href='#L626'>626</a>
692
+ <a name='L627'></a><a href='#L627'>627</a>
693
+ <a name='L628'></a><a href='#L628'>628</a>
694
+ <a name='L629'></a><a href='#L629'>629</a>
695
+ <a name='L630'></a><a href='#L630'>630</a>
696
+ <a name='L631'></a><a href='#L631'>631</a>
697
+ <a name='L632'></a><a href='#L632'>632</a>
698
+ <a name='L633'></a><a href='#L633'>633</a>
699
+ <a name='L634'></a><a href='#L634'>634</a>
700
+ <a name='L635'></a><a href='#L635'>635</a>
701
+ <a name='L636'></a><a href='#L636'>636</a>
702
+ <a name='L637'></a><a href='#L637'>637</a>
703
+ <a name='L638'></a><a href='#L638'>638</a>
704
+ <a name='L639'></a><a href='#L639'>639</a>
705
+ <a name='L640'></a><a href='#L640'>640</a>
706
+ <a name='L641'></a><a href='#L641'>641</a>
707
+ <a name='L642'></a><a href='#L642'>642</a>
708
+ <a name='L643'></a><a href='#L643'>643</a>
709
+ <a name='L644'></a><a href='#L644'>644</a>
710
+ <a name='L645'></a><a href='#L645'>645</a>
711
+ <a name='L646'></a><a href='#L646'>646</a>
712
+ <a name='L647'></a><a href='#L647'>647</a>
713
+ <a name='L648'></a><a href='#L648'>648</a>
714
+ <a name='L649'></a><a href='#L649'>649</a>
715
+ <a name='L650'></a><a href='#L650'>650</a>
716
+ <a name='L651'></a><a href='#L651'>651</a>
717
+ <a name='L652'></a><a href='#L652'>652</a>
718
+ <a name='L653'></a><a href='#L653'>653</a>
719
+ <a name='L654'></a><a href='#L654'>654</a>
720
+ <a name='L655'></a><a href='#L655'>655</a>
721
+ <a name='L656'></a><a href='#L656'>656</a>
722
+ <a name='L657'></a><a href='#L657'>657</a>
723
+ <a name='L658'></a><a href='#L658'>658</a>
724
+ <a name='L659'></a><a href='#L659'>659</a>
725
+ <a name='L660'></a><a href='#L660'>660</a>
726
+ <a name='L661'></a><a href='#L661'>661</a>
727
+ <a name='L662'></a><a href='#L662'>662</a>
728
+ <a name='L663'></a><a href='#L663'>663</a>
729
+ <a name='L664'></a><a href='#L664'>664</a>
730
+ <a name='L665'></a><a href='#L665'>665</a>
731
+ <a name='L666'></a><a href='#L666'>666</a>
732
+ <a name='L667'></a><a href='#L667'>667</a>
733
+ <a name='L668'></a><a href='#L668'>668</a>
734
+ <a name='L669'></a><a href='#L669'>669</a>
735
+ <a name='L670'></a><a href='#L670'>670</a>
736
+ <a name='L671'></a><a href='#L671'>671</a>
737
+ <a name='L672'></a><a href='#L672'>672</a>
738
+ <a name='L673'></a><a href='#L673'>673</a>
739
+ <a name='L674'></a><a href='#L674'>674</a>
740
+ <a name='L675'></a><a href='#L675'>675</a>
741
+ <a name='L676'></a><a href='#L676'>676</a>
742
+ <a name='L677'></a><a href='#L677'>677</a>
743
+ <a name='L678'></a><a href='#L678'>678</a>
744
+ <a name='L679'></a><a href='#L679'>679</a>
745
+ <a name='L680'></a><a href='#L680'>680</a>
746
+ <a name='L681'></a><a href='#L681'>681</a>
747
+ <a name='L682'></a><a href='#L682'>682</a>
748
+ <a name='L683'></a><a href='#L683'>683</a>
749
+ <a name='L684'></a><a href='#L684'>684</a>
750
+ <a name='L685'></a><a href='#L685'>685</a>
751
+ <a name='L686'></a><a href='#L686'>686</a>
752
+ <a name='L687'></a><a href='#L687'>687</a>
753
+ <a name='L688'></a><a href='#L688'>688</a>
754
+ <a name='L689'></a><a href='#L689'>689</a>
755
+ <a name='L690'></a><a href='#L690'>690</a>
756
+ <a name='L691'></a><a href='#L691'>691</a>
757
+ <a name='L692'></a><a href='#L692'>692</a>
758
+ <a name='L693'></a><a href='#L693'>693</a>
759
+ <a name='L694'></a><a href='#L694'>694</a>
760
+ <a name='L695'></a><a href='#L695'>695</a>
761
+ <a name='L696'></a><a href='#L696'>696</a>
762
+ <a name='L697'></a><a href='#L697'>697</a>
763
+ <a name='L698'></a><a href='#L698'>698</a>
764
+ <a name='L699'></a><a href='#L699'>699</a>
765
+ <a name='L700'></a><a href='#L700'>700</a>
766
+ <a name='L701'></a><a href='#L701'>701</a>
767
+ <a name='L702'></a><a href='#L702'>702</a>
768
+ <a name='L703'></a><a href='#L703'>703</a>
769
+ <a name='L704'></a><a href='#L704'>704</a>
770
+ <a name='L705'></a><a href='#L705'>705</a>
771
+ <a name='L706'></a><a href='#L706'>706</a>
772
+ <a name='L707'></a><a href='#L707'>707</a>
773
+ <a name='L708'></a><a href='#L708'>708</a>
774
+ <a name='L709'></a><a href='#L709'>709</a>
775
+ <a name='L710'></a><a href='#L710'>710</a>
776
+ <a name='L711'></a><a href='#L711'>711</a>
777
+ <a name='L712'></a><a href='#L712'>712</a>
778
+ <a name='L713'></a><a href='#L713'>713</a>
779
+ <a name='L714'></a><a href='#L714'>714</a>
780
+ <a name='L715'></a><a href='#L715'>715</a>
781
+ <a name='L716'></a><a href='#L716'>716</a>
782
+ <a name='L717'></a><a href='#L717'>717</a>
783
+ <a name='L718'></a><a href='#L718'>718</a>
784
+ <a name='L719'></a><a href='#L719'>719</a>
785
+ <a name='L720'></a><a href='#L720'>720</a>
786
+ <a name='L721'></a><a href='#L721'>721</a>
787
+ <a name='L722'></a><a href='#L722'>722</a>
788
+ <a name='L723'></a><a href='#L723'>723</a>
789
+ <a name='L724'></a><a href='#L724'>724</a>
790
+ <a name='L725'></a><a href='#L725'>725</a>
791
+ <a name='L726'></a><a href='#L726'>726</a>
792
+ <a name='L727'></a><a href='#L727'>727</a>
793
+ <a name='L728'></a><a href='#L728'>728</a>
794
+ <a name='L729'></a><a href='#L729'>729</a>
795
+ <a name='L730'></a><a href='#L730'>730</a>
796
+ <a name='L731'></a><a href='#L731'>731</a>
797
+ <a name='L732'></a><a href='#L732'>732</a>
798
+ <a name='L733'></a><a href='#L733'>733</a>
799
+ <a name='L734'></a><a href='#L734'>734</a>
800
+ <a name='L735'></a><a href='#L735'>735</a>
801
+ <a name='L736'></a><a href='#L736'>736</a>
802
+ <a name='L737'></a><a href='#L737'>737</a>
803
+ <a name='L738'></a><a href='#L738'>738</a>
804
+ <a name='L739'></a><a href='#L739'>739</a>
805
+ <a name='L740'></a><a href='#L740'>740</a>
806
+ <a name='L741'></a><a href='#L741'>741</a>
807
+ <a name='L742'></a><a href='#L742'>742</a>
808
+ <a name='L743'></a><a href='#L743'>743</a>
809
+ <a name='L744'></a><a href='#L744'>744</a>
810
+ <a name='L745'></a><a href='#L745'>745</a>
811
+ <a name='L746'></a><a href='#L746'>746</a>
812
+ <a name='L747'></a><a href='#L747'>747</a>
813
+ <a name='L748'></a><a href='#L748'>748</a>
814
+ <a name='L749'></a><a href='#L749'>749</a>
815
+ <a name='L750'></a><a href='#L750'>750</a>
816
+ <a name='L751'></a><a href='#L751'>751</a>
817
+ <a name='L752'></a><a href='#L752'>752</a>
818
+ <a name='L753'></a><a href='#L753'>753</a>
819
+ <a name='L754'></a><a href='#L754'>754</a>
820
+ <a name='L755'></a><a href='#L755'>755</a>
821
+ <a name='L756'></a><a href='#L756'>756</a>
822
+ <a name='L757'></a><a href='#L757'>757</a>
823
+ <a name='L758'></a><a href='#L758'>758</a>
824
+ <a name='L759'></a><a href='#L759'>759</a>
825
+ <a name='L760'></a><a href='#L760'>760</a>
826
+ <a name='L761'></a><a href='#L761'>761</a>
827
+ <a name='L762'></a><a href='#L762'>762</a>
828
+ <a name='L763'></a><a href='#L763'>763</a>
829
+ <a name='L764'></a><a href='#L764'>764</a>
830
+ <a name='L765'></a><a href='#L765'>765</a>
831
+ <a name='L766'></a><a href='#L766'>766</a>
832
+ <a name='L767'></a><a href='#L767'>767</a>
833
+ <a name='L768'></a><a href='#L768'>768</a>
834
+ <a name='L769'></a><a href='#L769'>769</a>
835
+ <a name='L770'></a><a href='#L770'>770</a>
836
+ <a name='L771'></a><a href='#L771'>771</a>
837
+ <a name='L772'></a><a href='#L772'>772</a>
838
+ <a name='L773'></a><a href='#L773'>773</a>
839
+ <a name='L774'></a><a href='#L774'>774</a>
840
+ <a name='L775'></a><a href='#L775'>775</a>
841
+ <a name='L776'></a><a href='#L776'>776</a>
842
+ <a name='L777'></a><a href='#L777'>777</a>
843
+ <a name='L778'></a><a href='#L778'>778</a>
844
+ <a name='L779'></a><a href='#L779'>779</a>
845
+ <a name='L780'></a><a href='#L780'>780</a>
846
+ <a name='L781'></a><a href='#L781'>781</a>
847
+ <a name='L782'></a><a href='#L782'>782</a>
848
+ <a name='L783'></a><a href='#L783'>783</a>
849
+ <a name='L784'></a><a href='#L784'>784</a>
850
+ <a name='L785'></a><a href='#L785'>785</a>
851
+ <a name='L786'></a><a href='#L786'>786</a>
852
+ <a name='L787'></a><a href='#L787'>787</a>
853
+ <a name='L788'></a><a href='#L788'>788</a>
854
+ <a name='L789'></a><a href='#L789'>789</a>
855
+ <a name='L790'></a><a href='#L790'>790</a>
856
+ <a name='L791'></a><a href='#L791'>791</a>
857
+ <a name='L792'></a><a href='#L792'>792</a>
858
+ <a name='L793'></a><a href='#L793'>793</a>
859
+ <a name='L794'></a><a href='#L794'>794</a>
860
+ <a name='L795'></a><a href='#L795'>795</a>
861
+ <a name='L796'></a><a href='#L796'>796</a>
862
+ <a name='L797'></a><a href='#L797'>797</a>
863
+ <a name='L798'></a><a href='#L798'>798</a>
864
+ <a name='L799'></a><a href='#L799'>799</a>
865
+ <a name='L800'></a><a href='#L800'>800</a>
866
+ <a name='L801'></a><a href='#L801'>801</a>
867
+ <a name='L802'></a><a href='#L802'>802</a>
868
+ <a name='L803'></a><a href='#L803'>803</a>
869
+ <a name='L804'></a><a href='#L804'>804</a>
870
+ <a name='L805'></a><a href='#L805'>805</a>
871
+ <a name='L806'></a><a href='#L806'>806</a>
872
+ <a name='L807'></a><a href='#L807'>807</a>
873
+ <a name='L808'></a><a href='#L808'>808</a>
874
+ <a name='L809'></a><a href='#L809'>809</a>
875
+ <a name='L810'></a><a href='#L810'>810</a>
876
+ <a name='L811'></a><a href='#L811'>811</a>
877
+ <a name='L812'></a><a href='#L812'>812</a>
878
+ <a name='L813'></a><a href='#L813'>813</a>
879
+ <a name='L814'></a><a href='#L814'>814</a>
880
+ <a name='L815'></a><a href='#L815'>815</a>
881
+ <a name='L816'></a><a href='#L816'>816</a>
882
+ <a name='L817'></a><a href='#L817'>817</a>
883
+ <a name='L818'></a><a href='#L818'>818</a>
884
+ <a name='L819'></a><a href='#L819'>819</a>
885
+ <a name='L820'></a><a href='#L820'>820</a>
886
+ <a name='L821'></a><a href='#L821'>821</a>
887
+ <a name='L822'></a><a href='#L822'>822</a>
888
+ <a name='L823'></a><a href='#L823'>823</a>
889
+ <a name='L824'></a><a href='#L824'>824</a>
890
+ <a name='L825'></a><a href='#L825'>825</a>
891
+ <a name='L826'></a><a href='#L826'>826</a>
892
+ <a name='L827'></a><a href='#L827'>827</a>
893
+ <a name='L828'></a><a href='#L828'>828</a>
894
+ <a name='L829'></a><a href='#L829'>829</a>
895
+ <a name='L830'></a><a href='#L830'>830</a>
896
+ <a name='L831'></a><a href='#L831'>831</a>
897
+ <a name='L832'></a><a href='#L832'>832</a>
898
+ <a name='L833'></a><a href='#L833'>833</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
899
+ <span class="cline-any cline-yes">1x</span>
900
+ <span class="cline-any cline-yes">1x</span>
901
+ <span class="cline-any cline-yes">1x</span>
902
+ <span class="cline-any cline-yes">1x</span>
903
+ <span class="cline-any cline-yes">1x</span>
904
+ <span class="cline-any cline-yes">1x</span>
905
+ <span class="cline-any cline-yes">1x</span>
906
+ <span class="cline-any cline-yes">1x</span>
907
+ <span class="cline-any cline-yes">1x</span>
908
+ <span class="cline-any cline-yes">1x</span>
909
+ <span class="cline-any cline-yes">1x</span>
910
+ <span class="cline-any cline-yes">1x</span>
911
+ <span class="cline-any cline-yes">1x</span>
912
+ <span class="cline-any cline-yes">1x</span>
913
+ <span class="cline-any cline-yes">1x</span>
914
+ <span class="cline-any cline-yes">1x</span>
915
+ <span class="cline-any cline-yes">1x</span>
916
+ <span class="cline-any cline-yes">1x</span>
917
+ <span class="cline-any cline-yes">1x</span>
918
+ <span class="cline-any cline-yes">1x</span>
919
+ <span class="cline-any cline-yes">1x</span>
920
+ <span class="cline-any cline-yes">1x</span>
921
+ <span class="cline-any cline-yes">1x</span>
922
+ <span class="cline-any cline-yes">1x</span>
923
+ <span class="cline-any cline-yes">1x</span>
924
+ <span class="cline-any cline-yes">1x</span>
925
+ <span class="cline-any cline-yes">1x</span>
926
+ <span class="cline-any cline-yes">1x</span>
927
+ <span class="cline-any cline-yes">1x</span>
928
+ <span class="cline-any cline-yes">1x</span>
929
+ <span class="cline-any cline-yes">1x</span>
930
+ <span class="cline-any cline-yes">1x</span>
931
+ <span class="cline-any cline-yes">1x</span>
932
+ <span class="cline-any cline-yes">1x</span>
933
+ <span class="cline-any cline-yes">1x</span>
934
+ <span class="cline-any cline-yes">1x</span>
935
+ <span class="cline-any cline-yes">1x</span>
936
+ <span class="cline-any cline-yes">1x</span>
937
+ <span class="cline-any cline-yes">1x</span>
938
+ <span class="cline-any cline-yes">1x</span>
939
+ <span class="cline-any cline-yes">1x</span>
940
+ <span class="cline-any cline-yes">1x</span>
941
+ <span class="cline-any cline-yes">1x</span>
942
+ <span class="cline-any cline-yes">1x</span>
943
+ <span class="cline-any cline-yes">1x</span>
944
+ <span class="cline-any cline-yes">1x</span>
945
+ <span class="cline-any cline-yes">1x</span>
946
+ <span class="cline-any cline-yes">1x</span>
947
+ <span class="cline-any cline-yes">1x</span>
948
+ <span class="cline-any cline-yes">1x</span>
949
+ <span class="cline-any cline-yes">1x</span>
950
+ <span class="cline-any cline-yes">1x</span>
951
+ <span class="cline-any cline-yes">1x</span>
952
+ <span class="cline-any cline-yes">1x</span>
953
+ <span class="cline-any cline-yes">1x</span>
954
+ <span class="cline-any cline-yes">1x</span>
955
+ <span class="cline-any cline-yes">1x</span>
956
+ <span class="cline-any cline-yes">1x</span>
957
+ <span class="cline-any cline-yes">1x</span>
958
+ <span class="cline-any cline-yes">1x</span>
959
+ <span class="cline-any cline-yes">1x</span>
960
+ <span class="cline-any cline-yes">1x</span>
961
+ <span class="cline-any cline-yes">1x</span>
962
+ <span class="cline-any cline-yes">1x</span>
963
+ <span class="cline-any cline-yes">1x</span>
964
+ <span class="cline-any cline-yes">1x</span>
965
+ <span class="cline-any cline-yes">1x</span>
966
+ <span class="cline-any cline-yes">1x</span>
967
+ <span class="cline-any cline-yes">1x</span>
968
+ <span class="cline-any cline-yes">1x</span>
969
+ <span class="cline-any cline-yes">1x</span>
970
+ <span class="cline-any cline-yes">1x</span>
971
+ <span class="cline-any cline-yes">1x</span>
972
+ <span class="cline-any cline-yes">1x</span>
973
+ <span class="cline-any cline-yes">1x</span>
974
+ <span class="cline-any cline-yes">1x</span>
975
+ <span class="cline-any cline-yes">1x</span>
976
+ <span class="cline-any cline-yes">1x</span>
977
+ <span class="cline-any cline-yes">1x</span>
978
+ <span class="cline-any cline-yes">1x</span>
979
+ <span class="cline-any cline-yes">1x</span>
980
+ <span class="cline-any cline-yes">1x</span>
981
+ <span class="cline-any cline-yes">1x</span>
982
+ <span class="cline-any cline-yes">1x</span>
983
+ <span class="cline-any cline-yes">1x</span>
984
+ <span class="cline-any cline-yes">1x</span>
985
+ <span class="cline-any cline-yes">1x</span>
986
+ <span class="cline-any cline-yes">1x</span>
987
+ <span class="cline-any cline-yes">1x</span>
988
+ <span class="cline-any cline-yes">1x</span>
989
+ <span class="cline-any cline-yes">1x</span>
990
+ <span class="cline-any cline-yes">1x</span>
991
+ <span class="cline-any cline-yes">1x</span>
992
+ <span class="cline-any cline-yes">1x</span>
993
+ <span class="cline-any cline-yes">1x</span>
994
+ <span class="cline-any cline-yes">1x</span>
995
+ <span class="cline-any cline-yes">1x</span>
996
+ <span class="cline-any cline-yes">1x</span>
997
+ <span class="cline-any cline-yes">1x</span>
998
+ <span class="cline-any cline-yes">1x</span>
999
+ <span class="cline-any cline-yes">1x</span>
1000
+ <span class="cline-any cline-yes">1x</span>
1001
+ <span class="cline-any cline-yes">1x</span>
1002
+ <span class="cline-any cline-yes">1x</span>
1003
+ <span class="cline-any cline-yes">1x</span>
1004
+ <span class="cline-any cline-yes">1x</span>
1005
+ <span class="cline-any cline-yes">1x</span>
1006
+ <span class="cline-any cline-yes">1x</span>
1007
+ <span class="cline-any cline-yes">1x</span>
1008
+ <span class="cline-any cline-yes">1x</span>
1009
+ <span class="cline-any cline-yes">1x</span>
1010
+ <span class="cline-any cline-yes">1x</span>
1011
+ <span class="cline-any cline-yes">1x</span>
1012
+ <span class="cline-any cline-yes">1x</span>
1013
+ <span class="cline-any cline-yes">1x</span>
1014
+ <span class="cline-any cline-yes">6x</span>
1015
+ <span class="cline-any cline-yes">6x</span>
1016
+ <span class="cline-any cline-yes">6x</span>
1017
+ <span class="cline-any cline-yes">6x</span>
1018
+ <span class="cline-any cline-yes">6x</span>
1019
+ <span class="cline-any cline-yes">6x</span>
1020
+ <span class="cline-any cline-yes">6x</span>
1021
+ <span class="cline-any cline-yes">6x</span>
1022
+ <span class="cline-any cline-yes">6x</span>
1023
+ <span class="cline-any cline-yes">6x</span>
1024
+ <span class="cline-any cline-yes">6x</span>
1025
+ <span class="cline-any cline-yes">6x</span>
1026
+ <span class="cline-any cline-yes">6x</span>
1027
+ <span class="cline-any cline-yes">2x</span>
1028
+ <span class="cline-any cline-yes">2x</span>
1029
+ <span class="cline-any cline-yes">2x</span>
1030
+ <span class="cline-any cline-yes">2x</span>
1031
+ <span class="cline-any cline-yes">2x</span>
1032
+ <span class="cline-any cline-yes">4x</span>
1033
+ <span class="cline-any cline-yes">6x</span>
1034
+ <span class="cline-any cline-yes">6x</span>
1035
+ <span class="cline-any cline-yes">6x</span>
1036
+ <span class="cline-any cline-yes">6x</span>
1037
+ <span class="cline-any cline-yes">1x</span>
1038
+ <span class="cline-any cline-yes">1x</span>
1039
+ <span class="cline-any cline-yes">1x</span>
1040
+ <span class="cline-any cline-yes">1x</span>
1041
+ <span class="cline-any cline-yes">1x</span>
1042
+ <span class="cline-any cline-yes">1x</span>
1043
+ <span class="cline-any cline-yes">1x</span>
1044
+ <span class="cline-any cline-yes">1x</span>
1045
+ <span class="cline-any cline-yes">1x</span>
1046
+ <span class="cline-any cline-yes">1x</span>
1047
+ <span class="cline-any cline-yes">1x</span>
1048
+ <span class="cline-any cline-yes">1x</span>
1049
+ <span class="cline-any cline-yes">1x</span>
1050
+ <span class="cline-any cline-yes">1x</span>
1051
+ <span class="cline-any cline-yes">1x</span>
1052
+ <span class="cline-any cline-yes">1x</span>
1053
+ <span class="cline-any cline-yes">1x</span>
1054
+ <span class="cline-any cline-yes">5x</span>
1055
+ <span class="cline-any cline-yes">5x</span>
1056
+ <span class="cline-any cline-yes">5x</span>
1057
+ <span class="cline-any cline-yes">5x</span>
1058
+ <span class="cline-any cline-yes">5x</span>
1059
+ <span class="cline-any cline-yes">5x</span>
1060
+ <span class="cline-any cline-yes">5x</span>
1061
+ <span class="cline-any cline-yes">5x</span>
1062
+ <span class="cline-any cline-yes">5x</span>
1063
+ <span class="cline-any cline-yes">5x</span>
1064
+ <span class="cline-any cline-yes">5x</span>
1065
+ <span class="cline-any cline-yes">5x</span>
1066
+ <span class="cline-any cline-yes">5x</span>
1067
+ <span class="cline-any cline-yes">5x</span>
1068
+ <span class="cline-any cline-yes">5x</span>
1069
+ <span class="cline-any cline-yes">5x</span>
1070
+ <span class="cline-any cline-yes">5x</span>
1071
+ <span class="cline-any cline-yes">1x</span>
1072
+ <span class="cline-any cline-yes">1x</span>
1073
+ <span class="cline-any cline-yes">1x</span>
1074
+ <span class="cline-any cline-yes">1x</span>
1075
+ <span class="cline-any cline-yes">1x</span>
1076
+ <span class="cline-any cline-yes">1x</span>
1077
+ <span class="cline-any cline-yes">1x</span>
1078
+ <span class="cline-any cline-yes">1x</span>
1079
+ <span class="cline-any cline-yes">1x</span>
1080
+ <span class="cline-any cline-yes">3x</span>
1081
+ <span class="cline-any cline-yes">3x</span>
1082
+ <span class="cline-any cline-yes">3x</span>
1083
+ <span class="cline-any cline-yes">3x</span>
1084
+ <span class="cline-any cline-yes">3x</span>
1085
+ <span class="cline-any cline-yes">3x</span>
1086
+ <span class="cline-any cline-yes">3x</span>
1087
+ <span class="cline-any cline-yes">3x</span>
1088
+ <span class="cline-any cline-yes">3x</span>
1089
+ <span class="cline-any cline-yes">3x</span>
1090
+ <span class="cline-any cline-yes">3x</span>
1091
+ <span class="cline-any cline-yes">3x</span>
1092
+ <span class="cline-any cline-yes">3x</span>
1093
+ <span class="cline-any cline-yes">1x</span>
1094
+ <span class="cline-any cline-yes">1x</span>
1095
+ <span class="cline-any cline-yes">1x</span>
1096
+ <span class="cline-any cline-yes">1x</span>
1097
+ <span class="cline-any cline-yes">1x</span>
1098
+ <span class="cline-any cline-yes">1x</span>
1099
+ <span class="cline-any cline-yes">1x</span>
1100
+ <span class="cline-any cline-yes">1x</span>
1101
+ <span class="cline-any cline-yes">1x</span>
1102
+ <span class="cline-any cline-yes">1x</span>
1103
+ <span class="cline-any cline-yes">1x</span>
1104
+ <span class="cline-any cline-yes">1x</span>
1105
+ <span class="cline-any cline-yes">1x</span>
1106
+ <span class="cline-any cline-yes">1x</span>
1107
+ <span class="cline-any cline-yes">1x</span>
1108
+ <span class="cline-any cline-yes">1x</span>
1109
+ <span class="cline-any cline-yes">1x</span>
1110
+ <span class="cline-any cline-yes">1x</span>
1111
+ <span class="cline-any cline-yes">1x</span>
1112
+ <span class="cline-any cline-yes">1x</span>
1113
+ <span class="cline-any cline-yes">1x</span>
1114
+ <span class="cline-any cline-yes">1x</span>
1115
+ <span class="cline-any cline-yes">1x</span>
1116
+ <span class="cline-any cline-yes">1x</span>
1117
+ <span class="cline-any cline-yes">1x</span>
1118
+ <span class="cline-any cline-yes">1x</span>
1119
+ <span class="cline-any cline-yes">1x</span>
1120
+ <span class="cline-any cline-yes">1x</span>
1121
+ <span class="cline-any cline-yes">1x</span>
1122
+ <span class="cline-any cline-yes">1x</span>
1123
+ <span class="cline-any cline-yes">1x</span>
1124
+ <span class="cline-any cline-yes">4x</span>
1125
+ <span class="cline-any cline-yes">4x</span>
1126
+ <span class="cline-any cline-yes">4x</span>
1127
+ <span class="cline-any cline-yes">4x</span>
1128
+ <span class="cline-any cline-yes">4x</span>
1129
+ <span class="cline-any cline-yes">4x</span>
1130
+ <span class="cline-any cline-yes">4x</span>
1131
+ <span class="cline-any cline-yes">4x</span>
1132
+ <span class="cline-any cline-yes">4x</span>
1133
+ <span class="cline-any cline-yes">4x</span>
1134
+ <span class="cline-any cline-yes">4x</span>
1135
+ <span class="cline-any cline-yes">4x</span>
1136
+ <span class="cline-any cline-yes">4x</span>
1137
+ <span class="cline-any cline-yes">4x</span>
1138
+ <span class="cline-any cline-yes">4x</span>
1139
+ <span class="cline-any cline-yes">4x</span>
1140
+ <span class="cline-any cline-yes">4x</span>
1141
+ <span class="cline-any cline-yes">4x</span>
1142
+ <span class="cline-any cline-yes">4x</span>
1143
+ <span class="cline-any cline-yes">1x</span>
1144
+ <span class="cline-any cline-yes">1x</span>
1145
+ <span class="cline-any cline-yes">1x</span>
1146
+ <span class="cline-any cline-yes">1x</span>
1147
+ <span class="cline-any cline-yes">1x</span>
1148
+ <span class="cline-any cline-yes">1x</span>
1149
+ <span class="cline-any cline-yes">1x</span>
1150
+ <span class="cline-any cline-yes">1x</span>
1151
+ <span class="cline-any cline-yes">1x</span>
1152
+ <span class="cline-any cline-yes">1x</span>
1153
+ <span class="cline-any cline-yes">1x</span>
1154
+ <span class="cline-any cline-yes">1x</span>
1155
+ <span class="cline-any cline-yes">1x</span>
1156
+ <span class="cline-any cline-yes">1x</span>
1157
+ <span class="cline-any cline-yes">2x</span>
1158
+ <span class="cline-any cline-yes">2x</span>
1159
+ <span class="cline-any cline-yes">2x</span>
1160
+ <span class="cline-any cline-yes">2x</span>
1161
+ <span class="cline-any cline-yes">2x</span>
1162
+ <span class="cline-any cline-yes">2x</span>
1163
+ <span class="cline-any cline-yes">2x</span>
1164
+ <span class="cline-any cline-yes">2x</span>
1165
+ <span class="cline-any cline-yes">2x</span>
1166
+ <span class="cline-any cline-yes">2x</span>
1167
+ <span class="cline-any cline-yes">2x</span>
1168
+ <span class="cline-any cline-yes">2x</span>
1169
+ <span class="cline-any cline-yes">2x</span>
1170
+ <span class="cline-any cline-yes">2x</span>
1171
+ <span class="cline-any cline-yes">2x</span>
1172
+ <span class="cline-any cline-yes">2x</span>
1173
+ <span class="cline-any cline-yes">2x</span>
1174
+ <span class="cline-any cline-yes">1x</span>
1175
+ <span class="cline-any cline-yes">1x</span>
1176
+ <span class="cline-any cline-yes">1x</span>
1177
+ <span class="cline-any cline-yes">1x</span>
1178
+ <span class="cline-any cline-yes">1x</span>
1179
+ <span class="cline-any cline-yes">1x</span>
1180
+ <span class="cline-any cline-yes">1x</span>
1181
+ <span class="cline-any cline-yes">1x</span>
1182
+ <span class="cline-any cline-yes">1x</span>
1183
+ <span class="cline-any cline-yes">1x</span>
1184
+ <span class="cline-any cline-yes">1x</span>
1185
+ <span class="cline-any cline-yes">1x</span>
1186
+ <span class="cline-any cline-yes">1x</span>
1187
+ <span class="cline-any cline-yes">1x</span>
1188
+ <span class="cline-any cline-yes">1x</span>
1189
+ <span class="cline-any cline-yes">1x</span>
1190
+ <span class="cline-any cline-yes">1x</span>
1191
+ <span class="cline-any cline-yes">1x</span>
1192
+ <span class="cline-any cline-yes">1x</span>
1193
+ <span class="cline-any cline-yes">1x</span>
1194
+ <span class="cline-any cline-yes">1x</span>
1195
+ <span class="cline-any cline-yes">1x</span>
1196
+ <span class="cline-any cline-yes">1x</span>
1197
+ <span class="cline-any cline-yes">1x</span>
1198
+ <span class="cline-any cline-yes">1x</span>
1199
+ <span class="cline-any cline-yes">1x</span>
1200
+ <span class="cline-any cline-yes">1x</span>
1201
+ <span class="cline-any cline-yes">1x</span>
1202
+ <span class="cline-any cline-yes">1x</span>
1203
+ <span class="cline-any cline-yes">1x</span>
1204
+ <span class="cline-any cline-yes">1x</span>
1205
+ <span class="cline-any cline-yes">1x</span>
1206
+ <span class="cline-any cline-yes">1x</span>
1207
+ <span class="cline-any cline-yes">1x</span>
1208
+ <span class="cline-any cline-yes">1x</span>
1209
+ <span class="cline-any cline-yes">1x</span>
1210
+ <span class="cline-any cline-yes">1x</span>
1211
+ <span class="cline-any cline-yes">1x</span>
1212
+ <span class="cline-any cline-yes">1x</span>
1213
+ <span class="cline-any cline-yes">1x</span>
1214
+ <span class="cline-any cline-yes">1x</span>
1215
+ <span class="cline-any cline-yes">1x</span>
1216
+ <span class="cline-any cline-yes">1x</span>
1217
+ <span class="cline-any cline-yes">1x</span>
1218
+ <span class="cline-any cline-yes">1x</span>
1219
+ <span class="cline-any cline-yes">1x</span>
1220
+ <span class="cline-any cline-yes">1x</span>
1221
+ <span class="cline-any cline-yes">1x</span>
1222
+ <span class="cline-any cline-yes">1x</span>
1223
+ <span class="cline-any cline-yes">1x</span>
1224
+ <span class="cline-any cline-yes">1x</span>
1225
+ <span class="cline-any cline-yes">1x</span>
1226
+ <span class="cline-any cline-yes">1x</span>
1227
+ <span class="cline-any cline-yes">1x</span>
1228
+ <span class="cline-any cline-yes">1x</span>
1229
+ <span class="cline-any cline-yes">1x</span>
1230
+ <span class="cline-any cline-yes">1x</span>
1231
+ <span class="cline-any cline-yes">1x</span>
1232
+ <span class="cline-any cline-yes">1x</span>
1233
+ <span class="cline-any cline-yes">1x</span>
1234
+ <span class="cline-any cline-yes">1x</span>
1235
+ <span class="cline-any cline-yes">1x</span>
1236
+ <span class="cline-any cline-yes">1x</span>
1237
+ <span class="cline-any cline-yes">1x</span>
1238
+ <span class="cline-any cline-yes">1x</span>
1239
+ <span class="cline-any cline-yes">1x</span>
1240
+ <span class="cline-any cline-yes">1x</span>
1241
+ <span class="cline-any cline-yes">1x</span>
1242
+ <span class="cline-any cline-yes">1x</span>
1243
+ <span class="cline-any cline-yes">1x</span>
1244
+ <span class="cline-any cline-yes">1x</span>
1245
+ <span class="cline-any cline-yes">1x</span>
1246
+ <span class="cline-any cline-yes">1x</span>
1247
+ <span class="cline-any cline-yes">1x</span>
1248
+ <span class="cline-any cline-yes">1x</span>
1249
+ <span class="cline-any cline-yes">1x</span>
1250
+ <span class="cline-any cline-yes">1x</span>
1251
+ <span class="cline-any cline-yes">1x</span>
1252
+ <span class="cline-any cline-yes">1x</span>
1253
+ <span class="cline-any cline-yes">1x</span>
1254
+ <span class="cline-any cline-yes">1x</span>
1255
+ <span class="cline-any cline-yes">1x</span>
1256
+ <span class="cline-any cline-yes">1x</span>
1257
+ <span class="cline-any cline-yes">1x</span>
1258
+ <span class="cline-any cline-yes">1x</span>
1259
+ <span class="cline-any cline-yes">1x</span>
1260
+ <span class="cline-any cline-yes">1x</span>
1261
+ <span class="cline-any cline-yes">1x</span>
1262
+ <span class="cline-any cline-yes">1x</span>
1263
+ <span class="cline-any cline-yes">1x</span>
1264
+ <span class="cline-any cline-yes">1x</span>
1265
+ <span class="cline-any cline-yes">2x</span>
1266
+ <span class="cline-any cline-yes">2x</span>
1267
+ <span class="cline-any cline-yes">2x</span>
1268
+ <span class="cline-any cline-yes">2x</span>
1269
+ <span class="cline-any cline-yes">2x</span>
1270
+ <span class="cline-any cline-yes">2x</span>
1271
+ <span class="cline-any cline-yes">2x</span>
1272
+ <span class="cline-any cline-yes">2x</span>
1273
+ <span class="cline-any cline-yes">2x</span>
1274
+ <span class="cline-any cline-yes">2x</span>
1275
+ <span class="cline-any cline-yes">2x</span>
1276
+ <span class="cline-any cline-yes">2x</span>
1277
+ <span class="cline-any cline-yes">2x</span>
1278
+ <span class="cline-any cline-yes">1x</span>
1279
+ <span class="cline-any cline-yes">1x</span>
1280
+ <span class="cline-any cline-yes">1x</span>
1281
+ <span class="cline-any cline-yes">1x</span>
1282
+ <span class="cline-any cline-yes">1x</span>
1283
+ <span class="cline-any cline-yes">1x</span>
1284
+ <span class="cline-any cline-yes">1x</span>
1285
+ <span class="cline-any cline-yes">1x</span>
1286
+ <span class="cline-any cline-yes">1x</span>
1287
+ <span class="cline-any cline-yes">1x</span>
1288
+ <span class="cline-any cline-yes">1x</span>
1289
+ <span class="cline-any cline-yes">1x</span>
1290
+ <span class="cline-any cline-yes">1x</span>
1291
+ <span class="cline-any cline-yes">1x</span>
1292
+ <span class="cline-any cline-yes">1x</span>
1293
+ <span class="cline-any cline-yes">1x</span>
1294
+ <span class="cline-any cline-yes">1x</span>
1295
+ <span class="cline-any cline-yes">1x</span>
1296
+ <span class="cline-any cline-yes">1x</span>
1297
+ <span class="cline-any cline-yes">1x</span>
1298
+ <span class="cline-any cline-yes">1x</span>
1299
+ <span class="cline-any cline-yes">1x</span>
1300
+ <span class="cline-any cline-yes">1x</span>
1301
+ <span class="cline-any cline-yes">1x</span>
1302
+ <span class="cline-any cline-yes">1x</span>
1303
+ <span class="cline-any cline-yes">1x</span>
1304
+ <span class="cline-any cline-yes">1x</span>
1305
+ <span class="cline-any cline-yes">1x</span>
1306
+ <span class="cline-any cline-yes">4x</span>
1307
+ <span class="cline-any cline-yes">4x</span>
1308
+ <span class="cline-any cline-yes">4x</span>
1309
+ <span class="cline-any cline-yes">4x</span>
1310
+ <span class="cline-any cline-yes">4x</span>
1311
+ <span class="cline-any cline-yes">4x</span>
1312
+ <span class="cline-any cline-yes">4x</span>
1313
+ <span class="cline-any cline-yes">4x</span>
1314
+ <span class="cline-any cline-yes">4x</span>
1315
+ <span class="cline-any cline-yes">4x</span>
1316
+ <span class="cline-any cline-yes">4x</span>
1317
+ <span class="cline-any cline-yes">4x</span>
1318
+ <span class="cline-any cline-yes">4x</span>
1319
+ <span class="cline-any cline-yes">4x</span>
1320
+ <span class="cline-any cline-yes">4x</span>
1321
+ <span class="cline-any cline-yes">1x</span>
1322
+ <span class="cline-any cline-yes">1x</span>
1323
+ <span class="cline-any cline-yes">1x</span>
1324
+ <span class="cline-any cline-yes">1x</span>
1325
+ <span class="cline-any cline-yes">1x</span>
1326
+ <span class="cline-any cline-yes">1x</span>
1327
+ <span class="cline-any cline-yes">1x</span>
1328
+ <span class="cline-any cline-yes">1x</span>
1329
+ <span class="cline-any cline-yes">1x</span>
1330
+ <span class="cline-any cline-yes">1x</span>
1331
+ <span class="cline-any cline-yes">1x</span>
1332
+ <span class="cline-any cline-yes">1x</span>
1333
+ <span class="cline-any cline-yes">1x</span>
1334
+ <span class="cline-any cline-yes">1x</span>
1335
+ <span class="cline-any cline-yes">1x</span>
1336
+ <span class="cline-any cline-yes">1x</span>
1337
+ <span class="cline-any cline-yes">1x</span>
1338
+ <span class="cline-any cline-yes">1x</span>
1339
+ <span class="cline-any cline-yes">1x</span>
1340
+ <span class="cline-any cline-yes">1x</span>
1341
+ <span class="cline-any cline-yes">1x</span>
1342
+ <span class="cline-any cline-yes">1x</span>
1343
+ <span class="cline-any cline-yes">1x</span>
1344
+ <span class="cline-any cline-yes">1x</span>
1345
+ <span class="cline-any cline-yes">1x</span>
1346
+ <span class="cline-any cline-yes">3x</span>
1347
+ <span class="cline-any cline-yes">3x</span>
1348
+ <span class="cline-any cline-yes">3x</span>
1349
+ <span class="cline-any cline-yes">3x</span>
1350
+ <span class="cline-any cline-yes">3x</span>
1351
+ <span class="cline-any cline-yes">3x</span>
1352
+ <span class="cline-any cline-yes">3x</span>
1353
+ <span class="cline-any cline-yes">3x</span>
1354
+ <span class="cline-any cline-yes">3x</span>
1355
+ <span class="cline-any cline-yes">3x</span>
1356
+ <span class="cline-any cline-yes">3x</span>
1357
+ <span class="cline-any cline-yes">3x</span>
1358
+ <span class="cline-any cline-yes">3x</span>
1359
+ <span class="cline-any cline-yes">1x</span>
1360
+ <span class="cline-any cline-yes">1x</span>
1361
+ <span class="cline-any cline-yes">1x</span>
1362
+ <span class="cline-any cline-yes">1x</span>
1363
+ <span class="cline-any cline-yes">1x</span>
1364
+ <span class="cline-any cline-yes">1x</span>
1365
+ <span class="cline-any cline-yes">1x</span>
1366
+ <span class="cline-any cline-yes">1x</span>
1367
+ <span class="cline-any cline-yes">1x</span>
1368
+ <span class="cline-any cline-yes">3x</span>
1369
+ <span class="cline-any cline-yes">3x</span>
1370
+ <span class="cline-any cline-yes">3x</span>
1371
+ <span class="cline-any cline-yes">3x</span>
1372
+ <span class="cline-any cline-yes">3x</span>
1373
+ <span class="cline-any cline-yes">3x</span>
1374
+ <span class="cline-any cline-yes">3x</span>
1375
+ <span class="cline-any cline-yes">3x</span>
1376
+ <span class="cline-any cline-yes">3x</span>
1377
+ <span class="cline-any cline-yes">5x</span>
1378
+ <span class="cline-any cline-yes">5x</span>
1379
+ <span class="cline-any cline-yes">5x</span>
1380
+ <span class="cline-any cline-yes">5x</span>
1381
+ <span class="cline-any cline-yes">3x</span>
1382
+ <span class="cline-any cline-yes">3x</span>
1383
+ <span class="cline-any cline-yes">3x</span>
1384
+ <span class="cline-any cline-yes">3x</span>
1385
+ <span class="cline-any cline-yes">3x</span>
1386
+ <span class="cline-any cline-yes">1x</span>
1387
+ <span class="cline-any cline-yes">1x</span>
1388
+ <span class="cline-any cline-yes">1x</span>
1389
+ <span class="cline-any cline-yes">1x</span>
1390
+ <span class="cline-any cline-yes">1x</span>
1391
+ <span class="cline-any cline-yes">1x</span>
1392
+ <span class="cline-any cline-yes">1x</span>
1393
+ <span class="cline-any cline-yes">1x</span>
1394
+ <span class="cline-any cline-yes">3x</span>
1395
+ <span class="cline-any cline-yes">3x</span>
1396
+ <span class="cline-any cline-yes">3x</span>
1397
+ <span class="cline-any cline-yes">3x</span>
1398
+ <span class="cline-any cline-yes">3x</span>
1399
+ <span class="cline-any cline-yes">3x</span>
1400
+ <span class="cline-any cline-yes">3x</span>
1401
+ <span class="cline-any cline-yes">3x</span>
1402
+ <span class="cline-any cline-yes">1x</span>
1403
+ <span class="cline-any cline-yes">1x</span>
1404
+ <span class="cline-any cline-yes">1x</span>
1405
+ <span class="cline-any cline-yes">1x</span>
1406
+ <span class="cline-any cline-yes">1x</span>
1407
+ <span class="cline-any cline-yes">1x</span>
1408
+ <span class="cline-any cline-yes">1x</span>
1409
+ <span class="cline-any cline-yes">1x</span>
1410
+ <span class="cline-any cline-yes">1x</span>
1411
+ <span class="cline-any cline-yes">1x</span>
1412
+ <span class="cline-any cline-yes">1x</span>
1413
+ <span class="cline-any cline-yes">5x</span>
1414
+ <span class="cline-any cline-yes">5x</span>
1415
+ <span class="cline-any cline-yes">5x</span>
1416
+ <span class="cline-any cline-yes">5x</span>
1417
+ <span class="cline-any cline-yes">5x</span>
1418
+ <span class="cline-any cline-yes">5x</span>
1419
+ <span class="cline-any cline-yes">5x</span>
1420
+ <span class="cline-any cline-yes">5x</span>
1421
+ <span class="cline-any cline-yes">5x</span>
1422
+ <span class="cline-any cline-yes">5x</span>
1423
+ <span class="cline-any cline-yes">5x</span>
1424
+ <span class="cline-any cline-yes">5x</span>
1425
+ <span class="cline-any cline-yes">5x</span>
1426
+ <span class="cline-any cline-yes">5x</span>
1427
+ <span class="cline-any cline-yes">5x</span>
1428
+ <span class="cline-any cline-yes">5x</span>
1429
+ <span class="cline-any cline-yes">5x</span>
1430
+ <span class="cline-any cline-yes">1x</span>
1431
+ <span class="cline-any cline-yes">1x</span>
1432
+ <span class="cline-any cline-yes">1x</span>
1433
+ <span class="cline-any cline-yes">1x</span>
1434
+ <span class="cline-any cline-yes">1x</span>
1435
+ <span class="cline-any cline-yes">1x</span>
1436
+ <span class="cline-any cline-yes">1x</span>
1437
+ <span class="cline-any cline-yes">1x</span>
1438
+ <span class="cline-any cline-yes">1x</span>
1439
+ <span class="cline-any cline-yes">1x</span>
1440
+ <span class="cline-any cline-yes">1x</span>
1441
+ <span class="cline-any cline-yes">1x</span>
1442
+ <span class="cline-any cline-yes">1x</span>
1443
+ <span class="cline-any cline-yes">1x</span>
1444
+ <span class="cline-any cline-yes">1x</span>
1445
+ <span class="cline-any cline-yes">1x</span>
1446
+ <span class="cline-any cline-yes">1x</span>
1447
+ <span class="cline-any cline-yes">1x</span>
1448
+ <span class="cline-any cline-yes">1x</span>
1449
+ <span class="cline-any cline-yes">1x</span>
1450
+ <span class="cline-any cline-yes">1x</span>
1451
+ <span class="cline-any cline-yes">1x</span>
1452
+ <span class="cline-any cline-yes">1x</span>
1453
+ <span class="cline-any cline-yes">1x</span>
1454
+ <span class="cline-any cline-yes">1x</span>
1455
+ <span class="cline-any cline-yes">1x</span>
1456
+ <span class="cline-any cline-yes">1x</span>
1457
+ <span class="cline-any cline-yes">3x</span>
1458
+ <span class="cline-any cline-yes">3x</span>
1459
+ <span class="cline-any cline-yes">3x</span>
1460
+ <span class="cline-any cline-yes">3x</span>
1461
+ <span class="cline-any cline-yes">3x</span>
1462
+ <span class="cline-any cline-yes">3x</span>
1463
+ <span class="cline-any cline-yes">3x</span>
1464
+ <span class="cline-any cline-yes">3x</span>
1465
+ <span class="cline-any cline-yes">3x</span>
1466
+ <span class="cline-any cline-yes">3x</span>
1467
+ <span class="cline-any cline-yes">3x</span>
1468
+ <span class="cline-any cline-yes">3x</span>
1469
+ <span class="cline-any cline-yes">3x</span>
1470
+ <span class="cline-any cline-yes">3x</span>
1471
+ <span class="cline-any cline-yes">3x</span>
1472
+ <span class="cline-any cline-yes">3x</span>
1473
+ <span class="cline-any cline-yes">3x</span>
1474
+ <span class="cline-any cline-yes">1x</span>
1475
+ <span class="cline-any cline-yes">1x</span>
1476
+ <span class="cline-any cline-yes">1x</span>
1477
+ <span class="cline-any cline-yes">1x</span>
1478
+ <span class="cline-any cline-yes">1x</span>
1479
+ <span class="cline-any cline-yes">1x</span>
1480
+ <span class="cline-any cline-yes">1x</span>
1481
+ <span class="cline-any cline-yes">1x</span>
1482
+ <span class="cline-any cline-yes">1x</span>
1483
+ <span class="cline-any cline-yes">3x</span>
1484
+ <span class="cline-any cline-yes">3x</span>
1485
+ <span class="cline-any cline-yes">3x</span>
1486
+ <span class="cline-any cline-yes">3x</span>
1487
+ <span class="cline-any cline-yes">3x</span>
1488
+ <span class="cline-any cline-yes">3x</span>
1489
+ <span class="cline-any cline-yes">3x</span>
1490
+ <span class="cline-any cline-yes">3x</span>
1491
+ <span class="cline-any cline-yes">3x</span>
1492
+ <span class="cline-any cline-yes">3x</span>
1493
+ <span class="cline-any cline-yes">3x</span>
1494
+ <span class="cline-any cline-yes">3x</span>
1495
+ <span class="cline-any cline-yes">3x</span>
1496
+ <span class="cline-any cline-yes">1x</span>
1497
+ <span class="cline-any cline-yes">1x</span>
1498
+ <span class="cline-any cline-yes">1x</span>
1499
+ <span class="cline-any cline-yes">1x</span>
1500
+ <span class="cline-any cline-yes">1x</span>
1501
+ <span class="cline-any cline-yes">1x</span>
1502
+ <span class="cline-any cline-yes">1x</span>
1503
+ <span class="cline-any cline-yes">1x</span>
1504
+ <span class="cline-any cline-yes">2x</span>
1505
+ <span class="cline-any cline-yes">2x</span>
1506
+ <span class="cline-any cline-yes">2x</span>
1507
+ <span class="cline-any cline-yes">2x</span>
1508
+ <span class="cline-any cline-yes">2x</span>
1509
+ <span class="cline-any cline-yes">2x</span>
1510
+ <span class="cline-any cline-yes">2x</span>
1511
+ <span class="cline-any cline-yes">2x</span>
1512
+ <span class="cline-any cline-yes">1x</span>
1513
+ <span class="cline-any cline-yes">1x</span>
1514
+ <span class="cline-any cline-yes">1x</span>
1515
+ <span class="cline-any cline-yes">1x</span>
1516
+ <span class="cline-any cline-yes">1x</span>
1517
+ <span class="cline-any cline-yes">1x</span>
1518
+ <span class="cline-any cline-yes">1x</span>
1519
+ <span class="cline-any cline-yes">1x</span>
1520
+ <span class="cline-any cline-yes">7x</span>
1521
+ <span class="cline-any cline-yes">7x</span>
1522
+ <span class="cline-any cline-yes">7x</span>
1523
+ <span class="cline-any cline-yes">7x</span>
1524
+ <span class="cline-any cline-yes">7x</span>
1525
+ <span class="cline-any cline-yes">7x</span>
1526
+ <span class="cline-any cline-yes">7x</span>
1527
+ <span class="cline-any cline-yes">7x</span>
1528
+ <span class="cline-any cline-yes">7x</span>
1529
+ <span class="cline-any cline-yes">7x</span>
1530
+ <span class="cline-any cline-yes">7x</span>
1531
+ <span class="cline-any cline-yes">7x</span>
1532
+ <span class="cline-any cline-yes">7x</span>
1533
+ <span class="cline-any cline-yes">10x</span>
1534
+ <span class="cline-any cline-yes">10x</span>
1535
+ <span class="cline-any cline-yes">10x</span>
1536
+ <span class="cline-any cline-yes">10x</span>
1537
+ <span class="cline-any cline-yes">7x</span>
1538
+ <span class="cline-any cline-yes">7x</span>
1539
+ <span class="cline-any cline-yes">7x</span>
1540
+ <span class="cline-any cline-yes">7x</span>
1541
+ <span class="cline-any cline-yes">7x</span>
1542
+ <span class="cline-any cline-yes">7x</span>
1543
+ <span class="cline-any cline-yes">7x</span>
1544
+ <span class="cline-any cline-yes">7x</span>
1545
+ <span class="cline-any cline-yes">7x</span>
1546
+ <span class="cline-any cline-yes">7x</span>
1547
+ <span class="cline-any cline-yes">7x</span>
1548
+ <span class="cline-any cline-yes">7x</span>
1549
+ <span class="cline-any cline-yes">1x</span>
1550
+ <span class="cline-any cline-yes">1x</span>
1551
+ <span class="cline-any cline-yes">1x</span>
1552
+ <span class="cline-any cline-yes">1x</span>
1553
+ <span class="cline-any cline-yes">1x</span>
1554
+ <span class="cline-any cline-yes">1x</span>
1555
+ <span class="cline-any cline-yes">7x</span>
1556
+ <span class="cline-any cline-yes">10x</span>
1557
+ <span class="cline-any cline-yes">10x</span>
1558
+ <span class="cline-any cline-yes">1x</span>
1559
+ <span class="cline-any cline-yes">1x</span>
1560
+ <span class="cline-any cline-yes">1x</span>
1561
+ <span class="cline-any cline-yes">1x</span>
1562
+ <span class="cline-any cline-yes">1x</span>
1563
+ <span class="cline-any cline-yes">1x</span>
1564
+ <span class="cline-any cline-yes">1x</span>
1565
+ <span class="cline-any cline-yes">1x</span>
1566
+ <span class="cline-any cline-yes">1x</span>
1567
+ <span class="cline-any cline-yes">1x</span>
1568
+ <span class="cline-any cline-yes">1x</span>
1569
+ <span class="cline-any cline-yes">1x</span>
1570
+ <span class="cline-any cline-yes">1x</span>
1571
+ <span class="cline-any cline-yes">1x</span>
1572
+ <span class="cline-any cline-yes">10x</span>
1573
+ <span class="cline-any cline-yes">10x</span>
1574
+ <span class="cline-any cline-yes">1x</span>
1575
+ <span class="cline-any cline-yes">1x</span>
1576
+ <span class="cline-any cline-yes">1x</span>
1577
+ <span class="cline-any cline-yes">1x</span>
1578
+ <span class="cline-any cline-yes">1x</span>
1579
+ <span class="cline-any cline-yes">1x</span>
1580
+ <span class="cline-any cline-yes">1x</span>
1581
+ <span class="cline-any cline-yes">1x</span>
1582
+ <span class="cline-any cline-yes">1x</span>
1583
+ <span class="cline-any cline-yes">1x</span>
1584
+ <span class="cline-any cline-yes">10x</span>
1585
+ <span class="cline-any cline-yes">10x</span>
1586
+ <span class="cline-any cline-yes">1x</span>
1587
+ <span class="cline-any cline-yes">1x</span>
1588
+ <span class="cline-any cline-yes">1x</span>
1589
+ <span class="cline-any cline-yes">1x</span>
1590
+ <span class="cline-any cline-yes">1x</span>
1591
+ <span class="cline-any cline-yes">1x</span>
1592
+ <span class="cline-any cline-yes">1x</span>
1593
+ <span class="cline-any cline-yes">1x</span>
1594
+ <span class="cline-any cline-yes">1x</span>
1595
+ <span class="cline-any cline-yes">1x</span>
1596
+ <span class="cline-any cline-yes">10x</span>
1597
+ <span class="cline-any cline-yes">10x</span>
1598
+ <span class="cline-any cline-yes">10x</span>
1599
+ <span class="cline-any cline-yes">7x</span>
1600
+ <span class="cline-any cline-yes">7x</span>
1601
+ <span class="cline-any cline-yes">7x</span>
1602
+ <span class="cline-any cline-yes">7x</span>
1603
+ <span class="cline-any cline-yes">7x</span>
1604
+ <span class="cline-any cline-yes">7x</span>
1605
+ <span class="cline-any cline-yes">7x</span>
1606
+ <span class="cline-any cline-yes">7x</span>
1607
+ <span class="cline-any cline-yes">7x</span>
1608
+ <span class="cline-any cline-yes">7x</span>
1609
+ <span class="cline-any cline-yes">7x</span>
1610
+ <span class="cline-any cline-yes">1x</span>
1611
+ <span class="cline-any cline-yes">1x</span>
1612
+ <span class="cline-any cline-yes">1x</span>
1613
+ <span class="cline-any cline-yes">1x</span>
1614
+ <span class="cline-any cline-yes">1x</span>
1615
+ <span class="cline-any cline-yes">1x</span>
1616
+ <span class="cline-any cline-yes">1x</span>
1617
+ <span class="cline-any cline-yes">1x</span>
1618
+ <span class="cline-any cline-yes">7x</span>
1619
+ <span class="cline-any cline-yes">7x</span>
1620
+ <span class="cline-any cline-yes">7x</span>
1621
+ <span class="cline-any cline-yes">7x</span>
1622
+ <span class="cline-any cline-yes">7x</span>
1623
+ <span class="cline-any cline-yes">7x</span>
1624
+ <span class="cline-any cline-yes">7x</span>
1625
+ <span class="cline-any cline-yes">7x</span>
1626
+ <span class="cline-any cline-yes">7x</span>
1627
+ <span class="cline-any cline-yes">7x</span>
1628
+ <span class="cline-any cline-yes">7x</span>
1629
+ <span class="cline-any cline-yes">7x</span>
1630
+ <span class="cline-any cline-yes">7x</span>
1631
+ <span class="cline-any cline-yes">7x</span>
1632
+ <span class="cline-any cline-yes">7x</span>
1633
+ <span class="cline-any cline-yes">9x</span>
1634
+ <span class="cline-any cline-yes">9x</span>
1635
+ <span class="cline-any cline-yes">9x</span>
1636
+ <span class="cline-any cline-yes">9x</span>
1637
+ <span class="cline-any cline-yes">9x</span>
1638
+ <span class="cline-any cline-yes">9x</span>
1639
+ <span class="cline-any cline-yes">4x</span>
1640
+ <span class="cline-any cline-yes">1x</span>
1641
+ <span class="cline-any cline-yes">1x</span>
1642
+ <span class="cline-any cline-yes">1x</span>
1643
+ <span class="cline-any cline-yes">1x</span>
1644
+ <span class="cline-any cline-yes">1x</span>
1645
+ <span class="cline-any cline-yes">1x</span>
1646
+ <span class="cline-any cline-yes">1x</span>
1647
+ <span class="cline-any cline-yes">1x</span>
1648
+ <span class="cline-any cline-yes">1x</span>
1649
+ <span class="cline-any cline-yes">1x</span>
1650
+ <span class="cline-any cline-yes">1x</span>
1651
+ <span class="cline-any cline-yes">1x</span>
1652
+ <span class="cline-any cline-yes">1x</span>
1653
+ <span class="cline-any cline-yes">1x</span>
1654
+ <span class="cline-any cline-yes">1x</span>
1655
+ <span class="cline-any cline-yes">4x</span>
1656
+ <span class="cline-any cline-yes">3x</span>
1657
+ <span class="cline-any cline-yes">3x</span>
1658
+ <span class="cline-any cline-yes">3x</span>
1659
+ <span class="cline-any cline-yes">3x</span>
1660
+ <span class="cline-any cline-yes">3x</span>
1661
+ <span class="cline-any cline-yes">3x</span>
1662
+ <span class="cline-any cline-yes">3x</span>
1663
+ <span class="cline-any cline-yes">3x</span>
1664
+ <span class="cline-any cline-yes">3x</span>
1665
+ <span class="cline-any cline-yes">3x</span>
1666
+ <span class="cline-any cline-yes">3x</span>
1667
+ <span class="cline-any cline-yes">3x</span>
1668
+ <span class="cline-any cline-yes">4x</span>
1669
+ <span class="cline-any cline-yes">9x</span>
1670
+ <span class="cline-any cline-yes">9x</span>
1671
+ <span class="cline-any cline-yes">2x</span>
1672
+ <span class="cline-any cline-yes">2x</span>
1673
+ <span class="cline-any cline-yes">2x</span>
1674
+ <span class="cline-any cline-yes">2x</span>
1675
+ <span class="cline-any cline-yes">2x</span>
1676
+ <span class="cline-any cline-yes">2x</span>
1677
+ <span class="cline-any cline-yes">2x</span>
1678
+ <span class="cline-any cline-yes">2x</span>
1679
+ <span class="cline-any cline-yes">2x</span>
1680
+ <span class="cline-any cline-yes">2x</span>
1681
+ <span class="cline-any cline-yes">2x</span>
1682
+ <span class="cline-any cline-yes">2x</span>
1683
+ <span class="cline-any cline-yes">2x</span>
1684
+ <span class="cline-any cline-yes">2x</span>
1685
+ <span class="cline-any cline-yes">2x</span>
1686
+ <span class="cline-any cline-yes">9x</span>
1687
+ <span class="cline-any cline-yes">9x</span>
1688
+ <span class="cline-any cline-yes">2x</span>
1689
+ <span class="cline-any cline-yes">2x</span>
1690
+ <span class="cline-any cline-yes">2x</span>
1691
+ <span class="cline-any cline-yes">2x</span>
1692
+ <span class="cline-any cline-yes">2x</span>
1693
+ <span class="cline-any cline-yes">2x</span>
1694
+ <span class="cline-any cline-yes">2x</span>
1695
+ <span class="cline-any cline-yes">2x</span>
1696
+ <span class="cline-any cline-yes">2x</span>
1697
+ <span class="cline-any cline-yes">2x</span>
1698
+ <span class="cline-any cline-yes">2x</span>
1699
+ <span class="cline-any cline-yes">2x</span>
1700
+ <span class="cline-any cline-yes">9x</span>
1701
+ <span class="cline-any cline-yes">9x</span>
1702
+ <span class="cline-any cline-yes">1x</span>
1703
+ <span class="cline-any cline-yes">9x</span>
1704
+ <span class="cline-any cline-yes">8x</span>
1705
+ <span class="cline-any cline-yes">8x</span>
1706
+ <span class="cline-any cline-yes">8x</span>
1707
+ <span class="cline-any cline-yes">8x</span>
1708
+ <span class="cline-any cline-yes">8x</span>
1709
+ <span class="cline-any cline-yes">8x</span>
1710
+ <span class="cline-any cline-yes">6x</span>
1711
+ <span class="cline-any cline-yes">6x</span>
1712
+ <span class="cline-any cline-yes">7x</span>
1713
+ <span class="cline-any cline-yes">1x</span>
1714
+ <span class="cline-any cline-yes">1x</span>
1715
+ <span class="cline-any cline-yes">1x</span>
1716
+ <span class="cline-any cline-yes">1x</span>
1717
+ <span class="cline-any cline-yes">1x</span>
1718
+ <span class="cline-any cline-yes">1x</span>
1719
+ <span class="cline-any cline-yes">1x</span>
1720
+ <span class="cline-any cline-yes">1x</span>
1721
+ <span class="cline-any cline-yes">1x</span>
1722
+ <span class="cline-any cline-yes">1x</span>
1723
+ <span class="cline-any cline-yes">1x</span>
1724
+ <span class="cline-any cline-yes">1x</span>
1725
+ <span class="cline-any cline-yes">1x</span>
1726
+ <span class="cline-any cline-yes">63x</span>
1727
+ <span class="cline-any cline-yes">63x</span>
1728
+ <span class="cline-any cline-yes">63x</span>
1729
+ <span class="cline-any cline-yes">1x</span>
1730
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
1731
+ * HSuite Native Connect
1732
+ * Copyright 2024-2025 HSuite (https://hsuite.finance)
1733
+ *
1734
+ * SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
1735
+ *
1736
+ * This file is part of HSuite Native Connect. For commercial licensing,
1737
+ * visit https://hsuite.finance/licensing
1738
+ */
1739
+ &nbsp;
1740
+ /**
1741
+ * @file Service for building XRPL (Ripple) transactions using the xrpl package.
1742
+ *
1743
+ * @module services/transaction-builders/xrpl
1744
+ *
1745
+ * @description
1746
+ * XrplTransactionBuilderService provides methods to construct various XRPL transaction
1747
+ * types and serialize them to base64 payloads ready for signing. It supports all major
1748
+ * XRPL transaction types including payments, trust lines, DEX orders, escrows, payment
1749
+ * channels, checks, and NFTs.
1750
+ *
1751
+ * **Supported Transaction Types:**
1752
+ * - Payment - XRP and token transfers
1753
+ * - TrustSet - Trust line creation/modification
1754
+ * - OfferCreate/Cancel - DEX order management
1755
+ * - AccountSet - Account configuration
1756
+ * - EscrowCreate/Finish/Cancel - Escrow operations
1757
+ * - PaymentChannel operations - Payment channels
1758
+ * - Check operations - XRPL checks
1759
+ * - DepositPreauth - Deposit preauthorization
1760
+ * - SignerListSet - Multi-signature configuration
1761
+ * - TicketCreate - Ticket creation
1762
+ * - NFT operations - NFTokenMint, Burn, CreateOffer, etc.
1763
+ * - Batch transactions - Multiple operations atomically
1764
+ *
1765
+ * **Amount Format:**
1766
+ * - XRP amounts are in "drops" (1 XRP = 1,000,000 drops)
1767
+ * - Token amounts use the IssuedCurrency format { currency, issuer, value }
1768
+ */
1769
+ &nbsp;
1770
+ import { Injectable } from '@angular/core';
1771
+ import type {
1772
+ Payment,
1773
+ TrustSet,
1774
+ OfferCreate,
1775
+ OfferCancel,
1776
+ AccountSet,
1777
+ EscrowCreate,
1778
+ EscrowFinish,
1779
+ EscrowCancel,
1780
+ PaymentChannelCreate,
1781
+ PaymentChannelFund,
1782
+ PaymentChannelClaim,
1783
+ CheckCreate,
1784
+ CheckCash,
1785
+ CheckCancel,
1786
+ DepositPreauth,
1787
+ SignerListSet,
1788
+ TicketCreate,
1789
+ NFTokenMint,
1790
+ NFTokenBurn,
1791
+ NFTokenCreateOffer,
1792
+ NFTokenAcceptOffer,
1793
+ NFTokenCancelOffer,
1794
+ Transaction,
1795
+ } from 'xrpl';
1796
+ &nbsp;
1797
+ /**
1798
+ * Service for building XRPL (Ripple) transactions using the xrpl package.
1799
+ *
1800
+ * @service XrplTransactionBuilderService
1801
+ *
1802
+ * @description
1803
+ * Provides methods to construct various XRPL transaction types and serialize them
1804
+ * to base64 payloads ready for signing. All build methods return a base64-encoded
1805
+ * JSON representation of the transaction.
1806
+ *
1807
+ * Unlike Hedera transactions which are frozen with a client, XRPL transactions
1808
+ * are serialized as JSON and can be signed without network connection.
1809
+ *
1810
+ * @providedIn root
1811
+ *
1812
+ * @Component({ ... })
1813
+ * export class SendPage {
1814
+ * private builder = inject(XrplTransactionBuilderService);
1815
+ * private wallet = inject(UnifiedWalletService);
1816
+ *
1817
+ * async sendXrp(to: string, drops: string) {
1818
+ * const from = this.wallet.activeAccount()?.address;
1819
+ * const payload = await this.builder.buildPayment(from!, to, drops);
1820
+ * return this.wallet.submitTransaction({ payload });
1821
+ * }
1822
+ * }
1823
+ * ```
1824
+ */
1825
+ @Injectable({
1826
+ providedIn: 'root',
1827
+ })
1828
+ export class XrplTransactionBuilderService {
1829
+ /**
1830
+ * Builds a Payment transaction (XRP or token).
1831
+ *
1832
+ * @description
1833
+ * Creates a Payment transaction that sends XRP or issued currency tokens
1834
+ * from one account to another. For XRP, the amount is in drops (1 XRP = 1,000,000 drops).
1835
+ *
1836
+ * @param account - Source account address (r...)
1837
+ * @param destination - Destination account address (r...)
1838
+ * @param amount - Amount (XRP in drops, or token value string)
1839
+ * @param isToken - Whether this is a token payment (default: false)
1840
+ * @param currency - Token currency code (required if isToken)
1841
+ * @param issuer - Token issuer address (required if isToken)
1842
+ *
1843
+ * @returns Base64 encoded transaction JSON
1844
+ */
1845
+ async buildPayment(
1846
+ account: string,
1847
+ destination: string,
1848
+ amount: string,
1849
+ isToken = false,
1850
+ currency?: string,
1851
+ issuer?: string,
1852
+ ): Promise&lt;string&gt; {
1853
+ const tx: Payment = {
1854
+ TransactionType: 'Payment',
1855
+ Account: account,
1856
+ Destination: destination,
1857
+ Amount:
1858
+ isToken &amp;&amp; currency &amp;&amp; issuer
1859
+ ? {
1860
+ currency,
1861
+ issuer,
1862
+ value: amount,
1863
+ }
1864
+ : amount,
1865
+ };
1866
+ &nbsp;
1867
+ return this.serializeTransaction(tx);
1868
+ }
1869
+ &nbsp;
1870
+ /**
1871
+ * Builds a TrustSet transaction to establish or modify a trust line.
1872
+ *
1873
+ * @description
1874
+ * Creates a TrustSet transaction that establishes a trust line between
1875
+ * your account and a token issuer. Trust lines are required before you
1876
+ * can hold issued currency tokens on XRPL.
1877
+ *
1878
+ * @param account - Your account address (r...)
1879
+ * @param currency - Currency code (e.g., 'USD', 'EUR', or hex code)
1880
+ * @param issuer - Token issuer address (r...)
1881
+ * @param limit - Maximum amount willing to hold (e.g., '1000000')
1882
+ *
1883
+ * @returns Base64 encoded transaction JSON
1884
+ */
1885
+ async buildTrustSet(
1886
+ account: string,
1887
+ currency: string,
1888
+ issuer: string,
1889
+ limit: string,
1890
+ ): Promise&lt;string&gt; {
1891
+ const tx: TrustSet = {
1892
+ TransactionType: 'TrustSet',
1893
+ Account: account,
1894
+ LimitAmount: {
1895
+ currency,
1896
+ issuer,
1897
+ value: limit,
1898
+ },
1899
+ };
1900
+ &nbsp;
1901
+ return this.serializeTransaction(tx);
1902
+ }
1903
+ &nbsp;
1904
+ /**
1905
+ * Build an OfferCreate transaction (DEX order)
1906
+ * @param account - Account address
1907
+ * @param takerPays - What taker pays (amount object or XRP drops)
1908
+ * @param takerGets - What taker gets (amount object or XRP drops)
1909
+ * @returns Base64 encoded transaction
1910
+ */
1911
+ async buildOfferCreate(
1912
+ account: string,
1913
+ takerPays: string | { currency: string; issuer: string; value: string },
1914
+ takerGets: string | { currency: string; issuer: string; value: string },
1915
+ ): Promise&lt;string&gt; {
1916
+ const tx: OfferCreate = {
1917
+ TransactionType: 'OfferCreate',
1918
+ Account: account,
1919
+ TakerPays: takerPays,
1920
+ TakerGets: takerGets,
1921
+ };
1922
+ &nbsp;
1923
+ return this.serializeTransaction(tx);
1924
+ }
1925
+ &nbsp;
1926
+ /**
1927
+ * Build an OfferCancel transaction
1928
+ * @param account - Account address
1929
+ * @param offerSequence - Sequence number of the offer to cancel
1930
+ * @returns Base64 encoded transaction
1931
+ */
1932
+ async buildOfferCancel(account: string, offerSequence: number): Promise&lt;string&gt; {
1933
+ const tx: OfferCancel = {
1934
+ TransactionType: 'OfferCancel',
1935
+ Account: account,
1936
+ OfferSequence: offerSequence,
1937
+ };
1938
+ &nbsp;
1939
+ return this.serializeTransaction(tx);
1940
+ }
1941
+ &nbsp;
1942
+ /**
1943
+ * Build an AccountSet transaction
1944
+ * @param account - Account address
1945
+ * @param options - Account set options (domain, emailHash, flags, etc.)
1946
+ * @param options.domain
1947
+ * @param options.emailHash
1948
+ * @param options.messageKey
1949
+ * @param options.transferRate
1950
+ * @param options.tickSize
1951
+ * @param options.setFlag
1952
+ * @param options.clearFlag
1953
+ * @returns Base64 encoded transaction
1954
+ */
1955
+ async buildAccountSet(
1956
+ account: string,
1957
+ options: {
1958
+ domain?: string;
1959
+ emailHash?: string;
1960
+ messageKey?: string;
1961
+ transferRate?: number;
1962
+ tickSize?: number;
1963
+ setFlag?: number;
1964
+ clearFlag?: number;
1965
+ },
1966
+ ): Promise&lt;string&gt; {
1967
+ const tx: AccountSet = {
1968
+ TransactionType: 'AccountSet',
1969
+ Account: account,
1970
+ ...options,
1971
+ };
1972
+ &nbsp;
1973
+ return this.serializeTransaction(tx);
1974
+ }
1975
+ &nbsp;
1976
+ /**
1977
+ * Build an EscrowCreate transaction
1978
+ * @param account - Account address
1979
+ * @param destination - Destination account
1980
+ * @param amount - Amount in drops
1981
+ * @param finishAfter - Ripple Epoch (seconds since 2000-01-01 UTC). Callers
1982
+ * that hold Unix timestamps must convert first; an unmodified Unix value
1983
+ * would put the escrow ~30 years in the future. The XRPL Time Utilities
1984
+ * in `xrpl.js` expose helpers, or compute as `unixSeconds - 946684800`.
1985
+ * @param cancelAfter - Optional. Same Ripple Epoch contract as finishAfter.
1986
+ * @returns Base64 encoded transaction
1987
+ */
1988
+ async buildEscrowCreate(
1989
+ account: string,
1990
+ destination: string,
1991
+ amount: string,
1992
+ finishAfter: number,
1993
+ cancelAfter?: number,
1994
+ ): Promise&lt;string&gt; {
1995
+ const tx: EscrowCreate = {
1996
+ TransactionType: 'EscrowCreate',
1997
+ Account: account,
1998
+ Destination: destination,
1999
+ Amount: amount,
2000
+ FinishAfter: finishAfter,
2001
+ ...(cancelAfter &amp;&amp; { CancelAfter: cancelAfter }),
2002
+ };
2003
+ &nbsp;
2004
+ return this.serializeTransaction(tx);
2005
+ }
2006
+ &nbsp;
2007
+ /**
2008
+ * Build an EscrowFinish transaction
2009
+ * @param account - Account address
2010
+ * @param owner - Escrow owner account
2011
+ * @param offerSequence - Sequence number of EscrowCreate transaction
2012
+ * @returns Base64 encoded transaction
2013
+ */
2014
+ async buildEscrowFinish(account: string, owner: string, offerSequence: number): Promise&lt;string&gt; {
2015
+ const tx: EscrowFinish = {
2016
+ TransactionType: 'EscrowFinish',
2017
+ Account: account,
2018
+ Owner: owner,
2019
+ OfferSequence: offerSequence,
2020
+ };
2021
+ &nbsp;
2022
+ return this.serializeTransaction(tx);
2023
+ }
2024
+ &nbsp;
2025
+ /**
2026
+ * Build an EscrowCancel transaction
2027
+ * @param account - Account address
2028
+ * @param owner - Escrow owner account
2029
+ * @param offerSequence - Sequence number of EscrowCreate transaction
2030
+ * @returns Base64 encoded transaction
2031
+ */
2032
+ async buildEscrowCancel(account: string, owner: string, offerSequence: number): Promise&lt;string&gt; {
2033
+ const tx: EscrowCancel = {
2034
+ TransactionType: 'EscrowCancel',
2035
+ Account: account,
2036
+ Owner: owner,
2037
+ OfferSequence: offerSequence,
2038
+ };
2039
+ &nbsp;
2040
+ return this.serializeTransaction(tx);
2041
+ }
2042
+ &nbsp;
2043
+ /**
2044
+ * Build a PaymentChannelCreate transaction
2045
+ * @param account - Account address
2046
+ * @param destination - Destination account
2047
+ * @param amount - Amount in drops
2048
+ * @param settleDelay - Settle delay in seconds
2049
+ * @param publicKey - Public key for channel
2050
+ * @returns Base64 encoded transaction
2051
+ */
2052
+ async buildPaymentChannelCreate(
2053
+ account: string,
2054
+ destination: string,
2055
+ amount: string,
2056
+ settleDelay: number,
2057
+ publicKey: string,
2058
+ ): Promise&lt;string&gt; {
2059
+ const tx: PaymentChannelCreate = {
2060
+ TransactionType: 'PaymentChannelCreate',
2061
+ Account: account,
2062
+ Destination: destination,
2063
+ Amount: amount,
2064
+ SettleDelay: settleDelay,
2065
+ PublicKey: publicKey,
2066
+ };
2067
+ &nbsp;
2068
+ return this.serializeTransaction(tx);
2069
+ }
2070
+ &nbsp;
2071
+ /**
2072
+ * Build a PaymentChannelFund transaction
2073
+ * @param account - Account address
2074
+ * @param channel - Channel ID
2075
+ * @param amount - Amount in drops to add
2076
+ * @returns Base64 encoded transaction
2077
+ */
2078
+ async buildPaymentChannelFund(account: string, channel: string, amount: string): Promise&lt;string&gt; {
2079
+ const tx: PaymentChannelFund = {
2080
+ TransactionType: 'PaymentChannelFund',
2081
+ Account: account,
2082
+ Channel: channel,
2083
+ Amount: amount,
2084
+ };
2085
+ &nbsp;
2086
+ return this.serializeTransaction(tx);
2087
+ }
2088
+ &nbsp;
2089
+ /**
2090
+ * Build a PaymentChannelClaim transaction
2091
+ * @param account - Account address
2092
+ * @param channel - Channel ID
2093
+ * @param amount - Amount in drops to claim
2094
+ * @returns Base64 encoded transaction
2095
+ */
2096
+ async buildPaymentChannelClaim(
2097
+ account: string,
2098
+ channel: string,
2099
+ amount?: string,
2100
+ ): Promise&lt;string&gt; {
2101
+ const tx: PaymentChannelClaim = {
2102
+ TransactionType: 'PaymentChannelClaim',
2103
+ Account: account,
2104
+ Channel: channel,
2105
+ ...(amount &amp;&amp; { Amount: amount }),
2106
+ };
2107
+ &nbsp;
2108
+ return this.serializeTransaction(tx);
2109
+ }
2110
+ &nbsp;
2111
+ /**
2112
+ * Build a CheckCreate transaction
2113
+ * @param account - Account address
2114
+ * @param destination - Destination account
2115
+ * @param sendMax - Maximum amount that can be cashed
2116
+ * @returns Base64 encoded transaction
2117
+ */
2118
+ async buildCheckCreate(account: string, destination: string, sendMax: string): Promise&lt;string&gt; {
2119
+ const tx: CheckCreate = {
2120
+ TransactionType: 'CheckCreate',
2121
+ Account: account,
2122
+ Destination: destination,
2123
+ SendMax: sendMax,
2124
+ };
2125
+ &nbsp;
2126
+ return this.serializeTransaction(tx);
2127
+ }
2128
+ &nbsp;
2129
+ /**
2130
+ * Build a CheckCash transaction
2131
+ * @param account - Account address
2132
+ * @param checkID - Check ID to cash
2133
+ * @param amount - Amount to cash (optional, uses DeliverMin if not provided)
2134
+ * @param deliverMin - Minimum amount to deliver (optional)
2135
+ * @returns Base64 encoded transaction
2136
+ */
2137
+ async buildCheckCash(
2138
+ account: string,
2139
+ checkID: string,
2140
+ amount?: string,
2141
+ deliverMin?: string,
2142
+ ): Promise&lt;string&gt; {
2143
+ const tx: CheckCash = {
2144
+ TransactionType: 'CheckCash',
2145
+ Account: account,
2146
+ CheckID: checkID,
2147
+ ...(amount &amp;&amp; { Amount: amount }),
2148
+ ...(deliverMin &amp;&amp; { DeliverMin: deliverMin }),
2149
+ };
2150
+ &nbsp;
2151
+ return this.serializeTransaction(tx);
2152
+ }
2153
+ &nbsp;
2154
+ /**
2155
+ * Build a CheckCancel transaction
2156
+ * @param account - Account address
2157
+ * @param checkID - Check ID to cancel
2158
+ * @returns Base64 encoded transaction
2159
+ */
2160
+ async buildCheckCancel(account: string, checkID: string): Promise&lt;string&gt; {
2161
+ const tx: CheckCancel = {
2162
+ TransactionType: 'CheckCancel',
2163
+ Account: account,
2164
+ CheckID: checkID,
2165
+ };
2166
+ &nbsp;
2167
+ return this.serializeTransaction(tx);
2168
+ }
2169
+ &nbsp;
2170
+ /**
2171
+ * Build a DepositPreauth transaction
2172
+ * @param account - Account address
2173
+ * @param authorize - Account to preauthorize (optional)
2174
+ * @param unauthorize - Account to remove authorization (optional)
2175
+ * @returns Base64 encoded transaction
2176
+ */
2177
+ async buildDepositPreauth(
2178
+ account: string,
2179
+ authorize?: string,
2180
+ unauthorize?: string,
2181
+ ): Promise&lt;string&gt; {
2182
+ const tx: DepositPreauth = {
2183
+ TransactionType: 'DepositPreauth',
2184
+ Account: account,
2185
+ ...(authorize &amp;&amp; { Authorize: authorize }),
2186
+ ...(unauthorize &amp;&amp; { Unauthorize: unauthorize }),
2187
+ };
2188
+ &nbsp;
2189
+ return this.serializeTransaction(tx);
2190
+ }
2191
+ &nbsp;
2192
+ /**
2193
+ * Build a SignerListSet transaction
2194
+ * @param account - Account address
2195
+ * @param signerQuorum - Required signature weight
2196
+ * @param signerEntries - Array of signer entries
2197
+ * @returns Base64 encoded transaction
2198
+ */
2199
+ async buildSignerListSet(
2200
+ account: string,
2201
+ signerQuorum: number,
2202
+ signerEntries: Array&lt;{ account: string; weight: number }&gt;,
2203
+ ): Promise&lt;string&gt; {
2204
+ const tx: SignerListSet = {
2205
+ TransactionType: 'SignerListSet',
2206
+ Account: account,
2207
+ SignerQuorum: signerQuorum,
2208
+ SignerEntries: signerEntries.map((entry) =&gt; ({
2209
+ SignerEntry: {
2210
+ Account: entry.account,
2211
+ SignerWeight: entry.weight,
2212
+ },
2213
+ })),
2214
+ };
2215
+ &nbsp;
2216
+ return this.serializeTransaction(tx);
2217
+ }
2218
+ &nbsp;
2219
+ /**
2220
+ * Build a TicketCreate transaction
2221
+ * @param account - Account address
2222
+ * @param ticketCount - Number of tickets to create
2223
+ * @returns Base64 encoded transaction
2224
+ */
2225
+ async buildTicketCreate(account: string, ticketCount: number): Promise&lt;string&gt; {
2226
+ const tx: TicketCreate = {
2227
+ TransactionType: 'TicketCreate',
2228
+ Account: account,
2229
+ TicketCount: ticketCount,
2230
+ };
2231
+ &nbsp;
2232
+ return this.serializeTransaction(tx);
2233
+ }
2234
+ &nbsp;
2235
+ /**
2236
+ * Build an NFTokenMint transaction
2237
+ * @param account - Account address
2238
+ * @param uri - NFT URI (hex encoded)
2239
+ * @param flags - NFT flags
2240
+ * @param transferFee - Transfer fee in basis points
2241
+ * @param taxon - NFT taxon
2242
+ * @returns Base64 encoded transaction
2243
+ */
2244
+ async buildNFTMint(
2245
+ account: string,
2246
+ uri: string,
2247
+ flags: number,
2248
+ transferFee: number,
2249
+ taxon: number,
2250
+ ): Promise&lt;string&gt; {
2251
+ const tx: NFTokenMint = {
2252
+ TransactionType: 'NFTokenMint',
2253
+ Account: account,
2254
+ URI: uri,
2255
+ Flags: flags,
2256
+ TransferFee: transferFee,
2257
+ NFTokenTaxon: taxon,
2258
+ };
2259
+ &nbsp;
2260
+ return this.serializeTransaction(tx);
2261
+ }
2262
+ &nbsp;
2263
+ /**
2264
+ * Build an NFTokenBurn transaction
2265
+ * @param account - Account address
2266
+ * @param nftokenID - NFT ID to burn
2267
+ * @returns Base64 encoded transaction
2268
+ */
2269
+ async buildNFTBurn(account: string, nftokenID: string): Promise&lt;string&gt; {
2270
+ const tx: NFTokenBurn = {
2271
+ TransactionType: 'NFTokenBurn',
2272
+ Account: account,
2273
+ NFTokenID: nftokenID,
2274
+ };
2275
+ &nbsp;
2276
+ return this.serializeTransaction(tx);
2277
+ }
2278
+ &nbsp;
2279
+ /**
2280
+ * Build an NFTokenCreateOffer transaction
2281
+ * @param account - Account address
2282
+ * @param nftokenID - NFT ID
2283
+ * @param amount - Offer amount
2284
+ * @param flags - Offer flags (1=sell, 0=buy)
2285
+ * @param destination - Optional destination account
2286
+ * @returns Base64 encoded transaction
2287
+ */
2288
+ async buildNFTCreateOffer(
2289
+ account: string,
2290
+ nftokenID: string,
2291
+ amount: string,
2292
+ flags: number,
2293
+ destination?: string,
2294
+ ): Promise&lt;string&gt; {
2295
+ const tx: NFTokenCreateOffer = {
2296
+ TransactionType: 'NFTokenCreateOffer',
2297
+ Account: account,
2298
+ NFTokenID: nftokenID,
2299
+ Amount: amount,
2300
+ Flags: flags,
2301
+ ...(destination &amp;&amp; { Destination: destination }),
2302
+ };
2303
+ &nbsp;
2304
+ return this.serializeTransaction(tx);
2305
+ }
2306
+ &nbsp;
2307
+ /**
2308
+ * Build an NFTokenAcceptOffer transaction
2309
+ * @param account - Account address
2310
+ * @param nftokenSellOffer - Sell offer ID (optional)
2311
+ * @param nftokenBuyOffer - Buy offer ID (optional)
2312
+ * @returns Base64 encoded transaction
2313
+ */
2314
+ async buildNFTAcceptOffer(
2315
+ account: string,
2316
+ nftokenSellOffer?: string,
2317
+ nftokenBuyOffer?: string,
2318
+ ): Promise&lt;string&gt; {
2319
+ const tx: NFTokenAcceptOffer = {
2320
+ TransactionType: 'NFTokenAcceptOffer',
2321
+ Account: account,
2322
+ ...(nftokenSellOffer &amp;&amp; { NFTokenSellOffer: nftokenSellOffer }),
2323
+ ...(nftokenBuyOffer &amp;&amp; { NFTokenBuyOffer: nftokenBuyOffer }),
2324
+ };
2325
+ &nbsp;
2326
+ return this.serializeTransaction(tx);
2327
+ }
2328
+ &nbsp;
2329
+ /**
2330
+ * Build an NFTokenCancelOffer transaction
2331
+ * @param account - Account address
2332
+ * @param nftokenOffers - Array of offer IDs to cancel
2333
+ * @returns Base64 encoded transaction
2334
+ */
2335
+ async buildNFTCancelOffer(account: string, nftokenOffers: string[]): Promise&lt;string&gt; {
2336
+ const tx: NFTokenCancelOffer = {
2337
+ TransactionType: 'NFTokenCancelOffer',
2338
+ Account: account,
2339
+ NFTokenOffers: nftokenOffers,
2340
+ };
2341
+ &nbsp;
2342
+ return this.serializeTransaction(tx);
2343
+ }
2344
+ &nbsp;
2345
+ /**
2346
+ * Build a Batch transaction with multiple inner transactions
2347
+ * @param account - Account executing the batch
2348
+ * @param innerTransactions - Array of transaction descriptors
2349
+ * @returns Base64 encoded batch transaction JSON
2350
+ */
2351
+ async buildBatchTransaction(
2352
+ account: string,
2353
+ innerTransactions: Array&lt;{
2354
+ type: 'payment' | 'trust-set' | 'nft-mint';
2355
+ destination?: string;
2356
+ amount?: string;
2357
+ currency?: string;
2358
+ issuer?: string;
2359
+ }&gt;,
2360
+ ): Promise&lt;string&gt; {
2361
+ const tfInnerBatchTxn = 1073741824;
2362
+ const tfAllOrNothing = 65536;
2363
+ &nbsp;
2364
+ const rawTransactions = innerTransactions.map((tx, index) =&gt; {
2365
+ let innerTx: any;
2366
+ &nbsp;
2367
+ switch (tx.type) {
2368
+ case 'payment':
2369
+ innerTx = {
2370
+ TransactionType: 'Payment',
2371
+ Flags: tfInnerBatchTxn,
2372
+ Account: account,
2373
+ Destination: tx.<span class="branch-0 cbranch-no" title="branch not covered" >destination || '',</span>
2374
+ Amount: tx.<span class="branch-0 cbranch-no" title="branch not covered" >amount || '1000000',</span>
2375
+ Fee: '0',
2376
+ Sequence: index + 1,
2377
+ SigningPubKey: '',
2378
+ };
2379
+ &nbsp;
2380
+ if (tx.currency &amp;&amp; tx.issuer) {
2381
+ innerTx.Amount = {
2382
+ currency: tx.currency,
2383
+ issuer: tx.issuer,
2384
+ value: tx.<span class="branch-0 cbranch-no" title="branch not covered" >amount || '1',</span>
2385
+ };
2386
+ }
2387
+ break;
2388
+ &nbsp;
2389
+ case 'trust-set':
2390
+ innerTx = {
2391
+ TransactionType: 'TrustSet',
2392
+ Flags: tfInnerBatchTxn,
2393
+ Account: account,
2394
+ LimitAmount: {
2395
+ currency: tx.<span class="branch-0 cbranch-no" title="branch not covered" >currency || 'USD',</span>
2396
+ issuer: tx.<span class="branch-0 cbranch-no" title="branch not covered" >issuer || '',</span>
2397
+ value: tx.<span class="branch-0 cbranch-no" title="branch not covered" >amount || '1000000',</span>
2398
+ },
2399
+ Fee: '0',
2400
+ Sequence: index + 1,
2401
+ SigningPubKey: '',
2402
+ };
2403
+ break;
2404
+ &nbsp;
2405
+ case 'nft-mint':
2406
+ innerTx = {
2407
+ TransactionType: 'NFTokenMint',
2408
+ Flags: tfInnerBatchTxn,
2409
+ Account: account,
2410
+ NFTokenTaxon: 0,
2411
+ Fee: '0',
2412
+ Sequence: index + 1,
2413
+ SigningPubKey: '',
2414
+ };
2415
+ break;
2416
+ &nbsp;
2417
+ default:
2418
+ innerTx = {
2419
+ TransactionType: 'Payment',
2420
+ Flags: tfInnerBatchTxn,
2421
+ Account: account,
2422
+ Destination: account,
2423
+ Amount: '1',
2424
+ Fee: '0',
2425
+ Sequence: index + 1,
2426
+ SigningPubKey: '',
2427
+ };
2428
+ }
2429
+ &nbsp;
2430
+ return { RawTransaction: innerTx };
2431
+ });
2432
+ &nbsp;
2433
+ const batchTx = {
2434
+ TransactionType: 'Batch',
2435
+ Account: account,
2436
+ Flags: tfAllOrNothing,
2437
+ RawTransactions: rawTransactions,
2438
+ };
2439
+ &nbsp;
2440
+ return this.serializeTransaction(batchTx as any);
2441
+ }
2442
+ &nbsp;
2443
+ /**
2444
+ * Build inner transactions for batch (unsigned, with batch flags set)
2445
+ * @param account - Account executing the batch
2446
+ * @param innerTransactions - Array of transaction descriptors
2447
+ * @returns Array of base64 encoded unsigned inner transactions
2448
+ */
2449
+ async buildBatchInnerTransactions(
2450
+ account: string,
2451
+ innerTransactions: Array&lt;{
2452
+ type: 'payment' | 'trust-set' | 'nft-mint';
2453
+ destination?: string;
2454
+ amount?: string;
2455
+ currency?: string;
2456
+ issuer?: string;
2457
+ uri?: string;
2458
+ taxon?: number;
2459
+ }&gt;,
2460
+ ): Promise&lt;Array&lt;{ payload: string; description: string }&gt;&gt; {
2461
+ const tfInnerBatchTxn = 1073741824;
2462
+ const results: Array&lt;{ payload: string; description: string }&gt; = [];
2463
+ &nbsp;
2464
+ for (let index = 0; index &lt; innerTransactions.length; index++) {
2465
+ const tx = innerTransactions[index];
2466
+ let innerTx: any;
2467
+ let description: string;
2468
+ &nbsp;
2469
+ switch (tx.type) {
2470
+ case 'payment':
2471
+ if (tx.currency &amp;&amp; tx.issuer) {
2472
+ innerTx = {
2473
+ TransactionType: 'Payment',
2474
+ Flags: tfInnerBatchTxn,
2475
+ Account: account,
2476
+ Destination: tx.<span class="branch-0 cbranch-no" title="branch not covered" >destination || '',</span>
2477
+ Amount: {
2478
+ currency: tx.currency,
2479
+ issuer: tx.issuer,
2480
+ value: tx.<span class="branch-0 cbranch-no" title="branch not covered" >amount || '1',</span>
2481
+ },
2482
+ Fee: '0',
2483
+ Sequence: index + 1,
2484
+ SigningPubKey: '',
2485
+ };
2486
+ description = `Send ${tx.amount} ${tx.currency} to ${tx.destination}`;
2487
+ } else {
2488
+ innerTx = {
2489
+ TransactionType: 'Payment',
2490
+ Flags: tfInnerBatchTxn,
2491
+ Account: account,
2492
+ Destination: tx.<span class="branch-0 cbranch-no" title="branch not covered" >destination || '',</span>
2493
+ Amount: tx.<span class="branch-0 cbranch-no" title="branch not covered" >amount || '1000000',</span>
2494
+ Fee: '0',
2495
+ Sequence: index + 1,
2496
+ SigningPubKey: '',
2497
+ };
2498
+ description = `Send ${Number(tx.<span class="branch-0 cbranch-no" title="branch not covered" >amount || '1000000')</span> / 1000000} XRP to ${tx.destination}`;
2499
+ }
2500
+ break;
2501
+ &nbsp;
2502
+ case 'trust-set':
2503
+ innerTx = {
2504
+ TransactionType: 'TrustSet',
2505
+ Flags: tfInnerBatchTxn,
2506
+ Account: account,
2507
+ LimitAmount: {
2508
+ currency: tx.<span class="branch-0 cbranch-no" title="branch not covered" >currency || 'USD',</span>
2509
+ issuer: tx.<span class="branch-0 cbranch-no" title="branch not covered" >issuer || '',</span>
2510
+ value: tx.amount || '1000000',
2511
+ },
2512
+ Fee: '0',
2513
+ Sequence: index + 1,
2514
+ SigningPubKey: '',
2515
+ };
2516
+ description = `Set trust line for ${tx.currency} (${tx.amount})`;
2517
+ break;
2518
+ &nbsp;
2519
+ case 'nft-mint':
2520
+ innerTx = {
2521
+ TransactionType: 'NFTokenMint',
2522
+ Flags: tfInnerBatchTxn,
2523
+ Account: account,
2524
+ URI: tx.uri || '',
2525
+ NFTokenTaxon: tx.taxon || 0,
2526
+ Fee: '0',
2527
+ Sequence: index + 1,
2528
+ SigningPubKey: '',
2529
+ };
2530
+ description = `Mint NFT (taxon: ${tx.taxon})`;
2531
+ break;
2532
+ &nbsp;
2533
+ default:
2534
+ throw new Error(`Unknown transaction type: ${(tx as any).type}`);
2535
+ }
2536
+ &nbsp;
2537
+ results.push({
2538
+ payload: btoa(JSON.stringify(innerTx)),
2539
+ description,
2540
+ });
2541
+ }
2542
+ &nbsp;
2543
+ return results;
2544
+ }
2545
+ &nbsp;
2546
+ /**
2547
+ * Serializes a transaction to base64 encoded JSON.
2548
+ *
2549
+ * @description
2550
+ * Converts the transaction object to a JSON string and encodes it as base64.
2551
+ * This format is used for transport to the wallet for signing.
2552
+ *
2553
+ * @param transaction - The XRPL transaction object
2554
+ *
2555
+ * @returns Base64 encoded JSON string
2556
+ */
2557
+ private async serializeTransaction(transaction: Transaction): Promise&lt;string&gt; {
2558
+ const jsonString = JSON.stringify(transaction);
2559
+ return btoa(jsonString);
2560
+ }
2561
+ }
2562
+ &nbsp;</pre></td></tr></table></pre>
2563
+
2564
+ <div class='push'></div><!-- for sticky footer -->
2565
+ </div><!-- /wrapper -->
2566
+ <div class='footer quiet pad2 space-top1 center small'>
2567
+ Code coverage generated by
2568
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2569
+ at 2026-06-02T14:30:38.372Z
2570
+ </div>
2571
+ <script src="../../../prettify.js"></script>
2572
+ <script>
2573
+ window.onload = function () {
2574
+ prettyPrint();
2575
+ };
2576
+ </script>
2577
+ <script src="../../../sorter.js"></script>
2578
+ <script src="../../../block-navigation.js"></script>
2579
+ </body>
2580
+ </html>
2581
+