Repository: tact-lang/tact

Issue:
Rework or remove everything related to `VarAddress` (`addr_var`) from the standard library
In [Version 10](https://github.com/ton-blockchain/ton/blob/master/doc/GlobalVersions.md#version-10) of the TON Blockchain, support of `addr_var` addresses was almost completely cut down. For example, the `addr_var` cannot be a destination address of external messages, and if it's used for a destination address of an internal message, it is rewritten as an `addr_std`.

Furthermore, these TVM instructions drop support for anycast addresses and `addr_var`: `LDMSGADDR(Q)`, `PARSEMSGADDR(Q)`, `REWRITESTDADDR(Q)`, `REWRITEVARADDR(Q)`. They throw an exit code (usually 9) whenever one attempts to apply them to anything, including `addr_var` addresses.

That hits our `parseVarAddress()` function and the respective `VarAddress` struct. We should either remove those entirely or deprecate/turn into a no-op.

Discussion:
@i582: I think it's worth making a hard deprecate in the compiler to give a clear error (unlike if you just remove them completely) where all the root causes are described.


Solution patch:
diff --git a/dev-docs/CHANGELOG.md b/dev-docs/CHANGELOG.md
index 5bc39f66..d1ed6c08 100644
--- a/dev-docs/CHANGELOG.md
+++ b/dev-docs/CHANGELOG.md
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ## [Unreleased]
 
+### Breaking changes
+
+- Compiler now reports an error if `VarAddress` or `parseVarAddress()` is used, since starting
+  from [TVM 10](https://github.com/ton-blockchain/ton/blob/master/doc/GlobalVersions.md#version-10) they are mostly not supported: PR [#3067](https://github.com/tact-lang/tact/pull/3067).
+
 ### Language features
 
 - [fix] Compiler now correctly handles optional slices, builders, and strings when generating serialization logic: PR [#3053](https://github.com/tact-lang/tact/pull/3053)
diff --git a/src/stdlib/stdlib.ts b/src/stdlib/stdlib.ts
index 3d6cafe7..406228fb 100644
--- a/src/stdlib/stdlib.ts
+++ b/src/stdlib/stdlib.ts
@@ -247,7 +247,8 @@ files["std/internal/address.tact"] =
     "IHRoZSBiYXNlY2hhaW4gYW5kIC0xIG9mIHRoZSBtYXN0ZXJjaGFpbi4KLy8vCi8vLyBTZWU6Ci8vLyAqIGh0dHBzOi8vZG9jcy50YWN0LWxhbmcub3JnL3JlZi9jb3Jl" +
     "LWFkZHJlc3NlcyNwYXJzZXN0ZGFkZHJlc3MKLy8vICogaHR0cHM6Ly9naXRodWIuY29tL3Rvbi1ibG9ja2NoYWluL3Rvbi9ibG9iL21hc3Rlci9jcnlwdG8vYmxvY2sv" +
     "YmxvY2sudGxiI0wxMDUtTDEwNgovLy8Kc3RydWN0IFN0ZEFkZHJlc3MgewogICAgd29ya2NoYWluOiBJbnQgYXMgaW50ODsKICAgIGFkZHJlc3M6IEludCBhcyB1aW50" +
-    "MjU2Owp9CgovLy8gU3RydWN0IHJlcHJlc2VudGluZyB0aGUgYWRkcmVzcyBvZiB2YXJpYWJsZSBsZW5ndGggd2l0aCBzaWduZWQgMzItYml0IGB3b3JrY2hhaW5gIElE" +
+    "MjU2Owp9CgovLy8gRGVwcmVjYXRlZCBzaW5jZSBUYWN0IDEuNi44LiBBbnkgdXNhZ2VzIG9mIHRoaXMgc3RydWN0dXJlIHdpbGwgYmUgcmVwb3J0ZWQgYXMgYW4gZXJy" +
+    "b3IuCi8vLwovLy8gU3RydWN0IHJlcHJlc2VudGluZyB0aGUgYWRkcmVzcyBvZiB2YXJpYWJsZSBsZW5ndGggd2l0aCBzaWduZWQgMzItYml0IGB3b3JrY2hhaW5gIElE" +
     "IGFuZCBhIGBTbGljZWAgY29udGFpbmluZyB1bnNpZ25lZCBgYWRkcmVzc2AgaW4gdGhlIHNwZWNpZmllZCBgd29ya2NoYWluYC4gQXZhaWxhYmxlIHNpbmNlIFRhY3Qg" +
     "MS41LjAuCi8vLwovLy8gVmFyaWFibGUtbGVuZ3RoIGFkZHJlc3NlcyBhcmUgaW50ZW5kZWQgZm9yIGZ1dHVyZSBleHRlbnNpb25zLCBhbmQgd2hpbGUgdmFsaWRhdG9y" +
     "cyBtdXN0IGJlIHJlYWR5IHRvIGFjY2VwdCB0aGVtIGluIGluYm91bmQgbWVzc2FnZXMsIHRoZSBzdGFuZGFyZCAobm9uLXZhcmlhYmxlKSBhZGRyZXNzZXMgYXJlIHVz" +
@@ -262,99 +263,100 @@ files["std/internal/address.tact"] =
     "aWNlYCBjYW5ub3QgYmUgcGFyc2VkIGFzIGEgYFN0ZEFkZHJlc3NgLgovLy8KLy8vIFNlZTogaHR0cHM6Ly9kb2NzLnRhY3QtbGFuZy5vcmcvcmVmL2NvcmUtYWRkcmVz" +
     "c2VzI3BhcnNlc3RkYWRkcmVzcwovLy8KLy8vIFtDZWxsIHVuZGVyZmxvd106IGh0dHBzOi8vZG9jcy50YWN0LWxhbmcub3JnL2Jvb2svZXhpdC1jb2RlcyM5Ci8vLwph" +
     "c20gZnVuIHBhcnNlU3RkQWRkcmVzcyhzbGljZTogU2xpY2UpOiBTdGRBZGRyZXNzIHsgUkVXUklURVNUREFERFIgfQoKLy8vIEdsb2JhbCBmdW5jdGlvbi4gQXZhaWxh" +
-    "YmxlIHNpbmNlIFRhY3QgMS41LjAuCi8vLwovLy8gQ29udmVydHMgYSBgc2xpY2VgIGNvbnRhaW5pbmcgYW4gYWRkcmVzcyBvZiB2YXJpYWJsZSBsZW5ndGggaW50byB0" +
-    "aGUgYFZhckFkZHJlc3NgIHN0cnVjdCBhbmQgcmV0dXJucyBpdC4KLy8vCi8vLyBgYGB0YWN0Ci8vLyBmdW4gZXhhbXBsZSgpIHsKLy8vICAgICBsZXQgdmFyQWRkclNs" +
-    "aWNlID0gYmVnaW5DZWxsKCkKLy8vICAgICAgICAgLnN0b3JlVWludCg2LCAzKSAgICAgLy8gdG8gcmVjb2duaXplIHRoZSBmb2xsb3dpbmcgYXMgYSBWYXJBZGRyZXNz" +
-    "Ci8vLyAgICAgICAgIC5zdG9yZVVpbnQoMTIzLCA5KSAgIC8vIG1ha2UgYWRkcmVzcyBvY2N1cHkgMTIzIGJpdHMKLy8vICAgICAgICAgLnN0b3JlVWludCgyMzQsIDMy" +
-    "KSAgLy8gc3BlY2lmeSB3b3JrY2hhaW4gSUQgb2YgMjM0Ci8vLyAgICAgICAgIC5zdG9yZVVpbnQoMzQ1LCAxMjMpIC8vIHNwZWNpZnkgYWRkcmVzcyBvZiAzNDUKLy8v" +
-    "ICAgICAgICAgLmFzU2xpY2UoKTsKLy8vICAgICBsZXQgcGFyc2VkVmFyQWRkciA9IHBhcnNlVmFyQWRkcmVzcyh2YXJBZGRyU2xpY2UpOwovLy8KLy8vICAgICBwYXJz" +
-    "ZWRWYXJBZGRyLndvcmtjaGFpbjsgICAgICAgICAgICAgLy8gMjM0Ci8vLyAgICAgcGFyc2VkVmFyQWRkci5hZGRyZXNzOyAgICAgICAgICAgICAgIC8vIENTe0NlbGx7" +
-    "MDAyLi4uMmIzfSBiaXRzOiA0NC4uMTY3OyByZWZzOiAwLi4wfQovLy8gICAgIHBhcnNlZFZhckFkZHIuYWRkcmVzcy5sb2FkVWludCgxMjMpOyAvLyAzNDUKLy8vIH0K" +
-    "Ly8vIGBgYAovLy8KLy8vICMjIyMgRXhpdCBjb2RlcwovLy8KLy8vICogOTogW0NlbGwgdW5kZXJmbG93XSDigJQgVGhyb3duIHdoZW4gdGhlIHNwZWNpZmllZCBgc2xp" +
-    "Y2VgIGNhbm5vdCBiZSBwYXJzZWQgYXMgYSBgVmFyQWRkcmVzc2AuCi8vLwovLy8gU2VlOiBodHRwczovL2RvY3MudGFjdC1sYW5nLm9yZy9yZWYvY29yZS1hZGRyZXNz" +
-    "ZXMjcGFyc2V2YXJhZGRyZXNzCi8vLwovLy8gW0NlbGwgdW5kZXJmbG93XTogaHR0cHM6Ly9kb2NzLnRhY3QtbGFuZy5vcmcvYm9vay9leGl0LWNvZGVzIzkKLy8vCmFz" +
-    "bSBmdW4gcGFyc2VWYXJBZGRyZXNzKHNsaWNlOiBTbGljZSk6IFZhckFkZHJlc3MgeyBSRVdSSVRFVkFSQUREUiB9CgovLy8gRXh0ZW5zaW9uIG11dGF0aW9uIGZ1bmN0" +
-    "aW9uIGZvciB0aGUgYFNsaWNlYCB0eXBlLgovLy8KLy8vIExvYWRzIGFuZCByZXR1cm5zIGFuIGBBZGRyZXNzYCBmcm9tIHRoZSBgU2xpY2VgLgovLy8KLy8vIGBgYHRh" +
-    "Y3QKLy8vIGZ1biBleGFtcGxlKCkgewovLy8gICAgIGxldCBzOiBTbGljZSA9IGJlZ2luQ2VsbCgpLnN0b3JlQWRkcmVzcyhteUFkZHJlc3MoKSkuYXNTbGljZSgpOwov" +
-    "Ly8gICAgIGxldCBmaXp6OiBBZGRyZXNzID0gcy5sb2FkQWRkcmVzcygpOwovLy8gfQovLy8gYGBgCi8vLwovLy8gIyMjIyBFeGl0IGNvZGVzCi8vLwovLy8gKiA5OiBb" +
-    "Q2VsbCB1bmRlcmZsb3ddIOKAlCBUaHJvd24gd2hlbiBhdHRlbXB0aW5nIHRvIGxvYWQgbW9yZSBkYXRhIHRoYW4gYFNsaWNlYCBjb250YWlucy4KLy8vCi8vLyBTZWU6" +
-    "IGh0dHBzOi8vZG9jcy50YWN0LWxhbmcub3JnL3JlZi9jb3JlLWNlbGxzI3NsaWNlbG9hZGFkZHJlc3MKLy8vCi8vLyBbQ2VsbCB1bmRlcmZsb3ddOiBodHRwczovL2Rv" +
-    "Y3MudGFjdC1sYW5nLm9yZy9ib29rL2V4aXQtY29kZXMjOQovLy8KYXNtKC0+IDEgMCkgZXh0ZW5kcyBtdXRhdGVzIGZ1biBsb2FkQWRkcmVzcyhzZWxmOiBTbGljZSk6" +
-    "IEFkZHJlc3MgeyBMRE1TR0FERFIgfQoKLy8vIEV4dGVuc2lvbiBtdXRhdGlvbiBmdW5jdGlvbiBmb3IgdGhlIGBTbGljZWAgdHlwZS4gQXZhaWxhYmxlIHNpbmNlIFRh" +
-    "Y3QgMS42LjIuCi8vLwovLy8gU2tpcHMgYW4gYEFkZHJlc3NgIGZyb20gdGhlIGBTbGljZWAuCi8vLwovLy8gYGBgdGFjdAovLy8gZnVuIGV4YW1wbGUoKSB7Ci8vLyAg" +
-    "ICAgbGV0IHMxOiBTbGljZSA9IGJlZ2luQ2VsbCgpCi8vLyAgICAgICAgIC5zdG9yZUFkZHJlc3MobXlBZGRyZXNzKCkpCi8vLyAgICAgICAgIC5zdG9yZVVpbnQoNDIs" +
-    "IDMyKQovLy8gICAgICAgICAuYXNTbGljZSgpOwovLy8KLy8vICAgICBzMS5za2lwQWRkcmVzcygpOwovLy8gICAgIGxldCBmaXp6OiBJbnQgPSBzMS5sb2FkVWludCgz" +
-    "Mik7IC8vIDQyCi8vLyB9Ci8vLyBgYGAKLy8vCi8vLyAjIyMjIEV4aXQgY29kZXMKLy8vCi8vLyAqIDk6IFtDZWxsIHVuZGVyZmxvd10g4oCUIFRocm93biB3aGVuIGF0" +
-    "dGVtcHRpbmcgdG8gc2tpcCBtb3JlIGRhdGEgdGhhbiBgU2xpY2VgIGNvbnRhaW5zLgovLy8KLy8vIFNlZTogaHR0cHM6Ly9kb2NzLnRhY3QtbGFuZy5vcmcvcmVmL2Nv" +
-    "cmUtY2VsbHMjc2xpY2Vza2lwYWRkcmVzcwovLy8KLy8vIFtDZWxsIHVuZGVyZmxvd106IGh0dHBzOi8vZG9jcy50YWN0LWxhbmcub3JnL2Jvb2svZXhpdC1jb2RlcyM5" +
-    "Ci8vLwphc20gZXh0ZW5kcyBtdXRhdGVzIGZ1biBza2lwQWRkcmVzcyhzZWxmOiBTbGljZSkgeyBMRE1TR0FERFIgTklQIH0KCi8vLyBFeHRlbnNpb24gZnVuY3Rpb24g" +
-    "Zm9yIHRoZSBgQnVpbGRlcmAgdHlwZS4KLy8vCi8vLyBTdG9yZXMgdGhlIGBhZGRyZXNzYCBpbiB0aGUgY29weSBvZiB0aGUgYEJ1aWxkZXJgLiBSZXR1cm5zIHRoYXQg" +
-    "Y29weS4KLy8vCi8vLyBgYGB0YWN0Ci8vLyBmdW4gZXhhbXBsZSgpIHsKLy8vICAgICBsZXQgYjogQnVpbGRlciA9IGJlZ2luQ2VsbCgpOwovLy8gICAgIGxldCBmaXp6" +
-    "OiBCdWlsZGVyID0gYi5zdG9yZUFkZHJlc3MobXlBZGRyZXNzKCkpOwovLy8gfQovLy8gYGBgCi8vLwovLy8gIyMjIyBFeGl0IGNvZGVzCi8vLwovLy8gKiA4OiBbQ2Vs" +
-    "bCBvdmVyZmxvd10g4oCUIFRocm93biB3aGVuIGF0dGVtcHRpbmcgdG8gc3RvcmUgYW4gYGFkZHJlc3NgIGludG8gdGhlIGBCdWlsZGVyYCB3aGVuIGl0IGNhbm5vdCBm" +
-    "aXQgaXQuCi8vLwovLy8gU2VlOiBodHRwczovL2RvY3MudGFjdC1sYW5nLm9yZy9yZWYvY29yZS1jZWxscyNidWlsZGVyc3RvcmVhZGRyZXNzCi8vLwovLy8gW0NlbGwg" +
-    "b3ZlcmZsb3ddOiBodHRwczovL2RvY3MudGFjdC1sYW5nLm9yZy9ib29rL2V4aXQtY29kZXMjOAovLy8KYXNtIGV4dGVuZHMgZnVuIHN0b3JlQWRkcmVzcyhzZWxmOiBC" +
-    "dWlsZGVyLCBhZGRyZXNzOiBBZGRyZXNzKTogQnVpbGRlciB7IFNUU0xJQ0VSIH0KCi8vLyBTdHJ1Y3QgcmVwcmVzZW50aW5nIGEgYmFzZWNoYWluIGFkZHJlc3MuIEF2" +
-    "YWlsYWJsZSBzaW5jZSBUYWN0IDEuNi4wLgovLy8KLy8vIEEgYmFzZWNoYWluIGFkZHJlc3MgKHdvcmtjaGFpbiAwKSBjYW4gYmUgZWl0aGVyIGVtcHR5IChudWxsIGhh" +
-    "c2gpIG9yIGNvbnRhaW4gYSAyNTYtYml0IGhhc2ggdmFsdWUuCi8vLwovLy8gU2VlOiBodHRwczovL2RvY3MudGFjdC1sYW5nLm9yZy9yZWYvY29yZS1hZGRyZXNzZXMj" +
-    "YmFzZWNoYWluYWRkcmVzcwovLy8Kc3RydWN0IEJhc2VjaGFpbkFkZHJlc3MgewogICAgaGFzaDogSW50PzsKfQoKLy8vIEdsb2JhbCBmdW5jdGlvbi4gQXZhaWxhYmxl" +
-    "IHNpbmNlIFRhY3QgMS42LjAuCi8vLwovLy8gQ3JlYXRlcyBhbmQgcmV0dXJucyBhbiBlbXB0eSBiYXNlY2hhaW4gYWRkcmVzcyB3aXRoIGEgbnVsbCBoYXNoLgovLy8K" +
-    "Ly8vIFdoZW4gc2VyaWFsaXplZCwgYW4gZW1wdHkgYmFzZWNoYWluIGFkZHJlc3MgaXMgcmVwcmVzZW50ZWQgYXMgYGFkZHJfbm9uZWAuCi8vLwovLy8gYGBgdGFjdAov" +
-    "Ly8gZnVuIGV4YW1wbGUoKSB7Ci8vLyAgICAgbGV0IGVtcHR5QWRkcjogQmFzZWNoYWluQWRkcmVzcyA9IGVtcHR5QmFzZWNoYWluQWRkcmVzcygpOwovLy8gICAgIGVt" +
-    "cHR5QWRkci5oYXNoID09IG51bGw7IC8vIHRydWUKLy8vIH0KLy8vIGBgYAovLy8KLy8vIFNlZTogaHR0cHM6Ly9kb2NzLnRhY3QtbGFuZy5vcmcvcmVmL2NvcmUtYWRk" +
-    "cmVzc2VzI2VtcHR5YmFzZWNoYWluYWRkcmVzcwovLy8KaW5saW5lIGZ1biBlbXB0eUJhc2VjaGFpbkFkZHJlc3MoKTogQmFzZWNoYWluQWRkcmVzcyB7CiAgICByZXR1" +
-    "cm4gQmFzZWNoYWluQWRkcmVzcyB7IGhhc2g6IG51bGwgfTsKfQoKLy8vIEdsb2JhbCBmdW5jdGlvbi4gQXZhaWxhYmxlIHNpbmNlIFRhY3QgMS42LjAuCi8vLwovLy8g" +
-    "Q3JlYXRlcyBhbmQgcmV0dXJucyBhIG5ldyBiYXNlY2hhaW4gYWRkcmVzcyB3aXRoIHRoZSBzcGVjaWZpZWQgaGFzaCB2YWx1ZS4KLy8vCi8vLyBgYGB0YWN0Ci8vLyBm" +
-    "dW4gZXhhbXBsZSgpIHsKLy8vICAgICBsZXQgYWRkcjogQmFzZWNoYWluQWRkcmVzcyA9IG5ld0Jhc2VjaGFpbkFkZHJlc3MoMHg4M2RmZDU1MmU2MzcyOWI0NzJmY2Jj" +
-    "YzhjNDVlYmNjNjY5MTcwMjU1OGI2OGVjNzUyN2UxYmE0MDNhMGYzMWE4KTsKLy8vIH0KLy8vIGBgYAovLy8KLy8vIFNlZTogaHR0cHM6Ly9kb2NzLnRhY3QtbGFuZy5v" +
-    "cmcvcmVmL2NvcmUtYWRkcmVzc2VzI25ld2Jhc2VjaGFpbmFkZHJlc3MKLy8vCmlubGluZSBmdW4gbmV3QmFzZWNoYWluQWRkcmVzcyhoYXNoOiBJbnQpOiBCYXNlY2hh" +
-    "aW5BZGRyZXNzIHsKICAgIHJldHVybiBCYXNlY2hhaW5BZGRyZXNzIHsgaGFzaCB9Owp9CgovLy8gR2xvYmFsIGZ1bmN0aW9uLiBBdmFpbGFibGUgc2luY2UgVGFjdCAx" +
-    "LjYuMC4KLy8vCi8vLyBDcmVhdGVzIGFuZCByZXR1cm5zIGEgYmFzZWNoYWluIGFkZHJlc3MgZGVyaXZlZCBmcm9tIGEgY29udHJhY3QncyBgU3RhdGVJbml0YCAoY29k" +
-    "ZSBhbmQgZGF0YSkuCi8vLwovLy8gYGBgdGFjdAovLy8gZnVuIGV4YW1wbGUoKSB7Ci8vLyAgICAgbGV0IGNvZGU6IENlbGwgPSBsb2FkQ2VsbCgpOyAvLyBsb2FkIGNv" +
-    "bnRyYWN0IGNvZGUKLy8vICAgICBsZXQgZGF0YTogQ2VsbCA9IGxvYWRDZWxsKCk7IC8vIGxvYWQgY29udHJhY3QgZGF0YQovLy8gICAgIGxldCBzdGF0ZTogU3RhdGVJ" +
-    "bml0ID0gU3RhdGVJbml0IHsgY29kZSwgZGF0YSB9OwovLy8gICAgIGxldCBhZGRyOiBCYXNlY2hhaW5BZGRyZXNzID0gY29udHJhY3RCYXNlY2hhaW5BZGRyZXNzKHN0" +
-    "YXRlKTsKLy8vIH0KLy8vIGBgYAovLy8KLy8vIFNlZTogaHR0cHM6Ly9kb2NzLnRhY3QtbGFuZy5vcmcvcmVmL2NvcmUtYWRkcmVzc2VzI2NvbnRyYWN0YmFzZWNoYWlu" +
-    "YWRkcmVzcwovLy8KaW5saW5lIGZ1biBjb250cmFjdEJhc2VjaGFpbkFkZHJlc3MoczogU3RhdGVJbml0KTogQmFzZWNoYWluQWRkcmVzcyB7CiAgICBsZXQgaGFzaCA9" +
-    "IGNvbnRyYWN0SGFzaChzLmNvZGUsIHMuZGF0YSk7CiAgICByZXR1cm4gbmV3QmFzZWNoYWluQWRkcmVzcyhoYXNoKTsKfQoKLy8vIEV4dGVuc2lvbiBmdW5jdGlvbiBm" +
-    "b3IgdGhlIGBCdWlsZGVyYCB0eXBlLiBBdmFpbGFibGUgc2luY2UgVGFjdCAxLjYuMC4KLy8vCi8vLyBTdG9yZXMgdGhlIGJhc2VjaGFpbiBhZGRyZXNzIGluIHRoZSBj" +
-    "b3B5IG9mIHRoZSBCdWlsZGVyIGFuZCByZXR1cm5zIHRoYXQgY29weS4KLy8vCi8vLyBJZiB0aGUgYWRkcmVzcyBoYXMgYSBgbnVsbGAgaGFzaCwgc3RvcmVzIHR3byB6" +
-    "ZXJvIGJpdHMgYDBiMDBgIChgYWRkcl9ub25lYCkuIE90aGVyd2lzZSwKLy8vIHN0b3JlcyB0aGUgZnVsbCBhZGRyZXNzIHdpdGggdGhlIHRocmVlLWJpdCBwcmVmaXgg" +
-    "YDBiMTAwYCwKLy8vIGZvbGxvd2VkIGJ5IHRoZSA4LWJpdCB3b3JrY2hhaW4gSUQgc2V0IHRvIDAgYW5kIHRoZSAyNTYtYml0IGhhc2guCi8vLwovLy8gYGBgdGFjdAov" +
-    "Ly8gZnVuIGV4YW1wbGUoKSB7Ci8vLyAgICAgbGV0IGFkZHI6IEJhc2VjaGFpbkFkZHJlc3MgPSBuZXdCYXNlY2hhaW5BZGRyZXNzKDB4ODNkZmQ1NTJlNjM3MjliNDcy" +
-    "ZmNiY2M4YzQ1ZWJjYzY2OTE3MDI1NThiNjhlYzc1MjdlMWJhNDAzYTBmMzFhOCk7Ci8vLyAgICAgbGV0IGI6IEJ1aWxkZXIgPSBiZWdpbkNlbGwoKTsKLy8vICAgICBs" +
-    "ZXQgYjI6IEJ1aWxkZXIgPSBiLnN0b3JlQmFzZWNoYWluQWRkcmVzcyhhZGRyKTsKLy8vIH0KLy8vIGBgYAovLy8KLy8vICMjIyMgRXhpdCBjb2RlcwovLy8KLy8vICog" +
-    "ODogW0NlbGwgb3ZlcmZsb3ddIOKAlCBUaHJvd24gd2hlbiBhdHRlbXB0aW5nIHRvIHN0b3JlIGFuIGBhZGRyZXNzYCBpbnRvIHRoZSBgQnVpbGRlcmAgd2hlbiBpdCBj" +
-    "YW5ub3QgZml0IGl0LgovLy8KLy8vIFNlZTogaHR0cHM6Ly9kb2NzLnRhY3QtbGFuZy5vcmcvcmVmL2NvcmUtY2VsbHMjYnVpbGRlcnN0b3JlYmFzZWNoYWluYWRkcmVz" +
-    "cwovLy8KLy8vIFtDZWxsIG92ZXJmbG93XTogaHR0cHM6Ly9kb2NzLnRhY3QtbGFuZy5vcmcvYm9vay9leGl0LWNvZGVzIzgKLy8vCmV4dGVuZHMgZnVuIHN0b3JlQmFz" +
-    "ZWNoYWluQWRkcmVzcyhzZWxmOiBCdWlsZGVyLCBhZGRyZXNzOiBCYXNlY2hhaW5BZGRyZXNzKTogQnVpbGRlciB7CiAgICBpZiAoYWRkcmVzcy5oYXNoID09IG51bGwp" +
-    "IHsKICAgICAgICByZXR1cm4gc2VsZi5zdG9yZVVpbnQoMCwgMik7IC8vIDBiMDAKICAgIH0KCiAgICByZXR1cm4gc2VsZgogICAgICAgIC5zdG9yZVVpbnQoMGIxMF8w" +
-    "XzAwMDAwMDAwLCAzICsgOCkKICAgICAgICAuc3RvcmVVaW50KGFkZHJlc3MuaGFzaCEhLCAyNTYpOwp9CgovLy8gR2xvYmFsIGZ1bmN0aW9uLiBBdmFpbGFibGUgc2lu" +
-    "Y2UgVGFjdCAxLjYuMy4KLy8vCi8vLyBDaGVja3Mgd2hldGhlciB0aGUgYGFkZHJlc3NgIGlzIGluIHRoZSBiYXNlY2hhaW4sIGkuZS4sIGl0cyBjaGFpbiBJRCBpcyAw" +
-    "LgovLy8KLy8vIGBgYHRhY3QKLy8vIGZ1biBleGFtcGxlcygpIHsKLy8vICAgICBsZXQgc29tZUJhc2VjaGFpbkFkZHJlc3M6IEFkZHJlc3MgPQovLy8gICAgICAgICBu" +
-    "ZXdBZGRyZXNzKDAsIDB4ODNkZmQ1NTJlNjM3MjliNDcyZmNiY2M4YzQ1ZWJjYzY2OTE3MDI1NThiNjhlYzc1MjdlMWJhNDAzYTBmMzFhOCk7Ci8vLwovLy8gICAgIGxl" +
-    "dCBzb21lTWFzdGVyY2hhaW5BZGRyZXNzOiBBZGRyZXNzID0KLy8vICAgICAgICAgbmV3QWRkcmVzcygtMSwgMHg4M2RmZDU1MmU2MzcyOWI0NzJmY2JjYzhjNDVlYmNj" +
-    "NjY5MTcwMjU1OGI2OGVjNzUyN2UxYmE0MDNhMGYzMWE4KTsKLy8vCi8vLyAgICAgLy8gRG9lcyBub3QgdGhyb3cgYmVjYXVzZSB0aGUgY2hhaW4gSUQgaXMgMAovLy8g" +
-    "ICAgIGZvcmNlQmFzZWNoYWluKHNvbWVCYXNlY2hhaW5BZGRyZXNzKTsKLy8vCi8vLyAgICAgdHJ5IHsKLy8vICAgICAgICAgLy8gVGhyb3dzIGJlY2F1c2UgdGhlIGNo" +
-    "YWluIElEIGlzIC0xIChtYXN0ZXJjaGFpbikKLy8vICAgICAgICAgZm9yY2VCYXNlY2hhaW4oc29tZU1hc3RlcmNoYWluQWRkcmVzcyk7Ci8vLyAgICAgfSBjYXRjaCAo" +
-    "ZXhpdENvZGUpIHsKLy8vICAgICAgICAgLy8gZXhpdENvZGUgaXMgMTM4Ci8vLyAgICAgfQovLy8gfQovLy8gYGBgCi8vLwovLy8gIyMjIyBFeGl0IGNvZGVzCi8vLwov" +
-    "Ly8gKiAxMzg6IFtOb3QgYSBiYXNlY2hhaW4gYWRkcmVzc10g4oCUIFRocm93biB3aGVuIHRoZSBnaXZlbiBgYWRkcmVzc2AgaXMgbm90IGluIHRoZSBiYXNlY2hhaW4g" +
-    "KGNoYWluIElEIGlzIG5vdCAwKS4KLy8vCi8vLyBTZWU6IGh0dHBzOi8vZG9jcy50YWN0LWxhbmcub3JnL3JlZi9jb3JlLWFkZHJlc3NlcyNmb3JjZWJhc2VjaGFpbgov" +
-    "Ly8KLy8vIFtOb3QgYSBiYXNlY2hhaW4gYWRkcmVzc106IGh0dHBzOi8vZG9jcy50YWN0LWxhbmcub3JnL2Jvb2svZXhpdC1jb2RlcyMxMzgKLy8vCmFzbSBmdW4gZm9y" +
-    "Y2VCYXNlY2hhaW4oYWRkcmVzczogQWRkcmVzcykgeyBSRVdSSVRFU1REQUREUiBEUk9QIDEzOCBUSFJPV0lGIH0KCi8vLyBHbG9iYWwgZnVuY3Rpb24uIEF2YWlsYWJs" +
-    "ZSBzaW5jZSBUYWN0IDEuNi40LgovLy8KLy8vIENoZWNrcyB3aGV0aGVyIHRoZSBgYWRkcmVzc2AgaXMgaW4gdGhlIGB3b3JrY2hhaW5gLCBpLmUuLCBpdHMgY2hhaW4g" +
-    "SUQgaXMgZXF1YWwgdG8gYHdvcmtjaGFpbmAuCi8vLwovLy8gYGBgdGFjdAovLy8gZnVuIGV4YW1wbGVzKCkgewovLy8gICAgIGxldCBzb21lQmFzZWNoYWluQWRkcmVz" +
-    "czogQWRkcmVzcyA9Ci8vLyAgICAgICAgIG5ld0FkZHJlc3MoMCwgMHg4M2RmZDU1MmU2MzcyOWI0NzJmY2JjYzhjNDVlYmNjNjY5MTcwMjU1OGI2OGVjNzUyN2UxYmE0" +
-    "MDNhMGYzMWE4KTsKLy8vCi8vLyAgICAgbGV0IHNvbWVNYXN0ZXJjaGFpbkFkZHJlc3M6IEFkZHJlc3MgPQovLy8gICAgICAgICBuZXdBZGRyZXNzKC0xLCAweDgzZGZk" +
-    "NTUyZTYzNzI5YjQ3MmZjYmNjOGM0NWViY2M2NjkxNzAyNTU4YjY4ZWM3NTI3ZTFiYTQwM2EwZjMxYTgpOwovLy8KLy8vICAgICAvLyBEb2VzIG5vdCB0aHJvdyBiZWNh" +
-    "dXNlIHRoZSBjaGFpbiBJRCBtYXRjaGVzIHdvcmtjaGFpbiBwYXJhbWV0ZXIKLy8vICAgICBmb3JjZVdvcmtjaGFpbihzb21lQmFzZWNoYWluQWRkcmVzcywgMCwgNTkz" +
-    "KTsKLy8vICAgICBmb3JjZVdvcmtjaGFpbihzb21lTWFzdGVyY2hhaW5BZGRyZXNzLCAtMSwgNTkzKTsKLy8vCi8vLyAgICAgdHJ5IHsKLy8vICAgICAgICAgLy8gVGhy" +
-    "b3dzIGJlY2F1c2UgdGhlIGNoYWluIElEIGlzIDAgd2hpY2ggZG9lc24ndCBtYXRjaCB0aGUgd29ya2NoYWluIHBhcmFtZXRlciwgLTEKLy8vICAgICAgICAgZm9yY2VX" +
-    "b3JrY2hhaW4oc29tZUJhc2VjaGFpbkFkZHJlc3MsIC0xLCA1OTMpOwovLy8gICAgIH0gY2F0Y2ggKGV4aXRDb2RlKSB7Ci8vLyAgICAgICAgIC8vIGV4aXRDb2RlIGlz" +
-    "IDU5MwovLy8gICAgIH0KLy8vIH0KLy8vIGBgYAovLy8KLy8vICMjIyMgRXhpdCBjb2RlcwovLy8KLy8vICogYGVycm9yQ29kZWAg4oCUIFRocm93biB3aGVuIHRoZSBn" +
-    "aXZlbiBgYWRkcmVzc2AgaXMgbm90IGluIHRoZSBzcGVjaWZpZWQgYHdvcmtjaGFpbmAgKGNoYWluIElEIGlzIG5vdCBlcXVhbCB0byBgd29ya2NoYWluYCkuCi8vLwov" +
-    "Ly8gU2VlOiBodHRwczovL2RvY3MudGFjdC1sYW5nLm9yZy9yZWYvY29yZS1hZGRyZXNzZXMjZm9yY2V3b3JrY2hhaW4KLy8vCmFzbShlcnJvckNvZGUgd29ya2NoYWlu" +
-    "IGFkZHJlc3MpIGZ1biBmb3JjZVdvcmtjaGFpbihhZGRyZXNzOiBBZGRyZXNzLCB3b3JrY2hhaW46IEludCwgZXJyb3JDb2RlOiBJbnQpIHsKICAgIFJFV1JJVEVTVERB" +
-    "RERSCiAgICBEUk9QCiAgICBDTVAKICAgIFRIUk9XQU5ZSUYKfQo=";
+    "YmxlIHNpbmNlIFRhY3QgMS41LjAuCi8vLwovLy8gRGVwcmVjYXRlZCBzaW5jZSBUYWN0IDEuNi44LiBBbnkgdXNhZ2VzIG9mIHRoaXMgZnVuY3Rpb24gd2lsbCBiZSBy" +
+    "ZXBvcnRlZCBhcyBhbiBlcnJvci4KLy8vCi8vLyBDb252ZXJ0cyBhIGBzbGljZWAgY29udGFpbmluZyBhbiBhZGRyZXNzIG9mIHZhcmlhYmxlIGxlbmd0aCBpbnRvIHRo" +
+    "ZSBgVmFyQWRkcmVzc2Agc3RydWN0IGFuZCByZXR1cm5zIGl0LgovLy8KLy8vIGBgYHRhY3QKLy8vIGZ1biBleGFtcGxlKCkgewovLy8gICAgIGxldCB2YXJBZGRyU2xp" +
+    "Y2UgPSBiZWdpbkNlbGwoKQovLy8gICAgICAgICAuc3RvcmVVaW50KDYsIDMpICAgICAvLyB0byByZWNvZ25pemUgdGhlIGZvbGxvd2luZyBhcyBhIFZhckFkZHJlc3MK" +
+    "Ly8vICAgICAgICAgLnN0b3JlVWludCgxMjMsIDkpICAgLy8gbWFrZSBhZGRyZXNzIG9jY3VweSAxMjMgYml0cwovLy8gICAgICAgICAuc3RvcmVVaW50KDIzNCwgMzIp" +
+    "ICAvLyBzcGVjaWZ5IHdvcmtjaGFpbiBJRCBvZiAyMzQKLy8vICAgICAgICAgLnN0b3JlVWludCgzNDUsIDEyMykgLy8gc3BlY2lmeSBhZGRyZXNzIG9mIDM0NQovLy8g" +
+    "ICAgICAgICAuYXNTbGljZSgpOwovLy8gICAgIGxldCBwYXJzZWRWYXJBZGRyID0gcGFyc2VWYXJBZGRyZXNzKHZhckFkZHJTbGljZSk7Ci8vLwovLy8gICAgIHBhcnNl" +
+    "ZFZhckFkZHIud29ya2NoYWluOyAgICAgICAgICAgICAvLyAyMzQKLy8vICAgICBwYXJzZWRWYXJBZGRyLmFkZHJlc3M7ICAgICAgICAgICAgICAgLy8gQ1N7Q2VsbHsw" +
+    "MDIuLi4yYjN9IGJpdHM6IDQ0Li4xNjc7IHJlZnM6IDAuLjB9Ci8vLyAgICAgcGFyc2VkVmFyQWRkci5hZGRyZXNzLmxvYWRVaW50KDEyMyk7IC8vIDM0NQovLy8gfQov" +
+    "Ly8gYGBgCi8vLwovLy8gIyMjIyBFeGl0IGNvZGVzCi8vLwovLy8gKiA5OiBbQ2VsbCB1bmRlcmZsb3ddIOKAlCBUaHJvd24gd2hlbiB0aGUgc3BlY2lmaWVkIGBzbGlj" +
+    "ZWAgY2Fubm90IGJlIHBhcnNlZCBhcyBhIGBWYXJBZGRyZXNzYC4KLy8vCi8vLyBTZWU6IGh0dHBzOi8vZG9jcy50YWN0LWxhbmcub3JnL3JlZi9jb3JlLWFkZHJlc3Nl" +
+    "cyNwYXJzZXZhcmFkZHJlc3MKLy8vCi8vLyBbQ2VsbCB1bmRlcmZsb3ddOiBodHRwczovL2RvY3MudGFjdC1sYW5nLm9yZy9ib29rL2V4aXQtY29kZXMjOQovLy8KYXNt" +
+    "IGZ1biBwYXJzZVZhckFkZHJlc3Moc2xpY2U6IFNsaWNlKTogVmFyQWRkcmVzcyB7IFJFV1JJVEVWQVJBRERSIH0KCi8vLyBFeHRlbnNpb24gbXV0YXRpb24gZnVuY3Rp" +
+    "b24gZm9yIHRoZSBgU2xpY2VgIHR5cGUuCi8vLwovLy8gTG9hZHMgYW5kIHJldHVybnMgYW4gYEFkZHJlc3NgIGZyb20gdGhlIGBTbGljZWAuCi8vLwovLy8gYGBgdGFj" +
+    "dAovLy8gZnVuIGV4YW1wbGUoKSB7Ci8vLyAgICAgbGV0IHM6IFNsaWNlID0gYmVnaW5DZWxsKCkuc3RvcmVBZGRyZXNzKG15QWRkcmVzcygpKS5hc1NsaWNlKCk7Ci8v" +
+    "LyAgICAgbGV0IGZpeno6IEFkZHJlc3MgPSBzLmxvYWRBZGRyZXNzKCk7Ci8vLyB9Ci8vLyBgYGAKLy8vCi8vLyAjIyMjIEV4aXQgY29kZXMKLy8vCi8vLyAqIDk6IFtD" +
+    "ZWxsIHVuZGVyZmxvd10g4oCUIFRocm93biB3aGVuIGF0dGVtcHRpbmcgdG8gbG9hZCBtb3JlIGRhdGEgdGhhbiBgU2xpY2VgIGNvbnRhaW5zLgovLy8KLy8vIFNlZTog" +
+    "aHR0cHM6Ly9kb2NzLnRhY3QtbGFuZy5vcmcvcmVmL2NvcmUtY2VsbHMjc2xpY2Vsb2FkYWRkcmVzcwovLy8KLy8vIFtDZWxsIHVuZGVyZmxvd106IGh0dHBzOi8vZG9j" +
+    "cy50YWN0LWxhbmcub3JnL2Jvb2svZXhpdC1jb2RlcyM5Ci8vLwphc20oLT4gMSAwKSBleHRlbmRzIG11dGF0ZXMgZnVuIGxvYWRBZGRyZXNzKHNlbGY6IFNsaWNlKTog" +
+    "QWRkcmVzcyB7IExETVNHQUREUiB9CgovLy8gRXh0ZW5zaW9uIG11dGF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgYFNsaWNlYCB0eXBlLiBBdmFpbGFibGUgc2luY2UgVGFj" +
+    "dCAxLjYuMi4KLy8vCi8vLyBTa2lwcyBhbiBgQWRkcmVzc2AgZnJvbSB0aGUgYFNsaWNlYC4KLy8vCi8vLyBgYGB0YWN0Ci8vLyBmdW4gZXhhbXBsZSgpIHsKLy8vICAg" +
+    "ICBsZXQgczE6IFNsaWNlID0gYmVnaW5DZWxsKCkKLy8vICAgICAgICAgLnN0b3JlQWRkcmVzcyhteUFkZHJlc3MoKSkKLy8vICAgICAgICAgLnN0b3JlVWludCg0Miwg" +
+    "MzIpCi8vLyAgICAgICAgIC5hc1NsaWNlKCk7Ci8vLwovLy8gICAgIHMxLnNraXBBZGRyZXNzKCk7Ci8vLyAgICAgbGV0IGZpeno6IEludCA9IHMxLmxvYWRVaW50KDMy" +
+    "KTsgLy8gNDIKLy8vIH0KLy8vIGBgYAovLy8KLy8vICMjIyMgRXhpdCBjb2RlcwovLy8KLy8vICogOTogW0NlbGwgdW5kZXJmbG93XSDigJQgVGhyb3duIHdoZW4gYXR0" +
+    "ZW1wdGluZyB0byBza2lwIG1vcmUgZGF0YSB0aGFuIGBTbGljZWAgY29udGFpbnMuCi8vLwovLy8gU2VlOiBodHRwczovL2RvY3MudGFjdC1sYW5nLm9yZy9yZWYvY29y" +
+    "ZS1jZWxscyNzbGljZXNraXBhZGRyZXNzCi8vLwovLy8gW0NlbGwgdW5kZXJmbG93XTogaHR0cHM6Ly9kb2NzLnRhY3QtbGFuZy5vcmcvYm9vay9leGl0LWNvZGVzIzkK" +
+    "Ly8vCmFzbSBleHRlbmRzIG11dGF0ZXMgZnVuIHNraXBBZGRyZXNzKHNlbGY6IFNsaWNlKSB7IExETVNHQUREUiBOSVAgfQoKLy8vIEV4dGVuc2lvbiBmdW5jdGlvbiBm" +
+    "b3IgdGhlIGBCdWlsZGVyYCB0eXBlLgovLy8KLy8vIFN0b3JlcyB0aGUgYGFkZHJlc3NgIGluIHRoZSBjb3B5IG9mIHRoZSBgQnVpbGRlcmAuIFJldHVybnMgdGhhdCBj" +
+    "b3B5LgovLy8KLy8vIGBgYHRhY3QKLy8vIGZ1biBleGFtcGxlKCkgewovLy8gICAgIGxldCBiOiBCdWlsZGVyID0gYmVnaW5DZWxsKCk7Ci8vLyAgICAgbGV0IGZpeno6" +
+    "IEJ1aWxkZXIgPSBiLnN0b3JlQWRkcmVzcyhteUFkZHJlc3MoKSk7Ci8vLyB9Ci8vLyBgYGAKLy8vCi8vLyAjIyMjIEV4aXQgY29kZXMKLy8vCi8vLyAqIDg6IFtDZWxs" +
+    "IG92ZXJmbG93XSDigJQgVGhyb3duIHdoZW4gYXR0ZW1wdGluZyB0byBzdG9yZSBhbiBgYWRkcmVzc2AgaW50byB0aGUgYEJ1aWxkZXJgIHdoZW4gaXQgY2Fubm90IGZp" +
+    "dCBpdC4KLy8vCi8vLyBTZWU6IGh0dHBzOi8vZG9jcy50YWN0LWxhbmcub3JnL3JlZi9jb3JlLWNlbGxzI2J1aWxkZXJzdG9yZWFkZHJlc3MKLy8vCi8vLyBbQ2VsbCBv" +
+    "dmVyZmxvd106IGh0dHBzOi8vZG9jcy50YWN0LWxhbmcub3JnL2Jvb2svZXhpdC1jb2RlcyM4Ci8vLwphc20gZXh0ZW5kcyBmdW4gc3RvcmVBZGRyZXNzKHNlbGY6IEJ1" +
+    "aWxkZXIsIGFkZHJlc3M6IEFkZHJlc3MpOiBCdWlsZGVyIHsgU1RTTElDRVIgfQoKLy8vIFN0cnVjdCByZXByZXNlbnRpbmcgYSBiYXNlY2hhaW4gYWRkcmVzcy4gQXZh" +
+    "aWxhYmxlIHNpbmNlIFRhY3QgMS42LjAuCi8vLwovLy8gQSBiYXNlY2hhaW4gYWRkcmVzcyAod29ya2NoYWluIDApIGNhbiBiZSBlaXRoZXIgZW1wdHkgKG51bGwgaGFz" +
+    "aCkgb3IgY29udGFpbiBhIDI1Ni1iaXQgaGFzaCB2YWx1ZS4KLy8vCi8vLyBTZWU6IGh0dHBzOi8vZG9jcy50YWN0LWxhbmcub3JnL3JlZi9jb3JlLWFkZHJlc3NlcyNi" +
+    "YXNlY2hhaW5hZGRyZXNzCi8vLwpzdHJ1Y3QgQmFzZWNoYWluQWRkcmVzcyB7CiAgICBoYXNoOiBJbnQ/Owp9CgovLy8gR2xvYmFsIGZ1bmN0aW9uLiBBdmFpbGFibGUg" +
+    "c2luY2UgVGFjdCAxLjYuMC4KLy8vCi8vLyBDcmVhdGVzIGFuZCByZXR1cm5zIGFuIGVtcHR5IGJhc2VjaGFpbiBhZGRyZXNzIHdpdGggYSBudWxsIGhhc2guCi8vLwov" +
+    "Ly8gV2hlbiBzZXJpYWxpemVkLCBhbiBlbXB0eSBiYXNlY2hhaW4gYWRkcmVzcyBpcyByZXByZXNlbnRlZCBhcyBgYWRkcl9ub25lYC4KLy8vCi8vLyBgYGB0YWN0Ci8v" +
+    "LyBmdW4gZXhhbXBsZSgpIHsKLy8vICAgICBsZXQgZW1wdHlBZGRyOiBCYXNlY2hhaW5BZGRyZXNzID0gZW1wdHlCYXNlY2hhaW5BZGRyZXNzKCk7Ci8vLyAgICAgZW1w" +
+    "dHlBZGRyLmhhc2ggPT0gbnVsbDsgLy8gdHJ1ZQovLy8gfQovLy8gYGBgCi8vLwovLy8gU2VlOiBodHRwczovL2RvY3MudGFjdC1sYW5nLm9yZy9yZWYvY29yZS1hZGRy" +
+    "ZXNzZXMjZW1wdHliYXNlY2hhaW5hZGRyZXNzCi8vLwppbmxpbmUgZnVuIGVtcHR5QmFzZWNoYWluQWRkcmVzcygpOiBCYXNlY2hhaW5BZGRyZXNzIHsKICAgIHJldHVy" +
+    "biBCYXNlY2hhaW5BZGRyZXNzIHsgaGFzaDogbnVsbCB9Owp9CgovLy8gR2xvYmFsIGZ1bmN0aW9uLiBBdmFpbGFibGUgc2luY2UgVGFjdCAxLjYuMC4KLy8vCi8vLyBD" +
+    "cmVhdGVzIGFuZCByZXR1cm5zIGEgbmV3IGJhc2VjaGFpbiBhZGRyZXNzIHdpdGggdGhlIHNwZWNpZmllZCBoYXNoIHZhbHVlLgovLy8KLy8vIGBgYHRhY3QKLy8vIGZ1" +
+    "biBleGFtcGxlKCkgewovLy8gICAgIGxldCBhZGRyOiBCYXNlY2hhaW5BZGRyZXNzID0gbmV3QmFzZWNoYWluQWRkcmVzcygweDgzZGZkNTUyZTYzNzI5YjQ3MmZjYmNj" +
+    "OGM0NWViY2M2NjkxNzAyNTU4YjY4ZWM3NTI3ZTFiYTQwM2EwZjMxYTgpOwovLy8gfQovLy8gYGBgCi8vLwovLy8gU2VlOiBodHRwczovL2RvY3MudGFjdC1sYW5nLm9y" +
+    "Zy9yZWYvY29yZS1hZGRyZXNzZXMjbmV3YmFzZWNoYWluYWRkcmVzcwovLy8KaW5saW5lIGZ1biBuZXdCYXNlY2hhaW5BZGRyZXNzKGhhc2g6IEludCk6IEJhc2VjaGFp" +
+    "bkFkZHJlc3MgewogICAgcmV0dXJuIEJhc2VjaGFpbkFkZHJlc3MgeyBoYXNoIH07Cn0KCi8vLyBHbG9iYWwgZnVuY3Rpb24uIEF2YWlsYWJsZSBzaW5jZSBUYWN0IDEu" +
+    "Ni4wLgovLy8KLy8vIENyZWF0ZXMgYW5kIHJldHVybnMgYSBiYXNlY2hhaW4gYWRkcmVzcyBkZXJpdmVkIGZyb20gYSBjb250cmFjdCdzIGBTdGF0ZUluaXRgIChjb2Rl" +
+    "IGFuZCBkYXRhKS4KLy8vCi8vLyBgYGB0YWN0Ci8vLyBmdW4gZXhhbXBsZSgpIHsKLy8vICAgICBsZXQgY29kZTogQ2VsbCA9IGxvYWRDZWxsKCk7IC8vIGxvYWQgY29u" +
+    "dHJhY3QgY29kZQovLy8gICAgIGxldCBkYXRhOiBDZWxsID0gbG9hZENlbGwoKTsgLy8gbG9hZCBjb250cmFjdCBkYXRhCi8vLyAgICAgbGV0IHN0YXRlOiBTdGF0ZUlu" +
+    "aXQgPSBTdGF0ZUluaXQgeyBjb2RlLCBkYXRhIH07Ci8vLyAgICAgbGV0IGFkZHI6IEJhc2VjaGFpbkFkZHJlc3MgPSBjb250cmFjdEJhc2VjaGFpbkFkZHJlc3Moc3Rh" +
+    "dGUpOwovLy8gfQovLy8gYGBgCi8vLwovLy8gU2VlOiBodHRwczovL2RvY3MudGFjdC1sYW5nLm9yZy9yZWYvY29yZS1hZGRyZXNzZXMjY29udHJhY3RiYXNlY2hhaW5h" +
+    "ZGRyZXNzCi8vLwppbmxpbmUgZnVuIGNvbnRyYWN0QmFzZWNoYWluQWRkcmVzcyhzOiBTdGF0ZUluaXQpOiBCYXNlY2hhaW5BZGRyZXNzIHsKICAgIGxldCBoYXNoID0g" +
+    "Y29udHJhY3RIYXNoKHMuY29kZSwgcy5kYXRhKTsKICAgIHJldHVybiBuZXdCYXNlY2hhaW5BZGRyZXNzKGhhc2gpOwp9CgovLy8gRXh0ZW5zaW9uIGZ1bmN0aW9uIGZv" +
+    "ciB0aGUgYEJ1aWxkZXJgIHR5cGUuIEF2YWlsYWJsZSBzaW5jZSBUYWN0IDEuNi4wLgovLy8KLy8vIFN0b3JlcyB0aGUgYmFzZWNoYWluIGFkZHJlc3MgaW4gdGhlIGNv" +
+    "cHkgb2YgdGhlIEJ1aWxkZXIgYW5kIHJldHVybnMgdGhhdCBjb3B5LgovLy8KLy8vIElmIHRoZSBhZGRyZXNzIGhhcyBhIGBudWxsYCBoYXNoLCBzdG9yZXMgdHdvIHpl" +
+    "cm8gYml0cyBgMGIwMGAgKGBhZGRyX25vbmVgKS4gT3RoZXJ3aXNlLAovLy8gc3RvcmVzIHRoZSBmdWxsIGFkZHJlc3Mgd2l0aCB0aGUgdGhyZWUtYml0IHByZWZpeCBg" +
+    "MGIxMDBgLAovLy8gZm9sbG93ZWQgYnkgdGhlIDgtYml0IHdvcmtjaGFpbiBJRCBzZXQgdG8gMCBhbmQgdGhlIDI1Ni1iaXQgaGFzaC4KLy8vCi8vLyBgYGB0YWN0Ci8v" +
+    "LyBmdW4gZXhhbXBsZSgpIHsKLy8vICAgICBsZXQgYWRkcjogQmFzZWNoYWluQWRkcmVzcyA9IG5ld0Jhc2VjaGFpbkFkZHJlc3MoMHg4M2RmZDU1MmU2MzcyOWI0NzJm" +
+    "Y2JjYzhjNDVlYmNjNjY5MTcwMjU1OGI2OGVjNzUyN2UxYmE0MDNhMGYzMWE4KTsKLy8vICAgICBsZXQgYjogQnVpbGRlciA9IGJlZ2luQ2VsbCgpOwovLy8gICAgIGxl" +
+    "dCBiMjogQnVpbGRlciA9IGIuc3RvcmVCYXNlY2hhaW5BZGRyZXNzKGFkZHIpOwovLy8gfQovLy8gYGBgCi8vLwovLy8gIyMjIyBFeGl0IGNvZGVzCi8vLwovLy8gKiA4" +
+    "OiBbQ2VsbCBvdmVyZmxvd10g4oCUIFRocm93biB3aGVuIGF0dGVtcHRpbmcgdG8gc3RvcmUgYW4gYGFkZHJlc3NgIGludG8gdGhlIGBCdWlsZGVyYCB3aGVuIGl0IGNh" +
+    "bm5vdCBmaXQgaXQuCi8vLwovLy8gU2VlOiBodHRwczovL2RvY3MudGFjdC1sYW5nLm9yZy9yZWYvY29yZS1jZWxscyNidWlsZGVyc3RvcmViYXNlY2hhaW5hZGRyZXNz" +
+    "Ci8vLwovLy8gW0NlbGwgb3ZlcmZsb3ddOiBodHRwczovL2RvY3MudGFjdC1sYW5nLm9yZy9ib29rL2V4aXQtY29kZXMjOAovLy8KZXh0ZW5kcyBmdW4gc3RvcmVCYXNl" +
+    "Y2hhaW5BZGRyZXNzKHNlbGY6IEJ1aWxkZXIsIGFkZHJlc3M6IEJhc2VjaGFpbkFkZHJlc3MpOiBCdWlsZGVyIHsKICAgIGlmIChhZGRyZXNzLmhhc2ggPT0gbnVsbCkg" +
+    "ewogICAgICAgIHJldHVybiBzZWxmLnN0b3JlVWludCgwLCAyKTsgLy8gMGIwMAogICAgfQoKICAgIHJldHVybiBzZWxmCiAgICAgICAgLnN0b3JlVWludCgwYjEwXzBf" +
+    "MDAwMDAwMDAsIDMgKyA4KQogICAgICAgIC5zdG9yZVVpbnQoYWRkcmVzcy5oYXNoISEsIDI1Nik7Cn0KCi8vLyBHbG9iYWwgZnVuY3Rpb24uIEF2YWlsYWJsZSBzaW5j" +
+    "ZSBUYWN0IDEuNi4zLgovLy8KLy8vIENoZWNrcyB3aGV0aGVyIHRoZSBgYWRkcmVzc2AgaXMgaW4gdGhlIGJhc2VjaGFpbiwgaS5lLiwgaXRzIGNoYWluIElEIGlzIDAu" +
+    "Ci8vLwovLy8gYGBgdGFjdAovLy8gZnVuIGV4YW1wbGVzKCkgewovLy8gICAgIGxldCBzb21lQmFzZWNoYWluQWRkcmVzczogQWRkcmVzcyA9Ci8vLyAgICAgICAgIG5l" +
+    "d0FkZHJlc3MoMCwgMHg4M2RmZDU1MmU2MzcyOWI0NzJmY2JjYzhjNDVlYmNjNjY5MTcwMjU1OGI2OGVjNzUyN2UxYmE0MDNhMGYzMWE4KTsKLy8vCi8vLyAgICAgbGV0" +
+    "IHNvbWVNYXN0ZXJjaGFpbkFkZHJlc3M6IEFkZHJlc3MgPQovLy8gICAgICAgICBuZXdBZGRyZXNzKC0xLCAweDgzZGZkNTUyZTYzNzI5YjQ3MmZjYmNjOGM0NWViY2M2" +
+    "NjkxNzAyNTU4YjY4ZWM3NTI3ZTFiYTQwM2EwZjMxYTgpOwovLy8KLy8vICAgICAvLyBEb2VzIG5vdCB0aHJvdyBiZWNhdXNlIHRoZSBjaGFpbiBJRCBpcyAwCi8vLyAg" +
+    "ICAgZm9yY2VCYXNlY2hhaW4oc29tZUJhc2VjaGFpbkFkZHJlc3MpOwovLy8KLy8vICAgICB0cnkgewovLy8gICAgICAgICAvLyBUaHJvd3MgYmVjYXVzZSB0aGUgY2hh" +
+    "aW4gSUQgaXMgLTEgKG1hc3RlcmNoYWluKQovLy8gICAgICAgICBmb3JjZUJhc2VjaGFpbihzb21lTWFzdGVyY2hhaW5BZGRyZXNzKTsKLy8vICAgICB9IGNhdGNoIChl" +
+    "eGl0Q29kZSkgewovLy8gICAgICAgICAvLyBleGl0Q29kZSBpcyAxMzgKLy8vICAgICB9Ci8vLyB9Ci8vLyBgYGAKLy8vCi8vLyAjIyMjIEV4aXQgY29kZXMKLy8vCi8v" +
+    "LyAqIDEzODogW05vdCBhIGJhc2VjaGFpbiBhZGRyZXNzXSDigJQgVGhyb3duIHdoZW4gdGhlIGdpdmVuIGBhZGRyZXNzYCBpcyBub3QgaW4gdGhlIGJhc2VjaGFpbiAo" +
+    "Y2hhaW4gSUQgaXMgbm90IDApLgovLy8KLy8vIFNlZTogaHR0cHM6Ly9kb2NzLnRhY3QtbGFuZy5vcmcvcmVmL2NvcmUtYWRkcmVzc2VzI2ZvcmNlYmFzZWNoYWluCi8v" +
+    "LwovLy8gW05vdCBhIGJhc2VjaGFpbiBhZGRyZXNzXTogaHR0cHM6Ly9kb2NzLnRhY3QtbGFuZy5vcmcvYm9vay9leGl0LWNvZGVzIzEzOAovLy8KYXNtIGZ1biBmb3Jj" +
+    "ZUJhc2VjaGFpbihhZGRyZXNzOiBBZGRyZXNzKSB7IFJFV1JJVEVTVERBRERSIERST1AgMTM4IFRIUk9XSUYgfQoKLy8vIEdsb2JhbCBmdW5jdGlvbi4gQXZhaWxhYmxl" +
+    "IHNpbmNlIFRhY3QgMS42LjQuCi8vLwovLy8gQ2hlY2tzIHdoZXRoZXIgdGhlIGBhZGRyZXNzYCBpcyBpbiB0aGUgYHdvcmtjaGFpbmAsIGkuZS4sIGl0cyBjaGFpbiBJ" +
+    "RCBpcyBlcXVhbCB0byBgd29ya2NoYWluYC4KLy8vCi8vLyBgYGB0YWN0Ci8vLyBmdW4gZXhhbXBsZXMoKSB7Ci8vLyAgICAgbGV0IHNvbWVCYXNlY2hhaW5BZGRyZXNz" +
+    "OiBBZGRyZXNzID0KLy8vICAgICAgICAgbmV3QWRkcmVzcygwLCAweDgzZGZkNTUyZTYzNzI5YjQ3MmZjYmNjOGM0NWViY2M2NjkxNzAyNTU4YjY4ZWM3NTI3ZTFiYTQw" +
+    "M2EwZjMxYTgpOwovLy8KLy8vICAgICBsZXQgc29tZU1hc3RlcmNoYWluQWRkcmVzczogQWRkcmVzcyA9Ci8vLyAgICAgICAgIG5ld0FkZHJlc3MoLTEsIDB4ODNkZmQ1" +
+    "NTJlNjM3MjliNDcyZmNiY2M4YzQ1ZWJjYzY2OTE3MDI1NThiNjhlYzc1MjdlMWJhNDAzYTBmMzFhOCk7Ci8vLwovLy8gICAgIC8vIERvZXMgbm90IHRocm93IGJlY2F1" +
+    "c2UgdGhlIGNoYWluIElEIG1hdGNoZXMgd29ya2NoYWluIHBhcmFtZXRlcgovLy8gICAgIGZvcmNlV29ya2NoYWluKHNvbWVCYXNlY2hhaW5BZGRyZXNzLCAwLCA1OTMp" +
+    "OwovLy8gICAgIGZvcmNlV29ya2NoYWluKHNvbWVNYXN0ZXJjaGFpbkFkZHJlc3MsIC0xLCA1OTMpOwovLy8KLy8vICAgICB0cnkgewovLy8gICAgICAgICAvLyBUaHJv" +
+    "d3MgYmVjYXVzZSB0aGUgY2hhaW4gSUQgaXMgMCB3aGljaCBkb2Vzbid0IG1hdGNoIHRoZSB3b3JrY2hhaW4gcGFyYW1ldGVyLCAtMQovLy8gICAgICAgICBmb3JjZVdv" +
+    "cmtjaGFpbihzb21lQmFzZWNoYWluQWRkcmVzcywgLTEsIDU5Myk7Ci8vLyAgICAgfSBjYXRjaCAoZXhpdENvZGUpIHsKLy8vICAgICAgICAgLy8gZXhpdENvZGUgaXMg" +
+    "NTkzCi8vLyAgICAgfQovLy8gfQovLy8gYGBgCi8vLwovLy8gIyMjIyBFeGl0IGNvZGVzCi8vLwovLy8gKiBgZXJyb3JDb2RlYCDigJQgVGhyb3duIHdoZW4gdGhlIGdp" +
+    "dmVuIGBhZGRyZXNzYCBpcyBub3QgaW4gdGhlIHNwZWNpZmllZCBgd29ya2NoYWluYCAoY2hhaW4gSUQgaXMgbm90IGVxdWFsIHRvIGB3b3JrY2hhaW5gKS4KLy8vCi8v" +
+    "LyBTZWU6IGh0dHBzOi8vZG9jcy50YWN0LWxhbmcub3JnL3JlZi9jb3JlLWFkZHJlc3NlcyNmb3JjZXdvcmtjaGFpbgovLy8KYXNtKGVycm9yQ29kZSB3b3JrY2hhaW4g" +
+    "YWRkcmVzcykgZnVuIGZvcmNlV29ya2NoYWluKGFkZHJlc3M6IEFkZHJlc3MsIHdvcmtjaGFpbjogSW50LCBlcnJvckNvZGU6IEludCkgewogICAgUkVXUklURVNUREFE" +
+    "RFIKICAgIERST1AKICAgIENNUAogICAgVEhST1dBTllJRgp9Cg==";
 files["std/internal/base.tact"] =
     "Ly8vIERlc2NyaWJlcyB0aGUgYmFzZSBsb2dpYyB0aGF0IGlzIGF2YWlsYWJsZSBpbiBhbGwgY29udHJhY3RzIGFuZCB0cmFpdHMgYnkgZGVmYXVsdC4KLy8vCi8vLyBU" +
     "aGlzIHRyYWl0IGlzIGltcGxpY2l0bHkgaW5oZXJpdGVkIGJ5IGV2ZXJ5IG90aGVyIGNvbnRyYWN0IGFuZCB0cmFpdC4KLy8vIEl0IGNvbnRhaW5zIGEgbnVtYmVyIG9m" +
diff --git a/src/stdlib/stdlib/std/internal/address.tact b/src/stdlib/stdlib/std/internal/address.tact
index 28a0b2af..7df2aed0 100644
--- a/src/stdlib/stdlib/std/internal/address.tact
+++ b/src/stdlib/stdlib/std/internal/address.tact
@@ -131,6 +131,8 @@ struct StdAddress {
     address: Int as uint256;
 }
 
+/// Deprecated since Tact 1.6.8. Any usages of this structure will be reported as an error.
+///
 /// Struct representing the address of variable length with signed 32-bit `workchain` ID and a `Slice` containing unsigned `address` in the specified `workchain`. Available since Tact 1.5.0.
 ///
 /// Variable-length addresses are intended for future extensions, and while validators must be ready to accept them in inbound messages, the standard (non-variable) addresses are used whenever possible.
@@ -170,6 +172,8 @@ asm fun parseStdAddress(slice: Slice): StdAddress { REWRITESTDADDR }
 
 /// Global function. Available since Tact 1.5.0.
 ///
+/// Deprecated since Tact 1.6.8. Any usages of this function will be reported as an error.
+///
 /// Converts a `slice` containing an address of variable length into the `VarAddress` struct and returns it.
 ///
 /// ```tact
diff --git a/src/types/__snapshots__/resolveDescriptors.spec.ts.snap b/src/types/__snapshots__/resolveDescriptors.spec.ts.snap
index 767e0da5..64aa8413 100644
--- a/src/types/__snapshots__/resolveDescriptors.spec.ts.snap
+++ b/src/types/__snapshots__/resolveDescriptors.spec.ts.snap
@@ -324,6 +324,24 @@ exports[`resolveDescriptors should fail descriptors for contract-without-as-type
 "
 `;
 
+exports[`resolveDescriptors should fail descriptors for deprecated-VarAddres-usage 1`] = `
+"<unknown>:12:20: Using VarAddress since TVM 10 is mostly useless as it throws exit code 9 in many cases. Tact does not support VarAddress since 1.6.8 and it will be removed completely in future versions
+  11 |     fun bar() {
+> 12 |         let addr = VarAddress {
+                          ^~~~~~~~~~
+  13 |             workchain: 0,
+"
+`;
+
+exports[`resolveDescriptors should fail descriptors for deprecated-parseVarAddress-usage 1`] = `
+"<unknown>:14:20: Using VarAddress since TVM 10 is mostly useless as it throws exit code 9 in many cases. Tact does not support VarAddress since 1.6.8 and it will be removed completely in future versions
+  13 |     fun bar() {
+> 14 |         let addr = parseVarAddress(emptySlice())
+                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  15 |     }
+"
+`;
+
 exports[`resolveDescriptors should fail descriptors for dump 1`] = `
 "<unknown>:11:9: Cannot dump() argument with "StringBuilder" type, see https://docs.tact-lang.org/ref/core-debug/#dump for more information
   10 |     get fun foo(): Int {
diff --git a/src/types/resolveDescriptors.ts b/src/types/resolveDescriptors.ts
index 44f88166..9a98a033 100644
--- a/src/types/resolveDescriptors.ts
+++ b/src/types/resolveDescriptors.ts
@@ -37,7 +37,11 @@ import {
 import { enabledExternals } from "@/config/features";
 import { isRuntimeType } from "@/types/isRuntimeType";
 import { GlobalFunctions } from "@/abi/global";
-import { getExpType, resolveExpression } from "@/types/resolveExpression";
+import {
+    getExpType,
+    resolveExpression,
+    throwVarAddrHardDeprecateError,
+} from "@/types/resolveExpression";
 import { addVariable, emptyContext } from "@/types/resolveStatements";
 import { isAssignable } from "@/types/subtyping";
 import type { ItemOrigin } from "@/imports/source";
@@ -2357,10 +2361,10 @@ export function getType(
     ctx: CompilerContext,
     ident: Ast.Id | Ast.TypeId | string,
 ): TypeDescription {
+    const errorLoc = typeof ident === "string" ? undefined : ident.loc;
     const name = typeof ident === "string" ? ident : idText(ident);
     const r = store.get(ctx, name);
     if (!r) {
-        const errorLoc = typeof ident === "string" ? undefined : ident.loc;
         if (errorLoc) {
             throwCompilationError(
                 `Type ${idTextErr(name)} not found`,
@@ -2369,6 +2373,11 @@ export function getType(
         }
         throwInternalCompilerError(`Type ${idTextErr(name)} not found`);
     }
+
+    if (r.name === "VarAddress" && errorLoc) {
+        throwVarAddrHardDeprecateError(errorLoc);
+    }
+
     return r;
 }
 
diff --git a/src/types/resolveExpression.ts b/src/types/resolveExpression.ts
index 7145c13d..07910cad 100644
--- a/src/types/resolveExpression.ts
+++ b/src/types/resolveExpression.ts
@@ -26,6 +26,7 @@ import { GlobalFunctions } from "@/abi/global";
 import { isAssignable, moreGeneralType } from "@/types/subtyping";
 import { StructFunctions } from "@/abi/struct";
 import { prettyPrint } from "@/ast/ast-printer";
+import type { SrcInfo } from "@/grammar";
 
 const store = createContextStore<{
     ast: Ast.Expression;
@@ -567,6 +568,13 @@ function checkParameterType(
     }
 }
 
+export function throwVarAddrHardDeprecateError(loc: SrcInfo) {
+    throwCompilationError(
+        `Using VarAddress since TVM 10 is mostly useless as it throws exit code 9 in many cases. Tact does not support VarAddress since 1.6.8 and it will be removed completely in future versions`,
+        loc,
+    );
+}
+
 function resolveStaticCall(
     exp: Ast.StaticCall,
     sctx: StatementContext,
@@ -592,6 +600,10 @@ function resolveStaticCall(
         return registerExpType(ctx, exp, resolved);
     }
 
+    if (exp.function.text === "parseVarAddress") {
+        throwVarAddrHardDeprecateError(exp.loc);
+    }
+
     // Check if function exists
     if (!hasStaticFunction(ctx, idText(exp.function))) {
         // check if there is a method with the same name
diff --git a/src/types/test-failed/deprecated-VarAddres-usage.tact b/src/types/test-failed/deprecated-VarAddres-usage.tact
new file mode 100644
index 00000000..8f2bff8a
--- /dev/null
+++ b/src/types/test-failed/deprecated-VarAddres-usage.tact
@@ -0,0 +1,17 @@
+primitive Int;
+primitive Slice;
+trait BaseTrait {}
+
+struct VarAddress {
+    workchain: Int as int32;
+    address: Slice;
+}
+
+contract Test {
+    fun bar() {
+        let addr = VarAddress {
+            workchain: 0,
+            address: emptySlice(),
+        };
+    }
+}
diff --git a/src/types/test-failed/deprecated-parseVarAddress-usage.tact b/src/types/test-failed/deprecated-parseVarAddress-usage.tact
new file mode 100644
index 00000000..859e5c6a
--- /dev/null
+++ b/src/types/test-failed/deprecated-parseVarAddress-usage.tact
@@ -0,0 +1,16 @@
+primitive Int;
+primitive Slice;
+trait BaseTrait {}
+
+struct VarAddress {
+    workchain: Int as int32;
+    address: Slice;
+}
+
+asm fun parseVarAddress(slice: Slice): VarAddress { REWRITEVARADDR }
+
+contract Test {
+    fun bar() {
+        let addr = parseVarAddress(emptySlice())
+    }
+}



Test patch:
diff --git a/src/test/e2e-emulated/stdlib/stdlib.spec.ts b/src/test/e2e-emulated/stdlib/stdlib.spec.ts
index 688ed415..cd0b75ef 100644
--- a/src/test/e2e-emulated/stdlib/stdlib.spec.ts
+++ b/src/test/e2e-emulated/stdlib/stdlib.spec.ts
@@ -111,20 +111,6 @@ describe("stdlib", () => {
             ),
         );
 
-        const addrVar = await contract.getParseVarAddress(
-            beginCell()
-                .storeUint(6, 3)
-                .storeUint(123, 9)
-                .storeUint(234, 32)
-                .storeUint(345, 123)
-                .endCell()
-                .asSlice(),
-        );
-        expect(addrVar.workchain).toBe(234n);
-        expect(addrVar.address.asCell()).toEqualCell(
-            beginCell().storeUint(345, 123).endCell(),
-        );
-
         const forceBasechainGood = await contract.getForceBasechain(
             Address.parse(
                 "0:4a81708d2cf7b15a1b362fbf64880451d698461f52f05f145b36c08517d76873",
diff --git a/src/test/e2e-emulated/stdlib/stdlib.tact b/src/test/e2e-emulated/stdlib/stdlib.tact
index 503d4719..1508ea0e 100644
--- a/src/test/e2e-emulated/stdlib/stdlib.tact
+++ b/src/test/e2e-emulated/stdlib/stdlib.tact
@@ -28,7 +28,7 @@ contract StdlibTest {
     get fun sliceRefs(sc: Slice): Int {
         return sc.refs();
     }
-    
+
     get fun storeBool(bl: Builder, b: Bool): Builder {
         return bl.storeBool(b);
     }
@@ -45,7 +45,7 @@ contract StdlibTest {
         return sc.loadBit();
     }
 
-    
+
     get fun tvm_2023_07_upgrade(): Int {
         return gasConsumed();
     }
@@ -70,15 +70,11 @@ contract StdlibTest {
         return parseStdAddress(slice);
     }
 
-    get fun parseVarAddress(slice: Slice): VarAddress {
-        return parseVarAddress(slice);
-    }
-
     get fun forceBasechain(addr: Address): Bool {
         forceBasechain(addr);
         return true;
     }
-    
+
     get fun forceWorkchain(addr: Address, workchain: Int, exitCode: Int): Bool {
         forceWorkchain(addr, workchain, exitCode);
         return true;