From a336b39754270fc06cf064905cce796be2d2c90f Mon Sep 17 00:00:00 2001
From: Matthew Raymer <mraymer@osinetwork.net>
Date: Fri, 28 Mar 2025 12:47:10 +0000
Subject: [PATCH] refactor(plugin): modernize plugin architecture and improve
 type definitions

- Update package.json with modern build tooling and dependencies
- Streamline and enhance TypeScript definitions for better type safety
- Reorganize plugin structure for better maintainability
- Add comprehensive interface definitions for notification features
- Implement proper build configuration with rollup
- Update tsconfig.json for stricter type checking and ES2020 modules

Breaking Changes:
- Changed module structure to use ES modules
- Updated interface definitions with stricter typing
- Removed redundant notification options
- Simplified API surface while maintaining core functionality

Dependencies:
- Upgrade @capacitor dependencies to v5.7.8
- Add rollup and typescript build tools
- Update test framework configuration
---
 .eslintrc.json                                |  19 +
 .gitignore                                    |  66 +-
 .gradle/8.13/checksums/checksums.lock         | Bin 0 -> 17 bytes
 .gradle/8.13/checksums/md5-checksums.bin      | Bin 0 -> 23097 bytes
 .gradle/8.13/checksums/sha1-checksums.bin     | Bin 0 -> 28163 bytes
 .../executionHistory/executionHistory.bin     | Bin 0 -> 46283 bytes
 .../executionHistory/executionHistory.lock    | Bin 0 -> 17 bytes
 .gradle/8.13/fileChanges/last-build.bin       | Bin 0 -> 1 bytes
 .gradle/8.13/fileHashes/fileHashes.bin        | Bin 0 -> 19647 bytes
 .gradle/8.13/fileHashes/fileHashes.lock       | Bin 0 -> 17 bytes
 .../8.13/fileHashes/resourceHashesCache.bin   | Bin 0 -> 18599 bytes
 .gradle/8.13/gc.properties                    |   0
 .../buildOutputCleanup.lock                   | Bin 0 -> 17 bytes
 .gradle/buildOutputCleanup/cache.properties   |   2 +
 .gradle/buildOutputCleanup/outputFiles.bin    | Bin 0 -> 19127 bytes
 .../.globals.work.bin                         | Bin 0 -> 62 bytes
 .../.strings.work.bin                         | Bin 0 -> 12250 bytes
 .../_.work.bin                                | Bin 0 -> 1901 bytes
 .../buildfingerprint.bin                      | Bin 0 -> 1831 bytes
 .../entry.bin                                 | Bin 0 -> 92 bytes
 .../projectfingerprint.bin                    | Bin 0 -> 566 bytes
 .../work.bin                                  |   1 +
 .../.globals.work.bin                         | Bin 0 -> 62 bytes
 .../.strings.work.bin                         | Bin 0 -> 12237 bytes
 .../_.work.bin                                | Bin 0 -> 1900 bytes
 .../buildfingerprint.bin                      | Bin 0 -> 1831 bytes
 .../entry.bin                                 | Bin 0 -> 92 bytes
 .../projectfingerprint.bin                    | Bin 0 -> 566 bytes
 .../work.bin                                  | Bin 0 -> 357 bytes
 .../4hvyddttlxo92r0wto9feha2i/candidates.bin  |   1 +
 .../.globals.work.bin                         |   1 +
 .../.strings.work.bin                         | Bin 0 -> 3106 bytes
 .../_.work.bin                                | Bin 0 -> 285 bytes
 .../buildfingerprint.bin                      | Bin 0 -> 2113 bytes
 .../entry.bin                                 | Bin 0 -> 92 bytes
 .../projectfingerprint.bin                    | Bin 0 -> 823 bytes
 .../work.bin                                  | Bin 0 -> 447 bytes
 .../.globals.work.bin                         |   1 +
 .../.strings.work.bin                         | Bin 0 -> 5632 bytes
 .../_lib.work.bin                             | Bin 0 -> 1020 bytes
 .../buildfingerprint.bin                      | Bin 0 -> 2113 bytes
 .../entry.bin                                 | Bin 0 -> 92 bytes
 .../projectfingerprint.bin                    | Bin 0 -> 823 bytes
 .../work.bin                                  | Bin 0 -> 456 bytes
 .../685mgn6n09vojr2sffwrpu5ai/candidates.bin  |   1 +
 .../6b2wdv4910jdk5r1pwy2wgbme/candidates.bin  |   1 +
 .../.globals.work.bin                         |   1 +
 .../.strings.work.bin                         | Bin 0 -> 13375 bytes
 .../_lib.work.bin                             | Bin 0 -> 4248 bytes
 .../buildfingerprint.bin                      | Bin 0 -> 3094 bytes
 .../entry.bin                                 | Bin 0 -> 92 bytes
 .../projectfingerprint.bin                    | Bin 0 -> 823 bytes
 .../work.bin                                  | Bin 0 -> 661 bytes
 .../6czuitwtho9y27nvd4eawu40i/candidates.bin  |   1 +
 .../7kdhbijltiwsjnddlavxu2zpa/candidates.bin  |   1 +
 .../8x4ypt5nue0899in5q5whr6kb/candidates.bin  |   1 +
 .../.globals.work.bin                         |   3 +
 .../.strings.work.bin                         | Bin 0 -> 14997 bytes
 .../_lib.work.bin                             | Bin 0 -> 5268 bytes
 .../build.work.bin                            |   1 +
 .../buildfingerprint.bin                      | Bin 0 -> 3094 bytes
 .../entry.bin                                 | Bin 0 -> 92 bytes
 .../projectfingerprint.bin                    | Bin 0 -> 823 bytes
 .../work.bin                                  | Bin 0 -> 796 bytes
 .../amg1wvcaaabrt4jjzabw7fe5w/candidates.bin  |   1 +
 .../configuration-cache.lock                  | Bin 0 -> 17 bytes
 .../csrr7nvdo4rldjtfl3c2jferq/candidates.bin  |   1 +
 .../.globals.work.bin                         |   1 +
 .../.strings.work.bin                         | Bin 0 -> 12246 bytes
 .../_.work.bin                                | Bin 0 -> 1901 bytes
 .../buildfingerprint.bin                      | Bin 0 -> 1831 bytes
 .../entry.bin                                 | Bin 0 -> 92 bytes
 .../projectfingerprint.bin                    | Bin 0 -> 566 bytes
 .../work.bin                                  |   4 +
 .../erwtyj4abzfi70xys5njdh4cd/candidates.bin  |   1 +
 .../.globals.work.bin                         |   1 +
 .../.strings.work.bin                         | Bin 0 -> 14949 bytes
 .../_lib.work.bin                             | Bin 0 -> 5131 bytes
 .../buildfingerprint.bin                      | Bin 0 -> 3094 bytes
 .../entry.bin                                 | Bin 0 -> 92 bytes
 .../projectfingerprint.bin                    | Bin 0 -> 823 bytes
 .../work.bin                                  | Bin 0 -> 751 bytes
 .../.globals.work.bin                         |   1 +
 .../.strings.work.bin                         | Bin 0 -> 13356 bytes
 .../_lib.work.bin                             | Bin 0 -> 4159 bytes
 .../buildfingerprint.bin                      | Bin 0 -> 3094 bytes
 .../entry.bin                                 | Bin 0 -> 92 bytes
 .../projectfingerprint.bin                    | Bin 0 -> 823 bytes
 .../work.bin                                  | Bin 0 -> 632 bytes
 .gradle/configuration-cache/gc.properties     |   0
 .gradle/file-system.probe                     | Bin 0 -> 8 bytes
 .gradle/vcs-1/gc.properties                   |   0
 .prettierrc                                   |  10 +
 README.md                                     | 199 ++---
 android/Configure                             |   0
 android/app/build.gradle                      | 100 +--
 android/app/capacitor.build.gradle            |  11 +-
 .../.LCKDailyNotificationPluginTest.java~     |   1 -
 .../DailyNotificationConfigTest.java          | 104 ---
 .../DailyNotificationConstantsTest.java       | 126 ---
 .../DailyNotificationLoggerTest.java          |  84 --
 .../DailyNotificationPluginTest.java          | 227 -----
 .../DailyNotificationReceiverTest.java        | 102 ---
 android/app/src/main/AndroidManifest.xml      |  32 +-
 android/app/src/main/java/README.md           |  39 -
 .../BatteryOptimizationSettings.java          | 225 -----
 .../DailyNotificationConfig.java              |  87 --
 .../DailyNotificationConstants.java           |  79 --
 .../DailyNotificationLogger.java              |  92 --
 .../DailyNotificationPlugin.java              | 736 ----------------
 .../DailyNotificationReceiver.java            | 186 ----
 .../dailynotification}/MainActivity.java      |   2 +-
 .../dailynotification/MaintenanceWorker.java  |  51 --
 .../timesafari/dailynotification/README.md    | 423 ---------
 android/app/src/main/java/index.ts            |  52 --
 android/app/src/main/res/values/strings.xml   |   8 +-
 .../BatteryOptimizationSettingsTest.java      | 150 ----
 .../DailyNotificationLoggerTest.java          | 134 ---
 .../DailyNotificationPluginTest.java          | 194 ----
 .../DailyNotificationReceiverTest.java        | 162 ----
 android/build.gradle                          | 102 +--
 android/capacitor.settings.gradle             |   2 +-
 android/gradlew.bat                           | 184 ++--
 android/settings.gradle                       |   7 +-
 android/variables.gradle                      |   7 +-
 capacitor.config.ts                           |   4 +-
 package-lock.json                             | 826 ++++++++----------
 package.json                                  |  76 +-
 rollup.config.js                              |  25 +
 src/definitions.ts                            | 115 +--
 src/index.ts                                  |   3 +-
 src/web.ts                                    |  63 ++
 tsconfig.json                                 |  27 +-
 133 files changed, 918 insertions(+), 4250 deletions(-)
 create mode 100644 .eslintrc.json
 create mode 100644 .gradle/8.13/checksums/checksums.lock
 create mode 100644 .gradle/8.13/checksums/md5-checksums.bin
 create mode 100644 .gradle/8.13/checksums/sha1-checksums.bin
 create mode 100644 .gradle/8.13/executionHistory/executionHistory.bin
 create mode 100644 .gradle/8.13/executionHistory/executionHistory.lock
 create mode 100644 .gradle/8.13/fileChanges/last-build.bin
 create mode 100644 .gradle/8.13/fileHashes/fileHashes.bin
 create mode 100644 .gradle/8.13/fileHashes/fileHashes.lock
 create mode 100644 .gradle/8.13/fileHashes/resourceHashesCache.bin
 create mode 100644 .gradle/8.13/gc.properties
 create mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock
 create mode 100644 .gradle/buildOutputCleanup/cache.properties
 create mode 100644 .gradle/buildOutputCleanup/outputFiles.bin
 create mode 100644 .gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/.globals.work.bin
 create mode 100644 .gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/.strings.work.bin
 create mode 100644 .gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/_.work.bin
 create mode 100644 .gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/buildfingerprint.bin
 create mode 100644 .gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/entry.bin
 create mode 100644 .gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/projectfingerprint.bin
 create mode 100644 .gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/work.bin
 create mode 100644 .gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/.globals.work.bin
 create mode 100644 .gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/.strings.work.bin
 create mode 100644 .gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/_.work.bin
 create mode 100644 .gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/buildfingerprint.bin
 create mode 100644 .gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/entry.bin
 create mode 100644 .gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/projectfingerprint.bin
 create mode 100644 .gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/work.bin
 create mode 100644 .gradle/configuration-cache/4hvyddttlxo92r0wto9feha2i/candidates.bin
 create mode 100644 .gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/.globals.work.bin
 create mode 100644 .gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/.strings.work.bin
 create mode 100644 .gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/_.work.bin
 create mode 100644 .gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/buildfingerprint.bin
 create mode 100644 .gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/entry.bin
 create mode 100644 .gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/projectfingerprint.bin
 create mode 100644 .gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/work.bin
 create mode 100644 .gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/.globals.work.bin
 create mode 100644 .gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/.strings.work.bin
 create mode 100644 .gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/_lib.work.bin
 create mode 100644 .gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/buildfingerprint.bin
 create mode 100644 .gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/entry.bin
 create mode 100644 .gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/projectfingerprint.bin
 create mode 100644 .gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/work.bin
 create mode 100644 .gradle/configuration-cache/685mgn6n09vojr2sffwrpu5ai/candidates.bin
 create mode 100644 .gradle/configuration-cache/6b2wdv4910jdk5r1pwy2wgbme/candidates.bin
 create mode 100644 .gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/.globals.work.bin
 create mode 100644 .gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/.strings.work.bin
 create mode 100644 .gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/_lib.work.bin
 create mode 100644 .gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/buildfingerprint.bin
 create mode 100644 .gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/entry.bin
 create mode 100644 .gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/projectfingerprint.bin
 create mode 100644 .gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/work.bin
 create mode 100644 .gradle/configuration-cache/6czuitwtho9y27nvd4eawu40i/candidates.bin
 create mode 100644 .gradle/configuration-cache/7kdhbijltiwsjnddlavxu2zpa/candidates.bin
 create mode 100644 .gradle/configuration-cache/8x4ypt5nue0899in5q5whr6kb/candidates.bin
 create mode 100644 .gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/.globals.work.bin
 create mode 100644 .gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/.strings.work.bin
 create mode 100644 .gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/_lib.work.bin
 create mode 100644 .gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/build.work.bin
 create mode 100644 .gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/buildfingerprint.bin
 create mode 100644 .gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/entry.bin
 create mode 100644 .gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/projectfingerprint.bin
 create mode 100644 .gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/work.bin
 create mode 100644 .gradle/configuration-cache/amg1wvcaaabrt4jjzabw7fe5w/candidates.bin
 create mode 100644 .gradle/configuration-cache/configuration-cache.lock
 create mode 100644 .gradle/configuration-cache/csrr7nvdo4rldjtfl3c2jferq/candidates.bin
 create mode 100644 .gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/.globals.work.bin
 create mode 100644 .gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/.strings.work.bin
 create mode 100644 .gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/_.work.bin
 create mode 100644 .gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/buildfingerprint.bin
 create mode 100644 .gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/entry.bin
 create mode 100644 .gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/projectfingerprint.bin
 create mode 100644 .gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/work.bin
 create mode 100644 .gradle/configuration-cache/erwtyj4abzfi70xys5njdh4cd/candidates.bin
 create mode 100644 .gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/.globals.work.bin
 create mode 100644 .gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/.strings.work.bin
 create mode 100644 .gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/_lib.work.bin
 create mode 100644 .gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/buildfingerprint.bin
 create mode 100644 .gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/entry.bin
 create mode 100644 .gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/projectfingerprint.bin
 create mode 100644 .gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/work.bin
 create mode 100644 .gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/.globals.work.bin
 create mode 100644 .gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/.strings.work.bin
 create mode 100644 .gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/_lib.work.bin
 create mode 100644 .gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/buildfingerprint.bin
 create mode 100644 .gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/entry.bin
 create mode 100644 .gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/projectfingerprint.bin
 create mode 100644 .gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/work.bin
 create mode 100644 .gradle/configuration-cache/gc.properties
 create mode 100644 .gradle/file-system.probe
 create mode 100644 .gradle/vcs-1/gc.properties
 create mode 100644 .prettierrc
 create mode 100644 android/Configure
 delete mode 100644 android/app/src/androidTest/java/com/timesafari/dailynotification/.LCKDailyNotificationPluginTest.java~
 delete mode 100644 android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationConfigTest.java
 delete mode 100644 android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationConstantsTest.java
 delete mode 100644 android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationLoggerTest.java
 delete mode 100644 android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationPluginTest.java
 delete mode 100644 android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationReceiverTest.java
 delete mode 100644 android/app/src/main/java/README.md
 delete mode 100644 android/app/src/main/java/com/timesafari/dailynotification/BatteryOptimizationSettings.java
 delete mode 100644 android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationConfig.java
 delete mode 100644 android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationConstants.java
 delete mode 100644 android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationLogger.java
 delete mode 100644 android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationPlugin.java
 delete mode 100644 android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationReceiver.java
 rename android/app/src/main/java/com/{example/app => timesafari/dailynotification}/MainActivity.java (69%)
 delete mode 100644 android/app/src/main/java/com/timesafari/dailynotification/MaintenanceWorker.java
 delete mode 100644 android/app/src/main/java/com/timesafari/dailynotification/README.md
 delete mode 100644 android/app/src/main/java/index.ts
 delete mode 100644 android/app/src/test/java/com/timesafari/dailynotification/BatteryOptimizationSettingsTest.java
 delete mode 100644 android/app/src/test/java/com/timesafari/dailynotification/DailyNotificationLoggerTest.java
 delete mode 100644 android/app/src/test/java/com/timesafari/dailynotification/DailyNotificationPluginTest.java
 delete mode 100644 android/app/src/test/java/com/timesafari/dailynotification/DailyNotificationReceiverTest.java
 create mode 100644 rollup.config.js
 create mode 100644 src/web.ts

diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..4fdc0a3
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,19 @@
+{
+  "root": true,
+  "parser": "@typescript-eslint/parser",
+  "plugins": ["@typescript-eslint"],
+  "extends": [
+    "eslint:recommended",
+    "plugin:@typescript-eslint/recommended"
+  ],
+  "env": {
+    "node": true,
+    "jest": true
+  },
+  "rules": {
+    "@typescript-eslint/explicit-function-return-type": "warn",
+    "@typescript-eslint/no-explicit-any": "warn",
+    "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
+    "no-console": ["warn", { "allow": ["warn", "error"] }]
+  }
+} 
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 34d3813..b8ad22e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,15 +1,61 @@
-dist/
+# Dependencies
 node_modules/
-.DS_Store
-Pods/
-*.iml
+npm-debug.log
+yarn-debug.log
+yarn-error.log
+
+# Build output
+dist/
+build/
+*.tsbuildinfo
+
+# IDE
 .idea/
 .vscode/
-build/
-*.tgz
+*.swp
+*.swo
+
+# OS
+.DS_Store
+Thumbs.db
+
+# Android
+android/app/build/
+android/build/
+android/gradle/
+android/gradlew
+android/gradlew.bat
+android/.gradle/
+android/local.properties
+android/.idea/
+android/*.iml
+
+# iOS
+ios/Pods/
+ios/build/
+ios/Podfile.lock
+ios/.xcode.env.local
+ios/DerivedData/
+ios/*.xcworkspace/
+ios/*.xcodeproj/*
+!ios/*.xcodeproj/project.pbxproj
+!ios/*.xcodeproj/xcshareddata/
+!ios/*.xcworkspace/contents.xcworkspacedata
+
+# Testing
+coverage/
+.nyc_output/
+
+# Logs
+logs/
+*.log
 
-# Ignore Gradle project-specific cache directory
-.gradle
+# Environment
+.env
+.env.local
+.env.*.local
 
-# Ignore Gradle build output directory
-build
+# Temporary files
+*.tmp
+*.temp
+.cache/
diff --git a/.gradle/8.13/checksums/checksums.lock b/.gradle/8.13/checksums/checksums.lock
new file mode 100644
index 0000000000000000000000000000000000000000..949a81a8603f74300ddd22cd90799d1df05874c8
GIT binary patch
literal 17
VcmZSX(RL9%bKPJ$0~j#M001id1FHZ4

literal 0
HcmV?d00001

diff --git a/.gradle/8.13/checksums/md5-checksums.bin b/.gradle/8.13/checksums/md5-checksums.bin
new file mode 100644
index 0000000000000000000000000000000000000000..ca795661ec73ff7dbfcb430084abe7b832ed1512
GIT binary patch
literal 23097
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

literal 0
HcmV?d00001

diff --git a/.gradle/8.13/checksums/sha1-checksums.bin b/.gradle/8.13/checksums/sha1-checksums.bin
new file mode 100644
index 0000000000000000000000000000000000000000..47cfebfd7fb91158fbbd054bd15b625afd7d179f
GIT binary patch
literal 28163
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

literal 0
HcmV?d00001

diff --git a/.gradle/8.13/executionHistory/executionHistory.bin b/.gradle/8.13/executionHistory/executionHistory.bin
new file mode 100644
index 0000000000000000000000000000000000000000..94410c50683dfaef9d61cf08f818b9b75ea65a6b
GIT binary patch
literal 46283
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
IXx%;k5A^hWp8x;=

literal 0
HcmV?d00001

diff --git a/.gradle/8.13/executionHistory/executionHistory.lock b/.gradle/8.13/executionHistory/executionHistory.lock
new file mode 100644
index 0000000000000000000000000000000000000000..947e9de7b78eadab32fd6c38826efcb95f30e4bd
GIT binary patch
literal 17
TcmZQxXeI2t!?Ur90RkidCt3qZ

literal 0
HcmV?d00001

diff --git a/.gradle/8.13/fileChanges/last-build.bin b/.gradle/8.13/fileChanges/last-build.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d
GIT binary patch
literal 1
IcmZPo000310RR91

literal 0
HcmV?d00001

diff --git a/.gradle/8.13/fileHashes/fileHashes.bin b/.gradle/8.13/fileHashes/fileHashes.bin
new file mode 100644
index 0000000000000000000000000000000000000000..922f5605a2f6c405a6c5456f00faa9e3e4f65a98
GIT binary patch
literal 19647
zcmeI3{ZCU@7{_lZgH%8Xq@f@gy4f;@wxSkcXoSSr(n`cKn8alZEWmU@#Uj{ZfuLL6
zi1P&zaUyI~k(VKFf<p!~QBl|&B?cTF3}Im#I*STY-emXooHIl3AFyP3PI6!J?en?M
zJ)ics=Gjb90@r!Gs8@^s>K5+602lxRU;qq&0WbgtzyKHk17H9QfB`T72EYIq00UqE
z41j_Ei-Bl*Ba6^x1S{>Bn<eQKwc44!@i_cb%>n<bWjW~Mtvkv82YOMyzBW!aigI}`
z$&0B!E0(Smg`r%LMDmiYzh_zGchBMH`2Cw3cMI2hj;T-{o=ozu6&YKWwMS0j`eP(7
zAGjZVa?Ij@pFc<Pwz{Z>x)`r+oOhDEXF6iUpKIEKa`{D)KM>97R%AS=K)EuH<d0hI
zePo&ZMwEveN&ceCVOwN_Pau9y7|EwX_xJUT=n`>#G0A7DqqQ4zswZ&HBe~;PZ>IjQ
z_dh_n@)pTmhj`be1rf<8S4c_Dm*~%)2uaGu^%9ax1Ejv(!O>MH4-X-^T&q5-I^Caw
z>*Gki{dtM{&7*E!C|4AcT$MT*wfB6_30yx(^7wwQHJdw}j-XtwCi%xl+<lG7&v^Jb
zT#}P3McD<T&)^IOzyKHk17H9QfB`T72EYIq00UqE41fVJ00zJS7ytuc01SWuFaQR?
z02lxRU;qq&0WbgtzyKHk17H9QfB`T72EYIq00aM(fwgpFKl)hC9IkC!0*6{J?z(gN
z#$vsE(C9`{oP5*Vw|CIn*?mY~#S004p*b}zTf8dr;Njr%x~D-43F<kU_^e{3=!=ZR
zkUunfWtZ?4Jyl@s@i*$hImjlQQ&gUs(vni?`lbY);-Sb&jPHJl2&$b;JiDeDEqLTz
zWmpz_U-P;{74GpE5%wlF5f?O6BisH)pzza}d1-#uMoc`!J($@6o1O1VzgFt*{nn4)
zSJk^&-c3D&h!=P&ffLUr8Wh@EU**K5;P6Vv`X{<^L|E{AgL5yNNO)T|Z1|zbXG4rw
zc)=xd#ln4Xj<E^DxypCK_+QDc_fJX6$2SNV;@8(Cd+ADMdD4f?KEiG`CCRf!YZO;h
z%>|Nnt1FsNTk9!q0GmkHx=V!<g&ynlo#xWk$CuGtO))#Bm)%|ZWYgo+(dAzXo{Ebs
zC%x}ox#VyF6Kz(2a%CnqY>3L?kmD)cJ90IK-1JkjIeJ!w`IXF!A%fztiHVfFkniO0
zW%v}YPMbO2ej5?fJ21gqY<eW*Ep6ZVn^SF9O;OW@dr^yRdT7~%%jtCu0Y+c-{+3NS
z{2Tjph?sRkJ$Q%ML{EHUVs59tzlB@2%ecseu4MKxi$`<pneWBst$sEh8os)wuRBZE
z++qIa_5ddEbOz6ZO$2%7#g<nqlT*sf_1lz%^xTKF2YxHTM{I)E;{Um!*)$Td$Fzid
zzLB2Du@bn4V>X-UsB&m~nGl}&By_&sZ_^<D&Swd6lTGBr_Dyns84gYR#5`aYOcT4)
MbS1qwh4e}M54&S!`Tzg`

literal 0
HcmV?d00001

diff --git a/.gradle/8.13/fileHashes/fileHashes.lock b/.gradle/8.13/fileHashes/fileHashes.lock
new file mode 100644
index 0000000000000000000000000000000000000000..fa8e103200126026ff1ccb5fdec261d751bef0a6
GIT binary patch
literal 17
UcmZS9y7_(Uuhl(k86ZF%07Vl8xBvhE

literal 0
HcmV?d00001

diff --git a/.gradle/8.13/fileHashes/resourceHashesCache.bin b/.gradle/8.13/fileHashes/resourceHashesCache.bin
new file mode 100644
index 0000000000000000000000000000000000000000..de858ac4548c115d34ba4fcf6c80261ed7fb3d59
GIT binary patch
literal 18599
zcmeI%u`5MU90%~*Gd;b$YoM$2Oa?K~8%&Ba$f$Rf!Ss5QG705vB7XxGC96ypgA|k9
zB$M4pc--5)x0lQoeNLToetplcQ|Ggu`5=hGuY3gEG0-hl1PBlyK!5-N0t5&UAV7cs
z0RjXF5FkK+z<&{llZW(XkBKHqX;Iw@g2_r!^n}OdjnmH4O?JG{EdCFs+M}iY_~0<l
z_lkTw8X3D>AAZmCxgsz2BwxwStON)UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
zK!5-N0t5&UAV7cs0RjXF5FkK+z+VW|lS_w^*`Lnv>?oS8PhXXTm-GAU@m4DdYd<^g
m`j$E$%QI`QpM#B^=I+Jsj%uyZev2!s&kynD<H_P}+VKrnU{8Vo

literal 0
HcmV?d00001

diff --git a/.gradle/8.13/gc.properties b/.gradle/8.13/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
new file mode 100644
index 0000000000000000000000000000000000000000..043502cfb2e42de5ec7300345deef06c7140ecec
GIT binary patch
literal 17
UcmZSnGyQ~5e}n871_<y606pRb8UO$Q

literal 0
HcmV?d00001

diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 0000000..9219816
--- /dev/null
+++ b/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Fri Mar 28 09:01:29 UTC 2025
+gradle.version=8.13
diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
new file mode 100644
index 0000000000000000000000000000000000000000..088ea7b0ad73642f19ac849b29e074a008e613e1
GIT binary patch
literal 19127
zcmeI%Z%7ky9LMpiHN+H?=*l8SDwdEB1kqe5YH7{W{>-vWl+;Kx6IljQC{}2tLI1=g
zf>F^#B_|Ujb4G!L3W{lSnHc?7qF6H-kr8Wl-)|B=5n&IC&%td!-uJsNcdtEMyde1b
zI_VH*4{>&h6$Bsv0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY>&i$JRDMV87h;}^1c
zX0fb95JJ6Oi@>TcpPbVf#~bC#lA8ZNs5z@1H(im2<gTgW-mF`@^J`R$oP|U)cjIti
zlQu$ck}o7?b2lY)hX>e=y)<9s-kPc$NPF5}K=b!-f1nR(vg}^DkM<{V?|9vQ(4k82
zqW$l<KXX{()j{Pga!;(}ZmExXJd!z8OZ!W>5BGI_J`;OCocbf~FMFSKR_9h(X^sc?
zH-+NG>La!-)OT^WJ-6A7{aH@xtGQ2Zt5yYNZ=(594fpS{$40H=Wx2G!j=Lhjs<-4D
zw#r@8%w3t1Rhm(MDOm1O5qA&qLaR9HJwf{ix%<BLG>6yiD5UxQ+(qx9a$AHdih42k
z^+glfy=6Z4sK4SKoOC-sdh?QTnjiP4pLp1IYF&Z9+$9C~$jeH5o}zAy=0tN(7<kdy
z6RGT>IXAc`x8<aK*nYj6=45i$PTedHJimMm^$pz9u7;(5>#Inn`IFo;J1TW|r&eXj
zU2~XwUg(N*75lIKp#2-U7nI!5876NXlDl-8`%$l-nwEyRY3c^<x{v0;_V;=(n(yFV
zI+oK}>pyam<~MTZZ$VHTkgwqr0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<
z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P*RD1j1aSJzeJ_It8D<%1r*(itCZx^vnyJ
Y?7q9^PF`4<`zz09&V25gyXSZL1pwRMRsaA1

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/.globals.work.bin b/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/.globals.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..56771ba7b42642eb9eb4077686fd10d1081cb4e0
GIT binary patch
literal 62
zcmV-E0KxxXk2CR0rjo+4e}HyDwI*4M`<Q@-bwRU?VvZs457CYBz9u#57vYz@I%fI2
Ux9a2jMB-TKV1od$D$ES@e;5oR00000

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/.strings.work.bin b/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/.strings.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..81ddf9942dc4689522f2676656f92c112e529733
GIT binary patch
literal 12250
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

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/_.work.bin b/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/_.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..a91fa75d5e00fdaf847c697bb7d34cac83c4e09c
GIT binary patch
literal 1901
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

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/buildfingerprint.bin b/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/buildfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..fd359cd61db5f74400e7c5d227379080f26aad7d
GIT binary patch
literal 1831
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
VYs{jInF%pn_kAmWcN4RQEJWyBi9G-S

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/entry.bin b/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/entry.bin
new file mode 100644
index 0000000000000000000000000000000000000000..995b5434fdddcfc36cd4006465ea6cc774162507
GIT binary patch
literal 92
zcmV~$!3}^Q3;;kFh&0iM^AtrX3T>c97}o`y!MoX}F;#9^df86#LpsT${qW0cEkw=%
lGOEV#fK*Ol)dosAG~BTgY)IE|g_U+%QHhI_>pti+#{6z?BO(9*

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/projectfingerprint.bin b/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/projectfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..3808dc2d7502a6bd2f552584e3a0bb9b3921e13e
GIT binary patch
literal 566
zcmV-60?GZ9TjLH#jk6P{%v%z73~q6L_})3q%G2lr)#ThNGV2`UF<;+z>{WBJ+($&l
zFFw>H#1^xNnlWosK%19);=5y@%HU=d1s>q&ny6F-kQ2}=grc}1WG;+cB|C)HaLdN}
z+*IT6FAT&lK+5)F2TEW(T6GI)=@U?ZB_1y5Im>l>(jCZy$|*;Dd(}1=_900OGuvF{
z#WoG%y?4(OenS(hxT6;PLQ{^%n{k_-G={f^%tmDzrfE}p146w!Rz-kl!@~h{y^odY
zwh?SQ{0R}Xy;gLK@ON*b=av;?(3A?44SpeHKP&pGf-Sse$)HIr$A6Re(Px917rKWV
zpMImNDW<`5@?p*1My%ywd`ds|LYMOrf1aKR#``t}oDEs>Y~q{UFv@2_Wi(4M$#o08
z9{E$3-(u~&uAno5;hw@Cg>&@k=T(_<qikAD@OOp!R`^$-kM`EJ2M|bl6F7~KvG@Z5
zRCx`nchH{cCo*o~0ZCjSepRptit7M0v1lsX^X){{hq1=eJRF+&{5EMk`qc>}lAu}%
zXbjYhq;ye4IAdb2Z=ZVjYIBK<=)|yvsuhO&WTE)Kmt^2=YcRWqBfLStL~aU6YecT_
zuotn;>YqxZ{V=zC>h9(5pgubKpd;0KkC>3K4FRJz7^2DQ`?Dk<0f7rIWYrDOMcT$I
zS+`uOEA>-*Db!(L^348BhhwW&FzNUx85om8pz|OoHRZ}c9XOoU9szmOP8Y*GTOlC%
Ez=nw#r~m)}

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/work.bin b/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/work.bin
new file mode 100644
index 0000000..7d6ba1e
--- /dev/null
+++ b/.gradle/configuration-cache/0809f6f5-185b-4807-b8df-47cb0fd70765/work.bin
@@ -0,0 +1 @@
+_{��=lLg͒���w�xD=��H���z�QbK6�E�+Il/b��zj����B4����`S��8�Oo}]��y�~��u�\�t�ĞqT�DVEq�G�5�b�*r��D�	�L��-d��C��1�'��K���%�e��A'p����9�]jPor�z�T��b_�OūxٙW�6-��V�i�y�?�ؐAB'��z'����P:�B���c���\Q�*�2��[��+ pTvmo��ٿ�AJ����yG�ؒ�P@f�k���`%w ��Wh�\ӻn?��D⏭���ł˂�����ټD�r]��9�<l�X�7�4o����q?ξ�e-�J��?��*
\ No newline at end of file
diff --git a/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/.globals.work.bin b/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/.globals.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0fe3095155868f3059e3e7ef13e8501b0e2e0ee7
GIT binary patch
literal 62
zcmV-E0Kxy>TwLo5QjKiuZ6dz4YrxC0XrsBF85qC1bgipF>kpyNB+PeW(xM=tQZH>`
UO$vL{&F)4EFA6~ubpQaBxb4>+Jpcdz

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/.strings.work.bin b/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/.strings.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..dec084bdec9856cf91be60945156de9c2037eb50
GIT binary patch
literal 12237
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
bUI{oWmEs|Y0+04%2cr-ps66sfA^k$o={AjS

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/_.work.bin b/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/_.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..04a0f7a4ed0a5cfe2720e4c5429847d653f51307
GIT binary patch
literal 1900
zcmV-y2b1`gMW&{AMt}h{aM=B@2^rWw3@8mn5=r`WIr>XM(>^XD;Sx(IGJv255<2dv
zQ*2$>PFtC=w~F77RB}sQXJyqhmY4~LM~QE1M`9(lKi@n!Stv&PiDsRqrwJVJWNy}V
z_?l))#v|9(bGye)PQx$`42ulMR$yA6J;A#}HFgiw^Mo>PW=A9JZ(p`KJ4JeKJF*Yf
z)WLdty`lTt$s6fWDp)xTZ<ayHy(6Ll46)w%oUG4aXs1uD02izLtP?RRc4J6s*o65W
zsT~+w7o}|s!&MHy3d#^L9VNeKs5Egr=v?}<5NL-Kv&TPE-8oLojr$XujMV=F9#ccl
z`ur4j0&ttpT&ce!k^A;aP3hL4J*2D%LF$JBVwaOqKhu#MpbykQ^PRN-exm_Km<^kX
z=BGMPr!1*v15J>z=<IL~RllW$?zE?b$PsA==yDdCryb4Okr?tqK}?4QnB=TXV%9rv
zr7NLXLT``&I3Z>+EaTFQlhq?am^(RSn1w;vL!4>cLeF1*yCv+QfT<qK8!uiZ0w?EZ
zfqgpdth$;?-|uM7W&Suto-3$B8~YwfSa4<lHHa^PxV3I0)1iuRc5q_b<=%w&#V$Nc
zFM;z*DIU@maKFP0n&0JgjEd;x8`nzs4;#<+Ce^AW$uWj!--AC3y6%D@#DjwtO^3P?
z84SLBq)k+vIpYHCle(l?e4}SbCw-pxGGHXmf>94q_#FZt#~g+&*&&;z=cxa0!ZH6b
zmI90l>{J_S1C;>yIo$mY(P8l(y!S~Z(U9u^SSj76uh{Ww_Xrm=zIWAd)-RsO8|8Gv
z*UySek(y_bwX3ccQ-s5qy9f+v`l}~K$(3e&trA%>jvcwbP8xpaOJH!CSqCP5cxvih
zyGHsHu6p>DLDxtTOGT;N{?-%N)=U@hHMFC7xO}VnhAc~7{6yoid4l&a>hi=c>_{rv
zfK8)$?&unNPmcrKUsFQH>!#hF`oHo9?KPB4dTkPC_rz~H`I1HiRQ+Q^43sS@{cQ{6
z$jY09x%P^XAD#y+wW(df5riV8fAFSw*#xtmHTFfc1^-2QweEFm7Yv$sEmH)@Ilb01
zP3V!if{2qX>;KyH5??2aUZU+8os{)8HL=;Q{CDeXj6^NKe$P<&7*8quxLc*!GVy}0
z!bcFZyVpC#Da^!hu6^o0FPs<v%EesU=K#o(zZ;rEVS;@|gzN3U=a#uP#+uaXKihoj
zQGI?`U@ixq=6pGXMM+n*KSCfcU?Lca8(p)~2m7)~J1?R$<^Y0xNe-X-$$IC_3Vl#2
z!`tefdG$y9qZNZpfGiSsF_w0QV2M;ELkur#E2fdsn^<_hxI>kZ<}-9Q0v*y*_VhJ&
z$a*0hs%K@LJ*Q3c#0iw{=D<4phmia;O#!-)p*R~K0?d$wNiiyE=R~Q^xtW1+2<w}e
zg5I<gjwn}HhFzR77gXWOI*Rm>4K5`}k%jq(t3WJ!5IoG+a%19aO4A|M1a62@Bnc!c
zdc?@d;joA#fFjkDYbGQyVIYT1H~V+=Vslf_#m19U&Kz|FISr5I&A%Yi^m}4;>VL^?
zkc29Zw+a)#-AS`6yk%t{=*1)?p-z#NmD^?9G1X742wng#t4k^%%>d_2PaY2RhME*?
z@BvT+xYXjjZL(>}eUYf@Lmyhm2!*9)YHAy(Q7E&y{z3QGPx3gP;gvE`Y9VG#6CBR4
zB(8}5EkwR1tzH;odI;u#DJjyCFtX6}(Sw*$ru<+`v$tZ%Nu{W^C~QjwX#RVy_yk{t
zFa?~sYgw+K0~x%NlTj6Yt%YBn79fsjT7}X`NLgS)D)D_o?I1DTwKU7f9SLa|;);wc
zRLOw&vDpYhl?!zn(tMUyw@LWih)6I+bteQ-tZt2rztgAitEw7@agRhrP)!7BbZj#&
zX7b5V+|ajnTKEU~7<lns6=2MYy856Dxzu9+Nhp<dnkZyf#D!>_yt*b>?4j<nJ<ZF9
z+YwHK+qL_DxBg9BkQ8ue3PPHVXkzouxnK8Tq-yqV)m!Bl5y`#D<Yr^9Zf!<rM`HSh
z$|@q7Lh!+ryn17A(gh>kdZY9qK|E3wa;G)Uwbhf`Q3z1(GG*q}y1B@B<YppT!WV5n
zDg+dLz9UKG1f?43!FZVm@v|=*NzR<<>U>|jI@!a7*YMeRn!4M@Vif;0Mls)c`^sEf
zXIkp#lIT>;ZV*e4rRaf`9$Pv!ZmU3mITeXSd-*oVq36jjG&M(vVQ4eN+u(pjDVmbH
zKR02Xf}GcxlS}{4K^?5r^r;rmEgW9)+fOj{NMG>A|NJN(#3rbCl=n}YjsBb2h&YFk
z6V@(-VV$hG9uf%_)UO{!&Q>!InzdfJfn@{aGew;KGOa72lzP>BiwqblJ_=CO9RKe{
zBZV($Sa<WhnHaiutya@}8QsMnAf1wugDMGvt!W$<U_TTM=(G4I0pA^9B+aDS5gWn!
mHzT|6>sEbT$IRCuKzub43vytyctxUroW%-#15xSE_s<YNBB0m+

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/buildfingerprint.bin b/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/buildfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f36aa391bdd6f1319cf8c51c0e5c5963bfef1013
GIT binary patch
literal 1831
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
VT{P9?PdEJonc^dkxdqMOv4y#>ma6~&

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/entry.bin b/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/entry.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f3a323170209ca53b89891defc689279c542189b
GIT binary patch
literal 92
zcmV~$F%Ezr3;;lQkZB?V?<ojUrGip5_-J=G?~ES1b<du1biQ8B@YT$@+sNyuHKf7;
m7)4UJp&n%kUK$8-Xc+Mzn2>TGwjvbCqfps~n$MYDrPL2EOCntW

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/projectfingerprint.bin b/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/projectfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..16739eb93b2296e2310170b499a2d75a256c83c8
GIT binary patch
literal 566
zcmV-60?GaA%*z@ko2`RS4?Wn}xB6O{b6#_x6ZqjDUDLXz;jtTW=;(UhspWd5^fZa&
zPdMSo=+GggIp(fpnYc!zjC@pvSwZ61Y8FQ-Qb?8}9HjK9>>Zab3Clft*Z*Q{H|l9x
zr?lkKkna?v?*17^!*4c0=Tf}0b}S<jR1Pk}EqiB<<OEu*AOjozL*_87`U#nzn!m&P
zduwF|D@*<-{}&Q^yXWCeeCIhJ@2G6D#Kx3AM3tGdL!cC{1LKNTe6k@4@*OV`hy|+b
zrAmlp^Wb!QB|`mv2Z%}@cyZUl1i8F#ce@}zqov?GwIsHt6DMAzR|Iy!w_Nctu#GA%
z4r_2p<$|${L+m451M#w4@0I*qHWZ?*AJVO?qTnlT5blpNL$j93j>pE<ssA1TxFHGO
z&>!cw*cf&|dfQtS9d!Re$ZcpfVnSsloYe1REE{%RBCO|NTznv)?C$4DC5GrJp9%p7
zd1Xh=h2Qr=$8@rwF`wdw{<$gWB~x$_uqUy=+i7uYT7<GUAcx<v-8Z5@n>t1w`ZU^N
zONNR;7D~7)?2zx0HO1(C0%I6%%_me-xo_^uc(6Y-vXcMug4hUDr*p&2XGW5bK2e1@
z$!{;Y%8j-Mdk=cjyJc+>oeYC!@#pS{Pb~P7#PVM*^_kY?4L<e(Ky0Sb6o&(Q-=jTt
z_WIe3a}L`e&{B(2QA_3*%lz~%4}a&a#Bg6_xpaAfjku4Stc-QBzrhWaU%_vxPO3Cl
Eoq0qb6#xJL

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/work.bin b/.gradle/configuration-cache/102cc785-1d0d-4dbb-a688-2153e21cdbf9/work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..0e0287aaf7d122352a557e3cecc291f1f6015295
GIT binary patch
literal 357
zcmV-r0h<0I>p#$_OE3XH8NA5ZW)MkeWRtaV9RAl=M7UNWg8=~S&MBLKf~j&zPv0Q8
zeeMjJo)~LvxA)^hVMo5Dcn#&bv&WZdx2{lRH^DFwCph5?3k21kPD&j`xp<WR+<Xm|
z=mh4nlk{vse&0v-<HWaTR6bINWP<|OX%IIFMM=Hg5jhup@$2@={ew6(pc^|Hvdd`@
zj3Aytqk17P{^+Y{k`dk<wnfdhNl!Un)8Cpj)6*v~FNs%-PB}8lq2q`VjGttLz1Mbw
zb&uo^n~sg^nKgyE3V>OEF=F_5(G-;x;Hp*n!`CGBfV1ul9&i>0|M_=nY~jOlGL_w$
zSxpdT(XvN-k!qNSx8jf9KxoSJjSOy+pl}4UudFjJb*tdhhuM?;cn8)nYt8Y7TEYm8
zXKBmcg<lJillg-pbt?sj0D1(?H7#J~OJk<yBV<YsAMUM6{u6m1`;c2H;Erry3{qIH
DJV>r~

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/4hvyddttlxo92r0wto9feha2i/candidates.bin b/.gradle/configuration-cache/4hvyddttlxo92r0wto9feha2i/candidates.bin
new file mode 100644
index 0000000..b8814b3
--- /dev/null
+++ b/.gradle/configuration-cache/4hvyddttlxo92r0wto9feha2i/candidates.bin
@@ -0,0 +1 @@
+6c6d7154-1c12-44da-bab9-788cea5132b�
\ No newline at end of file
diff --git a/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/.globals.work.bin b/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/.globals.work.bin
new file mode 100644
index 0000000..acc1a84
--- /dev/null
+++ b/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/.globals.work.bin
@@ -0,0 +1 @@
+T�lX卆^)~c�����D
\ No newline at end of file
diff --git a/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/.strings.work.bin b/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/.strings.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..e48c164cdbe0edae362d556eebfdcdc20c291aa8
GIT binary patch
literal 3106
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

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/_.work.bin b/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/_.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..4c4b1a9314b8abf58047161180d0825b5c6a3af1
GIT binary patch
literal 285
zcmV+&0pk8?kQHu2Vn&~Ng0eC-JcuvR#*Gy{dU_2+nX8r)=1Mk0dUgQS6%K5Tf{<#!
zNH0yELbQ1xixSlY5^C1D@N}Z^Nt&9eiUMkJ?S1OOy{A%vei=S}Xkg=%eO0V9sI@0a
z?dbW1&^^ZUDH4O{v>zy3xTtc2Uh_QiX_u{GZ02VJ2ny`ud&)~T&`HfseW)%q4(Mw!
za(3lAJ((B-J*9fxy`!F1A%JDGPlSe+PT%_$fuq|Awl33hQG|F&4)4w&1~+zTG#!2X
zSPB+Qp*uvr#jw&MYe$_tHY-im>44?bWM5HtsHN(b>m6ofRHs@2Eh2`c3B^j}j=rW2
jH46|!;~v)Vs@6k{n?jkIAZn_44=Z+G@jM|bos@z`4|jx;

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/buildfingerprint.bin b/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/buildfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..deca93148dd0927674acc14de54b2027555e2f3c
GIT binary patch
literal 2113
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

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/entry.bin b/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/entry.bin
new file mode 100644
index 0000000000000000000000000000000000000000..744792af84196650e0afc947ae118d598c9a1ac3
GIT binary patch
literal 92
zcmV~$3l4xF2mnw$P-CkTkzwFeSkdp$b%x%XBHN8P7opB$wr4%>q$lTMZ;Zg&2pYOG
iU0|CQO1^_jqa8DD0t-rghORDI61r#~tRAa;A%q`g1S1Rp

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/projectfingerprint.bin b/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/projectfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..935e9b23c4cdf4f3064d8fcc52a3511ed5a479d2
GIT binary patch
literal 823
zcmV-71IYYvPw1vu&;23ohJ^-(N0~A*9Q)3=QT@|F0qBtlH{A8wqg)%aK!X2-G+G+F
zrUYn+m=`-e;~Ebfskcmcd05H~QMUpQ{vJ6Iwmurd|50z<EXSZX*3oRC{OMi~Q_ini
zGowIe-^o^XG&Xbt|EJJPa;*1EJP+)e(zu&qlfdjdrRpMYG|p7{DYU*H8C^R0E|9LI
zd10|mc7d|L4@UcM{er8EBJwR0K`*Jm@hpYK_F_v9+J8{dKN|X5*8NucQdRlEa?Wsd
zp!Nc5I)Q?ACakil$S7vw$J}>xb2}uZnyhzIOI-c;Mv`8xg;5(4l;NrSKPQ36#av0{
z&@;XCHDJ?EhD4B8bCM#Ul(zJsr+e9*1}**MQ&>bw{&>&;OGTB9;hkmEj(kbppW))<
zO7mV+=G_IJw+UPmcH!kUnbBi%XfEo!-%Q&1-)C)hk02>2>eCMS_bu9={psD1w>@Er
z4siCb@{@g}ir?6)jiXBfGhlO)Ez>||`v@h`j%&cPlZ^Y{qIk@zNH~)iKu&vR+H`Ij
z&mmu8x-EhT`@WX@DHw$V%Fph^ItT-lR=&?>VAA+T|6_t-+iC=T(ckRawhopW*E}mq
z%60$C4@l=q&_|05F(o!D0S})*BFX;@%`D9Os;dzWF*-$tcM=psy2hu91VsyPM|x5q
z7(Z89{sUhIPpE7ETn(J#TULiDpWy$44F`6Msx+P$!C+j(Mu9F;I)7VVTV15~1<!OQ
zBM1ND-b6mRP$;xQFV|$TD>1>tTS-jWUzQItTd>6S(w=;1WIfHzwKr5M$|ve9v%8N4
zXN95?B?i^UtD`BLYO#UQ6bEnf1N3--`&Aj<0RZLkgJDT&#T1HOxY@<<PIESSnKxqd
z0~B}sMIbsM;Y;A13!v~Tcv@nY5gJ-CsohUX(hMh{Sn+nd%x;3dgNhMer;hU0C)~Aa
zV}H|Gx`<+6XS}k_IYa+;)J-FT86peOUGSIZw6hdQdWhGzlFKpP!ir&M`XhJb>OV*H
zOLFW`hih9YDmoqD%mHzLIa+JH&r-$+$iBIP*_F^r{L)sSiM2|2IDNku1Oz1#NFhtT
Bn5_T+

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/work.bin b/.gradle/configuration-cache/5dbbc9a7-8a29-4ae7-b3f0-33b5a5e52031/work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..a2c3290e43a5025e347c74ee6bd03026c4f14694
GIT binary patch
literal 447
zcmV;w0YLtg&fZ`ACp9qiw{@I#Uymg^@qQYUTvIWrlBV<}%a-uZi^DMtq&sbrp#=DO
z&@c|_F+fh~j{G9vQ;X3VhkKZyC_OtV=Lzp~AAr$a)doVW+b~%7k^ky$sJ;1Fti_vp
zz_BN$-y%&6m<2S59nO;uP>+*_C(_=T{<Ytj7%AfB)XNE|Tb&i|4n(Ho0ZR5$xl&ka
zUDHcIS|ut|%DCA0?iuDGUs1Ul_XaGri7lk0=?ZbXR@WfWxE+{S7`H29i`ACj<FDP}
z%yXw(PwwTi@3{UN_|0Zl*-G*sD%;8(VuSEqH!`EeXsJI$>L9Y5f3w`5c-R1TY?>Wo
z7ZJ-`%7I+t>DXn>xOXrGVT{%{7`EARg;4L}*tIUUTDv4<a-Rx+g@S{MwNTb-uvGy+
zl`D;LD_v(#<TFd>8(K!k*wWyY1Mq5~RAxO>F6UD<U!sbi5+~=Ukl?<8TY|%|`e<rW
z!TxS^(NyTq=7bk~%-JZ>luZ5=lEZ;U`<Z_nzAPt=SL)W%Z#79Yg*UgBLzI}J&kxS6
pdqcr>>oViGfMan8m%*lFb~ut|uiy;oc&k%7WNd$kIjDknVS)>_=HdVV

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/.globals.work.bin b/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/.globals.work.bin
new file mode 100644
index 0000000..3457b7d
--- /dev/null
+++ b/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/.globals.work.bin
@@ -0,0 +1 @@
+^�ꩫ�ev�a�r����+׽
\ No newline at end of file
diff --git a/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/.strings.work.bin b/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/.strings.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..162a1828c11217e02a2b15a3335265692f104a32
GIT binary patch
literal 5632
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
aB1k5As%(KnLM1wfGyXLxs@EqHgrB|`KK&#B

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/_lib.work.bin b/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/_lib.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..58234edaabbc1df8c7ddda2a6dac7259706addd2
GIT binary patch
literal 1020
zcmV<Y0|Weyk1t8_P!76cQ_$!CG_MNWUb;g0YdT{fDp=xUB%z_U#@7JH(zumh?5C%C
zhiW6bW}=O@$;(f*z(Gxv;V$)%d4m7SdpY(l0OW*h1?ecm>Ymu{sd&GXq}#Rg9U@t>
z%Dq$FwbiB@)WOB>bRat#POm7ewLFyYLnt8HIhTM3uJAZ|=}(%yl$<*u{s;;_`Q8gN
zA9*kP&{KtCjrY-QdD-;TGRS<IZ%tAbGWXf^H{w`YD$sq03K)75NCSzntk=jv78l#K
z8~B?H`f}l^4MW=yT6zNFIW*F>$U9dP2ChJ<P08V_e`Y1N8U;mEyX?4xwK5Xwg_~U?
z?}9x_YDLr|!3qB7lhw9Kj@>yk@85(?tX7A=<M_FEx3m>x6XbHm(&lS@Mun;=1!KWZ
zUs%BHD++v&;KjN@l~l%nPJuvVP1L6`pfFC*I|dDe3hD=)1G&cv*Klk?tJn?lVH5S{
z@-Vlgpy;(ga#TmYTbLZLzP!=1dz@Bx&8sE!hGX+0M%oG_2`csJmPEfzjih~l=uDSi
zDm56j!xlw|;VSHbCd0oUIN(i;rYqw(w|bkY+&b0gGdqlI-48SIyxhqA2dtw0BrcK~
zXX4qBIO0!$o(ax{a(I1_e`J}*poFZ;r<o}Ts?pVXZ-(a+>1Ma-^PSNLB<f0p!YIrM
zOk8$I*9l`}Pe2ow<ubL_m~Bb(t{D%&FennQ9TQ+VG0It__~tl6i_#LDb^(k=WEt!Z
zR?yq*Xy@&LkihEIUxSNo9x!tt0^DZvAlD+ML<nEEv~)$R4@m9Cb|6bI*?1O@2B_~8
zza$P2yVXLv2@1tQA_Dds5!}OL4%>5Tj93=V32xD&eMCj~ycvK>M}Eap;F%m#O8roU
z9kYRcPy%?lAe=LGC=ymmH%-Cp84;D(-6=We@D}QMeYp}y9SFA~39#GA8!X9=$tc=L
zu2l7AjUY@#{)|{h?;rUb9AEee#B+IH|Kjhi0>eB)Z2{ubTu=^qfp}|3*9sH+9iV@Z
z*b%O~fe(j;p64L3?t9<Zu2N$Ia||nw#+P{_s`(hh)o$2B3LB-%l0lgZMSOhYJU)-U
z<|RCSpV#r?xjERmut!rCrO(U!@K{~|6XotAlE1_31otkc$=6KdD`;-JrLFPeg0dre
zTv9ODT^etLP*jJ8T7*fK<vN2VB@k!RT>d75Ir8y|mxVGYho<E>*}S=u2Hq^Xo8e=y
z{&&4E$L|m=8<}OnqFZh1`5^T!=S7kc=SrYt@(Ay$K%<1_flQzzZV9AVQbi<F=fb&8
qldTRP)>yrqK5R7V)J<Ay@uji)WM0yM&dTH!o5-Wln4yx5OCGuGTL4i2

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/buildfingerprint.bin b/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/buildfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..201b4841227fa6099013ac190d0e0db1052d8139
GIT binary patch
literal 2113
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

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/entry.bin b/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/entry.bin
new file mode 100644
index 0000000000000000000000000000000000000000..d96d4f63d88205a53dfc897b739f743891b2b19e
GIT binary patch
literal 92
zcmV~$K@NZ*3<N-Ukm<oF?`Z_=q6lJ*(MNmt=1gxFh>Dl$k{?oRZUoQES)cv0mZaoB
lnN=lRR9i`5(t{K^92~iUJY&7PttcWUR+O!)>p9~!#{4)AB6$D+

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/projectfingerprint.bin b/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/projectfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..aefb5684b669ba38cb4a5f5c06587b8ce7caf94d
GIT binary patch
literal 823
zcmV-71IYZh|FVclV5e)C4z)!k5=Wkf=+Ndsq%w^U8znsuEkf)kUIrU0b(NObD^hnt
zFu%{>wf$9fKEOB$5TiV*t&PORD-PrN`J!w{(_G)w`c+~MRkUXKs+x3K4Z`@_OQ2bx
zQzE%m!Arp`T2YbtQ8G`Rod;&uW;)a|g!+w#XHt0)Sx8s)INN#e`nHa{fN;jSs)Q>1
zi&{e~0c3$Jd-^Fu^^v-&hs!FF&o&<?<QbAJjY^s1X#hQ!v8$XO_(@N+bpis4vAt<Q
zRUqrdk9Oj2Wpiav*Mu_&KGH0Pz`#lJ#RPaWRaVB0A7hLY{uo{~-qBpLwy<IZbD?m?
z;R`i94Ye`Ee93Re(WMOdy|}8-{lA1X*l_~BuO}i&>vUCa65<JRnZ*9Nyyk(xz+7p2
z6B+A%>sw0MbpJG>TrI@E)bQI5d93B#fCMH9$;f5~2GGrO1NbHJeOl-$Kmdbh=E&TC
zALK(WANhD?VLZidT7RWPnwfy#Rr@cyujZcguRyQ2R`Ax#&tU^hM$vo;2Kv0C^>VRq
z$l&}MJbU^AMmC2od_@6Ur=^x_M1!mHJE*X*oGj7YX~EaI+S~A{&cYc&vuJe7ITDmv
zCuQLn6x^3Qtga^9!)MZK!?}FkzDy?Ht8*e|N;NHRKyTyO5S8T$v!4Oa4`mHoBO{3d
zp3VKyn0`Lwe+yuB_xUq>E!C~kO=rdXRT}v8fALvdG0&$EF#^$iFs}g^w=sqAk$#;|
z3>ey_iWTB(_uN*Og@qTV4gKA)o!^*}jX~vsq|e(Fy~p~D<NtXDkdu~t9Cb;%Dz+E5
zK;hW4*kAxgvk8`^q65iAFmEZi21Kp_NylgWW}pBERPRD3x$g46hg*!~)_{tHO(pA!
zSP)Vy&mk`r@nYz4dz(w!gXM&(&X$K0tGeGZV-vy|iB$l1iwRPfan{5=RV`_w_Rh+`
z$}nQiOK*;np&#Ju1rJqr6Ufv2<u;p;<B5LuyTWY9M_J=%%%+|vkNsgA9m^SEo#VP>
zO&k*L2@^zF2+62d_8Cz1s?sAr4CnK}PkrRIM#@U8YCS{Y)WP1pfKkv{oG!@60xdT|
BpsoM_

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/work.bin b/.gradle/configuration-cache/6277d4cb-02d2-4a97-aa8b-c333720dfd7a/work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..258e7a24f0ee238baf2f953adfe0c7aa75f90086
GIT binary patch
literal 456
zcmV;(0XP0QeGY@}#1XyOakc#&*g1FF^D-WfDShLTC{A*%<BVyW=y8LrRGH!1&d>}B
z;gIdqZ91~bKx<x~M}bC7_-YNlc;mmy;4B8i|29x;=!zv#jQ;(QMLYqwTEUN663-vE
z82)fD%LZb8o>kD3=6OQ)fZJAblPu{(deS6-+;%jIkD!z}4}<;4hZ(NakJH}p{y&P3
z>Emz>G6}KNts5+&(>8e<;`VcuY1tGv@{yg#Qn5COZ>z&+K9LGUaqQ_on)QlNXuT@t
z=SEMnWsgUOZUVxSW7DBkR0A~YXFKcBIcH>8mzyRIw7WnAIQ_I)iQ(N@ulFR~w8EnD
zQD=A_Q8_z4n3OcwRbxR%<<i%-83{PJV)sS$KrVPh`uR27QbTb+-9l8^d7(Ant6rF8
zym0JfvuegY@Oe!Lu-t_2TU@`25CMrPkPg}8M3rk1m{AJkK(i~vRR9ZfVC&yE7_;lI
zzunGstY@q`NPTgpfp^>c@URu|$q5D_NdG@haTg&*uqHAuKqWdnVLH{WfT)Irau~2%
ypf5+t;cr{kPubSUNR62S(HfZst|pTE1d;vACbX0q<r;iff<XX}O<K+4>ik`f&*t#}

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/685mgn6n09vojr2sffwrpu5ai/candidates.bin b/.gradle/configuration-cache/685mgn6n09vojr2sffwrpu5ai/candidates.bin
new file mode 100644
index 0000000..e949960
--- /dev/null
+++ b/.gradle/configuration-cache/685mgn6n09vojr2sffwrpu5ai/candidates.bin
@@ -0,0 +1 @@
+96e7369f-9457-47f1-8304-05bf876b89f�
\ No newline at end of file
diff --git a/.gradle/configuration-cache/6b2wdv4910jdk5r1pwy2wgbme/candidates.bin b/.gradle/configuration-cache/6b2wdv4910jdk5r1pwy2wgbme/candidates.bin
new file mode 100644
index 0000000..3fb71fd
--- /dev/null
+++ b/.gradle/configuration-cache/6b2wdv4910jdk5r1pwy2wgbme/candidates.bin
@@ -0,0 +1 @@
+102cc785-1d0d-4dbb-a688-2153e21cdbf�
\ No newline at end of file
diff --git a/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/.globals.work.bin b/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/.globals.work.bin
new file mode 100644
index 0000000..0dcbcbe
--- /dev/null
+++ b/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/.globals.work.bin
@@ -0,0 +1 @@
+-
�f0���Jj�R&�Ν+���
\ No newline at end of file
diff --git a/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/.strings.work.bin b/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/.strings.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..9b91f1008a19f7a4e52c47f56368f07e4b3a884d
GIT binary patch
literal 13375
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
VefO^8v{bxdfBkHBj!ZPaLf%<82Fd^c

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/_lib.work.bin b/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/_lib.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..9ddfba18607678744b01c8696ad2924cd4fdde0f
GIT binary patch
literal 4248
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

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/buildfingerprint.bin b/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/buildfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..a54b5c49d679360496d9650e995e6897434c63e0
GIT binary patch
literal 3094
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

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/entry.bin b/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/entry.bin
new file mode 100644
index 0000000000000000000000000000000000000000..86a4fbdf27d325288d519314219e8ef90c106abc
GIT binary patch
literal 92
zcmV~$+YNvq3;;kF$TZQ!eM%`(BbH!&FtR_+;N9efW}<ZU65<rYsezWBpL^ujd&pWC
l3YulUp*CHa>;RL(2PSL+5oPPct|mzcO>`gXb}sTc=YBfBB7gt@

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/projectfingerprint.bin b/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/projectfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..a1ec97848c846ae9f9377d7078b70eaf5d57e0a8
GIT binary patch
literal 823
zcmV-71IYZS?G=NAtl>9#N~v$oejN!T`Smt@`911=AV1JjmM}Ii4Oc$+ZCN})4h_`Y
z`!$z&Yu!5=8*ZhH<V2ffh9glAn7#pMq%usZ+y84=07Mi+pyZ0kn0B0#$mIJ(95V7t
zR10)d;(xcPFpAKPJU3xHE#m&+^A0wPMvPcm1$W&fm0!&G7tT-#xOi5+=;d#Uo4Txj
zc+T_R>eFV%!aShyDwmo&H||<^$4w{KX5ZkgsRp&!*hRBs%WSAJWhgvGO})n|1<E|G
zE`nTfh;s1&wWmsl{=&!N&~xoui7RbTzK7e6jo+YQhZ{ZCOZ0<O0bv$6Yh`+~=xaOr
z)`hOB`KM{oCw{=q^uS9aLMWCo0)*6HYFmI=w1B7Wkmx%dG0{s^S69A0hxljQsN_wC
z`;2UGH<C<z$)UC25SsJ_&nM%oRq0dU9<aTz`GRxQMo@K~Ua1Wmw7RQ6y#!hvR(oK5
z;FR4Sq~_utjEt3o<_vh4rk>`Sgll~|^&L<pP7}EAB`7eeMve0TcXJcvZictDzY?~~
z1!;kj>Mx9#4%FyhTa!BN&q8Trrx?Iv%FAwgJK6BGAOM*_$#b8v+Vud^By%BaHSgjV
zV9(K^g3#hYPQ3Ms;ORJW%jQMADODbA5vR_M8eaSA;bh3G0WuT~diNKGM~CbOFVVP|
zhy+9IR`Jh(Y2tzQBBq=1?oO{qL?n|YQPIe(Ur16<s%=>yZhB#0+v{)_tSPh54OX8x
z<dmj$|H|P3k^JkAg+oF?Yp90wqJTL?qkdV1`GOwB-4Mp`36n*J<wYe}9Ed!@rQdnJ
zd<#yQ-RG&=_p%PVw^%q+z-Z+1rV)$qmgvD|JEXzEd<uI^%Dd+66I#$vwn%xJSIVg3
zV4jfuO;vS_&3GXHo5H@lT`pS<rk^A*U>T@BXq3-cwyp%0r`i4tS`?e}Aev!M!za{-
z7jWKzuV+9Jo-xT&RSLz@u=yPzt(h^z)S*O4&=4C?R!zn2O3oyeXs1eAvd$G*As9SG
zN+pbkGa<CQcGtudJC%we8VXboqbQyf1<i43jU=_=LyQNdPzd*YSh$ciZFa=41<Cfd
BpGE)x

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/work.bin b/.gradle/configuration-cache/6c6d7154-1c12-44da-bab9-788cea5132be/work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..dc9386c4abcf1e3ae11c1601e75a026f9154ee9f
GIT binary patch
literal 661
zcmV;G0&4vud|J@PH6EY23-$$z$6HH5+ERT3`;eGZ0YWOa&WAp6CMBMIYr!u%Th%uR
zf9CQx8!)zfsU$-d-<ENO#=~A*`)&Fl9*5-1^Rc{wsy&CXx=)OG{;nyhH}ke*Hz%sq
zXzW03aQnkE<2Rhk7pSD7l|?1^dAk!j=rrxJnd@&PmmfP>a3%C?Tn<>AbM+5Zn;0|w
zN=e=Iu;yd<ydD%6=~rLI7!-t$7uG*hkKXbT<>0OArY4F_v0u^JNI$Lps#oP^gmu9L
z1a<V_*#P#$s{W>)Y#LOOC)rl_#u+FVQi_BIz($dBP)0tJ7-%NU7fP~t@(?rN#IT#g
zG_M|049Gb&b}m|D2WQ&%`7DI1H6lQK_W7|+kzdTYXF9<Ye)kJnGn;@UB00tKE$4SW
z?(Pl=Kqoso_k?jGb#MUGy*zAw?j??^x7DfO_L8{ckKM*5<DW;kX=%L?Z%D`K+nN&b
zHN<^D(`$C(7ja?-ka1v1jaRQ%%A!av8S2AD`<W%RVfTXHg%$jjaqYJwtv{De2=pHf
z4Z&=uinSyAf%rnGc*{Ij7=Rh8^Os;jRJvxO6ZLzj3W(gg1E%o@cs9TIS{(QzO<yh~
zWV2ds_T`*0(<OE869&I}Lu^qT<{0dGUK2!c(}Z?Hcd?3!u37S)LYr*l7v*>7K6)2h
zJdaZLuK+_el5x8nvO0x%Uo(&wV??UO{97dWB`W03_5vQSyR0))Fgw`WwHy5a0KcuP
zV<Fpg-w?@Jz<{fa+(&XO{#&_e;0)S*!8Y3`phZ`6R`)$~U*d_>s*tMytU$^N-0V1&
vzSP)fLcY;2u$weIEbmX0Y-3=#Hn1q2ydvozl)$?i=9T~THs{9bcUmns7iCFb

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/6czuitwtho9y27nvd4eawu40i/candidates.bin b/.gradle/configuration-cache/6czuitwtho9y27nvd4eawu40i/candidates.bin
new file mode 100644
index 0000000..6d73c1e
--- /dev/null
+++ b/.gradle/configuration-cache/6czuitwtho9y27nvd4eawu40i/candidates.bin
@@ -0,0 +1 @@
+5dbbc9a7-8a29-4ae7-b3f0-33b5a5e5203�
\ No newline at end of file
diff --git a/.gradle/configuration-cache/7kdhbijltiwsjnddlavxu2zpa/candidates.bin b/.gradle/configuration-cache/7kdhbijltiwsjnddlavxu2zpa/candidates.bin
new file mode 100644
index 0000000..383b907
--- /dev/null
+++ b/.gradle/configuration-cache/7kdhbijltiwsjnddlavxu2zpa/candidates.bin
@@ -0,0 +1 @@
+f93c619e-5608-44c0-ae77-793c324d124�
\ No newline at end of file
diff --git a/.gradle/configuration-cache/8x4ypt5nue0899in5q5whr6kb/candidates.bin b/.gradle/configuration-cache/8x4ypt5nue0899in5q5whr6kb/candidates.bin
new file mode 100644
index 0000000..18052fb
--- /dev/null
+++ b/.gradle/configuration-cache/8x4ypt5nue0899in5q5whr6kb/candidates.bin
@@ -0,0 +1 @@
+0809f6f5-185b-4807-b8df-47cb0fd7076�
\ No newline at end of file
diff --git a/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/.globals.work.bin b/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/.globals.work.bin
new file mode 100644
index 0000000..dd0a55b
--- /dev/null
+++ b/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/.globals.work.bin
@@ -0,0 +1,3 @@
+M�4�YG�4#����
+1z�
+
\ No newline at end of file
diff --git a/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/.strings.work.bin b/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/.strings.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..8fb1e5b95e2e2c29b70d27d680ff574ee6218df2
GIT binary patch
literal 14997
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%0Dc$W#qO5
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

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/_lib.work.bin b/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/_lib.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..eacef73970dec7093b9e4c9833dcd6796791162c
GIT binary patch
literal 5268
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
aJxe82N_>p0Bthx}w{?0(SRT3Ddj^&085KeR

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/build.work.bin b/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/build.work.bin
new file mode 100644
index 0000000..c9a5b92
--- /dev/null
+++ b/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/build.work.bin
@@ -0,0 +1 @@
+�U2 C��'���?��s�9�
\ No newline at end of file
diff --git a/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/buildfingerprint.bin b/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/buildfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..dfdeb78383531889ecc08356060e9bd6fca41066
GIT binary patch
literal 3094
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

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/entry.bin b/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/entry.bin
new file mode 100644
index 0000000000000000000000000000000000000000..749104dc118df8f64b2f39c8738a8fb00092c6a6
GIT binary patch
literal 92
zcmV~$+YNvq3;;kFi1dRvP(>=m0tV`9Xq~}3Z)u|;{#nPlkc2wjGR=}Hhu2z2twboO
jn&Jg}Z#f1Xpj_fW!p^WD%j0TOCJw0Fs@vsQ`7_4+L%<@I

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/projectfingerprint.bin b/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/projectfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..b24c3ecca41c0347b093e575f39ec2012c273124
GIT binary patch
literal 823
zcmV-71IYYjBlqC`&)GIET+e%0wy1eDeJ3;M4*oYYAk@*%Pfu7iN%8^00$3616+=H1
z({FWSC7LKgfm?zw5Nmt<O&m^pCw7TCQp%&!nwNAi4|y7j{re)ceBmIKW1Nnk?ff$@
zQU8q<qj6FJgD(ycfGDG$@a<cml`{6JuYOFS(cnIx|GsX$C*58zs$mQV>eK=!DQS|Q
zM&o2NYCypniZ}ZKilC5*<kV3!(KTTdp%7%Nkhlj+3?HLcQFQ?Hfi@YPl-B-DdM}u6
z@fhF~S#vms+Dt$I{y?lpT`r_*qA`qaihWK_tpE=cL*pmWSeqGT`GvILXsHi)ByclR
zZJtJ3Yb`ZG=S<NyY35eZpiN!i%zUy3-{tHr-cF-RX<8#cTAg;f-_m6qEy)l;kXn<=
zdnifhH&@%Y&DNem=x#|Gv*KIh{{)M<#j&UcsZCI3ynrOPW3)-osn%)VA;9d5l#~?&
zCa+|2#GK2BF~#u;)wmj}0wKV7;McYUvVwTFap3OhsSn)#jH?X}SA(BRgw&nnbXkH|
zoXyE3JI94+>)^PB9-MM#v9sO0_Sj%;PNt#|Rk#ThYn1D+vQScrNBqdVC8;4|B@kH=
zUIxs5KyBilC6IQVwbRMII(8~8(bv@8w?KC(ryDRB{!@xoz^V}e%=A=6fX}I$g12q?
z&Zqv5Lg_C3Fw>5V;+@#oEf~L$E_2hYZ16iv18h7)DNv+vl`6oZS{PV8{S@h!O$_+H
zE=fPvzNFO;%@?2lG6~(+IER)<1gHG+m`qQ}DIZXS0C6Y+7;MHYD@y^5A3|A4u;Wnc
zF@R(@SlorPcs|>%4cv?Oy8)j%s=|zw*Y)n4tGWfhU5cjK&wlutW9&~g5p>iOK1u}*
z7>I&VHnaAR6L9@nqu(*{aP0Lr$XaIMeU<v0yaIb`O`d70JUTorfyl1{Jka-qgLu6u
zbdzk0noJeyQejrIT0Omim=OUWftHHiirm*)9;1$&SU-imNat)&4ZBDb=)8x9vd^fm
zfAjRs{EwFFgR^+~7lkQF=}>o_R!c5iey>7+vS8w;8*Aq7Y5^Esf{FZS>oJ?lY?;;i
BmDm6P

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/work.bin b/.gradle/configuration-cache/96e7369f-9457-47f1-8304-05bf876b89ff/work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..98d85b816853665a46f44fa04cc61a6edf41c3dd
GIT binary patch
literal 796
zcmV+%1LOQbiu6HcHyrgHZvD}Pe)A!q#Fm8(6eRuEBy8dxsB8yv5Q7Z~s=+E{!h58Y
zxb4N1;<8)2H@${rTxLAF_n9yw;Fq@zNk~b&dxz8z&@McKBQ){4?l3|Ihg7ue;m`R1
zyi@hd1i}mV$3FP7)_NWEGK7f(ef)#a1SGKV`DPVuPXeBZA(UI|`gy$zs1(H2SLlSd
zbx5OQLd_Toa(>4RlMxAl4iXTl1#q_TXpq+ZPArgQ#4a+%R|_<Hr3Fl$mli{8ylKvO
z7gY2fHa!jBJM&(5dKNY8orS2!6ObO(Z$tmlNZmJ^1$$e}CG2h6K0dRskZ70qHifQ6
zUoPG!neezT&i5+>)X~ZvJ$Ue+)kp?D<oOnM4XVow5VJsYE-&4IF3-)qt{Td#ayXu@
zGmkZ5U!R>x<m49rQTamAY`?7!5sQPL$K0APvFj=?;P%ZFvt_v1n7fE(6!!L)fkokc
zt${=T4V)Gh1e0+C24M?Foy@|SVEB(2PrNFlO;w!90@t{P?L)z;G-;~JYA>4G2KDjY
zVk8Yft~X8V_z7VvIHGqQCTGXHrgo7)!NO`22(5}$-aY`-9ek7yx!+(q1XF}tm?x@L
z9mcFye!qukP}HOgjr~Oa=`2LPVzwpe2HphmNMY8-Mm7w>;Y=4z&nmz=yRdNu8H+nj
zb*m#m(5K&}KkLo&=a?N8dA-ZO+xl4uG!8ViY~4K1j5IYfG9r^{o3*11u&;A}EDLn9
z=Kr0RM!l=d${)t$kz2>?*lfvXG%kz<(Y!6FtyReTGd)tm(&IKEMHGzZtMY31)V8sS
zX3hO!*qisZ-XEldR_;IL!FMz?0R8r)gbl#!yu??RKfA$d>`s(5`&QT)7<xb6OJ8UC
z!f)JUzVYq{@;haH@y*EWQ<;Gvvt@f>P2YOg6o-xO-*xC!(pMr;2EO-|BiXFtirph3
z2m+g-lT2szogAy$t^7q;|1x^o3YT_{6z_&65jh4@=lJ06v}t&JKy_R7_Tu4&|9!Ax
a`8%)bsoFnjF}UAVw6XDCmOJM)%}U4<kd@^C

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/amg1wvcaaabrt4jjzabw7fe5w/candidates.bin b/.gradle/configuration-cache/amg1wvcaaabrt4jjzabw7fe5w/candidates.bin
new file mode 100644
index 0000000..ca4d8de
--- /dev/null
+++ b/.gradle/configuration-cache/amg1wvcaaabrt4jjzabw7fe5w/candidates.bin
@@ -0,0 +1 @@
+6277d4cb-02d2-4a97-aa8b-c333720dfd7�
\ No newline at end of file
diff --git a/.gradle/configuration-cache/configuration-cache.lock b/.gradle/configuration-cache/configuration-cache.lock
new file mode 100644
index 0000000000000000000000000000000000000000..3fd0edea0291aaff6ff7c5f83c28aab825baba75
GIT binary patch
literal 17
TcmZR+Z}jV+_O^YC7@z<EKaT|w

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/csrr7nvdo4rldjtfl3c2jferq/candidates.bin b/.gradle/configuration-cache/csrr7nvdo4rldjtfl3c2jferq/candidates.bin
new file mode 100644
index 0000000..3156cc9
--- /dev/null
+++ b/.gradle/configuration-cache/csrr7nvdo4rldjtfl3c2jferq/candidates.bin
@@ -0,0 +1 @@
+da5353e4-2da1-4b2a-8d76-9f7a80dfac3�
\ No newline at end of file
diff --git a/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/.globals.work.bin b/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/.globals.work.bin
new file mode 100644
index 0000000..d2721d3
--- /dev/null
+++ b/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/.globals.work.bin
@@ -0,0 +1 @@
+����6�ԩ&U���,�bj��a\���JLne���kh�?���b�
���?UF��nܜ��^
\ No newline at end of file
diff --git a/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/.strings.work.bin b/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/.strings.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..fae0e8b0bfebbf8f1d1f3cbbef200ea058f53f10
GIT binary patch
literal 12246
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

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/_.work.bin b/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/_.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..071cb74a2eabb52656bc03cd7986c81470ff15d5
GIT binary patch
literal 1901
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

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/buildfingerprint.bin b/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/buildfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..e0803264681d3dad6f32cad2ba16ac809dab0def
GIT binary patch
literal 1831
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
V%a+52^%EF_Ft4y5jJ}ld&&{S|pd$bP

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/entry.bin b/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/entry.bin
new file mode 100644
index 0000000000000000000000000000000000000000..60d7d1a12bbada14d3c431e7ed34b45285830df7
GIT binary patch
literal 92
zcmV~$Q4&BP5CG6Rkl7E6^Q>%HwxYH%+?g|Yuea`A(m*n+$7jNMJd1=~nhUSBu;xe*
lQFWyYj*>TWT0uEdMURDHL6*BqS=qBg<(#@hTHwzZ^8-CVB8dP1

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/projectfingerprint.bin b/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/projectfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..2202fa37e6b64fd98d9c06e6d344481425b3598d
GIT binary patch
literal 566
zcmV-60?GYS3_bZ=gmYaprDQ=<vn&>adlyU4Z8;X3l80N6>hg6R(4y5t#UB^($!2Mg
zdK=bbbw(k!KbCR$#D%PM^~l-L19-#Yq;+F`Cca(s#@2PzrE_(`#$`naIc{1-c~5Tl
z!+Zj;kD0F=*TxZWGMAo03B^pX3Bt2dKJkQ>iT7Ha129x7mhYY3b=Jw6Ynav7d;p>@
zx#2f+Fmqq;@CCKPjs|Ta^Dbo7U%JXN=uNtmxp&Jc>{j@K>~ImDVfK6afCDBEO)UED
z*X`6z)>cNK<lGLC8TX8ILB?%e3JnjPVIPpMjiJLRydRZ^Fx=SZHIZWa8V8t{pY{?T
zJo_pZboNuT3X91I=@&8jhNZ0S86tQ#=&R*+vF$fVrOLDEJO5)BQ3~tK@>4-)a`m8y
zGDHS~Tp2@@^u!~&#G<Ep&^73fiZ%7Bk$_=~Wp@`GY+ofOzAg=RH_Jg@kxiZRF7^&E
zF=ie#LD<bXg>jcIhDH5#BOVr?6W1)*P%A=+1Bt==cHes?tcX)|rSW6#%q;q0m4UaY
zQQv5eE<@a~^CAC>%Di-;6Q}f!8cWvc*0Fw+F(K$*xbw~gtjfwdo+11HIzEPPQHr_N
zFSIzFsk5VRL9?&xEOzWmaaV=ooeTnfC~VkS=ztnfW^M+=tWe{tHkR51<Nq*WzrP@y
zG_4{_>c4P?Rw8?Wpp>a&?O~iPYcs3vm39Ys{$*erzCvRSxzf1o$dxksnq`~1zLqs;
Ebec*YumAu6

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/work.bin b/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/work.bin
new file mode 100644
index 0000000..0fabf48
--- /dev/null
+++ b/.gradle/configuration-cache/da5353e4-2da1-4b2a-8d76-9f7a80dfac3d/work.bin
@@ -0,0 +1,4 @@
+E[�$��qQ����>b�Ԃ�X�^C�RK��	��U�pY��hΖ��p����*�R�ze��@dV�e_WKy=T$��_Wf��n���!|�R��_� �ɘ7���2�w�4|�\��:�}�H�-����y@2Q��K�Ȑ�B@YT�
+yh�G�l��s�e�,
+p���e�.�Έ��<��b��
+T�`������.@�";�6��<�����Hܿ�z	M1P}���9s?�ו,�'tG��W��:w���|ɪ�����������=e�2�|��74�]�C����]��dT)Bh���Ufa�⌐5����R)r��)���KR��F����cC�.h(ڹ�A�׭
\ No newline at end of file
diff --git a/.gradle/configuration-cache/erwtyj4abzfi70xys5njdh4cd/candidates.bin b/.gradle/configuration-cache/erwtyj4abzfi70xys5njdh4cd/candidates.bin
new file mode 100644
index 0000000..389ee6c
--- /dev/null
+++ b/.gradle/configuration-cache/erwtyj4abzfi70xys5njdh4cd/candidates.bin
@@ -0,0 +1 @@
+f64db575-a480-4fdc-82c4-6fc81d961b4�
\ No newline at end of file
diff --git a/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/.globals.work.bin b/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/.globals.work.bin
new file mode 100644
index 0000000..82e8315
--- /dev/null
+++ b/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/.globals.work.bin
@@ -0,0 +1 @@
+����R�P<-Op2�0�X�|
\ No newline at end of file
diff --git a/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/.strings.work.bin b/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/.strings.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..7d9a2d6e415efc655ea94cb22e504a643027409d
GIT binary patch
literal 14949
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

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/_lib.work.bin b/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/_lib.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..be1b036f2261e6e77d7bfa9bfee8040747ef64a8
GIT binary patch
literal 5131
zcmV+m6!hzRN7@L8I_=)+j-I}WVV|;i;72_>9@~?+3VEJKyIV-w4qUJgq$M5TEs#7Q
zld|2W(tE4Ca_s|3u4S?FrXQB1AQkh=vv=iq0<OL}T~D{?@dkwj)r5D#yz0U=$<4bV
zs_2@$YVO@GLx%=6iz1-={i5%97}}0PR_L_$?@6y9Jc--9-l)5(b{XCE0HTU#@F7UP
zX<OQ4nIirA5Yf0T1+6G*^y3B+M?_8`d;qtfyCBh2OY(LhJo#Z~<!4b+410uOK5gY$
zEC7xGyXkVxmctj8{PFZmiT&P<z~#Aj_IYb<6)=Qw8g;i@T^xN5^4Q8<Jr-e$&^AYi
z6-o}bvI3ykRHo$)o`3@hzEdg=3{5F5C4rPlk@of58r*G*Rb2;{ywzp0Grd0+2`N*W
zI_Jm`HRS-4X-Lv&n7<|1@hpm55IoqtA3y9E%NqZQ;#Z$M8Fu{tSmJ0W%v>i*=Nb%6
z5?Q4(wC_=LH7RAS{o3sPZ@UDcQg?2~6uD;R5m&bpQ?l-t=e>kW`jD6#DxaM{1aD<>
zi;ZQZwn*#;ZF9Uf8}FwewChPK8ApK0=Jy=k=nV!agWyRUi%P9Nk@1k%!;|C~XS^@=
zi;e><#1su-@g6+kfDg{m>cM|LhvSrGSyC8e1@H;D*WPZ2PCbk-jj{ZUDNi{W8Ak12
z!2ee8&ZVb8M5yMPzm4S!<oa<=WlK^Q6ti4f_Nf=!jKt4@Gf?V|Qz6E5_;Lg}nnw1E
z9IDtM{ggNduaPI=40bI{uY*iI9^F;)e8C8XZ_fL_!GmBfB&Pp01Ug8H*=pDInk!-h
zOPBP9Ehr6gJXH!7=x;?vjlXI*zkuXA7<vlVIo1NBS?j0B-bH!jEqqJzVIwwLQ~K;4
zNL+OQE(PJcVVsR$(q^f5%R?UK5U@h^VL6({a<xm4j}gBUYYPeW=1S-1z&2VA2G@Ln
z$OpR_uwa><Fh|;k>i{n>gssYg_2+-(N}Z#EPdXw{mCfoQUBgPC0`1Fb{n)J7V(rj3
z)Q9$Di6T3%SNMHxlqw!sBCL3<8E4bxxX~s*ndg}GUX6q2Rx_R!cvxv7_7fY=kFK)Z
zu_9hY`}_Vf8!J|trb;%9ID&QM>opqsDml~U{=KC1Zpn$zTR2w;$xWCY`_(b~&Pj$V
zGJK1|db^G32s*T^JJOoMU6swliHCn*P?&CV{Y?d5@OjS3EquqH__X^0g|^#C!+meu
z*E<pBhl@nv<TilFeFVqPxP#cDuAIbvI{(xOfz?}607xiw0Rj~MNU#@?D@|me8QN^|
z=klpHQDX6J+1YRXM3auc9(SYtNOyiYYdtiR5<WG#3(~XB8#AYSA5T?IHEE*uJ8Hcf
zkv;0MJ7UAQ%f&Hg4bM0sSPJEHEu%!Qp?&lg#}1N@GnPBg11}B!G}V)qWx_!A;l-O6
zC~e{BJ&cYW$LahUZ<8n0c8cxS-JJEXaG&Ar=VYxNOM~-0^T-SpMUU_Ibbx${CG0X6
zyJH#!^vn0KK=OSk4q(5}(V-uc5>_2V>_5c8>vH0@F?qALGAEeHzNAI4(O;u8mTGGO
z^33sV;tGrm4LYflDNgtqsV#g?=Oj4%=09StxwhSz?G3pm7$vABR6JKpH3AZ(?H1R4
zEFdc{z-3p9;+d$N^mMMI=!#wbYt9|XY&{IvX73lq{5ZORa)053o4yt#WI<^k6QwWN
zkOnBi>a8oM&3ABD_T1}kz*>EMvLAre+HiUrW>VFrJYl|B-fOv=Jn*#1Rygl!RSe*N
zvIz$+9eA9w1CIQ$mj9ni;TijCH|ix8A4+QHJS~Ho(;V>r0kH{ds0J#|5L`?)rqTlG
z65pj^ZZF>-wdgL1)@lHq*%asUD1Ib}yPngEZbpwJ@%Hk5eJZ(Ien~fzDX1JOzC5f7
z*{(s%Q}-5LigR{IMzzUtY8qQ*yZo^x9NJs)4*gV*cte;C%8Q=sYEs^bFMXQQ7GQYe
zh5kO?>#16pIho$pvZDQ2Ie{yB@VG8)e!eI+0YFeB6e9OH7SGDc;-CRLeZgfL0Kr))
zhdjF!wu8Oeu8=a5kiBvSEi#R+9k~)MWC#mMY5GZq&gqUc*Q_KgX^q%qiPs?B>i(W9
zCRuu+0IQ6L1QWAa%H<eobIuLtHO<}zX%rurx=-j4Ba7O&Ej{D!|EWn`YArT&{V#o9
zBc``nwwGd`!31pVo9s7XotWN4_tR(YDrFEI8eQ{T)6Hxb6qo#`1rxqe;HF*8$Wkr8
zZ?Py*AGQ?(825b>*gZt>o_ykwjYc(qf?NKJ!5ZU-6|}8LsE|?A()04a%_^DOm`W^>
z{)!v%(WMh$HR-ubS_w(*rzzd<<zNMuBNXHHlwx|OB7^%(4|qT#B(^q{Q`qdzB0QWX
z_%N_wgT}$yTOprbsPV0b&865*wiaArV?limxsoD^W9|ili^SJUQI8kwOeF0G!cK5>
z0q>*A{Flqq=e*l4HLND|P8VTls3G{1>0KCijWo$8QiA<K1FM&~rmCzmtZ-%xW$E&W
zS-4A265~)vySA!g*nOC+0eJLk8*Bc;EkYaRz%nR*ORS%xQWo}3hU)G*5MLf$1}EA0
zMawRAI4MSjD0@}4vv7fWcgdd5d7yWyJ~rx)52!!>JQj|dHh1T8M<rPQ#ke`g@7W@t
z|7-rtAinrRmOr<OVH5zeLya~RZ$z57x{V|-P!kQMWNH4~_F`oF2SkYYeSU^RS=1>~
zH0!t2Q0uRbA-2Ea@CY>rO7dL!i=fe)Z_oXrku->xKUwx`22xOQf(N1QAZVNe+0_+4
ztI5}3sM@g%bQ*t2>KafE2OSP>^-(t{IBz+#DdeY+$<o=J-f@%1bcq~e@V<|RzUEhY
zoAMNeeh}u*bt*<2^q*&Cz_ejB&~H<G#QCqW=IK9!x<T)~NIy!oapl_$z?6K<u!6N~
zsm^(n-!#o#!1}g?pYrL!xT|+)($W3l@ry63*BThDJ*Kt3rzEg2z@9>tx)6f*^0Efn
z1}x5ONZ_M>$<RtEr1vaAgL?)lXcQa05Nd)7s4G!4v@3q@eB5alykJCvZ=Oz+<YXd<
zxUI5jy!-%a*TRbxE<a%GGN(c~1B7J6ry;rD=bg|S(TY2lmi~WAv(DvHJL`P>hn2XN
zUHmE4I*T29_e>>NKi)m;Akz+s-mSo(JQ`NgkCx?K72d&2czgULIr31b2QW3l@&w!U
zon+Y^_77M^#nZI8RK?xu#v?(3#Q_<}ccfcOmQPbj#6#Qyfq74Jh(hUhL=ngG@Xfv5
z+@U0_kO+Lueo5)Q{TT`5lTv3tHCrGPN@s^(0)&>8{o>EQXZfTfzy90AsOU|Tg+0Da
z>T9)0uf_Ami?79fj?#vJttAF*JFPM$rfpKV#PCfv5XTJ#6)VV`9;Y`F6A1qGee}Pl
z2~*8m@PH2Olhhh^lNb~LzE{N*K7TzQsQq^CyUI0a`#9X=VqgCi0rys(fiXQ&mYfaa
zNrTk|g{yqy;sA{1$zXV;d#dX7Ek(ziizN6Yk4<&B;nT7vAE$E1tzj_TvwOl23K7nc
zcG(d`%p>%{4LytIhYqpgfReOL6USiBb$ehyLHE=oQA_$uB6wKgN)O?(sB$49;CMoj
zjo?Nrf{HNTB^SIX-;Q1qr<=f~*IwI!A4UH%%|vwHkFmzqQC2W*t5l00J4j9zm}2y0
ziT@#16Fs4UO1`$U7cBN86&0+@OsS$cCH|RWwi{@4Xb9>xndy{Di$!``7&Be*E!LUY
zZ(t4(jDV<4S#v$1vu?ppETn|m!U?MX&0)@CVXuHsHLPrBM>;$oKQ_$hd(uG*OosV|
zh6i%zPdZ@qKJz@&WHzy>m^i_~MwBQl27j(jo{uP1IeY<qoliRZhY*U9rl7%ASSGWh
zdNr(dT|!?}Da{GRe^7520p9HHFCrATgjh%!S-U$SrcIZs!5md`(J_p240gzKZrZay
z`t%}2ifoBg*@hf!Vs%M71r(=YR*fY6Ch<r7x~!{4jOS;oOo36Sf?@^=iN)IA-e%%a
z-PHmw6Iw@F;dX|!mF!tKPkxm~*~Ba3joORZ8W|fnD-S{gR;ajJ`xM}LPz2NXdrZKp
zA0vF$9q;MZPjv~)r5nM+aRhrNW%{}e9uP9|6`rA7dj64VjnP}(yfJsz$3&>=h-xPE
zxy}MjU<}kH2w6l7)sz%T@LWDhV59T5N)rX}W@7)(^Tx7iM0L&CI}`?gU9P^!{ZG?Z
zh!%he`*r_BSy0MMxNTz>>B5`tF29YXTujFxD~pY@N8RsN_c=njwu{6ebsOn@ttwT~
zP4$k20qheiR(5~2<;}T_qAg~k^~K9h7#1`*aLrl8|L=HlUz$pZzJ{@=<_9{lZ^Mt2
zR<&@0^-e)*zbha#&z`syA%H++W%Es$PlcVf)yy&Ok%SuRvSZCoe5BEEK&EcN<pa#!
z%dbO>^XNf7-N6_zLZzn)Z$o?QHZGeQ%_a!w_shmK8z8D5D{=(r{>(=!YA%8;G!CAC
zt!6OB$Tk6om9uSD19|Kk`Liv`4GQVBXDYr-yHO*HrJ``v5NPIfsIm7GThD?+I4s;o
zZrBo%Y>_R1=h4ScCF_rw<GvDju$;4lhJno>fVJ$D*Y*p&XpTw~n;X|dIN;BZ@rC6*
z#jKFh<SdSpZee8l=x&{oW&H-(MiW+74RjY3dB_(_WX_=4dnR{y?NliDl`@6@uBTO0
zqr)*)rTTd0+{0}16PV5@LRF@R-N@M}eO?3J9$^f!?HYgNb|J|HzS!#=&)z+2WfSO*
z{JW*}tDaiIZMzPKaIH(<L+CJ)i$4Wi$Y^ytZ|}hvW~#|l02P5(?4;U$W@pW@YHJ<V
z$6%?}0zOv;js==?hJ7b7bKio>n+9~qMpif};4?eM!~s(6s(F)O60+n8(!=;exs3yd
zZ9!+cp+ZuPKZSL8PDA-WkgKP8>RM(^eK$fMiE+ZyaRlo}*2>kFyO%NN7Oo}?s)>@C
zRLwwDSZ%4l`a;Nvl>z<L9tb@9aWVn4(LHG<?<|@+M%%GV_){EODRUWb!sp5wR-@hD
z#o8hM8$1=35g0r7Bh06TD}5$T{z7A!Xma|fljOfyEW!sYU^%??C`2S7+zonZ7tuk+
zLUQ*ZQv4eU&dT<$pM`&{o<uq|%i6P$_uKf!YRg}Nwr>;-RF@aF0g(o$fErUM(^7@^
z?>R{L_-ye_z_<iZ=SR<`)iQ1c1HJomPRXfGT@an;`MsaMT*QogADcskAe4S*9~+Hz
zt>uAp<7_{>xy>XjPWe_ey6ME*xyU_enje+bi?=|L@&syQNHt`>zQp^h1-9&!#5z>t
z+v2P>v=v~VuoY5JPVXiua$Z9?d4+G8RRn$IC!QgXD){>ypbT}3O84S?jAMcCsLUYZ
z<1U?-50$d7$e?H4I#{j8zFt?jonx#0;FTjBPvV+)XNHg=9AE=TDDFjG7Aree#(umG
zA`G>FM+OGqUs^QaS_I(qkRXKSlY?u7OSky}<Ik41qDt1#%{8oT(i!8!+5hH|gzcub
zx^olo%HmE49oPO`6=<DG)bGIY4irw)d&1Pmg8uydZ!0ie3xkTkj*YcxqWw79A4sxH
zfTaNQWvro%+mP+6kcjHq{k5N_@B>3dvP@$cAxlf20pwh5pLdVP(Uneq{2W(LA&ubP
zOH97Y;9=ueR;)<vp!#o^L6K^LmhG#q6gn2ws;t?(9*THPn4VTNjnZn5djb7%VNY~|
zPD3Br+s<HmPAWj(DgoEw2Z{Q!YM}Lj8lo9yvEY|Qqxs)3k0)YuHwXAe+lc<`a3~OK
zR#A{Kg~jl+wDNRZ76zF8+mC&W3#BxTrqZ7LZ23`?e<b?c6-njffR66-m(RHOE#PUh
zh`|5?noP<2TmcfPr9lDC$dItl9B;$-3$!yb3Q8aPi_WSSgAHTSVA!i7Fm<oBS6DM|
z%;vyfIw@i-?;&;JN>-Yp3GpDYMKl~?(+*Q7y{H-At{<h0@sen1qFxR=DBT+ejSIkc
z7ZVQtfjR9-C$vr2Xd!R7dWCr6GJU6=I1R`~B`;9UY88B;SxxdWWCE7=7Z2-Dn|&Yj
zTsDKkqeVM`=QpDe&S&+(>jN}8`oa)#?yo$l7P@yLc%2=Hz*{<(bT_B+o#TYt!I`VQ
zy)k*t{_s~PTIs<3e*sD~yPIu&A8OBWM;Ic^(a-#k5=hjAH08f6<kt>buWWkjjmi7t
zHIec$tqT>;!(V(%kf2brX9W=hU}&`A%CYf%Ic&pjg?Lyef*$wDCgmq;AiH6wYS!{>
zX5aB?A=;S|Ezvbpp6)$%<hRQJgZ~+W>#!to>3rK=e-b&mJd!Dpz}nYl?|5lEQ6ndA
zMfK3LZ|0rWugZ8=g_~yQDqV<a3e_vqx7vk_Zwiv~{*d>_1SAQtbuumK)MH$%FJ(6X
zDh4JAh-8Wd6>upX!Ir%E{H98H^~JXn07iAJb%RN~meiQV3o<cO@5Lw1H|I7hoVF3@
z?TY8R)+UAHBRs_+_H6`)e<6TkD6R(6Qc1yHCi_DBYTM8EylqK?&}D!|Mi=*xT?VLR
z-SOk-S6@@mEsL-x1rr(*yJVWdq+41>Awpn}9P8r<Hu*35kZny==2^3L)pDka?1L_v
zvyK=~HpMZo)76iiNmD2igl)fU#TBdq+6D|t_Y>(qy9=3f3*svd6l|$AS;8s!&*50s
t1R4KK{?)h^CQVITB@SSEQ{;g^@=fLLicpghFs5rj72@r>ivs<hpP5mS2r&Qv

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/buildfingerprint.bin b/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/buildfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..808685e648b7f7ced10e8b40077f064d4656372b
GIT binary patch
literal 3094
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

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/entry.bin b/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/entry.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f934950902c133bc20c36663e3a545d364fa1685
GIT binary patch
literal 92
zcmV~$NeX~43;@9PK@w1WP-tQsv35yB?4!MTcV_V!BS)PF4eG>8i)*-pG@U>1A(hOK
l(Jb)|wU?cPDVStd+^`D}%JEERG1(-bNjax_Tv1-<+z&NDB4q#o

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/projectfingerprint.bin b/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/projectfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..923edfea6006b78c5bb03f30af4dc8f141230489
GIT binary patch
literal 823
zcmV-71IYZCiNnuueGmVgG#ZVbWlse$62aOY(o&fEYF_hd0#K;9&g4r`@16}Qn)Fif
zy}*W4AAm-0-44;w#bBy+o6y3c-nq;zi@mw-^A`4lUiN%+Dz02xnV>sulpLX_I=dv^
zekyqzRlaG@Mssy;$FMEbKqFR0P#o?(?+o`qL-0cG2-F}ul{29hdw%LFJ~Aid+fcBv
zd{$|^5zEj71rM)hoMWuz!QBkOy@eLJ#e)rHLN&B~JW3c6{68wD2M>4CvwDm+7d^x|
zvL)jTrw8$XT||_K2aRR_I>;ot1{Ls{eI)a^-X@KT;lIa`hlKI#5j2Rsmj*hdFCwz3
zGA7@SPdw=Tcf)pm>qqH*R8CKHJC7N1aU@<yj!}98ZVUxA5^kz_!eIM4X;an&AdS{3
zUubwb_-z{ChpO<dyYh6*^iS;@p6DFaIOE#V+M#a&Zr+fEhy>nLr94~@e6lqHS4x62
zCMk@!JHEKIJWQOIp;&Tc&CkCyga=8WHz)N!U_EQB-OIIWOn7<IG01p2=&M1ylKnvg
z6}MQhnCY&?)6--}HKZ5LU(N5x6DLdvAXivzPbUU1Ks8a4CWS!`)<ojFJXYHF^8Ved
zEw)O(oE<wJ>HK~1d28shQzOLGW~chTDQ%<;1X%b*9+F;%X4UJwS%)VOO8|BJl%Yk>
zHG@xgXRds1!`gMjwDdXU{iVdqaU{oR!o$)t1uX+wWAB1~;$$;3E0RpnJS%}Vr;1bn
z%%&Fjv87OV<Z~&jYFKME5>a{w7B4X^63DT@V<=j31NypvJbi1!D8G_++}+4NQ1)1a
zy`SfOO5rqoJ5~eiX{e?{qr;n7UC%O{9{THJ7q&huX|VBtQ|op4*b$#Sw}gR_95TRC
z9IX-jn1Onch|s7ylKpYEweMhQm7EQtEA)Xxe$_0drteVuXruL9!KFM+@)-Msfq)?i
z3B6jIF>eW0^>D@}sud02p)`bz!RR}{IBhMDoi)uFqNx`r#(Ye^K8Ge;Y3u>SpLy$0
zsI<J17t9i*L}XPj6%JFMJsLLUtyn-vnJ3@sLki6k`~=xjF?Kb#H}6M2^7>q!#5%e|
Bk$nIF

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/work.bin b/.gradle/configuration-cache/f64db575-a480-4fdc-82c4-6fc81d961b4c/work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..2e22f193680549e999f2c92fc73f4d1cc79d0cad
GIT binary patch
literal 751
zcmV<L0ucS+2f!g~@;)BL%w5T!OKJNco7PJP29Xyk-sWv`+O%Oab_8c4Fj`UxgjVg>
ztW}r{sDba(GaY1P(h4Ft-Sg9>=2gk4E1k{N%Y>$3fQW9>JL=S9k#Co0o3eu)P54_5
z-SOw9MxL4U^SWb2ko;BT7YWmNN?Pv)<Vc}m2{^fLpMUvM!l%Rk$C}~=^{V7oYQr<Q
zgGW2-rxg@3M;-RiSq^~BZ4JSu$F)VQo1OW5zg5_(-xB~A?uUn^dB9zVXJr0l%0y%O
za!(McL<&b<@~$^KDcC(O_m_m7cj?fzKEM|2&^jcr?Efk0RIWW_<}unMcJ|BLLk@JR
z9mtHP7Hh-aB|8uQhHqq2#Y1!VbbzjIY*>7QIp$dw_$L=lMsvTLO0zE|sIfuU2r7Ih
z5JzxDhx~BkK6PtmRI=5hms<JE5YF509<b+*cwv)zQIf|n5_4I>d|n29s8(HJj3z?2
zJFVoNI;Jy1O#&u>k|NHl4K!f$YMgWyc&tFhUGj)@-cYMJRr15$Gn_)RG!D*}JWUC?
zyw1}kZK7aVnN{nAypeq<lbP>_0=2_1_eriPJJ2=g{rq~MxS1pKHCO!+pC9{xx>8c{
zl2w=~KST$0*s|`baMqE*8+n}Z&pqb|J~~cvW)`I#B{`OHYZoHOm-VNXcR5cvM`h^D
zA)Q)FTBOHfR`nkYSZ~<~D{BDju0%!hY}-v%XX}$eFIh`sFHUM^3Z-!H|KsBVIXx=`
zp$qk6Nr?&wTBnLqxE!PAvrm9+gZZxXF<PMJT1*{0mV+Uxfdx*9H|4yR;-G=RwEzfV
z%75xue3JYJvm)?cOROWNfBDp(PGxbIQH?7?Kv-(`1tvu@@D#x43KVZm$G3Ppl9qa9
zs5ie6WJwlWWLOnwM^r%%@y2GkfiBIG1!#FEqtkpA0&&Hk79%U_2j~*3i}D63(yS<D
h!=wimjyaq$p6M_MT=pR;e<nP!0i3m2W@?(e=(#yiZ1VsB

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/.globals.work.bin b/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/.globals.work.bin
new file mode 100644
index 0000000..c2b168d
--- /dev/null
+++ b/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/.globals.work.bin
@@ -0,0 +1 @@
+o���m�c-�����u1�G
\ No newline at end of file
diff --git a/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/.strings.work.bin b/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/.strings.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..72b07155bfacc564846aead07fece4599b4fc63e
GIT binary patch
literal 13356
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
C;`_M(

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/_lib.work.bin b/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/_lib.work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..d5aaeed2e05ac82dc45c6abe335e84e44527a97e
GIT binary patch
literal 4159
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
J1E=_RPV9cS2;cw!

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/buildfingerprint.bin b/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/buildfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..009d9e10b03bb840cdb1287468c9bb32596bfce0
GIT binary patch
literal 3094
zcmV+x4C(Vbq=zguYfpXZ2-(r0mP!J0J=WI1bJ*;l8z(4k&CLQN;;>O72spw9!YU#$
zLz?Tb$OJ?4UvF#SO`FJ$o|?Lso(5vvWfL@UgW}1%3$zG;F)+n2z<5!lKZ1Ra0W17x
z`((vxFT93UleQ}BA$Vsl9K-qMv9}E{elMdJjQyZQ7b2FZ&Tjh(VuTzNliMe@nw1D=
zZ@0{r-d<wP|EzO*(-d!Zx>aQ0)$81pQFszKA}4|k3T}2za_N|+H~VfOUX$E&yhkTw
zWBI^BX92QkI4FZb&t-3{>hy_kReDr2nU)xE(G7hq*}7dR!e+hal>485F$;$ar~Iv)
zK0Uvy#;vL;CzMm$(>RiilMNL+X1JW5K&q+vSybKo$UlM)GQl=?e>yR8M9tR<?s~CC
zS8Yj`ev>fxoW-sxE>gLkNKdcxWU`Z>8mVkEj_22Fkbc=IGBP{sX{_UukNKudZ-xCB
zs}Z%v>{4|x(4bR}G`s>yVD0JS_fdUpqXoUR7iuG3CPMFiiWH;Qr3vS1pmCH*3o05&
zOdRkfC1q2#lm_i0;anj%)pxl#A1Kl}83Yj^4C*pomzZA)+t8Ki_8v!8BcAtp>|pYZ
zn~M7wDtO#}cZ=~eCrA6ISl&PN3Qv*5c>FRSt6dyU<A>7MOwXgRa3zD@i)CyORL>qH
zoL(Vo<D#Jmij>j2zoIUrj0OV%YowRQEhGs5mrJUSiS6SZ`S63hBiR=;Yw5hpg;~E3
zaz%(r<Qjs64PrLV9=v;jrwR~pNo2vsi7lX`vr71K>I;1}xY9)<>Q&&J0dfzqZ`~-w
zVOyv37#_Mj8|Z+WsmS3DC*!={`4*MpvZYPEd{qz3EByGi$~scSWg#p2LOejA3!nl`
z0wug!?ZYGn<(6t|@9M}=2@GI#tQPXqF`*aljMu<{IIHBZRdh@mG4w2D=G&%SRXsqL
zKD^a=3&Zvr?i~3C2t=<HctFDv1nT9JCU?<QNtO4Q`d$sv>j5Ub;Q$n_ZsE$=e~4gV
zyR4c)9}C~oO#}z=oxu7T_zY#MyThTh^LISUILg><Ts$E;Cvv2W-Sge+T^-1Y&LMjc
zq9lHT@C;GsbD}pYHEi$384ep5CQsHZ1$=B=KEdb`d-9}@4Qn$RfUn(XN@6N#*vD<r
z6&N0j(rn@iLynGVuz7I6h=8uzL*A_ho8N69^U9#a+shXKMY4-V8-eC#D6lz=wj)dl
zRqj<YDt|cfy;rqlb5IQ~QHXljtk=^y%I%Q+0TuLrK9xbD|EK{1mesC%DgVLJgmWI@
z2T_s12ILwo1K_}A8($m1oc9eGKX(S87t}}(Q7t<akwRPxbrz$a0f=*}6ocq1-u9HR
z*lTLJxbkn3<v;>GsRs-<8XPjMdNZJ_Y(ET2A|j~d(}L<5v}gO<($g8yxvcm8&9O?`
zhrH#>PRU@JJjAn|4r>wEgeR)`Qnj}M{>(7&kL2A-dWZ!Au5o!-e=I#q*6ngA?~kHT
z_<pQzT6tRsuAb`vL|+I&zIt<AZJNXYx(8?sIGZ>}C>l807`|$Kacx_eZ*s|Pi3(Ab
zNn0mn+c`=|<fbm)J=OwM7`er8H2`C$-{Rmx1rRP0mEFwu8Q#o-BjrHEmoJyN-u8W+
zUO1kQ0m#$FZjDD&4+5(;O}`F}f=Zl-JjSx~`K(7y8%msc@`_vrsoN3NPW}9Xa}?=i
z1b6(i(G(xE;MQr%VV1WRa!{n1C6Jf?w};i4a^MZ{F7o;-@)B(C@IBa#IAXzAb9k?D
z+h6<K3ntbj%Yn?azzzrdXqlbS7Hp{n<+M^CNK7<)lcvR`b(rCFProXh_o+JE&*zA$
zE#%2>qS_d2nwK_u$;~R2Ejot6i=KYJ&V`mAJz~9dHS(x<+zPc0GMgFQYK>w*+YL_7
zzM3fh1RTXd1ekMAb~_;wJm+7z{}7^<SBei}5U9KNjGY4WHC7V!tiWNveF`h)cK^;{
zJRI1_pHbF3_WOUADZ2*e1kH6EgU$Iqu)0764E|4xZlj|GuA)qH?_D2{rN{z{=R`Gv
zhU9jkvk1;96Q{}vEZ0uJZoaRfuZK#Av!*+90tG+)<pa=PaO>^T8F_75biPJ2oWeVC
zCp?5zHl7mXCvd~1T$#1KICZ*lPH_dMT%{q^b|oK*dV6{9r!nMj!QQ@8$p>>dmEACV
z>d!QV`S9niQj=3t4@j&9ZlXotVD9SVZ+e-gd`oyr-3qUV9QM9ma=01w6;N8(V!0LT
zULWzYEBu=cQ_yNX)73!i$pj@sE}=P1CE<6hT2@i-175U27Ka&TMX0E_rHUt*Lz1BI
zmOdQ2%j>ByW(<S?mY<HLjt+?sL!H|qcNTwT3+(p>x40R35Sl~B#32o!t)PDGa-z@b
zNh8N4DeGarrJ9O*JOSGG#bpA8j*vh@uVtM_g601-Q7XpTPR?%tAXR@T(Q}+N6bP8!
zDf&r7if-_-ZeyTz&(KAb>>DaBlkkUIkQZC<A>mLMKp?1D7ZUZ`LwiRy3eD^J73x~i
zAVFmc3B`FPgc71hZHBRj&d8>6%eQRQ9C1BGBc!5G&01O-QbX~iAZ5`-c~@AORf%3C
z1_YH^LUZOR*T1?0<=ZrluQXICMzUiW&v~^Ru8`qYX{ongHqpxnr>nSu2ZK@%g+zmh
z2RW)6y1P+BQs&Nec_l{Y=CarPj$hG6_3~ylW#-y=HC5cFmn&e#Ylw|y${_CKy-*x#
z0|Vgtp;qg%t1UT&FSI<#?)*S9AL68Sh(%M_VwYNT6T2JY3;lp}18fG?)$9$#wf_<A
zLZ!gT855SWpyCb#4NAUCBS7tl-L;SRk*}fUE9WR*MlgbDO8+2!QNvyu)s%^^YnkE)
zz_GmaNkg(wb;eVQMSE->-Tu{({-&<BNfM9~jwB!UH&fk?bgo-?mg2se<1IvXy*Dv(
z#)AT`%(59DW=DDt*KObKa?1xv=VpGsHo<2VUR2E*t|Zfw@VT(?0<Hx8eObf3&|3<E
z<i6D#q5}!(E*wJ2N<SRPx9s}~`@8`xc6s@M)XwG^Sa~_1Mclm{EyhxwSD(w-#9pg-
z)Hyjj7-MKwg#OO;Pqko_p(e4wV(oXOvJ>`^2xA|?T@VO?a#i9~I6%e}A*%{L_mr5y
z80jE&j&HVn>yr%GoT#{grs?n%5&&H!MBt(Pco|)6VOW=B(O-sF&i9myA}X1ie57e$
zmUqOsAYOb#tq9~sn1(0pf<5A>UGn{u*BfeK1ISf4KIJL}`X)3q;@kR6PnS#nkh1Q1
z=|?<FHx4+5g==3Sp&#^FYeaOIu+8hk*p3HuPL0gt5rKymV^Xjur4jg-W>B-%NP~WA
zdUFTQ)n@_Mmemqo%vEU2?C%s`>7<Jw^1kUy7SC`isa{65=Xs&JJaV>BxOj%OVGT1B
za{p0{d|?B6BhgCf3ua0v>Y{)UBd8o0!qMk9B`YQkIw?zpaQ(OM*@Sb__GBW{pKD0v
zJ|`9*rbn$^|AsZxR`#O-UJ&&<mpfTL#DwZM39wyd1@3Ex9%<_hWkYPC@o>9&31%E~
z;89zEEcADDhvGay<YMg?(8MS>QuJM4?ELQyS-Nkjg0h2w;Co0OfXnWmQwDzZzz{T`
zKjF$GRe0TT-EjIEs+!f_S;VU509%Ufl=aU0R^18&a=>BF&U3_opdFN2f^6#Ku|-x=
zE;g}OriyRDObE*!VRWhEavE8PZOP$AaVjXe;M4GA8AbsI4EC#Ag<6$mU$K4O<)t<&
zvz@v-87Z%+S2IPNM1mBypdZ67pRB7zXrqVfu1(li8^qhTsUN3Zk74(~WJ5*dbtZK^
zdF6t-^_VqJ8WWhY4RdGP5~a}FDyelK=v7EYF%)(bqwFNVC*{LB8aQ7C6j>MC*K_)c
z`@7%B_yCh8L?Y>-OVc9)edVlSnZ7YI9mCRVt4^geikY4$)kt}XV^{>b8Mk*Dyzk9+
z<pt%N>oxr6<QJyu2K58r$5=^WK)>5pAEVbj229|&U82wj#6Du(kdz2vVF|<rJ@Bk>
k7{mjOsz$Z%sdt?ve;r$M&bg17(t(2jbmH4O<zmh&Rop`FP5=M^

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/entry.bin b/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/entry.bin
new file mode 100644
index 0000000000000000000000000000000000000000..d6427877c28112354548ec7b60b68c913426af65
GIT binary patch
literal 92
zcmV~$!3}^Q3;;kF$TX2KP{E=#QV0}`OZ)ThowHMdYdz%Y6P+?zNUJB|pr5sHluVFO
k^`IMSD<?(mpq!~=!p5*6U(X^%IdMegB1^r-&aW}%2RAe#ZvX%Q

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/projectfingerprint.bin b/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/projectfingerprint.bin
new file mode 100644
index 0000000000000000000000000000000000000000..d94ab1bbf28c2d25da31a4797374e05b6d16eb53
GIT binary patch
literal 823
zcmV-71IYY;^`vu%2{rwUBo8T2N}-u|QaSv06+nZ*3F{%*870PZrJNMa7J%Bb8umO3
zyJ$=^Dn^QsLKp1rynir4b2B@fYnw|;I(xM8le-P$!ma~p0WepJkg`t;TTjH4S6hf>
zeOp2sTjFolC@kn5?n{#a-sf`E<XpM%Kp=8={GB>JHt@{*R`WV(!B2mrlBuFQL}iVy
z)-tpkq*8}9`=3))Dmnk1Cpmt)pNI9Ip06(Ov2$)id=FNf`4gmt1MXxXG3z4t>}ecR
zqdbxXyS`SEnDQltE?WIvk%V8FW!N5*<fV7x@--iPHl+`ZB7WFT?GMjXkJ3KnZ@VCT
zjrfm->GG(;=*Kg{=!4s4meRlSa+&jS3*9HR;;j}u@jcmw&>Hlz@9VIB4rRA5+#!yd
z!}L@dCB-kb#(>FFA*K~iJ+IK#oniW$oK+dI3$PTL_v~*zfk~SKL<=|cOvCz~f9Ir|
zZioVT4w6wkXqMlXnJigsmsb-1Mz@*`;=~smHTm$)*C3qimIjP2M~g?8a1sG{h^IG9
zJeUyZf>GXCtzDQq{!n5B1_V%@RVVL}4i0nuj<+97EoW!j91Auk$C^E5jcit2(VG^L
zZ}sLQA}?2<<1@x>KvyOV#*@Cf(rEdInu%Wa_xWFxy{mKCF0YJM;y-q=m0CdZ-hSrj
zUjYoSr=%XUEih;UgaV31et`L<u5uiScCSpUbo}2Pe&v9y3k~c2`B}4I61anuJ0!~X
zX_vEQLM-F7$aDhIEoMy07;rNHz-xWA0~GYW_fm7eVuytun`t)nIc64@iN08lBH^em
z2SxtuEXMukG@&LGgrBFB9wcP^b8Kb36C!qGvVWuuYOU)UVvti5u5wekUN{MSYaOXc
zdN4&Imaapmx?!Bh)BobycjwDgV@Zuo^d{<qj)i)xtp*dp2XcNuLL6Mgy=XwZlr_H;
z{0(6Q1K_M<+AW=L$4si{9hzeAL}SIf>AZ+m&<O@kTYZ>HvWM!uMhSO>-&k(!X=59K
z&Nc?3MFY9F={@F~z4{T?i;dV+{|95%(6`r4{{)HAuWxi-o>4Ou2KMamq-t=#`?_St
Bm&X7A

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/work.bin b/.gradle/configuration-cache/f93c619e-5608-44c0-ae77-793c324d124e/work.bin
new file mode 100644
index 0000000000000000000000000000000000000000..413771a23b1d0eaa927f04b6b5cdeb8673c406a4
GIT binary patch
literal 632
zcmV-;0*C#=kLK;weU_MOn9+6W9kO3JTG7mUL^aeraF(rL0bK~I+EneRj<_I=d2dGF
z87|^z<h%Iic~RbI(f&<UQV!xl3^zgBIRLR53kW!pJZ<LG0Nr+>rnJ1HUbT1z{fZE$
zmH0;Z(9oys2|C33RGZC;JmfRl*>dU*qiMmSU{YD2B_q}9Dd{s`xcOT5m1q<>I*?iC
zgWq4O=+fymVv<2z7vhQ*@-?^UWay}=O$vb})u?U$zf;u<f2z>s0t-|0pSH7UpCPXa
zkV|qaSM26uMD?8&e9YNZxh_)_iiaWX;&g%S1Q~ULX@)choUdJXLQ{&vI|ao~@wqo1
z6W5R0aV$m>>bRouQ8}M(V|WB6N^mv%&vQpwWT75lwh+P_rI+n8Ti!~0MI$|0VSKoQ
zUZ^wVN$23UTL>5W{rhc1Y+b5CkHt!q)TEqdQywamx^}UIkQwFF)lh|VH04TI+zP9*
zj}FG_)RTaT;)BqZzjFY@nhN@Ffk^6Fwh%<JV?;2jF#oWHZ~LzXdl&PVYtDBQ#2qK)
z7d8N=`G)I=9bTs8ZBe?J*2ASR$cJx~ku;{GXa;9NJagd4wCih`YJ`5#oH@{FocMRX
zQ^tDwg&QDo!|+-4?6I*n43yssDZ{^P3TFdN*`oqpTA|u+fw~x9J<<4G?9avjlj;mY
zG#kmJ;}owzxWx_(6U_$tm2bIrgwCeL^Z+6}?D4VSlS(<WdmGp+#P*GTo_g9P#QHlI
zPA5-bbu(P6M=XLOK=BF@kMe!;A0Mgpb7@Y3^!Y+eg_X-`<i4UYFzzFr26_j5RI#TK
SOqN4e^V2?U6)iG>*m@L%U_dDV

literal 0
HcmV?d00001

diff --git a/.gradle/configuration-cache/gc.properties b/.gradle/configuration-cache/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe
new file mode 100644
index 0000000000000000000000000000000000000000..20ba08c7b7d4cb61cc3d0e8b825f5bda4882dea5
GIT binary patch
literal 8
PcmZQzV4QmUkLqs#3Y-Iu

literal 0
HcmV?d00001

diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..aa870fa
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,10 @@
+{
+  "semi": true,
+  "trailingComma": "es5",
+  "singleQuote": true,
+  "printWidth": 80,
+  "tabWidth": 2,
+  "useTabs": false,
+  "bracketSpacing": true,
+  "arrowParens": "avoid"
+} 
\ No newline at end of file
diff --git a/README.md b/README.md
index 6b8b5d6..1fddc91 100644
--- a/README.md
+++ b/README.md
@@ -1,143 +1,146 @@
-# Daily Notification Plugin for Capacitor
+# Daily Notification Plugin
 
-A Capacitor plugin for scheduling and managing daily notifications with advanced features and robust error handling.
+A Capacitor plugin for scheduling and managing daily notifications on Android devices.
 
 ## Features
 
-- Schedule daily notifications with custom time and content
-- Support for different priority levels
-- Timezone-aware scheduling
-- Offline support with caching
-- Comprehensive permission handling
-- Automatic retry logic
-- Detailed notification status tracking
-- Configurable settings management
+- Schedule daily notifications with precise timing
+- Handle system state changes (battery, power, etc.)
+- Support for adaptive scheduling based on device state
+- Background task management
+- Battery optimization support
+- Rich logging system
+- Comprehensive error handling
 
 ## Installation
 
 ```bash
-npm install daily-notification-plugin
-npx cap sync
+npm install @timesafari/daily-notification-plugin
 ```
 
-## iOS Setup
-
-No additional setup required for iOS. The plugin automatically handles all necessary configurations.
-
 ## Usage
 
-### Basic Usage
-
 ```typescript
-import { DailyNotification } from 'daily-notification-plugin';
+import { DailyNotification } from '@timesafari/daily-notification-plugin';
+
+// Initialize the plugin
+const dailyNotification = new DailyNotification();
 
 // Schedule a daily notification
-await DailyNotification.scheduleDailyNotification({
-  url: 'https://api.example.com/updates',
-  time: '09:00',
-  title: 'Daily Update',
-  body: 'Your daily update is ready'
+await dailyNotification.scheduleDailyNotification({
+  sound: true,
+  priority: 'default',
+  timezone: 'UTC'
 });
-```
 
-### Advanced Features
+// Get notification status
+const status = await dailyNotification.getNotificationStatus();
 
-#### Custom Priority
-
-```typescript
-await DailyNotification.scheduleDailyNotification({
-  url: 'https://api.example.com/updates',
-  time: '09:00',
+// Update settings
+await dailyNotification.updateSettings({
+  sound: false,
   priority: 'high'
 });
-```
 
-#### Timezone Support
+// Cancel all notifications
+await dailyNotification.cancelAllNotifications();
 
-```typescript
-await DailyNotification.scheduleDailyNotification({
-  url: 'https://api.example.com/updates',
-  time: '09:00',
-  timezone: 'America/New_York'
-});
+// Get battery status
+const batteryStatus = await dailyNotification.getBatteryStatus();
+
+// Request battery optimization exemption
+await dailyNotification.requestBatteryOptimizationExemption();
 ```
 
-#### Check Notification Status
+## Configuration
 
-```typescript
-const status = await DailyNotification.getNotificationStatus();
-console.log('Notification status:', status);
-```
+### Android
 
-#### Update Settings
+Add the following permissions to your `AndroidManifest.xml`:
 
-```typescript
-await DailyNotification.updateSettings({
-  sound: true,
-  priority: 'high',
-  timezone: 'America/Los_Angeles'
-});
+```xml
+<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
+<uses-permission android:name="android.permission.USE_EXACT_ALARM" />
+<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+<uses-permission android:name="android.permission.WAKE_LOCK" />
+<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
+<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
+<uses-permission android:name="android.permission.INTERNET" />
+<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 ```
 
-## API Documentation
+## Development
 
-### Methods
+### Prerequisites
 
-#### scheduleDailyNotification(options: ScheduleOptions)
-Schedule a new daily notification.
+- Node.js 14 or later
+- Android Studio
+- Android SDK
+- Gradle
 
-#### getLastNotification()
-Get information about the last delivered notification.
+### Building
 
-#### cancelAllNotifications()
-Cancel all pending notifications.
+```bash
+# Install dependencies
+npm install
 
-#### getNotificationStatus()
-Get current notification status and settings.
+# Build the plugin
+npm run build
 
-#### updateSettings(settings: NotificationSettings)
-Update notification settings.
+# Run tests
+npm test
+```
 
-#### checkPermissions()
-Check current notification permissions.
+### Project Structure
 
-#### requestPermissions()
-Request notification permissions.
+```
+daily-notification-plugin/
+├── android/                 # Android implementation
+│   ├── app/                # Main application module
+│   └── build.gradle        # Root build configuration
+├── src/                    # TypeScript source
+├── tests/                  # Test files
+├── package.json           # Package configuration
+└── README.md              # This file
+```
 
-### Types
+## Contributing
 
-```typescript
-interface ScheduleOptions {
-  url: string;
-  time: string;
-  title?: string;
-  body?: string;
-  sound?: boolean;
-  priority?: 'high' | 'default' | 'low';
-  timezone?: string;
-}
-
-interface NotificationSettings {
-  sound?: boolean;
-  priority?: string;
-  timezone?: string;
-}
-```
+1. Fork the repository
+2. Create your feature branch (`git checkout -b feature/amazing-feature`)
+3. Commit your changes (`git commit -m 'Add some amazing feature'`)
+4. Push to the branch (`git push origin feature/amazing-feature`)
+5. Open a Pull Request
 
-## Error Handling
+## License
 
-The plugin provides detailed error messages for various scenarios:
-- Invalid parameters
-- Permission issues
-- Scheduling failures
-- Invalid time formats
-- Invalid timezone identifiers
-- Invalid priority values
+This project is licensed under the MIT License - see the LICENSE file for details.
 
-## Contributing
+## Author
 
-Contributions are welcome! Please read our contributing guidelines and submit pull requests to our GitHub repository.
+Matthew Raymer
 
-## License
+## Security
+
+This plugin follows security best practices:
+
+- Uses AndroidX for modern security features
+- Implements proper permission handling
+- Follows Android security guidelines
+- Uses secure storage for sensitive data
+- Implements proper error handling
+- Logs security-relevant events
+- Uses secure communication channels
+- Implements proper access control
+- Follows Android's security model
+- Uses secure defaults
+
+## Changelog
 
-MIT License - see LICENSE file for details
+### 1.0.0
+- Initial release
+- Basic notification scheduling
+- System state handling
+- Battery optimization support
+- Background task management
+- Rich logging system
diff --git a/android/Configure b/android/Configure
new file mode 100644
index 0000000..e69de29
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 0bb3814..43b3d51 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -1,15 +1,12 @@
 apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-apply plugin: 'jacoco'
 
 android {
     namespace "com.timesafari.dailynotification"
-    compileSdkVersion 33
-    buildToolsVersion "33.0.2"
+    compileSdkVersion rootProject.ext.compileSdkVersion
     defaultConfig {
         applicationId "com.timesafari.dailynotification"
-        minSdkVersion 22
-        targetSdkVersion 33
+        minSdkVersion rootProject.ext.minSdkVersion
+        targetSdkVersion rootProject.ext.targetSdkVersion
         versionCode 1
         versionName "1.0"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -22,98 +19,27 @@ android {
     buildTypes {
         release {
             minifyEnabled false
-            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-        }
-    }
-    lintOptions {
-        abortOnError false
-    }
-    compileOptions {
-        sourceCompatibility JavaVersion.VERSION_1_8
-        targetCompatibility JavaVersion.VERSION_1_8
-    }
-    testOptions {
-        unitTests.all {
-            useJUnitPlatform()
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
     }
 }
 
 repositories {
-    google()
-    mavenCentral()
-    maven {
-        url "${project.rootDir}/capacitor-cordova-android-plugins/src/main/libs"
-    }
-    maven {
-        url "${project.rootDir}/libs"
+    flatDir{
+        dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs'
     }
 }
 
 dependencies {
     implementation fileTree(include: ['*.jar'], dir: 'libs')
+    implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion"
+    implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion"
+    implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion"
     implementation project(':capacitor-android')
+    testImplementation "junit:junit:$junitVersion"
+    androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
+    androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
     implementation project(':capacitor-cordova-android-plugins')
-    
-    // Android SDK
-    implementation 'com.android.support:support-v4:28.0.0'
-    implementation 'com.android.support:appcompat-v7:28.0.0'
-    implementation 'com.android.support:design:28.0.0'
-    
-    // AndroidX Core
-    implementation 'androidx.core:core:1.9.0'
-    implementation 'androidx.core:core-ktx:1.12.0'
-    
-    // AndroidX AppCompat
-    implementation 'androidx.appcompat:appcompat:1.6.1'
-    
-    // AndroidX Test
-    testImplementation 'androidx.test:core:1.5.0'
-    testImplementation 'androidx.test:runner:1.5.2'
-    testImplementation 'androidx.test.ext:junit:1.1.5'
-    testImplementation 'androidx.test.espresso:espresso-core:3.5.1'
-    testImplementation 'androidx.test:rules:1.5.0'
-    testImplementation 'androidx.test:core-ktx:1.5.0'
-    
-    // JUnit
-    testImplementation 'junit:junit:4.13.2'
-    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.2'
-    testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.9.2'
-    
-    // Mockito
-    testImplementation 'org.mockito:mockito-core:4.5.1'
-    testImplementation 'org.mockito:mockito-inline:4.5.1'
-    
-    // AndroidX WorkManager
-    implementation 'androidx.work:work-runtime:2.8.1'
-    
-    // AndroidX Room (for local storage)
-    implementation 'androidx.room:room-runtime:2.6.1'
-    annotationProcessor 'androidx.room:room-compiler:2.6.1'
-    
-    // AndroidX Lifecycle
-    implementation 'androidx.lifecycle:lifecycle-runtime:2.7.0'
-    implementation 'androidx.lifecycle:lifecycle-common-java8:2.7.0'
-    
-    // AndroidX Security
-    implementation 'androidx.security:security-crypto:1.1.0-alpha06'
-    
-    // AndroidX Notification
-    implementation 'androidx.media:media:1.7.0'
-    
-    // AndroidX Broadcast
-    implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'
-
-    // Capacitor dependencies
-    implementation 'com.getcapacitor:capacitor:5.0.0'
-    implementation 'com.getcapacitor:capacitor-android:5.0.0'
-
-    // Testing dependencies
-    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
-    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
-    androidTestImplementation 'androidx.test:runner:1.5.2'
-    androidTestImplementation 'androidx.test:rules:1.5.0'
-    androidTestImplementation 'org.mockito:mockito-android:4.5.1'
 }
 
 apply from: 'capacitor.build.gradle'
@@ -124,5 +50,5 @@ try {
         apply plugin: 'com.google.gms.google-services'
     }
 } catch(Exception e) {
-    logger.warn("google-services.json not found, google-services plugin not applied. Push Notifications won't work")
+    logger.info("google-services.json not found, google-services plugin not applied. Push Notifications won't work")
 }
diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle
index 42df55f..fdb4970 100644
--- a/android/app/capacitor.build.gradle
+++ b/android/app/capacitor.build.gradle
@@ -9,6 +9,11 @@ android {
 
 apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle"
 dependencies {
-    implementation project(':capacitor-android')
-    implementation project(':capacitor-cordova-android-plugins')
-} 
\ No newline at end of file
+
+
+}
+
+
+if (hasProperty('postBuildExtras')) {
+  postBuildExtras()
+}
diff --git a/android/app/src/androidTest/java/com/timesafari/dailynotification/.LCKDailyNotificationPluginTest.java~ b/android/app/src/androidTest/java/com/timesafari/dailynotification/.LCKDailyNotificationPluginTest.java~
deleted file mode 100644
index 146077b..0000000
--- a/android/app/src/androidTest/java/com/timesafari/dailynotification/.LCKDailyNotificationPluginTest.java~
+++ /dev/null
@@ -1 +0,0 @@
-/home/matthew/projects/timesafari/daily-notification-plugin/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationPluginTest.java
\ No newline at end of file
diff --git a/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationConfigTest.java b/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationConfigTest.java
deleted file mode 100644
index bde1c97..0000000
--- a/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationConfigTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/**
- * DailyNotificationConfigTest.java
- * Daily Notification Plugin for Capacitor
- * 
- * Tests for the DailyNotificationConfig
- * 
- * Features:
- * - Unit tests
- * - Singleton pattern
- * - Configuration management
- * - Default values
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnitRunner;
-
-import java.util.TimeZone;
-
-import static org.junit.Assert.*;
-
-@RunWith(MockitoJUnitRunner.class)
-public class DailyNotificationConfigTest {
-    private DailyNotificationConfig config;
-    
-    @Before
-    public void setUp() {
-        config = DailyNotificationConfig.getInstance();
-    }
-    
-    @Test
-    public void testSingletonPattern() {
-        DailyNotificationConfig config2 = DailyNotificationConfig.getInstance();
-        assertSame("Config instances should be the same", config, config2);
-    }
-    
-    @Test
-    public void testDefaultValues() {
-        assertEquals("Default max notifications should be 10", 10, 
-                    config.getMaxNotificationsPerDay());
-        assertEquals("Default timezone should be system default", 
-                    TimeZone.getDefault(), config.getDefaultTimeZone());
-        assertTrue("Default logging should be enabled", config.isLoggingEnabled());
-        assertEquals("Default retention days should be 7", 7, 
-                    config.getRetentionDays());
-    }
-    
-    @Test
-    public void testMaxNotificationsPerDay() {
-        config.setMaxNotificationsPerDay(5);
-        assertEquals("Max notifications should be 5", 5, 
-                    config.getMaxNotificationsPerDay());
-    }
-    
-    @Test
-    public void testDefaultTimeZone() {
-        TimeZone newTimeZone = TimeZone.getTimeZone("America/New_York");
-        config.setDefaultTimeZone(newTimeZone);
-        assertEquals("Default timezone should be America/New_York", 
-                    newTimeZone, config.getDefaultTimeZone());
-    }
-    
-    @Test
-    public void testLoggingEnabled() {
-        config.setLoggingEnabled(false);
-        assertFalse("Logging should be disabled", config.isLoggingEnabled());
-        
-        config.setLoggingEnabled(true);
-        assertTrue("Logging should be enabled", config.isLoggingEnabled());
-    }
-    
-    @Test
-    public void testRetentionDays() {
-        config.setRetentionDays(14);
-        assertEquals("Retention days should be 14", 14, 
-                    config.getRetentionDays());
-    }
-    
-    @Test
-    public void testResetToDefaults() {
-        // Change values
-        config.setMaxNotificationsPerDay(5);
-        config.setDefaultTimeZone(TimeZone.getTimeZone("America/New_York"));
-        config.setLoggingEnabled(false);
-        config.setRetentionDays(14);
-        
-        // Reset to defaults
-        config.resetToDefaults();
-        
-        // Verify defaults
-        assertEquals("Max notifications should be reset to 10", 10, 
-                    config.getMaxNotificationsPerDay());
-        assertEquals("Default timezone should be reset to system default", 
-                    TimeZone.getDefault(), config.getDefaultTimeZone());
-        assertTrue("Logging should be reset to enabled", config.isLoggingEnabled());
-        assertEquals("Retention days should be reset to 7", 7, 
-                    config.getRetentionDays());
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationConstantsTest.java b/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationConstantsTest.java
deleted file mode 100644
index 7d91baa..0000000
--- a/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationConstantsTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
- * DailyNotificationConstantsTest.java
- * Daily Notification Plugin for Capacitor
- * 
- * Tests for the DailyNotificationConstants
- * 
- * Features:
- * - Unit tests
- * - Constant validation
- * - Default values
- * - Error messages
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnitRunner;
-
-import static org.junit.Assert.*;
-
-@RunWith(MockitoJUnitRunner.class)
-public class DailyNotificationConstantsTest {
-    
-    @Test
-    public void testDefaultValues() {
-        assertEquals("Default title should be 'Daily Notification'", 
-                    "Daily Notification", DailyNotificationConstants.DEFAULT_TITLE);
-        assertEquals("Default body should be 'Your daily update is ready'", 
-                    "Your daily update is ready", DailyNotificationConstants.DEFAULT_BODY);
-    }
-    
-    @Test
-    public void testNotificationIdentifiers() {
-        assertTrue("Notification ID prefix should start with 'daily-notification-'", 
-                  DailyNotificationConstants.NOTIFICATION_ID_PREFIX.startsWith("daily-notification-"));
-        assertEquals("Event name should be 'notification'", 
-                    "notification", DailyNotificationConstants.EVENT_NAME);
-    }
-    
-    @Test
-    public void testSettingsKeys() {
-        assertEquals("Sound setting key should be 'sound'", 
-                    "sound", DailyNotificationConstants.Settings.SOUND);
-        assertEquals("Priority setting key should be 'priority'", 
-                    "priority", DailyNotificationConstants.Settings.PRIORITY);
-        assertEquals("Timezone setting key should be 'timezone'", 
-                    "timezone", DailyNotificationConstants.Settings.TIMEZONE);
-        assertEquals("Retry count setting key should be 'retryCount'", 
-                    "retryCount", DailyNotificationConstants.Settings.RETRY_COUNT);
-        assertEquals("Retry interval setting key should be 'retryInterval'", 
-                    "retryInterval", DailyNotificationConstants.Settings.RETRY_INTERVAL);
-    }
-    
-    @Test
-    public void testSettingsDefaultValues() {
-        assertTrue("Default sound should be true", 
-                  DailyNotificationConstants.Settings.DEFAULT_SOUND);
-        assertEquals("Default priority should be 'default'", 
-                    "default", DailyNotificationConstants.Settings.DEFAULT_PRIORITY);
-        assertEquals("Default retry count should be 3", 
-                    3, DailyNotificationConstants.Settings.DEFAULT_RETRY_COUNT);
-        assertEquals("Default retry interval should be 1000", 
-                    1000, DailyNotificationConstants.Settings.DEFAULT_RETRY_INTERVAL);
-    }
-    
-    @Test
-    public void testPluginMethodKeys() {
-        assertEquals("URL key should be 'url'", 
-                    "url", DailyNotificationConstants.Keys.URL);
-        assertEquals("Time key should be 'time'", 
-                    "time", DailyNotificationConstants.Keys.TIME);
-        assertEquals("Title key should be 'title'", 
-                    "title", DailyNotificationConstants.Keys.TITLE);
-        assertEquals("Body key should be 'body'", 
-                    "body", DailyNotificationConstants.Keys.BODY);
-        assertEquals("Sound key should be 'sound'", 
-                    "sound", DailyNotificationConstants.Keys.SOUND);
-        assertEquals("Priority key should be 'priority'", 
-                    "priority", DailyNotificationConstants.Keys.PRIORITY);
-        assertEquals("Timezone key should be 'timezone'", 
-                    "timezone", DailyNotificationConstants.Keys.TIMEZONE);
-    }
-    
-    @Test
-    public void testChannelSettings() {
-        assertEquals("Channel ID should be 'daily_notification_channel'", 
-                    "daily_notification_channel", DailyNotificationConstants.Channel.ID);
-        assertEquals("Channel name should be 'Daily Notifications'", 
-                    "Daily Notifications", DailyNotificationConstants.Channel.NAME);
-        assertEquals("Channel description should be 'Daily notification updates'", 
-                    "Daily notification updates", DailyNotificationConstants.Channel.DESCRIPTION);
-        assertTrue("Channel should enable vibration", 
-                  DailyNotificationConstants.Channel.ENABLE_VIBRATION);
-        assertTrue("Channel should enable lights", 
-                  DailyNotificationConstants.Channel.ENABLE_LIGHTS);
-    }
-    
-    @Test
-    public void testTimeConstants() {
-        assertEquals("Milliseconds per day should be 86400000", 
-                    86400000, DailyNotificationConstants.Time.MILLIS_PER_DAY);
-        assertEquals("Maximum hours should be 24", 
-                    24, DailyNotificationConstants.Time.MAX_HOURS);
-        assertEquals("Maximum minutes should be 60", 
-                    60, DailyNotificationConstants.Time.MAX_MINUTES);
-    }
-    
-    @Test
-    public void testErrorMessages() {
-        assertEquals("Missing parameters error message should be correct", 
-                    "Missing required parameters", DailyNotificationConstants.Errors.MISSING_PARAMS);
-        assertEquals("Invalid time error message should be correct", 
-                    "Invalid time format", DailyNotificationConstants.Errors.INVALID_TIME);
-        assertEquals("Invalid timezone error message should be correct", 
-                    "Invalid timezone", DailyNotificationConstants.Errors.INVALID_TIMEZONE);
-        assertEquals("Invalid priority error message should be correct", 
-                    "Invalid priority value", DailyNotificationConstants.Errors.INVALID_PRIORITY);
-        assertEquals("Scheduling failed error message should be correct", 
-                    "Failed to schedule notification", DailyNotificationConstants.Errors.SCHEDULING_FAILED);
-        assertEquals("Permission denied error message should be correct", 
-                    "Notification permission denied", DailyNotificationConstants.Errors.PERMISSION_DENIED);
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationLoggerTest.java b/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationLoggerTest.java
deleted file mode 100644
index b831caf..0000000
--- a/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationLoggerTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * DailyNotificationLoggerTest.java
- * Daily Notification Plugin for Capacitor
- * 
- * Tests for the DailyNotificationLogger
- * 
- * Features:
- * - Unit tests
- * - Log level testing
- * - Logging configuration
- * - Error handling
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.junit.MockitoJUnitRunner;
-
-import static org.mockito.Mockito.*;
-
-@RunWith(MockitoJUnitRunner.class)
-public class DailyNotificationLoggerTest {
-    private DailyNotificationLogger logger;
-    
-    @Before
-    public void setUp() {
-        logger = new DailyNotificationLogger();
-        MockitoAnnotations.openMocks(this);
-    }
-    
-    @Test
-    public void testLogLevels() {
-        // Test each log level
-        logger.log("Debug message", DailyNotificationLogger.Level.DEBUG);
-        logger.log("Info message", DailyNotificationLogger.Level.INFO);
-        logger.log("Warning message", DailyNotificationLogger.Level.WARNING);
-        logger.log("Error message", DailyNotificationLogger.Level.ERROR);
-        
-        // Note: Actual verification would require capturing log output
-    }
-    
-    @Test
-    public void testLogWithThrowable() {
-        Exception e = new Exception("Test exception");
-        logger.log("Error with exception", DailyNotificationLogger.Level.ERROR, e);
-        
-        // Note: Actual verification would require capturing log output
-    }
-    
-    @Test
-    public void testLoggingEnabled() {
-        // Test logging enabled
-        assertTrue(DailyNotificationLogger.isLoggingEnabled());
-        
-        // Disable logging
-        DailyNotificationLogger.setLoggingEnabled(false);
-        assertFalse(DailyNotificationLogger.isLoggingEnabled());
-        
-        // Re-enable logging
-        DailyNotificationLogger.setLoggingEnabled(true);
-        assertTrue(DailyNotificationLogger.isLoggingEnabled());
-    }
-    
-    @Test
-    public void testLogMessageFormat() {
-        String message = "Test message";
-        logger.log(message, DailyNotificationLogger.Level.INFO);
-        
-        // Note: Actual verification would require capturing log output
-    }
-    
-    @Test
-    public void testNullMessage() {
-        logger.log(null, DailyNotificationLogger.Level.INFO);
-        
-        // Note: Actual verification would require capturing log output
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationPluginTest.java b/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationPluginTest.java
deleted file mode 100644
index 98ee38c..0000000
--- a/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationPluginTest.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/**
- * DailyNotificationPluginTest.java
- * Daily Notification Plugin for Capacitor
- * 
- * Tests for the DailyNotification plugin
- * 
- * Features:
- * - Unit tests
- * - Integration tests
- * - Edge cases
- * - Error scenarios
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Build;
-import android.os.PowerManager;
-import android.os.BatteryManager;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-import androidx.test.platform.app.InstrumentationRegistry;
-
-import com.getcapacitor.JSObject;
-import com.getcapacitor.PluginCall;
-import com.getcapacitor.PluginMethod;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.*;
-
-@RunWith(AndroidJUnit4.class)
-public class DailyNotificationPluginTest {
-    private DailyNotificationPlugin plugin;
-    private Context context;
-    private SharedPreferences settings;
-    
-    @Mock
-    private PluginCall mockCall;
-    
-    @Before
-    public void setUp() {
-        context = ApplicationProvider.getApplicationContext();
-        settings = context.getSharedPreferences("test_settings", Context.MODE_PRIVATE);
-        plugin = new DailyNotificationPlugin();
-        MockitoAnnotations.openMocks(this);
-    }
-    
-    @Test
-    public void testTimeValidation() {
-        // Valid time
-        assertTrue(plugin.isValidTime("09:00"));
-        assertTrue(plugin.isValidTime("00:00"));
-        assertTrue(plugin.isValidTime("23:59"));
-        
-        // Invalid times
-        assertFalse(plugin.isValidTime("24:00"));
-        assertFalse(plugin.isValidTime("12:60"));
-        assertFalse(plugin.isValidTime("9:00"));
-        assertFalse(plugin.isValidTime("13:5"));
-    }
-    
-    @Test
-    public void testTimezoneValidation() {
-        assertTrue(plugin.isValidTimezone("America/New_York"));
-        assertTrue(plugin.isValidTimezone("Europe/London"));
-        assertTrue(plugin.isValidTimezone("Asia/Kolkata"));
-        
-        assertFalse(plugin.isValidTimezone("Invalid/Timezone"));
-        assertFalse(plugin.isValidTimezone("America/Invalid"));
-    }
-    
-    @Test
-    public void testNotificationScheduling() {
-        when(mockCall.getString("url")).thenReturn("https://example.com");
-        when(mockCall.getString("time")).thenReturn("09:00");
-        when(mockCall.getString("title")).thenReturn("Test Notification");
-        when(mockCall.getString("body")).thenReturn("Test Body");
-        
-        plugin.scheduleDailyNotification(mockCall);
-        
-        // Verify notification was scheduled
-        // Note: Actual verification would require mocking AlarmManager
-    }
-    
-    @Test
-    public void testSettingsManagement() {
-        when(mockCall.hasOption("sound")).thenReturn(true);
-        when(mockCall.getBoolean("sound")).thenReturn(false);
-        when(mockCall.hasOption("priority")).thenReturn(true);
-        when(mockCall.getString("priority")).thenReturn("high");
-        
-        plugin.updateSettings(mockCall);
-        
-        // Verify settings were updated
-        assertEquals(false, settings.getBoolean("sound", true));
-        assertEquals("high", settings.getString("priority", "default"));
-    }
-    
-    @Test
-    public void testNotificationCancellation() {
-        plugin.cancelAllNotifications(mockCall);
-        
-        // Verify notifications were cancelled
-        // Note: Actual verification would require mocking NotificationManager
-    }
-    
-    @Test
-    public void testNotificationStatus() {
-        plugin.getNotificationStatus(mockCall);
-        
-        // Verify status was retrieved
-        // Note: Actual verification would require mocking NotificationManager
-    }
-    
-    @Test
-    public void testErrorHandling() {
-        when(mockCall.getString("url")).thenReturn(null);
-        when(mockCall.getString("time")).thenReturn(null);
-        
-        plugin.scheduleDailyNotification(mockCall);
-        
-        // Verify error was handled
-        verify(mockCall).reject(contains("Missing required parameters"));
-    }
-    
-    @Test
-    public void testBackgroundTaskHandling() {
-        // Test background task scheduling
-        // Note: Actual verification would require mocking WorkManager
-    }
-    
-    @Test
-    public void testBatteryOptimization() {
-        // Mock PowerManager
-        PowerManager mockPowerManager = mock(PowerManager.class);
-        when(context.getSystemService(Context.POWER_SERVICE)).thenReturn(mockPowerManager);
-        
-        // Test battery optimization exemption check
-        when(mockPowerManager.isIgnoringBatteryOptimizations(anyString())).thenReturn(true);
-        plugin.checkBatteryOptimization();
-        
-        // Test Doze mode detection
-        when(mockPowerManager.isDeviceIdleMode()).thenReturn(true);
-        assertTrue(plugin.isDeviceInDozeMode());
-        
-        // Test wake lock acquisition and release
-        PowerManager.WakeLock mockWakeLock = mock(PowerManager.WakeLock.class);
-        when(mockPowerManager.newWakeLock(anyInt(), anyString())).thenReturn(mockWakeLock);
-        when(mockWakeLock.isHeld()).thenReturn(false);
-        
-        plugin.acquireWakeLock();
-        verify(mockWakeLock).acquire(anyLong());
-        
-        when(mockWakeLock.isHeld()).thenReturn(true);
-        plugin.releaseWakeLock();
-        verify(mockWakeLock).release();
-        
-        // Test battery optimization exemption request
-        PluginCall mockCall = mock(PluginCall.class);
-        plugin.requestBatteryOptimizationExemption(mockCall);
-        verify(context).startActivity(any(Intent.class));
-    }
-    
-    @Test
-    public void testNotificationChannelCreation() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            // Verify notification channel was created
-            // Note: Actual verification would require mocking NotificationManager
-        }
-    }
-    
-    @Test
-    public void testRetryLogic() {
-        // Test retry mechanism
-        // Note: Actual verification would require mocking network calls
-    }
-    
-    @Test
-    public void testEventHandling() {
-        // Test notification event handling
-        // Note: Actual verification would require mocking event system
-    }
-    
-    @Test
-    public void testResourceCleanup() {
-        // Test resource cleanup
-        // Note: Actual verification would require monitoring system resources
-    }
-    
-    @Test
-    public void testBatteryMonitoring() {
-        // Mock battery status intent
-        Intent batteryStatus = new Intent(Intent.ACTION_BATTERY_CHANGED);
-        batteryStatus.putExtra(BatteryManager.EXTRA_LEVEL, 75);
-        batteryStatus.putExtra(BatteryManager.EXTRA_SCALE, 100);
-        batteryStatus.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_HEALTH_CHARGING);
-        
-        // Send battery status broadcast
-        context.sendBroadcast(batteryStatus);
-        
-        // Verify battery status was updated
-        assertEquals(75, plugin.getBatteryLevel());
-        assertTrue(plugin.isCharging());
-        
-        // Test battery status retrieval
-        PluginCall mockCall = mock(PluginCall.class);
-        plugin.getBatteryStatus(mockCall);
-        verify(mockCall).resolve(any(JSObject.class));
-        
-        // Verify battery stats were stored
-        SharedPreferences prefs = context.getSharedPreferences(SETTINGS_KEY, Context.MODE_PRIVATE);
-        assertEquals(75, prefs.getInt("last_battery_level", -1));
-        assertTrue(prefs.getBoolean("last_charging_state", false));
-        assertTrue(prefs.getLong("last_battery_check", 0) > 0);
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationReceiverTest.java b/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationReceiverTest.java
deleted file mode 100644
index 0fe1193..0000000
--- a/android/app/src/androidTest/java/com/timesafari/dailynotification/DailyNotificationReceiverTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * DailyNotificationReceiverTest.java
- * Daily Notification Plugin for Capacitor
- * 
- * Tests for the DailyNotificationReceiver
- * 
- * Features:
- * - Unit tests
- * - Integration tests
- * - Edge cases
- * - Error scenarios
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-@RunWith(AndroidJUnit4.class)
-public class DailyNotificationReceiverTest {
-    private DailyNotificationReceiver receiver;
-    private Context context;
-    
-    @Before
-    public void setUp() {
-        context = ApplicationProvider.getApplicationContext();
-        receiver = new DailyNotificationReceiver();
-    }
-    
-    @Test
-    public void testValidNotificationData() {
-        Intent intent = new Intent();
-        intent.putExtra("url", "https://example.com");
-        intent.putExtra("title", "Test Notification");
-        intent.putExtra("body", "Test Body");
-        intent.putExtra("sound", true);
-        intent.putExtra("priority", "high");
-        
-        receiver.onReceive(context, intent);
-        
-        // Note: Actual verification would require mocking NotificationManager
-    }
-    
-    @Test
-    public void testMissingNotificationData() {
-        Intent intent = new Intent();
-        intent.putExtra("url", "https://example.com");
-        // Missing title and body
-        
-        receiver.onReceive(context, intent);
-        
-        // Note: Actual verification would require checking logs
-    }
-    
-    @Test
-    public void testInvalidPriority() {
-        Intent intent = new Intent();
-        intent.putExtra("url", "https://example.com");
-        intent.putExtra("title", "Test Notification");
-        intent.putExtra("body", "Test Body");
-        intent.putExtra("priority", "invalid");
-        
-        receiver.onReceive(context, intent);
-        
-        // Note: Actual verification would require checking logs
-    }
-    
-    @Test
-    public void testNotificationTap() {
-        Intent intent = new Intent();
-        intent.putExtra("url", "https://example.com");
-        intent.putExtra("title", "Test Notification");
-        intent.putExtra("body", "Test Body");
-        
-        // Note: Actual verification would require mocking PendingIntent
-    }
-    
-    @Test
-    public void testSoundSettings() {
-        Intent intent = new Intent();
-        intent.putExtra("url", "https://example.com");
-        intent.putExtra("title", "Test Notification");
-        intent.putExtra("body", "Test Body");
-        intent.putExtra("sound", false);
-        
-        receiver.onReceive(context, intent);
-        
-        // Note: Actual verification would require mocking NotificationManager
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 13ff14c..4d7ca38 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -1,21 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    package="com.timesafari.dailynotification">
-
-    <uses-sdk android:minSdkVersion="22" android:targetSdkVersion="33" />
-    
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
-    <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
-
-    <!-- Battery optimization permissions -->
-    <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
-    <uses-permission android:name="android.permission.WAKE_LOCK" />
-    
-    <!-- Background task permissions -->
-    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
-    <uses-permission android:name="android.permission.USE_EXACT_ALARM" />
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
 
     <application
         android:allowBackup="true"
@@ -23,15 +7,15 @@
         android:label="@string/app_name"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
-        android:theme="@style/AppTheme"
-        tools:targetApi="31">
+        android:theme="@style/AppTheme">
 
         <activity
+            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode"
             android:name=".MainActivity"
-            android:exported="true"
-            android:label="@string/app_name"
+            android:label="@string/title_activity_main"
+            android:theme="@style/AppTheme.NoActionBarLaunch"
             android:launchMode="singleTask"
-            android:theme="@style/AppTheme.NoActionBarLaunch">
+            android:exported="true">
 
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -50,4 +34,8 @@
                 android:resource="@xml/file_paths"></meta-data>
         </provider>
     </application>
+
+    <!-- Permissions -->
+
+    <uses-permission android:name="android.permission.INTERNET" />
 </manifest>
diff --git a/android/app/src/main/java/README.md b/android/app/src/main/java/README.md
deleted file mode 100644
index 29e89d5..0000000
--- a/android/app/src/main/java/README.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# Android Implementation
-
-This directory contains the Android-specific implementation of the DailyNotification plugin.
-
-## Implementation Details
-
-The Android implementation uses:
-
-- `WorkManager` for periodic data fetching
-- `AlarmManager` for precise notification scheduling
-- `SharedPreferences` for local data storage
-- Android's notification channels for proper notification display
-
-## Native Code Location
-
-The native Android implementation is located in the `android/` directory at the project root.
-
-## Key Components
-
-1. `DailyNotificationAndroid.java`: Main plugin class
-2. `FetchWorker.java`: Background work for data fetching
-3. `NotificationReceiver.java`: Handles notification display
-4. `NotificationHelper.java`: Manages notification creation and display
-
-## Implementation Notes
-
-- Uses Android's WorkManager for reliable background tasks
-- Implements proper battery optimization handling
-- Supports Android 8.0+ notification channels
-- Handles Doze mode and battery optimizations
-- Uses SharedPreferences for lightweight data storage
-
-## Testing
-
-Run Android-specific tests with:
-
-```bash
-npm run test:android
-``` 
\ No newline at end of file
diff --git a/android/app/src/main/java/com/timesafari/dailynotification/BatteryOptimizationSettings.java b/android/app/src/main/java/com/timesafari/dailynotification/BatteryOptimizationSettings.java
deleted file mode 100644
index 41c9afc..0000000
--- a/android/app/src/main/java/com/timesafari/dailynotification/BatteryOptimizationSettings.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/**
- * BatteryOptimizationSettings.java
- * Daily Notification Plugin for Capacitor
- * 
- * Manages battery optimization settings and power state monitoring
- * 
- * Features:
- * - Battery optimization exemption management
- * - Power state monitoring
- * - Adaptive scheduling based on power state
- * - Battery level monitoring
- * - Doze mode handling
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.BatteryManager;
-import android.os.Build;
-import android.os.PowerManager;
-import android.provider.Settings;
-import android.content.SharedPreferences;
-
-import androidx.work.Constraints;
-import androidx.work.OneTimeWorkRequest;
-import androidx.work.WorkManager;
-
-import java.util.concurrent.TimeUnit;
-
-public class BatteryOptimizationSettings {
-    private static final String TAG = "BatteryOptimizationSettings";
-    private static final String BATTERY_OPTIMIZATION_KEY = "battery_optimization_exempt";
-    private static final String POWER_STATE_KEY = "power_state";
-    private static final String BATTERY_CHECK_INTERVAL = "battery_check_interval";
-    private static final long DEFAULT_CHECK_INTERVAL = TimeUnit.HOURS.toMillis(1);
-    
-    private final Context context;
-    private final PowerManager powerManager;
-    private final SharedPreferences settings;
-    private final DailyNotificationLogger logger;
-    
-    private boolean isOptimizationExempt = false;
-    private int powerState = PowerManager.POWER_STATE_NORMAL;
-    private int batteryLevel = 0;
-    private boolean isCharging = false;
-    private long lastBatteryCheck = 0;
-    
-    public BatteryOptimizationSettings(Context context, SharedPreferences settings) {
-        this.context = context;
-        this.settings = settings;
-        this.powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
-        this.logger = new DailyNotificationLogger();
-        
-        // Load saved state
-        isOptimizationExempt = settings.getBoolean(BATTERY_OPTIMIZATION_KEY, false);
-        powerState = settings.getInt(POWER_STATE_KEY, PowerManager.POWER_STATE_NORMAL);
-        lastBatteryCheck = settings.getLong(BATTERY_CHECK_INTERVAL, 0);
-    }
-    
-    public boolean requestBatteryOptimizationExemption() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
-            try {
-                // Check if already exempt
-                if (isOptimizationExempt) {
-                    logger.log("App already exempt from battery optimization", 
-                              DailyNotificationLogger.Level.INFO);
-                    return true;
-                }
-                
-                // Create intent for battery optimization settings
-                Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
-                intent.setData(Uri.parse("package:" + context.getPackageName()));
-                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                
-                // Store request time
-                long requestTime = System.currentTimeMillis();
-                SharedPreferences.Editor editor = settings.edit();
-                editor.putLong("last_optimization_request", requestTime);
-                editor.apply();
-                
-                // Start settings activity
-                context.startActivity(intent);
-                
-                // Schedule a check for the optimization status
-                scheduleOptimizationCheck();
-                
-                logger.log("Battery optimization exemption requested", 
-                          DailyNotificationLogger.Level.INFO);
-                return true;
-            } catch (Exception e) {
-                logger.log("Error requesting battery optimization exemption: " + e.getMessage(), 
-                          DailyNotificationLogger.Level.ERROR);
-                return false;
-            }
-        }
-        return false;
-    }
-    
-    private void scheduleOptimizationCheck() {
-        OneTimeWorkRequest checkWork = new OneTimeWorkRequest.Builder(BatteryCheckWorker.class)
-            .setInitialDelay(5, TimeUnit.SECONDS)
-            .setConstraints(new Constraints.Builder()
-                .setRequiresBatteryNotLow(true)
-                .build())
-            .build();
-            
-        WorkManager.getInstance(context).enqueue(checkWork);
-    }
-    
-    public void updatePowerState() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
-            try {
-                int newPowerState = powerManager.getPowerState();
-                if (newPowerState != powerState) {
-                    powerState = newPowerState;
-                    SharedPreferences.Editor editor = settings.edit();
-                    editor.putInt(POWER_STATE_KEY, powerState);
-                    editor.apply();
-                    
-                    logger.log("Power state changed to: " + getPowerStateString(powerState), 
-                              DailyNotificationLogger.Level.INFO);
-                              
-                    adjustSchedulingForPowerState();
-                }
-            } catch (Exception e) {
-                logger.log("Error updating power state: " + e.getMessage(), 
-                          DailyNotificationLogger.Level.ERROR);
-            }
-        }
-    }
-    
-    public void updateBatteryStatus() {
-        try {
-            Intent batteryStatus = context.registerReceiver(null, 
-                new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
-                
-            if (batteryStatus != null) {
-                int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
-                int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
-                float batteryPct = level * 100 / (float)scale;
-                
-                int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
-                boolean charging = status == BatteryManager.BATTERY_HEALTH_CHARGING ||
-                                 status == BatteryManager.BATTERY_HEALTH_FULL;
-                
-                batteryLevel = (int)batteryPct;
-                isCharging = charging;
-                lastBatteryCheck = System.currentTimeMillis();
-                
-                // Store battery stats
-                SharedPreferences.Editor editor = settings.edit();
-                editor.putInt("last_battery_level", batteryLevel);
-                editor.putBoolean("last_charging_state", isCharging);
-                editor.putLong("last_battery_check", lastBatteryCheck);
-                editor.apply();
-                
-                logger.log(String.format("Battery status updated: %d%% (%s)", 
-                    batteryLevel, 
-                    isCharging ? "charging" : "not charging"),
-                    DailyNotificationLogger.Level.DEBUG);
-            }
-        } catch (Exception e) {
-            logger.log("Error updating battery status: " + e.getMessage(), 
-                      DailyNotificationLogger.Level.ERROR);
-        }
-    }
-    
-    private void adjustSchedulingForPowerState() {
-        switch (powerState) {
-            case PowerManager.POWER_STATE_SAVE:
-                // In power save mode, increase the interval between checks
-                lastBatteryCheck = System.currentTimeMillis() - TimeUnit.HOURS.toMillis(2);
-                break;
-            case PowerManager.POWER_STATE_NORMAL:
-                // In normal mode, use standard intervals
-                lastBatteryCheck = System.currentTimeMillis() - TimeUnit.MINUTES.toMillis(30);
-                break;
-            case PowerManager.POWER_STATE_OPTIMIZED:
-                // In optimized mode, use longer intervals
-                lastBatteryCheck = System.currentTimeMillis() - TimeUnit.HOURS.toMillis(4);
-                break;
-        }
-    }
-    
-    private String getPowerStateString(int state) {
-        switch (state) {
-            case PowerManager.POWER_STATE_SAVE:
-                return "POWER_SAVE";
-            case PowerManager.POWER_STATE_NORMAL:
-                return "NORMAL";
-            case PowerManager.POWER_STATE_OPTIMIZED:
-                return "OPTIMIZED";
-            default:
-                return "UNKNOWN";
-        }
-    }
-    
-    public boolean isOptimizationExempt() {
-        return isOptimizationExempt;
-    }
-    
-    public int getPowerState() {
-        return powerState;
-    }
-    
-    public int getBatteryLevel() {
-        return batteryLevel;
-    }
-    
-    public boolean isCharging() {
-        return isCharging;
-    }
-    
-    public long getLastBatteryCheck() {
-        return lastBatteryCheck;
-    }
-    
-    public boolean shouldCheckBattery() {
-        return System.currentTimeMillis() - lastBatteryCheck > DEFAULT_CHECK_INTERVAL;
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationConfig.java b/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationConfig.java
deleted file mode 100644
index c881f90..0000000
--- a/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationConfig.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * DailyNotificationConfig.java
- * Daily Notification Plugin for Capacitor
- * 
- * Configuration manager for the Daily Notification plugin
- * 
- * Features:
- * - Singleton pattern
- * - Configuration options
- * - Default values
- * - Settings persistence
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import java.util.TimeZone;
-
-public class DailyNotificationConfig {
-    private static DailyNotificationConfig instance;
-    
-    private int maxNotificationsPerDay;
-    private TimeZone defaultTimeZone;
-    private boolean loggingEnabled;
-    private int retentionDays;
-    
-    private DailyNotificationConfig() {
-        resetToDefaults();
-    }
-    
-    public static synchronized DailyNotificationConfig getInstance() {
-        if (instance == null) {
-            instance = new DailyNotificationConfig();
-        }
-        return instance;
-    }
-    
-    public void resetToDefaults() {
-        maxNotificationsPerDay = 10;
-        defaultTimeZone = TimeZone.getDefault();
-        loggingEnabled = true;
-        retentionDays = 7;
-    }
-    
-    public int getMaxNotificationsPerDay() {
-        return maxNotificationsPerDay;
-    }
-    
-    public void setMaxNotificationsPerDay(int maxNotificationsPerDay) {
-        if (maxNotificationsPerDay < 1) {
-            throw new IllegalArgumentException("Max notifications per day must be greater than 0");
-        }
-        this.maxNotificationsPerDay = maxNotificationsPerDay;
-    }
-    
-    public TimeZone getDefaultTimeZone() {
-        return defaultTimeZone;
-    }
-    
-    public void setDefaultTimeZone(TimeZone defaultTimeZone) {
-        if (defaultTimeZone == null) {
-            throw new IllegalArgumentException("Default timezone cannot be null");
-        }
-        this.defaultTimeZone = defaultTimeZone;
-    }
-    
-    public boolean isLoggingEnabled() {
-        return loggingEnabled;
-    }
-    
-    public void setLoggingEnabled(boolean loggingEnabled) {
-        this.loggingEnabled = loggingEnabled;
-        DailyNotificationLogger.setLoggingEnabled(loggingEnabled);
-    }
-    
-    public int getRetentionDays() {
-        return retentionDays;
-    }
-    
-    public void setRetentionDays(int retentionDays) {
-        if (retentionDays < 1) {
-            throw new IllegalArgumentException("Retention days must be greater than 0");
-        }
-        this.retentionDays = retentionDays;
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationConstants.java b/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationConstants.java
deleted file mode 100644
index 1389ef9..0000000
--- a/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationConstants.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * DailyNotificationConstants.java
- * Daily Notification Plugin for Capacitor
- * 
- * Constants used throughout the Daily Notification plugin
- * 
- * Features:
- * - Default values
- * - Notification identifiers
- * - Settings keys
- * - Channel settings
- * - Time constants
- * - Error messages
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-public class DailyNotificationConstants {
-    // Default values
-    public static final String DEFAULT_TITLE = "Daily Notification";
-    public static final String DEFAULT_BODY = "Your daily update is ready";
-    
-    // Notification identifiers
-    public static final String NOTIFICATION_ID_PREFIX = "daily-notification-";
-    public static final String EVENT_NAME = "notification";
-    
-    // Settings class
-    public static class Settings {
-        public static final String SOUND = "sound";
-        public static final String PRIORITY = "priority";
-        public static final String TIMEZONE = "timezone";
-        public static final String RETRY_COUNT = "retryCount";
-        public static final String RETRY_INTERVAL = "retryInterval";
-        
-        public static final boolean DEFAULT_SOUND = true;
-        public static final String DEFAULT_PRIORITY = "default";
-        public static final int DEFAULT_RETRY_COUNT = 3;
-        public static final int DEFAULT_RETRY_INTERVAL = 1000;
-    }
-    
-    // Plugin method keys
-    public static class Keys {
-        public static final String URL = "url";
-        public static final String TIME = "time";
-        public static final String TITLE = "title";
-        public static final String BODY = "body";
-        public static final String SOUND = "sound";
-        public static final String PRIORITY = "priority";
-        public static final String TIMEZONE = "timezone";
-    }
-    
-    // Channel settings
-    public static class Channel {
-        public static final String ID = "daily_notification_channel";
-        public static final String NAME = "Daily Notifications";
-        public static final String DESCRIPTION = "Daily notification updates";
-        public static final boolean ENABLE_VIBRATION = true;
-        public static final boolean ENABLE_LIGHTS = true;
-    }
-    
-    // Time constants
-    public static class Time {
-        public static final long MILLIS_PER_DAY = 86400000;
-        public static final int MAX_HOURS = 24;
-        public static final int MAX_MINUTES = 60;
-    }
-    
-    // Error messages
-    public static class Errors {
-        public static final String MISSING_PARAMS = "Missing required parameters";
-        public static final String INVALID_TIME = "Invalid time format";
-        public static final String INVALID_TIMEZONE = "Invalid timezone";
-        public static final String INVALID_PRIORITY = "Invalid priority value";
-        public static final String SCHEDULING_FAILED = "Failed to schedule notification";
-        public static final String PERMISSION_DENIED = "Notification permission denied";
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationLogger.java b/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationLogger.java
deleted file mode 100644
index 76d7bcd..0000000
--- a/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationLogger.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * DailyNotificationLogger.java
- * Daily Notification Plugin for Capacitor
- * 
- * Logging utility for the Daily Notification plugin
- * 
- * Features:
- * - Log levels (DEBUG, INFO, WARNING, ERROR)
- * - Throwable support
- * - Enable/disable logging
- * - Tag-based logging
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import android.util.Log;
-
-public class DailyNotificationLogger {
-    private static final String TAG = "DailyNotification";
-    private static boolean loggingEnabled = true;
-    
-    public enum Level {
-        DEBUG,
-        INFO,
-        WARNING,
-        ERROR
-    }
-    
-    public static void setLoggingEnabled(boolean enabled) {
-        loggingEnabled = enabled;
-    }
-    
-    public static boolean isLoggingEnabled() {
-        return loggingEnabled;
-    }
-    
-    public void log(String message, Level level) {
-        log(message, level, null);
-    }
-    
-    public void log(String message, Level level, Throwable throwable) {
-        if (!loggingEnabled) {
-            return;
-        }
-        
-        String formattedMessage = formatMessage(message);
-        
-        switch (level) {
-            case DEBUG:
-                if (throwable != null) {
-                    Log.d(TAG, formattedMessage, throwable);
-                } else {
-                    Log.d(TAG, formattedMessage);
-                }
-                break;
-                
-            case INFO:
-                if (throwable != null) {
-                    Log.i(TAG, formattedMessage, throwable);
-                } else {
-                    Log.i(TAG, formattedMessage);
-                }
-                break;
-                
-            case WARNING:
-                if (throwable != null) {
-                    Log.w(TAG, formattedMessage, throwable);
-                } else {
-                    Log.w(TAG, formattedMessage);
-                }
-                break;
-                
-            case ERROR:
-                if (throwable != null) {
-                    Log.e(TAG, formattedMessage, throwable);
-                } else {
-                    Log.e(TAG, formattedMessage);
-                }
-                break;
-        }
-    }
-    
-    private String formatMessage(String message) {
-        if (message == null) {
-            return "null";
-        }
-        
-        return String.format("[%s] %s", TAG, message);
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationPlugin.java b/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationPlugin.java
deleted file mode 100644
index 7bd6bca..0000000
--- a/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationPlugin.java
+++ /dev/null
@@ -1,736 +0,0 @@
-/**
- * DailyNotificationPlugin.java
- * Daily Notification Plugin for Capacitor
- * 
- * Handles daily notification scheduling and management on Android
- * 
- * Features:
- * - Daily notification scheduling with precise timing
- * - Notification channel management
- * - Settings persistence
- * - Background task handling
- * - Battery optimization support
- * - Error handling and logging
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import android.app.AlarmManager;
-import android.app.NotificationChannel;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.SharedPreferences;
-import android.os.BatteryManager;
-import android.os.Build;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.PowerManager;
-import android.os.SystemClock;
-import android.provider.Settings;
-import android.util.Log;
-
-import com.getcapacitor.JSObject;
-import com.getcapacitor.Plugin;
-import com.getcapacitor.PluginCall;
-import com.getcapacitor.PluginMethod;
-import com.getcapacitor.annotation.CapacitorPlugin;
-
-import java.util.Calendar;
-import java.util.TimeZone;
-import java.util.concurrent.TimeUnit;
-
-import androidx.work.Constraints;
-import androidx.work.OneTimeWorkRequest;
-import androidx.work.WorkManager;
-
-@CapacitorPlugin(name = "DailyNotification")
-public class DailyNotificationPlugin extends Plugin {
-    private static final String TAG = "DailyNotificationPlugin";
-    private static final String CHANNEL_ID = "daily_notification_channel";
-    private static final String CHANNEL_NAME = "Daily Notifications";
-    private static final String CHANNEL_DESCRIPTION = "Daily notification updates";
-    private static final String SETTINGS_KEY = "daily_notification_settings";
-    private static final String BATTERY_STATS_KEY = "battery_stats";
-    private static final String BATTERY_OPTIMIZATION_KEY = "battery_optimization_status";
-    private static final String BATTERY_CHECK_INTERVAL = "battery_check_interval";
-    private static final String LAST_NOTIFICATION_KEY = "last_notification_time";
-    private static final String POWER_STATE_KEY = "power_state";
-    private static final String ADAPTIVE_SCHEDULING_KEY = "adaptive_scheduling";
-    
-    private NotificationManager notificationManager;
-    private AlarmManager alarmManager;
-    private PowerManager powerManager;
-    private PowerManager.WakeLock wakeLock;
-    private Context context;
-    private SharedPreferences settings;
-    private DailyNotificationLogger logger;
-    private boolean isOptimizationExempt = false;
-    private long lastBatteryCheck;
-    private int batteryLevel;
-    private boolean isCharging;
-    private long lastOptimizationCheck;
-    private boolean adaptiveSchedulingEnabled = true;
-    private int powerState = PowerManager.POWER_STATE_NORMAL;
-    
-    @Override
-    public void load() {
-        context = getContext();
-        notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
-        alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
-        powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
-        settings = context.getSharedPreferences(SETTINGS_KEY, Context.MODE_PRIVATE);
-        logger = new DailyNotificationLogger();
-        
-        createNotificationChannel();
-        initializeSettings();
-        checkBatteryOptimization();
-        initializeBatteryMonitoring();
-        logger.log("Plugin loaded successfully", DailyNotificationLogger.Level.INFO);
-    }
-    
-    private void initializeSettings() {
-        SharedPreferences.Editor editor = settings.edit();
-        if (!settings.contains("sound")) editor.putBoolean("sound", true);
-        if (!settings.contains("priority")) editor.putString("priority", "default");
-        if (!settings.contains("retryCount")) editor.putInt("retryCount", 3);
-        if (!settings.contains("retryInterval")) editor.putInt("retryInterval", 1000);
-        editor.apply();
-    }
-    
-    private void createNotificationChannel() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            NotificationChannel channel = new NotificationChannel(
-                CHANNEL_ID,
-                CHANNEL_NAME,
-                NotificationManager.IMPORTANCE_DEFAULT
-            );
-            channel.setDescription(CHANNEL_DESCRIPTION);
-            channel.enableVibration(true);
-            channel.enableLights(true);
-            notificationManager.createNotificationChannel(channel);
-            logger.log("Notification channel created", DailyNotificationLogger.Level.INFO);
-        }
-    }
-    
-    private void checkBatteryOptimization() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
-            String packageName = context.getPackageName();
-            isOptimizationExempt = powerManager.isIgnoringBatteryOptimizations(packageName);
-            lastOptimizationCheck = System.currentTimeMillis();
-            
-            // Store optimization status
-            SharedPreferences.Editor editor = settings.edit();
-            editor.putBoolean(BATTERY_OPTIMIZATION_KEY, isOptimizationExempt);
-            editor.putLong("last_optimization_check", lastOptimizationCheck);
-            editor.apply();
-            
-            logger.log("Battery optimization status: " + (isOptimizationExempt ? "exempt" : "not exempt"), 
-                      DailyNotificationLogger.Level.INFO);
-                      
-            // If not exempt and haven't checked recently, request exemption
-            if (!isOptimizationExempt && 
-                System.currentTimeMillis() - lastOptimizationCheck > BATTERY_CHECK_INTERVAL) {
-                requestBatteryOptimizationExemption(null);
-            }
-        }
-    }
-    
-    @PluginMethod
-    public void requestBatteryOptimizationExemption(PluginCall call) {
-        try {
-            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
-                // Check if we already have exemption
-                if (isOptimizationExempt) {
-                    logger.log("App already exempt from battery optimization", 
-                              DailyNotificationLogger.Level.INFO);
-                    if (call != null) {
-                        call.resolve();
-                    }
-                    return;
-                }
-
-                // Create intent for battery optimization settings
-                Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
-                intent.setData(android.net.Uri.parse("package:" + context.getPackageName()));
-                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                
-                // Store current time for tracking
-                long requestTime = System.currentTimeMillis();
-                SharedPreferences.Editor editor = settings.edit();
-                editor.putLong("last_optimization_request", requestTime);
-                editor.apply();
-
-                // Start the activity
-                context.startActivity(intent);
-                
-                // Schedule a check for the optimization status after a delay
-                new Handler(Looper.getMainLooper()).postDelayed(() -> {
-                    checkBatteryOptimization();
-                    if (call != null) {
-                        JSObject result = new JSObject();
-                        result.put("isExempt", isOptimizationExempt);
-                        result.put("requestTime", requestTime);
-                        result.put("checkTime", System.currentTimeMillis());
-                        call.resolve(result);
-                    }
-                }, 5000); // Check after 5 seconds
-                
-                logger.log("Battery optimization exemption requested", 
-                          DailyNotificationLogger.Level.INFO);
-            } else {
-                if (call != null) {
-                    call.reject("Battery optimization exemption not supported on this Android version");
-                }
-            }
-        } catch (Exception e) {
-            logger.log("Error requesting battery optimization exemption: " + e.getMessage(), 
-                      DailyNotificationLogger.Level.ERROR);
-            if (call != null) {
-                call.reject("Failed to request battery optimization exemption: " + e.getMessage());
-            }
-        }
-    }
-    
-    private void acquireWakeLock() {
-        if (wakeLock == null) {
-            wakeLock = powerManager.newWakeLock(
-                PowerManager.PARTIAL_WAKE_LOCK,
-                "DailyNotification:WakeLock"
-            );
-        }
-
-        if (!wakeLock.isHeld()) {
-            // Adjust wake lock duration based on battery level
-            long duration = TimeUnit.MINUTES.toMillis(1);
-            if (batteryLevel < 15) {
-                duration = TimeUnit.SECONDS.toMillis(30);
-            } else if (batteryLevel < 30) {
-                duration = TimeUnit.SECONDS.toMillis(45);
-            }
-            
-            wakeLock.acquire(duration);
-            logger.log("Wake lock acquired for " + duration + "ms", DailyNotificationLogger.Level.DEBUG);
-        }
-    }
-    
-    private void releaseWakeLock() {
-        if (wakeLock != null && wakeLock.isHeld()) {
-            wakeLock.release();
-            logger.log("Wake lock released", DailyNotificationLogger.Level.DEBUG);
-        }
-    }
-    
-    private boolean isDeviceInDozeMode() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
-            return powerManager.isDeviceIdleMode();
-        }
-        return false;
-    }
-    
-    private void handleDozeMode() {
-        if (isDeviceInDozeMode()) {
-            logger.log("Device is in Doze mode", DailyNotificationLogger.Level.WARNING);
-            
-            // If not exempt from battery optimization, try to request exemption
-            if (!isOptimizationExempt) {
-                requestBatteryOptimizationExemption(null);
-            }
-            
-            // Schedule a maintenance window for the next time the device exits Doze mode
-            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
-                // Use WorkManager for more reliable scheduling during Doze
-                OneTimeWorkRequest maintenanceWork = new OneTimeWorkRequest.Builder(MaintenanceWorker.class)
-                    .setInitialDelay(15, TimeUnit.MINUTES)
-                    .setConstraints(new Constraints.Builder()
-                        .setRequiresDeviceIdle(false)
-                        .setRequiresBatteryNotLow(true)
-                        .build())
-                    .build();
-                    
-                WorkManager.getInstance(context).enqueue(maintenanceWork);
-                
-                // Also set an alarm as backup
-                alarmManager.setAndAllowWhileIdle(
-                    AlarmManager.RTC_WAKEUP,
-                    System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(15),
-                    createMaintenancePendingIntent()
-                );
-            }
-        }
-    }
-    
-    private PendingIntent createMaintenancePendingIntent() {
-        Intent intent = new Intent(context, DailyNotificationReceiver.class);
-        intent.setAction("MAINTENANCE_WINDOW");
-        return PendingIntent.getBroadcast(
-            context,
-            0,
-            intent,
-            PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
-        );
-    }
-    
-    @PluginMethod
-    public void scheduleDailyNotification(PluginCall call) {
-        try {
-            // Check battery optimization status
-            if (!isOptimizationExempt) {
-                logger.log("Warning: App is not exempt from battery optimization", 
-                          DailyNotificationLogger.Level.WARNING);
-            }
-            
-            // Check Doze mode
-            handleDozeMode();
-            
-            // Acquire wake lock for scheduling
-            acquireWakeLock();
-            
-            String url = call.getString("url");
-            String time = call.getString("time");
-            
-            if (url == null || time == null) {
-                throw new IllegalArgumentException("Missing required parameters");
-            }
-            
-            // Parse time string (HH:mm format)
-            String[] timeComponents = time.split(":");
-            if (timeComponents.length != 2) {
-                throw new IllegalArgumentException("Invalid time format");
-            }
-            
-            int hour = Integer.parseInt(timeComponents[0]);
-            int minute = Integer.parseInt(timeComponents[1]);
-            
-            if (hour < 0 || hour >= 24 || minute < 0 || minute >= 60) {
-                throw new IllegalArgumentException("Invalid time values");
-            }
-            
-            // Create calendar instance for the specified time
-            Calendar calendar = Calendar.getInstance();
-            calendar.set(Calendar.HOUR_OF_DAY, hour);
-            calendar.set(Calendar.MINUTE, minute);
-            calendar.set(Calendar.SECOND, 0);
-            
-            // If the time has already passed today, schedule for tomorrow
-            if (calendar.getTimeInMillis() <= System.currentTimeMillis()) {
-                calendar.add(Calendar.DAY_OF_YEAR, 1);
-            }
-            
-            // Create intent for the notification
-            Intent intent = new Intent(context, DailyNotificationReceiver.class);
-            intent.putExtra("url", url);
-            intent.putExtra("title", call.getString("title", "Daily Notification"));
-            intent.putExtra("body", call.getString("body", "Your daily update is ready"));
-            intent.putExtra("sound", call.getBoolean("sound", settings.getBoolean("sound", true)));
-            intent.putExtra("priority", call.getString("priority", settings.getString("priority", "default")));
-            
-            PendingIntent pendingIntent = PendingIntent.getBroadcast(
-                context,
-                url.hashCode(),
-                intent,
-                PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
-            );
-            
-            // Schedule the alarm with exact timing
-            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
-                if (alarmManager.canScheduleExactAlarms()) {
-                    alarmManager.setExactAndAllowWhileIdle(
-                        AlarmManager.RTC_WAKEUP,
-                        calendar.getTimeInMillis(),
-                        pendingIntent
-                    );
-                } else {
-                    throw new SecurityException("Cannot schedule exact alarms");
-                }
-            } else {
-                alarmManager.setExactAndAllowWhileIdle(
-                    AlarmManager.RTC_WAKEUP,
-                    calendar.getTimeInMillis(),
-                    pendingIntent
-                );
-            }
-            
-            // Set repeating alarm for subsequent days
-            alarmManager.setRepeating(
-                AlarmManager.RTC_WAKEUP,
-                calendar.getTimeInMillis() + TimeUnit.DAYS.toMillis(1),
-                TimeUnit.DAYS.toMillis(1),
-                pendingIntent
-            );
-            
-            // Release wake lock after scheduling
-            releaseWakeLock();
-            
-            // Store the scheduled time and URL for potential rescheduling
-            SharedPreferences.Editor editor = settings.edit();
-            editor.putString("scheduled_time", time);
-            editor.putString("notification_url", url);
-            editor.putString("notification_title", call.getString("title", "Daily Notification"));
-            editor.putString("notification_body", call.getString("body", "Your daily update is ready"));
-            editor.apply();
-            
-            logger.log("Notification scheduled for " + time, DailyNotificationLogger.Level.INFO);
-            call.resolve();
-            
-        } catch (Exception e) {
-            releaseWakeLock();
-            logger.log("Error scheduling notification: " + e.getMessage(), DailyNotificationLogger.Level.ERROR);
-            call.reject("Failed to schedule notification: " + e.getMessage());
-        }
-    }
-    
-    @PluginMethod
-    public void getLastNotification(PluginCall call) {
-        try {
-            // TODO: Implement last notification retrieval from local storage
-            JSObject result = new JSObject();
-            result.put("id", "");
-            result.put("title", "");
-            result.put("body", "");
-            result.put("timestamp", 0);
-            call.resolve(result);
-        } catch (Exception e) {
-            logger.log("Error getting last notification: " + e.getMessage(), DailyNotificationLogger.Level.ERROR);
-            call.reject("Failed to get last notification: " + e.getMessage());
-        }
-    }
-    
-    @PluginMethod
-    public void cancelAllNotifications(PluginCall call) {
-        try {
-            Intent intent = new Intent(context, DailyNotificationReceiver.class);
-            PendingIntent pendingIntent = PendingIntent.getBroadcast(
-                context,
-                0,
-                intent,
-                PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
-            );
-            alarmManager.cancel(pendingIntent);
-            notificationManager.cancelAll();
-            logger.log("All notifications cancelled", DailyNotificationLogger.Level.INFO);
-            call.resolve();
-        } catch (Exception e) {
-            logger.log("Error cancelling notifications: " + e.getMessage(), DailyNotificationLogger.Level.ERROR);
-            call.reject("Failed to cancel notifications: " + e.getMessage());
-        }
-    }
-    
-    @PluginMethod
-    public void getNotificationStatus(PluginCall call) {
-        try {
-            JSObject result = new JSObject();
-            result.put("nextNotificationTime", getNextNotificationTime());
-            result.put("isEnabled", isNotificationEnabled());
-            result.put("settings", getCurrentSettings());
-            call.resolve(result);
-        } catch (Exception e) {
-            logger.log("Error getting notification status: " + e.getMessage(), DailyNotificationLogger.Level.ERROR);
-            call.reject("Failed to get notification status: " + e.getMessage());
-        }
-    }
-    
-    @PluginMethod
-    public void updateSettings(PluginCall call) {
-        try {
-            SharedPreferences.Editor editor = settings.edit();
-            
-            if (call.hasOption("sound")) {
-                editor.putBoolean("sound", call.getBoolean("sound"));
-            }
-            
-            if (call.hasOption("priority")) {
-                String priority = call.getString("priority");
-                if (isValidPriority(priority)) {
-                    editor.putString("priority", priority);
-                } else {
-                    throw new IllegalArgumentException("Invalid priority value");
-                }
-            }
-            
-            if (call.hasOption("timezone")) {
-                String timezone = call.getString("timezone");
-                if (TimeZone.getTimeZone(timezone) != null) {
-                    editor.putString("timezone", timezone);
-                } else {
-                    throw new IllegalArgumentException("Invalid timezone");
-                }
-            }
-            
-            editor.apply();
-            logger.log("Settings updated successfully", DailyNotificationLogger.Level.INFO);
-            call.resolve(getCurrentSettings());
-        } catch (Exception e) {
-            logger.log("Error updating settings: " + e.getMessage(), DailyNotificationLogger.Level.ERROR);
-            call.reject("Failed to update settings: " + e.getMessage());
-        }
-    }
-    
-    private long getNextNotificationTime() {
-        // TODO: Implement next notification time retrieval
-        return 0;
-    }
-    
-    private boolean isNotificationEnabled() {
-        return notificationManager.areNotificationsEnabled();
-    }
-    
-    private JSObject getCurrentSettings() {
-        JSObject settings = new JSObject();
-        settings.put("sound", this.settings.getBoolean("sound", true));
-        settings.put("priority", this.settings.getString("priority", "default"));
-        settings.put("timezone", this.settings.getString("timezone", TimeZone.getDefault().getID()));
-        return settings;
-    }
-    
-    private boolean isValidPriority(String priority) {
-        return priority != null && 
-               (priority.equals("high") || 
-                priority.equals("default") || 
-                priority.equals("low"));
-    }
-    
-    private void initializeBatteryMonitoring() {
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(Intent.ACTION_BATTERY_CHANGED);
-        filter.addAction(Intent.ACTION_POWER_CONNECTED);
-        filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
-        filter.addAction(PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED);
-        context.registerReceiver(batteryReceiver, filter);
-        updateBatteryStatus();
-        updatePowerState();
-    }
-    
-    private final BroadcastReceiver batteryReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            updateBatteryStatus();
-        }
-    };
-    
-    private void updateBatteryStatus() {
-        Intent batteryStatus = context.registerReceiver(null, 
-            new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
-            
-        if (batteryStatus != null) {
-            int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
-            int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
-            float batteryPct = level * 100 / (float)scale;
-            
-            int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
-            boolean charging = status == BatteryManager.BATTERY_HEALTH_CHARGING ||
-                             status == BatteryManager.BATTERY_HEALTH_FULL;
-            
-            batteryLevel = (int)batteryPct;
-            isCharging = charging;
-            lastBatteryCheck = System.currentTimeMillis();
-            
-            logger.log(String.format("Battery status updated: %d%% (%s)", 
-                batteryLevel, 
-                isCharging ? "charging" : "not charging"),
-                DailyNotificationLogger.Level.DEBUG);
-                
-            // Store battery stats
-            SharedPreferences.Editor editor = settings.edit();
-            editor.putInt("last_battery_level", batteryLevel);
-            editor.putBoolean("last_charging_state", isCharging);
-            editor.putLong("last_battery_check", lastBatteryCheck);
-            editor.apply();
-            
-            // Adjust scheduling based on battery level if adaptive scheduling is enabled
-            if (adaptiveSchedulingEnabled) {
-                adjustSchedulingForBatteryLevel();
-            }
-        }
-    }
-    
-    private void adjustSchedulingForBatteryLevel() {
-        if (batteryLevel < 15) {
-            // Critical battery level - reduce frequency
-            lastBatteryCheck = System.currentTimeMillis() - TimeUnit.HOURS.toMillis(4);
-        } else if (batteryLevel < 30) {
-            // Low battery level - moderate frequency
-            lastBatteryCheck = System.currentTimeMillis() - TimeUnit.HOURS.toMillis(2);
-        } else if (batteryLevel < 50) {
-            // Medium battery level - standard frequency
-            lastBatteryCheck = System.currentTimeMillis() - TimeUnit.HOURS.toMillis(1);
-        }
-    }
-    
-    private void updatePowerState() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
-            powerState = powerManager.getPowerState();
-            SharedPreferences.Editor editor = settings.edit();
-            editor.putInt(POWER_STATE_KEY, powerState);
-            editor.apply();
-            
-            // Adjust scheduling based on power state
-            if (adaptiveSchedulingEnabled) {
-                adjustSchedulingForPowerState();
-            }
-        }
-    }
-    
-    private void adjustSchedulingForPowerState() {
-        if (powerState == PowerManager.POWER_STATE_SAVE) {
-            // In power save mode, increase the interval between checks
-            lastBatteryCheck = System.currentTimeMillis() - TimeUnit.HOURS.toMillis(2);
-        } else if (powerState == PowerManager.POWER_STATE_NORMAL) {
-            // In normal mode, use standard intervals
-            lastBatteryCheck = System.currentTimeMillis() - TimeUnit.MINUTES.toMillis(30);
-        }
-    }
-    
-    @PluginMethod
-    public void getBatteryStatus(PluginCall call) {
-        try {
-            // Check battery optimization status if needed
-            if (System.currentTimeMillis() - lastOptimizationCheck > BATTERY_CHECK_INTERVAL) {
-                checkBatteryOptimization();
-            }
-            
-            JSObject result = new JSObject();
-            result.put("level", batteryLevel);
-            result.put("isCharging", isCharging);
-            result.put("lastCheck", lastBatteryCheck);
-            result.put("isOptimizationExempt", isOptimizationExempt);
-            result.put("lastOptimizationCheck", lastOptimizationCheck);
-            result.put("isInDozeMode", isDeviceInDozeMode());
-            call.resolve(result);
-        } catch (Exception e) {
-            logger.log("Error getting battery status: " + e.getMessage(), 
-                      DailyNotificationLogger.Level.ERROR);
-            call.reject("Failed to get battery status: " + e.getMessage());
-        }
-    }
-    
-    @Override
-    protected void handleOnDestroy() {
-        try {
-            context.unregisterReceiver(batteryReceiver);
-        } catch (Exception e) {
-            logger.log("Error unregistering battery receiver: " + e.getMessage(), 
-                      DailyNotificationLogger.Level.ERROR);
-        }
-        super.handleOnDestroy();
-    }
-    
-    public void rescheduleMissedNotifications() {
-        try {
-            long lastNotificationTime = settings.getLong(LAST_NOTIFICATION_KEY, 0);
-            long currentTime = System.currentTimeMillis();
-            
-            // If more than 24 hours have passed since the last notification
-            if (currentTime - lastNotificationTime > TimeUnit.DAYS.toMillis(1)) {
-                logger.log("Missed notifications detected, rescheduling", DailyNotificationLogger.Level.WARNING);
-                
-                // Get the scheduled time from settings
-                String scheduledTime = settings.getString("scheduled_time", null);
-                if (scheduledTime != null) {
-                    // Parse the scheduled time
-                    String[] timeComponents = scheduledTime.split(":");
-                    if (timeComponents.length == 2) {
-                        int hour = Integer.parseInt(timeComponents[0]);
-                        int minute = Integer.parseInt(timeComponents[1]);
-                        
-                        // Create calendar instance for the scheduled time
-                        Calendar calendar = Calendar.getInstance();
-                        calendar.set(Calendar.HOUR_OF_DAY, hour);
-                        calendar.set(Calendar.MINUTE, minute);
-                        calendar.set(Calendar.SECOND, 0);
-                        
-                        // If the time has already passed today, schedule for tomorrow
-                        if (calendar.getTimeInMillis() <= currentTime) {
-                            calendar.add(Calendar.DAY_OF_YEAR, 1);
-                        }
-                        
-                        // Get the notification URL from settings
-                        String url = settings.getString("notification_url", null);
-                        if (url != null) {
-                            // Create intent for the notification
-                            Intent intent = new Intent(context, DailyNotificationReceiver.class);
-                            intent.putExtra("url", url);
-                            intent.putExtra("title", settings.getString("notification_title", "Daily Notification"));
-                            intent.putExtra("body", settings.getString("notification_body", "Your daily update is ready"));
-                            intent.putExtra("sound", settings.getBoolean("sound", true));
-                            intent.putExtra("priority", settings.getString("priority", "default"));
-                            
-                            PendingIntent pendingIntent = PendingIntent.getBroadcast(
-                                context,
-                                url.hashCode(),
-                                intent,
-                                PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
-                            );
-                            
-                            // Schedule the notification
-                            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
-                                if (alarmManager.canScheduleExactAlarms()) {
-                                    alarmManager.setExactAndAllowWhileIdle(
-                                        AlarmManager.RTC_WAKEUP,
-                                        calendar.getTimeInMillis(),
-                                        pendingIntent
-                                    );
-                                }
-                            } else {
-                                alarmManager.setExactAndAllowWhileIdle(
-                                    AlarmManager.RTC_WAKEUP,
-                                    calendar.getTimeInMillis(),
-                                    pendingIntent
-                                );
-                            }
-                            
-                            logger.log("Missed notification rescheduled for " + scheduledTime, 
-                                      DailyNotificationLogger.Level.INFO);
-                        }
-                    }
-                }
-            }
-        } catch (Exception e) {
-            logger.log("Error rescheduling missed notifications: " + e.getMessage(), 
-                      DailyNotificationLogger.Level.ERROR);
-        }
-    }
-    
-    @PluginMethod
-    public void setAdaptiveScheduling(PluginCall call) {
-        try {
-            boolean enabled = call.getBoolean("enabled", true);
-            adaptiveSchedulingEnabled = enabled;
-            
-            SharedPreferences.Editor editor = settings.edit();
-            editor.putBoolean(ADAPTIVE_SCHEDULING_KEY, enabled);
-            editor.apply();
-            
-            logger.log("Adaptive scheduling " + (enabled ? "enabled" : "disabled"), 
-                      DailyNotificationLogger.Level.INFO);
-            call.resolve();
-        } catch (Exception e) {
-            logger.log("Error setting adaptive scheduling: " + e.getMessage(), 
-                      DailyNotificationLogger.Level.ERROR);
-            call.reject("Failed to set adaptive scheduling: " + e.getMessage());
-        }
-    }
-    
-    @PluginMethod
-    public void getPowerState(PluginCall call) {
-        try {
-            JSObject result = new JSObject();
-            result.put("powerState", powerState);
-            result.put("adaptiveScheduling", adaptiveSchedulingEnabled);
-            result.put("batteryLevel", batteryLevel);
-            result.put("isCharging", isCharging);
-            result.put("lastCheck", lastBatteryCheck);
-            call.resolve(result);
-        } catch (Exception e) {
-            logger.log("Error getting power state: " + e.getMessage(), 
-                      DailyNotificationLogger.Level.ERROR);
-            call.reject("Failed to get power state: " + e.getMessage());
-        }
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationReceiver.java b/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationReceiver.java
deleted file mode 100644
index 0a7d05b..0000000
--- a/android/app/src/main/java/com/timesafari/dailynotification/DailyNotificationReceiver.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/**
- * DailyNotificationReceiver.java
- * Daily Notification Plugin for Capacitor
- * 
- * Broadcast receiver for handling daily notifications
- * 
- * Features:
- * - Notification display with custom actions
- * - Rich notification content
- * - Event broadcasting
- * - Error recovery
- * - Notification categories
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import android.app.Notification;
-import android.app.NotificationChannel;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Build;
-import android.os.Bundle;
-
-import androidx.core.app.NotificationCompat;
-import androidx.core.app.NotificationManagerCompat;
-
-public class DailyNotificationReceiver extends BroadcastReceiver {
-    private static final String TAG = "DailyNotificationReceiver";
-    private DailyNotificationLogger logger;
-
-    // Notification categories
-    private static final String CATEGORY_DAILY = "DAILY_NOTIFICATION";
-    
-    // Action identifiers
-    private static final String ACTION_VIEW = "VIEW";
-    private static final String ACTION_DISMISS = "DISMISS";
-    private static final String ACTION_SNOOZE = "SNOOZE";
-
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        logger = new DailyNotificationLogger();
-        
-        try {
-            String url = intent.getStringExtra("url");
-            String title = intent.getStringExtra("title");
-            String body = intent.getStringExtra("body");
-            boolean sound = intent.getBooleanExtra("sound", true);
-            String priority = intent.getStringExtra("priority");
-            
-            if (url == null || title == null || body == null) {
-                throw new IllegalArgumentException("Missing required notification parameters");
-            }
-            
-            showNotification(context, title, body, url, sound, priority);
-            logger.log("Notification displayed successfully", DailyNotificationLogger.Level.INFO);
-            
-        } catch (Exception e) {
-            logger.log("Error displaying notification: " + e.getMessage(), 
-                      DailyNotificationLogger.Level.ERROR, e);
-        }
-    }
-    
-    private void showNotification(Context context, String title, String body, 
-                                String url, boolean sound, String priority) {
-        NotificationManager notificationManager = 
-            (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
-            
-        // Create notification channel if needed
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            NotificationChannel channel = new NotificationChannel(
-                DailyNotificationConstants.Channel.ID,
-                DailyNotificationConstants.Channel.NAME,
-                NotificationManager.IMPORTANCE_DEFAULT
-            );
-            channel.setDescription(DailyNotificationConstants.Channel.DESCRIPTION);
-            channel.enableVibration(DailyNotificationConstants.Channel.ENABLE_VIBRATION);
-            channel.enableLights(DailyNotificationConstants.Channel.ENABLE_LIGHTS);
-            notificationManager.createNotificationChannel(channel);
-        }
-            
-        NotificationCompat.Builder builder = new NotificationCompat.Builder(context, 
-            DailyNotificationConstants.Channel.ID)
-            .setSmallIcon(android.R.drawable.ic_dialog_info)
-            .setContentTitle(title)
-            .setContentText(body)
-            .setPriority(getNotificationPriority(priority))
-            .setCategory(CATEGORY_DAILY)
-            .setAutoCancel(true)
-            .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
-            .setStyle(new NotificationCompat.BigTextStyle().bigText(body));
-            
-        if (sound) {
-            builder.setDefaults(NotificationCompat.DEFAULT_SOUND);
-        }
-        
-        // Create intent for notification tap
-        Intent contentIntent = new Intent(context, context.getClass());
-        contentIntent.setData(Uri.parse(url));
-        
-        PendingIntent pendingIntent = PendingIntent.getActivity(
-            context,
-            0,
-            contentIntent,
-            PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
-        );
-        
-        builder.setContentIntent(pendingIntent);
-        
-        // Add custom actions
-        addCustomActions(builder, context, url);
-        
-        Notification notification = builder.build();
-        
-        // Use NotificationManagerCompat for better compatibility
-        NotificationManagerCompat notificationManagerCompat = 
-            NotificationManagerCompat.from(context);
-            
-        try {
-            notificationManagerCompat.notify(url.hashCode(), notification);
-        } catch (SecurityException e) {
-            logger.log("Security exception while showing notification: " + e.getMessage(),
-                      DailyNotificationLogger.Level.ERROR);
-        }
-    }
-    
-    private void addCustomActions(NotificationCompat.Builder builder, Context context, String url) {
-        // View action
-        Intent viewIntent = new Intent(context, context.getClass());
-        viewIntent.setAction(ACTION_VIEW);
-        viewIntent.setData(Uri.parse(url));
-        
-        PendingIntent viewPendingIntent = PendingIntent.getActivity(
-            context,
-            1,
-            viewIntent,
-            PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
-        );
-        
-        builder.addAction(android.R.drawable.ic_menu_view, "View", viewPendingIntent);
-        
-        // Snooze action
-        Intent snoozeIntent = new Intent(context, context.getClass());
-        snoozeIntent.setAction(ACTION_SNOOZE);
-        snoozeIntent.putExtra("url", url);
-        
-        PendingIntent snoozePendingIntent = PendingIntent.getBroadcast(
-            context,
-            2,
-            snoozeIntent,
-            PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
-        );
-        
-        builder.addAction(android.R.drawable.ic_menu_revert, "Snooze", snoozePendingIntent);
-        
-        // Dismiss action
-        Intent dismissIntent = new Intent(context, context.getClass());
-        dismissIntent.setAction(ACTION_DISMISS);
-        dismissIntent.putExtra("url", url);
-        
-        PendingIntent dismissPendingIntent = PendingIntent.getBroadcast(
-            context,
-            3,
-            dismissIntent,
-            PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE
-        );
-        
-        builder.addAction(android.R.drawable.ic_menu_close_clear_cancel, "Dismiss", dismissPendingIntent);
-    }
-    
-    private int getNotificationPriority(String priority) {
-        switch (priority.toLowerCase()) {
-            case "high":
-                return NotificationCompat.PRIORITY_HIGH;
-            case "low":
-                return NotificationCompat.PRIORITY_LOW;
-            default:
-                return NotificationCompat.PRIORITY_DEFAULT;
-        }
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/main/java/com/example/app/MainActivity.java b/android/app/src/main/java/com/timesafari/dailynotification/MainActivity.java
similarity index 69%
rename from android/app/src/main/java/com/example/app/MainActivity.java
rename to android/app/src/main/java/com/timesafari/dailynotification/MainActivity.java
index 966f32d..7f561c0 100644
--- a/android/app/src/main/java/com/example/app/MainActivity.java
+++ b/android/app/src/main/java/com/timesafari/dailynotification/MainActivity.java
@@ -1,4 +1,4 @@
-package com.example.app;
+package com.timesafari.dailynotification;
 
 import com.getcapacitor.BridgeActivity;
 
diff --git a/android/app/src/main/java/com/timesafari/dailynotification/MaintenanceWorker.java b/android/app/src/main/java/com/timesafari/dailynotification/MaintenanceWorker.java
deleted file mode 100644
index e6b0c07..0000000
--- a/android/app/src/main/java/com/timesafari/dailynotification/MaintenanceWorker.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.timesafari.dailynotification;
-
-import android.content.Context;
-import androidx.annotation.NonNull;
-import androidx.work.Worker;
-import androidx.work.WorkerParameters;
-
-public class MaintenanceWorker extends Worker {
-    private final DailyNotificationLogger logger;
-    
-    public MaintenanceWorker(@NonNull Context context, @NonNull WorkerParameters params) {
-        super(context, params);
-        logger = new DailyNotificationLogger();
-    }
-    
-    @NonNull
-    @Override
-    public Result doWork() {
-        try {
-            logger.log("Maintenance work started", DailyNotificationLogger.Level.INFO);
-            
-            // Perform maintenance tasks
-            performMaintenance();
-            
-            logger.log("Maintenance work completed successfully", DailyNotificationLogger.Level.INFO);
-            return Result.success();
-        } catch (Exception e) {
-            logger.log("Error during maintenance work: " + e.getMessage(), 
-                      DailyNotificationLogger.Level.ERROR);
-            return Result.failure();
-        }
-    }
-    
-    private void performMaintenance() {
-        // Check and update battery optimization status
-        DailyNotificationPlugin plugin = DailyNotificationPlugin.getInstance();
-        if (plugin != null) {
-            plugin.checkBatteryOptimization();
-        }
-        
-        // Update battery status
-        if (plugin != null) {
-            plugin.updateBatteryStatus();
-        }
-        
-        // Reschedule any missed notifications
-        if (plugin != null) {
-            plugin.rescheduleMissedNotifications();
-        }
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/main/java/com/timesafari/dailynotification/README.md b/android/app/src/main/java/com/timesafari/dailynotification/README.md
deleted file mode 100644
index e58d875..0000000
--- a/android/app/src/main/java/com/timesafari/dailynotification/README.md
+++ /dev/null
@@ -1,423 +0,0 @@
-# DailyNotification Android Implementation
-
-This directory contains the Android-specific implementation of the DailyNotification plugin for Capacitor.
-
-## Overview
-
-The DailyNotification plugin provides functionality for scheduling and managing daily notifications on Android devices. It uses Android's native notification system and background task scheduling to ensure reliable delivery of notifications.
-
-## Features
-
-- Daily notification scheduling with precise timing
-- Notification channel management (Android 8.0+)
-- Background task handling with WorkManager
-- Battery optimization support
-- Settings persistence
-- Rich logging capabilities
-- Comprehensive error handling
-- Extensive test coverage
-
-## Architecture
-
-### Core Components
-
-1. **DailyNotificationPlugin**
-   - Main plugin class handling all notification operations
-   - Manages notification scheduling and settings
-   - Handles plugin method calls from JavaScript
-
-2. **DailyNotificationReceiver**
-   - Broadcast receiver for handling notification display
-   - Manages notification content and presentation
-
-3. **DailyNotificationLogger**
-   - Structured logging system
-   - Multiple log levels (DEBUG, INFO, WARNING, ERROR)
-   - Configurable logging behavior
-
-4. **DailyNotificationConstants**
-   - Centralized constants management
-   - Default values and configuration
-   - Error messages and keys
-
-5. **DailyNotificationConfig**
-   - Configuration management
-   - Settings persistence
-   - Default values
-
-### Key Features
-
-#### Notification Scheduling
-- Uses AlarmManager for precise timing
-- Handles timezone changes
-- Supports multiple notifications per day
-- Battery-optimized scheduling
-
-#### Background Processing
-- WorkManager for reliable background tasks
-- Battery optimization handling
-- Network state monitoring
-- Retry mechanism
-
-#### Settings Management
-- Persistent storage using SharedPreferences
-- Default values management
-- Settings validation
-- Real-time updates
-
-#### Error Handling
-- Comprehensive error catching
-- Detailed error messages
-- Logging integration
-- Recovery mechanisms
-
-## Testing
-
-### Test Structure
-
-1. **Unit Tests**
-   - Core functionality testing
-   - Settings management
-   - Time validation
-   - Error handling
-
-2. **Integration Tests**
-   - Notification scheduling
-   - Background tasks
-   - Settings persistence
-   - Event handling
-
-3. **Edge Cases**
-   - Timezone changes
-   - Battery optimization
-   - Network issues
-   - Resource cleanup
-
-### Running Tests
-
-```bash
-# Run all tests
-./gradlew test
-
-# Run specific test class
-./gradlew test --tests "com.timesafari.dailynotification.DailyNotificationPluginTest"
-
-# Run with coverage
-./gradlew test jacocoTestReport
-```
-
-## Security Considerations
-
-1. **Data Storage**
-   - Encrypted SharedPreferences for sensitive data
-   - Secure notification content handling
-   - Safe URL handling
-
-2. **Permissions**
-   - Runtime permission handling
-   - Permission validation
-   - Graceful degradation
-
-3. **Background Tasks**
-   - Battery optimization compliance
-   - Resource usage monitoring
-   - Task scheduling limits
-
-## Performance Optimization
-
-1. **Battery Usage**
-   - Efficient scheduling
-   - Background task optimization
-   - Wake lock management
-
-2. **Memory Management**
-   - Resource cleanup
-   - Memory leak prevention
-   - Cache management
-
-3. **Network Usage**
-   - Efficient data fetching
-   - Caching strategies
-   - Retry optimization
-
-## Best Practices
-
-1. **Code Organization**
-   - Clear package structure
-   - Consistent naming conventions
-   - Comprehensive documentation
-
-2. **Error Handling**
-   - Graceful degradation
-   - User-friendly messages
-   - Logging integration
-
-3. **Testing**
-   - Comprehensive test coverage
-   - Edge case handling
-   - Performance testing
-
-## Dependencies
-
-- AndroidX Core
-- AndroidX AppCompat
-- AndroidX WorkManager
-- AndroidX Room
-- AndroidX Lifecycle
-- AndroidX Security
-- JUnit
-- Mockito
-
-## Contributing
-
-1. Fork the repository
-2. Create a feature branch
-3. Commit your changes
-4. Push to the branch
-5. Create a Pull Request
-
-## License
-
-This project is licensed under the MIT License - see the LICENSE file for details.
-
-## Author
-
-Matthew Raymer
-
-# Daily Notification Plugin - Battery Optimization Guide
-
-## Battery Overview
-
-The Daily Notification Plugin implements sophisticated battery optimization features to ensure reliable notification delivery while minimizing battery impact. This guide covers the implementation details and best practices for battery optimization.
-
-## Battery Optimization Features
-
-### 1. Adaptive Scheduling
-
-- Adjusts notification timing based on battery level and power state
-- Reduces frequency during low battery conditions
-- Optimizes wake lock duration based on battery status
-- Implements smart rescheduling for missed notifications
-
-### 2. Power State Management
-
-- Monitors device power state (normal, power save, etc.)
-- Adapts notification behavior based on power mode
-- Implements Doze mode handling
-- Manages wake locks efficiently
-
-### 3. Battery Level Monitoring
-
-- Real-time battery level tracking
-- Charging state detection
-- Battery health monitoring
-- Adaptive thresholds based on battery status
-
-## API Methods
-
-### Battery Optimization
-
-```typescript
-interface BatteryOptimizationStatus {
-  isExempt: boolean;
-  requestTime: number;
-  checkTime: number;
-}
-
-// Request battery optimization exemption
-requestBatteryOptimizationExemption(): Promise<BatteryOptimizationStatus>;
-
-// Get current battery status
-getBatteryStatus(): Promise<{
-  level: number;
-  isCharging: boolean;
-  lastCheck: number;
-  isOptimizationExempt: boolean;
-  lastOptimizationCheck: number;
-  isInDozeMode: boolean;
-}>;
-
-// Get power state information
-getPowerState(): Promise<{
-  powerState: number;
-  adaptiveScheduling: boolean;
-  batteryLevel: number;
-  isCharging: boolean;
-  lastCheck: number;
-}>;
-
-// Configure adaptive scheduling
-setAdaptiveScheduling(enabled: boolean): Promise<void>;
-```
-
-## Implementation Details
-
-### Battery Optimization Exemption
-
-```java
-@PluginMethod
-public void requestBatteryOptimizationExemption(PluginCall call) {
-    // Implementation details...
-}
-```
-
-### Power State Monitoring
-
-```java
-private void updatePowerState() {
-    // Implementation details...
-}
-```
-
-### Adaptive Scheduling
-
-```java
-private void adjustSchedulingForBatteryLevel() {
-    // Implementation details...
-}
-```
-
-## Best Practices
-
-### 1. Battery Optimization Exemption
-- Request exemption only when necessary
-- Check exemption status before scheduling notifications
-- Implement fallback mechanisms when exemption is not granted
-
-### 2. Wake Lock Usage
-- Use minimal wake lock duration
-- Release wake locks promptly
-- Implement battery-aware wake lock duration
-
-### 3. Doze Mode Handling
-
-- Schedule maintenance windows during Doze mode
-- Use WorkManager for reliable background tasks
-- Implement backup alarms for critical notifications
-
-### 4. Battery Level Monitoring
-
-- Monitor battery level changes
-- Adjust notification frequency based on battery status
-- Implement battery-saving thresholds
-
-### 5. Power State Adaptation
-
-- Adapt to power save mode
-- Optimize resource usage during low power
-- Implement graceful degradation
-
-## Battery Error Handling
-
-### Battery Optimization during Error Handling
-
-```java
-try {
-    // Battery optimization code
-} catch (Exception e) {
-    logger.log("Error in battery optimization: " + e.getMessage(), 
-               DailyNotificationLogger.Level.ERROR);
-    // Handle error appropriately
-}
-```
-
-### Wake Lock
-
-```java
-try {
-    // Wake lock code
-} catch (Exception e) {
-    logger.log("Error managing wake lock: " + e.getMessage(), 
-               DailyNotificationLogger.Level.ERROR);
-    // Handle error appropriately
-}
-```
-
-### Doze Mode
-
-```java
-try {
-    // Doze mode handling code
-} catch (Exception e) {
-    logger.log("Error handling Doze mode: " + e.getMessage(), 
-               DailyNotificationLogger.Level.ERROR);
-    // Handle error appropriately
-}
-```
-
-## Performance Considerations
-
-### Battery Impact
-
-- Minimize wake lock usage
-- Optimize background task scheduling
-- Implement efficient battery monitoring
-
-### Resource Usage
-
-- Use WorkManager for background tasks
-- Implement efficient wake lock management
-- Optimize notification scheduling
-
-### Storage
-
-- Efficient battery stats storage
-- Optimized settings persistence
-- Minimal logging overhead
-
-## Security
-
-### Wake Lock Security
-
-- Use appropriate wake lock flags
-- Implement timeout mechanisms
-- Handle wake lock failures gracefully
-
-### Data Security
-
-- Secure storage of battery stats
-- Protected settings access
-- Safe logging practices
-
-## Testing
-
-### Battery Optimization Tests
-
-```java
-@Test
-void testBatteryOptimizationExemptionRequest() {
-    // Test implementation
-}
-```
-
-### Power State Tests
-
-```java
-@Test
-void testPowerStateMonitoring() {
-    // Test implementation
-}
-```
-
-### Performance Tests
-```java
-@Test
-void testBatteryImpact() {
-    // Test implementation
-}
-```
-
-## Contributing
-
-### Documentation
-- Keep documentation up to date
-- Document all battery optimization features
-- Include usage examples
-
-### Code
-- Follow battery optimization best practices
-- Implement comprehensive tests
-- Maintain backward compatibility
-
-## License
-MIT License - See LICENSE file for details 
\ No newline at end of file
diff --git a/android/app/src/main/java/index.ts b/android/app/src/main/java/index.ts
deleted file mode 100644
index 0686b27..0000000
--- a/android/app/src/main/java/index.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * Android implementation of the DailyNotification plugin
- * @module DailyNotificationAndroid
- */
-
-import { Capacitor } from '@capacitor/core';
-import type { DailyNotificationPlugin, DailyNotificationOptions, PermissionStatus } from '../definitions';
-
-export class DailyNotificationAndroid implements DailyNotificationPlugin {
-  private options: DailyNotificationOptions = {
-    url: '',
-    notificationTime: '09:00',
-    title: 'Daily Update',
-    body: 'Your daily notification is ready'
-  };
-
-  /**
-   * Initialize the daily notification system for Android
-   * @param options Configuration options for the notification system
-   */
-  async initialize(options: DailyNotificationOptions): Promise<void> {
-    if (Capacitor.getPlatform() !== 'android') {
-      throw new Error('This implementation is for Android only');
-    }
-    this.options = options;
-    // TODO: Implement Android-specific initialization
-  }
-
-  /**
-   * Check current permission status for notifications
-   * @returns Current permission status
-   */
-  async checkPermissions(): Promise<PermissionStatus> {
-    if (Capacitor.getPlatform() !== 'android') {
-      throw new Error('This implementation is for Android only');
-    }
-    // TODO: Implement Android-specific permission check
-    return { notifications: 'prompt' };
-  }
-
-  /**
-   * Request notification permissions from the user
-   * @returns Updated permission status after request
-   */
-  async requestPermissions(): Promise<PermissionStatus> {
-    if (Capacitor.getPlatform() !== 'android') {
-      throw new Error('This implementation is for Android only');
-    }
-    // TODO: Implement Android-specific permission request
-    return { notifications: 'prompt' };
-  }
-} 
\ No newline at end of file
diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml
index 669f043..414ed79 100644
--- a/android/app/src/main/res/values/strings.xml
+++ b/android/app/src/main/res/values/strings.xml
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='utf-8'?>
 <resources>
-    <string name="app_name">capacitor-daily-notification</string>
-    <string name="title_activity_main">capacitor-daily-notification</string>
-    <string name="package_name">com.example.app</string>
-    <string name="custom_url_scheme">com.example.app</string>
+    <string name="app_name">DailyNotificationPlugin</string>
+    <string name="title_activity_main">DailyNotificationPlugin</string>
+    <string name="package_name">com.timesafari.dailynotification</string>
+    <string name="custom_url_scheme">com.timesafari.dailynotification</string>
 </resources>
diff --git a/android/app/src/test/java/com/timesafari/dailynotification/BatteryOptimizationSettingsTest.java b/android/app/src/test/java/com/timesafari/dailynotification/BatteryOptimizationSettingsTest.java
deleted file mode 100644
index dce621b..0000000
--- a/android/app/src/test/java/com/timesafari/dailynotification/BatteryOptimizationSettingsTest.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
- * BatteryOptimizationSettingsTest.java
- * Daily Notification Plugin for Capacitor
- * 
- * Tests for battery optimization settings and power state management
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.BatteryManager;
-import android.os.Build;
-import android.os.PowerManager;
-import android.provider.Settings;
-
-import androidx.work.WorkManager;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
-
-import static org.junit.Assert.*;
-import static org.mockito.ArgumentMatchers.*;
-import static org.mockito.Mockito.*;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(sdk = {Build.VERSION_CODES.M})
-public class BatteryOptimizationSettingsTest {
-    
-    @Mock
-    private Context context;
-    
-    @Mock
-    private SharedPreferences settings;
-    
-    @Mock
-    private SharedPreferences.Editor editor;
-    
-    @Mock
-    private PowerManager powerManager;
-    
-    @Mock
-    private WorkManager workManager;
-    
-    private BatteryOptimizationSettings batterySettings;
-    
-    @Before
-    public void setUp() {
-        MockitoAnnotations.openMocks(this);
-        
-        when(context.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager);
-        when(settings.edit()).thenReturn(editor);
-        when(editor.putBoolean(anyString(), anyBoolean())).thenReturn(editor);
-        when(editor.putInt(anyString(), anyInt())).thenReturn(editor);
-        when(editor.putLong(anyString(), anyLong())).thenReturn(editor);
-        when(editor.apply()).thenReturn(true);
-        
-        batterySettings = new BatteryOptimizationSettings(context, settings);
-    }
-    
-    @Test
-    public void testRequestBatteryOptimizationExemption() {
-        // Test when already exempt
-        when(settings.getBoolean(anyString(), anyBoolean())).thenReturn(true);
-        assertTrue(batterySettings.requestBatteryOptimizationExemption());
-        
-        // Test when not exempt
-        when(settings.getBoolean(anyString(), anyBoolean())).thenReturn(false);
-        when(context.getPackageName()).thenReturn("com.test.app");
-        
-        Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
-        intent.setData(android.net.Uri.parse("package:com.test.app"));
-        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        
-        batterySettings.requestBatteryOptimizationExemption();
-        
-        verify(context).startActivity(eq(intent));
-        verify(editor).putLong(eq("last_optimization_request"), anyLong());
-    }
-    
-    @Test
-    public void testUpdatePowerState() {
-        when(powerManager.getPowerState()).thenReturn(PowerManager.POWER_STATE_SAVE);
-        
-        batterySettings.updatePowerState();
-        
-        verify(editor).putInt(eq("power_state"), eq(PowerManager.POWER_STATE_SAVE));
-    }
-    
-    @Test
-    public void testUpdateBatteryStatus() {
-        Intent batteryStatus = new Intent(Intent.ACTION_BATTERY_CHANGED);
-        batteryStatus.putExtra(BatteryManager.EXTRA_LEVEL, 80);
-        batteryStatus.putExtra(BatteryManager.EXTRA_SCALE, 100);
-        batteryStatus.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_HEALTH_CHARGING);
-        
-        when(context.registerReceiver(any(), any())).thenReturn(batteryStatus);
-        
-        batterySettings.updateBatteryStatus();
-        
-        assertEquals(80, batterySettings.getBatteryLevel());
-        assertTrue(batterySettings.isCharging());
-        verify(editor).putInt(eq("last_battery_level"), eq(80));
-        verify(editor).putBoolean(eq("last_charging_state"), eq(true));
-    }
-    
-    @Test
-    public void testAdjustSchedulingForPowerState() {
-        // Test power save mode
-        when(powerManager.getPowerState()).thenReturn(PowerManager.POWER_STATE_SAVE);
-        batterySettings.updatePowerState();
-        assertTrue(batterySettings.shouldCheckBattery());
-        
-        // Test normal mode
-        when(powerManager.getPowerState()).thenReturn(PowerManager.POWER_STATE_NORMAL);
-        batterySettings.updatePowerState();
-        assertTrue(batterySettings.shouldCheckBattery());
-        
-        // Test optimized mode
-        when(powerManager.getPowerState()).thenReturn(PowerManager.POWER_STATE_OPTIMIZED);
-        batterySettings.updatePowerState();
-        assertTrue(batterySettings.shouldCheckBattery());
-    }
-    
-    @Test
-    public void testGetPowerStateString() {
-        assertEquals("POWER_SAVE", batterySettings.getPowerStateString(PowerManager.POWER_STATE_SAVE));
-        assertEquals("NORMAL", batterySettings.getPowerStateString(PowerManager.POWER_STATE_NORMAL));
-        assertEquals("OPTIMIZED", batterySettings.getPowerStateString(PowerManager.POWER_STATE_OPTIMIZED));
-        assertEquals("UNKNOWN", batterySettings.getPowerStateString(999));
-    }
-    
-    @Test
-    public void testShouldCheckBattery() {
-        // Test when check is needed
-        assertTrue(batterySettings.shouldCheckBattery());
-        
-        // Test when check is not needed
-        when(settings.getLong(anyString(), anyLong())).thenReturn(System.currentTimeMillis());
-        assertFalse(batterySettings.shouldCheckBattery());
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/test/java/com/timesafari/dailynotification/DailyNotificationLoggerTest.java b/android/app/src/test/java/com/timesafari/dailynotification/DailyNotificationLoggerTest.java
deleted file mode 100644
index a94c4a5..0000000
--- a/android/app/src/test/java/com/timesafari/dailynotification/DailyNotificationLoggerTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * DailyNotificationLoggerTest.java
- * Daily Notification Plugin for Capacitor
- * 
- * Tests for logging functionality
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
-import static org.junit.Assert.*;
-
-@RunWith(RobolectricTestRunner.class)
-public class DailyNotificationLoggerTest {
-    
-    private DailyNotificationLogger logger;
-    
-    @Before
-    public void setUp() {
-        logger = new DailyNotificationLogger();
-    }
-    
-    @Test
-    public void testLogWithInfoLevel() {
-        // Test info level logging
-        logger.log("Test info message", DailyNotificationLogger.Level.INFO);
-        
-        // Verify log level
-        assertEquals(DailyNotificationLogger.Level.INFO, logger.getLastLogLevel());
-        
-        // Verify message
-        assertTrue(logger.getLastLogMessage().contains("Test info message"));
-    }
-    
-    @Test
-    public void testLogWithWarningLevel() {
-        // Test warning level logging
-        logger.log("Test warning message", DailyNotificationLogger.Level.WARNING);
-        
-        // Verify log level
-        assertEquals(DailyNotificationLogger.Level.WARNING, logger.getLastLogLevel());
-        
-        // Verify message
-        assertTrue(logger.getLastLogMessage().contains("Test warning message"));
-    }
-    
-    @Test
-    public void testLogWithErrorLevel() {
-        // Test error level logging
-        logger.log("Test error message", DailyNotificationLogger.Level.ERROR);
-        
-        // Verify log level
-        assertEquals(DailyNotificationLogger.Level.ERROR, logger.getLastLogLevel());
-        
-        // Verify message
-        assertTrue(logger.getLastLogMessage().contains("Test error message"));
-    }
-    
-    @Test
-    public void testLogWithDebugLevel() {
-        // Test debug level logging
-        logger.log("Test debug message", DailyNotificationLogger.Level.DEBUG);
-        
-        // Verify log level
-        assertEquals(DailyNotificationLogger.Level.DEBUG, logger.getLastLogLevel());
-        
-        // Verify message
-        assertTrue(logger.getLastLogMessage().contains("Test debug message"));
-    }
-    
-    @Test
-    public void testLogWithException() {
-        // Create test exception
-        Exception testException = new RuntimeException("Test exception");
-        
-        // Test logging with exception
-        logger.log("Test error with exception", DailyNotificationLogger.Level.ERROR, testException);
-        
-        // Verify log level
-        assertEquals(DailyNotificationLogger.Level.ERROR, logger.getLastLogLevel());
-        
-        // Verify message contains exception details
-        assertTrue(logger.getLastLogMessage().contains("Test error with exception"));
-        assertTrue(logger.getLastLogMessage().contains("Test exception"));
-    }
-    
-    @Test
-    public void testLogWithNullMessage() {
-        // Test logging with null message
-        logger.log(null, DailyNotificationLogger.Level.INFO);
-        
-        // Verify log level
-        assertEquals(DailyNotificationLogger.Level.INFO, logger.getLastLogLevel());
-        
-        // Verify message is empty
-        assertTrue(logger.getLastLogMessage().isEmpty());
-    }
-    
-    @Test
-    public void testLogWithNullLevel() {
-        // Test logging with null level
-        logger.log("Test message", null);
-        
-        // Verify default level is INFO
-        assertEquals(DailyNotificationLogger.Level.INFO, logger.getLastLogLevel());
-        
-        // Verify message
-        assertTrue(logger.getLastLogMessage().contains("Test message"));
-    }
-    
-    @Test
-    public void testLogWithTimestamp() {
-        // Test logging with timestamp
-        logger.log("Test message with timestamp", DailyNotificationLogger.Level.INFO);
-        
-        // Verify message contains timestamp
-        assertTrue(logger.getLastLogMessage().matches("\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}.*"));
-    }
-    
-    @Test
-    public void testLogWithTag() {
-        // Test logging with tag
-        logger.log("Test message with tag", DailyNotificationLogger.Level.INFO, "TestTag");
-        
-        // Verify message contains tag
-        assertTrue(logger.getLastLogMessage().contains("[TestTag]"));
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/test/java/com/timesafari/dailynotification/DailyNotificationPluginTest.java b/android/app/src/test/java/com/timesafari/dailynotification/DailyNotificationPluginTest.java
deleted file mode 100644
index 2f78b85..0000000
--- a/android/app/src/test/java/com/timesafari/dailynotification/DailyNotificationPluginTest.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/**
- * DailyNotificationPluginTest.java
- * Daily Notification Plugin for Capacitor
- * 
- * Tests for the main plugin functionality
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import android.app.AlarmManager;
-import android.app.NotificationManager;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Build;
-import android.os.PowerManager;
-
-import com.getcapacitor.JSObject;
-import com.getcapacitor.PluginCall;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
-
-import static org.junit.Assert.*;
-import static org.mockito.ArgumentMatchers.*;
-import static org.mockito.Mockito.*;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(sdk = {Build.VERSION_CODES.M})
-public class DailyNotificationPluginTest {
-    
-    @Mock
-    private Context context;
-    
-    @Mock
-    private SharedPreferences settings;
-    
-    @Mock
-    private SharedPreferences.Editor editor;
-    
-    @Mock
-    private NotificationManager notificationManager;
-    
-    @Mock
-    private AlarmManager alarmManager;
-    
-    @Mock
-    private PowerManager powerManager;
-    
-    @Mock
-    private PluginCall pluginCall;
-    
-    private DailyNotificationPlugin plugin;
-    
-    @Before
-    public void setUp() {
-        MockitoAnnotations.openMocks(this);
-        
-        when(context.getSystemService(Context.NOTIFICATION_SERVICE)).thenReturn(notificationManager);
-        when(context.getSystemService(Context.ALARM_SERVICE)).thenReturn(alarmManager);
-        when(context.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager);
-        when(settings.edit()).thenReturn(editor);
-        when(editor.putBoolean(anyString(), anyBoolean())).thenReturn(editor);
-        when(editor.putString(anyString(), anyString())).thenReturn(editor);
-        when(editor.putLong(anyString(), anyLong())).thenReturn(editor);
-        when(editor.apply()).thenReturn(true);
-        
-        plugin = new DailyNotificationPlugin();
-        plugin.load();
-    }
-    
-    @Test
-    public void testScheduleDailyNotification() {
-        // Setup test data
-        when(pluginCall.getString("url")).thenReturn("https://example.com");
-        when(pluginCall.getString("time")).thenReturn("09:00");
-        when(pluginCall.getString("title")).thenReturn("Test Notification");
-        when(pluginCall.getString("body")).thenReturn("Test Body");
-        when(pluginCall.getBoolean("sound", true)).thenReturn(true);
-        when(pluginCall.getString("priority", "default")).thenReturn("default");
-        
-        // Execute
-        plugin.scheduleDailyNotification(pluginCall);
-        
-        // Verify
-        verify(alarmManager).setExactAndAllowWhileIdle(
-            eq(AlarmManager.RTC_WAKEUP),
-            anyLong(),
-            any()
-        );
-        verify(editor).putString(eq("scheduled_time"), eq("09:00"));
-        verify(editor).putString(eq("notification_url"), eq("https://example.com"));
-    }
-    
-    @Test
-    public void testCancelAllNotifications() {
-        // Execute
-        plugin.cancelAllNotifications(pluginCall);
-        
-        // Verify
-        verify(alarmManager).cancel(any());
-        verify(notificationManager).cancelAll();
-    }
-    
-    @Test
-    public void testGetNotificationStatus() {
-        // Setup
-        when(notificationManager.areNotificationsEnabled()).thenReturn(true);
-        
-        // Execute
-        plugin.getNotificationStatus(pluginCall);
-        
-        // Verify
-        verify(pluginCall).resolve(any(JSObject.class));
-    }
-    
-    @Test
-    public void testUpdateSettings() {
-        // Setup
-        when(pluginCall.hasOption("sound")).thenReturn(true);
-        when(pluginCall.getBoolean("sound")).thenReturn(false);
-        when(pluginCall.hasOption("priority")).thenReturn(true);
-        when(pluginCall.getString("priority")).thenReturn("high");
-        
-        // Execute
-        plugin.updateSettings(pluginCall);
-        
-        // Verify
-        verify(editor).putBoolean("sound", false);
-        verify(editor).putString("priority", "high");
-    }
-    
-    @Test
-    public void testRequestBatteryOptimizationExemption() {
-        // Execute
-        plugin.requestBatteryOptimizationExemption(pluginCall);
-        
-        // Verify
-        verify(context).startActivity(any(Intent.class));
-    }
-    
-    @Test
-    public void testGetBatteryStatus() {
-        // Execute
-        plugin.getBatteryStatus(pluginCall);
-        
-        // Verify
-        verify(pluginCall).resolve(any(JSObject.class));
-    }
-    
-    @Test
-    public void testSetAdaptiveScheduling() {
-        // Setup
-        when(pluginCall.getBoolean("enabled", true)).thenReturn(true);
-        
-        // Execute
-        plugin.setAdaptiveScheduling(pluginCall);
-        
-        // Verify
-        verify(editor).putBoolean(eq("adaptive_scheduling"), eq(true));
-    }
-    
-    @Test
-    public void testGetPowerState() {
-        // Execute
-        plugin.getPowerState(pluginCall);
-        
-        // Verify
-        verify(pluginCall).resolve(any(JSObject.class));
-    }
-    
-    @Test
-    public void testHandleDozeMode() {
-        // Setup
-        when(powerManager.isDeviceIdleMode()).thenReturn(true);
-        
-        // Execute
-        plugin.handleDozeMode();
-        
-        // Verify
-        verify(alarmManager).setAndAllowWhileIdle(
-            eq(AlarmManager.RTC_WAKEUP),
-            anyLong(),
-            any()
-        );
-    }
-} 
\ No newline at end of file
diff --git a/android/app/src/test/java/com/timesafari/dailynotification/DailyNotificationReceiverTest.java b/android/app/src/test/java/com/timesafari/dailynotification/DailyNotificationReceiverTest.java
deleted file mode 100644
index 88a272e..0000000
--- a/android/app/src/test/java/com/timesafari/dailynotification/DailyNotificationReceiverTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
- * DailyNotificationReceiverTest.java
- * Daily Notification Plugin for Capacitor
- * 
- * Tests for notification receiver functionality
- * 
- * @author Matthew Raymer
- */
-
-package com.timesafari.dailynotification;
-
-import android.app.Notification;
-import android.app.NotificationChannel;
-import android.app.NotificationManager;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Build;
-
-import androidx.core.app.NotificationCompat;
-import androidx.core.app.NotificationManagerCompat;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
-
-import static org.junit.Assert.*;
-import static org.mockito.ArgumentMatchers.*;
-import static org.mockito.Mockito.*;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(sdk = {Build.VERSION_CODES.M})
-public class DailyNotificationReceiverTest {
-    
-    @Mock
-    private Context context;
-    
-    @Mock
-    private NotificationManager notificationManager;
-    
-    @Mock
-    private NotificationManagerCompat notificationManagerCompat;
-    
-    private DailyNotificationReceiver receiver;
-    
-    @Before
-    public void setUp() {
-        MockitoAnnotations.openMocks(this);
-        
-        when(context.getSystemService(Context.NOTIFICATION_SERVICE))
-            .thenReturn(notificationManager);
-        when(NotificationManagerCompat.from(context))
-            .thenReturn(notificationManagerCompat);
-            
-        receiver = new DailyNotificationReceiver();
-    }
-    
-    @Test
-    public void testOnReceive() {
-        // Setup test data
-        Intent intent = new Intent();
-        intent.putExtra("url", "https://example.com");
-        intent.putExtra("title", "Test Notification");
-        intent.putExtra("body", "Test Body");
-        intent.putExtra("sound", true);
-        intent.putExtra("priority", "high");
-        
-        // Execute
-        receiver.onReceive(context, intent);
-        
-        // Verify
-        verify(notificationManagerCompat).notify(
-            eq("https://example.com".hashCode()),
-            any(Notification.class)
-        );
-    }
-    
-    @Test
-    public void testOnReceiveWithMissingParameters() {
-        // Setup test data
-        Intent intent = new Intent();
-        
-        // Execute
-        receiver.onReceive(context, intent);
-        
-        // Verify
-        verify(notificationManagerCompat, never()).notify(anyInt(), any(Notification.class));
-    }
-    
-    @Test
-    public void testShowNotification() {
-        // Setup test data
-        String title = "Test Notification";
-        String body = "Test Body";
-        String url = "https://example.com";
-        boolean sound = true;
-        String priority = "high";
-        
-        // Execute
-        receiver.showNotification(context, title, body, url, sound, priority);
-        
-        // Verify
-        verify(notificationManagerCompat).notify(
-            eq(url.hashCode()),
-            any(Notification.class)
-        );
-    }
-    
-    @Test
-    public void testAddCustomActions() {
-        // Setup test data
-        NotificationCompat.Builder builder = new NotificationCompat.Builder(context, "test_channel");
-        String url = "https://example.com";
-        
-        // Execute
-        receiver.addCustomActions(builder, context, url);
-        
-        // Verify
-        verify(context, times(3)).getClass();
-    }
-    
-    @Test
-    public void testGetNotificationPriority() {
-        // Test high priority
-        assertEquals(
-            NotificationCompat.PRIORITY_HIGH,
-            receiver.getNotificationPriority("high")
-        );
-        
-        // Test low priority
-        assertEquals(
-            NotificationCompat.PRIORITY_LOW,
-            receiver.getNotificationPriority("low")
-        );
-        
-        // Test default priority
-        assertEquals(
-            NotificationCompat.PRIORITY_DEFAULT,
-            receiver.getNotificationPriority("default")
-        );
-        
-        // Test unknown priority
-        assertEquals(
-            NotificationCompat.PRIORITY_DEFAULT,
-            receiver.getNotificationPriority("unknown")
-        );
-    }
-    
-    @Test
-    public void testCreateNotificationChannel() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            // Execute
-            receiver.createNotificationChannel(context);
-            
-            // Verify
-            verify(notificationManager).createNotificationChannel(any(NotificationChannel.class));
-        }
-    }
-} 
\ No newline at end of file
diff --git a/android/build.gradle b/android/build.gradle
index 1d3e084..9cc72cb 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,109 +1,29 @@
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
 
 buildscript {
+    
     repositories {
         google()
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.4.2'
+        classpath 'com.android.tools.build:gradle:8.0.0'
+        classpath 'com.google.gms:google-services:4.3.15'
+
+        // NOTE: Do not place your application dependencies here; they belong
+        // in the individual module build.gradle files
     }
 }
 
 apply from: "variables.gradle"
 
-apply plugin: 'com.android.library'
-
-ext {
-    compileSdkVersion = 33
-    minSdkVersion = 21
-    targetSdkVersion = 33
-    buildToolsVersion = '33.0.0'
-}
-
-android {
-    namespace "com.timesafari.dailynotification"
-    compileSdkVersion project.ext.compileSdkVersion
-    buildToolsVersion project.ext.buildToolsVersion
-    defaultConfig {
-        minSdkVersion project.ext.minSdkVersion
-        targetSdkVersion project.ext.targetSdkVersion
-        versionCode 1
-        versionName "1.0"
-        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
-    }
-    buildTypes {
-        release {
-            minifyEnabled false
-            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-        }
-    }
-    lintOptions {
-        abortOnError false
-    }
-    compileOptions {
-        sourceCompatibility JavaVersion.VERSION_1_8
-        targetCompatibility JavaVersion.VERSION_1_8
-    }
-    testOptions {
-        unitTests {
-            includeAndroidResources = true
-        }
-    }
-}
-
 allprojects {
-    tasks.withType(JavaCompile) {
-        options.compilerArgs << "-Xlint:unchecked"
-        options.compilerArgs << "-Xlint:deprecation"
+    repositories {
+        google()
+        mavenCentral()
     }
 }
 
-repositories {
-    google()
-    mavenCentral()
-    maven { url "https://jitpack.io" }
-    maven {
-        url "${project.rootDir}/capacitor-cordova-android-plugins/src/main/libs"
-    }
-    maven {
-        url "${project.rootDir}/libs"
-    }
+task clean(type: Delete) {
+    delete rootProject.buildDir
 }
-
-dependencies {
-    // AndroidX Core
-    implementation 'androidx.core:core:1.7.0'
-    implementation 'androidx.core:core-ktx:1.7.0'
-    
-    // WorkManager for background tasks
-    implementation 'androidx.work:work-runtime:2.7.1'
-    
-    // Capacitor dependencies
-    implementation project(':capacitor-android')
-    implementation project(':capacitor-core')
-    
-    // Testing dependencies
-    testImplementation 'junit:junit:4.13.2'
-    testImplementation 'org.mockito:mockito-core:4.5.1'
-    testImplementation 'org.robolectric:robolectric:4.8'
-    testImplementation 'androidx.test:core:1.4.0'
-    testImplementation 'androidx.test:runner:1.4.0'
-    testImplementation 'androidx.test.ext:junit:1.1.3'
-    
-    // AndroidX Test
-    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
-    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
-    
-    // AndroidX AppCompat
-    implementation 'androidx.appcompat:appcompat:1.6.1'
-    
-    // AndroidX Core App
-    implementation 'androidx.core:core-app:1.0.0'
-    
-    // AndroidX Core AppCompat
-    implementation 'androidx.core:core-appcompat:1.0.0'
-    
-    // AndroidX Core AppCompat Resources
-    implementation 'androidx.core:core-appcompat-resources:1.0.0'
-}
\ No newline at end of file
diff --git a/android/capacitor.settings.gradle b/android/capacitor.settings.gradle
index ebdcd0c..9a5fa87 100644
--- a/android/capacitor.settings.gradle
+++ b/android/capacitor.settings.gradle
@@ -1,3 +1,3 @@
 // DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN
 include ':capacitor-android'
-project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor') 
\ No newline at end of file
+project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor')
diff --git a/android/gradlew.bat b/android/gradlew.bat
index 6689b85..93e3f59 100644
--- a/android/gradlew.bat
+++ b/android/gradlew.bat
@@ -1,92 +1,92 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem      https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%"=="" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%"=="" set DIRNAME=.
-@rem This is normally unused
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if %ERRORLEVEL% equ 0 goto execute
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto execute
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
-
-:end
-@rem End local scope for the variables with windows NT shell
-if %ERRORLEVEL% equ 0 goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-set EXIT_CODE=%ERRORLEVEL%
-if %EXIT_CODE% equ 0 set EXIT_CODE=1
-if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
-exit /b %EXIT_CODE%
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem      https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/android/settings.gradle b/android/settings.gradle
index b29c759..3b4431d 100644
--- a/android/settings.gradle
+++ b/android/settings.gradle
@@ -1,10 +1,5 @@
-rootProject.name = 'daily-notification'
-
 include ':app'
-include ':capacitor-android'
 include ':capacitor-cordova-android-plugins'
-
-project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor')
-project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins')
+project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/')
 
 apply from: 'capacitor.settings.gradle'
\ No newline at end of file
diff --git a/android/variables.gradle b/android/variables.gradle
index ba92956..5946ada 100644
--- a/android/variables.gradle
+++ b/android/variables.gradle
@@ -1,14 +1,13 @@
 ext {
-    compileSdkVersion = 33
     minSdkVersion = 22
+    compileSdkVersion = 33
     targetSdkVersion = 33
-    buildToolsVersion = '33.0.0'
+    androidxActivityVersion = '1.7.0'
     androidxAppCompatVersion = '1.6.1'
     androidxCoordinatorLayoutVersion = '1.2.0'
-    coreSplashScreenVersion = '1.0.1'
-    androidxActivityVersion = '1.7.0'
     androidxCoreVersion = '1.10.0'
     androidxFragmentVersion = '1.5.6'
+    coreSplashScreenVersion = '1.0.0'
     androidxWebkitVersion = '1.6.1'
     junitVersion = '4.13.2'
     androidxJunitVersion = '1.1.5'
diff --git a/capacitor.config.ts b/capacitor.config.ts
index 4ab66ee..7a40700 100644
--- a/capacitor.config.ts
+++ b/capacitor.config.ts
@@ -1,8 +1,8 @@
 import { CapacitorConfig } from '@capacitor/cli';
 
 const config: CapacitorConfig = {
-  appId: 'com.example.app',
-  appName: 'capacitor-daily-notification',
+  appId: 'com.timesafari.dailynotification',
+  appName: 'DailyNotificationPlugin',
   webDir: 'www',
   server: {
     androidScheme: 'https'
diff --git a/package-lock.json b/package-lock.json
index ba7b97b..0d26bf9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,34 +1,32 @@
 {
-  "name": "capacitor-daily-notification",
-  "version": "0.0.1",
+  "name": "@timesafari/daily-notification-plugin",
+  "version": "1.0.0",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
-      "name": "capacitor-daily-notification",
-      "version": "0.0.1",
-      "hasInstallScript": true,
+      "name": "@timesafari/daily-notification-plugin",
+      "version": "1.0.0",
       "license": "MIT",
       "dependencies": {
-        "@capacitor/android": "^5.0.0",
-        "@capacitor/core": "^5.0.0",
-        "@capacitor/ios": "^5.0.0"
+        "@capacitor/core": "^5.7.8"
       },
       "devDependencies": {
+        "@capacitor/android": "^5.7.8",
         "@capacitor/cli": "^5.0.0",
-        "@jest/globals": "^29.5.0",
-        "@types/jest": "^29.5.14",
-        "@types/node": "^20.0.0",
-        "@typescript-eslint/eslint-plugin": "^6.0.0",
-        "@typescript-eslint/parser": "^6.0.0",
-        "eslint": "^8.0.0",
+        "@capacitor/ios": "^5.0.0",
+        "@types/jest": "^29.5.0",
+        "@types/node": "^18.15.0",
+        "@typescript-eslint/eslint-plugin": "^5.57.0",
+        "@typescript-eslint/parser": "^5.57.0",
+        "eslint": "^8.37.0",
         "jest": "^29.5.0",
-        "rimraf": "^5.0.0",
+        "prettier": "^2.8.7",
+        "rimraf": "^4.4.0",
+        "rollup": "^3.20.0",
+        "rollup-plugin-typescript2": "^0.31.0",
         "ts-jest": "^29.1.0",
         "typescript": "^5.0.0"
-      },
-      "peerDependencies": {
-        "@capacitor/core": "^5.0.0"
       }
     },
     "node_modules/@ampproject/remapping": {
@@ -582,6 +580,7 @@
       "version": "5.7.8",
       "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-5.7.8.tgz",
       "integrity": "sha512-ooWclwcuW0dy3YfqgoozkHkjatX8H2fb2/RwRsJa3cew1P1lUXIXri3Dquuy4LdqFAJA7UHcJ19Bl/6UKdsZYA==",
+      "dev": true,
       "license": "MIT",
       "peerDependencies": {
         "@capacitor/core": "^5.7.0"
@@ -620,80 +619,6 @@
         "node": ">=16.0.0"
       }
     },
-    "node_modules/@capacitor/cli/node_modules/brace-expansion": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "balanced-match": "^1.0.0"
-      }
-    },
-    "node_modules/@capacitor/cli/node_modules/glob": {
-      "version": "9.3.5",
-      "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
-      "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "fs.realpath": "^1.0.0",
-        "minimatch": "^8.0.2",
-        "minipass": "^4.2.4",
-        "path-scurry": "^1.6.1"
-      },
-      "engines": {
-        "node": ">=16 || 14 >=14.17"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
-      }
-    },
-    "node_modules/@capacitor/cli/node_modules/minimatch": {
-      "version": "8.0.4",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz",
-      "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "brace-expansion": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=16 || 14 >=14.17"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
-      }
-    },
-    "node_modules/@capacitor/cli/node_modules/minipass": {
-      "version": "4.2.8",
-      "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
-      "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
-      "dev": true,
-      "license": "ISC",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@capacitor/cli/node_modules/rimraf": {
-      "version": "4.4.1",
-      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz",
-      "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "glob": "^9.2.0"
-      },
-      "bin": {
-        "rimraf": "dist/cjs/src/bin.js"
-      },
-      "engines": {
-        "node": ">=14"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
-      }
-    },
     "node_modules/@capacitor/core": {
       "version": "5.7.8",
       "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-5.7.8.tgz",
@@ -707,6 +632,7 @@
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-5.0.0.tgz",
       "integrity": "sha512-b1edQNe1cKiqnxoIR5WxbVjDlf3RWr2ZjaDxwEuBzwBAvvrFcweKdbw1ij45DWHKODaIymWoyAlAUN+vFOF5sw==",
+      "dev": true,
       "license": "MIT",
       "peerDependencies": {
         "@capacitor/core": "^5.0.0"
@@ -987,109 +913,6 @@
         "node": ">=16.0.0"
       }
     },
-    "node_modules/@isaacs/cliui": {
-      "version": "8.0.2",
-      "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
-      "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "string-width": "^5.1.2",
-        "string-width-cjs": "npm:string-width@^4.2.0",
-        "strip-ansi": "^7.0.1",
-        "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
-        "wrap-ansi": "^8.1.0",
-        "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
-      "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
-      }
-    },
-    "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
-      "version": "6.2.1",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
-      "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
-      }
-    },
-    "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
-      "version": "9.2.2",
-      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
-      "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/@isaacs/cliui/node_modules/string-width": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
-      "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "eastasianwidth": "^0.2.0",
-        "emoji-regex": "^9.2.2",
-        "strip-ansi": "^7.0.1"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
-      "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "ansi-regex": "^6.0.1"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
-      }
-    },
-    "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
-      "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "ansi-styles": "^6.1.0",
-        "string-width": "^5.0.1",
-        "strip-ansi": "^7.0.1"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
-      }
-    },
     "node_modules/@istanbuljs/load-nyc-config": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
@@ -1612,15 +1435,18 @@
         "node": ">= 8"
       }
     },
-    "node_modules/@pkgjs/parseargs": {
-      "version": "0.11.0",
-      "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
-      "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+    "node_modules/@rollup/pluginutils": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
+      "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
       "dev": true,
       "license": "MIT",
-      "optional": true,
+      "dependencies": {
+        "estree-walker": "^2.0.1",
+        "picomatch": "^2.2.2"
+      },
       "engines": {
-        "node": ">=14"
+        "node": ">= 8.0.0"
       }
     },
     "node_modules/@sinclair/typebox": {
@@ -1761,19 +1587,19 @@
       "license": "MIT"
     },
     "node_modules/@types/node": {
-      "version": "20.17.27",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.27.tgz",
-      "integrity": "sha512-U58sbKhDrthHlxHRJw7ZLiLDZGmAUOZUbpw0S6nL27sYUdhvgBLCRu/keSd6qcTsfArd1sRFCCBxzWATGr/0UA==",
+      "version": "18.19.84",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.84.tgz",
+      "integrity": "sha512-ACYy2HGcZPHxEeWTqowTF7dhXN+JU1o7Gr4b41klnn6pj2LD6rsiGqSZojMdk1Jh2ys3m76ap+ae1vvE4+5+vg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "undici-types": "~6.19.2"
+        "undici-types": "~5.26.4"
       }
     },
     "node_modules/@types/semver": {
-      "version": "7.5.8",
-      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
-      "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
+      "version": "7.7.0",
+      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz",
+      "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==",
       "dev": true,
       "license": "MIT"
     },
@@ -1809,34 +1635,33 @@
       "license": "MIT"
     },
     "node_modules/@typescript-eslint/eslint-plugin": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz",
-      "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==",
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
+      "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@eslint-community/regexpp": "^4.5.1",
-        "@typescript-eslint/scope-manager": "6.21.0",
-        "@typescript-eslint/type-utils": "6.21.0",
-        "@typescript-eslint/utils": "6.21.0",
-        "@typescript-eslint/visitor-keys": "6.21.0",
+        "@eslint-community/regexpp": "^4.4.0",
+        "@typescript-eslint/scope-manager": "5.62.0",
+        "@typescript-eslint/type-utils": "5.62.0",
+        "@typescript-eslint/utils": "5.62.0",
         "debug": "^4.3.4",
         "graphemer": "^1.4.0",
-        "ignore": "^5.2.4",
-        "natural-compare": "^1.4.0",
-        "semver": "^7.5.4",
-        "ts-api-utils": "^1.0.1"
+        "ignore": "^5.2.0",
+        "natural-compare-lite": "^1.4.0",
+        "semver": "^7.3.7",
+        "tsutils": "^3.21.0"
       },
       "engines": {
-        "node": "^16.0.0 || >=18.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/typescript-eslint"
       },
       "peerDependencies": {
-        "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
-        "eslint": "^7.0.0 || ^8.0.0"
+        "@typescript-eslint/parser": "^5.0.0",
+        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
       },
       "peerDependenciesMeta": {
         "typescript": {
@@ -1845,27 +1670,26 @@
       }
     },
     "node_modules/@typescript-eslint/parser": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
-      "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
+      "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
       "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
-        "@typescript-eslint/scope-manager": "6.21.0",
-        "@typescript-eslint/types": "6.21.0",
-        "@typescript-eslint/typescript-estree": "6.21.0",
-        "@typescript-eslint/visitor-keys": "6.21.0",
+        "@typescript-eslint/scope-manager": "5.62.0",
+        "@typescript-eslint/types": "5.62.0",
+        "@typescript-eslint/typescript-estree": "5.62.0",
         "debug": "^4.3.4"
       },
       "engines": {
-        "node": "^16.0.0 || >=18.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/typescript-eslint"
       },
       "peerDependencies": {
-        "eslint": "^7.0.0 || ^8.0.0"
+        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
       },
       "peerDependenciesMeta": {
         "typescript": {
@@ -1874,17 +1698,17 @@
       }
     },
     "node_modules/@typescript-eslint/scope-manager": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
-      "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+      "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "6.21.0",
-        "@typescript-eslint/visitor-keys": "6.21.0"
+        "@typescript-eslint/types": "5.62.0",
+        "@typescript-eslint/visitor-keys": "5.62.0"
       },
       "engines": {
-        "node": "^16.0.0 || >=18.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
@@ -1892,26 +1716,26 @@
       }
     },
     "node_modules/@typescript-eslint/type-utils": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz",
-      "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==",
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
+      "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/typescript-estree": "6.21.0",
-        "@typescript-eslint/utils": "6.21.0",
+        "@typescript-eslint/typescript-estree": "5.62.0",
+        "@typescript-eslint/utils": "5.62.0",
         "debug": "^4.3.4",
-        "ts-api-utils": "^1.0.1"
+        "tsutils": "^3.21.0"
       },
       "engines": {
-        "node": "^16.0.0 || >=18.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/typescript-eslint"
       },
       "peerDependencies": {
-        "eslint": "^7.0.0 || ^8.0.0"
+        "eslint": "*"
       },
       "peerDependenciesMeta": {
         "typescript": {
@@ -1920,13 +1744,13 @@
       }
     },
     "node_modules/@typescript-eslint/types": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
-      "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+      "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
       "dev": true,
       "license": "MIT",
       "engines": {
-        "node": "^16.0.0 || >=18.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
@@ -1934,23 +1758,22 @@
       }
     },
     "node_modules/@typescript-eslint/typescript-estree": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
-      "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+      "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
       "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
-        "@typescript-eslint/types": "6.21.0",
-        "@typescript-eslint/visitor-keys": "6.21.0",
+        "@typescript-eslint/types": "5.62.0",
+        "@typescript-eslint/visitor-keys": "5.62.0",
         "debug": "^4.3.4",
         "globby": "^11.1.0",
         "is-glob": "^4.0.3",
-        "minimatch": "9.0.3",
-        "semver": "^7.5.4",
-        "ts-api-utils": "^1.0.1"
+        "semver": "^7.3.7",
+        "tsutils": "^3.21.0"
       },
       "engines": {
-        "node": "^16.0.0 || >=18.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
@@ -1962,70 +1785,45 @@
         }
       }
     },
-    "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "balanced-match": "^1.0.0"
-      }
-    },
-    "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
-      "version": "9.0.3",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-      "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "brace-expansion": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=16 || 14 >=14.17"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
-      }
-    },
     "node_modules/@typescript-eslint/utils": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
-      "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+      "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@eslint-community/eslint-utils": "^4.4.0",
-        "@types/json-schema": "^7.0.12",
-        "@types/semver": "^7.5.0",
-        "@typescript-eslint/scope-manager": "6.21.0",
-        "@typescript-eslint/types": "6.21.0",
-        "@typescript-eslint/typescript-estree": "6.21.0",
-        "semver": "^7.5.4"
+        "@eslint-community/eslint-utils": "^4.2.0",
+        "@types/json-schema": "^7.0.9",
+        "@types/semver": "^7.3.12",
+        "@typescript-eslint/scope-manager": "5.62.0",
+        "@typescript-eslint/types": "5.62.0",
+        "@typescript-eslint/typescript-estree": "5.62.0",
+        "eslint-scope": "^5.1.1",
+        "semver": "^7.3.7"
       },
       "engines": {
-        "node": "^16.0.0 || >=18.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/typescript-eslint"
       },
       "peerDependencies": {
-        "eslint": "^7.0.0 || ^8.0.0"
+        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
       }
     },
     "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
-      "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
+      "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "6.21.0",
-        "eslint-visitor-keys": "^3.4.1"
+        "@typescript-eslint/types": "5.62.0",
+        "eslint-visitor-keys": "^3.3.0"
       },
       "engines": {
-        "node": "^16.0.0 || >=18.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "type": "opencollective",
@@ -2049,6 +1847,31 @@
         "node": ">=10.0.0"
       }
     },
+    "node_modules/@yarn-tool/resolve-package": {
+      "version": "1.0.47",
+      "resolved": "https://registry.npmjs.org/@yarn-tool/resolve-package/-/resolve-package-1.0.47.tgz",
+      "integrity": "sha512-Zaw58gQxjQceJqhqybJi1oUDaORT8i2GTgwICPs8v/X/Pkx35FXQba69ldHVg5pQZ6YLKpROXgyHvBaCJOFXiA==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "pkg-dir": "< 6 >= 5",
+        "tslib": "^2",
+        "upath2": "^3.1.13"
+      }
+    },
+    "node_modules/@yarn-tool/resolve-package/node_modules/pkg-dir": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
+      "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "find-up": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
     "node_modules/acorn": {
       "version": "8.14.1",
       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
@@ -2640,6 +2463,13 @@
         "node": "^12.20.0 || >=14"
       }
     },
+    "node_modules/commondir": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+      "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+      "dev": true,
+      "license": "MIT"
+    },
     "node_modules/concat-map": {
       "version": "0.0.1",
       "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -2797,13 +2627,6 @@
         "node": ">=6.0.0"
       }
     },
-    "node_modules/eastasianwidth": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
-      "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
-      "dev": true,
-      "license": "MIT"
-    },
     "node_modules/ejs": {
       "version": "3.1.10",
       "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
@@ -2960,6 +2783,20 @@
         "url": "https://opencollective.com/eslint"
       }
     },
+    "node_modules/eslint-scope": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+      "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "dependencies": {
+        "esrecurse": "^4.3.0",
+        "estraverse": "^4.1.1"
+      },
+      "engines": {
+        "node": ">=8.0.0"
+      }
+    },
     "node_modules/eslint-visitor-keys": {
       "version": "3.4.3",
       "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
@@ -3078,6 +2915,23 @@
         "node": ">=4.0"
       }
     },
+    "node_modules/estraverse": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+      "dev": true,
+      "license": "BSD-2-Clause",
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/estree-walker": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+      "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+      "dev": true,
+      "license": "MIT"
+    },
     "node_modules/esutils": {
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -3278,6 +3132,50 @@
         "node": ">=8"
       }
     },
+    "node_modules/find-cache-dir": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
+      "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "commondir": "^1.0.1",
+        "make-dir": "^3.0.2",
+        "pkg-dir": "^4.1.0"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
+      }
+    },
+    "node_modules/find-cache-dir/node_modules/make-dir": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+      "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "semver": "^6.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/find-cache-dir/node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "dev": true,
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
     "node_modules/find-up": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -3356,36 +3254,6 @@
       "dev": true,
       "license": "ISC"
     },
-    "node_modules/foreground-child": {
-      "version": "3.3.1",
-      "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
-      "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "cross-spawn": "^7.0.6",
-        "signal-exit": "^4.0.1"
-      },
-      "engines": {
-        "node": ">=14"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
-      }
-    },
-    "node_modules/foreground-child/node_modules/signal-exit": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
-      "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
-      "dev": true,
-      "license": "ISC",
-      "engines": {
-        "node": ">=14"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
-      }
-    },
     "node_modules/fs-extra": {
       "version": "9.1.0",
       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
@@ -3504,21 +3372,19 @@
       }
     },
     "node_modules/glob": {
-      "version": "10.4.5",
-      "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
-      "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+      "version": "9.3.5",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
+      "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
       "dev": true,
       "license": "ISC",
       "dependencies": {
-        "foreground-child": "^3.1.0",
-        "jackspeak": "^3.1.2",
-        "minimatch": "^9.0.4",
-        "minipass": "^7.1.2",
-        "package-json-from-dist": "^1.0.0",
-        "path-scurry": "^1.11.1"
+        "fs.realpath": "^1.0.0",
+        "minimatch": "^8.0.2",
+        "minipass": "^4.2.4",
+        "path-scurry": "^1.6.1"
       },
-      "bin": {
-        "glob": "dist/esm/bin.mjs"
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
       },
       "funding": {
         "url": "https://github.com/sponsors/isaacs"
@@ -3548,9 +3414,9 @@
       }
     },
     "node_modules/glob/node_modules/minimatch": {
-      "version": "9.0.5",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
-      "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+      "version": "8.0.4",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz",
+      "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==",
       "dev": true,
       "license": "ISC",
       "dependencies": {
@@ -3946,22 +3812,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/jackspeak": {
-      "version": "3.4.3",
-      "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
-      "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
-      "dev": true,
-      "license": "BlueOak-1.0.0",
-      "dependencies": {
-        "@isaacs/cliui": "^8.0.2"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
-      },
-      "optionalDependencies": {
-        "@pkgjs/parseargs": "^0.11.0"
-      }
-    },
     "node_modules/jake": {
       "version": "10.9.2",
       "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz",
@@ -4871,13 +4721,13 @@
       }
     },
     "node_modules/minipass": {
-      "version": "7.1.2",
-      "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
-      "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+      "version": "4.2.8",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
+      "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
       "dev": true,
       "license": "ISC",
       "engines": {
-        "node": ">=16 || 14 >=14.17"
+        "node": ">=8"
       }
     },
     "node_modules/minizlib": {
@@ -4960,6 +4810,13 @@
       "dev": true,
       "license": "MIT"
     },
+    "node_modules/natural-compare-lite": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+      "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+      "dev": true,
+      "license": "MIT"
+    },
     "node_modules/node-int64": {
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
@@ -5101,13 +4958,6 @@
         "node": ">=6"
       }
     },
-    "node_modules/package-json-from-dist": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
-      "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
-      "dev": true,
-      "license": "BlueOak-1.0.0"
-    },
     "node_modules/parent-module": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -5160,6 +5010,16 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/path-is-network-drive": {
+      "version": "1.0.21",
+      "resolved": "https://registry.npmjs.org/path-is-network-drive/-/path-is-network-drive-1.0.21.tgz",
+      "integrity": "sha512-B1PzE3CgxNKY0/69Urjw3KNi4K+4q4IBsvq02TwURsdNLZj2YUn0HGw2o26IrGV4YUffg7IHZiwKJ/EDhXMQyg==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "tslib": "^2"
+      }
+    },
     "node_modules/path-key": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
@@ -5194,6 +5054,26 @@
         "url": "https://github.com/sponsors/isaacs"
       }
     },
+    "node_modules/path-scurry/node_modules/minipass": {
+      "version": "7.1.2",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+      "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+      "dev": true,
+      "license": "ISC",
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      }
+    },
+    "node_modules/path-strip-sep": {
+      "version": "1.0.18",
+      "resolved": "https://registry.npmjs.org/path-strip-sep/-/path-strip-sep-1.0.18.tgz",
+      "integrity": "sha512-IGC/vjHigvKV9RsE4ArZiGNkqNrb0tk1j/HO0TS49duEUqGSy1y464XhCWyTLFwqe7w7wFsdCX9fqUmAHoUaxA==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "tslib": "^2"
+      }
+    },
     "node_modules/path-type": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -5335,6 +5215,22 @@
         "node": ">= 0.8.0"
       }
     },
+    "node_modules/prettier": {
+      "version": "2.8.8",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
+      "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "prettier": "bin-prettier.js"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      },
+      "funding": {
+        "url": "https://github.com/prettier/prettier?sponsor=1"
+      }
+    },
     "node_modules/pretty-format": {
       "version": "29.7.0",
       "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
@@ -5543,21 +5439,75 @@
       }
     },
     "node_modules/rimraf": {
-      "version": "5.0.10",
-      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz",
-      "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==",
+      "version": "4.4.1",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz",
+      "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==",
       "dev": true,
       "license": "ISC",
       "dependencies": {
-        "glob": "^10.3.7"
+        "glob": "^9.2.0"
       },
       "bin": {
-        "rimraf": "dist/esm/bin.mjs"
+        "rimraf": "dist/cjs/src/bin.js"
+      },
+      "engines": {
+        "node": ">=14"
       },
       "funding": {
         "url": "https://github.com/sponsors/isaacs"
       }
     },
+    "node_modules/rollup": {
+      "version": "3.29.5",
+      "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz",
+      "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "rollup": "dist/bin/rollup"
+      },
+      "engines": {
+        "node": ">=14.18.0",
+        "npm": ">=8.0.0"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/rollup-plugin-typescript2": {
+      "version": "0.31.2",
+      "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.31.2.tgz",
+      "integrity": "sha512-hRwEYR1C8xDGVVMFJQdEVnNAeWRvpaY97g5mp3IeLnzhNXzSVq78Ye/BJ9PAaUfN4DXa/uDnqerifMOaMFY54Q==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@rollup/pluginutils": "^4.1.2",
+        "@yarn-tool/resolve-package": "^1.0.40",
+        "find-cache-dir": "^3.3.2",
+        "fs-extra": "^10.0.0",
+        "resolve": "^1.20.0",
+        "tslib": "^2.3.1"
+      },
+      "peerDependencies": {
+        "rollup": ">=1.26.3",
+        "typescript": ">=2.4.0"
+      }
+    },
+    "node_modules/rollup-plugin-typescript2/node_modules/fs-extra": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+      "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/run-parallel": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -5788,22 +5738,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/string-width-cjs": {
-      "name": "string-width",
-      "version": "4.2.3",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
-      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "emoji-regex": "^8.0.0",
-        "is-fullwidth-code-point": "^3.0.0",
-        "strip-ansi": "^6.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/strip-ansi": {
       "version": "6.0.1",
       "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@@ -5817,20 +5751,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/strip-ansi-cjs": {
-      "name": "strip-ansi",
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
-      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "ansi-regex": "^5.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/strip-bom": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
@@ -6002,19 +5922,6 @@
         "tree-kill": "cli.js"
       }
     },
-    "node_modules/ts-api-utils": {
-      "version": "1.4.3",
-      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz",
-      "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=16"
-      },
-      "peerDependencies": {
-        "typescript": ">=4.2.0"
-      }
-    },
     "node_modules/ts-jest": {
       "version": "29.3.0",
       "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.0.tgz",
@@ -6084,6 +5991,29 @@
       "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
       "license": "0BSD"
     },
+    "node_modules/tsutils": {
+      "version": "3.21.0",
+      "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+      "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "tslib": "^1.8.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      },
+      "peerDependencies": {
+        "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+      }
+    },
+    "node_modules/tsutils/node_modules/tslib": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+      "dev": true,
+      "license": "0BSD"
+    },
     "node_modules/type-check": {
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -6135,9 +6065,9 @@
       }
     },
     "node_modules/undici-types": {
-      "version": "6.19.8",
-      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
-      "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+      "version": "5.26.5",
+      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
       "dev": true,
       "license": "MIT"
     },
@@ -6161,6 +6091,19 @@
         "node": ">=8"
       }
     },
+    "node_modules/upath2": {
+      "version": "3.1.20",
+      "resolved": "https://registry.npmjs.org/upath2/-/upath2-3.1.20.tgz",
+      "integrity": "sha512-g+t9q+MrIsX60eJzF4I/YNYmRmrT0HJnnEaenbUy/FFO1lY04YQoiJ/qS4Ou+a+D9WUPxN0cVUYXkkX9b1EAMw==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "@types/node": "*",
+        "path-is-network-drive": "^1.0.21",
+        "path-strip-sep": "^1.0.18",
+        "tslib": "^2"
+      }
+    },
     "node_modules/update-browserslist-db": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
@@ -6278,25 +6221,6 @@
         "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
       }
     },
-    "node_modules/wrap-ansi-cjs": {
-      "name": "wrap-ansi",
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
-      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "ansi-styles": "^4.0.0",
-        "string-width": "^4.1.0",
-        "strip-ansi": "^6.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
-      }
-    },
     "node_modules/wrappy": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
diff --git a/package.json b/package.json
index d14aa44..f5cf38c 100644
--- a/package.json
+++ b/package.json
@@ -1,65 +1,53 @@
 {
-  "name": "capacitor-daily-notification",
-  "version": "0.0.1",
-  "description": "Capacitor plugin for daily notifications with network content",
+  "name": "@timesafari/daily-notification-plugin",
+  "version": "1.0.0",
+  "description": "A Capacitor plugin for scheduling and managing daily notifications on Android devices",
   "main": "dist/plugin.js",
   "module": "dist/esm/index.js",
-  "types": "dist/types/index.d.ts",
+  "types": "dist/esm/index.d.ts",
   "scripts": {
-    "build": "npm run clean && tsc",
+    "build": "npm run clean && tsc && rollup -c rollup.config.js",
     "clean": "rimraf ./dist",
     "watch": "tsc --watch",
     "prepublishOnly": "npm run build",
-    "build:android": "chmod +x scripts/build-native.sh && ./scripts/build-native.sh --platform android",
-    "build:ios": "chmod +x scripts/build-native.sh && ./scripts/build-native.sh --platform ios",
-    "build:native": "chmod +x scripts/build-native.sh && ./scripts/build-native.sh --platform all",
-    "test:android": "cd android && ./gradlew test",
-    "test:ios": "cd ios && xcodebuild test -scheme DailyNotificationPlugin -destination 'platform=iOS Simulator,name=iPhone 14'",
     "test": "jest",
-    "test:watch": "jest --watch",
-    "test:coverage": "jest --coverage",
     "lint": "eslint . --ext .ts",
-    "lint:fix": "eslint . --ext .ts --fix",
-    "validate": "npm run lint && npm run build && npm run test:android",
-    "validate:ios": "npm run lint && npm run build && npm run test:ios",
-    "preinstall": "node scripts/check-environment.js",
-    "postinstall": "node scripts/setup-native.js"
+    "format": "prettier --write \"src/**/*.ts\""
   },
+  "keywords": [
+    "capacitor",
+    "android",
+    "notification",
+    "daily",
+    "plugin"
+  ],
   "author": "Matthew Raymer",
   "license": "MIT",
   "dependencies": {
-    "@capacitor/android": "^5.0.0",
-    "@capacitor/core": "^5.0.0",
-    "@capacitor/ios": "^5.0.0"
+    "@capacitor/core": "^5.7.8"
   },
   "devDependencies": {
+    "@capacitor/android": "^5.7.8",
     "@capacitor/cli": "^5.0.0",
-    "@jest/globals": "^29.5.0",
-    "@types/jest": "^29.5.14",
-    "@types/node": "^20.0.0",
-    "@typescript-eslint/eslint-plugin": "^6.0.0",
-    "@typescript-eslint/parser": "^6.0.0",
-    "eslint": "^8.0.0",
+    "@capacitor/ios": "^5.0.0",
+    "@types/jest": "^29.5.0",
+    "@types/node": "^18.15.0",
+    "@typescript-eslint/eslint-plugin": "^5.57.0",
+    "@typescript-eslint/parser": "^5.57.0",
+    "eslint": "^8.37.0",
     "jest": "^29.5.0",
-    "rimraf": "^5.0.0",
+    "prettier": "^2.8.7",
+    "rimraf": "^4.4.0",
+    "rollup": "^3.20.0",
+    "rollup-plugin-typescript2": "^0.31.0",
     "ts-jest": "^29.1.0",
     "typescript": "^5.0.0"
   },
-  "peerDependencies": {
-    "@capacitor/core": "^5.0.0"
-  },
   "files": [
     "dist/",
     "ios/",
     "android/",
-    "CapacitorDailyNotification.podspec"
-  ],
-  "keywords": [
-    "capacitor",
-    "plugin",
-    "native",
-    "notification",
-    "daily"
+    "DailyNotificationPlugin.podspec"
   ],
   "capacitor": {
     "ios": {
@@ -75,5 +63,17 @@
   },
   "bugs": {
     "url": "https://github.com/yourusername/capacitor-daily-notification/issues"
+  },
+  "jest": {
+    "preset": "ts-jest",
+    "testEnvironment": "node",
+    "moduleFileExtensions": [
+      "ts",
+      "tsx",
+      "js",
+      "jsx",
+      "json",
+      "node"
+    ]
   }
 }
diff --git a/rollup.config.js b/rollup.config.js
new file mode 100644
index 0000000..9f246f7
--- /dev/null
+++ b/rollup.config.js
@@ -0,0 +1,25 @@
+import typescript from 'rollup-plugin-typescript2';
+
+export default {
+  input: 'src/index.ts',
+  output: [
+    {
+      file: 'dist/plugin.js',
+      format: 'cjs',
+      sourcemap: true
+    },
+    {
+      file: 'dist/esm/index.js',
+      format: 'es',
+      sourcemap: true
+    }
+  ],
+  external: ['@capacitor/core'],
+  plugins: [
+    typescript({
+      tsconfig: './tsconfig.json',
+      clean: true,
+      useTsconfigDeclarationDir: true
+    })
+  ]
+}; 
\ No newline at end of file
diff --git a/src/definitions.ts b/src/definitions.ts
index a8d9815..648da68 100644
--- a/src/definitions.ts
+++ b/src/definitions.ts
@@ -1,98 +1,61 @@
 /**
- * Interface definitions for the Daily Notification plugin
+ * Daily Notification Plugin Definitions
+ * 
+ * TypeScript definitions for the Daily Notification Plugin
+ * 
+ * @author Matthew Raymer
  */
 
-export interface NotificationOptions {
-  url: string;
-  time: string;
-  title?: string;
-  body?: string;
-  sound?: boolean;
-  vibrate?: boolean;
-  priority?: 'low' | 'normal' | 'high';
-  retryCount?: number;
-  retryInterval?: number;
-  cacheDuration?: number;
-  headers?: Record<string, string>;
-  offlineFallback?: boolean;
-  timezone?: string;
-  contentHandler?: (response: Response) => Promise<{
-    title: string;
-    body: string;
-    data?: any;
-  }>;
-}
-
-export interface NotificationStatus {
-  isScheduled: boolean;
-  nextNotificationTime?: string;
-  lastNotificationTime?: string;
-  error?: string;
-}
-
 export interface NotificationResponse {
   title: string;
   body: string;
-  data?: any;
-  timestamp: string;
 }
 
-export interface NotificationSettings {
-  time?: string;
+export interface NotificationOptions {
+  title?: string;
+  body?: string;
   sound?: boolean;
-  vibrate?: boolean;
-  priority?: 'low' | 'normal' | 'high';
-  timezone?: string;
-}
-
-export interface NotificationEvent extends Event {
-  detail: {
-    id: string;
-    action: string;
-    data?: any;
-  };
+  priority?: 'high' | 'low' | 'normal';
 }
 
 export interface DailyNotificationPlugin {
-  /**
-   * Schedule a daily notification with the specified options
-   */
-  scheduleDailyNotification(options: NotificationOptions): Promise<void>;
-
-  /**
-   * Get the last notification that was delivered
-   */
+  scheduleDailyNotification(options: NotificationOptions | ScheduleOptions): Promise<void>;
   getLastNotification(): Promise<NotificationResponse | null>;
-
-  /**
-   * Cancel all scheduled notifications
-   */
   cancelAllNotifications(): Promise<void>;
-
-  /**
-   * Get the current status of notifications
-   */
   getNotificationStatus(): Promise<NotificationStatus>;
-
-  /**
-   * Update notification settings
-   */
   updateSettings(settings: NotificationSettings): Promise<void>;
+  getBatteryStatus(): Promise<BatteryStatus>;
+  requestBatteryOptimizationExemption(): Promise<void>;
+  setAdaptiveScheduling(options: { enabled: boolean }): Promise<void>;
+  getPowerState(): Promise<PowerState>;
+}
 
-  /**
-   * Check notification permissions
-   */
-  checkPermissions(): Promise<PermissionStatus>;
+export interface ScheduleOptions {
+  sound?: boolean;
+  priority?: 'high' | 'default' | 'low' | 'min' | 'max';
+  timezone?: string;
+}
 
-  /**
-   * Request notification permissions
-   */
-  requestPermissions(): Promise<PermissionStatus>;
+export interface NotificationSettings {
+  sound?: boolean;
+  priority?: string;
+  timezone?: string;
+}
+
+export interface NotificationStatus {
+  lastNotificationTime: number;
+  nextNotificationTime: number;
+  settings: NotificationSettings;
 }
 
-export interface PermissionStatus {
-  notifications: PermissionState;
-  backgroundRefresh?: PermissionState; // iOS only
+export interface BatteryStatus {
+  level: number;
+  isCharging: boolean;
+  powerState: number;
+  isOptimizationExempt: boolean;
 }
 
-export type PermissionState = 'prompt' | 'prompt-with-rationale' | 'granted' | 'denied';
\ No newline at end of file
+export interface PowerState {
+  powerState: number;
+  isOptimizationExempt: boolean;
+}
\ No newline at end of file
diff --git a/src/index.ts b/src/index.ts
index ddd1949..ffde750 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -5,9 +5,10 @@
 
 import { registerPlugin } from '@capacitor/core';
 import type { DailyNotificationPlugin } from './definitions';
+import { DailyNotificationWeb } from './web';
 
 const DailyNotification = registerPlugin<DailyNotificationPlugin>('DailyNotification', {
-  web: () => import('./web').then(m => new m.DailyNotificationWeb()),
+  web: async () => new DailyNotificationWeb(),
 });
 
 export * from './definitions';
diff --git a/src/web.ts b/src/web.ts
new file mode 100644
index 0000000..ddbe69e
--- /dev/null
+++ b/src/web.ts
@@ -0,0 +1,63 @@
+/**
+ * Daily Notification Plugin Web Implementation
+ * 
+ * Web implementation of the Daily Notification Plugin
+ * 
+ * @author Matthew Raymer
+ */
+
+import { DailyNotificationPlugin, NotificationOptions, NotificationResponse, NotificationSettings, NotificationStatus, BatteryStatus, PowerState, ScheduleOptions } from './definitions';
+
+export class DailyNotificationWeb implements DailyNotificationPlugin {
+  async scheduleDailyNotification(options: NotificationOptions | ScheduleOptions): Promise<void> {
+    console.warn('Daily notifications are not supported on web');
+  }
+
+  async getLastNotification(): Promise<NotificationResponse | null> {
+    console.warn('Daily notifications are not supported on web');
+    return null;
+  }
+
+  async cancelAllNotifications(): Promise<void> {
+    console.warn('Daily notifications are not supported on web');
+  }
+
+  async getNotificationStatus(): Promise<NotificationStatus> {
+    console.warn('Daily notifications are not supported on web');
+    return {
+      lastNotificationTime: 0,
+      nextNotificationTime: 0,
+      settings: {}
+    };
+  }
+
+  async updateSettings(settings: NotificationSettings): Promise<void> {
+    console.warn('Daily notifications are not supported on web');
+  }
+
+  async getBatteryStatus(): Promise<BatteryStatus> {
+    console.warn('Battery status is not supported on web');
+    return {
+      level: 0,
+      isCharging: false,
+      powerState: 0,
+      isOptimizationExempt: false
+    };
+  }
+
+  async requestBatteryOptimizationExemption(): Promise<void> {
+    console.warn('Battery optimization is not supported on web');
+  }
+
+  async setAdaptiveScheduling(options: { enabled: boolean }): Promise<void> {
+    console.warn('Adaptive scheduling is not supported on web');
+  }
+
+  async getPowerState(): Promise<PowerState> {
+    console.warn('Power state is not supported on web');
+    return {
+      powerState: 0,
+      isOptimizationExempt: false
+    };
+  }
+} 
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index dcd50d3..096df5f 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,16 +1,25 @@
 {
   "compilerOptions": {
-    "target": "es2017",
-    "module": "commonjs",
-    "lib": ["es2017", "dom"],
+    "allowUnreachableCode": false,
+    "allowUnusedLabels": false,
     "declaration": true,
-    "outDir": "./dist",
-    "strict": true,
     "esModuleInterop": true,
-    "skipLibCheck": true,
     "forceConsistentCasingInFileNames": true,
-    "types": ["node", "jest"]
+    "lib": ["dom", "es2017"],
+    "module": "es2020",
+    "moduleResolution": "node",
+    "noFallthroughCasesInSwitch": true,
+    "noImplicitAny": true,
+    "noImplicitReturns": true,
+    "noImplicitThis": true,
+    "noUnusedLocals": true,
+    "noUnusedParameters": true,
+    "outDir": "dist/esm",
+    "rootDir": "src",
+    "strict": true,
+    "target": "es2017",
+    "skipLibCheck": true
   },
-  "include": ["src/**/*", "tests/**/*"],
-  "exclude": ["node_modules", "dist"]
+  "include": ["src"],
+  "exclude": ["node_modules", "dist", "**/*.spec.ts"]
 }