memorisdk 1.0.0__py3-none-any.whl → 1.0.1__py3-none-any.whl

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.

Potentially problematic release.


This version of memorisdk might be problematic. Click here for more details.

Files changed (47) hide show
  1. {memoriai → memori}/integrations/__init__.py +1 -1
  2. {memoriai → memori}/integrations/anthropic_integration.py +1 -1
  3. {memoriai → memori}/integrations/litellm_integration.py +1 -1
  4. {memoriai → memori}/integrations/openai_integration.py +1 -1
  5. {memorisdk-1.0.0.dist-info → memorisdk-1.0.1.dist-info}/METADATA +16 -16
  6. memorisdk-1.0.1.dist-info/RECORD +44 -0
  7. memorisdk-1.0.1.dist-info/entry_points.txt +2 -0
  8. memorisdk-1.0.1.dist-info/top_level.txt +1 -0
  9. memorisdk-1.0.0.dist-info/RECORD +0 -44
  10. memorisdk-1.0.0.dist-info/entry_points.txt +0 -2
  11. memorisdk-1.0.0.dist-info/top_level.txt +0 -1
  12. {memoriai → memori}/__init__.py +0 -0
  13. {memoriai → memori}/agents/__init__.py +0 -0
  14. {memoriai → memori}/agents/conscious_agent.py +0 -0
  15. {memoriai → memori}/agents/memory_agent.py +0 -0
  16. {memoriai → memori}/agents/retrieval_agent.py +0 -0
  17. {memoriai → memori}/config/__init__.py +0 -0
  18. {memoriai → memori}/config/manager.py +0 -0
  19. {memoriai → memori}/config/settings.py +0 -0
  20. {memoriai → memori}/core/__init__.py +0 -0
  21. {memoriai → memori}/core/database.py +0 -0
  22. {memoriai → memori}/core/memory.py +0 -0
  23. {memoriai → memori}/database/__init__.py +0 -0
  24. {memoriai → memori}/database/connectors/__init__.py +0 -0
  25. {memoriai → memori}/database/connectors/mysql_connector.py +0 -0
  26. {memoriai → memori}/database/connectors/postgres_connector.py +0 -0
  27. {memoriai → memori}/database/connectors/sqlite_connector.py +0 -0
  28. {memoriai → memori}/database/queries/__init__.py +0 -0
  29. {memoriai → memori}/database/queries/base_queries.py +0 -0
  30. {memoriai → memori}/database/queries/chat_queries.py +0 -0
  31. {memoriai → memori}/database/queries/entity_queries.py +0 -0
  32. {memoriai → memori}/database/queries/memory_queries.py +0 -0
  33. {memoriai → memori}/database/templates/__init__.py +0 -0
  34. {memoriai → memori}/database/templates/basic_template.py +0 -0
  35. {memoriai → memori}/database/templates/schemas/__init__.py +0 -0
  36. {memoriai → memori}/scripts/llm_text.py +0 -0
  37. {memoriai → memori}/tools/__init__.py +0 -0
  38. {memoriai → memori}/tools/memory_tool.py +0 -0
  39. {memoriai → memori}/utils/__init__.py +0 -0
  40. {memoriai → memori}/utils/exceptions.py +0 -0
  41. {memoriai → memori}/utils/helpers.py +0 -0
  42. {memoriai → memori}/utils/logging.py +0 -0
  43. {memoriai → memori}/utils/pydantic_models.py +0 -0
  44. {memoriai → memori}/utils/schemas.py +0 -0
  45. {memoriai → memori}/utils/validators.py +0 -0
  46. {memorisdk-1.0.0.dist-info → memorisdk-1.0.1.dist-info}/WHEEL +0 -0
  47. {memorisdk-1.0.0.dist-info → memorisdk-1.0.1.dist-info}/licenses/LICENSE +0 -0
@@ -5,7 +5,7 @@ Universal LLM Integration - Plug-and-Play Memory Recording
5
5
  Just call memori.enable() and use ANY LLM library normally!
6
6
 
7
7
  ```python
8
- from memoriai import Memori
8
+ from memori import Memori
9
9
 
10
10
  memori = Memori(...)
11
11
  memori.enable() # 🎉 That's it!
@@ -5,7 +5,7 @@ RECOMMENDED: Use LiteLLM instead for unified API and native callback support.
5
5
  This integration is provided for direct Anthropic SDK usage.
6
6
 
7
7
  Usage:
8
- from memoriai.integrations.anthropic_integration import MemoriAnthropic
8
+ from memori.integrations.anthropic_integration import MemoriAnthropic
9
9
 
10
10
  # Initialize with your memori instance
11
11
  client = MemoriAnthropic(memori_instance, api_key="your-key")
@@ -2,7 +2,7 @@
2
2
  LiteLLM Integration - DEPRECATED
3
3
 
4
4
  This integration is deprecated. LiteLLM now uses native callbacks
5
- implemented directly in memoriai/core/memory.py
5
+ implemented directly in memori/core/memory.py
6
6
 
7
7
  The native callback system is more robust and uses LiteLLM's official
8
8
  extension mechanism instead of monkey-patching.
@@ -5,7 +5,7 @@ RECOMMENDED: Use LiteLLM instead for unified API and native callback support.
5
5
  This integration is provided for direct OpenAI SDK usage.
6
6
 
7
7
  Usage:
8
- from memoriai.integrations.openai_integration import MemoriOpenAI
8
+ from memori.integrations.openai_integration import MemoriOpenAI
9
9
 
10
10
  # Initialize with your memori instance
11
11
  client = MemoriOpenAI(memori_instance, api_key="your-key")
@@ -1,15 +1,15 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: memorisdk
3
- Version: 1.0.0
3
+ Version: 1.0.1
4
4
  Summary: The Open-Source Memory Layer for AI Agents & Multi-Agent Systems
5
- Author-email: Memori Team <contact@memoriai.dev>
5
+ Author-email: Memori Team <contact@memori.dev>
6
6
  License: Apache-2.0
7
- Project-URL: Homepage, https://github.com/GibsonAI/memoriai
8
- Project-URL: Documentation, https://gibsonai.github.io/memoriai
9
- Project-URL: Repository, https://github.com/GibsonAI/memoriai.git
10
- Project-URL: Bug Tracker, https://github.com/GibsonAI/memoriai/issues
11
- Project-URL: Changelog, https://github.com/GibsonAI/memoriai/blob/main/CHANGELOG.md
12
- Project-URL: Contributing, https://github.com/GibsonAI/memoriai/blob/main/CONTRIBUTING.md
7
+ Project-URL: Homepage, https://github.com/GibsonAI/memori
8
+ Project-URL: Documentation, https://gibsonai.github.io/memori
9
+ Project-URL: Repository, https://github.com/GibsonAI/memori.git
10
+ Project-URL: Bug Tracker, https://github.com/GibsonAI/memori/issues
11
+ Project-URL: Changelog, https://github.com/GibsonAI/memori/blob/main/CHANGELOG.md
12
+ Project-URL: Contributing, https://github.com/GibsonAI/memori/blob/main/CONTRIBUTING.md
13
13
  Keywords: ai,memory,agents,llm,artificial-intelligence,multi-agent
14
14
  Classifier: Development Status :: 3 - Alpha
15
15
  Classifier: Intended Audience :: Developers
@@ -70,13 +70,13 @@ Requires-Dist: litellm>=1.0.0; extra == "all"
70
70
  Requires-Dist: anthropic>=0.3.0; extra == "all"
71
71
  Dynamic: license-file
72
72
 
73
- # Memoriai
73
+ # Memori
74
74
 
75
75
  **The Open-Source Memory Layer for AI Agents & Multi-Agent Systems v1.2**
76
76
 
77
77
  *Give your AI agents structured, persistent memory with intelligent context injection - no more repeating yourself!*
78
78
 
79
- [![PyPI version](https://badge.fury.io/py/memoriai.svg)](https://badge.fury.io/py/memoriai)
79
+ [![PyPI version](https://badge.fury.io/py/memori.svg)](https://badge.fury.io/py/memori)
80
80
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
81
81
  [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
82
82
 
@@ -93,11 +93,11 @@ Dynamic: license-file
93
93
  ## ⚡ Quick Start
94
94
 
95
95
  ```bash
96
- pip install memoriai
96
+ pip install memorisdk
97
97
  ```
98
98
 
99
99
  ```python
100
- from memoriai import Memori
100
+ from memori import Memori
101
101
 
102
102
  # Create your workspace memory with conscious mode
103
103
  office_work = Memori(
@@ -222,7 +222,7 @@ memori = Memori(
222
222
 
223
223
  ### Simple Setup
224
224
  ```python
225
- from memoriai import Memori
225
+ from memori import Memori
226
226
 
227
227
  # Conscious mode - Short-term working memory
228
228
  memori = Memori(
@@ -249,7 +249,7 @@ memori = Memori(
249
249
 
250
250
  ### Advanced Configuration
251
251
  ```python
252
- from memoriai import Memori, ConfigManager
252
+ from memori import Memori, ConfigManager
253
253
 
254
254
  # Load from memori.json or environment
255
255
  config = ConfigManager()
@@ -317,7 +317,7 @@ essential = memori.get_essential_conversations(limit=5)
317
317
 
318
318
  ### **Memory Retrieval Tools**
319
319
  ```python
320
- from memoriai.tools import create_memory_tool
320
+ from memori.tools import create_memory_tool
321
321
 
322
322
  # Create memory search tool for your LLM
323
323
  memory_tool = create_memory_tool(memori)
@@ -355,7 +355,7 @@ memory_relationships # Entity connections
355
355
  ## 📁 Project Structure
356
356
 
357
357
  ```
358
- memoriai/
358
+ memori/
359
359
  ├── core/ # Main Memori class, database manager
360
360
  ├── agents/ # Memory processing with Pydantic
361
361
  ├── database/ # SQLite/PostgreSQL/MySQL support
@@ -0,0 +1,44 @@
1
+ memori/__init__.py,sha256=EpqarE_UsvWNALb2YWk4XAc5SML5uRjZOr1DHIrXNgo,3202
2
+ memori/agents/__init__.py,sha256=9M3IG5R10FfVgT8tUzBZ2pZ0SypSpYkFfhtyvMyeTpE,261
3
+ memori/agents/conscious_agent.py,sha256=6sgoTOkSrRGTAdEKGZPa5V6DFdzVxm_InZS85OnsVLE,20478
4
+ memori/agents/memory_agent.py,sha256=Sz3MsQ4aRUccN5YO86he3tAwyP43KXFAH7KXPOC7QFY,12891
5
+ memori/agents/retrieval_agent.py,sha256=PofpjLvx7Y4M9ns6kkypwT2D9eFaO2xffSuPovi8zuw,21490
6
+ memori/config/__init__.py,sha256=tQAxopgOsea02u9iId-ocOY86nWWNGC3rvt3AOFcLn8,295
7
+ memori/config/manager.py,sha256=xi8d8xW3obyV6v9UHDG6idSAymge8yWxGW11e2mI0nQ,10388
8
+ memori/config/settings.py,sha256=nrrWD4hwdbtYlIPtJFHgGyMudGP-hz9sA-KBW_7ZZbE,9724
9
+ memori/core/__init__.py,sha256=jvhHn-KL3bzRHs11-4B0BCKH6gkAf6Gf_G59If8fD0M,157
10
+ memori/core/database.py,sha256=eok8lvXvFbHk_H2TEiYnRAX5nVE0xQgE0TUigRfGovs,36248
11
+ memori/core/memory.py,sha256=nYPqO4dCzKEzVxYKJn4OvrSz7zq3vQ3gUpGkpZ1B88A,53313
12
+ memori/database/__init__.py,sha256=kMLxwfRfTVvw0oV1kl9v-Dkyqm6ggcsMV6hltqdrN3k,189
13
+ memori/database/connectors/__init__.py,sha256=tG283nMRMWWM3B4WBfi7PMYnSUcH2Go5C88O91dOjcE,275
14
+ memori/database/connectors/mysql_connector.py,sha256=P9tahYczjgfm_0iZpD1OxekeXLXnbpKt9M9EEe9NAjU,4861
15
+ memori/database/connectors/postgres_connector.py,sha256=30wMEeVbvAc30_OrA0MqjePEgCGd9ejtG2ycXZLlotM,5495
16
+ memori/database/connectors/sqlite_connector.py,sha256=5KbOh0OrIt8e7NEw7aYSk7pl5PMLnMCvf_GbA0Wzsvk,4782
17
+ memori/database/queries/__init__.py,sha256=BIxenJzxOosD2-myGfGrortbq18rQycxBfqdMJhm-Cc,319
18
+ memori/database/queries/base_queries.py,sha256=ZBMxqt48j3ooF5OZIkKtBSh24Ex-Mnhg-3wnyL3cl-M,10595
19
+ memori/database/queries/chat_queries.py,sha256=gFsLLjAov502Pns9HAMr_MqLDETplZBQSPs9nqWFCnk,4431
20
+ memori/database/queries/entity_queries.py,sha256=no6bzXHNzRs4mmbi4MggW2F19XxfJ-0RQKv3iv84a64,7518
21
+ memori/database/queries/memory_queries.py,sha256=hodLllgfLbQvdeOSCcZadPyAF3ro3O6Mbz0jAtDIXvc,5609
22
+ memori/database/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ memori/database/templates/basic_template.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ memori/database/templates/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ memori/integrations/__init__.py,sha256=9VVDvedcu4ZxK2Tt_fT5ZSRPV9xakfEloNhPibpvHA8,1978
26
+ memori/integrations/anthropic_integration.py,sha256=IJtqPYTcMaYsXKWUabR4XDMpCabg9qMK7d-8T9A1CcY,8169
27
+ memori/integrations/litellm_integration.py,sha256=fNQqov9TThFD9YRWLAFsZ1R4-Bsm4E70qYQ17Z4ZVik,351
28
+ memori/integrations/openai_integration.py,sha256=e_CV-CGPhwhTvH5fiA1NDcKYGZiDtN74luRJP5r2OdQ,12033
29
+ memori/scripts/llm_text.py,sha256=HDkuGMb527yupSbA3syBFA9WHBPnP2lVqEKW6trIZtU,1603
30
+ memori/tools/__init__.py,sha256=0KPbWAFYmvEleacrby4RzhJGW5GPdFiXN6RWwFrbqf4,200
31
+ memori/tools/memory_tool.py,sha256=j57j2-MbhC9oTQJxBOnEBssB536OAb7igFA-XnxtHy4,20917
32
+ memori/utils/__init__.py,sha256=e3AN4KfomQBQDsr53HwfvOeTtI3QZMzGQMYpRp8l6ow,1757
33
+ memori/utils/exceptions.py,sha256=JGLo2S8ElG3gBjD4aJeVPWNsNB9OLPYAYzCdKfiEW74,12136
34
+ memori/utils/helpers.py,sha256=_lpGSsI2UkMyYUY6X9k_VEpACvyxwY51TzgYVPZTeBk,13059
35
+ memori/utils/logging.py,sha256=HXf3UrE0cm72KvFwyCjE7237opIxdNqzqxQQauhrX34,7131
36
+ memori/utils/pydantic_models.py,sha256=U9nVy3Dko1X_dS4PpA7z2aacqegSSwOmZvQzPuVRcA0,8047
37
+ memori/utils/schemas.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ memori/utils/validators.py,sha256=2btILpEh2yBS_6rytp2B2epFxMT4876SibS0yNj6bKI,11287
39
+ memorisdk-1.0.1.dist-info/licenses/LICENSE,sha256=gyrDaYsSODngoYE1l68l_UfjppS-oYDrf1MvY1JGhgE,10430
40
+ memorisdk-1.0.1.dist-info/METADATA,sha256=NlWPctmdLlWel35LPLNMIgKjzbpSsHCebqZ5mU_nsUk,12989
41
+ memorisdk-1.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
42
+ memorisdk-1.0.1.dist-info/entry_points.txt,sha256=ir3aWDbFfKGKQlnJCW440GQ2saYNznptoXWheOUtu5c,43
43
+ memorisdk-1.0.1.dist-info/top_level.txt,sha256=Nm3ad0isbJYBzTEce-O_gmkAEiTbAbyilgAhRt8IoGA,7
44
+ memorisdk-1.0.1.dist-info/RECORD,,
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ memori = memori.cli:main
@@ -0,0 +1 @@
1
+ memori
@@ -1,44 +0,0 @@
1
- memoriai/__init__.py,sha256=EpqarE_UsvWNALb2YWk4XAc5SML5uRjZOr1DHIrXNgo,3202
2
- memoriai/agents/__init__.py,sha256=9M3IG5R10FfVgT8tUzBZ2pZ0SypSpYkFfhtyvMyeTpE,261
3
- memoriai/agents/conscious_agent.py,sha256=6sgoTOkSrRGTAdEKGZPa5V6DFdzVxm_InZS85OnsVLE,20478
4
- memoriai/agents/memory_agent.py,sha256=Sz3MsQ4aRUccN5YO86he3tAwyP43KXFAH7KXPOC7QFY,12891
5
- memoriai/agents/retrieval_agent.py,sha256=PofpjLvx7Y4M9ns6kkypwT2D9eFaO2xffSuPovi8zuw,21490
6
- memoriai/config/__init__.py,sha256=tQAxopgOsea02u9iId-ocOY86nWWNGC3rvt3AOFcLn8,295
7
- memoriai/config/manager.py,sha256=xi8d8xW3obyV6v9UHDG6idSAymge8yWxGW11e2mI0nQ,10388
8
- memoriai/config/settings.py,sha256=nrrWD4hwdbtYlIPtJFHgGyMudGP-hz9sA-KBW_7ZZbE,9724
9
- memoriai/core/__init__.py,sha256=jvhHn-KL3bzRHs11-4B0BCKH6gkAf6Gf_G59If8fD0M,157
10
- memoriai/core/database.py,sha256=eok8lvXvFbHk_H2TEiYnRAX5nVE0xQgE0TUigRfGovs,36248
11
- memoriai/core/memory.py,sha256=nYPqO4dCzKEzVxYKJn4OvrSz7zq3vQ3gUpGkpZ1B88A,53313
12
- memoriai/database/__init__.py,sha256=kMLxwfRfTVvw0oV1kl9v-Dkyqm6ggcsMV6hltqdrN3k,189
13
- memoriai/database/connectors/__init__.py,sha256=tG283nMRMWWM3B4WBfi7PMYnSUcH2Go5C88O91dOjcE,275
14
- memoriai/database/connectors/mysql_connector.py,sha256=P9tahYczjgfm_0iZpD1OxekeXLXnbpKt9M9EEe9NAjU,4861
15
- memoriai/database/connectors/postgres_connector.py,sha256=30wMEeVbvAc30_OrA0MqjePEgCGd9ejtG2ycXZLlotM,5495
16
- memoriai/database/connectors/sqlite_connector.py,sha256=5KbOh0OrIt8e7NEw7aYSk7pl5PMLnMCvf_GbA0Wzsvk,4782
17
- memoriai/database/queries/__init__.py,sha256=BIxenJzxOosD2-myGfGrortbq18rQycxBfqdMJhm-Cc,319
18
- memoriai/database/queries/base_queries.py,sha256=ZBMxqt48j3ooF5OZIkKtBSh24Ex-Mnhg-3wnyL3cl-M,10595
19
- memoriai/database/queries/chat_queries.py,sha256=gFsLLjAov502Pns9HAMr_MqLDETplZBQSPs9nqWFCnk,4431
20
- memoriai/database/queries/entity_queries.py,sha256=no6bzXHNzRs4mmbi4MggW2F19XxfJ-0RQKv3iv84a64,7518
21
- memoriai/database/queries/memory_queries.py,sha256=hodLllgfLbQvdeOSCcZadPyAF3ro3O6Mbz0jAtDIXvc,5609
22
- memoriai/database/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- memoriai/database/templates/basic_template.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- memoriai/database/templates/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- memoriai/integrations/__init__.py,sha256=91g1ydUEvljM6dSSo64NB9XLYTyQA5Kr76rgpGIOYVo,1980
26
- memoriai/integrations/anthropic_integration.py,sha256=qKAAnUweJmdaDMpw2C-OEtlYQ76XEUr0nC0-gTzeht8,8171
27
- memoriai/integrations/litellm_integration.py,sha256=EgerRkbtRTeDKwg1_zZMJEJR7fgGXtCqyMJTtmUHczM,353
28
- memoriai/integrations/openai_integration.py,sha256=mMSN0UyIOwyJ018Dyp08qEYBjqDgpqMW6XPDY4YFIZo,12035
29
- memoriai/scripts/llm_text.py,sha256=HDkuGMb527yupSbA3syBFA9WHBPnP2lVqEKW6trIZtU,1603
30
- memoriai/tools/__init__.py,sha256=0KPbWAFYmvEleacrby4RzhJGW5GPdFiXN6RWwFrbqf4,200
31
- memoriai/tools/memory_tool.py,sha256=j57j2-MbhC9oTQJxBOnEBssB536OAb7igFA-XnxtHy4,20917
32
- memoriai/utils/__init__.py,sha256=e3AN4KfomQBQDsr53HwfvOeTtI3QZMzGQMYpRp8l6ow,1757
33
- memoriai/utils/exceptions.py,sha256=JGLo2S8ElG3gBjD4aJeVPWNsNB9OLPYAYzCdKfiEW74,12136
34
- memoriai/utils/helpers.py,sha256=_lpGSsI2UkMyYUY6X9k_VEpACvyxwY51TzgYVPZTeBk,13059
35
- memoriai/utils/logging.py,sha256=HXf3UrE0cm72KvFwyCjE7237opIxdNqzqxQQauhrX34,7131
36
- memoriai/utils/pydantic_models.py,sha256=U9nVy3Dko1X_dS4PpA7z2aacqegSSwOmZvQzPuVRcA0,8047
37
- memoriai/utils/schemas.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- memoriai/utils/validators.py,sha256=2btILpEh2yBS_6rytp2B2epFxMT4876SibS0yNj6bKI,11287
39
- memorisdk-1.0.0.dist-info/licenses/LICENSE,sha256=gyrDaYsSODngoYE1l68l_UfjppS-oYDrf1MvY1JGhgE,10430
40
- memorisdk-1.0.0.dist-info/METADATA,sha256=C5HnlWjVCx-pEe5eDYFxBXkijN4iTgz1LnNPve0aQFc,13018
41
- memorisdk-1.0.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
42
- memorisdk-1.0.0.dist-info/entry_points.txt,sha256=8qHNW4hrF9viZ3C523UVeD8-Ttfv0glnolVGsW0dEd4,45
43
- memorisdk-1.0.0.dist-info/top_level.txt,sha256=k-gJd3WNS2pa1YwVhAQ5gHvuLNt_bx1eAAalk5JVQnk,9
44
- memorisdk-1.0.0.dist-info/RECORD,,
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- memori = memoriai.cli:main
@@ -1 +0,0 @@
1
- memoriai
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes