@expo/cli 0.17.6 → 0.17.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/bin/cli CHANGED
@@ -137,7 +137,7 @@ const args = (0, _arg).default({
137
137
  });
138
138
  if (args["--version"]) {
139
139
  // Version is added in the build script.
140
- console.log("0.17.6");
140
+ console.log("0.17.8");
141
141
  process.exit(0);
142
142
  }
143
143
  if (args["--non-interactive"]) {
@@ -272,7 +272,7 @@ commands[command]().then((exec)=>{
272
272
  logEventAsync("action", {
273
273
  action: `expo ${command}`,
274
274
  source: "expo/cli",
275
- source_version: "0.17.6"
275
+ source_version: "0.17.8"
276
276
  });
277
277
  }
278
278
  });
@@ -55,7 +55,11 @@ async function listAvdsAsync() {
55
55
  const { stdout } = await (0, _spawnAsync).default(whichEmulator(), [
56
56
  "-list-avds"
57
57
  ]);
58
- return stdout.split(_os.default.EOL).filter(Boolean).map((name)=>({
58
+ return stdout.split(_os.default.EOL).filter(Boolean)/**
59
+ * AVD IDs cannot contain spaces. This removes extra info lines from the output. e.g.
60
+ * "INFO | Storing crashdata in: /tmp/android-brent/emu-crash-34.1.18.db
61
+ */ .filter((name)=>!name.trim().includes(" ")
62
+ ).map((name)=>({
59
63
  name,
60
64
  type: "emulator",
61
65
  // unsure from this
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/platforms/android/emulator.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport chalk from 'chalk';\nimport { spawn } from 'child_process';\nimport os from 'os';\n\nimport { Device, getAttachedDevicesAsync, isBootAnimationCompleteAsync } from './adb';\nimport * as Log from '../../../log';\nimport { AbortCommandError } from '../../../utils/errors';\nimport { installExitHooks } from '../../../utils/exit';\n\nexport const EMULATOR_MAX_WAIT_TIMEOUT = 60 * 1000 * 3;\n\nexport function whichEmulator(): string {\n // https://developer.android.com/studio/command-line/variables\n // TODO: Add ANDROID_SDK_ROOT support as well https://github.com/expo/expo/pull/16516#discussion_r820037917\n if (process.env.ANDROID_HOME) {\n return `${process.env.ANDROID_HOME}/emulator/emulator`;\n }\n return 'emulator';\n}\n\n/** Returns a list of emulator names. */\nexport async function listAvdsAsync(): Promise<Device[]> {\n try {\n const { stdout } = await spawnAsync(whichEmulator(), ['-list-avds']);\n return stdout\n .split(os.EOL)\n .filter(Boolean)\n .map((name) => ({\n name,\n type: 'emulator',\n // unsure from this\n isBooted: false,\n isAuthorized: true,\n }));\n } catch {\n return [];\n }\n}\n\n/** Start an Android device and wait until it is booted. */\nexport async function startDeviceAsync(\n device: Pick<Device, 'name'>,\n {\n timeout = EMULATOR_MAX_WAIT_TIMEOUT,\n interval = 1000,\n }: {\n /** Time in milliseconds to wait before asserting a timeout error. */\n timeout?: number;\n interval?: number;\n } = {}\n): Promise<Device> {\n Log.log(`\\u203A Opening emulator ${chalk.bold(device.name)}`);\n\n // Start a process to open an emulator\n const emulatorProcess = spawn(\n whichEmulator(),\n [\n `@${device.name}`,\n // disable animation for faster boot -- this might make it harder to detect if it mounted properly tho\n //'-no-boot-anim'\n ],\n {\n stdio: 'ignore',\n detached: true,\n }\n );\n\n emulatorProcess.unref();\n\n return new Promise<Device>((resolve, reject) => {\n const waitTimer = setInterval(async () => {\n try {\n const bootedDevices = await getAttachedDevicesAsync();\n const connected = bootedDevices.find(({ name }) => name === device.name);\n if (connected) {\n const isBooted = await isBootAnimationCompleteAsync(connected.pid);\n if (isBooted) {\n stopWaiting();\n resolve(connected);\n }\n }\n } catch (error) {\n stopWaiting();\n reject(error);\n }\n }, interval);\n\n // Reject command after timeout\n const maxTimer = setTimeout(() => {\n const manualCommand = `${whichEmulator()} @${device.name}`;\n stopWaitingAndReject(\n `It took too long to start the Android emulator: ${device.name}. You can try starting the emulator manually from the terminal with: ${manualCommand}`\n );\n }, timeout);\n\n const stopWaiting = () => {\n clearTimeout(maxTimer);\n clearInterval(waitTimer);\n removeExitHook();\n };\n\n const stopWaitingAndReject = (message: string) => {\n stopWaiting();\n reject(new Error(message));\n };\n\n const removeExitHook = installExitHooks((signal) => {\n stopWaiting();\n emulatorProcess.kill(signal);\n reject(new AbortCommandError());\n });\n\n emulatorProcess.on('error', ({ message }) => stopWaitingAndReject(message));\n\n emulatorProcess.on('exit', () => {\n const manualCommand = `${whichEmulator()} @${device.name}`;\n stopWaitingAndReject(\n `The emulator (${device.name}) quit before it finished opening. You can try starting the emulator manually from the terminal with: ${manualCommand}`\n );\n });\n });\n}\n"],"names":["whichEmulator","listAvdsAsync","startDeviceAsync","Log","EMULATOR_MAX_WAIT_TIMEOUT","process","env","ANDROID_HOME","stdout","spawnAsync","split","os","EOL","filter","Boolean","map","name","type","isBooted","isAuthorized","device","timeout","interval","log","chalk","bold","emulatorProcess","spawn","stdio","detached","unref","Promise","resolve","reject","waitTimer","setInterval","bootedDevices","getAttachedDevicesAsync","connected","find","isBootAnimationCompleteAsync","pid","stopWaiting","error","maxTimer","setTimeout","manualCommand","stopWaitingAndReject","clearTimeout","clearInterval","removeExitHook","message","Error","installExitHooks","signal","kill","AbortCommandError","on"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/platforms/android/emulator.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport chalk from 'chalk';\nimport { spawn } from 'child_process';\nimport os from 'os';\n\nimport { Device, getAttachedDevicesAsync, isBootAnimationCompleteAsync } from './adb';\nimport * as Log from '../../../log';\nimport { AbortCommandError } from '../../../utils/errors';\nimport { installExitHooks } from '../../../utils/exit';\n\nexport const EMULATOR_MAX_WAIT_TIMEOUT = 60 * 1000 * 3;\n\nexport function whichEmulator(): string {\n // https://developer.android.com/studio/command-line/variables\n // TODO: Add ANDROID_SDK_ROOT support as well https://github.com/expo/expo/pull/16516#discussion_r820037917\n if (process.env.ANDROID_HOME) {\n return `${process.env.ANDROID_HOME}/emulator/emulator`;\n }\n return 'emulator';\n}\n\n/** Returns a list of emulator names. */\nexport async function listAvdsAsync(): Promise<Device[]> {\n try {\n const { stdout } = await spawnAsync(whichEmulator(), ['-list-avds']);\n return (\n stdout\n .split(os.EOL)\n .filter(Boolean)\n /**\n * AVD IDs cannot contain spaces. This removes extra info lines from the output. e.g.\n * \"INFO | Storing crashdata in: /tmp/android-brent/emu-crash-34.1.18.db\n */\n .filter((name) => !name.trim().includes(' '))\n .map((name) => ({\n name,\n type: 'emulator',\n // unsure from this\n isBooted: false,\n isAuthorized: true,\n }))\n );\n } catch {\n return [];\n }\n}\n\n/** Start an Android device and wait until it is booted. */\nexport async function startDeviceAsync(\n device: Pick<Device, 'name'>,\n {\n timeout = EMULATOR_MAX_WAIT_TIMEOUT,\n interval = 1000,\n }: {\n /** Time in milliseconds to wait before asserting a timeout error. */\n timeout?: number;\n interval?: number;\n } = {}\n): Promise<Device> {\n Log.log(`\\u203A Opening emulator ${chalk.bold(device.name)}`);\n\n // Start a process to open an emulator\n const emulatorProcess = spawn(\n whichEmulator(),\n [\n `@${device.name}`,\n // disable animation for faster boot -- this might make it harder to detect if it mounted properly tho\n //'-no-boot-anim'\n ],\n {\n stdio: 'ignore',\n detached: true,\n }\n );\n\n emulatorProcess.unref();\n\n return new Promise<Device>((resolve, reject) => {\n const waitTimer = setInterval(async () => {\n try {\n const bootedDevices = await getAttachedDevicesAsync();\n const connected = bootedDevices.find(({ name }) => name === device.name);\n if (connected) {\n const isBooted = await isBootAnimationCompleteAsync(connected.pid);\n if (isBooted) {\n stopWaiting();\n resolve(connected);\n }\n }\n } catch (error) {\n stopWaiting();\n reject(error);\n }\n }, interval);\n\n // Reject command after timeout\n const maxTimer = setTimeout(() => {\n const manualCommand = `${whichEmulator()} @${device.name}`;\n stopWaitingAndReject(\n `It took too long to start the Android emulator: ${device.name}. You can try starting the emulator manually from the terminal with: ${manualCommand}`\n );\n }, timeout);\n\n const stopWaiting = () => {\n clearTimeout(maxTimer);\n clearInterval(waitTimer);\n removeExitHook();\n };\n\n const stopWaitingAndReject = (message: string) => {\n stopWaiting();\n reject(new Error(message));\n };\n\n const removeExitHook = installExitHooks((signal) => {\n stopWaiting();\n emulatorProcess.kill(signal);\n reject(new AbortCommandError());\n });\n\n emulatorProcess.on('error', ({ message }) => stopWaitingAndReject(message));\n\n emulatorProcess.on('exit', () => {\n const manualCommand = `${whichEmulator()} @${device.name}`;\n stopWaitingAndReject(\n `The emulator (${device.name}) quit before it finished opening. You can try starting the emulator manually from the terminal with: ${manualCommand}`\n );\n });\n });\n}\n"],"names":["whichEmulator","listAvdsAsync","startDeviceAsync","Log","EMULATOR_MAX_WAIT_TIMEOUT","process","env","ANDROID_HOME","stdout","spawnAsync","split","os","EOL","filter","Boolean","name","trim","includes","map","type","isBooted","isAuthorized","device","timeout","interval","log","chalk","bold","emulatorProcess","spawn","stdio","detached","unref","Promise","resolve","reject","waitTimer","setInterval","bootedDevices","getAttachedDevicesAsync","connected","find","isBootAnimationCompleteAsync","pid","stopWaiting","error","maxTimer","setTimeout","manualCommand","stopWaitingAndReject","clearTimeout","clearInterval","removeExitHook","message","Error","installExitHooks","signal","kill","AbortCommandError","on"],"mappings":"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"}
@@ -20,7 +20,10 @@ function createDebugMiddleware(metroBundler) {
20
20
  const ExpoInspectorProxy = (0, _inspectorProxy).createInspectorProxyClass(unstable_InspectorProxy, (0, _inspectorDevice).createInspectorDeviceClass(metroBundler, unstable_Device));
21
21
  const { middleware , websocketEndpoints } = createDevMiddleware({
22
22
  projectRoot: metroBundler.projectRoot,
23
- serverBaseUrl: metroBundler.getJsInspectorBaseUrl(),
23
+ serverBaseUrl: metroBundler.getUrlCreator().constructUrl({
24
+ scheme: "http",
25
+ hostType: "lan"
26
+ }),
24
27
  logger: createLogger(_chalk.default.bold("Debug:")),
25
28
  unstable_InspectorProxy: ExpoInspectorProxy,
26
29
  unstable_experiments: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/metro/debugging/createDebugMiddleware.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport { createInspectorDeviceClass } from './InspectorDevice';\nimport { createInspectorProxyClass } from './InspectorProxy';\nimport { Log } from '../../../../log';\nimport { type MetroBundlerDevServer } from '../MetroBundlerDevServer';\n\nexport function createDebugMiddleware(metroBundler: MetroBundlerDevServer) {\n // Load the React Native debugging tools from project\n // TODO: check if this works with isolated modules\n const { createDevMiddleware, unstable_Device, unstable_InspectorProxy } =\n require('@react-native/dev-middleware') as typeof import('@react-native/dev-middleware');\n\n // Create the extended inspector proxy, using our own device class\n const ExpoInspectorProxy = createInspectorProxyClass(\n unstable_InspectorProxy,\n createInspectorDeviceClass(metroBundler, unstable_Device)\n );\n\n const { middleware, websocketEndpoints } = createDevMiddleware({\n projectRoot: metroBundler.projectRoot,\n serverBaseUrl: metroBundler.getJsInspectorBaseUrl(),\n logger: createLogger(chalk.bold('Debug:')),\n unstable_InspectorProxy: ExpoInspectorProxy,\n unstable_experiments: {\n enableNewDebugger: true,\n },\n });\n\n return {\n debugMiddleware: middleware,\n debugWebsocketEndpoints: websocketEndpoints,\n };\n}\n\nfunction createLogger(\n logPrefix: string\n): Parameters<typeof import('@react-native/dev-middleware').createDevMiddleware>[0]['logger'] {\n return {\n info: (...args) => Log.log(logPrefix, ...args),\n warn: (...args) => Log.warn(logPrefix, ...args),\n error: (...args) => Log.error(logPrefix, ...args),\n };\n}\n"],"names":["createDebugMiddleware","metroBundler","createDevMiddleware","unstable_Device","unstable_InspectorProxy","require","ExpoInspectorProxy","createInspectorProxyClass","createInspectorDeviceClass","middleware","websocketEndpoints","projectRoot","serverBaseUrl","getJsInspectorBaseUrl","logger","createLogger","chalk","bold","unstable_experiments","enableNewDebugger","debugMiddleware","debugWebsocketEndpoints","logPrefix","info","args","Log","log","warn","error"],"mappings":"AAAA;;;;QAOgBA,qBAAqB,GAArBA,qBAAqB;AAPnB,IAAA,MAAO,kCAAP,OAAO,EAAA;AAEkB,IAAA,gBAAmB,WAAnB,mBAAmB,CAAA;AACpB,IAAA,eAAkB,WAAlB,kBAAkB,CAAA;AACxC,IAAA,IAAiB,WAAjB,iBAAiB,CAAA;;;;;;AAG9B,SAASA,qBAAqB,CAACC,YAAmC,EAAE;IACzE,qDAAqD;IACrD,kDAAkD;IAClD,MAAM,EAAEC,mBAAmB,CAAA,EAAEC,eAAe,CAAA,EAAEC,uBAAuB,CAAA,EAAE,GACrEC,OAAO,CAAC,8BAA8B,CAAC,AAAiD,AAAC;IAE3F,kEAAkE;IAClE,MAAMC,kBAAkB,GAAGC,CAAAA,GAAAA,eAAyB,AAGnD,CAAA,0BAHmD,CAClDH,uBAAuB,EACvBI,CAAAA,GAAAA,gBAA0B,AAA+B,CAAA,2BAA/B,CAACP,YAAY,EAAEE,eAAe,CAAC,CAC1D,AAAC;IAEF,MAAM,EAAEM,UAAU,CAAA,EAAEC,kBAAkB,CAAA,EAAE,GAAGR,mBAAmB,CAAC;QAC7DS,WAAW,EAAEV,YAAY,CAACU,WAAW;QACrCC,aAAa,EAAEX,YAAY,CAACY,qBAAqB,EAAE;QACnDC,MAAM,EAAEC,YAAY,CAACC,MAAK,QAAA,CAACC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1Cb,uBAAuB,EAAEE,kBAAkB;QAC3CY,oBAAoB,EAAE;YACpBC,iBAAiB,EAAE,IAAI;SACxB;KACF,CAAC,AAAC;IAEH,OAAO;QACLC,eAAe,EAAEX,UAAU;QAC3BY,uBAAuB,EAAEX,kBAAkB;KAC5C,CAAC;CACH;AAED,SAASK,YAAY,CACnBO,SAAiB,EAC2E;IAC5F,OAAO;QACLC,IAAI,EAAE,CAAIC,GAAAA,IAAI,GAAKC,IAAG,IAAA,CAACC,GAAG,CAACJ,SAAS,KAAKE,IAAI,CAAC;QAAA;QAC9CG,IAAI,EAAE,CAAIH,GAAAA,IAAI,GAAKC,IAAG,IAAA,CAACE,IAAI,CAACL,SAAS,KAAKE,IAAI,CAAC;QAAA;QAC/CI,KAAK,EAAE,CAAIJ,GAAAA,IAAI,GAAKC,IAAG,IAAA,CAACG,KAAK,CAACN,SAAS,KAAKE,IAAI,CAAC;KAClD,CAAC;CACH"}
1
+ {"version":3,"sources":["../../../../../../src/start/server/metro/debugging/createDebugMiddleware.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport { createInspectorDeviceClass } from './InspectorDevice';\nimport { createInspectorProxyClass } from './InspectorProxy';\nimport { Log } from '../../../../log';\nimport { type MetroBundlerDevServer } from '../MetroBundlerDevServer';\n\nexport function createDebugMiddleware(metroBundler: MetroBundlerDevServer) {\n // Load the React Native debugging tools from project\n // TODO: check if this works with isolated modules\n const { createDevMiddleware, unstable_Device, unstable_InspectorProxy } =\n require('@react-native/dev-middleware') as typeof import('@react-native/dev-middleware');\n\n // Create the extended inspector proxy, using our own device class\n const ExpoInspectorProxy = createInspectorProxyClass(\n unstable_InspectorProxy,\n createInspectorDeviceClass(metroBundler, unstable_Device)\n );\n\n const { middleware, websocketEndpoints } = createDevMiddleware({\n projectRoot: metroBundler.projectRoot,\n serverBaseUrl: metroBundler.getUrlCreator().constructUrl({ scheme: 'http', hostType: 'lan' }),\n logger: createLogger(chalk.bold('Debug:')),\n unstable_InspectorProxy: ExpoInspectorProxy,\n unstable_experiments: {\n enableNewDebugger: true,\n },\n });\n\n return {\n debugMiddleware: middleware,\n debugWebsocketEndpoints: websocketEndpoints,\n };\n}\n\nfunction createLogger(\n logPrefix: string\n): Parameters<typeof import('@react-native/dev-middleware').createDevMiddleware>[0]['logger'] {\n return {\n info: (...args) => Log.log(logPrefix, ...args),\n warn: (...args) => Log.warn(logPrefix, ...args),\n error: (...args) => Log.error(logPrefix, ...args),\n };\n}\n"],"names":["createDebugMiddleware","metroBundler","createDevMiddleware","unstable_Device","unstable_InspectorProxy","require","ExpoInspectorProxy","createInspectorProxyClass","createInspectorDeviceClass","middleware","websocketEndpoints","projectRoot","serverBaseUrl","getUrlCreator","constructUrl","scheme","hostType","logger","createLogger","chalk","bold","unstable_experiments","enableNewDebugger","debugMiddleware","debugWebsocketEndpoints","logPrefix","info","args","Log","log","warn","error"],"mappings":"AAAA;;;;QAOgBA,qBAAqB,GAArBA,qBAAqB;AAPnB,IAAA,MAAO,kCAAP,OAAO,EAAA;AAEkB,IAAA,gBAAmB,WAAnB,mBAAmB,CAAA;AACpB,IAAA,eAAkB,WAAlB,kBAAkB,CAAA;AACxC,IAAA,IAAiB,WAAjB,iBAAiB,CAAA;;;;;;AAG9B,SAASA,qBAAqB,CAACC,YAAmC,EAAE;IACzE,qDAAqD;IACrD,kDAAkD;IAClD,MAAM,EAAEC,mBAAmB,CAAA,EAAEC,eAAe,CAAA,EAAEC,uBAAuB,CAAA,EAAE,GACrEC,OAAO,CAAC,8BAA8B,CAAC,AAAiD,AAAC;IAE3F,kEAAkE;IAClE,MAAMC,kBAAkB,GAAGC,CAAAA,GAAAA,eAAyB,AAGnD,CAAA,0BAHmD,CAClDH,uBAAuB,EACvBI,CAAAA,GAAAA,gBAA0B,AAA+B,CAAA,2BAA/B,CAACP,YAAY,EAAEE,eAAe,CAAC,CAC1D,AAAC;IAEF,MAAM,EAAEM,UAAU,CAAA,EAAEC,kBAAkB,CAAA,EAAE,GAAGR,mBAAmB,CAAC;QAC7DS,WAAW,EAAEV,YAAY,CAACU,WAAW;QACrCC,aAAa,EAAEX,YAAY,CAACY,aAAa,EAAE,CAACC,YAAY,CAAC;YAAEC,MAAM,EAAE,MAAM;YAAEC,QAAQ,EAAE,KAAK;SAAE,CAAC;QAC7FC,MAAM,EAAEC,YAAY,CAACC,MAAK,QAAA,CAACC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1ChB,uBAAuB,EAAEE,kBAAkB;QAC3Ce,oBAAoB,EAAE;YACpBC,iBAAiB,EAAE,IAAI;SACxB;KACF,CAAC,AAAC;IAEH,OAAO;QACLC,eAAe,EAAEd,UAAU;QAC3Be,uBAAuB,EAAEd,kBAAkB;KAC5C,CAAC;CACH;AAED,SAASQ,YAAY,CACnBO,SAAiB,EAC2E;IAC5F,OAAO;QACLC,IAAI,EAAE,CAAIC,GAAAA,IAAI,GAAKC,IAAG,IAAA,CAACC,GAAG,CAACJ,SAAS,KAAKE,IAAI,CAAC;QAAA;QAC9CG,IAAI,EAAE,CAAIH,GAAAA,IAAI,GAAKC,IAAG,IAAA,CAACE,IAAI,CAACL,SAAS,KAAKE,IAAI,CAAC;QAAA;QAC/CI,KAAK,EAAE,CAAIJ,GAAAA,IAAI,GAAKC,IAAG,IAAA,CAACG,KAAK,CAACN,SAAS,KAAKE,IAAI,CAAC;KAClD,CAAC;CACH"}
@@ -94,7 +94,7 @@ async function logEventAsync(event, properties = {}) {
94
94
  }
95
95
  const { userId , deviceId } = identifyData;
96
96
  const commonEventProperties = {
97
- source_version: "0.17.6",
97
+ source_version: "0.17.8",
98
98
  source: "expo"
99
99
  };
100
100
  const identity = {
@@ -135,7 +135,7 @@ function getContext() {
135
135
  },
136
136
  app: {
137
137
  name: "expo",
138
- version: "0.17.6"
138
+ version: "0.17.8"
139
139
  },
140
140
  ci: ciInfo.isCI ? {
141
141
  name: ciInfo.name,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/cli",
3
- "version": "0.17.6",
3
+ "version": "0.17.8",
4
4
  "description": "The Expo CLI",
5
5
  "main": "build/bin/cli",
6
6
  "bin": {
@@ -42,7 +42,7 @@
42
42
  "@expo/config": "~8.5.0",
43
43
  "@expo/config-plugins": "~7.8.0",
44
44
  "@expo/devcert": "^1.0.0",
45
- "@expo/env": "~0.2.0",
45
+ "@expo/env": "~0.2.2",
46
46
  "@expo/image-utils": "^0.4.0",
47
47
  "@expo/json-file": "^8.2.37",
48
48
  "@expo/metro-config": "~0.17.0",
@@ -168,5 +168,5 @@
168
168
  "tree-kill": "^1.2.2",
169
169
  "tsd": "^0.28.1"
170
170
  },
171
- "gitHead": "e94e2aac39cbb7f8788869cd6798bbdeadc58f42"
171
+ "gitHead": "d846eb40fc384b9e4b21260af2a990dfe79cf461"
172
172
  }