Skip to content

Commit

Permalink
docs: run how-to guides in CI (#27615)
Browse files Browse the repository at this point in the history
Add how-to guides to [Run notebooks
job](https://github.com/langchain-ai/langchain/actions/workflows/run_notebooks.yml)
and fix existing notebooks.

- As with tutorials, cassettes must be updated when HTTP calls in guides
change (by running existing
[script](https://github.com/langchain-ai/langchain/blob/master/docs/scripts/update_cassettes.sh)).
- Cassettes now total ~62mb over 474 files.
- `docs/scripts/prepare_notebooks_for_ci.py` lists a number of notebooks
that do not run (e.g., due to requiring additional infra, slowness,
requiring `input()`, etc.).
  • Loading branch information
ccurme authored Oct 30, 2024
1 parent 88bfd60 commit 595dc59
Show file tree
Hide file tree
Showing 420 changed files with 2,333 additions and 321 deletions.
24 changes: 21 additions & 3 deletions .github/workflows/run_notebooks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
required: false
default: '3.11'
working-directory:
description: 'Working directory or subset (e.g., docs/docs/tutorials/llm_chain.ipynb)'
description: 'Working directory or subset (e.g., docs/docs/tutorials/llm_chain.ipynb or docs/docs/how_to)'
required: false
default: 'all'
schedule:
Expand All @@ -33,13 +33,28 @@ jobs:
working-directory: ${{ inputs.working-directory }}
cache-key: run-notebooks

- name: 'Authenticate to Google Cloud'
id: 'auth'
uses: google-github-actions/auth@v2
with:
credentials_json: '${{ secrets.GOOGLE_CREDENTIALS }}'

- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}

- name: Install dependencies
run: |
poetry install --with dev,test
- name: Pre-download tiktoken files
- name: Pre-download files
run: |
poetry run python docs/scripts/download_tiktoken.py
poetry run python docs/scripts/cache_data.py
curl -s https://raw.githubusercontent.com/lerocha/chinook-database/master/ChinookDatabase/DataSources/Chinook_Sqlite.sql | sqlite3 docs/docs/how_to/Chinook.db
cp docs/docs/how_to/Chinook.db docs/docs/tutorials/Chinook.db
- name: Prepare notebooks
run: |
Expand All @@ -48,9 +63,12 @@ jobs:
- name: Run notebooks
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
FIREWORKS_API_KEY: ${{ secrets.FIREWORKS_API_KEY }}
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
TAVILY_API_KEY: ${{ secrets.TAVILY_API_KEY }}
TOGETHER_API_KEY: ${{ secrets.TOGETHER_API_KEY }}
WORKING_DIRECTORY: ${{ github.event.inputs.working-directory || 'all' }}
run: |
./docs/scripts/execute_notebooks.sh $WORKING_DIRECTORY

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions docs/cassettes/MultiQueryRetriever_994d6c74.msgpack.zlib

Large diffs are not rendered by default.

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions docs/cassettes/callbacks_async_2.msgpack.zlib
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eNrFVs1u20YQbk8FfGrfYEu0zUWUSMk/EouicGU7DQzHjiUgcX5grJZjiTa5y+wuFSuGDnXzAnyE1ooUCHYSowF6aHrvoS+gHvos3ZWov1h2bioPIndmduabb2ZnddqpAxceo5+ee1QCx0SqhYhPOxyeRiDki3YAssbc1s52qXwWca/3dU3KUDiZDA69NKayxlnokTRhQaZuZwIQAldBtCrMbfRenBgBPt6X7AioMByUXUohY2ii1o9ODM58UF9GJIAbSkuYwkGlFpXB91EACKND5cBoPtGbmQu+VhIfRy6YOVMwSkGaWSu7aGWzBe1DSA44UFaSR9Ds1AC7Kst/P/m8VWNCxpdXkL/BhEAoTaCEuR6txhfV516YQi4c+FhCl+gYfWri7hFAaGLfq0N7sCt+i8PQ9wjW+syhwnOeJGHKRghX1V2dq6kooDJ+vyoalKwOwWR2Goptiqx0bjltvT02hcQe9RVjpo8VrnbY1/8xqQgxOVLOzKSScXuw+fWkDRPxyy1MtktTLjEntfgl5sHy4m+Tch5R6QUQd4o7V8MlynG4XNq20yuXU451UvFF/+X0fz12OWJ8tLWripYzrWXTsn+fCgGSN0zCVKT4F+v1kE0faFXW4jM7l33FQYSqUeHnttomI3HaUpWDv//qJN316/bmuO5ftNZUFeM/74ObQvYy2iYS6X5Bdt7JrjhLi+j2Vvm8mIQp66L1kIRjmYG6lgz66VtEapgLkN9F8sDMX5Y5puJAVXJ92DUdUovoEbjd4sx+uShiUgNTx1FdH7+izCRa0jPG1HAF1PcCT5rJAVSF18u4tWhZVu+bGy05BIpCjaSVKxQKH/GrKAQZv9NEmLZl2svlIR0Pe2jWzsExTvC0NR6F6KsbLMd4htboRutr8OQedhPQpufG79X3vmWXCkubh7u5xrN77vpBtFHYy9eLzzfO6h6Ou3baRlXGqj68KW6YA9ZL/TaJO2t7d1e37hTPH5i7rMIUDWWs6KKMQrsEXHVm3CU+i1x18Dm01fbd1b34Xd7NYbti5Qp52110rbz5w3apP+J+Uv3HVYb/fPa03ysOShpwX/UllwsulthBJ4aeBIZjTCmN1HBtOCeG52q9qKrcNh4EW+XSpheuB7d3+L27e3sra7uuMp/2ogSD6WlgITzlkvZdDibkDQNyPGMfPUmpYcnCfdXfysxwaOT7iUhoyimBoTAaAaVhJEcz3bZTBovklKjZRP2nubCQkJJE3K/4jBzNpmaGiYLqUReODcdKTes1jmSfPqeaGv1yDONK6FBV54NYyNBC4zp4ij+Jb4bXN5mCN5BMwxqZJeB+BA4DgHMPfUsk1yg6YHxI0uiZOxzUYJHzmD6m92uNMZr5wyCYJuHnXxGpKlLxSIP4gPTh/b+AuCgKUaUx2RTzL4QnBfgH36M78pboI5k/BPmMmdLrn9D51+DLqTN5/eBk4cfmJgsnol93zIf30MyEppTGRAJTV8XkP/uZV0Zz4s744IbILjWvATQrw0mdMZHLf6ahi3k=
1 change: 1 addition & 0 deletions docs/cassettes/callbacks_attach_2.msgpack.zlib
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eNqFVFtoHFUYTolC+6DGPoig6DikYjVnd2ZndzMbKzZuL2rZbmhWkqZoODvz7840szOTmbMhsSTUJFaxIBy0D9EX22x2yxqbhkYLSZVKo/hgvWC8rGBKKb6JBFGRIKlnNru5kBDn6cx//f7v/84ZLPSA4+qWuW1cNwk4WCHsx6WDBQe6s+CS4XwGiGapuZZ4a2I06+ilXRohttvk92Nb92GTaI5l64pPsTL+HtGfAdfFaXBzSUvtK/Wc4DO4t5NYXWC6fBMnCoFgA8dXg5jl2AnesQxgJz7rgsMzr2IxJCbxTG0aJpzuciL3BBd4mu9/0Uu2VDA8p2LgrApIQq5lmkBQgBUXAoEI31/QAKtsrvmaupxmuYRObsA6gRUFbILAVCxVN9P0g/TLut3AqZAyMIGi4tUsk0GLXQA2wobeA/nlLHoR27ahK9jz+4+z/uMV0Ij02bDRXfRmQ2xkk9DLzVUc/pY+Rq3JCT4p7BMu9iKXYN00GDnIwAxS3i77Z9Y6bKx0sTqosjaaX06+sDbGculYDCvx1nUlsaNodAw7mXDw0lq7kzWJngFaiLZsbFdxrraTfKLoa5xcV9jtMxU6lsKGC5MrJK+kFNleJCSEkSBeXlcaiNOHFIt1oGeFC1UCDTDTRKOjoiifd8C1mRphKM/SSNYdzLFlwZdfFCoCOhc/tLrqnbl9bHH04zZQGzgxzMUVwnmS4ES5KSA3BWXuYCwxHq20SWy6p8mEg003xXa1v6qLgqJlzS5Qi9FNFVHiVyd2WH9Dz+gEVS4P26P3S3NBQRBKj24Z6UCGMeN1zEmRSOR/6jJmgNApbz4kCkgMJ5anDAU7StxmmctXsIIn7+FhiOq3iFzFU43mtozeHE9Q7ihWQCNdpVfYuVMQQ23d4YNEFk1RS0J7RAwFDriZxg97kWJYWRUR9gwBKguil9ASJ6UkSRZCycakIAmhSESVQI4EcTgYUTGoycbRHh3TougTubRlpQ2YiB5AUaxogFrLsqGFfUcPN8eei463oyNW0mL8JTDj2bRMyLeCw5RKi+XW7O47kGfpR5qP0ilZlbCohOQQqGE5pabQM+xKVQW0IpCc93CUn7tXmEwdZpqde/j09pryV5t48/rzs3vrhjt3zX2/o/6t/eTqoatPNfQu5Pidp3Klu776W/3ul/eGr8yo3w4VBicGzt956+TJSw/OFAfmj52YnmnpspYWFuf2/P7S5x+dGhqIT409W//Qjrvdww+8zo9q6qvXIve8XfdNQas9E9s9MjL155kbL8zfuHb26/HZNxY++Tf2eH/m1/fvmPssdvP0a+c+XbzJvVMw84+N3Lt3Dzku3fqxbvr+7vh2Y3fkp7862oU/1J/1pfr7hhd/eOTdpej16SUG//bt2pptpd+e/Ied/wPrJ3ik
1 change: 1 addition & 0 deletions docs/cassettes/callbacks_constructor_2.msgpack.zlib
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eNqFVFtoHFUYjqRSwSC13qA+dBi0iMnZnZm9JBuKIdlUMZoLydY2qTGcPfPv7jSzM+PM2bhpaNW0aoqiHARffIg1m92yrmmDrSmkBaVWS40SGwpdwRuC+FJqQayIEM9sdnMhIQ7zcM75b9//f985o7khsB3NNO4oaAYFGxPKNw4bzdnwYgoceiybBJow1UxXZ09kImVrxUcTlFpOo9eLLc2DDZqwTUsjHmImvUOyNwmOg+PgZKKmOlwcGhGTOD1AzUEwHLFRkCXFXyeIFSd+cmBEtE0d+EpMOWCL3EpMjsSg7tG+BKaC5giyUCsoTeLhfjfYVEF3jUTHKRWQDzmmYQBFCk8uKUpIPJxLAFZ5Xz9WbcskTIey6XVYT2FCwKIIDGKqmhFnH8cPaVadoEJMxxTyxM1ZGgbLDwJYCOvaEGSXothpbFm6RrBr9x7k9Qtl0IgOW7DenHd7Q7xlg7KZ5goOb9cwH60hSB5f0COdTiOHYs3Q+XCQjjmkrFWyz642WJgM8jyoTBvLLgVPrfYxHTbZjklnz5qU2CYJNontZND/yepzO2VQLQksF+5aX65sXCnn88iyp356TWJn2CBsMoZ1B6aXh7wckue8+JAURJI8syY1UHsYEZNXYCekqcoAdTDiNMEmZLnhpA2OxdUIR7M8jKac0QwnC+Yu58oC+rDzmRWqt2daOXHswj5Q6wQ5KHQSKriSEOSGRiXEf+Gp9kghXC4T2ZCn6YiNDSfGudpT0UWOJFLGIKj58IaKKIorHdu8vq4lNYrKl4fz6G5Zxi9JUnHXpp42JPlk3IoZXygU+p+8fDJA2Rm3PyRLSA5GlroM+PuKwkaRS1ewjCfr4uGIHtnEcwVPxVvY1HtjPEqoL18GjTSVnefrAUneCy0BpS0tB1r2d3MisdZntpE9Z9OI6GZKRZQ/Q4BKgkhTVhRA8dXLUa6imKrU1/tIwBfAIQC5ISjHfH5/dGJIwywve2QhbppxHU6Fn0RhTBKAekqyYbnW3o7m9qfDhf2o24yafH4RzOdsmAZke8DmSmX5Uml+923I8vDu5l52pkH1YVkNYCkqSyEpGEUt/EpVBLQskIz7cJSeu1e5TG1+9MXVnW/eVVX6qiNvf3PworTt2MClubPKdfuxyPyBjkszz7e0SfkL53ZduXJt6oPjt2YfeuOv+YXP6pvmRrVXLu79cir/zk4ycn38+8z4whPXbvzSfvPXu2v+DC68J97btL2mu+bhP8R3T8Zf+zxwz/0/z28d3/r4+92iT9NqZz8q/BD753Jbwbr59U+Zq7efOzIW7t/9wKdptKMQr/6u4aXj51tfr741r3W8NRD+vfa+21u+Cm05+u+53x58dnf8hv+FsTunjgTHehdPxPpf5uAXF6urDu0Y+fZvvv4PjzlyYA==
1 change: 1 addition & 0 deletions docs/cassettes/callbacks_runtime_2.msgpack.zlib
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eNqFVFtoHFUYTokPKgiiFYq0OFncoJizO5fNZDeCNdk0aau5mKzG1pZ4dubPzjSzM9OZs2nWECE3bxXlPIgIBbHZ7Oo2bROSEqXqg82DSsVL2+AKaqUWX0SxL7aIxDOb3VxIiPN05r9+//d/54zk+sFxdcvcNqWbBBysEPbj0pGcA0dT4JKxbBKIZqmZjvau2ETK0Qt+jRDbrQ8Gsa0HsEk0x7J1JaBYyWC/EEyC6+IEuJm4paYL/YO+JB7oIVYfmK6vnhN4MVTD+cpBzPLcoM+xDGAnX8oFx8e8isWQmMQzdWuYcLrLCdwjnLjbN3TYS7ZUMDynYuCUCkhCrmWaQJDIivOiGPEN5TTAKpvrp4q7M5rlEjqzAetZrChgEwSmYqm6maCnEy/odg2nQq+BCeQVr2aRDJrvA7ARNvR+yC5n0Wls24auYM8fPML6T5VAI5K2YaM7782G2MgmofMNZRzBjjSj1uT4gCQH+OkB5BKsmwYjBxmYQcraRf/5tQ4bK32sDiqtjWaXk8+sjbFcOtmKlfaudSWxo2h0EjtJOTS71u6kTKIngeaiHRvblZyr7aSAIATqZtYVdtOmQid7seHCzArJKyl5thcJ8TLihfl1pYE4aaRYrAN9jz9TJtAAM0E0OiEI4fcdcG2mRhjNsjSSckcybFlw8fNcSUAn259YXfU9mSa2OPpJN6g1nCBz7QrhPElwQrhe4uslkWtpjU1FS21im+5pJuZg0+1lu9pT1kVO0VJmH6j56KaKKPhWJ3ZYf0NP6gSVLg/bo/dLMyGe5wvVW0Y6kGTMeB0zUiQS+Z+6jBkgdM6bDwk8EuTY8pS1oYMFbrPM5StYwpP18DBED24RuYqnHM1tGb05Hkk8mC+BRrpKP2bnHl5ofuqobodaUolYZ7eEY2pjW4smiOcGkGJYKRUR9gwBKgpigNACVydH4nI4HhGgThIFrMp8KKQoUi3Pi1iWa+WJfh3TvBAQuIRlJQw4G21GUaxogLqKsqG5pgNtDa37olPPok4rbjH+YpjxbFomZLvAYUql+WJrdvcdyLL0zoYDdC6sSlgA4CMRlY/wYh1qZFeqLKAVgWS8h6P43A0zmTrMtHDlgeO3VxS/ytgbX+2/8Pj28R7/idP37q0+991wYH/V8cCeQw/5X//CP9b2Z+ajYx13pI/t+3b8VOXPt365uKM+fGjSeu0GXNp9pXLo8tvzv3194doHP+zq6RsefvHNuezehb9vG334pfsGaMPl2c+u3v/onbY22r7r+tMB+k5ofvzH7Yt/PP9N8zPx8cF3l6rf+nTxxuGdX/5eNVt47NT0ibuarn3/5K9+cecr55svLdysHTNf/dAfbqvakfmntk65KugTfzXW2NcXuep/X87DrW0VFUtLlRVwZG7wJpvlP8uBc0g=
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
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
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eNqFVF1sU1UcH4EQgh8jkviwGHdpNkzcTntv292uJSTUzokfc4M1OoZkOT33rL309t7Lved2K8semEuQzECOidHNgMC6FmvdWAbhQRiJEGIUH5SZWKMkU+ODihhYxPiC53btPrJl3qdz/5+//+//O2cgm8SGKWvqurysEmxARNiPSQeyBj5kYZMMZhKYxDQp3dbaHh61DLlQGyNENwMuF9RlJ1RJzNB0GTmRlnAlBVcCmyaMYjMd0aRU4XifIwF7u4gWx6rpCHAC7/bWc45yELPs73MYmoLZyWGZ2HAwL9IYEpXYpp4YJM+YXEqzDE6FCezoP2CnaxJWbDdSoCVh4AENwNRUFRPgZg140c3bdQhO6GwiYhl2ed7J92djGEps3tsVW9IxzSR0csUMExAhrBOAVaRJshqln0QPy3o9J+FuBRKcQ3afIkk0F8dYB1CRkzgzn0XPQ11XZARtv+sgw5QvDQNISscr3Tl7ZsCoUAm9FCzjcLWlGOUqg+wRnfz5XmASKKsKIw0okEHK6EX/p0sdOkRxVgeU1kkz88njS2M0k461QNTavqwkNFCMjkEjIXqnltoNSyVyAtNsqG1lu5JzsZ3HKQhO3+SywmZKRXSsGyomnlwgeSElx3blAbwIeOHSstKYGCmANNaBnuHHywQqWI2SGB0VvO5zBjZ1plL8ZoalEcscSLNl4ZufZ0vCOtv68uKqn0g3scXRK69jqZ4TRK4VEc6WCSf4Ax5PoMHHvdASzodKbcKr7mkybEDV7Ga7er6siyyKWWocS7nQqoooOBYnZhrEipyQCShdKrZH+5emvTzPF7avGWngBGPG7pj2+P3+/6nLmMGEXrDnAwIPBDFsT+kNNHg7C9xqmfNXs4QnY+NhiGrWiFzEU47m1oxeDQ9jXezMlUADWaKX2bmLF8QWEkniSE8qrvsO9xgopYY8ncGLvQApmiUBwp4nDIqC6CW0wCHkE/0SFn2i6PF4PW7kbkT+Rh77fA1+UWh0jyZlSHOCU+CimhZV8ESoGYQgimHQXpQNzTbtezXY8mIo3wH2ahGN8ReGjGdVU3GmHRtMqTRXbM3uvoEzLH1vcB+90Ch5oC+CBD9r7UWIB8+xK1UW0IJA0vbDUXwGjzCZGsx0/bfqoU0VxW99+PhXL13ftWWwC+eH3jtW8/W3ePxU09+nT592wN0j+JVvtt7amRd++bE2WHlq8/S/Z7oHNz5+5amPL/d+9+DO/d9nD+2ufjDd79958sbdDzY9cnJjZ3vNTyc2DAnJur8cwZmpz86eeMzSz+34sOoL59SB7XTYW3f/3rNXnWbHDH23Y/b2r1f3jE1cnD52Dbr/6HMHb94RCfxz7o1Hj4683Xxr60fDkcC1e+q2qqMHa1x0dtcP4ZHmGxPb5obfig/8PGM9Ke+4273h6Xdeq9ofOVK3eej9uervwZeVbKiHD9dXVFr/1Fatq6j4D8RVhls=
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
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
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eNqFVG1MG2UcZ+ODJiZKlsU4F+RS36LwtHe9tlASo1hABys0tIaXZWFP7/60N653t7unXctCFlGnhqBeoiOLMWZS2q3BUSJmyuTDDDFzm8oHjfbLUGdm+GRioosvGT5XWl4Cwfv03P/19//9f88zkk2AbkiqsmtKUgjoWCD0xzBHsjoci4NBXs7EgERVMR3oDIYm4rpUeDRKiGY0OhxYk+xYIVFd1STBLqgxR4JzxMAwcASMdFgVU4WxE7YYTvYTdRAUw9bIcCxbx9jKMdRw6IRNV2WgJ1vcAN1GvYJKgSjEMh2PYvK4waTUuM4oOAa24cNWuiqCbLkFGcdFQDxyI0NVFCDIyTpdrMfJWnUIxDQ6EInrVnnW7h7ORgGLdNwbFVXpqGoQc2bLCNNYEEAjCBRBFSUlYn4YGZK0OkaEARkTyAlWnyJHZm4QQENYlhKQWc0y81jTZEnAlt9xlGKaKg2DSEqDre6cNTOiVCjEvNhUxuEIpCjjCoXMe+xsPokMgiVFpqQhGVNIGa3ov7TRoWFhkNZBpW2amdXkCxtjVMOc9GOhM7ipJNaFqDmJ9ZjH9dFGux5XiBQDM+sLbG1Xcq634+0cZ6+f2VTYSCmCOTmAZQNm1kheS8nRXfGI9SCWu7ipNBA9hQSVdjDPshfKBMqgREjUnOBc3DkdDI2KFF7K0DQSN0bSdFlw/Uq2JKwPOtvXV70n3UwXZ853g1jHcB6mUyCMJROG8zbyfKO7gXnOH5ryldqEtt3TTEjHijFAd9VS1kVWiMaVQRBzvm0VUbCtT0w1CLIUkwgq3Sm6R+vXTLtYli08tmOkDjHKjNUxzXu93v+pS5kBYs5a8yGORZwnZE3panS7+grMdpmrN7OEJ2PhoYge2SFyHU85mtkxejs8Fut9uRJoJInmZ/Tcz3IdiViwWXwhnAwPPd/VPhCCwWCbp/vjJBJkNS4iQl8nQEVBJIlZYFwN4PWwYS+PnSJfz4uehjArDtSDi3VxYTdwEwkJmznOzjERVY3IMO1rRT4sRAEFi7Ixs829HU3+A76pHtSlhlXKXwhTnhVVgUwQdKpUM1dsTe++Dhma3tXUa842iDyuDwvgbWBdXtZZj56lV6osoDWBpK2Ho/gKvkhlqlPTwnLN6N0Vxa8y9Ia//dQze19ZuUo8sS8CS28eOd3SdHn/d3abuHjt2ts3uN+qAwsrD7Whvurk13dFWqM/Ln756dXR3+8kb5P5k/ver1n6+atfP6n9JT2dXzyfdbfY7hzMPxC+tNuxp/mp2rq5HwL3vDr3x/mz8ni18/Xr6d4z4//823Mrf+7h2pnP5785OdF2s29p4SfXvj+rzzC3EvvnnPcNPXHK52+dWH7t24Pc4SN/5avGht1vjV/RGOVJf+XN76v+7lhwXz529NDo7HvH+d23D9SO9S/s7t57P7f8NOk5XUNnWlmprHgX3fvOg7sqKv4DQ4+FEA==
Loading

0 comments on commit 595dc59

Please sign in to comment.