From e03d9a9aef34a870618095837bc65d0f735a8a57 Mon Sep 17 00:00:00 2001
From: Torsten Grote <t@grobox.de>
Date: Thu, 16 Feb 2023 13:46:24 -0300
Subject: [PATCH] Add gradle-witness

---
 build.gradle                   |   3 +
 gradle/gradle-witness.jar      | Bin 0 -> 43880 bytes
 gradle/variables.gradle        |   1 -
 mailbox-android/build.gradle   |   4 +-
 mailbox-android/witness.gradle | 200 +++++++++++++++++++++++++++++++++
 mailbox-cli/build.gradle       |   4 +-
 mailbox-cli/witness.gradle     |  95 ++++++++++++++++
 mailbox-core/build.gradle      |   4 +-
 mailbox-core/witness.gradle    | 185 ++++++++++++++++++++++++++++++
 mailbox-lib/build.gradle       |   4 +-
 mailbox-lib/witness.gradle     | 111 ++++++++++++++++++
 update-dependency-pinning.sh   |  22 ++++
 12 files changed, 628 insertions(+), 5 deletions(-)
 create mode 100644 gradle/gradle-witness.jar
 create mode 100644 mailbox-android/witness.gradle
 create mode 100644 mailbox-cli/witness.gradle
 create mode 100644 mailbox-core/witness.gradle
 create mode 100644 mailbox-lib/witness.gradle
 create mode 100755 update-dependency-pinning.sh

diff --git a/build.gradle b/build.gradle
index b182a1d3..901a765e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,12 +4,15 @@ buildscript {
     repositories {
         google()
         mavenCentral()
+        gradlePluginPortal()
     }
     dependencies {
         classpath 'com.android.tools.build:gradle:7.3.1'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
         classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
         classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
+        classpath 'org.jlleitschuh.gradle.ktlint:org.jlleitschuh.gradle.ktlint.gradle.plugin:11.1.0'
+        classpath files('gradle/gradle-witness.jar')
     }
 }
 
diff --git a/gradle/gradle-witness.jar b/gradle/gradle-witness.jar
new file mode 100644
index 0000000000000000000000000000000000000000..cc43daf14241a204cb89e05d9d7dd148f96c3372
GIT binary patch
literal 43880
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
W8V+g=gMmShdL0p<LR3<Zzx^MM*l-j8

literal 0
HcmV?d00001

diff --git a/gradle/variables.gradle b/gradle/variables.gradle
index c42ef183..f658f8d9 100644
--- a/gradle/variables.gradle
+++ b/gradle/variables.gradle
@@ -6,5 +6,4 @@ ext {
     obfs4_version = '0.0.14'
     junit_version = '5.7.2'
     mockk_version = '1.10.4'
-    ktlint_plugin_version = '10.2.1'
 }
diff --git a/mailbox-android/build.gradle b/mailbox-android/build.gradle
index a30bcac0..880a893a 100644
--- a/mailbox-android/build.gradle
+++ b/mailbox-android/build.gradle
@@ -6,9 +6,11 @@ plugins {
     id 'kotlin-android'
     id 'kotlin-kapt'
     id 'dagger.hilt.android.plugin'
-    id "org.jlleitschuh.gradle.ktlint" version "$ktlint_plugin_version"
+    id 'org.jlleitschuh.gradle.ktlint'
     id 'checkstyle' // only needed for Java code
+    id 'witness'
 }
+apply from: 'witness.gradle'
 
 checkstyle {
     configFile = new File('../config/checkstyle/checkstyle.xml')
diff --git a/mailbox-android/witness.gradle b/mailbox-android/witness.gradle
new file mode 100644
index 00000000..0cd0a869
--- /dev/null
+++ b/mailbox-android/witness.gradle
@@ -0,0 +1,200 @@
+dependencyVerification {
+    verify = [
+            'androidx.activity:activity-ktx:1.6.1:activity-ktx-1.6.1.aar:0561745b3ddce53db491221b2b0cd3a44cadfb091b85e7831fd8be344f117d6e',
+            'androidx.activity:activity:1.6.1:activity-1.6.1.aar:46d9c0e7547ac7276853366a590f891db2a86863387c0738cf1f11731dc8fd7e',
+            'androidx.annotation:annotation-experimental:1.1.0:annotation-experimental-1.1.0.aar:0157de61a2064047896a058080f3fd67ba57ad9a94857b3f7a363660243e3f90',
+            'androidx.annotation:annotation-experimental:1.3.0:annotation-experimental-1.3.0.aar:abfd29c8556e5bd0325a9f769ab9e9d154ff4a5515c476cdd5a2a8285b1b19dc',
+            'androidx.annotation:annotation:1.0.0:annotation-1.0.0.jar:0baae9755f7caf52aa80cd04324b91ba93af55d4d1d17dcc9a7b53d99ef7c016',
+            'androidx.annotation:annotation:1.2.0:annotation-1.2.0.jar:9029262bddce116e6d02be499e4afdba21f24c239087b76b3b57d7e98b490a36',
+            'androidx.annotation:annotation:1.3.0:annotation-1.3.0.jar:97dc45afefe3a1e421da42b8b6e9f90491477c45fc6178203e3a5e8a05ee8553',
+            'androidx.appcompat:appcompat-resources:1.6.1:appcompat-resources-1.6.1.aar:db915dbf49357863de1669ff9fdd8e9008d65fe357af6cce9ae63043ad5f6617',
+            'androidx.appcompat:appcompat:1.6.1:appcompat-1.6.1.aar:7ea5573b93ababd3bd32312451c6ea48a662b03a140dda81aebe75776a20a422',
+            'androidx.arch.core:core-common:2.1.0:core-common-2.1.0.jar:fe1237bf029d063e7f29fe39aeaf73ef74c8b0a3658486fc29d3c54326653889',
+            'androidx.arch.core:core-runtime:2.1.0:core-runtime-2.1.0.aar:dd77615bd3dd275afb11b62df25bae46b10b4a117cd37943af45bdcbf8755852',
+            'androidx.cardview:cardview:1.0.0:cardview-1.0.0.aar:1193c04c22a3d6b5946dae9f4e8c59d6adde6a71b6bd5d87fb99d82dda1afec7',
+            'androidx.collection:collection-ktx:1.1.0:collection-ktx-1.1.0.jar:2bfc54475c047131913361f56d0f7f019c6e5bee53eeb0eb7d94a7c499a05227',
+            'androidx.collection:collection:1.1.0:collection-1.1.0.jar:632a0e5407461de774409352940e292a291037724207a787820c77daf7d33b72',
+            'androidx.concurrent:concurrent-futures:1.0.0:concurrent-futures-1.0.0.jar:5595a40e278a7b39fa78a09490e3d7f3faa95c7b01447148bd38b5ade0605c35',
+            'androidx.concurrent:concurrent-futures:1.1.0:concurrent-futures-1.1.0.jar:0ce067c514a0d1049d1bebdf709e344ed3266fe9744275682937cdcb13334e9e',
+            'androidx.constraintlayout:constraintlayout-core:1.0.4:constraintlayout-core-1.0.4.jar:3e477f4de231e58b25f5a992f3be45e97d332c34a39a9e3e7d4b78ae0ac2256f',
+            'androidx.constraintlayout:constraintlayout:2.1.4:constraintlayout-2.1.4.aar:0df714c0b51e54710ebf746eb469d333176bbb3cb29f80775dc3ca4eb3162512',
+            'androidx.coordinatorlayout:coordinatorlayout:1.1.0:coordinatorlayout-1.1.0.aar:44a9e30abf56af1025c52a0af506fee9c4131aa55efda52f9fd9451211c5e8cb',
+            'androidx.core:core-ktx:1.2.0:core-ktx-1.2.0.aar:dcb74d510d552b35eff73b0dd27b829649535f3902e5b5a1f26040383c10a940',
+            'androidx.core:core-ktx:1.9.0:core-ktx-1.9.0.aar:1542a1df7be908c95fee91b8dbc03fd974f53f11d84a85d881f95a52551c4051',
+            'androidx.core:core:1.9.0:core-1.9.0.aar:8bda3ee3a88887d54f6679fb6b6cd788629f73234ac91c8bbed924e721ec85b8',
+            'androidx.cursoradapter:cursoradapter:1.0.0:cursoradapter-1.0.0.aar:a81c8fe78815fa47df5b749deb52727ad11f9397da58b16017f4eb2c11e28564',
+            'androidx.customview:customview:1.1.0:customview-1.1.0.aar:01f76ab043770a97b054046f9815717b82ce0355c02967d16c61981359dc189a',
+            'androidx.databinding:viewbinding:7.3.1:viewbinding-7.3.1.aar:fdb16459f0f3f15aeff264ba645c8f41173bd9dd3a398af2d97f323b08870363',
+            'androidx.documentfile:documentfile:1.0.0:documentfile-1.0.0.aar:865a061ef2fad16522f8433536b8d47208c46ff7c7745197dfa1eeb481869487',
+            'androidx.drawerlayout:drawerlayout:1.1.1:drawerlayout-1.1.1.aar:2c5f0dca378eb78ca2c4403f9889c77daa3059302260f26a07fe9f63c08926fe',
+            'androidx.dynamicanimation:dynamicanimation:1.0.0:dynamicanimation-1.0.0.aar:ce005162c229bf308d2d5b12fb6cad0874069cbbeaccee63a8193bd08d40de04',
+            'androidx.emoji2:emoji2-views-helper:1.2.0:emoji2-views-helper-1.2.0.aar:7ffa4d464d9db259fca0cdb50fbd4ab63d6872bcda59468b9f7555504c7d5ac4',
+            'androidx.emoji2:emoji2:1.2.0:emoji2-1.2.0.aar:f31a06c150ecb03073f55a6f7b0b74a240a6a8d727c14ce76726d020570dfa8c',
+            'androidx.fragment:fragment-ktx:1.5.5:fragment-ktx-1.5.5.aar:9a7064335312237b45cda04b898139e71361eb7288ec8b2a38c4bdb4befe088e',
+            'androidx.fragment:fragment:1.5.5:fragment-1.5.5.aar:e0a3174fed034556addf6d5beab068cf6b1e2da9db55ea512ba45cdb755c82a3',
+            'androidx.interpolator:interpolator:1.0.0:interpolator-1.0.0.aar:33193135a64fe21fa2c35eec6688f1a76e512606c0fc83dc1b689e37add7732a',
+            'androidx.legacy:legacy-support-core-utils:1.0.0:legacy-support-core-utils-1.0.0.aar:a7edcf01d5b52b3034073027bc4775b78a4764bb6202bb91d61c829add8dd1c7',
+            'androidx.lifecycle:lifecycle-common-java8:2.5.1:lifecycle-common-java8-2.5.1.jar:69e1a62e5752ca3f43fb1607f161379bbe88b64af89c1a543c126160adf7cc53',
+            'androidx.lifecycle:lifecycle-common:2.3.1:lifecycle-common-2.3.1.jar:15848fb56db32f4c7cdc72b324003183d52a4884d6bf09be708ac7f587d139b5',
+            'androidx.lifecycle:lifecycle-common:2.5.1:lifecycle-common-2.5.1.jar:20ad1520f625cf455e6afd7290988306d3a9886efa993e0860fbabf4bb3f7bda',
+            'androidx.lifecycle:lifecycle-livedata-core-ktx:2.5.1:lifecycle-livedata-core-ktx-2.5.1.aar:95c235e6f33e7f201e9d24cd5e7095ed0ae1e5d2cb4778a6daa29671aa1fc388',
+            'androidx.lifecycle:lifecycle-livedata-core:2.5.1:lifecycle-livedata-core-2.5.1.aar:ee792103ca248bfaf150c45a93871e4cf7e8cebab990e0f62f7de5d4ff2f209f',
+            'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1:lifecycle-livedata-ktx-2.5.1.aar:bf9193356d0d66248ede7e41f1cc242d0c60a64a75e67a777375f8d640e7cdf0',
+            'androidx.lifecycle:lifecycle-livedata:2.5.1:lifecycle-livedata-2.5.1.aar:8ad18cf18a8f82d77b11aab49cf9b9b3d418e5f564b216e91d815cf038cefdfb',
+            'androidx.lifecycle:lifecycle-process:2.4.1:lifecycle-process-2.4.1.aar:db649b3efa24e31052145310b002db91da346b3f89c093ec38c3046db45e794e',
+            'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1:lifecycle-runtime-ktx-2.5.1.aar:b3988ae01aae021ac666f232b85f88e8a75cacb2ac7bd6749cab73972540ce07',
+            'androidx.lifecycle:lifecycle-runtime:2.5.1:lifecycle-runtime-2.5.1.aar:33b0d73dc2f028fceb3599bacabe563c3db6d26f3513d889595863536a4ac8c0',
+            'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1:lifecycle-viewmodel-ktx-2.5.1.aar:30eecb351d81f0c429e186e65a892a42ce1d5bc5c80420bfece4ae279333023d',
+            'androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1:lifecycle-viewmodel-savedstate-2.5.1.aar:8481141f97f0e6213dd33fcc89a784c4bd11a6ff7d4779a1cf6a0e9fbdbf24e0',
+            'androidx.lifecycle:lifecycle-viewmodel:2.5.1:lifecycle-viewmodel-2.5.1.aar:14a27d5fb8a1436b1b7dec18bebaa66c830cdbbc8e28a81ce5f85b7c33b3ae9d',
+            'androidx.loader:loader:1.0.0:loader-1.0.0.aar:11f735cb3b55c458d470bed9e25254375b518b4b1bad6926783a7026db0f5025',
+            'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0:localbroadcastmanager-1.0.0.aar:e71c328ceef5c4a7d76f2d86df1b65d65fe2acf868b1a4efd84a3f34336186d8',
+            'androidx.multidex:multidex-instrumentation:2.0.0:multidex-instrumentation-2.0.0.aar:fb8115694b1731c23c1bbb628f5baaee37a8f3b50d69a7733b55278e101e1488',
+            'androidx.multidex:multidex:2.0.1:multidex-2.0.1.aar:42dd32ff9f97f85771b82a20003a8d70f68ab7b4ba328964312ce0732693db09',
+            'androidx.navigation:navigation-common-ktx:2.5.3:navigation-common-ktx-2.5.3.aar:6f5de047a79023c7767f5d27ec8bf8baad24d60659ed9781b021852ec0db6168',
+            'androidx.navigation:navigation-common:2.5.3:navigation-common-2.5.3.aar:841406807a7c2254c66460bfb71e65a112a95c84ecd6253302b3657f83332026',
+            'androidx.navigation:navigation-fragment-ktx:2.5.3:navigation-fragment-ktx-2.5.3.aar:47d8400282d0360f390c218c3c5206e8f7e8c61257ddac4136d7e1c67c560fa1',
+            'androidx.navigation:navigation-fragment:2.5.3:navigation-fragment-2.5.3.aar:8fd447ce032b1850bcded21855061d5dd209bf564dffb3a89451d0e642b26bec',
+            'androidx.navigation:navigation-runtime-ktx:2.5.3:navigation-runtime-ktx-2.5.3.aar:9ab94a34966c5501fac62979b96a5d64d1325b62caf707358616cf24df86caae',
+            'androidx.navigation:navigation-runtime:2.5.3:navigation-runtime-2.5.3.aar:b57ffe10d3be3fc814ead4df2a40092069aad4741ac26f0a1e763c31144fe120',
+            'androidx.navigation:navigation-ui-ktx:2.5.3:navigation-ui-ktx-2.5.3.aar:2443dedf8b4b2fbfd149970c7e4282d04d030614726107c0893fce33aa1870f7',
+            'androidx.navigation:navigation-ui:2.5.3:navigation-ui-2.5.3.aar:dcfefbd6274a6249d2843a547a554914fc86dc36479c15a631e33e7f22fc7d35',
+            'androidx.preference:preference-ktx:1.2.0:preference-ktx-1.2.0.aar:4c7116888722053aabafb29f020604b02826990c61387d37c0e23509ef17fa83',
+            'androidx.preference:preference:1.2.0:preference-1.2.0.aar:c6fea18e055df05e407384a34d78a009f381af0529db6a7622ab2334b72fed7b',
+            'androidx.print:print:1.0.0:print-1.0.0.aar:1d5c7f3135a1bba661fc373fd72e11eb0a4adbb3396787826dd8e4190d5d9edd',
+            'androidx.recyclerview:recyclerview:1.1.0:recyclerview-1.1.0.aar:f0d2b5a67d0a91ee1b1c73ef2b636a81f3563925ddd15a1d4e1c41ec28de7a4f',
+            'androidx.resourceinspection:resourceinspection-annotation:1.0.1:resourceinspection-annotation-1.0.1.jar:8cff870ec6fb31db48a52f4a792335b4bf8de07e03bd37823181526433ccd5cb',
+            'androidx.savedstate:savedstate-ktx:1.2.0:savedstate-ktx-1.2.0.aar:43112928d3cbb108801ee11130f303404bc4892cf78908811568195107bba7fe',
+            'androidx.savedstate:savedstate:1.2.0:savedstate-1.2.0.aar:2de528d6898e95ef020d22d9ffdf9d1f77cbdd93f92d39dfaa5d5c43b0c311c8',
+            'androidx.slidingpanelayout:slidingpanelayout:1.2.0:slidingpanelayout-1.2.0.aar:5f53339be2a4f90a9abea3571dd59e70a8a49e7f15dd82974a3898b4652e8714',
+            'androidx.startup:startup-runtime:1.1.1:startup-runtime-1.1.1.aar:e0a6329a371262fe4c450372b70fdaf33b769ef6917094723787cfce896b1dd3',
+            'androidx.test.espresso:espresso-core:3.5.1:espresso-core-3.5.1.aar:34b0493f4e002f205d961e562add0c0c31bb0acc657e89d89d4b188ac13f242c',
+            'androidx.test.espresso:espresso-idling-resource:3.5.1:espresso-idling-resource-3.5.1.aar:84fb8e2f5eda937771bee28582f5d2cfa61b0e9438d02041ca61b81e3dac3c87',
+            'androidx.test.ext:junit:1.1.5:junit-1.1.5.aar:4307c0e60f5d701db9c59bcd9115af705113c36a9132fa3dbad58db1294e9bfd',
+            'androidx.test.services:storage:1.4.2:storage-1.4.2.aar:b34861f0cd920cb1089f08c3f27e5865b7f920284cc45f4ed12ef8d6980dac48',
+            'androidx.test:annotation:1.0.1:annotation-1.0.1.aar:c0754928effe1968c3a9a7b55d1dfc7ceb1e1e7c9f3f09f98afd42431f712492',
+            'androidx.test:core:1.5.0:core-1.5.0.aar:2c06715c0d0843cee2143ab8bb322bb3f34d5247630402fc8c1b6a0eafa15b9f',
+            'androidx.test:monitor:1.6.1:monitor-1.6.1.aar:2985ce8556989baf7c84342e7f687713c037a39a922e614d1a3ddf1ca3777079',
+            'androidx.test:runner:1.5.2:runner-1.5.2.aar:36cd6bc876daa1f183ccd11f9898e094c71f06960fde85a373422959613a44d6',
+            'androidx.tracing:tracing:1.0.0:tracing-1.0.0.aar:07b8b6139665b884a162eccf97891ca50f7f56831233bf25168ae04f7b568612',
+            'androidx.transition:transition:1.2.0:transition-1.2.0.aar:a1e059b3bc0b43a58dec0efecdcaa89c82d2bca552ea5bacf6656c46e853157e',
+            'androidx.transition:transition:1.4.1:transition-1.4.1.aar:36d28d9ec33a8c64313842bce99c95736da5b27a6b3a513639050de82f075726',
+            'androidx.vectordrawable:vectordrawable-animated:1.1.0:vectordrawable-animated-1.1.0.aar:76da2c502371d9c38054df5e2b248d00da87809ed058f3363eae87ce5e2403f8',
+            'androidx.vectordrawable:vectordrawable:1.1.0:vectordrawable-1.1.0.aar:46fd633ac01b49b7fcabc263bf098c5a8b9e9a69774d234edcca04fb02df8e26',
+            'androidx.versionedparcelable:versionedparcelable:1.1.1:versionedparcelable-1.1.1.aar:57e8d93260d18d5b9007c9eed3c64ad159de90c8609ebfc74a347cbd514535a4',
+            'androidx.viewpager2:viewpager2:1.0.0:viewpager2-1.0.0.aar:e95c0031d4cc247cd48196c6287e58d2cee54d9c79b85afea7c90920330275af',
+            'androidx.viewpager:viewpager:1.0.0:viewpager-1.0.0.aar:147af4e14a1984010d8f155e5e19d781f03c1d70dfed02a8e0d18428b8fc8682',
+            'androidx.window:window:1.0.0:window-1.0.0.aar:3212985be4127373ca4d0ea7f8b81a250ae2105e924f7940105d067a0f9ac130',
+            'antlr:antlr:2.7.7:antlr-2.7.7.jar:88fbda4b912596b9f56e8e12e580cc954bacfb51776ecfddd3e18fc1cf56dc4c',
+            'com.android.tools:desugar_jdk_libs:1.2.2:desugar_jdk_libs-1.2.2.jar:563069c5ae127e5b3dff27aedd499271871e2eebca9830b18715c6726a6d1602',
+            'com.android.tools:desugar_jdk_libs_configuration:1.2.2:desugar_jdk_libs_configuration-1.2.2.jar:38a4386075f6e7b03dfee1cdcd7f2dd4de8e6d11d68bd4d9fccf44872bd0f4b0',
+            'com.github.shyiko.klob:klob:0.2.1:klob-0.2.1.jar:2f6174e3049008f263fd832813390df645ac5c7cfa79f170ace58690810476f2',
+            'com.github.tony19:logback-android:2.0.1:logback-android-2.0.1.aar:3101005c17a7324515f74bec485d1566c3caedbc078d9dfa349354fd7859e368',
+            'com.google.android.material:material:1.8.0:material-1.8.0.aar:adbec47686bc0c85cdcb2a9ec12a24f9c2aede17176f0b06e3683479db4792a7',
+            'com.google.code.findbugs:jsr305:2.0.2:jsr305-2.0.2.jar:1e7f53fa5b8b5c807e986ba335665da03f18d660802d8bf061823089d1bee468',
+            'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7',
+            'com.google.dagger:dagger-compiler:2.44.2:dagger-compiler-2.44.2.jar:6a3377f31695b9a53d47012a47e844432f7a6b9159fbf22ec10203de848de770',
+            'com.google.dagger:dagger-lint-aar:2.44.2:dagger-lint-aar-2.44.2.aar:b7c63103e4705f07c989abb90bc2ba3438924b4b9be5e59828172bcb597c79e3',
+            'com.google.dagger:dagger-producers:2.44.2:dagger-producers-2.44.2.jar:01cf6464bb5c551860936ae161f45f153298d1e11c8dd3a81c0d7340ed68c1cc',
+            'com.google.dagger:dagger-spi:2.44.2:dagger-spi-2.44.2.jar:1fe86708acd729fa3322ac5968e5e835bb94a6cabe7991d6713e0cbf321e5e9b',
+            'com.google.dagger:dagger:2.44.2:dagger-2.44.2.jar:b6d35d56b47cbfc3e484f678d0bacb497c6c0ec2cc2a5e180d79d0788d313ab8',
+            'com.google.dagger:hilt-android:2.44.2:hilt-android-2.44.2.aar:736fa123fb6c887c4f78d777ea6bfcab379cce6227f0c34b93eb93d6eacd8660',
+            'com.google.dagger:hilt-compiler:2.44.2:hilt-compiler-2.44.2.jar:76c59e60f045923f978143bd37aaef2274d344dc9bdeecafb290bc66de7c10b2',
+            'com.google.dagger:hilt-core:2.44.2:hilt-core-2.44.2.jar:0df25c96836cc95cb7086cfe402a6145e95357a03b3ba16f8e4d3b237470a3fb',
+            'com.google.devtools.ksp:symbol-processing-api:1.7.0-1.0.6:symbol-processing-api-1.7.0-1.0.6.jar:adc29417be5ca9ff42118105fea4e36d9ef44987abfc41432309371a60198941',
+            'com.google.errorprone:error_prone_annotations:2.15.0:error_prone_annotations-2.15.0.jar:067047714349e7789a5bdbfad9d1c0af9f3a1eb28c55a0ee3f68e682f905c4eb',
+            'com.google.errorprone:error_prone_annotations:2.3.4:error_prone_annotations-2.3.4.jar:baf7d6ea97ce606c53e11b6854ba5f2ce7ef5c24dddf0afa18d1260bd25b002c',
+            'com.google.errorprone:error_prone_annotations:2.7.1:error_prone_annotations-2.7.1.jar:cd5257c08a246cf8628817ae71cb822be192ef91f6881ca4a3fcff4f1de1cff3',
+            'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30',
+            'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e',
+            'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26',
+            'com.google.guava:guava:29.0-jre:guava-29.0-jre.jar:b22c5fb66d61e7b9522531d04b2f915b5158e80aa0b40ee7282c8bfb07b0da25',
+            'com.google.guava:guava:31.0.1-jre:guava-31.0.1-jre.jar:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9',
+            'com.google.guava:listenablefuture:1.0:listenablefuture-1.0.jar:e4ad7607e5c0477c6f890ef26a49cb8d1bb4dffb650bab4502afee64644e3069',
+            'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99',
+            'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b',
+            'com.pinterest.ktlint:ktlint-core:0.43.2:ktlint-core-0.43.2.jar:401515a76b780a32ef9dfeaf69f77316934c4bb90f339488638311789eca7a1a',
+            'com.pinterest.ktlint:ktlint-reporter-baseline:0.43.2:ktlint-reporter-baseline-0.43.2.jar:733ee7e2cadb321d6597b3501c70c7da73117adaa0c6bc084dfc16c455d68806',
+            'com.pinterest.ktlint:ktlint-reporter-checkstyle:0.43.2:ktlint-reporter-checkstyle-0.43.2.jar:becafb4006b9f2e82c99749864a1a8de340ee84ac7271631a68981a44f51e808',
+            'com.pinterest.ktlint:ktlint-reporter-html:0.43.2:ktlint-reporter-html-0.43.2.jar:800392e150d3266e72ca53c6ccca3136d4e26445dd9216c6ac6cfc1ba3afafe5',
+            'com.pinterest.ktlint:ktlint-reporter-json:0.43.2:ktlint-reporter-json-0.43.2.jar:9d4a94190d96d671000a06a50c9d1ce111d0dcf629bef8b4f0221a9e3f3699a0',
+            'com.pinterest.ktlint:ktlint-reporter-plain:0.43.2:ktlint-reporter-plain-0.43.2.jar:1cab63f431ec4e9463df7a767f131ccfa8d76259c01fecc63a4c000063e8ee43',
+            'com.pinterest.ktlint:ktlint-reporter-sarif:0.43.2:ktlint-reporter-sarif-0.43.2.jar:ed0046aaa4a2e4544197bfdccf88d472ef413a55ad05b6dc8aae41338e9d3748',
+            'com.pinterest.ktlint:ktlint-ruleset-experimental:0.43.2:ktlint-ruleset-experimental-0.43.2.jar:d89e0edcdca0ae375c090565e323520ab5d424d82fd6ac6290ea986d360f0b11',
+            'com.pinterest.ktlint:ktlint-ruleset-standard:0.43.2:ktlint-ruleset-standard-0.43.2.jar:6774dc9d42aa7c7fdd4a7f3732b56fdab99ba78ce0c4eb5159036525657d0014',
+            'com.pinterest.ktlint:ktlint-ruleset-test:0.43.2:ktlint-ruleset-test-0.43.2.jar:7270c4d98b2cda268c25397a02b7dea0ab8cb923958cb3853121e0d9366ce797',
+            'com.pinterest:ktlint:0.43.2:ktlint-0.43.2.jar:99ec69ef0628695c24dbbc2cc4b8d7c61a754697d624f5233fc65f43faf2d235',
+            'com.puppycrawl.tools:checkstyle:8.37:checkstyle-8.37.jar:3c8d29393129090b9f46a7f6852a70ff1e9d7bd581343e3d0fb895ad33c524fa',
+            'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291',
+            'com.squareup:javawriter:2.1.1:javawriter-2.1.1.jar:f699823d0081f69cbb676c1845ea222e0ada79bc88a53e5d22d8bd02d328f57e',
+            'com.squareup:kotlinpoet:1.11.0:kotlinpoet-1.11.0.jar:2887ada1ca03dd83baa2758640d87e840d1907564db0ef88d2289c868a980492',
+            'commons-beanutils:commons-beanutils:1.9.4:commons-beanutils-1.9.4.jar:7d938c81789028045c08c065e94be75fc280527620d5bd62b519d5838532368a',
+            'commons-collections:commons-collections:3.2.2:commons-collections-3.2.2.jar:eeeae917917144a68a741d4c0dff66aa5c5c5fd85593ff217bced3fc8ca783b8',
+            'info.picocli:picocli:3.9.6:picocli-3.9.6.jar:9442a6a18d869354a0d922ba37b40032aa1b0a172f414a7a644de39d1972f1f4',
+            'info.picocli:picocli:4.5.2:picocli-4.5.2.jar:b4395e9a67932616efd2245d984bf5fcd453c2c5049558c3ce959ac2af4d3fac',
+            'io.github.detekt.sarif4k:sarif4k:0.0.1:sarif4k-0.0.1.jar:41ec72cf2521783224581c76aaa7e97d4a50f396a66d642500ff4777b395a376',
+            'javax.annotation:javax.annotation-api:1.3.2:javax.annotation-api-1.3.2.jar:e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b',
+            'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
+            'junit:junit:4.13.2:junit-4.13.2.jar:8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3',
+            'net.java.dev.jna:jna:5.6.0:jna-5.6.0.jar:5557e235a8aa2f9766d5dc609d67948f2a8832c2d796cea9ef1d6cbe0b3b7eaf',
+            'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd',
+            'net.sf.saxon:Saxon-HE:10.3:Saxon-HE-10.3.jar:660a89162a577cfd73bc3db3c53cbec7e82d4ab2051247f31927f135aff7c908',
+            'org.antlr:antlr4-runtime:4.8-1:antlr4-runtime-4.8-1.jar:bdcf58107ba1a499b25e3db205086767dd409d3f5ab12c90f2d429f55ec774a6',
+            'org.briarproject:dont-kill-me-lib:0.2.5:dont-kill-me-lib-0.2.5.aar:55cd9d511b7016ab573905d64bc54e222e2633144d36389192b8b34485b31b9d',
+            'org.briarproject:obfs4proxy-android:0.0.14:obfs4proxy-android-0.0.14.jar:ad9b1ee4757b05867a19e993147bbb018bddd1f26ce3da746d5f037d5991a8c8',
+            'org.briarproject:tor-android:0.4.7.13:tor-android-0.4.7.13.jar:7852aab7d2298b80878c7719f34ce665725b494d673ecf2e6f9e697564638cc6',
+            'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a',
+            'org.checkerframework:checker-qual:2.11.1:checker-qual-2.11.1.jar:015224a4b1dc6de6da053273d4da7d39cfea20e63038169fc45ac0d1dc9c5938',
+            'org.checkerframework:checker-qual:3.12.0:checker-qual-3.12.0.jar:ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb',
+            'org.ec4j.core:ec4j-core:0.3.0:ec4j-core-0.3.0.jar:cadef0207077074b11a12be442f89ab6cf93fbc2f848702d9371a9611414d558',
+            'org.hamcrest:hamcrest-core:1.3:hamcrest-core-1.3.jar:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9',
+            'org.hamcrest:hamcrest-integration:1.3:hamcrest-integration-1.3.jar:70f418efbb506c5155da5f9a5a33262ea08a9e4d7fea186aa9015c41a7224ac2',
+            'org.hamcrest:hamcrest-library:1.3:hamcrest-library-1.3.jar:711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c',
+            'org.jacoco:org.jacoco.agent:0.8.7:org.jacoco.agent-0.8.7.jar:9cbcc986e0fbe821a78ff1f8f7d5216f200e5eb124e7f6837d1dc4a77b28b143',
+            'org.jacoco:org.jacoco.ant:0.8.7:org.jacoco.ant-0.8.7.jar:97ca96a382c3f23a44d8eb4c4e6c3742a30cb8005774a76ced0fc4806ce49605',
+            'org.jacoco:org.jacoco.core:0.8.7:org.jacoco.core-0.8.7.jar:ad7739b5fb5969aa1a8aead3d74ed54dc82ed012f1f10f336bd1b96e71c1a13c',
+            'org.jacoco:org.jacoco.report:0.8.7:org.jacoco.report-0.8.7.jar:cc89258623700a6c932592153cb528785876b6da183d5431f97efbba6f020e5b',
+            'org.javassist:javassist:3.26.0-GA:javassist-3.26.0-GA.jar:ca5625874ff0a34f2422173a511b33c225218c146a3c961b18940efff430462d',
+            'org.jetbrains.intellij.deps:trove4j:1.0.20181211:trove4j-1.0.20181211.jar:affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601',
+            'org.jetbrains.intellij.deps:trove4j:1.0.20200330:trove4j-1.0.20200330.jar:c5fd725bffab51846bf3c77db1383c60aaaebfe1b7fe2f00d23fe1b7df0a439d',
+            'org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.7.22:kotlin-annotation-processing-gradle-1.7.22.jar:782a1df09fb59c25599c80b264b20aec836957254ba3abcfc4f7484c2e556707',
+            'org.jetbrains.kotlin:kotlin-compiler-embeddable:1.5.31:kotlin-compiler-embeddable-1.5.31.jar:e39811a9e4c102e779c659eefe90b041c66ce87578c1bfdac07cf504d1551745',
+            'org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.22:kotlin-compiler-embeddable-1.7.22.jar:87e5a8ba0eba2feb087ba94ceb9c28d0096fc1f6f3b55ef45a9d103ed5ef76c7',
+            'org.jetbrains.kotlin:kotlin-daemon-embeddable:1.5.31:kotlin-daemon-embeddable-1.5.31.jar:f61eaf89e5e3848631650b25cdfb66fe8cae0281a054d9d986716000a15ba8d6',
+            'org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.22:kotlin-daemon-embeddable-1.7.22.jar:4ce267ac5e84a9532d7269fcbc732ebab27e0d76ade71aeeedb369f746b281be',
+            'org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.7.22:kotlin-klib-commonizer-embeddable-1.7.22.jar:de8c31a8092fb68ef80f34a3cbdfb1dcd40207b67cff87d40b5c479ec6a68ece',
+            'org.jetbrains.kotlin:kotlin-reflect:1.5.31:kotlin-reflect-1.5.31.jar:6e0f5490e6b9649ddd2670534e4d3a03bd283c3358b8eef5d1304fd5f8a5a4fb',
+            'org.jetbrains.kotlin:kotlin-reflect:1.6.10:kotlin-reflect-1.6.10.jar:3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203',
+            'org.jetbrains.kotlin:kotlin-reflect:1.7.22:kotlin-reflect-1.7.22.jar:4d4471d1cbc203d3f9e51d6123956dddbb96d5747f1aee02463c7b920feb2baf',
+            'org.jetbrains.kotlin:kotlin-script-runtime:1.5.31:kotlin-script-runtime-1.5.31.jar:24e450fee7645ed3590981dddccf397c0d9ebb725815c94c4f555cc3db2f9f96',
+            'org.jetbrains.kotlin:kotlin-script-runtime:1.7.22:kotlin-script-runtime-1.7.22.jar:caaa3dd214e8145e7e32deef571640cb65b55909e2af55fc26b30a1acb33930a',
+            'org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31:kotlin-stdlib-common-1.5.31.jar:dfa2a18e26b028388ee1968d199bf6f166f737ab7049c25a5e2da614404e22ad',
+            'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0:kotlin-stdlib-common-1.7.0.jar:59c6ff64fe9a6604afce03e8aaa75f83586c6030ac71fb0b34ee7cdefed3618f',
+            'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10:kotlin-stdlib-common-1.7.10.jar:19f102efe9629f8eabc63853ad15c533e47c47f91fca09285c5bde86e59f91d4',
+            'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.22:kotlin-stdlib-common-1.7.22.jar:79488cdf284c4b5b3998d302eae9bf0980fa441e3906c6a53d1174f978a3e484',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.31:kotlin-stdlib-jdk7-1.5.31.jar:a25bf47353ce899d843cbddee516d621a73473e7fba97f8d0301e7b4aed7c15f',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.0:kotlin-stdlib-jdk7-1.7.0.jar:07e91be9b2ca20672d2bdb7e181b766e73453a2da13492b5ddaee8fa47aea239',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.22:kotlin-stdlib-jdk7-1.7.22.jar:ade7768d98940a303856529af373f75ffd5e2695b4dc198e9b18396afa53f9e0',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31:kotlin-stdlib-jdk8-1.5.31.jar:b548f7767aacf029d2417e47440742bd6d3ebede19b60386e23554ce5c4c5fdc',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0:kotlin-stdlib-jdk8-1.7.0.jar:cf058e11db1dfc9944680c8c61b95ac689aaaa8a3eb30bced028100f038f030b',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.22:kotlin-stdlib-jdk8-1.7.22.jar:315102ff1cc2e706286b227147b8db23783db911a89298976a90a22e071cd117',
+            'org.jetbrains.kotlin:kotlin-stdlib:1.5.31:kotlin-stdlib-1.5.31.jar:4800ceacb2ec0bb9959a087154b8e35318ead1ea4eba32d4bb1b9734222a7e68',
+            'org.jetbrains.kotlin:kotlin-stdlib:1.7.0:kotlin-stdlib-1.7.0.jar:aa88e9625577957f3249a46cb6e166ee09b369e600f7a11d148d16b0a6d87f05',
+            'org.jetbrains.kotlin:kotlin-stdlib:1.7.10:kotlin-stdlib-1.7.10.jar:e771fe74250a943e8f6346713201ff1d8cb95c3a5d1a91a22b65a9e04f6a8901',
+            'org.jetbrains.kotlin:kotlin-stdlib:1.7.22:kotlin-stdlib-1.7.22.jar:f98505f50a6a1c1dc002d6102e4b419af93d011d5a10696e75a38935a96ea92f',
+            'org.jetbrains.kotlinx:atomicfu:0.18.5:atomicfu-metadata-0.18.5-all.jar:6890b4702234287cb2e81bdfa2a7bf61f83ef07faa741c7015155226b7832653',
+            'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1:kotlinx-coroutines-android-1.6.1.jar:961ebde8138779a299430ca325a86e28c490527a87ba518362fa45c44c7e7e95',
+            'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4:kotlinx-coroutines-android-1.6.4.jar:3fdc0eed5bc4b83ee9622774520a2db25470370eacd1581cac1e37704f095b00',
+            'org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4:kotlinx-coroutines-core-jvm-1.6.4.jar:c24c8bb27bb320c4a93871501a7e5e0c61607638907b197aef675513d4c820be',
+            'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4:kotlinx-coroutines-core-metadata-1.6.4-all.jar:ae24d84fd33c5aaba1564b168142d0f210b0e257e0a0077e32616acc59e67fb7',
+            'org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0:kotlinx-metadata-jvm-0.5.0.jar:ca063a96639b08b9eaa0de4d65e899480740a6efbe28ab9a8681a2ced03055a4',
+            'org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.1.0:kotlinx-serialization-core-jvm-1.1.0.jar:69d18c700cfdf207b3e9bf6f5d58e7de08482d9e34d7c2a0adcb1db8082df943',
+            'org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.1.0:kotlinx-serialization-json-jvm-1.1.0.jar:cea6836d3a3990b7ac59f61a9534a0bf1c8d3932bd206080a3a13622ec7587d1',
+            'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478',
+            'org.ow2.asm:asm-analysis:9.1:asm-analysis-9.1.jar:81a88041b1b8beda5a8a99646098046c48709538270c49def68abff25ac3be34',
+            'org.ow2.asm:asm-commons:9.1:asm-commons-9.1.jar:afcb26dc1fc12c0c4a99ada670908dd82e18dfc488caf5ee92546996b470c00c',
+            'org.ow2.asm:asm-tree:9.1:asm-tree-9.1.jar:fd00afa49e9595d7646205b09cecb4a776a8ff0ba06f2d59b8f7bf9c704b4a73',
+            'org.ow2.asm:asm:9.1:asm-9.1.jar:cda4de455fab48ff0bcb7c48b4639447d4de859a7afc30a094a986f0936beba2',
+            'org.reflections:reflections:0.9.12:reflections-0.9.12.jar:d168f58d32f2ae7ac5a8d5d9092adeee526c604b41125dcb45eea877960a99cf',
+    ]
+}
diff --git a/mailbox-cli/build.gradle b/mailbox-cli/build.gradle
index b734a186..64ec1f22 100644
--- a/mailbox-cli/build.gradle
+++ b/mailbox-cli/build.gradle
@@ -9,8 +9,10 @@ plugins {
     id 'idea'
     id 'org.jetbrains.kotlin.jvm'
     id 'org.jetbrains.kotlin.kapt'
-    id "org.jlleitschuh.gradle.ktlint" version "$ktlint_plugin_version"
+    id 'org.jlleitschuh.gradle.ktlint'
+    id 'witness'
 }
+apply from: 'witness.gradle'
 
 sourceCompatibility = 1.8
 targetCompatibility = 1.8
diff --git a/mailbox-cli/witness.gradle b/mailbox-cli/witness.gradle
new file mode 100644
index 00000000..f32c45a0
--- /dev/null
+++ b/mailbox-cli/witness.gradle
@@ -0,0 +1,95 @@
+dependencyVerification {
+    verify = [
+            'ch.qos.logback:logback-classic:1.2.11:logback-classic-1.2.11.jar:4d8e899621a3006c2f66e19feab002b11e6cfc5cb1854fc41f01532c00deb2aa',
+            'ch.qos.logback:logback-core:1.2.11:logback-core-1.2.11.jar:6ce1e9397be8298a2e99029f55f955c6fa3cef255171c554d0b9c201cffd0159',
+            'com.github.ajalt:clikt:2.2.0:clikt-2.2.0.jar:beb3136d06764ec8ce0810a8fd6c8b7b49d04287d1deef3a07c016e43a458d33',
+            'com.github.shyiko.klob:klob:0.2.1:klob-0.2.1.jar:2f6174e3049008f263fd832813390df645ac5c7cfa79f170ace58690810476f2',
+            'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7',
+            'com.google.dagger:dagger-compiler:2.44.2:dagger-compiler-2.44.2.jar:6a3377f31695b9a53d47012a47e844432f7a6b9159fbf22ec10203de848de770',
+            'com.google.dagger:dagger-producers:2.44.2:dagger-producers-2.44.2.jar:01cf6464bb5c551860936ae161f45f153298d1e11c8dd3a81c0d7340ed68c1cc',
+            'com.google.dagger:dagger-spi:2.44.2:dagger-spi-2.44.2.jar:1fe86708acd729fa3322ac5968e5e835bb94a6cabe7991d6713e0cbf321e5e9b',
+            'com.google.dagger:dagger:2.44.2:dagger-2.44.2.jar:b6d35d56b47cbfc3e484f678d0bacb497c6c0ec2cc2a5e180d79d0788d313ab8',
+            'com.google.dagger:hilt-compiler:2.44.2:hilt-compiler-2.44.2.jar:76c59e60f045923f978143bd37aaef2274d344dc9bdeecafb290bc66de7c10b2',
+            'com.google.devtools.ksp:symbol-processing-api:1.7.0-1.0.6:symbol-processing-api-1.7.0-1.0.6.jar:adc29417be5ca9ff42118105fea4e36d9ef44987abfc41432309371a60198941',
+            'com.google.errorprone:error_prone_annotations:2.7.1:error_prone_annotations-2.7.1.jar:cd5257c08a246cf8628817ae71cb822be192ef91f6881ca4a3fcff4f1de1cff3',
+            'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30',
+            'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e',
+            'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26',
+            'com.google.guava:guava:31.0.1-jre:guava-31.0.1-jre.jar:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9',
+            'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99',
+            'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b',
+            'com.pinterest.ktlint:ktlint-core:0.43.2:ktlint-core-0.43.2.jar:401515a76b780a32ef9dfeaf69f77316934c4bb90f339488638311789eca7a1a',
+            'com.pinterest.ktlint:ktlint-reporter-baseline:0.43.2:ktlint-reporter-baseline-0.43.2.jar:733ee7e2cadb321d6597b3501c70c7da73117adaa0c6bc084dfc16c455d68806',
+            'com.pinterest.ktlint:ktlint-reporter-checkstyle:0.43.2:ktlint-reporter-checkstyle-0.43.2.jar:becafb4006b9f2e82c99749864a1a8de340ee84ac7271631a68981a44f51e808',
+            'com.pinterest.ktlint:ktlint-reporter-html:0.43.2:ktlint-reporter-html-0.43.2.jar:800392e150d3266e72ca53c6ccca3136d4e26445dd9216c6ac6cfc1ba3afafe5',
+            'com.pinterest.ktlint:ktlint-reporter-json:0.43.2:ktlint-reporter-json-0.43.2.jar:9d4a94190d96d671000a06a50c9d1ce111d0dcf629bef8b4f0221a9e3f3699a0',
+            'com.pinterest.ktlint:ktlint-reporter-plain:0.43.2:ktlint-reporter-plain-0.43.2.jar:1cab63f431ec4e9463df7a767f131ccfa8d76259c01fecc63a4c000063e8ee43',
+            'com.pinterest.ktlint:ktlint-reporter-sarif:0.43.2:ktlint-reporter-sarif-0.43.2.jar:ed0046aaa4a2e4544197bfdccf88d472ef413a55ad05b6dc8aae41338e9d3748',
+            'com.pinterest.ktlint:ktlint-ruleset-experimental:0.43.2:ktlint-ruleset-experimental-0.43.2.jar:d89e0edcdca0ae375c090565e323520ab5d424d82fd6ac6290ea986d360f0b11',
+            'com.pinterest.ktlint:ktlint-ruleset-standard:0.43.2:ktlint-ruleset-standard-0.43.2.jar:6774dc9d42aa7c7fdd4a7f3732b56fdab99ba78ce0c4eb5159036525657d0014',
+            'com.pinterest.ktlint:ktlint-ruleset-test:0.43.2:ktlint-ruleset-test-0.43.2.jar:7270c4d98b2cda268c25397a02b7dea0ab8cb923958cb3853121e0d9366ce797',
+            'com.pinterest:ktlint:0.43.2:ktlint-0.43.2.jar:99ec69ef0628695c24dbbc2cc4b8d7c61a754697d624f5233fc65f43faf2d235',
+            'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291',
+            'com.squareup:kotlinpoet:1.11.0:kotlinpoet-1.11.0.jar:2887ada1ca03dd83baa2758640d87e840d1907564db0ef88d2289c868a980492',
+            'info.picocli:picocli:3.9.6:picocli-3.9.6.jar:9442a6a18d869354a0d922ba37b40032aa1b0a172f414a7a644de39d1972f1f4',
+            'io.github.detekt.sarif4k:sarif4k:0.0.1:sarif4k-0.0.1.jar:41ec72cf2521783224581c76aaa7e97d4a50f396a66d642500ff4777b395a376',
+            'io.mockk:mockk-agent-api:1.10.4:mockk-agent-api-1.10.4.jar:8deb59189b48d5870a746f954ca681424040544812c7ae295f3bef87a9499cfe',
+            'io.mockk:mockk-agent-common:1.10.4:mockk-agent-common-1.10.4.jar:13b81a3297a3c15ed9f62b838aaede20347018f07c30cad2ca74a4dd99786f8f',
+            'io.mockk:mockk-agent-jvm:1.10.4:mockk-agent-jvm-1.10.4.jar:51eb22de58c44f140384e61878e8c0da0fcf80c60a139d28ef7b027ea4bc2042',
+            'io.mockk:mockk-common:1.10.4:mockk-common-1.10.4.jar:aaf3cc99442100767dc72776f250113f992facfb43bf6ba9a5282d1c8aaecd00',
+            'io.mockk:mockk-dsl-jvm:1.10.4:mockk-dsl-jvm-1.10.4.jar:2432e2d0dfd31c3cb33e12137b8c712358cb0c4cddbd27b5bd6c55db2068e1a1',
+            'io.mockk:mockk-dsl:1.10.4:mockk-dsl-1.10.4.jar:b97d750bebfd7da92a020f5417deface710c58802a78a8fff68661f77eaa3037',
+            'io.mockk:mockk:1.10.4:mockk-1.10.4.jar:e26d4eb8c9c0c5ac00acb9bfeedfe0feb10055bf7e80db57539936413ea38f7c',
+            'javax.annotation:javax.annotation-api:1.3.2:javax.annotation-api-1.3.2.jar:e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b',
+            'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
+            'net.bytebuddy:byte-buddy-agent:1.10.14:byte-buddy-agent-1.10.14.jar:30272167eceb1cb68fa84730a12d1abfd1daed6ae0c19fdefee47a9a9a0cfd33',
+            'net.bytebuddy:byte-buddy:1.10.14:byte-buddy-1.10.14.jar:0e6b935bfcb3e451d525956acad53ec86ff916d714abdbd32b3d2039771896f8',
+            'net.java.dev.jna:jna:5.6.0:jna-5.6.0.jar:5557e235a8aa2f9766d5dc609d67948f2a8832c2d796cea9ef1d6cbe0b3b7eaf',
+            'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd',
+            'org.apiguardian:apiguardian-api:1.1.0:apiguardian-api-1.1.0.jar:a9aae9ff8ae3e17a2a18f79175e82b16267c246fbbd3ca9dfbbb290b08dcfdd4',
+            'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a',
+            'org.checkerframework:checker-qual:3.12.0:checker-qual-3.12.0.jar:ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb',
+            'org.ec4j.core:ec4j-core:0.3.0:ec4j-core-0.3.0.jar:cadef0207077074b11a12be442f89ab6cf93fbc2f848702d9371a9611414d558',
+            'org.jetbrains.intellij.deps:trove4j:1.0.20181211:trove4j-1.0.20181211.jar:affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601',
+            'org.jetbrains.intellij.deps:trove4j:1.0.20200330:trove4j-1.0.20200330.jar:c5fd725bffab51846bf3c77db1383c60aaaebfe1b7fe2f00d23fe1b7df0a439d',
+            'org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.7.22:kotlin-annotation-processing-gradle-1.7.22.jar:782a1df09fb59c25599c80b264b20aec836957254ba3abcfc4f7484c2e556707',
+            'org.jetbrains.kotlin:kotlin-compiler-embeddable:1.5.31:kotlin-compiler-embeddable-1.5.31.jar:e39811a9e4c102e779c659eefe90b041c66ce87578c1bfdac07cf504d1551745',
+            'org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.22:kotlin-compiler-embeddable-1.7.22.jar:87e5a8ba0eba2feb087ba94ceb9c28d0096fc1f6f3b55ef45a9d103ed5ef76c7',
+            'org.jetbrains.kotlin:kotlin-daemon-embeddable:1.5.31:kotlin-daemon-embeddable-1.5.31.jar:f61eaf89e5e3848631650b25cdfb66fe8cae0281a054d9d986716000a15ba8d6',
+            'org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.22:kotlin-daemon-embeddable-1.7.22.jar:4ce267ac5e84a9532d7269fcbc732ebab27e0d76ade71aeeedb369f746b281be',
+            'org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.7.22:kotlin-klib-commonizer-embeddable-1.7.22.jar:de8c31a8092fb68ef80f34a3cbdfb1dcd40207b67cff87d40b5c479ec6a68ece',
+            'org.jetbrains.kotlin:kotlin-reflect:1.5.31:kotlin-reflect-1.5.31.jar:6e0f5490e6b9649ddd2670534e4d3a03bd283c3358b8eef5d1304fd5f8a5a4fb',
+            'org.jetbrains.kotlin:kotlin-reflect:1.6.10:kotlin-reflect-1.6.10.jar:3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203',
+            'org.jetbrains.kotlin:kotlin-reflect:1.7.22:kotlin-reflect-1.7.22.jar:4d4471d1cbc203d3f9e51d6123956dddbb96d5747f1aee02463c7b920feb2baf',
+            'org.jetbrains.kotlin:kotlin-script-runtime:1.5.31:kotlin-script-runtime-1.5.31.jar:24e450fee7645ed3590981dddccf397c0d9ebb725815c94c4f555cc3db2f9f96',
+            'org.jetbrains.kotlin:kotlin-script-runtime:1.7.22:kotlin-script-runtime-1.7.22.jar:caaa3dd214e8145e7e32deef571640cb65b55909e2af55fc26b30a1acb33930a',
+            'org.jetbrains.kotlin:kotlin-scripting-common:1.7.22:kotlin-scripting-common-1.7.22.jar:98596c09f94c024685a50db5bc3d0d47dee104da9987d41e4f9ca1c72fa2dfca',
+            'org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.7.22:kotlin-scripting-compiler-embeddable-1.7.22.jar:0e28cfe570bebd8c3962bdefed1011905673ab8095312703fa22805efe3c5913',
+            'org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.7.22:kotlin-scripting-compiler-impl-embeddable-1.7.22.jar:c8667734536a5661230bd7732809385827e087a75f8088958d384042581c3633',
+            'org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.22:kotlin-scripting-jvm-1.7.22.jar:f5410993723ff3437638b4acfee9cf5da373091459024fa8a54e1d9ad101c754',
+            'org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31:kotlin-stdlib-common-1.5.31.jar:dfa2a18e26b028388ee1968d199bf6f166f737ab7049c25a5e2da614404e22ad',
+            'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0:kotlin-stdlib-common-1.7.0.jar:59c6ff64fe9a6604afce03e8aaa75f83586c6030ac71fb0b34ee7cdefed3618f',
+            'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.22:kotlin-stdlib-common-1.7.22.jar:79488cdf284c4b5b3998d302eae9bf0980fa441e3906c6a53d1174f978a3e484',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.31:kotlin-stdlib-jdk7-1.5.31.jar:a25bf47353ce899d843cbddee516d621a73473e7fba97f8d0301e7b4aed7c15f',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.0:kotlin-stdlib-jdk7-1.7.0.jar:07e91be9b2ca20672d2bdb7e181b766e73453a2da13492b5ddaee8fa47aea239',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.22:kotlin-stdlib-jdk7-1.7.22.jar:ade7768d98940a303856529af373f75ffd5e2695b4dc198e9b18396afa53f9e0',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31:kotlin-stdlib-jdk8-1.5.31.jar:b548f7767aacf029d2417e47440742bd6d3ebede19b60386e23554ce5c4c5fdc',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0:kotlin-stdlib-jdk8-1.7.0.jar:cf058e11db1dfc9944680c8c61b95ac689aaaa8a3eb30bced028100f038f030b',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.22:kotlin-stdlib-jdk8-1.7.22.jar:315102ff1cc2e706286b227147b8db23783db911a89298976a90a22e071cd117',
+            'org.jetbrains.kotlin:kotlin-stdlib:1.5.31:kotlin-stdlib-1.5.31.jar:4800ceacb2ec0bb9959a087154b8e35318ead1ea4eba32d4bb1b9734222a7e68',
+            'org.jetbrains.kotlin:kotlin-stdlib:1.7.0:kotlin-stdlib-1.7.0.jar:aa88e9625577957f3249a46cb6e166ee09b369e600f7a11d148d16b0a6d87f05',
+            'org.jetbrains.kotlin:kotlin-stdlib:1.7.22:kotlin-stdlib-1.7.22.jar:f98505f50a6a1c1dc002d6102e4b419af93d011d5a10696e75a38935a96ea92f',
+            'org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0:kotlinx-metadata-jvm-0.5.0.jar:ca063a96639b08b9eaa0de4d65e899480740a6efbe28ab9a8681a2ced03055a4',
+            'org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.1.0:kotlinx-serialization-core-jvm-1.1.0.jar:69d18c700cfdf207b3e9bf6f5d58e7de08482d9e34d7c2a0adcb1db8082df943',
+            'org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.1.0:kotlinx-serialization-json-jvm-1.1.0.jar:cea6836d3a3990b7ac59f61a9534a0bf1c8d3932bd206080a3a13622ec7587d1',
+            'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478',
+            'org.junit.jupiter:junit-jupiter-api:5.7.2:junit-jupiter-api-5.7.2.jar:bc98326ecbc501e1860a2bc9780aebe5777bd29cf00059f88c2a56f48fbc9ce6',
+            'org.junit.jupiter:junit-jupiter-engine:5.7.2:junit-jupiter-engine-5.7.2.jar:8a35afb26cd5e8393cb763ff13d26a52a507a35c5b2d7650d42024a7226b80db',
+            'org.junit.jupiter:junit-jupiter-params:5.7.2:junit-jupiter-params-5.7.2.jar:17569f7da0ce2ebeab875aa8aa79c0f2c42433ea208291e73fc1a3c9d6143115',
+            'org.junit.platform:junit-platform-commons:1.7.2:junit-platform-commons-1.7.2.jar:738d0df021a0611fff5d277634e890cc91858fa72227cf0bcf36232a7caf014c',
+            'org.junit.platform:junit-platform-engine:1.7.2:junit-platform-engine-1.7.2.jar:abebbfa420fa8ffdc51083c06807e8692dd9bf8c52455dcdb72474ab90425573',
+            'org.objenesis:objenesis:3.1:objenesis-3.1.jar:cdb3d038c188de6f46ffd5cd930be2d5e5dba59c53b26437995d534e3db2fb80',
+            'org.opentest4j:opentest4j:1.2.0:opentest4j-1.2.0.jar:58812de60898d976fb81ef3b62da05c6604c18fd4a249f5044282479fc286af2',
+            'org.slf4j:slf4j-api:1.7.36:slf4j-api-1.7.36.jar:d3ef575e3e4979678dc01bf1dcce51021493b4d11fb7f1be8ad982877c16a1c0',
+    ]
+}
diff --git a/mailbox-core/build.gradle b/mailbox-core/build.gradle
index b8f62310..ebd57f8c 100644
--- a/mailbox-core/build.gradle
+++ b/mailbox-core/build.gradle
@@ -3,9 +3,11 @@ plugins {
     id 'idea'
     id 'org.jetbrains.kotlin.jvm'
     id 'org.jetbrains.kotlin.kapt'
-    id "org.jlleitschuh.gradle.ktlint" version "$ktlint_plugin_version"
+    id 'org.jlleitschuh.gradle.ktlint'
     id 'checkstyle'
+    id 'witness'
 }
+apply from: 'witness.gradle'
 
 checkstyle {
     configFile = new File('../config/checkstyle/checkstyle.xml')
diff --git a/mailbox-core/witness.gradle b/mailbox-core/witness.gradle
new file mode 100644
index 00000000..8f486a39
--- /dev/null
+++ b/mailbox-core/witness.gradle
@@ -0,0 +1,185 @@
+dependencyVerification {
+    verify = [
+            'antlr:antlr:2.7.7:antlr-2.7.7.jar:88fbda4b912596b9f56e8e12e580cc954bacfb51776ecfddd3e18fc1cf56dc4c',
+            'ch.qos.logback:logback-classic:1.2.11:logback-classic-1.2.11.jar:4d8e899621a3006c2f66e19feab002b11e6cfc5cb1854fc41f01532c00deb2aa',
+            'ch.qos.logback:logback-core:1.2.11:logback-core-1.2.11.jar:6ce1e9397be8298a2e99029f55f955c6fa3cef255171c554d0b9c201cffd0159',
+            'com.fasterxml.jackson.core:jackson-annotations:2.14.1:jackson-annotations-2.14.1.jar:d255b4b863ff8ec714a8f96fa55c34621d43dbb82b82d3f57476496a4c09e1e7',
+            'com.fasterxml.jackson.core:jackson-core:2.14.1:jackson-core-2.14.1.jar:0114187e296b34c931c1bf9e5a84152b62bfab7d182f5623f3982dc2da35e526',
+            'com.fasterxml.jackson.core:jackson-databind:2.14.1:jackson-databind-2.14.1.jar:423a0c806de4b3fa5eb4a28698305e3a3777c731e1bcfa1b2f3a3760c7b6e773',
+            'com.fasterxml.jackson.module:jackson-module-kotlin:2.14.1:jackson-module-kotlin-2.14.1.jar:8d83e6fe0ee319266dde031126da7c67024151b7c6a56410c3abb065fcd1ee7c',
+            'com.github.shyiko.klob:klob:0.2.1:klob-0.2.1.jar:2f6174e3049008f263fd832813390df645ac5c7cfa79f170ace58690810476f2',
+            'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7',
+            'com.google.dagger:dagger-compiler:2.44.2:dagger-compiler-2.44.2.jar:6a3377f31695b9a53d47012a47e844432f7a6b9159fbf22ec10203de848de770',
+            'com.google.dagger:dagger-producers:2.44.2:dagger-producers-2.44.2.jar:01cf6464bb5c551860936ae161f45f153298d1e11c8dd3a81c0d7340ed68c1cc',
+            'com.google.dagger:dagger-spi:2.44.2:dagger-spi-2.44.2.jar:1fe86708acd729fa3322ac5968e5e835bb94a6cabe7991d6713e0cbf321e5e9b',
+            'com.google.dagger:dagger:2.44.2:dagger-2.44.2.jar:b6d35d56b47cbfc3e484f678d0bacb497c6c0ec2cc2a5e180d79d0788d313ab8',
+            'com.google.dagger:hilt-core:2.44.2:hilt-core-2.44.2.jar:0df25c96836cc95cb7086cfe402a6145e95357a03b3ba16f8e4d3b237470a3fb',
+            'com.google.devtools.ksp:symbol-processing-api:1.7.0-1.0.6:symbol-processing-api-1.7.0-1.0.6.jar:adc29417be5ca9ff42118105fea4e36d9ef44987abfc41432309371a60198941',
+            'com.google.errorprone:error_prone_annotations:2.3.4:error_prone_annotations-2.3.4.jar:baf7d6ea97ce606c53e11b6854ba5f2ce7ef5c24dddf0afa18d1260bd25b002c',
+            'com.google.errorprone:error_prone_annotations:2.7.1:error_prone_annotations-2.7.1.jar:cd5257c08a246cf8628817ae71cb822be192ef91f6881ca4a3fcff4f1de1cff3',
+            'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30',
+            'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e',
+            'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26',
+            'com.google.guava:guava:29.0-jre:guava-29.0-jre.jar:b22c5fb66d61e7b9522531d04b2f915b5158e80aa0b40ee7282c8bfb07b0da25',
+            'com.google.guava:guava:31.0.1-jre:guava-31.0.1-jre.jar:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9',
+            'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99',
+            'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b',
+            'com.google.zxing:core:3.4.1:core-3.4.1.jar:acfa30338c26267b6cab665509c2251bb96e8350bfcad89d59b949ba77011f8d',
+            'com.h2database:h2:1.4.192:h2-1.4.192.jar:225b22e9857235c46c93861410b60b8c81c10dc8985f4faf188985ba5445126c',
+            'com.pinterest.ktlint:ktlint-core:0.43.2:ktlint-core-0.43.2.jar:401515a76b780a32ef9dfeaf69f77316934c4bb90f339488638311789eca7a1a',
+            'com.pinterest.ktlint:ktlint-reporter-baseline:0.43.2:ktlint-reporter-baseline-0.43.2.jar:733ee7e2cadb321d6597b3501c70c7da73117adaa0c6bc084dfc16c455d68806',
+            'com.pinterest.ktlint:ktlint-reporter-checkstyle:0.43.2:ktlint-reporter-checkstyle-0.43.2.jar:becafb4006b9f2e82c99749864a1a8de340ee84ac7271631a68981a44f51e808',
+            'com.pinterest.ktlint:ktlint-reporter-html:0.43.2:ktlint-reporter-html-0.43.2.jar:800392e150d3266e72ca53c6ccca3136d4e26445dd9216c6ac6cfc1ba3afafe5',
+            'com.pinterest.ktlint:ktlint-reporter-json:0.43.2:ktlint-reporter-json-0.43.2.jar:9d4a94190d96d671000a06a50c9d1ce111d0dcf629bef8b4f0221a9e3f3699a0',
+            'com.pinterest.ktlint:ktlint-reporter-plain:0.43.2:ktlint-reporter-plain-0.43.2.jar:1cab63f431ec4e9463df7a767f131ccfa8d76259c01fecc63a4c000063e8ee43',
+            'com.pinterest.ktlint:ktlint-reporter-sarif:0.43.2:ktlint-reporter-sarif-0.43.2.jar:ed0046aaa4a2e4544197bfdccf88d472ef413a55ad05b6dc8aae41338e9d3748',
+            'com.pinterest.ktlint:ktlint-ruleset-experimental:0.43.2:ktlint-ruleset-experimental-0.43.2.jar:d89e0edcdca0ae375c090565e323520ab5d424d82fd6ac6290ea986d360f0b11',
+            'com.pinterest.ktlint:ktlint-ruleset-standard:0.43.2:ktlint-ruleset-standard-0.43.2.jar:6774dc9d42aa7c7fdd4a7f3732b56fdab99ba78ce0c4eb5159036525657d0014',
+            'com.pinterest.ktlint:ktlint-ruleset-test:0.43.2:ktlint-ruleset-test-0.43.2.jar:7270c4d98b2cda268c25397a02b7dea0ab8cb923958cb3853121e0d9366ce797',
+            'com.pinterest:ktlint:0.43.2:ktlint-0.43.2.jar:99ec69ef0628695c24dbbc2cc4b8d7c61a754697d624f5233fc65f43faf2d235',
+            'com.puppycrawl.tools:checkstyle:8.37:checkstyle-8.37.jar:3c8d29393129090b9f46a7f6852a70ff1e9d7bd581343e3d0fb895ad33c524fa',
+            'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291',
+            'com.squareup:kotlinpoet:1.11.0:kotlinpoet-1.11.0.jar:2887ada1ca03dd83baa2758640d87e840d1907564db0ef88d2289c868a980492',
+            'com.typesafe:config:1.4.2:config-1.4.2.jar:0076c249b4387d8369146528fd5dacb3efba098dc02ecf9ac81debdfc2e12fd5',
+            'commons-beanutils:commons-beanutils:1.9.4:commons-beanutils-1.9.4.jar:7d938c81789028045c08c065e94be75fc280527620d5bd62b519d5838532368a',
+            'commons-collections:commons-collections:3.2.2:commons-collections-3.2.2.jar:eeeae917917144a68a741d4c0dff66aa5c5c5fd85593ff217bced3fc8ca783b8',
+            'info.picocli:picocli:3.9.6:picocli-3.9.6.jar:9442a6a18d869354a0d922ba37b40032aa1b0a172f414a7a644de39d1972f1f4',
+            'info.picocli:picocli:4.5.2:picocli-4.5.2.jar:b4395e9a67932616efd2245d984bf5fcd453c2c5049558c3ce959ac2af4d3fac',
+            'io.github.detekt.sarif4k:sarif4k:0.0.1:sarif4k-0.0.1.jar:41ec72cf2521783224581c76aaa7e97d4a50f396a66d642500ff4777b395a376',
+            'io.ktor:ktor-client-cio-jvm:2.2.3:ktor-client-cio-jvm-2.2.3.jar:8c1f4fc89e81f321f538a9c7b1eda64a5166ee59e382656d2f516f41608eb9f8',
+            'io.ktor:ktor-client-cio:2.2.3:ktor-client-cio-metadata-2.2.3-all.jar:c75add3d852cb75fbecb28b1b664cb4ffd2868e7ea4106d4ec251274add95aaf',
+            'io.ktor:ktor-client-content-negotiation-jvm:2.2.3:ktor-client-content-negotiation-jvm-2.2.3.jar:ecf5e05bc4eebc7475c8f39cddfcce552b0b943497bd45370f38ca4a48c9db7b',
+            'io.ktor:ktor-client-content-negotiation:2.2.3:ktor-client-content-negotiation-metadata-2.2.3-all.jar:8f5da8e6855084397f606d42631ceb3b31012bfc8684a59713115a28c6579dad',
+            'io.ktor:ktor-client-core-jvm:2.2.3:ktor-client-core-jvm-2.2.3.jar:b5421c126e911ca9d87fcbffbd14e125950e025cd5524502b565da68a1c19210',
+            'io.ktor:ktor-client-core:2.2.3:ktor-client-core-metadata-2.2.3-all.jar:95e9b1981175a5bb5913f8ce417882ed704bb973bfb554326aab71d7334adecb',
+            'io.ktor:ktor-client-logging-jvm:2.2.3:ktor-client-logging-jvm-2.2.3.jar:507df70b7ea839f8230aa91e1a3eeb468901f371d25cb7120bb7a9167d4bc7d6',
+            'io.ktor:ktor-client-logging:2.2.3:ktor-client-logging-metadata-2.2.3-all.jar:22505bdf825046bd76fe21149ef94117061dcf28f076ae8dd665c83cfaa7f384',
+            'io.ktor:ktor-events-jvm:2.2.3:ktor-events-jvm-2.2.3.jar:379804998d036e906ca380258ad0c40366ec3aff836c6ffe7865712d576aacb2',
+            'io.ktor:ktor-events:2.2.3:ktor-events-metadata-2.2.3-all.jar:b54d2dc051d05f0b165a8e717a0d80be4b8459e1782024e87ece7c3a4a6b2704',
+            'io.ktor:ktor-http-cio-jvm:2.2.3:ktor-http-cio-jvm-2.2.3.jar:32805216d439bd084db4c176f606d8eb6d19a489d0cf13dd8ef70bdf46751985',
+            'io.ktor:ktor-http-cio:2.2.3:ktor-http-cio-metadata-2.2.3-all.jar:992e47798b13df2eef7eb93de3c73f5f3d2e0bde20e00ae279522d5ee0acd856',
+            'io.ktor:ktor-http-jvm:2.2.3:ktor-http-jvm-2.2.3.jar:5f2af591d586a993633d2fdd5b2cf5221bf41e00fcd3f35051e06ff6b0f1fb43',
+            'io.ktor:ktor-http:2.2.3:ktor-http-metadata-2.2.3-all.jar:71d59a0fb5c5f9cd09a00b58f6121ddb62a6ded01d13d9c367b82dc72f111846',
+            'io.ktor:ktor-io-jvm:2.2.3:ktor-io-jvm-2.2.3.jar:d04a8f86c6893e680fb0ec4df83ecc62d56f7d65e20489c475fc838a04662ebc',
+            'io.ktor:ktor-io:2.2.3:ktor-io-metadata-2.2.3-all.jar:142b360ff20a598258a1cea29958485d5d55b885af3cb9811eeee0cecec9ba2d',
+            'io.ktor:ktor-network-jvm:2.2.3:ktor-network-jvm-2.2.3.jar:7c49d818864a3a724dc4b9da7bc5f9bd4b9ea918e82d155e19988860f8283858',
+            'io.ktor:ktor-network-tls-jvm:2.2.3:ktor-network-tls-jvm-2.2.3.jar:4c5aff3130d641a91924b7c8e4d17d3a5dc14d743a5901df6ca43a6d5a41f1fd',
+            'io.ktor:ktor-network-tls:2.2.3:ktor-network-tls-metadata-2.2.3-all.jar:5515190c2b0a3130350685d948c683389f341963e6119e14d987dc98ae6454a7',
+            'io.ktor:ktor-network:2.2.3:ktor-network-metadata-2.2.3-all.jar:9a228bbfd188cd64cdc78e3a54b950bce920fd90f248fdfb77a9f1fe8c517afd',
+            'io.ktor:ktor-serialization-jackson-jvm:2.2.3:ktor-serialization-jackson-jvm-2.2.3.jar:5aea934969558b67f9984a5005d34b188be2c6a113f651a4a745098a3011da47',
+            'io.ktor:ktor-serialization-jackson:2.2.3:ktor-serialization-jackson-metadata-2.2.3-all.jar:77299b0672a00909a463522c9315005eb130db795b02d622035e54f32dd50643',
+            'io.ktor:ktor-serialization-jvm:2.2.3:ktor-serialization-jvm-2.2.3.jar:993dd046c40568681d487f1a0778519e0332e06685299d1d2c0c087e47604497',
+            'io.ktor:ktor-serialization:2.2.3:ktor-serialization-metadata-2.2.3-all.jar:499ff72e537506413a972a34c711a52bd329e8174460c28ca51a42a5f63a45b0',
+            'io.ktor:ktor-server-auth-jvm:2.2.3:ktor-server-auth-jvm-2.2.3.jar:c2aec991edf3a640b61fe54b479c6dc1b14b6170f458a93da170270e5b3e5a3e',
+            'io.ktor:ktor-server-auth:2.2.3:ktor-server-auth-metadata-2.2.3-all.jar:f78ff8a130cb7543ccba61565cfe9958162bd458061aa95e35f80a26c18339ef',
+            'io.ktor:ktor-server-call-logging-jvm:2.2.3:ktor-server-call-logging-jvm-2.2.3.jar:0741bc50d83f2851c1f0811dbce4ca3398fdca20e72f9db1a9e67521143d2fc6',
+            'io.ktor:ktor-server-call-logging:2.2.3:ktor-server-call-logging-metadata-2.2.3-all.jar:17023a74ac4efe371057767f537c2a675dc14be62fa59b195bd994d8976cfca5',
+            'io.ktor:ktor-server-content-negotiation-jvm:2.2.3:ktor-server-content-negotiation-jvm-2.2.3.jar:fe3c1340028c2d53474aac8f09c84bac2533580eb47951b4656f8a800473fe20',
+            'io.ktor:ktor-server-content-negotiation:2.2.3:ktor-server-content-negotiation-metadata-2.2.3-all.jar:774d953aab28be347f8060cd35ee1833191a85558f43607a08df72a907be3b1c',
+            'io.ktor:ktor-server-core-jvm:2.2.3:ktor-server-core-jvm-2.2.3.jar:9268ca267f46848456437d508cee1dd499ecf9ee389f3bdccdeecb02a9225e88',
+            'io.ktor:ktor-server-core:2.2.3:ktor-server-core-metadata-2.2.3-all.jar:9615e051b305fcd5fe528b0808e53b6dcd58e305e3fa69a3f8631cb17f62ec5c',
+            'io.ktor:ktor-server-host-common-jvm:2.2.3:ktor-server-host-common-jvm-2.2.3.jar:6340fa2787de734bd659453394dddacd432fa61c4b3a5fe1435ac13699c77eb4',
+            'io.ktor:ktor-server-netty-jvm:2.2.3:ktor-server-netty-jvm-2.2.3.jar:58e6f0526fa0db7bfe28e368aa2d2aaafaca0011169007de7d88622484432985',
+            'io.ktor:ktor-server-netty:2.2.3:ktor-server-netty-metadata-2.2.3-all.jar:015cd3a80868b4b8792b19a8cd7f928f1e811ae17b6768be8e97a702739c8b30',
+            'io.ktor:ktor-server-sessions-jvm:2.2.3:ktor-server-sessions-jvm-2.2.3.jar:9e4ac64b0be3a9fd4bcc322ff233b6e9933460bac2b70adcfc683c14d1c56d0a',
+            'io.ktor:ktor-server-sessions:2.2.3:ktor-server-sessions-metadata-2.2.3-all.jar:2e26ab847da43c851353dd83876fe59455f407a1d63e5afa58513e8c7be98f91',
+            'io.ktor:ktor-utils-jvm:2.2.3:ktor-utils-jvm-2.2.3.jar:19cff4686cba391205fa3df5f6010211888c3e62999fa1acc0efc4ac1218d071',
+            'io.ktor:ktor-utils:2.2.3:ktor-utils-metadata-2.2.3-all.jar:91b271254ad77f0c096750fdbecd85a7c57d0c1ac9ce62c8f1a40d55c0bac3ec',
+            'io.ktor:ktor-websocket-serialization-jvm:2.2.3:ktor-websocket-serialization-jvm-2.2.3.jar:5f3544086b1b5d0d72985868614bc3ed616d9411db039c4d13ad61104ff66a88',
+            'io.ktor:ktor-websocket-serialization:2.2.3:ktor-websocket-serialization-metadata-2.2.3-all.jar:edde7163e81132816b12694141bdf10c40b693f43fc05ee1444ae14d2f65be7a',
+            'io.ktor:ktor-websockets-jvm:2.2.3:ktor-websockets-jvm-2.2.3.jar:355bef98a44cb588ca983d5552a8c76de29e4e75123e771087b4f279b5735aba',
+            'io.ktor:ktor-websockets:2.2.3:ktor-websockets-metadata-2.2.3-all.jar:bc0b3a5f6dd97c1ba3abb3a51a05d60bd7acd9230d23e1876242b65d041e1ba1',
+            'io.mockk:mockk-agent-api:1.10.4:mockk-agent-api-1.10.4.jar:8deb59189b48d5870a746f954ca681424040544812c7ae295f3bef87a9499cfe',
+            'io.mockk:mockk-agent-common:1.10.4:mockk-agent-common-1.10.4.jar:13b81a3297a3c15ed9f62b838aaede20347018f07c30cad2ca74a4dd99786f8f',
+            'io.mockk:mockk-agent-jvm:1.10.4:mockk-agent-jvm-1.10.4.jar:51eb22de58c44f140384e61878e8c0da0fcf80c60a139d28ef7b027ea4bc2042',
+            'io.mockk:mockk-common:1.10.4:mockk-common-1.10.4.jar:aaf3cc99442100767dc72776f250113f992facfb43bf6ba9a5282d1c8aaecd00',
+            'io.mockk:mockk-dsl-jvm:1.10.4:mockk-dsl-jvm-1.10.4.jar:2432e2d0dfd31c3cb33e12137b8c712358cb0c4cddbd27b5bd6c55db2068e1a1',
+            'io.mockk:mockk-dsl:1.10.4:mockk-dsl-1.10.4.jar:b97d750bebfd7da92a020f5417deface710c58802a78a8fff68661f77eaa3037',
+            'io.mockk:mockk:1.10.4:mockk-1.10.4.jar:e26d4eb8c9c0c5ac00acb9bfeedfe0feb10055bf7e80db57539936413ea38f7c',
+            'io.netty:netty-buffer:4.1.86.Final:netty-buffer-4.1.86.Final.jar:e42e15f47c865266b1faa6e038ebfd7ddadcf9f4ae9e6617edd4881dbd4abe88',
+            'io.netty:netty-codec-http2:4.1.86.Final:netty-codec-http2-4.1.86.Final.jar:e8e8e28e6ab6bb989aed904778922045f388cfb420bc1eb37abf4df8801db167',
+            'io.netty:netty-codec-http:4.1.86.Final:netty-codec-http-4.1.86.Final.jar:3f6ceb3112cfcf7b70545eb5111220ce57db54d593f23f64c38333bb22c40b84',
+            'io.netty:netty-codec:4.1.86.Final:netty-codec-4.1.86.Final.jar:0456840b5c851dad6cab881cd1a9ad5d916db65d81048145df1d9a6d03325bea',
+            'io.netty:netty-common:4.1.86.Final:netty-common-4.1.86.Final.jar:a35a3f16e7cd45c5d8529aa3e7702d4ef3b36213ea332db59744ea348fc2ae99',
+            'io.netty:netty-handler:4.1.86.Final:netty-handler-4.1.86.Final.jar:e69b42292929b278dc522e25177ddf7c54025484b55879f8227349adfbe1c04d',
+            'io.netty:netty-resolver:4.1.86.Final:netty-resolver-4.1.86.Final.jar:7628a1309d7f2443dc41d8923a7f269e2981b9616f80a999eb7264ae6bcbfdba',
+            'io.netty:netty-transport-classes-epoll:4.1.86.Final:netty-transport-classes-epoll-4.1.86.Final.jar:3cc7eb87d85d6b4bf3d596a172a92df09f8d746c2b283c85543c95795b51edda',
+            'io.netty:netty-transport-classes-kqueue:4.1.86.Final:netty-transport-classes-kqueue-4.1.86.Final.jar:8059837d5304e5d0cab6afa010d4c319dfe8444ca936df28031d2ed636b2ebab',
+            'io.netty:netty-transport-native-epoll:4.1.86.Final:netty-transport-native-epoll-4.1.86.Final.jar:bbbd9d367cb7371a34b39f75f4422d0a09667c72007dfb861e6cdd4b5b4a35cf',
+            'io.netty:netty-transport-native-kqueue:4.1.86.Final:netty-transport-native-kqueue-4.1.86.Final.jar:28ca127aa734d71f472483253e4de77e215bc6eaf12480c8268c8ff7d6bcaba5',
+            'io.netty:netty-transport-native-unix-common:4.1.86.Final:netty-transport-native-unix-common-4.1.86.Final.jar:ec26d03a06565791d57e997f793677ee4d3fc47b290b7951898c2ecd0232f115',
+            'io.netty:netty-transport:4.1.86.Final:netty-transport-4.1.86.Final.jar:f6726dcd54e4922b46b3b4f4467b443a70a30eb08a62620c8fe502d8cb802c9f',
+            'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
+            'net.bytebuddy:byte-buddy-agent:1.10.14:byte-buddy-agent-1.10.14.jar:30272167eceb1cb68fa84730a12d1abfd1daed6ae0c19fdefee47a9a9a0cfd33',
+            'net.bytebuddy:byte-buddy:1.10.14:byte-buddy-1.10.14.jar:0e6b935bfcb3e451d525956acad53ec86ff916d714abdbd32b3d2039771896f8',
+            'net.java.dev.jna:jna:5.6.0:jna-5.6.0.jar:5557e235a8aa2f9766d5dc609d67948f2a8832c2d796cea9ef1d6cbe0b3b7eaf',
+            'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd',
+            'net.sf.saxon:Saxon-HE:10.3:Saxon-HE-10.3.jar:660a89162a577cfd73bc3db3c53cbec7e82d4ab2051247f31927f135aff7c908',
+            'org.antlr:antlr4-runtime:4.8-1:antlr4-runtime-4.8-1.jar:bdcf58107ba1a499b25e3db205086767dd409d3f5ab12c90f2d429f55ec774a6',
+            'org.apiguardian:apiguardian-api:1.1.0:apiguardian-api-1.1.0.jar:a9aae9ff8ae3e17a2a18f79175e82b16267c246fbbd3ca9dfbbb290b08dcfdd4',
+            'org.briarproject:jtorctl:0.5:jtorctl-0.5.jar:43f8c7d390169772b9a2c82ab806c8414c136a2a8636c555e22754bb7260793b',
+            'org.briarproject:null-safety:0.1:null-safety-0.1.jar:161760de5e838cb982bafa973df820675d4397098e9a91637a36a306d43ba011',
+            'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a',
+            'org.checkerframework:checker-qual:2.11.1:checker-qual-2.11.1.jar:015224a4b1dc6de6da053273d4da7d39cfea20e63038169fc45ac0d1dc9c5938',
+            'org.checkerframework:checker-qual:3.12.0:checker-qual-3.12.0.jar:ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb',
+            'org.ec4j.core:ec4j-core:0.3.0:ec4j-core-0.3.0.jar:cadef0207077074b11a12be442f89ab6cf93fbc2f848702d9371a9611414d558',
+            'org.eclipse.jetty.alpn:alpn-api:1.1.3.v20160715:alpn-api-1.1.3.v20160715.jar:07be99758b699e194f70fb9784d94202dc6c98212877829e3d72b020f2660576',
+            'org.fusesource.jansi:jansi:2.4.0:jansi-2.4.0.jar:6cd91991323dd7b2fb28ca93d7ac12af5a86a2f53279e2b35827b30313fd0b9f',
+            'org.javassist:javassist:3.26.0-GA:javassist-3.26.0-GA.jar:ca5625874ff0a34f2422173a511b33c225218c146a3c961b18940efff430462d',
+            'org.jetbrains.intellij.deps:trove4j:1.0.20181211:trove4j-1.0.20181211.jar:affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601',
+            'org.jetbrains.intellij.deps:trove4j:1.0.20200330:trove4j-1.0.20200330.jar:c5fd725bffab51846bf3c77db1383c60aaaebfe1b7fe2f00d23fe1b7df0a439d',
+            'org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.7.22:kotlin-annotation-processing-gradle-1.7.22.jar:782a1df09fb59c25599c80b264b20aec836957254ba3abcfc4f7484c2e556707',
+            'org.jetbrains.kotlin:kotlin-compiler-embeddable:1.5.31:kotlin-compiler-embeddable-1.5.31.jar:e39811a9e4c102e779c659eefe90b041c66ce87578c1bfdac07cf504d1551745',
+            'org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.22:kotlin-compiler-embeddable-1.7.22.jar:87e5a8ba0eba2feb087ba94ceb9c28d0096fc1f6f3b55ef45a9d103ed5ef76c7',
+            'org.jetbrains.kotlin:kotlin-daemon-embeddable:1.5.31:kotlin-daemon-embeddable-1.5.31.jar:f61eaf89e5e3848631650b25cdfb66fe8cae0281a054d9d986716000a15ba8d6',
+            'org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.22:kotlin-daemon-embeddable-1.7.22.jar:4ce267ac5e84a9532d7269fcbc732ebab27e0d76ade71aeeedb369f746b281be',
+            'org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.7.22:kotlin-klib-commonizer-embeddable-1.7.22.jar:de8c31a8092fb68ef80f34a3cbdfb1dcd40207b67cff87d40b5c479ec6a68ece',
+            'org.jetbrains.kotlin:kotlin-reflect:1.5.31:kotlin-reflect-1.5.31.jar:6e0f5490e6b9649ddd2670534e4d3a03bd283c3358b8eef5d1304fd5f8a5a4fb',
+            'org.jetbrains.kotlin:kotlin-reflect:1.6.10:kotlin-reflect-1.6.10.jar:3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203',
+            'org.jetbrains.kotlin:kotlin-reflect:1.7.22:kotlin-reflect-1.7.22.jar:4d4471d1cbc203d3f9e51d6123956dddbb96d5747f1aee02463c7b920feb2baf',
+            'org.jetbrains.kotlin:kotlin-script-runtime:1.5.31:kotlin-script-runtime-1.5.31.jar:24e450fee7645ed3590981dddccf397c0d9ebb725815c94c4f555cc3db2f9f96',
+            'org.jetbrains.kotlin:kotlin-script-runtime:1.7.22:kotlin-script-runtime-1.7.22.jar:caaa3dd214e8145e7e32deef571640cb65b55909e2af55fc26b30a1acb33930a',
+            'org.jetbrains.kotlin:kotlin-scripting-common:1.7.22:kotlin-scripting-common-1.7.22.jar:98596c09f94c024685a50db5bc3d0d47dee104da9987d41e4f9ca1c72fa2dfca',
+            'org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.7.22:kotlin-scripting-compiler-embeddable-1.7.22.jar:0e28cfe570bebd8c3962bdefed1011905673ab8095312703fa22805efe3c5913',
+            'org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.7.22:kotlin-scripting-compiler-impl-embeddable-1.7.22.jar:c8667734536a5661230bd7732809385827e087a75f8088958d384042581c3633',
+            'org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.22:kotlin-scripting-jvm-1.7.22.jar:f5410993723ff3437638b4acfee9cf5da373091459024fa8a54e1d9ad101c754',
+            'org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31:kotlin-stdlib-common-1.5.31.jar:dfa2a18e26b028388ee1968d199bf6f166f737ab7049c25a5e2da614404e22ad',
+            'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0:kotlin-stdlib-common-1.7.0.jar:59c6ff64fe9a6604afce03e8aaa75f83586c6030ac71fb0b34ee7cdefed3618f',
+            'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.22:kotlin-stdlib-common-1.7.22.jar:79488cdf284c4b5b3998d302eae9bf0980fa441e3906c6a53d1174f978a3e484',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.31:kotlin-stdlib-jdk7-1.5.31.jar:a25bf47353ce899d843cbddee516d621a73473e7fba97f8d0301e7b4aed7c15f',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.0:kotlin-stdlib-jdk7-1.7.0.jar:07e91be9b2ca20672d2bdb7e181b766e73453a2da13492b5ddaee8fa47aea239',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20:kotlin-stdlib-jdk7-1.7.20.jar:524da3c1a2ad56fd52c4ae2272ef3de421de8d2047ab1c51fc306d351243f2f5',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31:kotlin-stdlib-jdk8-1.5.31.jar:b548f7767aacf029d2417e47440742bd6d3ebede19b60386e23554ce5c4c5fdc',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0:kotlin-stdlib-jdk8-1.7.0.jar:cf058e11db1dfc9944680c8c61b95ac689aaaa8a3eb30bced028100f038f030b',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20:kotlin-stdlib-jdk8-1.7.20.jar:1da0d306c995945e1f807240ef64b5cd2dd5ac58612afb1a8596143d10b7ded5',
+            'org.jetbrains.kotlin:kotlin-stdlib:1.5.31:kotlin-stdlib-1.5.31.jar:4800ceacb2ec0bb9959a087154b8e35318ead1ea4eba32d4bb1b9734222a7e68',
+            'org.jetbrains.kotlin:kotlin-stdlib:1.7.0:kotlin-stdlib-1.7.0.jar:aa88e9625577957f3249a46cb6e166ee09b369e600f7a11d148d16b0a6d87f05',
+            'org.jetbrains.kotlin:kotlin-stdlib:1.7.22:kotlin-stdlib-1.7.22.jar:f98505f50a6a1c1dc002d6102e4b419af93d011d5a10696e75a38935a96ea92f',
+            'org.jetbrains.kotlin:kotlin-test-annotations-common:1.7.22:kotlin-test-annotations-common-1.7.22.jar:35628f9f01e95b6162dc4b48e3cd49afdc3f463a751b6d793d6ab64459efaaef',
+            'org.jetbrains.kotlin:kotlin-test-common:1.7.22:kotlin-test-common-1.7.22.jar:e9af870a320f3bc7e13dc2357888a34c2684d3c58ff028b6bc57aadbd84d424b',
+            'org.jetbrains.kotlin:kotlin-test-junit5:1.7.22:kotlin-test-junit5-1.7.22.jar:bfb9fd2ef4742fb78180976e241596dc06913c2638da38a5f6906780f824811d',
+            'org.jetbrains.kotlin:kotlin-test:1.7.22:kotlin-test-1.7.22.jar:f3060dd22a0c43ebc24b0b94df44874e8098eb05e8428a2215d0fe57832f9d37',
+            'org.jetbrains.kotlinx:atomicfu:0.18.5:atomicfu-metadata-0.18.5-all.jar:6890b4702234287cb2e81bdfa2a7bf61f83ef07faa741c7015155226b7832653',
+            'org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4:kotlinx-coroutines-core-jvm-1.6.4.jar:c24c8bb27bb320c4a93871501a7e5e0c61607638907b197aef675513d4c820be',
+            'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4:kotlinx-coroutines-core-metadata-1.6.4-all.jar:ae24d84fd33c5aaba1564b168142d0f210b0e257e0a0077e32616acc59e67fb7',
+            'org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.4:kotlinx-coroutines-jdk8-1.6.4.jar:88c64b8eea3eb90597d2fb0fd30f3cf782fbcdad06312e5665a618f070f02119',
+            'org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.6.4:kotlinx-coroutines-slf4j-1.6.4.jar:e8e47a5d7ff57e89e096a409486308ad58a2f392724145973f11f679e7d11d23',
+            'org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0:kotlinx-metadata-jvm-0.5.0.jar:ca063a96639b08b9eaa0de4d65e899480740a6efbe28ab9a8681a2ced03055a4',
+            'org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.1.0:kotlinx-serialization-core-jvm-1.1.0.jar:69d18c700cfdf207b3e9bf6f5d58e7de08482d9e34d7c2a0adcb1db8082df943',
+            'org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.4.1:kotlinx-serialization-core-jvm-1.4.1.jar:eba7f1c854296e4ce1418fb01360f8f10c5683e7c45aa3472018417a067636f3',
+            'org.jetbrains.kotlinx:kotlinx-serialization-core:1.4.1:kotlinx-serialization-core-metadata-1.4.1-all.jar:11d00f05f4c0e1a894ef4cbc4370ba818d21ef70ebb015c8731af43751cfa233',
+            'org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.1.0:kotlinx-serialization-json-jvm-1.1.0.jar:cea6836d3a3990b7ac59f61a9534a0bf1c8d3932bd206080a3a13622ec7587d1',
+            'org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.1:kotlinx-serialization-json-jvm-1.4.1.jar:af604c46737121d4225fdb60ef0e17766a3c94b7c1c9ef76b4e3a5c7733d557e',
+            'org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1:kotlinx-serialization-json-metadata-1.4.1-all.jar:c316fc2b8445af447f11239388069b781a50e6747b1dc3218b1f155bb9410d19',
+            'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478',
+            'org.junit.jupiter:junit-jupiter-api:5.7.2:junit-jupiter-api-5.7.2.jar:bc98326ecbc501e1860a2bc9780aebe5777bd29cf00059f88c2a56f48fbc9ce6',
+            'org.junit.jupiter:junit-jupiter-engine:5.7.2:junit-jupiter-engine-5.7.2.jar:8a35afb26cd5e8393cb763ff13d26a52a507a35c5b2d7650d42024a7226b80db',
+            'org.junit.jupiter:junit-jupiter-params:5.7.2:junit-jupiter-params-5.7.2.jar:17569f7da0ce2ebeab875aa8aa79c0f2c42433ea208291e73fc1a3c9d6143115',
+            'org.junit.platform:junit-platform-commons:1.7.2:junit-platform-commons-1.7.2.jar:738d0df021a0611fff5d277634e890cc91858fa72227cf0bcf36232a7caf014c',
+            'org.junit.platform:junit-platform-engine:1.7.2:junit-platform-engine-1.7.2.jar:abebbfa420fa8ffdc51083c06807e8692dd9bf8c52455dcdb72474ab90425573',
+            'org.objenesis:objenesis:3.1:objenesis-3.1.jar:cdb3d038c188de6f46ffd5cd930be2d5e5dba59c53b26437995d534e3db2fb80',
+            'org.opentest4j:opentest4j:1.2.0:opentest4j-1.2.0.jar:58812de60898d976fb81ef3b62da05c6604c18fd4a249f5044282479fc286af2',
+            'org.reflections:reflections:0.9.12:reflections-0.9.12.jar:d168f58d32f2ae7ac5a8d5d9092adeee526c604b41125dcb45eea877960a99cf',
+            'org.slf4j:slf4j-api:1.7.36:slf4j-api-1.7.36.jar:d3ef575e3e4979678dc01bf1dcce51021493b4d11fb7f1be8ad982877c16a1c0',
+    ]
+}
diff --git a/mailbox-lib/build.gradle b/mailbox-lib/build.gradle
index 4cd8dde5..5c49d1c0 100644
--- a/mailbox-lib/build.gradle
+++ b/mailbox-lib/build.gradle
@@ -3,9 +3,11 @@ plugins {
     id 'idea'
     id 'org.jetbrains.kotlin.jvm'
     id 'org.jetbrains.kotlin.kapt'
-    id "org.jlleitschuh.gradle.ktlint" version "$ktlint_plugin_version"
+    id "org.jlleitschuh.gradle.ktlint"
     id 'checkstyle'
+    id 'witness'
 }
+apply from: 'witness.gradle'
 
 checkstyle {
     configFile = new File('../config/checkstyle/checkstyle.xml')
diff --git a/mailbox-lib/witness.gradle b/mailbox-lib/witness.gradle
new file mode 100644
index 00000000..8de51c61
--- /dev/null
+++ b/mailbox-lib/witness.gradle
@@ -0,0 +1,111 @@
+dependencyVerification {
+    verify = [
+            'antlr:antlr:2.7.7:antlr-2.7.7.jar:88fbda4b912596b9f56e8e12e580cc954bacfb51776ecfddd3e18fc1cf56dc4c',
+            'ch.qos.logback:logback-classic:1.2.11:logback-classic-1.2.11.jar:4d8e899621a3006c2f66e19feab002b11e6cfc5cb1854fc41f01532c00deb2aa',
+            'ch.qos.logback:logback-core:1.2.11:logback-core-1.2.11.jar:6ce1e9397be8298a2e99029f55f955c6fa3cef255171c554d0b9c201cffd0159',
+            'com.github.shyiko.klob:klob:0.2.1:klob-0.2.1.jar:2f6174e3049008f263fd832813390df645ac5c7cfa79f170ace58690810476f2',
+            'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7',
+            'com.google.dagger:dagger-compiler:2.44.2:dagger-compiler-2.44.2.jar:6a3377f31695b9a53d47012a47e844432f7a6b9159fbf22ec10203de848de770',
+            'com.google.dagger:dagger-producers:2.44.2:dagger-producers-2.44.2.jar:01cf6464bb5c551860936ae161f45f153298d1e11c8dd3a81c0d7340ed68c1cc',
+            'com.google.dagger:dagger-spi:2.44.2:dagger-spi-2.44.2.jar:1fe86708acd729fa3322ac5968e5e835bb94a6cabe7991d6713e0cbf321e5e9b',
+            'com.google.dagger:dagger:2.44.2:dagger-2.44.2.jar:b6d35d56b47cbfc3e484f678d0bacb497c6c0ec2cc2a5e180d79d0788d313ab8',
+            'com.google.dagger:hilt-compiler:2.44.2:hilt-compiler-2.44.2.jar:76c59e60f045923f978143bd37aaef2274d344dc9bdeecafb290bc66de7c10b2',
+            'com.google.dagger:hilt-core:2.44.2:hilt-core-2.44.2.jar:0df25c96836cc95cb7086cfe402a6145e95357a03b3ba16f8e4d3b237470a3fb',
+            'com.google.devtools.ksp:symbol-processing-api:1.7.0-1.0.6:symbol-processing-api-1.7.0-1.0.6.jar:adc29417be5ca9ff42118105fea4e36d9ef44987abfc41432309371a60198941',
+            'com.google.errorprone:error_prone_annotations:2.3.4:error_prone_annotations-2.3.4.jar:baf7d6ea97ce606c53e11b6854ba5f2ce7ef5c24dddf0afa18d1260bd25b002c',
+            'com.google.errorprone:error_prone_annotations:2.7.1:error_prone_annotations-2.7.1.jar:cd5257c08a246cf8628817ae71cb822be192ef91f6881ca4a3fcff4f1de1cff3',
+            'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30',
+            'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e',
+            'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26',
+            'com.google.guava:guava:29.0-jre:guava-29.0-jre.jar:b22c5fb66d61e7b9522531d04b2f915b5158e80aa0b40ee7282c8bfb07b0da25',
+            'com.google.guava:guava:31.0.1-jre:guava-31.0.1-jre.jar:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9',
+            'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99',
+            'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b',
+            'com.pinterest.ktlint:ktlint-core:0.43.2:ktlint-core-0.43.2.jar:401515a76b780a32ef9dfeaf69f77316934c4bb90f339488638311789eca7a1a',
+            'com.pinterest.ktlint:ktlint-reporter-baseline:0.43.2:ktlint-reporter-baseline-0.43.2.jar:733ee7e2cadb321d6597b3501c70c7da73117adaa0c6bc084dfc16c455d68806',
+            'com.pinterest.ktlint:ktlint-reporter-checkstyle:0.43.2:ktlint-reporter-checkstyle-0.43.2.jar:becafb4006b9f2e82c99749864a1a8de340ee84ac7271631a68981a44f51e808',
+            'com.pinterest.ktlint:ktlint-reporter-html:0.43.2:ktlint-reporter-html-0.43.2.jar:800392e150d3266e72ca53c6ccca3136d4e26445dd9216c6ac6cfc1ba3afafe5',
+            'com.pinterest.ktlint:ktlint-reporter-json:0.43.2:ktlint-reporter-json-0.43.2.jar:9d4a94190d96d671000a06a50c9d1ce111d0dcf629bef8b4f0221a9e3f3699a0',
+            'com.pinterest.ktlint:ktlint-reporter-plain:0.43.2:ktlint-reporter-plain-0.43.2.jar:1cab63f431ec4e9463df7a767f131ccfa8d76259c01fecc63a4c000063e8ee43',
+            'com.pinterest.ktlint:ktlint-reporter-sarif:0.43.2:ktlint-reporter-sarif-0.43.2.jar:ed0046aaa4a2e4544197bfdccf88d472ef413a55ad05b6dc8aae41338e9d3748',
+            'com.pinterest.ktlint:ktlint-ruleset-experimental:0.43.2:ktlint-ruleset-experimental-0.43.2.jar:d89e0edcdca0ae375c090565e323520ab5d424d82fd6ac6290ea986d360f0b11',
+            'com.pinterest.ktlint:ktlint-ruleset-standard:0.43.2:ktlint-ruleset-standard-0.43.2.jar:6774dc9d42aa7c7fdd4a7f3732b56fdab99ba78ce0c4eb5159036525657d0014',
+            'com.pinterest.ktlint:ktlint-ruleset-test:0.43.2:ktlint-ruleset-test-0.43.2.jar:7270c4d98b2cda268c25397a02b7dea0ab8cb923958cb3853121e0d9366ce797',
+            'com.pinterest:ktlint:0.43.2:ktlint-0.43.2.jar:99ec69ef0628695c24dbbc2cc4b8d7c61a754697d624f5233fc65f43faf2d235',
+            'com.puppycrawl.tools:checkstyle:8.37:checkstyle-8.37.jar:3c8d29393129090b9f46a7f6852a70ff1e9d7bd581343e3d0fb895ad33c524fa',
+            'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291',
+            'com.squareup:kotlinpoet:1.11.0:kotlinpoet-1.11.0.jar:2887ada1ca03dd83baa2758640d87e840d1907564db0ef88d2289c868a980492',
+            'commons-beanutils:commons-beanutils:1.9.4:commons-beanutils-1.9.4.jar:7d938c81789028045c08c065e94be75fc280527620d5bd62b519d5838532368a',
+            'commons-collections:commons-collections:3.2.2:commons-collections-3.2.2.jar:eeeae917917144a68a741d4c0dff66aa5c5c5fd85593ff217bced3fc8ca783b8',
+            'info.picocli:picocli:3.9.6:picocli-3.9.6.jar:9442a6a18d869354a0d922ba37b40032aa1b0a172f414a7a644de39d1972f1f4',
+            'info.picocli:picocli:4.5.2:picocli-4.5.2.jar:b4395e9a67932616efd2245d984bf5fcd453c2c5049558c3ce959ac2af4d3fac',
+            'io.github.detekt.sarif4k:sarif4k:0.0.1:sarif4k-0.0.1.jar:41ec72cf2521783224581c76aaa7e97d4a50f396a66d642500ff4777b395a376',
+            'io.mockk:mockk-agent-api:1.10.4:mockk-agent-api-1.10.4.jar:8deb59189b48d5870a746f954ca681424040544812c7ae295f3bef87a9499cfe',
+            'io.mockk:mockk-agent-common:1.10.4:mockk-agent-common-1.10.4.jar:13b81a3297a3c15ed9f62b838aaede20347018f07c30cad2ca74a4dd99786f8f',
+            'io.mockk:mockk-agent-jvm:1.10.4:mockk-agent-jvm-1.10.4.jar:51eb22de58c44f140384e61878e8c0da0fcf80c60a139d28ef7b027ea4bc2042',
+            'io.mockk:mockk-common:1.10.4:mockk-common-1.10.4.jar:aaf3cc99442100767dc72776f250113f992facfb43bf6ba9a5282d1c8aaecd00',
+            'io.mockk:mockk-dsl-jvm:1.10.4:mockk-dsl-jvm-1.10.4.jar:2432e2d0dfd31c3cb33e12137b8c712358cb0c4cddbd27b5bd6c55db2068e1a1',
+            'io.mockk:mockk-dsl:1.10.4:mockk-dsl-1.10.4.jar:b97d750bebfd7da92a020f5417deface710c58802a78a8fff68661f77eaa3037',
+            'io.mockk:mockk:1.10.4:mockk-1.10.4.jar:e26d4eb8c9c0c5ac00acb9bfeedfe0feb10055bf7e80db57539936413ea38f7c',
+            'javax.annotation:javax.annotation-api:1.3.2:javax.annotation-api-1.3.2.jar:e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b',
+            'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
+            'net.bytebuddy:byte-buddy-agent:1.10.14:byte-buddy-agent-1.10.14.jar:30272167eceb1cb68fa84730a12d1abfd1daed6ae0c19fdefee47a9a9a0cfd33',
+            'net.bytebuddy:byte-buddy:1.10.14:byte-buddy-1.10.14.jar:0e6b935bfcb3e451d525956acad53ec86ff916d714abdbd32b3d2039771896f8',
+            'net.java.dev.jna:jna-platform:5.8.0:jna-platform-5.8.0.jar:ffd93fe1bc07de6f33eabf3d051c3636e01a01c17cb0da8448c53a2ac5e3bf7a',
+            'net.java.dev.jna:jna:5.6.0:jna-5.6.0.jar:5557e235a8aa2f9766d5dc609d67948f2a8832c2d796cea9ef1d6cbe0b3b7eaf',
+            'net.java.dev.jna:jna:5.8.0:jna-5.8.0.jar:930273cc1c492f25661ea62413a6da3fd7f6e01bf1c4dcc0817fc8696a7b07ac',
+            'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd',
+            'net.sf.saxon:Saxon-HE:10.3:Saxon-HE-10.3.jar:660a89162a577cfd73bc3db3c53cbec7e82d4ab2051247f31927f135aff7c908',
+            'org.antlr:antlr4-runtime:4.8-1:antlr4-runtime-4.8-1.jar:bdcf58107ba1a499b25e3db205086767dd409d3f5ab12c90f2d429f55ec774a6',
+            'org.apiguardian:apiguardian-api:1.1.0:apiguardian-api-1.1.0.jar:a9aae9ff8ae3e17a2a18f79175e82b16267c246fbbd3ca9dfbbb290b08dcfdd4',
+            'org.briarproject:obfs4proxy-linux:0.0.14:obfs4proxy-linux-0.0.14.jar:6391d323d45a279362236c7c62e21b903d07d4f31f5e0c8d49d009769b720cc6',
+            'org.briarproject:tor-linux:0.4.7.13:tor-linux-0.4.7.13.jar:9819ee973cbcdc133f7d04aef9d4b957a35087627a790e532142d15412a9636f',
+            'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a',
+            'org.checkerframework:checker-qual:2.11.1:checker-qual-2.11.1.jar:015224a4b1dc6de6da053273d4da7d39cfea20e63038169fc45ac0d1dc9c5938',
+            'org.checkerframework:checker-qual:3.12.0:checker-qual-3.12.0.jar:ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb',
+            'org.ec4j.core:ec4j-core:0.3.0:ec4j-core-0.3.0.jar:cadef0207077074b11a12be442f89ab6cf93fbc2f848702d9371a9611414d558',
+            'org.javassist:javassist:3.26.0-GA:javassist-3.26.0-GA.jar:ca5625874ff0a34f2422173a511b33c225218c146a3c961b18940efff430462d',
+            'org.jetbrains.intellij.deps:trove4j:1.0.20181211:trove4j-1.0.20181211.jar:affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601',
+            'org.jetbrains.intellij.deps:trove4j:1.0.20200330:trove4j-1.0.20200330.jar:c5fd725bffab51846bf3c77db1383c60aaaebfe1b7fe2f00d23fe1b7df0a439d',
+            'org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.7.22:kotlin-annotation-processing-gradle-1.7.22.jar:782a1df09fb59c25599c80b264b20aec836957254ba3abcfc4f7484c2e556707',
+            'org.jetbrains.kotlin:kotlin-compiler-embeddable:1.5.31:kotlin-compiler-embeddable-1.5.31.jar:e39811a9e4c102e779c659eefe90b041c66ce87578c1bfdac07cf504d1551745',
+            'org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.22:kotlin-compiler-embeddable-1.7.22.jar:87e5a8ba0eba2feb087ba94ceb9c28d0096fc1f6f3b55ef45a9d103ed5ef76c7',
+            'org.jetbrains.kotlin:kotlin-daemon-embeddable:1.5.31:kotlin-daemon-embeddable-1.5.31.jar:f61eaf89e5e3848631650b25cdfb66fe8cae0281a054d9d986716000a15ba8d6',
+            'org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.22:kotlin-daemon-embeddable-1.7.22.jar:4ce267ac5e84a9532d7269fcbc732ebab27e0d76ade71aeeedb369f746b281be',
+            'org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.7.22:kotlin-klib-commonizer-embeddable-1.7.22.jar:de8c31a8092fb68ef80f34a3cbdfb1dcd40207b67cff87d40b5c479ec6a68ece',
+            'org.jetbrains.kotlin:kotlin-reflect:1.5.31:kotlin-reflect-1.5.31.jar:6e0f5490e6b9649ddd2670534e4d3a03bd283c3358b8eef5d1304fd5f8a5a4fb',
+            'org.jetbrains.kotlin:kotlin-reflect:1.6.10:kotlin-reflect-1.6.10.jar:3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203',
+            'org.jetbrains.kotlin:kotlin-reflect:1.7.22:kotlin-reflect-1.7.22.jar:4d4471d1cbc203d3f9e51d6123956dddbb96d5747f1aee02463c7b920feb2baf',
+            'org.jetbrains.kotlin:kotlin-script-runtime:1.5.31:kotlin-script-runtime-1.5.31.jar:24e450fee7645ed3590981dddccf397c0d9ebb725815c94c4f555cc3db2f9f96',
+            'org.jetbrains.kotlin:kotlin-script-runtime:1.7.22:kotlin-script-runtime-1.7.22.jar:caaa3dd214e8145e7e32deef571640cb65b55909e2af55fc26b30a1acb33930a',
+            'org.jetbrains.kotlin:kotlin-scripting-common:1.7.22:kotlin-scripting-common-1.7.22.jar:98596c09f94c024685a50db5bc3d0d47dee104da9987d41e4f9ca1c72fa2dfca',
+            'org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.7.22:kotlin-scripting-compiler-embeddable-1.7.22.jar:0e28cfe570bebd8c3962bdefed1011905673ab8095312703fa22805efe3c5913',
+            'org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.7.22:kotlin-scripting-compiler-impl-embeddable-1.7.22.jar:c8667734536a5661230bd7732809385827e087a75f8088958d384042581c3633',
+            'org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.22:kotlin-scripting-jvm-1.7.22.jar:f5410993723ff3437638b4acfee9cf5da373091459024fa8a54e1d9ad101c754',
+            'org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31:kotlin-stdlib-common-1.5.31.jar:dfa2a18e26b028388ee1968d199bf6f166f737ab7049c25a5e2da614404e22ad',
+            'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0:kotlin-stdlib-common-1.7.0.jar:59c6ff64fe9a6604afce03e8aaa75f83586c6030ac71fb0b34ee7cdefed3618f',
+            'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.22:kotlin-stdlib-common-1.7.22.jar:79488cdf284c4b5b3998d302eae9bf0980fa441e3906c6a53d1174f978a3e484',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.31:kotlin-stdlib-jdk7-1.5.31.jar:a25bf47353ce899d843cbddee516d621a73473e7fba97f8d0301e7b4aed7c15f',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.0:kotlin-stdlib-jdk7-1.7.0.jar:07e91be9b2ca20672d2bdb7e181b766e73453a2da13492b5ddaee8fa47aea239',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.22:kotlin-stdlib-jdk7-1.7.22.jar:ade7768d98940a303856529af373f75ffd5e2695b4dc198e9b18396afa53f9e0',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31:kotlin-stdlib-jdk8-1.5.31.jar:b548f7767aacf029d2417e47440742bd6d3ebede19b60386e23554ce5c4c5fdc',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0:kotlin-stdlib-jdk8-1.7.0.jar:cf058e11db1dfc9944680c8c61b95ac689aaaa8a3eb30bced028100f038f030b',
+            'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.22:kotlin-stdlib-jdk8-1.7.22.jar:315102ff1cc2e706286b227147b8db23783db911a89298976a90a22e071cd117',
+            'org.jetbrains.kotlin:kotlin-stdlib:1.5.31:kotlin-stdlib-1.5.31.jar:4800ceacb2ec0bb9959a087154b8e35318ead1ea4eba32d4bb1b9734222a7e68',
+            'org.jetbrains.kotlin:kotlin-stdlib:1.7.0:kotlin-stdlib-1.7.0.jar:aa88e9625577957f3249a46cb6e166ee09b369e600f7a11d148d16b0a6d87f05',
+            'org.jetbrains.kotlin:kotlin-stdlib:1.7.22:kotlin-stdlib-1.7.22.jar:f98505f50a6a1c1dc002d6102e4b419af93d011d5a10696e75a38935a96ea92f',
+            'org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0:kotlinx-metadata-jvm-0.5.0.jar:ca063a96639b08b9eaa0de4d65e899480740a6efbe28ab9a8681a2ced03055a4',
+            'org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.1.0:kotlinx-serialization-core-jvm-1.1.0.jar:69d18c700cfdf207b3e9bf6f5d58e7de08482d9e34d7c2a0adcb1db8082df943',
+            'org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.1.0:kotlinx-serialization-json-jvm-1.1.0.jar:cea6836d3a3990b7ac59f61a9534a0bf1c8d3932bd206080a3a13622ec7587d1',
+            'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478',
+            'org.junit.jupiter:junit-jupiter-api:5.7.2:junit-jupiter-api-5.7.2.jar:bc98326ecbc501e1860a2bc9780aebe5777bd29cf00059f88c2a56f48fbc9ce6',
+            'org.junit.jupiter:junit-jupiter-engine:5.7.2:junit-jupiter-engine-5.7.2.jar:8a35afb26cd5e8393cb763ff13d26a52a507a35c5b2d7650d42024a7226b80db',
+            'org.junit.jupiter:junit-jupiter-params:5.7.2:junit-jupiter-params-5.7.2.jar:17569f7da0ce2ebeab875aa8aa79c0f2c42433ea208291e73fc1a3c9d6143115',
+            'org.junit.platform:junit-platform-commons:1.7.2:junit-platform-commons-1.7.2.jar:738d0df021a0611fff5d277634e890cc91858fa72227cf0bcf36232a7caf014c',
+            'org.junit.platform:junit-platform-engine:1.7.2:junit-platform-engine-1.7.2.jar:abebbfa420fa8ffdc51083c06807e8692dd9bf8c52455dcdb72474ab90425573',
+            'org.objenesis:objenesis:3.1:objenesis-3.1.jar:cdb3d038c188de6f46ffd5cd930be2d5e5dba59c53b26437995d534e3db2fb80',
+            'org.opentest4j:opentest4j:1.2.0:opentest4j-1.2.0.jar:58812de60898d976fb81ef3b62da05c6604c18fd4a249f5044282479fc286af2',
+            'org.reflections:reflections:0.9.12:reflections-0.9.12.jar:d168f58d32f2ae7ac5a8d5d9092adeee526c604b41125dcb45eea877960a99cf',
+            'org.slf4j:slf4j-api:1.7.36:slf4j-api-1.7.36.jar:d3ef575e3e4979678dc01bf1dcce51021493b4d11fb7f1be8ad982877c16a1c0',
+    ]
+}
diff --git a/update-dependency-pinning.sh b/update-dependency-pinning.sh
new file mode 100755
index 00000000..79f7321f
--- /dev/null
+++ b/update-dependency-pinning.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+set -e
+
+PROJECTS=(
+  'mailbox-core'
+  'mailbox-android'
+  'mailbox-cli'
+  'mailbox-lib'
+)
+
+# clear witness files to prevent errors when upgrading dependencies
+for project in "${PROJECTS[@]}"
+do
+    echo "" > "${project}/witness.gradle"
+done
+
+# calculating new checksums
+for project in "${PROJECTS[@]}"
+do
+    echo "Calculating new checksums for ${project} ..."
+    ./gradlew -q --configure-on-demand "${project}:calculateChecksums" | grep -v '^\(Skipping\|Verifying\|Welcome to Gradle\)' > "${project}/witness.gradle"
+done
-- 
GitLab