2026-03-03T18:44:58,863 Created temporary directory: /tmp/pip-ephem-wheel-cache-na1k5p5x 2026-03-03T18:44:58,865 Created temporary directory: /tmp/pip-build-tracker-_mivibjj 2026-03-03T18:44:58,866 Initialized build tracking at /tmp/pip-build-tracker-_mivibjj 2026-03-03T18:44:58,866 Created build tracker: /tmp/pip-build-tracker-_mivibjj 2026-03-03T18:44:58,867 Entered build tracker: /tmp/pip-build-tracker-_mivibjj 2026-03-03T18:44:58,868 Created temporary directory: /tmp/pip-wheel-7y9ltgef 2026-03-03T18:44:58,871 DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 2026-03-03T18:44:58,873 Created temporary directory: /tmp/pip-ephem-wheel-cache-rtn84vge 2026-03-03T18:44:58,895 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-03-03T18:44:58,899 2 location(s) to search for versions of mmclaw: 2026-03-03T18:44:58,899 * https://pypi.org/simple/mmclaw/ 2026-03-03T18:44:58,899 * https://www.piwheels.org/simple/mmclaw/ 2026-03-03T18:44:58,900 Fetching project page and analyzing links: https://pypi.org/simple/mmclaw/ 2026-03-03T18:44:58,900 Getting page https://pypi.org/simple/mmclaw/ 2026-03-03T18:44:58,902 Found index url https://pypi.org/simple 2026-03-03T18:44:59,036 Fetched page https://pypi.org/simple/mmclaw/ as application/vnd.pypi.simple.v1+json 2026-03-03T18:44:59,044 Found link https://files.pythonhosted.org/packages/ec/23/36f464ad354d3e185de9136e9fecb66b0a81ad2c2f0ba187a1b733437696/mmclaw-0.0.11.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.11 2026-03-03T18:44:59,045 Found link https://files.pythonhosted.org/packages/09/26/81ace03c013cf7b0602fb0162035f1405acd561862e65f5395ab528ca536/mmclaw-0.0.13.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.13 2026-03-03T18:44:59,046 Found link https://files.pythonhosted.org/packages/62/f6/0ecde0557c0b642b88fc47135a3edc916d57b25410069e27d4bb20998f18/mmclaw-0.0.14.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.14 2026-03-03T18:44:59,047 Found link https://files.pythonhosted.org/packages/f5/14/b3aa59333bf89acd1426f6d2d115cdc9a73788e472265c1f6c02071f1e71/mmclaw-0.0.15.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.15 2026-03-03T18:44:59,048 Found link https://files.pythonhosted.org/packages/5f/78/fe3e03ec024ecd16534df7e331cfa9ac11e62b2bc654fa7a18b0c5aebc2c/mmclaw-0.0.16.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.16 2026-03-03T18:44:59,049 Found link https://files.pythonhosted.org/packages/c0/d3/53d742d09522b5ff9bdff3814046b06e7fd02298fd451f55549fe35d3d00/mmclaw-0.0.17.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.17 2026-03-03T18:44:59,050 Found link https://files.pythonhosted.org/packages/30/d4/a00018ecbafeebb842da313cfb959cf05f5d9fb1b62247229fd434dcfc92/mmclaw-0.0.18.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.18 2026-03-03T18:44:59,051 Found link https://files.pythonhosted.org/packages/0e/bd/949ad88edd4f0dd0ae04b384aecd19640e2e72904fc0c64eb407eb09a742/mmclaw-0.0.19.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.19 2026-03-03T18:44:59,052 Found link https://files.pythonhosted.org/packages/ff/39/91fe02b641a7f37f6f8e9987835bfd1e1127162c90763ec5386420d8b242/mmclaw-0.0.20.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.20 2026-03-03T18:44:59,053 Found link https://files.pythonhosted.org/packages/b1/f7/36c17ee37a7ea360a7eff08aa919d5e11e38c0fba71818eb469670742ba4/mmclaw-0.0.21.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.21 2026-03-03T18:44:59,054 Found link https://files.pythonhosted.org/packages/93/e4/4d9081105026ebc2ed1fe0406bb5a84554d8b1caf6549d1a1525464bde3c/mmclaw-0.0.22.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.22 2026-03-03T18:44:59,056 Found link https://files.pythonhosted.org/packages/79/9d/7014d68dfb2b8f241e5d6f2a148b82ff5645b89db3f8194fde7d9017961e/mmclaw-0.0.23.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.23 2026-03-03T18:44:59,056 Found link https://files.pythonhosted.org/packages/6b/a8/b20da7e5401d8a1dbdc73bf010714b2a87d6e192ef76504000ebb5cc6250/mmclaw-0.0.24.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.24 2026-03-03T18:44:59,057 Found link https://files.pythonhosted.org/packages/2c/49/33fdb984921d2c27e5676e7ccc13d6f1d8f56f57eada4b7d78371b7c085c/mmclaw-0.0.25.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.25 2026-03-03T18:44:59,058 Found link https://files.pythonhosted.org/packages/82/58/88f5d81049cc28c648b5b25ea48607987e280e2db35ca6beb4464f0a18f5/mmclaw-0.0.26.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.26 2026-03-03T18:44:59,059 Found link https://files.pythonhosted.org/packages/fa/f9/0227a494a36fc4ea4bb75bf9e8322f3a163377f6402adbb5b1fc25f0615f/mmclaw-0.0.27.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.27 2026-03-03T18:44:59,060 Found link https://files.pythonhosted.org/packages/d1/81/9deeb6b4d8bee00bdc95ccbc172de1d69fee6fc2ee6af4d69e55f21ab745/mmclaw-0.0.28.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.28 2026-03-03T18:44:59,061 Found link https://files.pythonhosted.org/packages/49/08/7737a6514f218f8d977355426f12e15ea194311fbdbc914a7c8365e693d5/mmclaw-0.0.29.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.29 2026-03-03T18:44:59,061 Found link https://files.pythonhosted.org/packages/d2/c2/55cc6eb76aaa1feaed39c8eda51dc8c834462993264992d0f676d6f5c8d7/mmclaw-0.0.30.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.30 2026-03-03T18:44:59,062 Found link https://files.pythonhosted.org/packages/24/28/76965eba6cc1d3f6eee7e6ba19cb0d9b9890eecc2db9ba0fe960b4a4963c/mmclaw-0.0.31.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.31 2026-03-03T18:44:59,063 Found link https://files.pythonhosted.org/packages/12/ab/dd8dd7eb444474e0282ef463b6718d9233d654dc26e47ccaed61c8863df2/mmclaw-0.0.32.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.32 2026-03-03T18:44:59,064 Found link https://files.pythonhosted.org/packages/24/6c/118e9f1972e3c928fe2f1041b68d005ff3e65f0266e97f8a1fe3fe552dc2/mmclaw-0.0.33.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.33 2026-03-03T18:44:59,065 Found link https://files.pythonhosted.org/packages/5f/47/0d02ce008e6100419967a71db3131ac840646025b68a9a5d346ab79a4f28/mmclaw-0.0.34.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.34 2026-03-03T18:44:59,066 Found link https://files.pythonhosted.org/packages/fd/9d/38c11475834c0c64e00ccf51791b853d5b82dfbba276ed20186649c00125/mmclaw-0.0.35.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.35 2026-03-03T18:44:59,067 Found link https://files.pythonhosted.org/packages/9f/d3/b753ccff50cce0b2c35cc1ef1b48f2b43c4fbb390b4d991260910cee8d77/mmclaw-0.0.36.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.36 2026-03-03T18:44:59,068 Found link https://files.pythonhosted.org/packages/7e/70/04b259c09f875471c0783fa106e217d536b99e66d1cef9d77212a8a70d13/mmclaw-0.0.37.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.37 2026-03-03T18:44:59,069 Found link https://files.pythonhosted.org/packages/40/0b/4b26d63c72e0196aad095e10d95e30a10d8cd7a1c9b6c63b412a1d1ed87f/mmclaw-0.0.38.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.38 2026-03-03T18:44:59,070 Found link https://files.pythonhosted.org/packages/b9/3f/2e2dd41393ffd3eb515d9cfc8b49aa164c2bbead10e6e51268f41226bfc7/mmclaw-0.0.39.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.39 2026-03-03T18:44:59,072 Found link https://files.pythonhosted.org/packages/66/8b/12ae71ab9d737eb5369d2d5d4af17de0cc8ccac397d1687b40bf9bc54695/mmclaw-0.0.40.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.40 2026-03-03T18:44:59,072 Found link https://files.pythonhosted.org/packages/b0/6b/c2740007fdd8c2622db663570c802736bf42867d28350014364ce04e61a5/mmclaw-0.0.41.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.41 2026-03-03T18:44:59,073 Found link https://files.pythonhosted.org/packages/e9/49/a704ef0bf739e1b2ee285128e375ab0703bef716da46b7b5c3bb970bf2c3/mmclaw-0.0.42.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.42 2026-03-03T18:44:59,074 Found link https://files.pythonhosted.org/packages/1e/57/442aad2a45b9a3cf5cca945b1421e034b65beea62da445960161663b3cd7/mmclaw-0.0.43.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.43 2026-03-03T18:44:59,075 Found link https://files.pythonhosted.org/packages/37/c1/3ef52d892eccdb430240ce4723136fcc1b19ea9b293bfbd695065d96ea16/mmclaw-0.0.44.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.44 2026-03-03T18:44:59,076 Found link https://files.pythonhosted.org/packages/35/b3/c57ab1f4a1119cb7378db972e46bdf2222a56071847cc6a678d14a79d326/mmclaw-0.0.45.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.45 2026-03-03T18:44:59,077 Found link https://files.pythonhosted.org/packages/93/08/d7ac510bb09f218912bb6163db8658cd47f31024f294caff5e825c07d6c3/mmclaw-0.0.46.tar.gz (from https://pypi.org/simple/mmclaw/) (requires-python:>=3.8), version: 0.0.46 2026-03-03T18:44:59,077 Fetching project page and analyzing links: https://www.piwheels.org/simple/mmclaw/ 2026-03-03T18:44:59,078 Getting page https://www.piwheels.org/simple/mmclaw/ 2026-03-03T18:44:59,079 Found index url https://www.piwheels.org/simple 2026-03-03T18:44:59,237 Fetched page https://www.piwheels.org/simple/mmclaw/ as text/html 2026-03-03T18:44:59,244 Skipping link: No binaries permitted for mmclaw: https://www.piwheels.org/simple/mmclaw/mmclaw-0.0.32-py3-none-any.whl#sha256=46ff021279f825e4082e97d955c5800ad27b1f526b39639052b4f8c97b7751a3 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,245 Skipping link: No binaries permitted for mmclaw: https://www.piwheels.org/simple/mmclaw/mmclaw-0.0.31-py3-none-any.whl#sha256=d2284f476daa582260b3466c21f3524309aa381e5dce389fbdd41d6f7a0092e8 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,245 Skipping link: No binaries permitted for mmclaw: https://www.piwheels.org/simple/mmclaw/mmclaw-0.0.30-py3-none-any.whl#sha256=3b8c6db8f689d26c703a48937b15e387ed8f71ba6677ab3d903682c01ec70368 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,246 Skipping link: No binaries permitted for mmclaw: https://www.piwheels.org/simple/mmclaw/mmclaw-0.0.29-py3-none-any.whl#sha256=a0ac200dc6d84fff3bf4d75deef25b74a0da4e36c5d63b7f72af5e60222bf60f (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,247 Skipping link: No binaries permitted for mmclaw: https://www.piwheels.org/simple/mmclaw/mmclaw-0.0.28-py3-none-any.whl#sha256=1f84ddaa206854d74220aa927a92eaef7650db4c282e2da41593777cfa3f6bae (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,247 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.27-py3-none-any.whl#sha256=9ba030e2b24dba8df896add3d771d4fcbb3fc50ceec7046f655f57b874899a10 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,248 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.26-py3-none-any.whl#sha256=7ff8c464d48619649224b8b959fcf9ac39ca05b027dd709dc57e004a76f173b3 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,249 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.25-py3-none-any.whl#sha256=68f58e221e4dc4644fbd940591684f6ef320ac607d6199103529e8414ce6d168 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,249 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.24-py3-none-any.whl#sha256=876ef46733523dc47d4b27b9b15ac0c60f4a639b452d2033008bb1c4e39c195b (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,250 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.23-py3-none-any.whl#sha256=c55878c68e584929d9967ca7752f42ac30c551215573dd9d75014aa946095ab4 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,250 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.22-py3-none-any.whl#sha256=dd79ae9a594cfad842ca605f77c01e4e570500122318a637392cb3f6807cde79 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,251 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.21-py3-none-any.whl#sha256=075496a34e7105fa40f954b23b6e7a8583838c2a3dccc13412b791f1a48d1018 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,251 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.20-py3-none-any.whl#sha256=e827e5e2bb0f64acce495827fff2932ed44cff0268ea6978a6758bf367a17478 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,252 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.19-py3-none-any.whl#sha256=16ea8ffbb1ae4c15320e557d12e5a73ee26594cd0b41e69f889f6cae2526b777 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,252 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.18-py3-none-any.whl#sha256=e505403c13349aaf03898b8a1ea7bd9f29ee4a6675b021547640e6611dd7afe2 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,253 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.17-py3-none-any.whl#sha256=a43a0592890ab00a4d6fbda643ca4a6ea96b7ed8c70de7113621f23f48df49ed (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,254 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.16-py3-none-any.whl#sha256=179bb6200694ffc6f7b4f8c0393dba0eed7c98d656d8bab38ca2507ae05263ec (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,254 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.15-py3-none-any.whl#sha256=468eab080b8ff3c8533039798692acb6c4203975c1a8069ce4064cc93df8db5d (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,255 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.14-py3-none-any.whl#sha256=6a8eee09abc9c381acd7b769a55a4791195b68ba3ac9ad92af2afaeb31011149 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,255 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.13-py3-none-any.whl#sha256=ec4c34d91b4ddee9ab7e11ab1753b30fa6024feb892bdab937eaad9f7fec95ed (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,256 Skipping link: No binaries permitted for mmclaw: https://archive1.piwheels.org/simple/mmclaw/mmclaw-0.0.11-py3-none-any.whl#sha256=37199989ae95a23a4cdb4e9fa1792d823e87f71cd135d8b1a19cb7ae2b83f901 (from https://www.piwheels.org/simple/mmclaw/) (requires-python:>=3.8) 2026-03-03T18:44:59,257 Skipping link: not a file: https://www.piwheels.org/simple/mmclaw/ 2026-03-03T18:44:59,257 Skipping link: not a file: https://pypi.org/simple/mmclaw/ 2026-03-03T18:44:59,282 Given no hashes to check 1 links for project 'mmclaw': discarding no candidates 2026-03-03T18:44:59,302 Collecting mmclaw==0.0.33 2026-03-03T18:44:59,304 Created temporary directory: /tmp/pip-unpack-ivkbg6r_ 2026-03-03T18:44:59,513 Downloading mmclaw-0.0.33.tar.gz (49 kB) 2026-03-03T18:44:59,609 Added mmclaw==0.0.33 from https://files.pythonhosted.org/packages/24/6c/118e9f1972e3c928fe2f1041b68d005ff3e65f0266e97f8a1fe3fe552dc2/mmclaw-0.0.33.tar.gz to build tracker '/tmp/pip-build-tracker-_mivibjj' 2026-03-03T18:44:59,611 Running setup.py (path:/tmp/pip-wheel-7y9ltgef/mmclaw_7e51f2974761468aa524cb030216730e/setup.py) egg_info for package mmclaw 2026-03-03T18:44:59,612 Created temporary directory: /tmp/pip-pip-egg-info-31n7t_0o 2026-03-03T18:44:59,612 Preparing metadata (setup.py): started 2026-03-03T18:44:59,613 Running command python setup.py egg_info 2026-03-03T18:45:00,554 running egg_info 2026-03-03T18:45:00,581 creating /tmp/pip-pip-egg-info-31n7t_0o/mmclaw.egg-info 2026-03-03T18:45:00,582 writing /tmp/pip-pip-egg-info-31n7t_0o/mmclaw.egg-info/PKG-INFO 2026-03-03T18:45:00,587 writing dependency_links to /tmp/pip-pip-egg-info-31n7t_0o/mmclaw.egg-info/dependency_links.txt 2026-03-03T18:45:00,588 writing entry points to /tmp/pip-pip-egg-info-31n7t_0o/mmclaw.egg-info/entry_points.txt 2026-03-03T18:45:00,590 writing requirements to /tmp/pip-pip-egg-info-31n7t_0o/mmclaw.egg-info/requires.txt 2026-03-03T18:45:00,591 writing top-level names to /tmp/pip-pip-egg-info-31n7t_0o/mmclaw.egg-info/top_level.txt 2026-03-03T18:45:00,593 writing manifest file '/tmp/pip-pip-egg-info-31n7t_0o/mmclaw.egg-info/SOURCES.txt' 2026-03-03T18:45:00,688 reading manifest file '/tmp/pip-pip-egg-info-31n7t_0o/mmclaw.egg-info/SOURCES.txt' 2026-03-03T18:45:00,690 adding license file 'LICENSE' 2026-03-03T18:45:00,693 writing manifest file '/tmp/pip-pip-egg-info-31n7t_0o/mmclaw.egg-info/SOURCES.txt' 2026-03-03T18:45:00,800 Preparing metadata (setup.py): finished with status 'done' 2026-03-03T18:45:00,804 Source in /tmp/pip-wheel-7y9ltgef/mmclaw_7e51f2974761468aa524cb030216730e has version 0.0.33, which satisfies requirement mmclaw==0.0.33 from https://files.pythonhosted.org/packages/24/6c/118e9f1972e3c928fe2f1041b68d005ff3e65f0266e97f8a1fe3fe552dc2/mmclaw-0.0.33.tar.gz 2026-03-03T18:45:00,805 Removed mmclaw==0.0.33 from https://files.pythonhosted.org/packages/24/6c/118e9f1972e3c928fe2f1041b68d005ff3e65f0266e97f8a1fe3fe552dc2/mmclaw-0.0.33.tar.gz from build tracker '/tmp/pip-build-tracker-_mivibjj' 2026-03-03T18:45:00,811 Created temporary directory: /tmp/pip-unpack-sxmwv6mf 2026-03-03T18:45:00,812 Building wheels for collected packages: mmclaw 2026-03-03T18:45:00,816 Created temporary directory: /tmp/pip-wheel-nnl0_mdo 2026-03-03T18:45:00,817 Building wheel for mmclaw (setup.py): started 2026-03-03T18:45:00,818 Destination directory: /tmp/pip-wheel-nnl0_mdo 2026-03-03T18:45:00,819 Running command python setup.py bdist_wheel 2026-03-03T18:45:01,665 running bdist_wheel 2026-03-03T18:45:01,793 running build 2026-03-03T18:45:01,794 running build_py 2026-03-03T18:45:01,827 creating build/lib/mmclaw 2026-03-03T18:45:01,829 copying mmclaw/providers.py -> build/lib/mmclaw 2026-03-03T18:45:01,832 copying mmclaw/kernel.py -> build/lib/mmclaw 2026-03-03T18:45:01,835 copying mmclaw/__init__.py -> build/lib/mmclaw 2026-03-03T18:45:01,837 copying mmclaw/tools.py -> build/lib/mmclaw 2026-03-03T18:45:01,839 copying mmclaw/connectors.py -> build/lib/mmclaw 2026-03-03T18:45:01,842 copying mmclaw/config.py -> build/lib/mmclaw 2026-03-03T18:45:01,845 copying mmclaw/main.py -> build/lib/mmclaw 2026-03-03T18:45:01,847 running egg_info 2026-03-03T18:45:01,874 writing mmclaw.egg-info/PKG-INFO 2026-03-03T18:45:01,879 writing dependency_links to mmclaw.egg-info/dependency_links.txt 2026-03-03T18:45:01,880 writing entry points to mmclaw.egg-info/entry_points.txt 2026-03-03T18:45:01,883 writing requirements to mmclaw.egg-info/requires.txt 2026-03-03T18:45:01,884 writing top-level names to mmclaw.egg-info/top_level.txt 2026-03-03T18:45:01,917 reading manifest file 'mmclaw.egg-info/SOURCES.txt' 2026-03-03T18:45:01,920 adding license file 'LICENSE' 2026-03-03T18:45:01,923 writing manifest file 'mmclaw.egg-info/SOURCES.txt' 2026-03-03T18:45:01,926 /usr/local/lib/python3.11/dist-packages/setuptools/command/build_py.py:215: _Warning: Package 'mmclaw.skills.codex' is absent from the `packages` configuration. 2026-03-03T18:45:01,926 !! 2026-03-03T18:45:01,927 ******************************************************************************** 2026-03-03T18:45:01,928 ############################ 2026-03-03T18:45:01,928 # Package would be ignored # 2026-03-03T18:45:01,928 ############################ 2026-03-03T18:45:01,929 Python recognizes 'mmclaw.skills.codex' as an importable package[^1], 2026-03-03T18:45:01,929 but it is absent from setuptools' `packages` configuration. 2026-03-03T18:45:01,930 This leads to an ambiguous overall configuration. If you want to distribute this 2026-03-03T18:45:01,931 package, please make sure that 'mmclaw.skills.codex' is explicitly added 2026-03-03T18:45:01,931 to the `packages` configuration field. 2026-03-03T18:45:01,932 Alternatively, you can also rely on setuptools' discovery methods 2026-03-03T18:45:01,933 (for example by using `find_namespace_packages(...)`/`find_namespace:` 2026-03-03T18:45:01,933 instead of `find_packages(...)`/`find:`). 2026-03-03T18:45:01,934 You can read more about "package discovery" on setuptools documentation page: 2026-03-03T18:45:01,935 - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 2026-03-03T18:45:01,936 If you don't want 'mmclaw.skills.codex' to be distributed and are 2026-03-03T18:45:01,936 already explicitly excluding 'mmclaw.skills.codex' via 2026-03-03T18:45:01,937 `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 2026-03-03T18:45:01,937 you can try to use `exclude_package_data`, or `include-package-data=False` in 2026-03-03T18:45:01,938 combination with a more fine grained `package-data` configuration. 2026-03-03T18:45:01,939 You can read more about "package data files" on setuptools documentation page: 2026-03-03T18:45:01,940 - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 2026-03-03T18:45:01,941 [^1]: For Python, any directory (with suitable naming) can be imported, 2026-03-03T18:45:01,942 even if it does not contain any `.py` files. 2026-03-03T18:45:01,942 On the other hand, currently there is no concept of package data 2026-03-03T18:45:01,943 directory, all directories are treated like packages. 2026-03-03T18:45:01,943 ******************************************************************************** 2026-03-03T18:45:01,944 !! 2026-03-03T18:45:01,945 check.warn(importable) 2026-03-03T18:45:01,945 /usr/local/lib/python3.11/dist-packages/setuptools/command/build_py.py:215: _Warning: Package 'mmclaw.skills.ngrok' is absent from the `packages` configuration. 2026-03-03T18:45:01,946 !! 2026-03-03T18:45:01,947 ******************************************************************************** 2026-03-03T18:45:01,947 ############################ 2026-03-03T18:45:01,948 # Package would be ignored # 2026-03-03T18:45:01,949 ############################ 2026-03-03T18:45:01,949 Python recognizes 'mmclaw.skills.ngrok' as an importable package[^1], 2026-03-03T18:45:01,950 but it is absent from setuptools' `packages` configuration. 2026-03-03T18:45:01,951 This leads to an ambiguous overall configuration. If you want to distribute this 2026-03-03T18:45:01,951 package, please make sure that 'mmclaw.skills.ngrok' is explicitly added 2026-03-03T18:45:01,951 to the `packages` configuration field. 2026-03-03T18:45:01,952 Alternatively, you can also rely on setuptools' discovery methods 2026-03-03T18:45:01,953 (for example by using `find_namespace_packages(...)`/`find_namespace:` 2026-03-03T18:45:01,953 instead of `find_packages(...)`/`find:`). 2026-03-03T18:45:01,954 You can read more about "package discovery" on setuptools documentation page: 2026-03-03T18:45:01,955 - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 2026-03-03T18:45:01,955 If you don't want 'mmclaw.skills.ngrok' to be distributed and are 2026-03-03T18:45:01,956 already explicitly excluding 'mmclaw.skills.ngrok' via 2026-03-03T18:45:01,957 `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 2026-03-03T18:45:01,957 you can try to use `exclude_package_data`, or `include-package-data=False` in 2026-03-03T18:45:01,957 combination with a more fine grained `package-data` configuration. 2026-03-03T18:45:01,958 You can read more about "package data files" on setuptools documentation page: 2026-03-03T18:45:01,959 - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 2026-03-03T18:45:01,960 [^1]: For Python, any directory (with suitable naming) can be imported, 2026-03-03T18:45:01,961 even if it does not contain any `.py` files. 2026-03-03T18:45:01,961 On the other hand, currently there is no concept of package data 2026-03-03T18:45:01,962 directory, all directories are treated like packages. 2026-03-03T18:45:01,962 ******************************************************************************** 2026-03-03T18:45:01,963 !! 2026-03-03T18:45:01,964 check.warn(importable) 2026-03-03T18:45:01,964 /usr/local/lib/python3.11/dist-packages/setuptools/command/build_py.py:215: _Warning: Package 'mmclaw.skills.notion' is absent from the `packages` configuration. 2026-03-03T18:45:01,965 !! 2026-03-03T18:45:01,966 ******************************************************************************** 2026-03-03T18:45:01,966 ############################ 2026-03-03T18:45:01,967 # Package would be ignored # 2026-03-03T18:45:01,967 ############################ 2026-03-03T18:45:01,967 Python recognizes 'mmclaw.skills.notion' as an importable package[^1], 2026-03-03T18:45:01,968 but it is absent from setuptools' `packages` configuration. 2026-03-03T18:45:01,969 This leads to an ambiguous overall configuration. If you want to distribute this 2026-03-03T18:45:01,969 package, please make sure that 'mmclaw.skills.notion' is explicitly added 2026-03-03T18:45:01,970 to the `packages` configuration field. 2026-03-03T18:45:01,971 Alternatively, you can also rely on setuptools' discovery methods 2026-03-03T18:45:01,971 (for example by using `find_namespace_packages(...)`/`find_namespace:` 2026-03-03T18:45:01,972 instead of `find_packages(...)`/`find:`). 2026-03-03T18:45:01,973 You can read more about "package discovery" on setuptools documentation page: 2026-03-03T18:45:01,974 - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 2026-03-03T18:45:01,975 If you don't want 'mmclaw.skills.notion' to be distributed and are 2026-03-03T18:45:01,976 already explicitly excluding 'mmclaw.skills.notion' via 2026-03-03T18:45:01,976 `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 2026-03-03T18:45:01,977 you can try to use `exclude_package_data`, or `include-package-data=False` in 2026-03-03T18:45:01,977 combination with a more fine grained `package-data` configuration. 2026-03-03T18:45:01,978 You can read more about "package data files" on setuptools documentation page: 2026-03-03T18:45:01,979 - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 2026-03-03T18:45:01,980 [^1]: For Python, any directory (with suitable naming) can be imported, 2026-03-03T18:45:01,981 even if it does not contain any `.py` files. 2026-03-03T18:45:01,981 On the other hand, currently there is no concept of package data 2026-03-03T18:45:01,982 directory, all directories are treated like packages. 2026-03-03T18:45:01,982 ******************************************************************************** 2026-03-03T18:45:01,983 !! 2026-03-03T18:45:01,984 check.warn(importable) 2026-03-03T18:45:01,984 /usr/local/lib/python3.11/dist-packages/setuptools/command/build_py.py:215: _Warning: Package 'mmclaw.skills.pdfs' is absent from the `packages` configuration. 2026-03-03T18:45:01,984 !! 2026-03-03T18:45:01,985 ******************************************************************************** 2026-03-03T18:45:01,986 ############################ 2026-03-03T18:45:01,986 # Package would be ignored # 2026-03-03T18:45:01,987 ############################ 2026-03-03T18:45:01,987 Python recognizes 'mmclaw.skills.pdfs' as an importable package[^1], 2026-03-03T18:45:01,988 but it is absent from setuptools' `packages` configuration. 2026-03-03T18:45:01,989 This leads to an ambiguous overall configuration. If you want to distribute this 2026-03-03T18:45:01,989 package, please make sure that 'mmclaw.skills.pdfs' is explicitly added 2026-03-03T18:45:01,990 to the `packages` configuration field. 2026-03-03T18:45:01,991 Alternatively, you can also rely on setuptools' discovery methods 2026-03-03T18:45:01,991 (for example by using `find_namespace_packages(...)`/`find_namespace:` 2026-03-03T18:45:01,992 instead of `find_packages(...)`/`find:`). 2026-03-03T18:45:01,993 You can read more about "package discovery" on setuptools documentation page: 2026-03-03T18:45:01,994 - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 2026-03-03T18:45:01,995 If you don't want 'mmclaw.skills.pdfs' to be distributed and are 2026-03-03T18:45:01,996 already explicitly excluding 'mmclaw.skills.pdfs' via 2026-03-03T18:45:01,996 `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 2026-03-03T18:45:01,997 you can try to use `exclude_package_data`, or `include-package-data=False` in 2026-03-03T18:45:01,998 combination with a more fine grained `package-data` configuration. 2026-03-03T18:45:01,999 You can read more about "package data files" on setuptools documentation page: 2026-03-03T18:45:02,000 - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 2026-03-03T18:45:02,001 [^1]: For Python, any directory (with suitable naming) can be imported, 2026-03-03T18:45:02,002 even if it does not contain any `.py` files. 2026-03-03T18:45:02,002 On the other hand, currently there is no concept of package data 2026-03-03T18:45:02,003 directory, all directories are treated like packages. 2026-03-03T18:45:02,003 ******************************************************************************** 2026-03-03T18:45:02,005 !! 2026-03-03T18:45:02,005 check.warn(importable) 2026-03-03T18:45:02,006 /usr/local/lib/python3.11/dist-packages/setuptools/command/build_py.py:215: _Warning: Package 'mmclaw.skills.tmux' is absent from the `packages` configuration. 2026-03-03T18:45:02,006 !! 2026-03-03T18:45:02,007 ******************************************************************************** 2026-03-03T18:45:02,008 ############################ 2026-03-03T18:45:02,008 # Package would be ignored # 2026-03-03T18:45:02,009 ############################ 2026-03-03T18:45:02,009 Python recognizes 'mmclaw.skills.tmux' as an importable package[^1], 2026-03-03T18:45:02,010 but it is absent from setuptools' `packages` configuration. 2026-03-03T18:45:02,010 This leads to an ambiguous overall configuration. If you want to distribute this 2026-03-03T18:45:02,011 package, please make sure that 'mmclaw.skills.tmux' is explicitly added 2026-03-03T18:45:02,011 to the `packages` configuration field. 2026-03-03T18:45:02,012 Alternatively, you can also rely on setuptools' discovery methods 2026-03-03T18:45:02,013 (for example by using `find_namespace_packages(...)`/`find_namespace:` 2026-03-03T18:45:02,013 instead of `find_packages(...)`/`find:`). 2026-03-03T18:45:02,014 You can read more about "package discovery" on setuptools documentation page: 2026-03-03T18:45:02,015 - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 2026-03-03T18:45:02,016 If you don't want 'mmclaw.skills.tmux' to be distributed and are 2026-03-03T18:45:02,017 already explicitly excluding 'mmclaw.skills.tmux' via 2026-03-03T18:45:02,017 `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 2026-03-03T18:45:02,017 you can try to use `exclude_package_data`, or `include-package-data=False` in 2026-03-03T18:45:02,018 combination with a more fine grained `package-data` configuration. 2026-03-03T18:45:02,019 You can read more about "package data files" on setuptools documentation page: 2026-03-03T18:45:02,020 - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 2026-03-03T18:45:02,022 [^1]: For Python, any directory (with suitable naming) can be imported, 2026-03-03T18:45:02,022 even if it does not contain any `.py` files. 2026-03-03T18:45:02,023 On the other hand, currently there is no concept of package data 2026-03-03T18:45:02,023 directory, all directories are treated like packages. 2026-03-03T18:45:02,024 ******************************************************************************** 2026-03-03T18:45:02,025 !! 2026-03-03T18:45:02,026 check.warn(importable) 2026-03-03T18:45:02,026 copying mmclaw/bridge.js -> build/lib/mmclaw 2026-03-03T18:45:02,027 creating build/lib/mmclaw/skills/codex 2026-03-03T18:45:02,027 copying mmclaw/skills/codex/skill.md -> build/lib/mmclaw/skills/codex 2026-03-03T18:45:02,028 creating build/lib/mmclaw/skills/ngrok 2026-03-03T18:45:02,028 copying mmclaw/skills/ngrok/skill.md -> build/lib/mmclaw/skills/ngrok 2026-03-03T18:45:02,029 creating build/lib/mmclaw/skills/notion 2026-03-03T18:45:02,029 copying mmclaw/skills/notion/skill.md -> build/lib/mmclaw/skills/notion 2026-03-03T18:45:02,030 creating build/lib/mmclaw/skills/pdfs 2026-03-03T18:45:02,031 copying mmclaw/skills/pdfs/skill.md -> build/lib/mmclaw/skills/pdfs 2026-03-03T18:45:02,031 creating build/lib/mmclaw/skills/tmux 2026-03-03T18:45:02,032 copying mmclaw/skills/tmux/skill.md -> build/lib/mmclaw/skills/tmux 2026-03-03T18:45:02,032 /usr/local/lib/python3.11/dist-packages/setuptools/_distutils/cmd.py:90: SetuptoolsDeprecationWarning: setup.py install is deprecated. 2026-03-03T18:45:02,033 !! 2026-03-03T18:45:02,034 ******************************************************************************** 2026-03-03T18:45:02,034 Please avoid running ``setup.py`` directly. 2026-03-03T18:45:02,035 Instead, use pypa/build, pypa/installer or other 2026-03-03T18:45:02,035 standards-based tools. 2026-03-03T18:45:02,036 This deprecation is overdue, please update your project and remove deprecated 2026-03-03T18:45:02,037 calls to avoid build errors in the future. 2026-03-03T18:45:02,038 See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. 2026-03-03T18:45:02,039 ******************************************************************************** 2026-03-03T18:45:02,040 !! 2026-03-03T18:45:02,040 self.initialize_options() 2026-03-03T18:45:02,042 installing to build/bdist.linux-armv7l/wheel 2026-03-03T18:45:02,042 running install 2026-03-03T18:45:02,065 running install_lib 2026-03-03T18:45:02,092 creating build/bdist.linux-armv7l/wheel 2026-03-03T18:45:02,094 creating build/bdist.linux-armv7l/wheel/mmclaw 2026-03-03T18:45:02,095 copying build/lib/mmclaw/providers.py -> build/bdist.linux-armv7l/wheel/./mmclaw 2026-03-03T18:45:02,098 copying build/lib/mmclaw/kernel.py -> build/bdist.linux-armv7l/wheel/./mmclaw 2026-03-03T18:45:02,100 creating build/bdist.linux-armv7l/wheel/mmclaw/skills 2026-03-03T18:45:02,102 creating build/bdist.linux-armv7l/wheel/mmclaw/skills/codex 2026-03-03T18:45:02,103 copying build/lib/mmclaw/skills/codex/skill.md -> build/bdist.linux-armv7l/wheel/./mmclaw/skills/codex 2026-03-03T18:45:02,105 creating build/bdist.linux-armv7l/wheel/mmclaw/skills/notion 2026-03-03T18:45:02,106 copying build/lib/mmclaw/skills/notion/skill.md -> build/bdist.linux-armv7l/wheel/./mmclaw/skills/notion 2026-03-03T18:45:02,109 creating build/bdist.linux-armv7l/wheel/mmclaw/skills/ngrok 2026-03-03T18:45:02,110 copying build/lib/mmclaw/skills/ngrok/skill.md -> build/bdist.linux-armv7l/wheel/./mmclaw/skills/ngrok 2026-03-03T18:45:02,113 creating build/bdist.linux-armv7l/wheel/mmclaw/skills/pdfs 2026-03-03T18:45:02,114 copying build/lib/mmclaw/skills/pdfs/skill.md -> build/bdist.linux-armv7l/wheel/./mmclaw/skills/pdfs 2026-03-03T18:45:02,117 creating build/bdist.linux-armv7l/wheel/mmclaw/skills/tmux 2026-03-03T18:45:02,118 copying build/lib/mmclaw/skills/tmux/skill.md -> build/bdist.linux-armv7l/wheel/./mmclaw/skills/tmux 2026-03-03T18:45:02,120 copying build/lib/mmclaw/__init__.py -> build/bdist.linux-armv7l/wheel/./mmclaw 2026-03-03T18:45:02,122 copying build/lib/mmclaw/tools.py -> build/bdist.linux-armv7l/wheel/./mmclaw 2026-03-03T18:45:02,123 copying build/lib/mmclaw/bridge.js -> build/bdist.linux-armv7l/wheel/./mmclaw 2026-03-03T18:45:02,126 copying build/lib/mmclaw/connectors.py -> build/bdist.linux-armv7l/wheel/./mmclaw 2026-03-03T18:45:02,129 copying build/lib/mmclaw/config.py -> build/bdist.linux-armv7l/wheel/./mmclaw 2026-03-03T18:45:02,131 copying build/lib/mmclaw/main.py -> build/bdist.linux-armv7l/wheel/./mmclaw 2026-03-03T18:45:02,133 running install_egg_info 2026-03-03T18:45:02,171 Copying mmclaw.egg-info to build/bdist.linux-armv7l/wheel/./mmclaw-0.0.33-py3.11.egg-info 2026-03-03T18:45:02,183 running install_scripts 2026-03-03T18:45:02,197 creating build/bdist.linux-armv7l/wheel/mmclaw-0.0.33.dist-info/WHEEL 2026-03-03T18:45:02,199 creating '/tmp/pip-wheel-nnl0_mdo/mmclaw-0.0.33-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2026-03-03T18:45:02,201 adding 'mmclaw/__init__.py' 2026-03-03T18:45:02,203 adding 'mmclaw/bridge.js' 2026-03-03T18:45:02,205 adding 'mmclaw/config.py' 2026-03-03T18:45:02,208 adding 'mmclaw/connectors.py' 2026-03-03T18:45:02,210 adding 'mmclaw/kernel.py' 2026-03-03T18:45:02,213 adding 'mmclaw/main.py' 2026-03-03T18:45:02,216 adding 'mmclaw/providers.py' 2026-03-03T18:45:02,218 adding 'mmclaw/tools.py' 2026-03-03T18:45:02,221 adding 'mmclaw/skills/codex/skill.md' 2026-03-03T18:45:02,223 adding 'mmclaw/skills/ngrok/skill.md' 2026-03-03T18:45:02,226 adding 'mmclaw/skills/notion/skill.md' 2026-03-03T18:45:02,228 adding 'mmclaw/skills/pdfs/skill.md' 2026-03-03T18:45:02,230 adding 'mmclaw/skills/tmux/skill.md' 2026-03-03T18:45:02,237 adding 'mmclaw-0.0.33.dist-info/licenses/LICENSE' 2026-03-03T18:45:02,239 adding 'mmclaw-0.0.33.dist-info/METADATA' 2026-03-03T18:45:02,240 adding 'mmclaw-0.0.33.dist-info/WHEEL' 2026-03-03T18:45:02,241 adding 'mmclaw-0.0.33.dist-info/entry_points.txt' 2026-03-03T18:45:02,242 adding 'mmclaw-0.0.33.dist-info/top_level.txt' 2026-03-03T18:45:02,243 adding 'mmclaw-0.0.33.dist-info/RECORD' 2026-03-03T18:45:02,244 removing build/bdist.linux-armv7l/wheel 2026-03-03T18:45:02,361 Building wheel for mmclaw (setup.py): finished with status 'done' 2026-03-03T18:45:02,363 Created wheel for mmclaw: filename=mmclaw-0.0.33-py3-none-any.whl size=51617 sha256=27d507302f448b5f1c9dfc8fd109c08364f90c508f2191306e6114b455b9b965 2026-03-03T18:45:02,365 Stored in directory: /tmp/pip-ephem-wheel-cache-rtn84vge/wheels/56/54/7a/47109fdb150068669e91fdbe3eaf6a6d44c0def57f531af58a 2026-03-03T18:45:02,376 Successfully built mmclaw 2026-03-03T18:45:02,380 Removed build tracker: '/tmp/pip-build-tracker-_mivibjj'