diff --git a/.gradle/8.5/checksums/checksums.lock b/.gradle/8.5/checksums/checksums.lock
new file mode 100644
index 00000000..e6385736
Binary files /dev/null and b/.gradle/8.5/checksums/checksums.lock differ
diff --git a/.gradle/8.5/checksums/md5-checksums.bin b/.gradle/8.5/checksums/md5-checksums.bin
new file mode 100644
index 00000000..7383dd50
Binary files /dev/null and b/.gradle/8.5/checksums/md5-checksums.bin differ
diff --git a/.gradle/8.5/checksums/sha1-checksums.bin b/.gradle/8.5/checksums/sha1-checksums.bin
new file mode 100644
index 00000000..6b55034d
Binary files /dev/null and b/.gradle/8.5/checksums/sha1-checksums.bin differ
diff --git a/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock b/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock
new file mode 100644
index 00000000..f7df20b2
Binary files /dev/null and b/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock differ
diff --git a/.gradle/8.5/dependencies-accessors/gc.properties b/.gradle/8.5/dependencies-accessors/gc.properties
new file mode 100644
index 00000000..e69de29b
diff --git a/.gradle/8.5/executionHistory/executionHistory.bin b/.gradle/8.5/executionHistory/executionHistory.bin
new file mode 100644
index 00000000..ca0a2f05
Binary files /dev/null and b/.gradle/8.5/executionHistory/executionHistory.bin differ
diff --git a/.gradle/8.5/executionHistory/executionHistory.lock b/.gradle/8.5/executionHistory/executionHistory.lock
new file mode 100644
index 00000000..5315a230
Binary files /dev/null and b/.gradle/8.5/executionHistory/executionHistory.lock differ
diff --git a/.gradle/8.5/fileChanges/last-build.bin b/.gradle/8.5/fileChanges/last-build.bin
new file mode 100644
index 00000000..f76dd238
Binary files /dev/null and b/.gradle/8.5/fileChanges/last-build.bin differ
diff --git a/.gradle/8.5/fileHashes/fileHashes.bin b/.gradle/8.5/fileHashes/fileHashes.bin
new file mode 100644
index 00000000..e23416f0
Binary files /dev/null and b/.gradle/8.5/fileHashes/fileHashes.bin differ
diff --git a/.gradle/8.5/fileHashes/fileHashes.lock b/.gradle/8.5/fileHashes/fileHashes.lock
new file mode 100644
index 00000000..979790bb
Binary files /dev/null and b/.gradle/8.5/fileHashes/fileHashes.lock differ
diff --git a/.gradle/8.5/fileHashes/resourceHashesCache.bin b/.gradle/8.5/fileHashes/resourceHashesCache.bin
new file mode 100644
index 00000000..74ae82cc
Binary files /dev/null and b/.gradle/8.5/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/8.5/gc.properties b/.gradle/8.5/gc.properties
new file mode 100644
index 00000000..e69de29b
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
new file mode 100644
index 00000000..b62cc134
Binary files /dev/null and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 00000000..20dd4643
--- /dev/null
+++ b/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Tue Dec 23 18:59:01 MSK 2025
+gradle.version=8.5
diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
new file mode 100644
index 00000000..89a87e9c
Binary files /dev/null and b/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/.gradle/config.properties b/.gradle/config.properties
new file mode 100644
index 00000000..3c035439
--- /dev/null
+++ b/.gradle/config.properties
@@ -0,0 +1,2 @@
+#Tue Dec 23 19:09:56 MSK 2025
+java.home=/Applications/Android Studio.app/Contents/jbr/Contents/Home
diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe
new file mode 100644
index 00000000..363938a3
Binary files /dev/null and b/.gradle/file-system.probe differ
diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties
new file mode 100644
index 00000000..e69de29b
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 00000000..b589d56e
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 00000000..aeac74f3
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
index 4a633946..0ee417e9 100644
--- a/.idea/kotlinc.xml
+++ b/.idea/kotlinc.xml
@@ -7,4 +7,7 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/migrations.xml b/.idea/migrations.xml
new file mode 100644
index 00000000..f8051a6f
--- /dev/null
+++ b/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9c8e7400..ac801d80 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
-
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 9fc53354..00000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/other.xml b/.idea/other.xml
new file mode 100644
index 00000000..c9a97cc8
--- /dev/null
+++ b/.idea/other.xml
@@ -0,0 +1,1077 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/yatool.xml b/.idea/yatool.xml
new file mode 100644
index 00000000..b1dc6f22
--- /dev/null
+++ b/.idea/yatool.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Kotlin-Module-Project.iml b/Kotlin-Module-Project.iml
deleted file mode 100644
index 4eba30bc..00000000
--- a/Kotlin-Module-Project.iml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 00000000..a5f9a34c
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,16 @@
+plugins {
+ kotlin("jvm") version "1.8.0"
+ application
+}
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ implementation(kotlin("stdlib"))
+}
+
+application {
+ mainClass.set("MainKt")
+}
\ No newline at end of file
diff --git a/build/classes/kotlin/main/Archive.class b/build/classes/kotlin/main/Archive.class
new file mode 100644
index 00000000..6c130354
Binary files /dev/null and b/build/classes/kotlin/main/Archive.class differ
diff --git a/build/classes/kotlin/main/ArchiveMenu$show$1.class b/build/classes/kotlin/main/ArchiveMenu$show$1.class
new file mode 100644
index 00000000..00c10bc5
Binary files /dev/null and b/build/classes/kotlin/main/ArchiveMenu$show$1.class differ
diff --git a/build/classes/kotlin/main/ArchiveMenu$show$2$1.class b/build/classes/kotlin/main/ArchiveMenu$show$2$1.class
new file mode 100644
index 00000000..f72adc02
Binary files /dev/null and b/build/classes/kotlin/main/ArchiveMenu$show$2$1.class differ
diff --git a/build/classes/kotlin/main/ArchiveMenu$show$3.class b/build/classes/kotlin/main/ArchiveMenu$show$3.class
new file mode 100644
index 00000000..47c8828c
Binary files /dev/null and b/build/classes/kotlin/main/ArchiveMenu$show$3.class differ
diff --git a/build/classes/kotlin/main/ArchiveMenu.class b/build/classes/kotlin/main/ArchiveMenu.class
new file mode 100644
index 00000000..28e366e0
Binary files /dev/null and b/build/classes/kotlin/main/ArchiveMenu.class differ
diff --git a/build/classes/kotlin/main/META-INF/Kotlin-Module-Project.kotlin_module b/build/classes/kotlin/main/META-INF/Kotlin-Module-Project.kotlin_module
new file mode 100644
index 00000000..3c965080
Binary files /dev/null and b/build/classes/kotlin/main/META-INF/Kotlin-Module-Project.kotlin_module differ
diff --git a/build/classes/kotlin/main/MainKt.class b/build/classes/kotlin/main/MainKt.class
new file mode 100644
index 00000000..f0090f83
Binary files /dev/null and b/build/classes/kotlin/main/MainKt.class differ
diff --git a/build/classes/kotlin/main/MenuNavigator.class b/build/classes/kotlin/main/MenuNavigator.class
new file mode 100644
index 00000000..95017155
Binary files /dev/null and b/build/classes/kotlin/main/MenuNavigator.class differ
diff --git a/build/classes/kotlin/main/Note.class b/build/classes/kotlin/main/Note.class
new file mode 100644
index 00000000..6802a514
Binary files /dev/null and b/build/classes/kotlin/main/Note.class differ
diff --git a/build/classes/kotlin/main/NoteMenu$show$1.class b/build/classes/kotlin/main/NoteMenu$show$1.class
new file mode 100644
index 00000000..8d059f78
Binary files /dev/null and b/build/classes/kotlin/main/NoteMenu$show$1.class differ
diff --git a/build/classes/kotlin/main/NoteMenu$show$2$1.class b/build/classes/kotlin/main/NoteMenu$show$2$1.class
new file mode 100644
index 00000000..6566645a
Binary files /dev/null and b/build/classes/kotlin/main/NoteMenu$show$2$1.class differ
diff --git a/build/classes/kotlin/main/NoteMenu$show$3.class b/build/classes/kotlin/main/NoteMenu$show$3.class
new file mode 100644
index 00000000..d4a2754f
Binary files /dev/null and b/build/classes/kotlin/main/NoteMenu$show$3.class differ
diff --git a/build/classes/kotlin/main/NoteMenu.class b/build/classes/kotlin/main/NoteMenu.class
new file mode 100644
index 00000000..cee7e465
Binary files /dev/null and b/build/classes/kotlin/main/NoteMenu.class differ
diff --git a/build/classes/kotlin/main/NoteViewer.class b/build/classes/kotlin/main/NoteViewer.class
new file mode 100644
index 00000000..2d44ab2c
Binary files /dev/null and b/build/classes/kotlin/main/NoteViewer.class differ
diff --git a/build/distributions/Kotlin-Module-Project.tar b/build/distributions/Kotlin-Module-Project.tar
new file mode 100644
index 00000000..6fe14442
Binary files /dev/null and b/build/distributions/Kotlin-Module-Project.tar differ
diff --git a/build/distributions/Kotlin-Module-Project.zip b/build/distributions/Kotlin-Module-Project.zip
new file mode 100644
index 00000000..24c794a4
Binary files /dev/null and b/build/distributions/Kotlin-Module-Project.zip differ
diff --git a/build/kotlin/KotlinModuleProjectjar-classes.txt b/build/kotlin/KotlinModuleProjectjar-classes.txt
new file mode 100644
index 00000000..83ad23a9
--- /dev/null
+++ b/build/kotlin/KotlinModuleProjectjar-classes.txt
@@ -0,0 +1 @@
+/Users/pervenenok/AndroidStudioProjects/Kotlin-Module-Project/build/classes/kotlin/main/Archive.class:/Users/pervenenok/AndroidStudioProjects/Kotlin-Module-Project/build/classes/kotlin/main/ArchiveMenu$show$1.class:/Users/pervenenok/AndroidStudioProjects/Kotlin-Module-Project/build/classes/kotlin/main/ArchiveMenu$show$2$1.class:/Users/pervenenok/AndroidStudioProjects/Kotlin-Module-Project/build/classes/kotlin/main/ArchiveMenu$show$3.class:/Users/pervenenok/AndroidStudioProjects/Kotlin-Module-Project/build/classes/kotlin/main/ArchiveMenu.class:/Users/pervenenok/AndroidStudioProjects/Kotlin-Module-Project/build/classes/kotlin/main/MainKt.class:/Users/pervenenok/AndroidStudioProjects/Kotlin-Module-Project/build/classes/kotlin/main/MenuNavigator.class:/Users/pervenenok/AndroidStudioProjects/Kotlin-Module-Project/build/classes/kotlin/main/Note.class:/Users/pervenenok/AndroidStudioProjects/Kotlin-Module-Project/build/classes/kotlin/main/NoteMenu$show$1.class:/Users/pervenenok/AndroidStudioProjects/Kotlin-Module-Project/build/classes/kotlin/main/NoteMenu$show$2$1.class:/Users/pervenenok/AndroidStudioProjects/Kotlin-Module-Project/build/classes/kotlin/main/NoteMenu$show$3.class:/Users/pervenenok/AndroidStudioProjects/Kotlin-Module-Project/build/classes/kotlin/main/NoteMenu.class:/Users/pervenenok/AndroidStudioProjects/Kotlin-Module-Project/build/classes/kotlin/main/NoteViewer.class
\ No newline at end of file
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab
new file mode 100644
index 00000000..77ea8493
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream
new file mode 100644
index 00000000..082220ba
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len
new file mode 100644
index 00000000..8d323baa
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len
new file mode 100644
index 00000000..817b326d
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at
new file mode 100644
index 00000000..52ca2f3b
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i
new file mode 100644
index 00000000..148bc898
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab
new file mode 100644
index 00000000..b2474179
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream
new file mode 100644
index 00000000..a8de653d
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len
new file mode 100644
index 00000000..130ab288
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len
new file mode 100644
index 00000000..9e27f732
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at
new file mode 100644
index 00000000..70686e64
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i
new file mode 100644
index 00000000..2cac5414
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab
new file mode 100644
index 00000000..a2c81ef9
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream
new file mode 100644
index 00000000..a8de653d
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len
new file mode 100644
index 00000000..130ab288
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len
new file mode 100644
index 00000000..9e27f732
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at
new file mode 100644
index 00000000..c6983434
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i
new file mode 100644
index 00000000..2cac5414
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab
new file mode 100644
index 00000000..c37234a5
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream
new file mode 100644
index 00000000..22e22434
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len
new file mode 100644
index 00000000..68b143b4
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len
new file mode 100644
index 00000000..cf8a30a1
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at
new file mode 100644
index 00000000..acb57cfb
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i
new file mode 100644
index 00000000..07065ef6
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab
new file mode 100644
index 00000000..bdf584a8
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream
new file mode 100644
index 00000000..a14e187d
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len
new file mode 100644
index 00000000..379d85ce
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len
new file mode 100644
index 00000000..2a17e6e5
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at
new file mode 100644
index 00000000..46d67449
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i
new file mode 100644
index 00000000..61f679b5
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab
new file mode 100644
index 00000000..22ad9d15
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream
new file mode 100644
index 00000000..308144cf
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len
new file mode 100644
index 00000000..81438499
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len
new file mode 100644
index 00000000..fa606b62
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at
new file mode 100644
index 00000000..cfa8000a
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i
new file mode 100644
index 00000000..56207d86
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab
new file mode 100644
index 00000000..c2e16310
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream
new file mode 100644
index 00000000..4b147853
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len
new file mode 100644
index 00000000..8d323baa
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len
new file mode 100644
index 00000000..817b326d
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at
new file mode 100644
index 00000000..fde4b7ee
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i
new file mode 100644
index 00000000..b46a00c6
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab
new file mode 100644
index 00000000..6562d99d
--- /dev/null
+++ b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab
@@ -0,0 +1,2 @@
+18
+0
\ No newline at end of file
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab
new file mode 100644
index 00000000..d6b608d3
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream
new file mode 100644
index 00000000..4b147853
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len
new file mode 100644
index 00000000..8d323baa
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len
new file mode 100644
index 00000000..817b326d
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at
new file mode 100644
index 00000000..5b7bdc31
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i
new file mode 100644
index 00000000..1c243610
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab
new file mode 100644
index 00000000..0cb94beb
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream
new file mode 100644
index 00000000..99cb6e96
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len
new file mode 100644
index 00000000..c54fd0d9
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len
new file mode 100644
index 00000000..09407efa
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at
new file mode 100644
index 00000000..6bcc5ea9
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i
new file mode 100644
index 00000000..504f86b4
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab
new file mode 100644
index 00000000..3c195183
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream
new file mode 100644
index 00000000..b6a00385
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len
new file mode 100644
index 00000000..39828c54
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.len
new file mode 100644
index 00000000..402d1e6d
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at
new file mode 100644
index 00000000..77c20979
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i
new file mode 100644
index 00000000..57e6dfa2
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i differ
diff --git a/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len
new file mode 100644
index 00000000..131e2657
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len differ
diff --git a/build/kotlin/compileKotlin/cacheable/last-build.bin b/build/kotlin/compileKotlin/cacheable/last-build.bin
new file mode 100644
index 00000000..c700f4d6
Binary files /dev/null and b/build/kotlin/compileKotlin/cacheable/last-build.bin differ
diff --git a/build/kotlin/compileKotlin/local-state/build-history.bin b/build/kotlin/compileKotlin/local-state/build-history.bin
new file mode 100644
index 00000000..74da0f57
Binary files /dev/null and b/build/kotlin/compileKotlin/local-state/build-history.bin differ
diff --git a/build/libs/Kotlin-Module-Project.jar b/build/libs/Kotlin-Module-Project.jar
new file mode 100644
index 00000000..02b6eaa1
Binary files /dev/null and b/build/libs/Kotlin-Module-Project.jar differ
diff --git a/build/scripts/Kotlin-Module-Project b/build/scripts/Kotlin-Module-Project
new file mode 100755
index 00000000..e4e588dc
--- /dev/null
+++ b/build/scripts/Kotlin-Module-Project
@@ -0,0 +1,248 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+#
+# Kotlin-Module-Project start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Kotlin-Module-Project
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and KOTLIN_MODULE_PROJECT_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd "${APP_HOME:-./}.." > /dev/null && pwd -P ) || exit
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/lib/Kotlin-Module-Project.jar:$APP_HOME/lib/kotlin-stdlib-1.8.0.jar:$APP_HOME/lib/kotlin-stdlib-common-1.8.0.jar:$APP_HOME/lib/annotations-13.0.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and KOTLIN_MODULE_PROJECT_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+
+# Add default JVM options here. You can also use JAVA_OPTS and KOTLIN_MODULE_PROJECT_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Collect all arguments for the java command:
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# and any embedded shellness will be escaped.
+# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+# treated as '${Hostname}' itself on the command line.
+
+set -- \
+ -classpath "$CLASSPATH" \
+ MainKt \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $KOTLIN_MODULE_PROJECT_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/build/scripts/Kotlin-Module-Project.bat b/build/scripts/Kotlin-Module-Project.bat
new file mode 100644
index 00000000..b1b7a077
--- /dev/null
+++ b/build/scripts/Kotlin-Module-Project.bat
@@ -0,0 +1,92 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem Kotlin-Module-Project startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%..
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and KOTLIN_MODULE_PROJECT_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\lib\Kotlin-Module-Project.jar;%APP_HOME%\lib\kotlin-stdlib-1.8.0.jar;%APP_HOME%\lib\kotlin-stdlib-common-1.8.0.jar;%APP_HOME%\lib\annotations-13.0.jar
+
+
+@rem Execute Kotlin-Module-Project
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %KOTLIN_MODULE_PROJECT_OPTS% -classpath "%CLASSPATH%" MainKt %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable KOTLIN_MODULE_PROJECT_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%KOTLIN_MODULE_PROJECT_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/build/tmp/jar/MANIFEST.MF b/build/tmp/jar/MANIFEST.MF
new file mode 100644
index 00000000..58630c02
--- /dev/null
+++ b/build/tmp/jar/MANIFEST.MF
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 00000000..29e08e8c
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1 @@
+kotlin.code.style=official
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 00000000..d64cd491
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..1af9e093
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,7 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
+networkTimeout=10000
+validateDistributionUrl=true
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100755
index 00000000..1aa94a42
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,249 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Collect all arguments for the java command:
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# and any embedded shellness will be escaped.
+# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+# treated as '${Hostname}' itself on the command line.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 00000000..6689b85b
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,92 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/local.properties b/local.properties
new file mode 100644
index 00000000..b0dfce2c
--- /dev/null
+++ b/local.properties
@@ -0,0 +1,8 @@
+## This file must *NOT* be checked into Version Control Systems,
+# as it contains information specific to your local configuration.
+#
+# Location of the SDK. This is only used by Gradle.
+# For customization when using a Version Control System, please read the
+# header note.
+#Tue Dec 23 19:01:39 MSK 2025
+sdk.dir=/Users/pervenenok/Library/Android/sdk
diff --git a/settings.gradle.kts b/settings.gradle.kts
new file mode 100644
index 00000000..6ddb0455
--- /dev/null
+++ b/settings.gradle.kts
@@ -0,0 +1 @@
+rootProject.name = "Kotlin-Module-Project"
\ No newline at end of file
diff --git a/src/main/kotlin/Archive.kt b/src/main/kotlin/Archive.kt
new file mode 100644
index 00000000..2a368648
--- /dev/null
+++ b/src/main/kotlin/Archive.kt
@@ -0,0 +1,3 @@
+class Archive(val name: String) {
+ val notes = mutableListOf()
+}
\ No newline at end of file
diff --git a/src/main/kotlin/ArchiveMenu.kt b/src/main/kotlin/ArchiveMenu.kt
new file mode 100644
index 00000000..b0baf3a1
--- /dev/null
+++ b/src/main/kotlin/ArchiveMenu.kt
@@ -0,0 +1,32 @@
+import java.util.*
+
+class ArchiveMenu(private val navigator: MenuNavigator) {
+ private val archives = mutableListOf()
+
+ fun show() {
+ var shouldExit = false
+ while (!shouldExit) {
+ val items = mutableListOf Unit>>()
+ items.add(Pair("Создать архив", { createArchive() }))
+ archives.forEachIndexed { _, archive ->
+ items.add(Pair("Открыть архив: ${archive.name}", { showNotes(archive) }))
+ }
+ items.add(Pair("Выход", { shouldExit = true }))
+
+ navigator.showMenu("Архивы:", items)
+ }
+ }
+
+ private fun createArchive() {
+ val name = navigator.readString("Введите название архива: ")
+ if (name.isNotBlank()) {
+ archives.add(Archive(name))
+ } else {
+ println("Название архива не может быть пустым.")
+ }
+ }
+
+ private fun showNotes(archive: Archive) {
+ NoteMenu(navigator, archive).show()
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/Main.kt b/src/main/kotlin/Main.kt
index aade54c5..36cabca2 100644
--- a/src/main/kotlin/Main.kt
+++ b/src/main/kotlin/Main.kt
@@ -1,3 +1,5 @@
-fun main(args: Array) {
- println("Hello World!")
+fun main() {
+ val navigator = MenuNavigator()
+ val archiveMenu = ArchiveMenu(navigator)
+ archiveMenu.show()
}
\ No newline at end of file
diff --git a/src/main/kotlin/MenuNavigator.kt b/src/main/kotlin/MenuNavigator.kt
new file mode 100644
index 00000000..61efdc93
--- /dev/null
+++ b/src/main/kotlin/MenuNavigator.kt
@@ -0,0 +1,34 @@
+import java.util.Scanner
+
+class MenuNavigator {
+ private val scanner = Scanner(System.`in`)
+
+ fun showMenu(title: String, items: List Unit>>): Int {
+ while (true) {
+ println(title)
+ items.forEachIndexed { index, (name, _) ->
+ println("$index. $name")
+ }
+
+ print("Введите номер пункта меню: ")
+ val input = scanner.nextLine()
+
+ try {
+ val choice = input.toInt()
+ if (choice in 0 until items.size) {
+ items[choice].second()
+ return choice
+ } else {
+ println("Неверный номер пункта меню. Пожалуйста, введите корректный номер.")
+ }
+ } catch (e: NumberFormatException) {
+ println("Пожалуйста, введите цифру.")
+ }
+ }
+ }
+
+ fun readString(prompt: String): String {
+ print(prompt)
+ return scanner.nextLine()
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/Note.kt b/src/main/kotlin/Note.kt
new file mode 100644
index 00000000..0307e6fe
--- /dev/null
+++ b/src/main/kotlin/Note.kt
@@ -0,0 +1 @@
+class Note(val title: String, val content: String)
\ No newline at end of file
diff --git a/src/main/kotlin/NoteMenu.kt b/src/main/kotlin/NoteMenu.kt
new file mode 100644
index 00000000..d377da8d
--- /dev/null
+++ b/src/main/kotlin/NoteMenu.kt
@@ -0,0 +1,35 @@
+class NoteMenu(private val navigator: MenuNavigator, private val archive: Archive) {
+ fun show() {
+ var shouldExit = false
+ while (!shouldExit) {
+ val items = mutableListOf Unit>>()
+ items.add(Pair("Создать заметку", { createNote() }))
+ archive.notes.forEachIndexed { _, note ->
+ items.add(Pair("Открыть заметку: ${note.title}", { showNote(note) }))
+ }
+ items.add(Pair("Архивы", { shouldExit = true }))
+
+ navigator.showMenu("Заметки:", items)
+ }
+ }
+
+ private fun createNote() {
+ val title = navigator.readString("Введите заголовок заметки: ")
+ if (title.isBlank()) {
+ println("Заголовок заметки не может быть пустым.")
+ return
+ }
+
+ val content = navigator.readString("Введите текст заметки: ")
+ if (content.isBlank()) {
+ println("Текст заметки не может быть пустым.")
+ return
+ }
+
+ archive.notes.add(Note(title, content))
+ }
+
+ private fun showNote(note: Note) {
+ NoteViewer(navigator, note).show()
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/NoteViewer.kt b/src/main/kotlin/NoteViewer.kt
new file mode 100644
index 00000000..8e15d973
--- /dev/null
+++ b/src/main/kotlin/NoteViewer.kt
@@ -0,0 +1,8 @@
+class NoteViewer(private val navigator: MenuNavigator, private val note: Note) {
+ fun show() {
+ println("Заметка: ${note.title}")
+ println(note.content)
+ println("\nНажмите Enter для возврата...")
+ navigator.readString("")
+ }
+}
\ No newline at end of file