diff --git a/.github/scripts/folio-run-test.sh b/.github/scripts/folio-run-test.sh index 5ee4abf..ef2344b 100755 --- a/.github/scripts/folio-run-test.sh +++ b/.github/scripts/folio-run-test.sh @@ -90,8 +90,11 @@ expect_argv() { # convicting='{"violations":["submitCommitsOneTransactionPerAction"],"witnesses":{"submitCommitsOneTransactionPerAction":{"reason":"predicate false"}}}' unrelated='{"violations":["newAccountBalanceIsZero"],"witnesses":{"newAccountBalanceIsZero":{"reason":"predicate false"}}}' threw='{"violations":["submitMovesBalanceByAtMostTypedAmount"],"witnesses":{"submitMovesBalanceByAtMostTypedAmount":{"is_error":true,"reason":"TypeError: cannot read text of undefined"}}}' -on_txn='{"route":"AddTransactionScreen","violations":[]}' -off_txn='{"route":"HomeScreen","violations":[]}' +# The spec's `route` extractor, which is what the health gate reads. Only the +# extractors that changed at a step are recorded, hence the prev/curr shape. +on_txn='{"extractor_changes":{"route":{"prev":"ledger","curr":"add-transaction"}},"violations":[]}' +off_txn='{"extractor_changes":{"route":{"prev":null,"curr":"home"}},"violations":[]}' +on_ledger='{"extractor_changes":{"route":{"prev":"home","curr":"ledger"}},"violations":[]}' # --- the flags the calibrated runs were measured with reach the binary -------- @@ -190,11 +193,32 @@ expect_says "healthy run over 2 steps, reached the transaction screen" android-h # a leg that proved nothing, however green the exit code. run android-stalled android 0 <("route"/extract("screen"/' \ + "$spec" > "$work/no-route-spec.ts" +spec_override="$work/no-route-spec.ts" +run drift-route-extractor android 0 none "$work/renamed-route-spec.ts" +spec_override="$work/renamed-route-spec.ts" +run drift-route-key android 0 none "$work/android-early.jsonl" run android-real-stalled android 0 file < "$work/android-early.jsonl" expect_status 1 android-real-stalled -expect_says "never reached AddTransactionScreen over 10 steps" android-real-stalled -expect_says "routes the trace does record: LoginScreen,HomeScreen,AddAccountScreen,LedgerScreen" android-real-stalled +expect_says "never reached the add-transaction route over 10 steps" android-real-stalled +expect_says "routes the trace does record: login, home, add-account, ledger" android-real-stalled if [ "$failed" = 0 ]; then echo "folio-run.sh: ok" diff --git a/.github/scripts/folio-run.sh b/.github/scripts/folio-run.sh index fb3d929..35f88a3 100755 --- a/.github/scripts/folio-run.sh +++ b/.github/scripts/folio-run.sh @@ -25,16 +25,23 @@ summary="${GITHUB_STEP_SUMMARY:-/dev/null}" # proves false is a different finding, and this leg has nothing to say about it. GATED_PROPERTIES="submitMovesBalanceByAtMostTypedAmount,submitCommitsOneTransactionPerAction" +# The route android's health gate needs the run to have reached. This is a key +# of SCREENS in the spec, which is also where the spec's `route` extractor gets +# its answer, so the gate and the app agree on what "on that screen" means. +TRANSACTION_ROUTE="add-transaction" + # A gate is only as good as these names, and nothing else ties them to the spec. # Rename a property there and the classification below matches nothing: ios and # web blame the spec for finding a different bug, and android reclassifies a # real conviction as "judging health only" and stays green. Checked before the # run so a rename costs seconds rather than the whole budget. -SPEC="$spec" GATED="$GATED_PROPERTIES" SELF="$0" python3 - <<'PY' || exit 1 +SPEC="$spec" GATED="$GATED_PROPERTIES" ROUTE="$TRANSACTION_ROUTE" SELF="$0" \ + python3 - <<'PY' || exit 1 import os, re, sys spec_path = os.environ["SPEC"] gated = [name for name in os.environ["GATED"].split(",") if name] +route = os.environ["ROUTE"] try: with open(spec_path, encoding="utf-8") as handle: source = handle.read() @@ -59,6 +66,27 @@ if missing: "cannot be violated and every real conviction would read as a different " "finding. Update GATED_PROPERTIES in %s." % (spec_path, ", ".join(missing), os.environ["SELF"])) + +# The android health gate reads the `route` extractor and asks whether it ever +# reported TRANSACTION_ROUTE. Both names come from the spec, so both are checked +# here: a renamed extractor or a renamed SCREENS key would otherwise make every +# android run report a transaction screen it never failed to reach. +if not re.search(r'extract\s*(?:<[^>]*>)?\s*\(\s*"route"', source): + sys.exit("folio: %s no longer declares extract(\"route\", ...), so the android " + "health gate has nothing to read. Update %s." + % (spec_path, os.environ["SELF"])) + +screens = re.search(r"const\s+SCREENS\s*=\s*\{(.*?)\}", source, re.S) +if screens is None: + sys.exit("folio: %s declares no `const SCREENS = {...}`, so the route the android " + "health gate wants cannot be checked against it" % spec_path) + +routes = set(re.findall(r'["\']?([A-Za-z0-9_-]+)["\']?\s*:', + re.sub(r"//[^\n]*", "", screens.group(1)))) +if route not in routes: + sys.exit("folio: %s SCREENS declares %s, not %r, so the android health gate waits " + "for a route the app never reports. Update TRANSACTION_ROUTE in %s." + % (spec_path, ", ".join(sorted(routes)), route, os.environ["SELF"])) PY folio_args=(--bundle-id app.folio) @@ -148,11 +176,14 @@ steps=0 # line 1 convictions: a gated property that was proved false # line 2 thrown: a predicate that blew up, with the reason it gave # line 3 other: a real violation of some property this leg does not gate on +# line 4 routes: every value the spec's `route` extractor reported, in the +# order it first reported them, which is what android's health gate +# reads instead of grepping the hierarchy dump for a screen marker classified=$(TRACE="$trace" GATED="$GATED_PROPERTIES" python3 - <<'PY' import json, os gated = set(os.environ["GATED"].split(",")) -convictions, thrown, other = [], [], [] +convictions, thrown, other, routes = [], [], [], [] try: lines = open(os.environ["TRACE"], encoding="utf-8", errors="replace") except OSError: @@ -162,6 +193,13 @@ for line in lines: step = json.loads(line) except ValueError: continue + # Only the extractors that changed are recorded, so a route appears at the + # step it was first reached and never again until it changes. + change = (step.get("extractor_changes") or {}).get("route") + if isinstance(change, dict): + value = change.get("curr") + if isinstance(value, str) and value not in routes: + routes.append(value) witnesses = step.get("witnesses") or {} for name in step.get("violations") or []: witness = witnesses.get(name) or {} @@ -172,7 +210,7 @@ for line in lines: convictions.append(name) else: other.append(name) -for names in (convictions, thrown, other): +for names in (convictions, thrown, other, routes): print(", ".join(names)) PY ) || { @@ -182,6 +220,7 @@ PY convicted=$(printf '%s\n' "$classified" | sed -n '1p') thrown=$(printf '%s\n' "$classified" | sed -n '2p') other=$(printf '%s\n' "$classified" | sed -n '3p') +routes=$(printf '%s\n' "$classified" | sed -n '4p') { echo "### folio on $platform" @@ -228,15 +267,16 @@ if [ "$platform" = "android" ]; then ;; *) echo "folio/android: the harness failed with exit $code" >&2; exit "$code" ;; esac - if ! grep -q '"AddTransactionScreen"' "$trace"; then - # Where it stopped is a much longer question than this gate answers, so - # name the routes the trace holds and leave the diagnosis to the reader. - reached=$(grep -oE '"[A-Za-z0-9]+Screen"' "$trace" | tr -d '"' | - awk '!seen[$0]++' | paste -sd, -) || reached="" - echo "folio/android: the run never reached AddTransactionScreen over $steps steps" >&2 - echo "folio/android: routes the trace does record: ${reached:-none}" >&2 - exit 1 - fi + case ", $routes, " in + *", $TRANSACTION_ROUTE, "*) ;; + *) + # Where it stopped is a much longer question than this gate answers, so + # name the routes the trace holds and leave the diagnosis to the reader. + echo "folio/android: the run never reached the $TRANSACTION_ROUTE route over $steps steps" >&2 + echo "folio/android: routes the trace does record: ${routes:-none}" >&2 + exit 1 + ;; + esac echo "folio/android: healthy run over $steps steps, reached the transaction screen" exit 0 fi diff --git a/.github/scripts/testdata/folio-android-healthy.jsonl b/.github/scripts/testdata/folio-android-healthy.jsonl index 5e882a9..aeedd4d 100644 --- a/.github/scripts/testdata/folio-android-healthy.jsonl +++ b/.github/scripts/testdata/folio-android-healthy.jsonl @@ -1,200 +1,200 @@ -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":1} -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":2} -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":3} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":4} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":5} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":6} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":7} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":8} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":9} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":10} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":11} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":12} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":13} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":14} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":15} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":16} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":17} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":18} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":19} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":20} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":21} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":22} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":23} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":24} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":25} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":26} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":27} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":28} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":29} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":30} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":31} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":32} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":33} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":34} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":35} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":36} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":37} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":38} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":39} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":40} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":41} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":42} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":43} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":44} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":45} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":46} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":47} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":48} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":49} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":50} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":51} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":52} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":53} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":54} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":55} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":56} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":57} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":58} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":59} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":60} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":61} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":62} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":63} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":64} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":65} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":66} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":67} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":68} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":69} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":70} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":71} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":72} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":73} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":74} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":75} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":76} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":77} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":78} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":79} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":80} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":81} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":82} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":83} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":84} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":85} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":86} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":87} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":88} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":89} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":90} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":91} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":92} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":93} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":94} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":95} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":96} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":97} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":98} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":99} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":100} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":101} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":102} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":103} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":104} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":105} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":106} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":107} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":108} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":109} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":110} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":111} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":112} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":113} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":114} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":115} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":116} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":117} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":118} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":119} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":120} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":121} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":122} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":123} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":124} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":125} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":126} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":127} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":128} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":129} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":130} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":131} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":132} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":133} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":134} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":135} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":136} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":137} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":138} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":139} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":140} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":141} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":142} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":143} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":144} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":145} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":146} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":147} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":148} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":149} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":150} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":151} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":152} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":153} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":154} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":155} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":156} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":157} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":158} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":159} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":160} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":161} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":162} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":163} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":164} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":165} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":166} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":167} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":168} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":169} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":170} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":171} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":172} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":173} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":174} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":175} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":176} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":177} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":178} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":179} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":180} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":181} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":182} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":183} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":184} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":185} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":186} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":187} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":188} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":189} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":190} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":191} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":192} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":193} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":194} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":195} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":196} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":197} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":198} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":199} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":200} +{"extractor_changes":{"route":{"curr":"login","prev":null}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":1} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":2} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":3} +{"extractor_changes":{"route":{"curr":"home","prev":"login"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":4} +{"extractor_changes":{"route":{"curr":"add-account","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":5} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":6} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":7} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":8} +{"extractor_changes":{"route":{"curr":"home","prev":"add-account"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":9} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":10} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":11} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":12} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":13} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":14} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":15} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":16} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":17} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":18} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":19} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":20} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":21} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":22} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":23} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":24} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":25} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":26} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":27} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":28} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":29} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":30} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":31} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":32} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":33} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":34} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":35} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":36} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":37} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":38} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":39} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":40} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":41} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":42} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":43} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":44} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":45} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":46} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":47} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":48} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":49} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":50} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":51} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":52} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":53} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":54} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":55} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":56} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":57} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":58} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":59} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":60} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":61} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":62} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":63} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":64} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":65} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":66} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":67} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":68} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":69} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":70} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":71} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":72} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":73} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":74} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":75} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":76} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":77} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":78} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":79} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":80} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":81} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":82} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":83} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":84} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":85} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":86} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":87} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":88} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":89} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":90} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":91} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":92} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":93} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":94} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":95} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":96} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":97} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":98} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":99} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":100} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":101} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":102} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":103} +{"extractor_changes":{"route":{"curr":"home","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":104} +{"extractor_changes":{"route":{"curr":"add-account","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":105} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":106} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":107} +{"extractor_changes":{"route":{"curr":"home","prev":"add-account"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":108} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":109} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":110} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":111} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":112} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":113} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":114} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":115} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":116} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":117} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":118} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":119} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":120} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":121} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":122} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":123} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":124} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":125} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":126} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":127} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":128} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":129} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":130} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":131} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":132} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":133} +{"extractor_changes":{"route":{"curr":"home","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":134} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":135} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":136} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":137} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":138} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":139} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":140} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":141} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":142} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":143} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":144} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":145} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":146} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":147} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":148} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":149} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":150} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":151} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":152} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":153} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":154} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":155} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":156} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":157} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":158} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":159} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":160} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":161} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":162} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":163} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":164} +{"extractor_changes":{"route":{"curr":"home","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":165} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":166} +{"extractor_changes":{"route":{"curr":"home","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":167} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":168} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":169} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":170} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":171} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":172} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":173} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":174} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":175} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":176} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":177} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":178} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":179} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":180} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":181} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":182} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":183} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":184} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":185} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":186} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":187} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":188} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":189} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":190} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":191} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":192} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":193} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":194} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":195} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":196} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":197} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":198} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":199} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":200} diff --git a/.github/scripts/testdata/folio-ios-convicted.jsonl b/.github/scripts/testdata/folio-ios-convicted.jsonl index 7796172..2c4acee 100644 --- a/.github/scripts/testdata/folio-ios-convicted.jsonl +++ b/.github/scripts/testdata/folio-ios-convicted.jsonl @@ -1,49 +1,49 @@ -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":1} -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":2} -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":3} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":4} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":5} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":6} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":7} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":8} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":9} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":10} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":11} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":12} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":13} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":14} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":15} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":16} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":17} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":18} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":19} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":20} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":21} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":22} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":23} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":24} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":25} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":26} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":27} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":28} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":29} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":30} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":31} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":32} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":33} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":34} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":35} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":36} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":37} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":38} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":39} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":40} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":41} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":42} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":43} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":44} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":45} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":46} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":47} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":48} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"op":"false"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":49,"violations":["submitCommitsOneTransactionPerAction"],"witnesses":{"submitCommitsOneTransactionPerAction":{"detected_step":49,"extractors":{"accountBalance":null,"accountCards":[{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"accessibilityText":"SA, Savings, $1,888.00, 7 transactions","bounds":"[20,130][382,202]","class":"Button","clickable":"true","editable":"false","enabled":"true","identifier":"AccountCard"},"bounds":{"bottom":202,"left":20,"right":382,"top":130},"checked":false,"class":"Button","clickable":true,"desc":"SA, Savings, $1,888.00, 7 transactions","editable":false,"enabled":true,"focused":false,"id":"AccountCard","selected":false,"text":"","x":201,"y":166}],"accountNameField":null,"accounts":[{"balance":188800,"name":"Savings"}],"addAccountButton":{"__sanderlingSelector":"testTag:HomeScreen > testTag:AddAccountButton","attrs":{"accessibilityText":"+ Add account","bounds":"[20,777][382,825]","class":"Button","clickable":"true","editable":"false","enabled":"true","identifier":"AddAccountButton"},"bounds":{"bottom":825,"left":20,"right":382,"top":777},"checked":false,"class":"Button","clickable":true,"desc":"+ Add account","editable":false,"enabled":true,"focused":false,"id":"AddAccountButton","selected":false,"text":"","x":201,"y":801},"addAccountSubmit":null,"addTxnButton":null,"extractor_0":0,"extractor_1":0,"homeTxnCounts":{"Savings":7},"lastAction":{"applied":true,"kind":"DoubleTap","on":"id:TxnSubmit","relaunched":null},"loggedIn":true,"loginEmailField":null,"loginPasswordField":null,"loginSubmit":null,"route":"home","submitsInWindow":6,"submitsSinceAccountBalance":1,"submitsSinceCounts":6,"totalBalance":188800,"txnAmountField":null,"txnSubmit":null},"reason":"predicate false","step":48}}} +{"extractor_changes":{"route":{"curr":"login","prev":null}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":1} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":2} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":3} +{"extractor_changes":{"route":{"curr":"home","prev":"login"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":4} +{"extractor_changes":{"route":{"curr":"add-account","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":5} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":6} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":7} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":8} +{"extractor_changes":{"route":{"curr":"home","prev":"add-account"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":9} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":10} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":11} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":12} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":13} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":14} +{"extractor_changes":{"route":{"curr":"home","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":15} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":16} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":17} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":18} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":19} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":20} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":21} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":22} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":23} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":24} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":25} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":26} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":27} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":28} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":29} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":30} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":31} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":32} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":33} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":34} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":35} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":36} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":37} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":38} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":39} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":40} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":41} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":42} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":43} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":44} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":45} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":46} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":47} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":48} +{"extractor_changes":{"route":{"curr":"home","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"op":"false"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":49,"violations":["submitCommitsOneTransactionPerAction"],"witnesses":{"submitCommitsOneTransactionPerAction":{"detected_step":49,"extractors":{"accountBalance":null,"accountCards":[{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"accessibilityText":"SA, Savings, $1,888.00, 7 transactions","bounds":"[20,130][382,202]","class":"Button","clickable":"true","editable":"false","enabled":"true","identifier":"AccountCard"},"bounds":{"bottom":202,"left":20,"right":382,"top":130},"checked":false,"class":"Button","clickable":true,"desc":"SA, Savings, $1,888.00, 7 transactions","editable":false,"enabled":true,"focused":false,"id":"AccountCard","selected":false,"text":"","x":201,"y":166}],"accountNameField":null,"accounts":[{"balance":188800,"name":"Savings"}],"addAccountButton":{"__sanderlingSelector":"testTag:HomeScreen > testTag:AddAccountButton","attrs":{"accessibilityText":"+ Add account","bounds":"[20,777][382,825]","class":"Button","clickable":"true","editable":"false","enabled":"true","identifier":"AddAccountButton"},"bounds":{"bottom":825,"left":20,"right":382,"top":777},"checked":false,"class":"Button","clickable":true,"desc":"+ Add account","editable":false,"enabled":true,"focused":false,"id":"AddAccountButton","selected":false,"text":"","x":201,"y":801},"addAccountSubmit":null,"addTxnButton":null,"extractor_0":0,"extractor_1":0,"homeTxnCounts":{"Savings":7},"lastAction":{"applied":true,"kind":"DoubleTap","on":"id:TxnSubmit","relaunched":null},"loggedIn":true,"loginEmailField":null,"loginPasswordField":null,"loginSubmit":null,"route":"home","submitsInWindow":6,"submitsSinceAccountBalance":1,"submitsSinceCounts":6,"totalBalance":188800,"txnAmountField":null,"txnSubmit":null},"reason":"predicate false","step":48}}} diff --git a/.github/scripts/testdata/folio-web-convicted.jsonl b/.github/scripts/testdata/folio-web-convicted.jsonl index 5896eab..e1ff502 100644 --- a/.github/scripts/testdata/folio-web-convicted.jsonl +++ b/.github/scripts/testdata/folio-web-convicted.jsonl @@ -1,184 +1,184 @@ {"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":1} {"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":2} -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":3} -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":4} -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":5} -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":6} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":7} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":8} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":9} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":10} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":11} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen","HomeScreen","HomeScreen","AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":12} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":13} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":14} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen","LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":15} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":16} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":17} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":18} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":19} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":20} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":21} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":22} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":23} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":24} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":25} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":26} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":27} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":28} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen","LedgerScreen","LedgerScreen","AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":29} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":30} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":31} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":32} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":33} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":34} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":35} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":36} -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":37} -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":38} -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":39} -{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":40} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":41} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":42} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":43} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":44} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":45} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":46} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":47} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen","HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":48} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen","LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":49} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":50} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":51} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":52} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":53} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":54} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":55} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":56} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":57} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":58} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":59} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":60} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":61} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":62} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":63} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":64} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":65} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen","AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":66} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":67} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":68} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen","LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":69} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen","LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":70} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":71} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":72} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":73} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":74} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":75} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":76} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":77} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen","LedgerScreen","LedgerScreen","AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":78} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":79} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":80} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":81} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":82} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":83} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":84} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":85} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":86} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":87} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":88} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":89} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":90} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":91} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":92} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":93} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":94} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":95} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":96} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":97} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen","AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":98} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":99} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":100} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":101} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":102} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":103} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":104} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen","AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":105} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":106} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":107} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":108} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen","LedgerScreen","LedgerScreen","AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":109} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":110} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":111} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":112} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":113} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen","AddAccountScreen","AddAccountScreen","HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":114} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":115} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":116} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":117} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":118} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":119} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":120} -{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":121} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":122} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":123} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":124} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":125} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":126} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":127} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":128} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":129} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":130} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":131} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":132} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":133} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":134} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":135} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":136} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":137} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":138} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":139} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":140} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":141} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":142} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":143} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":144} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":145} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen","LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":146} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":147} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":148} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":149} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":150} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":151} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":152} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":153} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":154} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":155} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":156} -{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":157} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":158} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":159} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":160} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":161} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":162} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":163} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":164} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":165} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":166} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":167} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":168} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":169} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":170} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":171} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":172} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":173} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":174} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":175} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":176} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":177} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":178} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":179} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen","LedgerScreen","LedgerScreen","AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":180} -{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":181} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":182} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":183} -{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"op":"false"},"submitMovesBalanceByAtMostTypedAmount":{"op":"false"}},"step":184,"violations":["submitCommitsOneTransactionPerAction","submitMovesBalanceByAtMostTypedAmount"],"witnesses":{"submitCommitsOneTransactionPerAction":{"detected_step":184,"extractors":{"accountBalance":null,"accountCards":[{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":139,"left":20,"right":760,"top":67},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AccountCard","text":"NANaN14 transactions$4,579.00","x":390,"y":103},{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":221,"left":20,"right":760,"top":149},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AccountCard","text":"TRTravel3 transactions$801.00","x":390,"y":185},{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":297,"left":20,"right":760,"top":231},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AccountCard","text":"Aa0 transactions$0.00","x":390,"y":264}],"accountNameField":null,"accounts":[{"balance":457900,"name":"NANaN"},{"balance":80100,"name":"TRTravel"},{"balance":0,"name":"Aa"}],"addAccountButton":{"__sanderlingSelector":"testTag:HomeScreen > testTag:AddAccountButton","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":421,"left":20,"right":760,"top":375},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AddAccountButton","text":"+ Add account","x":390,"y":398},"addAccountSubmit":null,"addTxnButton":null,"extractor_0":0,"extractor_1":0,"homeTxnCounts":{"Aa":"0","NANaN":"14","TRTravel":"3"},"lastAction":{"applied":true,"kind":"DoubleTap","on":"id:TxnSubmit","relaunched":null},"loggedIn":true,"loginEmailField":null,"loginPasswordField":null,"loginSubmit":null,"route":"home","submitsInWindow":1,"submitsSinceAccountBalance":1,"submitsSinceCounts":1,"totalBalance":538000,"txnAmountField":null,"txnSubmit":null},"reason":"predicate false","step":183},"submitMovesBalanceByAtMostTypedAmount":{"detected_step":184,"extractors":{"accountBalance":null,"accountCards":[{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":139,"left":20,"right":760,"top":67},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AccountCard","text":"NANaN14 transactions$4,579.00","x":390,"y":103},{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":221,"left":20,"right":760,"top":149},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AccountCard","text":"TRTravel3 transactions$801.00","x":390,"y":185},{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":297,"left":20,"right":760,"top":231},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AccountCard","text":"Aa0 transactions$0.00","x":390,"y":264}],"accountNameField":null,"accounts":[{"balance":457900,"name":"NANaN"},{"balance":80100,"name":"TRTravel"},{"balance":0,"name":"Aa"}],"addAccountButton":{"__sanderlingSelector":"testTag:HomeScreen > testTag:AddAccountButton","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":421,"left":20,"right":760,"top":375},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AddAccountButton","text":"+ Add account","x":390,"y":398},"addAccountSubmit":null,"addTxnButton":null,"extractor_0":0,"extractor_1":0,"homeTxnCounts":{"Aa":"0","NANaN":"14","TRTravel":"3"},"lastAction":{"applied":true,"kind":"DoubleTap","on":"id:TxnSubmit","relaunched":null},"loggedIn":true,"loginEmailField":null,"loginPasswordField":null,"loginSubmit":null,"route":"home","submitsInWindow":1,"submitsSinceAccountBalance":1,"submitsSinceCounts":1,"totalBalance":538000,"txnAmountField":null,"txnSubmit":null},"reason":"predicate false","step":183}}} +{"extractor_changes":{"route":{"curr":"login","prev":null}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":3} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":4} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":5} +{"extractor_changes":{"route":{"curr":"home","prev":"login"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":6} +{"extractor_changes":{"route":{"curr":"add-account","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":7} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":8} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":9} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":10} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":11} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":12} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":13} +{"extractor_changes":{"route":{"curr":"home","prev":"add-account"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":14} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":15} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":16} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":17} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":18} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":19} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":20} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":21} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":22} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":23} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":24} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":25} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":26} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":27} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":28} +{"extractor_changes":{"route":{"curr":"home","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":29} +{"extractor_changes":{"route":{"curr":"add-account","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":30} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":31} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":32} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":33} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":34} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":35} +{"extractor_changes":{"route":{"curr":"home","prev":"add-account"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":36} +{"extractor_changes":{"route":{"curr":"login","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":37} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":38} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":39} +{"extractor_changes":{"route":{"curr":"home","prev":"login"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":40} +{"extractor_changes":{"route":{"curr":"add-account","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":41} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":42} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":43} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":44} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":45} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":46} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":47} +{"extractor_changes":{"route":{"curr":"home","prev":"add-account"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":48} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":49} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":50} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":51} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":52} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":53} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":54} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":55} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":56} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":57} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":58} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":59} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":60} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":61} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":62} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":63} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":64} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":65} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":66} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":67} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":68} +{"extractor_changes":{"route":{"curr":"home","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":69} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":70} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":71} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":72} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":73} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":74} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":75} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":76} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":77} +{"extractor_changes":{"route":{"curr":"home","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":78} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":79} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":80} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":81} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":82} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":83} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":84} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":85} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":86} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":87} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":88} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":89} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":90} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":91} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":92} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":93} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":94} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":95} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":96} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":97} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":98} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":99} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":100} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":101} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":102} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":103} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":104} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":105} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":106} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":107} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":108} +{"extractor_changes":{"route":{"curr":"home","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":109} +{"extractor_changes":{"route":{"curr":"add-account","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":110} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":111} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":112} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":113} +{"extractor_changes":{"route":{"curr":"home","prev":"add-account"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":114} +{"extractor_changes":{"route":{"curr":"add-account","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":115} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":116} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":117} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":118} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":119} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":120} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":121} +{"extractor_changes":{"route":{"curr":"home","prev":"add-account"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":122} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":123} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":124} +{"extractor_changes":{"route":{"curr":"home","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":125} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":126} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":127} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":128} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":129} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":130} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":131} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":132} +{"extractor_changes":{"route":{"curr":"home","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":133} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":134} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":135} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":136} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":137} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":138} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":139} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":140} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":141} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":142} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":143} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":144} +{"extractor_changes":{"route":{"curr":"home","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":145} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":146} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":147} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":148} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":149} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":150} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":151} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":152} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":153} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":154} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":155} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":156} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":157} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":158} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":159} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":160} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":161} +{"extractor_changes":{"route":{"curr":"home","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":162} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":163} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":164} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":165} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":166} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":167} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":168} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":169} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":170} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":171} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":172} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":173} +{"extractor_changes":{"route":{"curr":"ledger","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":174} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":175} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":176} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":177} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":178} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":179} +{"extractor_changes":{"route":{"curr":"home","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":180} +{"extractor_changes":{"route":{"curr":"ledger","prev":"home"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":181} +{"extractor_changes":{"route":{"curr":"add-transaction","prev":"ledger"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":182} +{"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":183} +{"extractor_changes":{"route":{"curr":"home","prev":"add-transaction"}},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"op":"false"},"submitMovesBalanceByAtMostTypedAmount":{"op":"false"}},"step":184,"violations":["submitCommitsOneTransactionPerAction","submitMovesBalanceByAtMostTypedAmount"],"witnesses":{"submitCommitsOneTransactionPerAction":{"detected_step":184,"extractors":{"accountBalance":null,"accountCards":[{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":139,"left":20,"right":760,"top":67},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AccountCard","text":"NANaN14 transactions$4,579.00","x":390,"y":103},{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":221,"left":20,"right":760,"top":149},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AccountCard","text":"TRTravel3 transactions$801.00","x":390,"y":185},{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":297,"left":20,"right":760,"top":231},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AccountCard","text":"Aa0 transactions$0.00","x":390,"y":264}],"accountNameField":null,"accounts":[{"balance":457900,"name":"NANaN"},{"balance":80100,"name":"TRTravel"},{"balance":0,"name":"Aa"}],"addAccountButton":{"__sanderlingSelector":"testTag:HomeScreen > testTag:AddAccountButton","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":421,"left":20,"right":760,"top":375},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AddAccountButton","text":"+ Add account","x":390,"y":398},"addAccountSubmit":null,"addTxnButton":null,"extractor_0":0,"extractor_1":0,"homeTxnCounts":{"Aa":"0","NANaN":"14","TRTravel":"3"},"lastAction":{"applied":true,"kind":"DoubleTap","on":"id:TxnSubmit","relaunched":null},"loggedIn":true,"loginEmailField":null,"loginPasswordField":null,"loginSubmit":null,"route":"home","submitsInWindow":1,"submitsSinceAccountBalance":1,"submitsSinceCounts":1,"totalBalance":538000,"txnAmountField":null,"txnSubmit":null},"reason":"predicate false","step":183},"submitMovesBalanceByAtMostTypedAmount":{"detected_step":184,"extractors":{"accountBalance":null,"accountCards":[{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":139,"left":20,"right":760,"top":67},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AccountCard","text":"NANaN14 transactions$4,579.00","x":390,"y":103},{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":221,"left":20,"right":760,"top":149},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AccountCard","text":"TRTravel3 transactions$801.00","x":390,"y":185},{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":297,"left":20,"right":760,"top":231},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AccountCard","text":"Aa0 transactions$0.00","x":390,"y":264}],"accountNameField":null,"accounts":[{"balance":457900,"name":"NANaN"},{"balance":80100,"name":"TRTravel"},{"balance":0,"name":"Aa"}],"addAccountButton":{"__sanderlingSelector":"testTag:HomeScreen > testTag:AddAccountButton","attrs":{"aria-label":"","tag":"div"},"bounds":{"bottom":421,"left":20,"right":760,"top":375},"class":"","clickable":true,"dataset":{},"desc":"","enabled":true,"focused":false,"id":"AddAccountButton","text":"+ Add account","x":390,"y":398},"addAccountSubmit":null,"addTxnButton":null,"extractor_0":0,"extractor_1":0,"homeTxnCounts":{"Aa":"0","NANaN":"14","TRTravel":"3"},"lastAction":{"applied":true,"kind":"DoubleTap","on":"id:TxnSubmit","relaunched":null},"loggedIn":true,"loginEmailField":null,"loginPasswordField":null,"loginSubmit":null,"route":"home","submitsInWindow":1,"submitsSinceAccountBalance":1,"submitsSinceCounts":1,"totalBalance":538000,"txnAmountField":null,"txnSubmit":null},"reason":"predicate false","step":183}}}