appium-safari-driver 3.3.2 → 3.3.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"safari.js","names":["SD_BINARY","STARTUP_TIMEOUT","SAFARI_PORT_RANGE","SAFARI_SERVER_GUARD","util","getLockFileGuard","path","resolve","os","tmpdir","timeout","tryRecovery","SafariProxy","JWProxy","proxyCommand","url","method","body","didProcessExit","errors","InvalidContextError","SafariDriverProcess","constructor","log","logger","getLogger","port","proc","isRunning","init","startPort","endPort","findAPortNotInUse","e","Error","safariBin","fs","which","SubProcess","on","stdout","stderr","line","debug","code","signal","info","start","kill","stop","ign","SAFARI_DRIVER_PROCESS","process","once","execSync","pid","SafariDriverServer","proxy","caps","server","base","keepAlive","waitForCondition","command","err","message","waitMs","intervalMs","test","capabilities","firstMatch","alwaysMatch","sessionId"],"sources":["../../lib/safari.js"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport { JWProxy, errors } from 'appium/driver';\nimport { fs, logger, util } from 'appium/support';\nimport { SubProcess } from 'teen_process';\nimport { waitForCondition } from 'asyncbox';\nimport { findAPortNotInUse } from 'portscanner';\nimport { execSync } from 'child_process';\n\nconst SD_BINARY = 'safaridriver';\nconst STARTUP_TIMEOUT = 10000; // seconds\nconst SAFARI_PORT_RANGE = [5100, 5200];\n// This guard is needed to make sure\n// we never run multiple Safari driver processes for the same Appium process\nconst SAFARI_SERVER_GUARD = util.getLockFileGuard(\n path.resolve(os.tmpdir(), 'safari_server_guard.lock'),\n {timeout: 5, tryRecovery: true}\n);\n\n\nclass SafariProxy extends JWProxy {\n async proxyCommand (url, method, body = null) {\n if (this.didProcessExit) {\n throw new errors.InvalidContextError(\n `'${method} ${url}' cannot be proxied to Safari Driver server because ` +\n 'the process is not running (probably crashed). Check the server log for more details');\n }\n return await super.proxyCommand(url, method, body);\n }\n}\n\nclass SafariDriverProcess {\n constructor () {\n this.log = logger.getLogger('SafariDriverProcess');\n this.port = null;\n this.proc = null;\n }\n\n get isRunning () {\n return !!(this.proc?.isRunning);\n }\n\n async init () {\n await SAFARI_SERVER_GUARD(async () => {\n if (this.isRunning) {\n return;\n }\n\n const [startPort, endPort] = SAFARI_PORT_RANGE;\n try {\n this.port = await findAPortNotInUse(startPort, endPort);\n } catch (e) {\n throw new Error(\n `Cannot find any free port in range ${startPort}..${endPort}. ` +\n `Double check the processes that are locking ports within this range and terminate ` +\n `these which are not needed anymore`);\n }\n\n let safariBin;\n try {\n safariBin = await fs.which(SD_BINARY);\n } catch (e) {\n throw new Error(`${SD_BINARY} binary cannot be found in PATH. ` +\n `Please make sure it is present on your system`);\n }\n this.proc = new SubProcess(safariBin, ['-p', this.port, '--diagnose']);\n this.proc.on('output', (stdout, stderr) => {\n const line = stdout || stderr;\n this.log.debug(`[${SD_BINARY}] ${line}`);\n });\n this.proc.on('exit', (code, signal) => {\n this.log.info(`${SD_BINARY} has exited with code ${code}, signal ${signal}`);\n });\n this.log.info(`Starting '${safariBin}' on port ${this.port}`);\n await this.proc.start(0);\n });\n }\n\n async kill () {\n if (this.isRunning) {\n try {\n await this.proc.stop('SIGKILL');\n } catch (ign) {}\n }\n }\n}\n\n// Single server process per Appium instance\nconst SAFARI_DRIVER_PROCESS = new SafariDriverProcess();\nprocess.once('exit', () => {\n if (SAFARI_DRIVER_PROCESS.isRunning) {\n try {\n execSync(`kill ${SAFARI_DRIVER_PROCESS.proc.pid}`);\n } catch (ign) {}\n }\n});\n\nclass SafariDriverServer {\n constructor (log) {\n this.log = log;\n this.proxy = null;\n }\n\n get isRunning () {\n return !!(SAFARI_DRIVER_PROCESS.isRunning);\n }\n\n async start (caps) {\n await SAFARI_DRIVER_PROCESS.init();\n\n this.proxy = new SafariProxy({\n server: '127.0.0.1',\n port: SAFARI_DRIVER_PROCESS.port,\n base: '',\n log: this.log,\n keepAlive: true,\n });\n this.proxy.didProcessExit = false;\n SAFARI_DRIVER_PROCESS.proc.on('exit', () => {\n this.proxy.didProcessExit = true;\n });\n\n try {\n await waitForCondition(async () => {\n try {\n await this.proxy.command('/status', 'GET');\n return true;\n } catch (err) {\n if (this.proxy.didProcessExit) {\n throw new Error(err.message);\n }\n return false;\n }\n }, {\n waitMs: STARTUP_TIMEOUT,\n intervalMs: 1000,\n });\n } catch (e) {\n if (/Condition unmet/.test(e.message)) {\n if (SAFARI_DRIVER_PROCESS.isRunning) {\n // avoid \"frozen\" processes,\n await SAFARI_DRIVER_PROCESS.kill();\n }\n throw new Error(`Safari Driver server is not listening within ${STARTUP_TIMEOUT}ms timeout. ` +\n `Make sure it has been executed manually at least once with '--enable' command line argument. ` +\n `Check the server log for more details`);\n }\n throw e;\n }\n\n await this.proxy.command('/session', 'POST', {\n capabilities: {\n firstMatch: [{}],\n alwaysMatch: caps,\n }\n });\n }\n\n async stop () {\n if (!this.isRunning) {\n this.log.info(`${SD_BINARY} session cannot be stopped, because the server is not running`);\n return;\n }\n\n if (this.proxy?.sessionId) {\n try {\n await this.proxy.command(`/session/${this.proxy.sessionId}`, 'DELETE');\n } catch (e) {\n this.log.info(`${SD_BINARY} session cannot be deleted. Original error: ${e.message}`);\n }\n }\n }\n}\n\nexport default SafariDriverServer;\n"],"mappings":"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"}
1
+ {"version":3,"file":"safari.js","names":["_os","_interopRequireDefault","require","_path","_driver","_support","_teen_process","_asyncbox","_portscanner","_child_process","SD_BINARY","STARTUP_TIMEOUT","SAFARI_PORT_RANGE","SAFARI_SERVER_GUARD","util","getLockFileGuard","path","resolve","os","tmpdir","timeout","tryRecovery","SafariProxy","JWProxy","proxyCommand","url","method","body","didProcessExit","errors","InvalidContextError","SafariDriverProcess","constructor","log","logger","getLogger","port","proc","isRunning","_this$proc","init","startPort","endPort","findAPortNotInUse","e","Error","safariBin","fs","which","SubProcess","on","stdout","stderr","line","debug","code","signal","info","start","kill","stop","ign","SAFARI_DRIVER_PROCESS","process","once","execSync","pid","SafariDriverServer","proxy","caps","server","base","keepAlive","waitForCondition","command","err","message","waitMs","intervalMs","test","capabilities","firstMatch","alwaysMatch","_this$proxy","sessionId","_default","exports","default"],"sources":["../../lib/safari.js"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport { JWProxy, errors } from 'appium/driver';\nimport { fs, logger, util } from 'appium/support';\nimport { SubProcess } from 'teen_process';\nimport { waitForCondition } from 'asyncbox';\nimport { findAPortNotInUse } from 'portscanner';\nimport { execSync } from 'child_process';\n\nconst SD_BINARY = 'safaridriver';\nconst STARTUP_TIMEOUT = 10000; // seconds\nconst SAFARI_PORT_RANGE = [5100, 5200];\n// This guard is needed to make sure\n// we never run multiple Safari driver processes for the same Appium process\nconst SAFARI_SERVER_GUARD = util.getLockFileGuard(\n path.resolve(os.tmpdir(), 'safari_server_guard.lock'),\n {timeout: 5, tryRecovery: true}\n);\n\n\nclass SafariProxy extends JWProxy {\n async proxyCommand (url, method, body = null) {\n if (this.didProcessExit) {\n throw new errors.InvalidContextError(\n `'${method} ${url}' cannot be proxied to Safari Driver server because ` +\n 'the process is not running (probably crashed). Check the server log for more details');\n }\n return await super.proxyCommand(url, method, body);\n }\n}\n\nclass SafariDriverProcess {\n constructor () {\n this.log = logger.getLogger('SafariDriverProcess');\n this.port = null;\n this.proc = null;\n }\n\n get isRunning () {\n return !!(this.proc?.isRunning);\n }\n\n async init () {\n await SAFARI_SERVER_GUARD(async () => {\n if (this.isRunning) {\n return;\n }\n\n const [startPort, endPort] = SAFARI_PORT_RANGE;\n try {\n this.port = await findAPortNotInUse(startPort, endPort);\n } catch (e) {\n throw new Error(\n `Cannot find any free port in range ${startPort}..${endPort}. ` +\n `Double check the processes that are locking ports within this range and terminate ` +\n `these which are not needed anymore`);\n }\n\n let safariBin;\n try {\n safariBin = await fs.which(SD_BINARY);\n } catch (e) {\n throw new Error(`${SD_BINARY} binary cannot be found in PATH. ` +\n `Please make sure it is present on your system`);\n }\n this.proc = new SubProcess(safariBin, ['-p', this.port, '--diagnose']);\n this.proc.on('output', (stdout, stderr) => {\n const line = stdout || stderr;\n this.log.debug(`[${SD_BINARY}] ${line}`);\n });\n this.proc.on('exit', (code, signal) => {\n this.log.info(`${SD_BINARY} has exited with code ${code}, signal ${signal}`);\n });\n this.log.info(`Starting '${safariBin}' on port ${this.port}`);\n await this.proc.start(0);\n });\n }\n\n async kill () {\n if (this.isRunning) {\n try {\n await this.proc.stop('SIGKILL');\n } catch (ign) {}\n }\n }\n}\n\n// Single server process per Appium instance\nconst SAFARI_DRIVER_PROCESS = new SafariDriverProcess();\nprocess.once('exit', () => {\n if (SAFARI_DRIVER_PROCESS.isRunning) {\n try {\n execSync(`kill ${SAFARI_DRIVER_PROCESS.proc.pid}`);\n } catch (ign) {}\n }\n});\n\nclass SafariDriverServer {\n constructor (log) {\n this.log = log;\n this.proxy = null;\n }\n\n get isRunning () {\n return !!(SAFARI_DRIVER_PROCESS.isRunning);\n }\n\n async start (caps) {\n await SAFARI_DRIVER_PROCESS.init();\n\n this.proxy = new SafariProxy({\n server: '127.0.0.1',\n port: SAFARI_DRIVER_PROCESS.port,\n base: '',\n log: this.log,\n keepAlive: true,\n });\n this.proxy.didProcessExit = false;\n SAFARI_DRIVER_PROCESS.proc.on('exit', () => {\n this.proxy.didProcessExit = true;\n });\n\n try {\n await waitForCondition(async () => {\n try {\n await this.proxy.command('/status', 'GET');\n return true;\n } catch (err) {\n if (this.proxy.didProcessExit) {\n throw new Error(err.message);\n }\n return false;\n }\n }, {\n waitMs: STARTUP_TIMEOUT,\n intervalMs: 1000,\n });\n } catch (e) {\n if (/Condition unmet/.test(e.message)) {\n if (SAFARI_DRIVER_PROCESS.isRunning) {\n // avoid \"frozen\" processes,\n await SAFARI_DRIVER_PROCESS.kill();\n }\n throw new Error(`Safari Driver server is not listening within ${STARTUP_TIMEOUT}ms timeout. ` +\n `Make sure it has been executed manually at least once with '--enable' command line argument. ` +\n `Check the server log for more details`);\n }\n throw e;\n }\n\n await this.proxy.command('/session', 'POST', {\n capabilities: {\n firstMatch: [{}],\n alwaysMatch: caps,\n }\n });\n }\n\n async stop () {\n if (!this.isRunning) {\n this.log.info(`${SD_BINARY} session cannot be stopped, because the server is not running`);\n return;\n }\n\n if (this.proxy?.sessionId) {\n try {\n await this.proxy.command(`/session/${this.proxy.sessionId}`, 'DELETE');\n } catch (e) {\n this.log.info(`${SD_BINARY} session cannot be deleted. Original error: ${e.message}`);\n }\n }\n }\n}\n\nexport default SafariDriverServer;\n"],"mappings":"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"}
@@ -21,4 +21,4 @@ function formatCapsForServer(caps) {
21
21
  }
22
22
  return result;
23
23
  }
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTQUZBUklfQ0FQX1BSRUZJWEVTIiwiZm9ybWF0Q2Fwc0ZvclNlcnZlciIsImNhcHMiLCJyZXN1bHQiLCJicm93c2VyTmFtZSIsImJyb3dzZXJWZXJzaW9uIiwicGxhdGZvcm1OYW1lIiwibmFtZSIsInZhbHVlIiwiXyIsInRvUGFpcnMiLCJzb21lIiwicHJlZml4Iiwic3RhcnRzV2l0aCJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCBTQUZBUklfQ0FQX1BSRUZJWEVTID0gWydzYWZhcmk6JywgJ3dlYmtpdDonXTtcblxuZnVuY3Rpb24gZm9ybWF0Q2Fwc0ZvclNlcnZlciAoY2Fwcykge1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgYnJvd3Nlck5hbWU6ICdTYWZhcmknLFxuICAgIGJyb3dzZXJWZXJzaW9uOiBjYXBzLmJyb3dzZXJWZXJzaW9uLFxuICAgIHBsYXRmb3JtTmFtZTogY2Fwcy5wbGF0Zm9ybU5hbWUgfHwgJ2lPUycsXG4gIH07XG4gIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBfLnRvUGFpcnMoY2FwcykpIHtcbiAgICBpZiAoU0FGQVJJX0NBUF9QUkVGSVhFUy5zb21lKChwcmVmaXgpID0+IG5hbWUuc3RhcnRzV2l0aChwcmVmaXgpKSkge1xuICAgICAgcmVzdWx0W25hbWVdID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCB7IGZvcm1hdENhcHNGb3JTZXJ2ZXIgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUVBLE1BQU1BLG1CQUFtQixHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztBQUVsRCxTQUFTQyxtQkFBbUIsQ0FBRUMsSUFBSSxFQUFFO0VBQ2xDLE1BQU1DLE1BQU0sR0FBRztJQUNiQyxXQUFXLEVBQUUsUUFBUTtJQUNyQkMsY0FBYyxFQUFFSCxJQUFJLENBQUNHLGNBQWM7SUFDbkNDLFlBQVksRUFBRUosSUFBSSxDQUFDSSxZQUFZLElBQUk7RUFDckMsQ0FBQztFQUNELEtBQUssTUFBTSxDQUFDQyxJQUFJLEVBQUVDLEtBQUssQ0FBQyxJQUFJQyxlQUFDLENBQUNDLE9BQU8sQ0FBQ1IsSUFBSSxDQUFDLEVBQUU7SUFDM0MsSUFBSUYsbUJBQW1CLENBQUNXLElBQUksQ0FBRUMsTUFBTSxJQUFLTCxJQUFJLENBQUNNLFVBQVUsQ0FBQ0QsTUFBTSxDQUFDLENBQUMsRUFBRTtNQUNqRVQsTUFBTSxDQUFDSSxJQUFJLENBQUMsR0FBR0MsS0FBSztJQUN0QjtFQUNGO0VBQ0EsT0FBT0wsTUFBTTtBQUNmIn0=
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJTQUZBUklfQ0FQX1BSRUZJWEVTIiwiZm9ybWF0Q2Fwc0ZvclNlcnZlciIsImNhcHMiLCJyZXN1bHQiLCJicm93c2VyTmFtZSIsImJyb3dzZXJWZXJzaW9uIiwicGxhdGZvcm1OYW1lIiwibmFtZSIsInZhbHVlIiwiXyIsInRvUGFpcnMiLCJzb21lIiwicHJlZml4Iiwic3RhcnRzV2l0aCJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCBTQUZBUklfQ0FQX1BSRUZJWEVTID0gWydzYWZhcmk6JywgJ3dlYmtpdDonXTtcblxuZnVuY3Rpb24gZm9ybWF0Q2Fwc0ZvclNlcnZlciAoY2Fwcykge1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgYnJvd3Nlck5hbWU6ICdTYWZhcmknLFxuICAgIGJyb3dzZXJWZXJzaW9uOiBjYXBzLmJyb3dzZXJWZXJzaW9uLFxuICAgIHBsYXRmb3JtTmFtZTogY2Fwcy5wbGF0Zm9ybU5hbWUgfHwgJ2lPUycsXG4gIH07XG4gIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBfLnRvUGFpcnMoY2FwcykpIHtcbiAgICBpZiAoU0FGQVJJX0NBUF9QUkVGSVhFUy5zb21lKChwcmVmaXgpID0+IG5hbWUuc3RhcnRzV2l0aChwcmVmaXgpKSkge1xuICAgICAgcmVzdWx0W25hbWVdID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCB7IGZvcm1hdENhcHNGb3JTZXJ2ZXIgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxNQUFNQyxtQkFBbUIsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7QUFFbEQsU0FBU0MsbUJBQW1CQSxDQUFFQyxJQUFJLEVBQUU7RUFDbEMsTUFBTUMsTUFBTSxHQUFHO0lBQ2JDLFdBQVcsRUFBRSxRQUFRO0lBQ3JCQyxjQUFjLEVBQUVILElBQUksQ0FBQ0csY0FBYztJQUNuQ0MsWUFBWSxFQUFFSixJQUFJLENBQUNJLFlBQVksSUFBSTtFQUNyQyxDQUFDO0VBQ0QsS0FBSyxNQUFNLENBQUNDLElBQUksRUFBRUMsS0FBSyxDQUFDLElBQUlDLGVBQUMsQ0FBQ0MsT0FBTyxDQUFDUixJQUFJLENBQUMsRUFBRTtJQUMzQyxJQUFJRixtQkFBbUIsQ0FBQ1csSUFBSSxDQUFFQyxNQUFNLElBQUtMLElBQUksQ0FBQ00sVUFBVSxDQUFDRCxNQUFNLENBQUMsQ0FBQyxFQUFFO01BQ2pFVCxNQUFNLENBQUNJLElBQUksQ0FBQyxHQUFHQyxLQUFLO0lBQ3RCO0VBQ0Y7RUFDQSxPQUFPTCxNQUFNO0FBQ2YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["SAFARI_CAP_PREFIXES","formatCapsForServer","caps","result","browserName","browserVersion","platformName","name","value","_","toPairs","some","prefix","startsWith"],"sources":["../../lib/utils.js"],"sourcesContent":["import _ from 'lodash';\n\nconst SAFARI_CAP_PREFIXES = ['safari:', 'webkit:'];\n\nfunction formatCapsForServer (caps) {\n const result = {\n browserName: 'Safari',\n browserVersion: caps.browserVersion,\n platformName: caps.platformName || 'iOS',\n };\n for (const [name, value] of _.toPairs(caps)) {\n if (SAFARI_CAP_PREFIXES.some((prefix) => name.startsWith(prefix))) {\n result[name] = value;\n }\n }\n return result;\n}\n\nexport { formatCapsForServer };\n"],"mappings":";;;;;;;;AAAA;AAEA,MAAMA,mBAAmB,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC;AAElD,SAASC,mBAAmB,CAAEC,IAAI,EAAE;EAClC,MAAMC,MAAM,GAAG;IACbC,WAAW,EAAE,QAAQ;IACrBC,cAAc,EAAEH,IAAI,CAACG,cAAc;IACnCC,YAAY,EAAEJ,IAAI,CAACI,YAAY,IAAI;EACrC,CAAC;EACD,KAAK,MAAM,CAACC,IAAI,EAAEC,KAAK,CAAC,IAAIC,eAAC,CAACC,OAAO,CAACR,IAAI,CAAC,EAAE;IAC3C,IAAIF,mBAAmB,CAACW,IAAI,CAAEC,MAAM,IAAKL,IAAI,CAACM,UAAU,CAACD,MAAM,CAAC,CAAC,EAAE;MACjET,MAAM,CAACI,IAAI,CAAC,GAAGC,KAAK;IACtB;EACF;EACA,OAAOL,MAAM;AACf"}
1
+ {"version":3,"file":"utils.js","names":["_lodash","_interopRequireDefault","require","SAFARI_CAP_PREFIXES","formatCapsForServer","caps","result","browserName","browserVersion","platformName","name","value","_","toPairs","some","prefix","startsWith"],"sources":["../../lib/utils.js"],"sourcesContent":["import _ from 'lodash';\n\nconst SAFARI_CAP_PREFIXES = ['safari:', 'webkit:'];\n\nfunction formatCapsForServer (caps) {\n const result = {\n browserName: 'Safari',\n browserVersion: caps.browserVersion,\n platformName: caps.platformName || 'iOS',\n };\n for (const [name, value] of _.toPairs(caps)) {\n if (SAFARI_CAP_PREFIXES.some((prefix) => name.startsWith(prefix))) {\n result[name] = value;\n }\n }\n return result;\n}\n\nexport { formatCapsForServer };\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,MAAMC,mBAAmB,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC;AAElD,SAASC,mBAAmBA,CAAEC,IAAI,EAAE;EAClC,MAAMC,MAAM,GAAG;IACbC,WAAW,EAAE,QAAQ;IACrBC,cAAc,EAAEH,IAAI,CAACG,cAAc;IACnCC,YAAY,EAAEJ,IAAI,CAACI,YAAY,IAAI;EACrC,CAAC;EACD,KAAK,MAAM,CAACC,IAAI,EAAEC,KAAK,CAAC,IAAIC,eAAC,CAACC,OAAO,CAACR,IAAI,CAAC,EAAE;IAC3C,IAAIF,mBAAmB,CAACW,IAAI,CAAEC,MAAM,IAAKL,IAAI,CAACM,UAAU,CAACD,MAAM,CAAC,CAAC,EAAE;MACjET,MAAM,CAACI,IAAI,CAAC,GAAGC,KAAK;IACtB;EACF;EACA,OAAOL,MAAM;AACf"}