diff --git a/ModernKeePass/.sonarqube/conf/0/ProjectOutFolderPath.txt b/ModernKeePass/.sonarqube/conf/0/ProjectOutFolderPath.txt
new file mode 100644
index 0000000..737b5f1
--- /dev/null
+++ b/ModernKeePass/.sonarqube/conf/0/ProjectOutFolderPath.txt
@@ -0,0 +1 @@
+C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\out\0
diff --git a/ModernKeePass/.sonarqube/conf/SonarQubeAnalysisConfig.xml b/ModernKeePass/.sonarqube/conf/SonarQubeAnalysisConfig.xml
new file mode 100644
index 0000000..ea98012
--- /dev/null
+++ b/ModernKeePass/.sonarqube/conf/SonarQubeAnalysisConfig.xml
@@ -0,0 +1,171 @@
+
+
+ C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\conf
+ C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\out
+ C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\bin
+ C:\Sources\Other\ModernKeePass\ModernKeePass
+ true
+ https://sonarcloud.io
+ 7.2.0.12953
+ ModernKeePass
+
+
+
+
+
+
+ 7.1.0.5212
+ https://update.sonarsource.org/editions.json
+ true
+ true
+ .c,.h
+ .ts,.tsx
+ SonarQube
+ false
+ Unique
+ oracle.jdbc.OracleDriver
+ **/vendor/**
+ false
+ 60
+ .cc,.cpp,.cxx,.c++,.hh,.hpp,.hxx,.h++,.ipp
+ SonarAnalyzer.CSharp
+ .html,.xhtml,.rhtml,.shtml
+ false
+ false
+ true
+ 100
+ target/jacoco.exec, target/jacoco-it.exec
+ false
+ true
+ 30
+ false
+ 30
+ Unique
+ true
+ SonarAnalyzer.VisualBasic
+ true
+ true
+ 730
+ 4
+ https://secure.gravatar.com/avatar/{EMAIL_MD5}.jpg?s={SIZE}&d=identicon
+ 600
+ amd, applescript, atomtest, browser, commonjs, couch, embertest, flow, greasemonkey, jasmine, jest, jquery, meteor, mocha, mongo, nashorn, node, phantomjs, prototypejs, protractor, qunit, rhino, serviceworker, shared-node-browser, shelljs, webextensions, worker, wsh, yui
+ false
+ **/node_modules/**,**/bower_components/**
+ .vb
+ .abap,.ab4,.flow,.asprog
+ true
+ 30
+ py
+ .cs
+ sql,tab,pkb
+ SonarAnalyzer-7.1.0.5212.zip
+ .java,.jav
+ php,php3,php4,php5,phtml,inc
+ .xml,.xsd,.xsl
+ 480
+ true
+ true
+ $, jQuery
+ 7.1.0.5212
+ .go
+ 104
+ .swift
+ https://api.github.com
+ false
+ as
+ https://api.github.com/
+ true
+ xunit-reports/xunit-result-*.xml
+ angular,goog,google,OpenLayers,d3,dojo,dojox,dijit,Backbone,moment,casper
+ 24
+ true
+ **/node_modules/**,**/bower_components/**
+ https://github.com/
+ true
+ false
+ SonarAnalyzer.VisualBasic
+ noreply@sonarcloud.io
+ 7.1.0.5212
+ node
+ 1
+ SonarAnalyzer.VisualBasic
+ [SonarCloud]
+ c11
+ csharp
+ true
+ (branch|release)-.*
+ .m
+ coverage.out
+ SonarAnalyzer-7.1.0.5212.zip
+ SonarAnalyzer.CSharp
+ https://api.bitbucket.org/
+ false
+ false
+ coverage-reports/*coverage-*.xml
+ SonarAnalyzer.CSharp
+ true
+ 0.05,0.1,0.2,0.5
+ true
+ devcockpit,pdfreport,governance,ldap,authaad,authgithub,authbitbucket,googleanalytics
+ 7.1.0.5212
+ .js,.jsx,.vue
+ 20
+ vbnet
+ true
+ https://update.sonarsource.org/update-center.properties
+ .tsql
+ c++11
+ https://sonarcloud.io
+ https://about.sonarcloud.io/images/SonarCloud-white-210px.png
+ 105
+ <div class="boxed-group" style="border: none; border-radius: 3px;">
+ <div class="boxed-group-inner clearfix" style="padding: 30px; border-radius: 3px; border: #e6e6e6 1px solid; background: #f3f3f3;">
+ <div style="overflow: hidden; line-height: 1.5; font-size: 16px;">
+ <p>
+Analyze your open source and private projects on SonarCloud.
+Select your <a href="https://about.sonarcloud.io">plan</a> and start improving.
+ </p>
+ </div>
+ </div>
+</div>
+ AWHW8ct9-T_TB3XqouNu
+ 07/06/2018 12:32:21
+
+
+ geogeob
+ https://sonarcloud.io
+
+
+
+ cs
+ C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\conf\SonarQubeRoslyn-cs.ruleset
+
+ C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\0\Google.Protobuf.dll
+ C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\0\SonarAnalyzer.CSharp.dll
+ C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\0\SonarAnalyzer.dll
+
+
+ C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\conf\cs\SonarLint.xml
+
+
+
+ vbnet
+ C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\conf\SonarQubeRoslyn-vbnet.ruleset
+
+ C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\SonarAnalyzer.VisualBasic.nuspec
+ C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\[Content_Types].xml
+ C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\analyzers\Google.Protobuf.dll
+ C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\analyzers\SonarAnalyzer.dll
+ C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\analyzers\SonarAnalyzer.VisualBasic.dll
+ C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\package\services\metadata\core-properties\f124441cdae948bb922ac980ea59570c.psmdcp
+ C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\tools\install.ps1
+ C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\tools\uninstall.ps1
+ C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\_rels\.rels
+
+
+ C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\conf\vbnet\SonarLint.xml
+
+
+
+
\ No newline at end of file
diff --git a/ModernKeePass/.sonarqube/conf/SonarQubeRoslyn-cs.ruleset b/ModernKeePass/.sonarqube/conf/SonarQubeRoslyn-cs.ruleset
new file mode 100644
index 0000000..c21b0af
--- /dev/null
+++ b/ModernKeePass/.sonarqube/conf/SonarQubeRoslyn-cs.ruleset
@@ -0,0 +1,348 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ModernKeePass/.sonarqube/conf/SonarQubeRoslyn-vbnet.ruleset b/ModernKeePass/.sonarqube/conf/SonarQubeRoslyn-vbnet.ruleset
new file mode 100644
index 0000000..17328b3
--- /dev/null
+++ b/ModernKeePass/.sonarqube/conf/SonarQubeRoslyn-vbnet.ruleset
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ModernKeePass/.sonarqube/conf/cs/SonarLint.xml b/ModernKeePass/.sonarqube/conf/cs/SonarLint.xml
new file mode 100644
index 0000000..8c2d373
--- /dev/null
+++ b/ModernKeePass/.sonarqube/conf/cs/SonarLint.xml
@@ -0,0 +1,695 @@
+
+
+
+
+ sonar.cs.ignoreHeaderComments
+ true
+
+
+ sonar.cs.file.suffixes
+ .cs
+
+
+
+
+ S2589
+
+
+ S3433
+
+
+ S4061
+
+
+ S1121
+
+
+ S1854
+
+
+ S4457
+
+
+ S4456
+
+
+ S2278
+
+
+ S4211
+
+
+ S3923
+
+
+ S4426
+
+
+ S2486
+
+
+ S4433
+
+
+ S2758
+
+
+ S1751
+
+
+ S1871
+
+
+ S4586
+
+
+ S4581
+
+
+ S2737
+
+
+ S3400
+
+
+ S3649
+
+
+ S1144
+
+
+ S1264
+
+
+ S2201
+
+
+ S1118
+
+
+ S1006
+
+
+ S4214
+
+
+ S4210
+
+
+ S3241
+
+
+ S4428
+
+
+ S1048
+
+
+ S2183
+
+
+ S3168
+
+
+ S4220
+
+
+ S3261
+
+
+ S4260
+
+
+ S4159
+
+
+ S4277
+
+
+ S2583
+
+
+ S3440
+
+
+ S3776
+
+
+ threshold
+ 15
+
+
+ propertyThreshold
+ 3
+
+
+
+
+ S2326
+
+
+ S1116
+
+
+ S3358
+
+
+ S4200
+
+
+ S1172
+
+
+ S1862
+
+
+ S2275
+
+
+ S3457
+
+
+ S3459
+
+
+ S3464
+
+
+ S3343
+
+
+ S818
+
+
+ S1656
+
+
+ S2184
+
+
+ S1764
+
+
+ S2971
+
+
+ S3060
+
+
+ S101
+
+
+ S1066
+
+
+ S107
+
+
+ max
+ 7
+
+
+
+
+ S1075
+
+
+ S108
+
+
+ S110
+
+
+ max
+ 5
+
+
+
+
+ S1104
+
+
+ S1110
+
+
+ S1117
+
+
+ S112
+
+
+ S1123
+
+
+ S1125
+
+
+ S1134
+
+
+ S1135
+
+
+ S1155
+
+
+ S1163
+
+
+ S1168
+
+
+ S1185
+
+
+ S1186
+
+
+ S1206
+
+
+ S1210
+
+
+ S1215
+
+
+ S125
+
+
+ S1450
+
+
+ S1479
+
+
+ maximum
+ 30
+
+
+
+
+ S1481
+
+
+ S1607
+
+
+ S1643
+
+
+ S1699
+
+
+ S1848
+
+
+ S1905
+
+
+ S1939
+
+
+ S1940
+
+
+ S1944
+
+
+ S2068
+
+
+ credentialWords
+ password, passwd, pwd
+
+
+
+
+ S2114
+
+
+ S2123
+
+
+ S2178
+
+
+ S2187
+
+
+ S2190
+
+
+ S2219
+
+
+ S2223
+
+
+ S2225
+
+
+ S2234
+
+
+ S2259
+
+
+ S2290
+
+
+ S2291
+
+
+ S2292
+
+
+ S2306
+
+
+ S2328
+
+
+ S2342
+
+
+ format
+ ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$
+
+
+ flagsAttributeFormat
+ ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?s$
+
+
+
+
+ S2344
+
+
+ S2345
+
+
+ S2346
+
+
+ S2365
+
+
+ S2368
+
+
+ S2372
+
+
+ S2376
+
+
+ S2386
+
+
+ S2436
+
+
+ max
+ 2
+
+
+ maxMethod
+ 3
+
+
+
+
+ S2437
+
+
+ S2681
+
+
+ S2688
+
+
+ S2692
+
+
+ S2696
+
+
+ S2743
+
+
+ S2757
+
+
+ S2761
+
+
+ S2930
+
+
+ S2933
+
+
+ S2934
+
+
+ S2953
+
+
+ S2995
+
+
+ S2996
+
+
+ S2997
+
+
+ S3005
+
+
+ S3010
+
+
+ S3169
+
+
+ S3172
+
+
+ S3217
+
+
+ S3218
+
+
+ S3220
+
+
+ S3236
+
+
+ S3237
+
+
+ S3244
+
+
+ S3246
+
+
+ S3247
+
+
+ S3249
+
+
+ S3251
+
+
+ S3256
+
+
+ S3262
+
+
+ S3263
+
+
+ S3264
+
+
+ S3265
+
+
+ S3346
+
+
+ S3376
+
+
+ S3397
+
+
+ S3415
+
+
+ S3427
+
+
+ S3442
+
+
+ S3443
+
+
+ S3444
+
+
+ S3445
+
+
+ S3447
+
+
+ S3449
+
+
+ S3450
+
+
+ S3451
+
+
+ S3453
+
+
+ S3456
+
+
+ S3458
+
+
+ S3466
+
+
+ S3597
+
+
+ S3598
+
+
+ S3600
+
+
+ S3603
+
+
+ S3604
+
+
+ S3610
+
+
+ S3626
+
+
+ S3655
+
+
+ S3693
+
+
+ S3869
+
+
+ S3871
+
+
+ S3875
+
+
+ S3877
+
+
+ S3881
+
+
+ S3884
+
+
+ S3885
+
+
+ S3887
+
+
+ S3889
+
+
+ S3897
+
+
+ S3903
+
+
+ S3904
+
+
+ S3925
+
+
+ S3926
+
+
+ S3927
+
+
+ S3928
+
+
+ S3966
+
+
+ S3971
+
+
+ S3972
+
+
+ S3981
+
+
+ S3984
+
+
+ S3998
+
+
+ S4015
+
+
+ S4016
+
+
+ S4019
+
+
+ S4035
+
+
+ S4144
+
+
+ S4158
+
+
+ S907
+
+
+ S927
+
+
+
+
+
diff --git a/ModernKeePass/.sonarqube/conf/vbnet/SonarLint.xml b/ModernKeePass/.sonarqube/conf/vbnet/SonarLint.xml
new file mode 100644
index 0000000..81fd3bf
--- /dev/null
+++ b/ModernKeePass/.sonarqube/conf/vbnet/SonarLint.xml
@@ -0,0 +1,186 @@
+
+
+
+
+ sonar.vbnet.ignoreHeaderComments
+ true
+
+
+ sonar.vbnet.file.suffixes
+ .vb
+
+
+
+
+ S1751
+
+
+ S1871
+
+
+ S1656
+
+
+ S1862
+
+
+ S1764
+
+
+ S2178
+
+
+ S101
+
+
+ format
+ ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$
+
+
+
+
+ S1075
+
+
+ S112
+
+
+ S114
+
+
+ format
+ ^I([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$
+
+
+
+
+ S117
+
+
+ format
+ ^[a-z][a-z0-9]*([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$
+
+
+
+
+ S1197
+
+
+ S1542
+
+
+ format
+ ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$
+
+
+
+
+ S1643
+
+
+ S1645
+
+
+ S1654
+
+
+ format
+ ^[a-z][a-z0-9]*([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$
+
+
+
+
+ S2304
+
+
+ format
+ ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?(\.([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?)*$
+
+
+
+
+ S2340
+
+
+ S2342
+
+
+ format
+ ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$
+
+
+ flagsAttributeFormat
+ ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?s$
+
+
+
+
+ S2344
+
+
+ S2345
+
+
+ S2346
+
+
+ S2347
+
+
+ format
+ ^(([a-z][a-z0-9]*)?([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?_)?([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$
+
+
+
+
+ S2349
+
+
+ S2352
+
+
+ S2355
+
+
+ S2358
+
+
+ S2359
+
+
+ S2365
+
+
+ S2368
+
+
+ S2372
+
+
+ S2375
+
+
+ minimumSeriesLength
+ 6
+
+
+
+
+ S2376
+
+
+ S2951
+
+
+ S3385
+
+
+ S3981
+
+
+ S4144
+
+
+
+
+
diff --git a/ModernKeePass/.sonarqube/out/.sonar/.sonar_lock b/ModernKeePass/.sonarqube/out/.sonar/.sonar_lock
new file mode 100644
index 0000000..e69de29
diff --git a/ModernKeePass/.sonarqube/out/.sonar/report-task.txt b/ModernKeePass/.sonarqube/out/.sonar/report-task.txt
new file mode 100644
index 0000000..b51f880
--- /dev/null
+++ b/ModernKeePass/.sonarqube/out/.sonar/report-task.txt
@@ -0,0 +1,7 @@
+organization=geogeob
+projectKey=ModernKeePass
+serverUrl=https://sonarcloud.io
+serverVersion=7.2.0.12953
+dashboardUrl=https://sonarcloud.io/dashboard/index/ModernKeePass
+ceTaskId=AWQER9hfTzX59Iu7A6N0
+ceTaskUrl=https://sonarcloud.io/api/ce/task?id=AWQER9hfTzX59Iu7A6N0
diff --git a/ModernKeePass/.sonarqube/out/0/FilesToAnalyze.txt b/ModernKeePass/.sonarqube/out/0/FilesToAnalyze.txt
new file mode 100644
index 0000000..3f47a3e
Binary files /dev/null and b/ModernKeePass/.sonarqube/out/0/FilesToAnalyze.txt differ
diff --git a/ModernKeePass/.sonarqube/out/0/ProjectInfo.xml b/ModernKeePass/.sonarqube/out/0/ProjectInfo.xml
new file mode 100644
index 0000000..b699c3d
--- /dev/null
+++ b/ModernKeePass/.sonarqube/out/0/ProjectInfo.xml
@@ -0,0 +1,18 @@
+
+
+ ModernKeePass.App
+ C#
+ Product
+ a0cfc681-769b-405a-8482-0cdee595a91f
+ C:\Sources\Other\ModernKeePass\ModernKeePass\ModernKeePass.App.csproj
+ false
+
+
+
+
+ C:\Sources\Other\ModernKeePass\ModernKeePass\bin\Debug\ModernKeePass.exe.RoslynCA.json
+ C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\out\0
+
+ Debug
+ AnyCPU
+
\ No newline at end of file
diff --git a/ModernKeePass/.sonarqube/out/0/output-cs/encoding.pb b/ModernKeePass/.sonarqube/out/0/output-cs/encoding.pb
new file mode 100644
index 0000000..d5c9f09
--- /dev/null
+++ b/ModernKeePass/.sonarqube/out/0/output-cs/encoding.pb
@@ -0,0 +1,85 @@
+P
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\ClipboardAction.csutf-8T
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\NavigateToUrlAction.csutf-8Q
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\SetupFocusAction.csutf-8A
+8C:\Sources\Other\ModernKeePass\ModernKeePass\App.xaml.csutf-8X
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\IntToSymbolConverter.csutf-8[
+RC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\DatabaseOpenedException.csutf-8S
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ILicenseService.csutf-8[
+RC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IProxyInvocationHandler.csutf-8R
+IC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentService.csutf-8O
+FC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentItem.csutf-8T
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IResourceService.csutf-8V
+MC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SingletonServiceBase.csutf-8i
+`C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\SelectableDataTemplateSelector.csutf-8X
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsSaveVm.csutf-8]
+TC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\DonatePage.xaml.csutf-8Q
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\DatabaseService.csutf-8T
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISettingsService.csutf-8S
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Common\MessageDialogHelper.csutf-8P
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NavigationHelper.csutf-8Y
+PC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NotifyPropertyChangedBase.csutf-8T
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ObservableDictionary.csutf-8L
+CC:\Sources\Other\ModernKeePass\ModernKeePass\Common\RelayCommand.csutf-8Q
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Common\SuspensionManager.csutf-8P
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Services\LicenseService.csutf-8O
+FC:\Sources\Other\ModernKeePass\ModernKeePass\Services\RecentService.csutf-8R
+IC:\Sources\Other\ModernKeePass\ModernKeePass\Services\ResourcesService.csutf-8Q
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SettingsService.csutf-8W
+NC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ToastNotificationHelper.csutf-8i
+`C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DiscreteIntToSolidColorBrushConverter.csutf-8d
+[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\EmptyStringToVisibilityConverter.csutf-8Z
+QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\NullToBooleanConverter.csutf-8Q
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\SaveException.csutf-8\
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Extensions\DispatcherTaskExtensions.csutf-8T
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IDatabaseService.csutf-8X
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IHasSelectableObject.csutf-8T
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISelectableModel.csutf-8\
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\BasePages\LayoutAwarePageBase.csutf-8k
+bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsDatabasePage.xaml.csutf-8n
+eC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsNewDatabasePage.xaml.csutf-8g
+^C:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSavePage.xaml.csutf-8k
+bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSecurityPage.xaml.csutf-8j
+aC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsWelcomePage.xaml.csutf-8h
+_C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\FirstItemDataTemplateSelector.csutf-8U
+LC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\ListViewWithDisable.csutf-8f
+]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\BreadCrumbUserControl.xaml.csutf-8h
+_C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\CompositeKeyUserControl.xaml.csutf-8S
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\TextBoxWithButton.csutf-8`
+WC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\BooleanToVisibilityConverter.csutf-8Y
+PC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ColorToBrushConverter.csutf-8d
+[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DoubleToSolidColorBrushConverter.csutf-8g
+^C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\InverseBooleanToVisibilityConverter.csutf-8Z
+QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\PluralizationConverter.csutf-8c
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ProgressBarLegalValuesConverter.csutf-8X
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\TextToWidthConverter.csutf-8Q
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Events\PasswordEventArgs.csutf-8N
+EC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IIsEnabled.csutf-8M
+DC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IPwEntity.csutf-8L
+CC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPage.xaml.csutf-8\
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\AboutPage.xaml.csutf-8b
+YC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\NewDatabasePage.xaml.csutf-8P
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPage.xaml.csutf-8^
+UC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\WelcomePage.xaml.csutf-8K
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\AboutVm.csutf-8R
+IC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\CompositeKeyVm.csutf-8X
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\ListMenuItemVm.csutf-8X
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\MainMenuItemVm.csutf-8V
+MC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\RecentItemVm.csutf-8S
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\EntryDetailPage.xaml.csutf-8S
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\GroupDetailPage.xaml.csutf-8c
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\OpenDatabasePage.xaml.csutf-8f
+]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\RecentDatabasesPage.xaml.csutf-8c
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\SaveDatabasePage.xaml.csutf-8P
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Properties\AssemblyInfo.csutf-8K
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\EntryVm.csutf-8K
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\GroupVm.csutf-8W
+NC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsNewVm.csutf-8N
+EC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SettingsVm.csutf-8J
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\MainVm.csutf-8I
+@C:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\NewVm.csutf-8J
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\OpenVm.csutf-8L
+CC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\RecentVm.csutf-8J
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SaveVm.csutf-8\
+SC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsDatabaseVm.csutf-8i
+`C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\HamburgerMenuUserControl.xaml.csutf-8
\ No newline at end of file
diff --git a/ModernKeePass/.sonarqube/out/0/output-cs/file-metadata.pb b/ModernKeePass/.sonarqube/out/0/output-cs/file-metadata.pb
new file mode 100644
index 0000000..14e6dbd
--- /dev/null
+++ b/ModernKeePass/.sonarqube/out/0/output-cs/file-metadata.pb
@@ -0,0 +1,139 @@
+I
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\ClipboardAction.csM
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\NavigateToUrlAction.csJ
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\SetupFocusAction.cs:
+8C:\Sources\Other\ModernKeePass\ModernKeePass\App.xaml.csQ
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\IntToSymbolConverter.csT
+RC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\DatabaseOpenedException.csL
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ILicenseService.csT
+RC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IProxyInvocationHandler.csK
+IC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentService.csH
+FC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentItem.csM
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IResourceService.csO
+MC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SingletonServiceBase.csb
+`C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\SelectableDataTemplateSelector.csQ
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsSaveVm.csV
+TC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\DonatePage.xaml.csJ
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\DatabaseService.csM
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISettingsService.csL
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Common\MessageDialogHelper.csI
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NavigationHelper.csR
+PC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NotifyPropertyChangedBase.csM
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ObservableDictionary.csE
+CC:\Sources\Other\ModernKeePass\ModernKeePass\Common\RelayCommand.csJ
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Common\SuspensionManager.csI
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Services\LicenseService.csH
+FC:\Sources\Other\ModernKeePass\ModernKeePass\Services\RecentService.csK
+IC:\Sources\Other\ModernKeePass\ModernKeePass\Services\ResourcesService.csJ
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SettingsService.csP
+NC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ToastNotificationHelper.csb
+`C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DiscreteIntToSolidColorBrushConverter.cs]
+[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\EmptyStringToVisibilityConverter.csS
+QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\NullToBooleanConverter.csJ
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\SaveException.csU
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Extensions\DispatcherTaskExtensions.csM
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IDatabaseService.csQ
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IHasSelectableObject.csM
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISelectableModel.csU
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\BasePages\LayoutAwarePageBase.csd
+bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsDatabasePage.xaml.csg
+eC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsNewDatabasePage.xaml.cs`
+^C:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSavePage.xaml.csd
+bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSecurityPage.xaml.csc
+aC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsWelcomePage.xaml.csa
+_C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\FirstItemDataTemplateSelector.csN
+LC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\ListViewWithDisable.cs_
+]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\BreadCrumbUserControl.xaml.csa
+_C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\CompositeKeyUserControl.xaml.csL
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\TextBoxWithButton.csY
+WC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\BooleanToVisibilityConverter.csR
+PC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ColorToBrushConverter.cs]
+[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DoubleToSolidColorBrushConverter.cs`
+^C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\InverseBooleanToVisibilityConverter.csS
+QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\PluralizationConverter.cs\
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ProgressBarLegalValuesConverter.csQ
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\TextToWidthConverter.csJ
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Events\PasswordEventArgs.csG
+EC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IIsEnabled.csF
+DC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IPwEntity.csE
+CC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPage.xaml.csU
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\AboutPage.xaml.cs[
+YC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\NewDatabasePage.xaml.csI
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPage.xaml.csW
+UC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\WelcomePage.xaml.csD
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\AboutVm.csK
+IC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\CompositeKeyVm.csQ
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\ListMenuItemVm.csQ
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\MainMenuItemVm.csO
+MC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\RecentItemVm.csL
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\EntryDetailPage.xaml.csL
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\GroupDetailPage.xaml.cs\
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\OpenDatabasePage.xaml.cs_
+]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\RecentDatabasesPage.xaml.cs\
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\SaveDatabasePage.xaml.csI
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Properties\AssemblyInfo.csD
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\EntryVm.csD
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\GroupVm.csP
+NC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsNewVm.csG
+EC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SettingsVm.csC
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\MainVm.csB
+@C:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\NewVm.csC
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\OpenVm.csE
+CC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\RecentVm.csC
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SaveVm.csU
+SC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsDatabaseVm.csb
+`C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\HamburgerMenuUserControl.xaml.csE
+AC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\App.g.i.csC
+?C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\App.g.csO
+KC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\Colors.g.i.csM
+IC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\Colors.g.csk
+gC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsSavePage.g.i.csi
+eC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsSavePage.g.csj
+fC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\UserControls\BreadCrumbUserControl.g.i.csh
+dC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\UserControls\BreadCrumbUserControl.g.csl
+hC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\UserControls\CompositeKeyUserControl.g.i.csj
+fC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\UserControls\CompositeKeyUserControl.g.csP
+LC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPage.g.i.csN
+JC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPage.g.cs`
+\C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\AboutPage.g.i.cs^
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\AboutPage.g.csW
+SC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\EntryDetailPage.g.i.csU
+QC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\EntryDetailPage.g.csW
+SC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\GroupDetailPage.g.i.csU
+QC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\GroupDetailPage.g.csa
+]C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\DonatePage.g.i.cs_
+[C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\DonatePage.g.csf
+bC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\NewDatabasePage.g.i.csd
+`C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\NewDatabasePage.g.csg
+cC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\OpenDatabasePage.g.i.cse
+aC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\OpenDatabasePage.g.csj
+fC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\RecentDatabasesPage.g.i.csh
+dC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\RecentDatabasesPage.g.csg
+cC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\SaveDatabasePage.g.i.cse
+aC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\SaveDatabasePage.g.csT
+PC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPage.g.i.csR
+NC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPage.g.csb
+^C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\WelcomePage.g.i.cs`
+\C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\WelcomePage.g.cso
+kC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsDatabasePage.g.i.csm
+iC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsDatabasePage.g.csr
+nC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsNewDatabasePage.g.i.csp
+lC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsNewDatabasePage.g.cso
+kC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsSecurityPage.g.i.csm
+iC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsSecurityPage.g.csn
+jC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsWelcomePage.g.i.csl
+hC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsWelcomePage.g.cs]
+YC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\HamburgerButtonStyle.g.i.cs[
+WC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\HamburgerButtonStyle.g.csc
+_C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\ListViewLeftIndicatorStyle.g.i.csa
+]C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\ListViewLeftIndicatorStyle.g.cs\
+XC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\NoBorderButtonStyle.g.i.csZ
+VC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\NoBorderButtonStyle.g.csO
+KC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\Styles.g.i.csM
+IC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\Styles.g.cs_
+[C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\TextBoxWithButtonStyle.g.i.cs]
+YC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\TextBoxWithButtonStyle.g.csm
+iC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\UserControls\HamburgerMenuUserControl.g.i.csk
+gC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\UserControls\HamburgerMenuUserControl.g.csL
+HC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\XamlTypeInfo.g.csQ
+MC:\Users\GBE\AppData\Local\Temp\.NETCore,Version=v4.5.1.AssemblyAttributes.cs
\ No newline at end of file
diff --git a/ModernKeePass/.sonarqube/out/0/output-cs/metrics.pb b/ModernKeePass/.sonarqube/out/0/output-cs/metrics.pb
new file mode 100644
index 0000000..1d889c5
--- /dev/null
+++ b/ModernKeePass/.sonarqube/out/0/output-cs/metrics.pb
@@ -0,0 +1,180 @@
+Ŋ
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\ClipboardAction.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=3;2=0;4=0;6=0;8=0;10=0;12=0r
+
É
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\NavigateToUrlAction.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=3;2=0;4=0;6=0;8=0;10=0;12=0r
+
!x
ž
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\SetupFocusAction.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=1;4=0;6=0;8=0;10=0;12=0r
+
×
+8C:\Sources\Other\ModernKeePass\ModernKeePass\App.xaml.cs7 8@HR 0=0;5=0;10=0;20=1;30=0;60=0;90=0Z1=5;2=1;4=2;6=1;8=0;10=0;12=0jH*>?@ABFTZ[^`fluvwz|}
Ĩϧ¨Š¯°ą˛ŗ´ĩČÉĘËrĩ
+
!"#()+,-./023456789:;?ABCDEFGHINOPQRSUVWXYhiÜŨŪßāáx?
!"#$%&'()*-./12345679:;=>?ABCDEFGHINOPQXhiŨ¤
+RC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\DatabaseOpenedException.cs(0R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r ¤
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ILicenseService.cs(08@R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r
+Ĩ
+RC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IProxyInvocationHandler.cs(0R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r Ļ
+IC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentService.cs(08@R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r
+
+FC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentItem.cs(08@R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r
+
+
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IResourceService.cs(0R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r¯
+MC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SingletonServiceBase.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0r
+
+
+Ë
+`C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\SelectableDataTemplateSelector.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=4;2=1;4=0;6=0;8=0;10=0;12=0r
+
xŋ
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsSaveVm.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=4;2=0;4=0;6=0;8=0;10=0;12=0r
+
+ŧ
+TC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\DonatePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr
+
+
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\DatabaseService.csQ (082@2H2R 0=0;5=0;10=0;20=0;30=1;60=0;90=0Z1=25;2=5;4=0;6=2;8=0;10=0;12=0j$cdefghky
ĄŠĩČÉĘĪrē
+
!"#$%')*+,-/0123456789:<=>?@BCDEFHIJKLNOPQRTUVWYZ[]^_`ijlmnopqstuvwz{|}~ĸŖ¤ĨϧĒĢŦޝ°ą˛ŗšēģŧŊžŋĀÁÂÃÄÅÆËĖÍĐŅŌĶÔÕÖ×ŲÚÛÜŪßāáâãåæįčéëėíîīđņōķôõöøųúûüũū˙
x"#'+,1468>?DEJKPQTUY_npstuwz{|¤§ĒŦąŧŋÃÄÍĐŌĶÔÖÛāáâįčéėîđņōôöøųûũū˙
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISettingsService.cs(0R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Common\MessageDialogHelper.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=4;2=2;4=0;6=0;8=0;10=0;12=0j9@ABEFHIKNQTVWXYx "$%+-.028:=BENQTVĸ
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NavigationHelper.csD (8>@>H>R 0=0;5=0;10=0;20=0;30=0;60=1;90=0Z1=12;2=8;4=1;6=1;8=0;10=0;12=1jĄ !"#&(*,-./02579:ABCDEFKLMSW`stuvxyzĄĸŖ¤Ĩϧ¨Ž¯°ą˛ŗ´ēģŧŊÂÃÄÅÚÛÜŨŪßāæįø˙¨ŠĒĢŦޝ°ą˛ŗļˇ¸šēģŧÄÅÎÖרāáâãäåæõö÷ųúûū˙
ĄĸĨϧĒĢŦrŲ
+
;<=>?GHINOTUVXYZ[\^abfghiklpq{|}~
ŠĒĢŦĩžŋĀÁÆĮČÉáâãäčéęëėíîīđņōķõö÷ųúûüũūĻ´ŊžŋĀÂÃÆĮČÉĘËĖĪĐŅŌĶÔÕŲÚÛÜŨŪįčéęëėíîīđķøüŖ¤¨Ž¯°ą˛ŗ´x*?INTUXZ[afhi
̎ĀČäčéęíîīđņõöųúüũŋĀÂÆĮČĘËĪŅŲÛéëíīąČ
+PC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NotifyPropertyChangedBase.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=2;4=0;6=0;8=0;10=0;12=0r
x
ų
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ObservableDictionary.cs( (08!@&H!R 0=0;5=0;10=0;20=0;30=1;60=0;90=0Z1=18;2=5;4=1;6=0;8=0;10=0;12=0j
+r
!"#$&'()*,-./12345679:;<=>?@ACDEFGHIJKLMOPQRSTUVWXYZ\]^_`abcdfghiklmnpqrsuvwxz{|}
x . "().35;=>@FGIJLSWX^_`bhmrw|ô
+CC:\Sources\Other\ModernKeePass\ModernKeePass\Common\RelayCommand.cs (8@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=2;2=3;4=0;6=0;8=0;10=0;12=0j%
+
$%&'(1234567=>?@ABHIJKLr* !")*+,-./89:;CDEFMNOPQRSTUVx+,-.:EPRđ
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Common\SuspensionManager.cs8 (08@HR 0=0;5=0;10=0;20=1;30=0;60=0;90=0Z1=5;2=3;4=3;6=0;8=0;10=0;12=0j~ !"#)*+,-3456789>HIN\]^_`abcdefmqv¯°´¸šēģŧŊžÁÂËĖÍÎĪĐŅŌĶÔÕÖ×áęrú
+$%&'./01:;<=?@ABCDEFJKLOPQRSTUVWXYZghiklnoprstwxyz{|}~
Ąĸ¤ĨϧŠĒĢŦą˛ĩļŋĀÃÄÅÆĮČÉØŲÚÜŨŪßāâãäåæįčéëėíîīđōķôõö÷øųûüũū˙
xS&0?BDLOPRSXinoswz|}Ą¤ĻŠĢŦą˛ĩÃÄĮÚÜŪßâäæëíīôõ÷ũūų
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Services\LicenseService.cs (08@HR 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=5;2=0;4=0;6=1;8=0;10=0;12=0j*+r?
+
!"#$%&'(),-./012345678:;<=>@ABCEFGHIJx#$&'(),.012346<=BGÖ
+FC:\Sources\Other\ModernKeePass\ModernKeePass\Services\RecentService.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=4;2=1;4=0;6=0;8=0;10=0;12=0r,
+
!#$%&()*+-./012x
+
%*/ŗ
+IC:\Sources\Other\ModernKeePass\ModernKeePass\Services\ResourcesService.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0r
Ä
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SettingsService.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=1;4=0;6=0;8=0;10=0;12=0r
+
x
+ę
+NC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ToastNotificationHelper.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=2;2=1;4=0;6=0;8=0;10=0;12=0r0
+
!#$%&'(*+,-./123456x %&'(,.3Ú
+`C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DiscreteIntToSolidColorBrushConverter.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=1;6=0;8=0;10=0;12=0r
+
x
Æ
+[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\EmptyStringToVisibilityConverter.cs 8@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=1;4=0;6=0;8=0;10=0;12=0r
+
xģ
+QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\NullToBooleanConverter.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=0;4=0;6=0;8=0;10=0;12=0r
+
+
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\SaveException.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=0;4=0;6=0;8=0;10=0;12=0r
+
Ô
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Extensions\DispatcherTaskExtensions.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=0;4=0;6=0;8=0;10=0;12=0jr
+
x
+
Ŋ
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IDatabaseService.cs(08@R 0=0;5=0;10=0;20=1;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0jr
+
!"#Ĩ
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IHasSelectableObject.cs(08@R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0rĄ
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISelectableModel.cs(08@R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0rÕ
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\BasePages\LayoutAwarePageBase.cs" (08#@#H#R 0=0;5=0;10=0;20=0;30=1;60=0;90=0Z1=13;2=4;4=1;6=1;8=0;10=0;12=0j\
"#*+,-.456789:;<=>ABFGOWXYZ[\]^ijlmnrstuv|}~Ĩϧ¨ŠĒĢąģŧžŋĀÁÂr
+ $%&()/012?@DEHIJKLMNPQRSTU_`abcdepwxyz ĄĸŖŦޝ˛´ĩÄÅÆĮÉĘËĖĪĐx1 $%/01DHJPRacy Ąĸޝ˛´ÆËĘ
+bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsDatabasePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr
+
+
Í
+eC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsNewDatabasePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr
+
+
Æ
+^C:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSavePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr
+
+
Ņ
+bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSecurityPage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=0;4=0;6=0;8=0;10=0;12=0j
+r
É
+aC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsWelcomePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr
+
+
Ė
+_C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\FirstItemDataTemplateSelector.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=4;2=1;4=0;6=0;8=0;10=0;12=0r
x
ŧ
+LC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\ListViewWithDisable.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=1;4=0;6=0;8=0;10=0;12=0r
+
xÕ
+]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\BreadCrumbUserControl.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=3;2=0;4=0;6=0;8=0;10=0;12=0jr
+
×
+_C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\CompositeKeyUserControl.xaml.cs
(08@HR 0=0;5=0;10=0;20=1;30=0;60=0;90=0Z1=8;2=4;4=0;6=1;8=0;10=0;12=0j`ort
+ !"#$%&'()*,-./01234569;<=>@ABCEFGIJKLMNOPQRSTUVWXY[\]^_abcefghijklmpqrsuvwxyz{|~x %"#&*./26=GIKLRSUW]_ajkmpqry|~ø
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\TextBoxWithButton.cs (
+0
+8@HR 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=8;2=1;4=0;6=0;8=0;10=0;12=0r@
+
!#$%&'()*+,-/0123456789;<=>?@ABCDEx
!%&)-1259=>?AÔ
+WC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\BooleanToVisibilityConverter.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=0;2=1;4=1;6=0;8=0;10=0;12=0jr
+
xĘ
+PC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ColorToBrushConverter.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=1;6=0;8=0;10=0;12=0r
+
x
Ø
+[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DoubleToSolidColorBrushConverter.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=0;4=0;6=0;8=0;10=0;12=0r
+
xÛ
+^C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\InverseBooleanToVisibilityConverter.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=0;2=1;4=1;6=0;8=0;10=0;12=0jr
+
xÉ
+QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\PluralizationConverter.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=1;8=0;10=0;12=0jr
+
x
Õ
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ProgressBarLegalValuesConverter.cs
(08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=1;8=0;10=0;12=0r
+x ŧ
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\TextToWidthConverter.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=1;4=0;6=0;8=0;10=0;12=0r
+
+Ž
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Events\PasswordEventArgs.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=3;2=0;4=0;6=0;8=0;10=0;12=0r
+
+EC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IIsEnabled.cs(08@R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0rē
+DC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IPwEntity.cs(08 @ R 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0j "#$r
+
!%&'Č
+CC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPage.xaml.cs
+ (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=3;2=1;4=0;6=0;8=0;10=0;12=0j
+r
!"#$%x !"ģ
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\AboutPage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr
+
+
Û
+YC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\NewDatabasePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=1;4=0;6=0;8=0;10=0;12=0j
r
+ !"#$%x !"Ã
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPage.xaml.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=2;2=1;4=0;6=0;8=0;10=0;12=0j
+r
xŊ
+UC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\WelcomePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr
+
+
ĩ
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\AboutVm.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=4;2=0;4=0;6=0;8=0;10=0;12=0r
Â
+IC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\CompositeKeyVm.cs: (08*@*H*R 0=0;5=0;10=0;20=0;30=1;60=0;90=0Z1=24;2=2;4=3;6=0;8=0;10=0;12=0j rÎ
+
!"$%&'()*+,./01234568:;<=>@ABCDFGHIJKLMNOPRSTUVWXYZ[]^_`aceghijklmnoprtuvwxy{|}~
ĄĸŖĨϧ¨ŠĢŦޝ°ą˛ŗ´xK &)*034<=BCHKLMNTWXY_`ekrvwxĄĸ§¨Ž¯°ąÄ
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\ListMenuItemVm.cs
(08
@
H
R 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=13;2=0;4=0;6=0;8=0;10=0;12=0r
+Ģ
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\MainMenuItemVm.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=4;2=0;4=0;6=0;8=0;10=0;12=0r
+Û
+MC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\RecentItemVm.cs (08
@
H
R 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=11;2=1;4=0;6=0;8=0;10=0;12=0r+
+
!"$%&')*+,./0123
+!&+0ĸ
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\EntryDetailPage.xaml.cs
+(08@HR 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=5;2=3;4=2;6=0;8=0;10=0;12=0j
"#$%&'()*+,1245678rH -:;<=>?ABCDHIJKLMNOPQRSTUVWYZ[\]^`abcefghijklmnoprstux<=>CKLMNOPQSTU\]bilnorŦ
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\GroupDetailPage.xaml.cs/ (08@HR 0=0;5=0;10=0;20=0;30=1;60=0;90=0Z1=9;2=6;4=2;6=0;8=0;10=0;12=0j
%&'()*+,-./45789:;rĢ
+ !"#0=>?ABCDEGHIJPQRSTUVWXYZ[\]_`abcdefghijkmnopqrstuvwxyz{|~ ĄĸŖ¤Ĩ§¨ŠĒĢŽ¯°ŗ´x= !"?ABCDITWYZ\beghjpqrstuvxyz ĄŖŠĒ¯č
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\OpenDatabasePage.xaml.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=3;2=1;4=0;6=0;8=0;10=0;12=0j
*r$
+ !"#$%&'(+,-./0x %&(+,-Å
+]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\RecentDatabasesPage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr
+
+
ī
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\SaveDatabasePage.xaml.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=4;2=1;4=0;6=0;8=0;10=0;12=0j
r* !"#%&'()*+,./02345x!"),./02Ļ
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Properties\AssemblyInfo.csR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0jr
+
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\EntryVm.csX I(/0.8l@lHlR 0=0;5=0;10=0;20=0;30=0;60=0;90=1Z1=53;2=17;4=1;6=1;8=0;10=1;12=0j$%&ræ
+
!"#')*+,-./0134567:;<=>@ABCDEFGHIKLMNOQRSTUWXYZ[\]^`abcdfghijlmnopqrstvwxyz{|}~
ĄŖ¤Ĩϧ¨ŠĢŦް˛´ĩšēŧŊžŋĀÁÂÃÅÆĮČÉĘËĖÎĐŅĶÔÕÖ×ŲÚÛÜŪßāáãäåæįčęëėíīđņōķôõö÷øųúüũū˙
x
!"#+./56<=BEFGMNST[\bchinqrx{|
˛ļˇ¸šĀÅÆĮČÉĘËĖÎŅĶÔÕÖÛāåæįėņōķõöøųū˙×
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\GroupVm.csR ((08E@EHER 0=0;5=0;10=0;20=0;30=0;60=1;90=0Z1=25;2=11;4=3;6=1;8=0;10=0;12=0j123r´
!#$%')*+-/456789:;=>?@BCDEFHIJKLMNOPRSTUVXYZ[\^_`abcdefghjklnopqrsuwxy{|}~
ĄĸŖ¤ĨϧŠĒĢŦŽ°ą˛ŗĩšēģŧŊžŋĀÁÂÄÅÆĮČÉËĖÍÎĐŅŌĶÔÕÖרŲÚÛÜŪßāáâãäåæįčéęėíîīđņx #)*-/69>?DELMOTUZ[dfgjx}~¤ĨĻĢŦ˛ˇ¸šēŧŊŋĀÁÆĮČÍŌÕÖÚâãäčîČ
+NC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsNewVm.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=7;2=0;4=0;6=0;8=0;10=0;12=0r !
+EC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SettingsVm.cs
(08 @ H R 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=5;2=0;4=1;6=0;8=0;10=0;12=0rM
+
"$%&'()+-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQSTUVx"$&+345;<=BCDFJKLNQSĘ
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\MainVm.cs (08@HR 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=6;2=0;4=1;6=0;8=1;10=0;12=0jvyr
+
!"$&'()*+-/01345789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuwz{|}~
x (!$&(05;?@DHLPVZ\]^beilpswz{}
+@C:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\NewVm.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=0;4=0;6=0;8=0;10=0;12=0rĘ
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\OpenVm.cs
+ (08
+@
+H
+R 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=5;2=2;4=0;6=0;8=0;10=0;12=0r#
+ !"#$&'()*+x
+ !"#(Ü
+CC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\RecentVm.cs (08@HR 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=5;2=1;4=1;6=0;8=0;10=0;12=0r/
+!"#$&')*+,-./1234567x!"&+,-.34ģ
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SaveVm.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=3;2=1;4=0;6=0;8=0;10=0;12=0r
+
xŠ
+SC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsDatabaseVm.cs (
08@HR 0=0;5=0;10=0;20=1;30=0;60=0;90=0Z1=13;2=5;4=1;6=0;8=0;10=0;12=0jr]
+
!"#$%')*+,-./012456789:;<=>?ACDEFGHJKLMNPQRSTUVWXY[]^_`abdfghijklx #-/8:<>AEFHLMRUVX[]_dhiÂ
+`C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\HamburgerMenuUserControl.xaml.cs (08@HR 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=15;2=2;4=0;6=0;8=0;10=0;12=0jrg
+
!"#$%&')*+,-./012356789:;<=>?ABCDEFGHIJKMNOPQSTUVWXZ[\]^_`abcdfghijkmnopqrst #'+,/378;?CDGKOPTX\]`djq
\ No newline at end of file
diff --git a/ModernKeePass/.sonarqube/out/0/output-cs/symrefs.pb b/ModernKeePass/.sonarqube/out/0/output-cs/symrefs.pb
new file mode 100644
index 0000000..1914fd4
--- /dev/null
+++ b/ModernKeePass/.sonarqube/out/0/output-cs/symrefs.pb
@@ -0,0 +1,2912 @@
+ī
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\ClipboardAction.cs
+ G V
+ $
+2 >* 6 '
+ ) .
+
+
+
+% +
+
+4 =
+ ! ,˙
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\NavigateToUrlAction.cs
+ $F Y
+
+
+ " %
+2 =* 5
&
+
( -
+
+
+
+% +
+
+4 =
+ > A
+ 4 6Đ
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\SetupFocusAction.cs
+ !P `
+ # &
+2 F
+ ? /
+ 1 6
+
+
+
+% +
+
+4 =Ė
+8C:\Sources\Other\ModernKeePass\ModernKeePass\App.xaml.cs
+
+
+
+
+
+ļļ ' &
+
+ %!! "
+(( )""" 6
+
+((1 7(
+((U p++ 744 +99 +2
+++ -- .. // 00 2
+,, 22 554 A77 "::8 E
+
+CC& 0
+CCJ KEE !
+NN (EE KK
+
+II +
+II@ DKK $(
+NN= >dd pp rrI JF
+XX \\ __ bb mm) 2ss xx
+
+ĒĒ
bb. @
+rr +xx9 P
+
+- 3
+
+< =
+
+
+ 0
+
+
+
+
+9 A
+
+
+4 6
+
+ĒĒ' -
+
+ĒĒI J
+ŦŦ9 :
+
+ļļ/ 5
+
+ļļK L
+¸¸
+
+¸¸
+ÅÅ $
+
+šš
+ŧŧN V
+ŊŊ
+
+ŋŋ &
+ÂÂ7 @
+
+ĖĖ /0
+
+ĖĖG K
+ÎÎ! %
+ĐĐ4 8
+ŅŅ1 5$
+
+ĪĪ
+ŅŅ
+ŌŌ% .
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\IntToSymbolConverter.cs
+
+ %
+
+
+
+
+
+
+% * %
+
+
+
+1 ;
+
+
+
+D M
+
+
+
+V ^
+
+
+UU !
+UU) .WW" '
+
+UU5 ?
+
+UUH Q
+
+UUZ b
+WW XX `
+RC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\DatabaseOpenedException.cs
+
+ (|
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ILicenseService.cs
+
+ $
+
+ 4 <
+
+
+
+
+
+
+
+" '
+RC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IProxyInvocationHandler.cs
+
+ ,
+
+
+
+ "
+
+/ 5
+
+@ JÃ
+IC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentService.cs
+
+ #
+
+
+
+
+
+ '
+
+
+
+/ 4
+
+* 5
+
+; N
+
+
+
+ "
+
++ 3
+
+
x
+FC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentItem.cs
+
+
+
+
+
+
+
+ q
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IResourceService.cs
+
+ %
+
+
+
+' *ą
+MC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SingletonServiceBase.cs
+
+ .2
+/ 08 9% &
+
+
+( 4
+
+$ 0
+
+
+
+ č
+`C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\SelectableDataTemplateSelector.cs
+
+ /
+ $M U
+
+
+ %X a
+
+( :
+B F# '
+
+Y b
+ #/ ?×
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsSaveVm.cs
+
+ (
+* 3 "
+
+
+
+
+
+
+
/ 7
+
+ !
+ 6 ;n
+TC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\DonatePage.xaml.cs
+
+ *
+
+
+
+ Ē
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\DatabaseService.cs
+ 7 Fē
+$ /## ++ $,, DD $EE JJ $KK PP $QQ TT )UU# .ww
+
+( 3
+Y d
+§§
+ŦŦ
+ŦŦ% 0
+ŦŦC N
+ŋŋ
+ÍÍ
+ŌŌ
+ŌŌ+ 6
+ÛÛ
+įį
+čč
+éé
+ėėB M
+îîE P
+đđ@ K
+ōōE P
+ôôB M
+öö
+ųųB M
+ûûE P
+ũũ@ K
+˙˙E P
+ L
+* 3__ zz !{{% .
+
+ĒĒ
+ĐĐ "
+ -
+ %
+ĶĶ *>
+ )11 &88 UU9 FVV -
+( 5(
+ # $"" ##- 84
+ *>> &?? ss
+ $"
+
+
+āā ".
+ !
+āā
+áá
+ââ
+ "" #
+''
+T Xf
+// ''' *tt= I
+ģģ &
+ŧŧ
+ŋŋ= I
+ÃÃ
+ÔÔ "
+ÖÖ )
+)) %
+E V
+,, ,,2 7
+TT 44
+¤¤
+WW 44 (
+22 88 %
+
+<< (
+?? ??" '
+
+BB
+EE EE/ 4
+
+HH& :
+KK KK, 1
+NN * )
+QQ QQ. 3
+
+UU
+
+VV
+
+YY
+
+]]
+]]0 8__
+ii
+ >
+ii, /nn pp; >ss #ww2 5
+4 7
+ii6 ?uu
+tt ww$ 0
+& 2
+
+åå %zz> N
+{{ "|| &
+
+ "
+ #$
+
+šš
+
+ĶĶ 0
+
+0 2
+4 6
+, .
+8 :
+
+
+
+ĸĸ
+
+¯¯
+ąą( )
+
+šš% )
+ŧŧ
+
+ģģ
+ÃÃ &
+
+ËË
+
+ËË% 0
+ÖÖ
+
+ŲŲ "
+
+ŲŲ* ,
+ÛÛ? A
+
+ŪŪ $
+
+ŪŪ, 1
+āā/ 4¨
+
+ëë
+ėė
+îî
+đđ
+ōō
+ôô
+öö+ -
+øø
+ųų
+ûû
+ũũ
+˙˙
+
++ -á
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISettingsService.cs
+
+ %(
+ ) *B C
+
+
+
+
+ '
+
++ 7
+
+
+ , -
+
+" *
+
+. 3į
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Common\MessageDialogHelper.cs
+
+
+
+ +
+
! 1 ++
+
9 >2 7
+
G R9 D
+
[ k5 E
+
t F V
+
+
ĢG T
+
+
Å ŌX e
+ (
+HH% 6 1:: 1BB *
+
+ *
+9 B+ 4
+U ] + 3%%" *
+
+i p
+ "" $$! +
+$$ %% %%0 4
+
+)) .
+
+))G P2
+))c k++< D-- .. 22
+
+++
+
+00
+
+66! 0(
+66; D88 ::2 ;::E N
+:: ==
+
+@@! 7
+@@? DBB+ 0
+@@M TBB2 9
+BB EE
+HH> CKK; @
+HHL SKK2 9
+HH\ mNN5 F
+
+HH NNH U2
+KK NN QQ TT VV Ą
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NavigationHelper.cs
+
+<< !F
+>> ??0 4II NN TT UU aa ˛
+??
+ĢĢ
+ĢĢ. 3
+ˇˇ
+ˇˇ. 3
+ĀĀ
+ĀĀ+ 0
+ĀĀA F
+ČČ
+ČČ+ 0
+ČČD I
+ŋŋI N
+ĀĀ+ 0
+ĮĮ) .
+ééI N
+
+GG
+GG% )II
+
+NN! '
+
+NN) *
+
+áá ;YY >gg :
+
+ .[[ 6ii 2
+
+aa# )
+
+aa+ ,8
+pp # "
+ "
+
%
+ .
+qq &
+ %
+ %
+ ("
+{{ )
+úú &
+& 3
+
+žž "
+# )
+
+ŠŠ %
+# ,
+
+
+! &$
+
+ ,
+ )
+) 9
+
+ÆÆ %
+# ,
+
+ĩĩ (
+# /
+
+ááK QH
+
+ââ$ %
+ää
+čč
+éé
+ųų
+ l
+
+ää
+ęę
+ęę2 <
+ëë
+ëë/ 9
+õõ $
+öö
+üü )
+ũũ 0
+
+íí
+īī *
+đđ# -
+ņņ! +T
+
+îî
+īīJ S
+īīX a
+đđP Y
+đđ^ g
+ņņL U
+ņņZ c$
+
+īī
+ōō$ +
+ķķ &$
+
+đđ
+ōō0 :
+ķķ+ 5$
+
+ņņ
+ōō? G
+ķķ: B$
+
+ōō
+õõ/ :
+üü4 ?$
+
+ķķ
+öö6 =
+ũũ7 >
+
+: @$
+
+
+
+ H
+
+
+
+2 <
+
+ )
+" ,$
+
+
+
+ $
+
+
+ ,
+ "=
+
+ĻĻ
+ĀĀ
+ÆÆ' /ÛÛy
+īī
+
+øø .
+ *<
+
++ 4
+ĪĪ "
+ŅŅ "
+ŲŲ "
+ÛÛ "
+
+üü .
+´´ *$
+
+´´+ 4
+ëë
+íí
+
+ŊŊ !0
+
+ŊŊ6 7
+ÂÂ
+ŅŅ@ A
+ÛÛ@ A$
+
+ŋŋ
+ČČ !
+ÛÛi s$
+
+ÆÆ
+ČČ) 4
+ËË $
+
+ĮĮ !
+ĘĘ !
+ËË, 9$
+
+ !
+ŅŅ- ?
+ÛÛ- ?
+
+įį #
+
+įį8 9
+
+éé
+īī $
+
+ęę
+íí< E
+īī# ,
+
+ŽŽ !
+íí) ;
+
+øø6 <
+
+ #
+øø> P
+
+øøQ R
+
+üü6 <
+
+ŖŖ #
+üü> P
+
+üüQ R
+
+ )
+ $
+
+* 3
+
+
+) <
+' :
+
+Y b
+ &
+
+¨¨* 3
+ąą
+
+ŽŽ= F
+ąą &Ŧ
+PC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NotifyPropertyChangedBase.cs
+
+ *
+ 1 @
+ (
+0 <
G S
+
+ "(
+# $* +6 7! "
+, 43 ;
+8 == B
+Y e *Ē
+
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ObservableDictionary.cs
+
+ %
+
+ :
+ 7""' K
+I O( .
+X [
+$ 4 %
+ ŧ
++ 6(( ;; FF GG@ KSS 'WW ^^! ,__ hh )mm #rr #ww )|| #
+ )
+ #
+ #
+& 1
+< F )<
+ %)) !== %II %XX %bb %
+7 =""L R
+F I""T W
+ ""
+&& ..
+&& "((! $))A D
+&&+ 0((& +
+,, 55
+,,5 9.. .. #
+
+11
+11G M33" (
+33 55
+
+99
+99" %;;( +==D G
+
+CC 2
+CC8 <FF- 1GG "GGS WIID H
+EE FF; GGG* 6
+
+OO" %
+UU WW( -
+
+\\
+^^ `` )
+`` bbD G
+
+ff# '
+
+kk
+kk' *mm0 3
+
+pp
+pp' *rr0 3
+pp7 <rr9 >
+
+uu# )
+
+zz
+zz: >||- 1
+
+
+
+
+
+9 F
+
+F S
+
+ $
+
+: ?
+ !
+ $
+
+E O
+
+
+
+
+" +
+
+
+& *ņ
+CC:\Sources\Other\ModernKeePass\ModernKeePass\Common\RelayCommand.cs
+
+
+ (-- EE (
+$ /.. :: ::0 ;
+" 3OO +
+
+
+# *
+
+))
+))# *++ --
+))7 A.. $
+
+88
+
+88& /
+
+CC
+
+CC# ,
+
+MM *
+OO PP RR å
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Common\SuspensionManager.cs/
+ +
+` q
+e vq V
+2 ?&& &LL4 Aii ss !
+ââ &
+ää %
+ææ= J)
+" -00 $KKs ~ rrw
+ 1OO] qnnZ n
+$$1 =
+ÃÃ
+
+..! +
+
+::! *
+?? /BB *8
+
+2 C??3 Dww3 D
+˛˛
+ÄÄ
+AA BB< ADD1 6
+
+ûû 4DD 0(
+JJ (LL' 2RR SS %
+KK' 1LL
+OO PP1 5
+PP (SS2 <
+VV XX5 6"
+
+ )XX 4
+ 4
+
+gg! -
+gg5 C zz}
+nn oo5 9
+oo$ ,ssV ^
+rr+ 5ss@ J
+ww /zz *2
+yy zz< AzzN S|| }}4 9"
+
+* Ezz] x
+ĢĢ ::
+
+* C||) B
+¤¤ 8
+ÚÚH a
+íí 8"
+
+ōō 7}} 3
+ĩĩ '
+
+
+5 6<
+
+* F
+ ;
+ąą 7
+ÃÃ7 S
+ŪŪ= Y
+
+ (T
+
+/ 4
+
+¤¤
+ĢĢ
+ąą
+˛˛; @
+ĩĩ( -0
+
+= L
+ŦŦ
+ŦŦ9 H
+ąą9 H0
+
+U c
+ŠŠ& 4
+ĢĢ< J
+ŦŦ" 0
+
+ŋŋ *$
+
+ŋŋ1 6
+ÃÃ( -
+ĮĮW \
+
+ÄÄ) ;
+ĮĮ *$
+
+ÆÆ
+ĮĮ< E
+ĮĮJ S$
+
+ØØ1 E
+ôô 1
+ũũ 10
+
+ØØL Q
+ÚÚ9 >
+ŪŪ. 3
+íí H
+
+ÚÚ
+ÜÜ
+ææ
+ëë
+íí: D
+īī <
+
+ŪŪ #
+ßß #
+ââ3 B
+ää& 5
+ææK Z$
+
+ōō> C
+ôô2 7
+÷÷ $
+
+ôô
+õõ
+÷÷1 ;$
+
+ûû; @
+ũũ2 7
+ūū' ,
+
+ũũ
+ūū
+
+ +
+
+ )
+
+4 5
+/ 0
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Services\LicenseService.cs
+ 7 E2
+ "22! /44! /:: )== "
+
+
+
+
+
+
+
+
+
+
+ 220 <
+ 440 @
+; C
+' >BB #GG *
+
+
+
+
+!! '(
+!!/ 4##O T((] b00] bF
+## $$ #''( 7((> M,,, ;.., ;00> M
+@@ ('' '.. +
+::+ A((' =00' =
+EE ',, +
+::G T<<X e
+::] h<<K V
+<< ==$ *
+@@. ;BB( 5
+EE- :GG4 AŽ
+FC:\Sources\Other\ModernKeePass\ModernKeePass\Services\RecentService.cs
+ 6 CP
+
9 =! %" & #- 1%% ** //
+
+
+
+1 <
+B U +
+ 2
+ 1 60 5= B9 >
+ M Q
+
+##
+##% )%%
+##2 :%% #
+
+((
+
+--( 4
+--< A//+ 0ģ
+IC:\Sources\Other\ModernKeePass\ModernKeePass\Services\ResourcesService.cs
+
+ !
+ -
9 I
+ ( 7
*
+
+ &
+. 1
L O
+
ö
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SettingsService.cs
+ 8 G2
+
+
+& -- 4 <
+ 0 1I J G H
+
+
+& .5 =
+2 > #
+
+
+ 3 4(
+) 1$ , %
+5 :$ )' ,Ö
+NC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ToastNotificationHelper.cs
+
+
+
+ /
+
+ )(
+4 : #a g9 ?
+C IK Q
+R VH L
+ T ^; E<
+ /) 8) 8 +. =
+
+ "
+ < B
+ @ E
+## +33
+##3 8''H M
+##A E((H L2
+%% && /'') 8(() 8**. =
+&& '' ((
+** ..@ E
+
+11 )
+114 =33 &33/ 8
+`C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DiscreteIntToSolidColorBrushConverter.cs
+
+ 6
+
+
+
+
+
+
+% *0 5
+
+
+
+1 ;
+
+
+
+D M
+
+
+
+V ^
+
+
+ !
+
+) .
+
+5 ?
+
+H Q
+
+Z b
+[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\EmptyStringToVisibilityConverter.cs
+
+
+ *
+
+
+ % * ) .
+
+ 1 ;
+
+ D M
+
+ V ^
+ ( ,
+
+ !
+
+) .
+
+5 ?
+
+H Q
+
+Z bá
+QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\NullToBooleanConverter.cs
+
+ '
+
+
+% *
+
+
+
+1 ;
+
+D M
+
+V ^
+
+
!
+
+
) .
+
+
5 ?
+
+
H Q
+
+
Z b
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\SaveException.cs
+
+
+ +
+
+
+ ' 0 &į
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Extensions\DispatcherTaskExtensions.cs
+
+ 0(
+ 1 2 ! "
+
+ @ A
+
+ $ 0
+ H R
+
+
+ 9 =
+
+
+7 ?
& .(
+ $ ( ( -
+! #6 8
+
+! -
+B L )
+ ? C
+4 <X `
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IDatabaseService.cs
+
+
+
+ %
+
+
+
+
+
+
+
+
+
+
+
+ !
+
+
+
+ 3
+
+ #
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+) 2
+
+
+
+
+
+
+
+ "
+
+
+
+% *
+
+
+
+ # %
+
+!!
+
+!! #i
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IHasSelectableObject.cs
+
+ )
+
+ %e
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISelectableModel.cs
+
+ %
+
+
Ą
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\BasePages\LayoutAwarePageBase.cs
+
+ $x
+ 0 00
+ #
+
+ĸĸ
+ÆÆ
+ËË :
+ (
+0 8
+0 8
+
+˛˛B J(
+, :JJ "RR "aa
+, 1cc. 3
+
+ "
+?? 1* D
+__ 1* D
+
+ D J
+
+ T ]
+
+ )$$* <,
+
+ ,%% !11 !
+ !
+
+(( 0
+
+((8 >
+
+((Z [N
+ww 1// +HH /
+ *
+ *
+ŽŽ +
+˛˛" <
+
+??9 ?(
+??T UDD PP RR7 8
+
+__9 ?
+__T Ucc
+pp =yy1 R
+
+1 7
+
+d e
+
+
+ĄĄ/ :
+
+ŦŦ -
+ 2
+
+˛˛
+´´ "
+
+ÄÄ -
+
+ÄÄB C
+ÆÆ+ ,
+
+ÉÉ /
+
+ÉÉD E
+ËË- .|
+bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsDatabasePage.xaml.cs
+
+ 4
+
+
+
+ #
+eC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsNewDatabasePage.xaml.cs
+
+ 7
+
+
+
+ &x
+^C:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSavePage.xaml.cs
+
+ 0
+
+
+
+
+bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSecurityPage.xaml.cs
+
+ 4
+
+
#
+
+ @
+
+H N
+
+b c{
+aC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsWelcomePage.xaml.cs
+
+ 3
+
+
+
+ "ũ
+_C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\FirstItemDataTemplateSelector.cs
+
+ .
+ %T ]
+ %` i
+
+( :
+
+B F
+Y b
J SB K
+
! -
+ !ú
+LC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\ListViewWithDisable.cs
+
+ $
+
+ ?
+ Q X1 8
#
+ a e: > !(
+
(
+ % /" ,) 3Û
+]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\BreadCrumbUserControl.xaml.cs
+ 5 ,
+
+ $
+
+& 1
+2 E: M .
+ 0 5
+
+> ?
+
+A EÍ
+_C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\CompositeKeyUserControl.xaml.cs(
+ 7 .)) .55 .R
+ #KK LLF KSSD IUUJ O]]- 2rr
+
+ 99/ 8SSW `
+2 C( 9 ,
+ . 3
+
+- .
+
+0 4
+ 99< EII
+%%2 C""( 9## ,
+## ##. 3
+
+**- .
+
+**0 4(
+,, !QQ *RR WW
+112 E..* =// .
+// //0 5
+
+66, -
+
+66/ 3
+
+99 +
+
+;; &
+AA 9@@ 1
+@@2 DGG
+
+AAA G
+
+AAS T
+CC 8BB 0
+BB1 BLL !UU %
+
+CC@ F
+
+CCZ [
+EE -__ "
+
+EE5 ;
+
+EEM N
+PP RR &
+QQ WW &
+
+[[ (
+[[0 6__# )(
+[[K L]] __+ ,aa
+
+ee .
+
+ee6 <
+
+eeN O
+gg mm pp #
+pp qq rr
+
+uu 4
+
+uu< B
+
+uuT U
+ww || ~~ '
+~~
+ $Ö
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\TextBoxWithButton.cs2
+ " ( (,, (88 (
+
+
+
+ "
+2 F* >
/
+
1 6
+
+2 3
+
+5 9
+3 >AA5 @
+
+ #
+2 G* ? 0
+ 2 7
+
+!!4 5
+
+!!7 ;
+
+## #
+((2 I%%( ?&& 2
+&& &&4 9
+
+--, -
+
+--/ 3
+
+// &
+442 F11. B22 /
+22 221 6
+
+99, -
+
+99/ 3
+
+;; /
+>> ?? AA
+AA' -AAI O
+AA/ 0AAQ Rą
+WC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\BooleanToVisibilityConverter.cs
+
+ -
+
+
+ % * 1 6
+
+ 1 ;
+
+ D M
+
+ V ^
+
+
+ !
+) . "@ E
+
+5 ?
+
+H Q
+
+Z b
+ ŧ
+PC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ColorToBrushConverter.cs
+
+ &
+
+
+
+
+
+
+% * 2 7
+
+
+
+1 ;
+
+
+D M
( 1
_ h
+
+
+
+V ^<
+
+
+ !
+
+) .
+
+5 ?
+
+H Q
+
+Z b×
+[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DoubleToSolidColorBrushConverter.cs
+
+ 1
+
+
+
+
+
+
+% *, 1
+
+
+
+1 ;
+
+
+D M, 5
+
+
+
+V ^
+ 2 >
+ A I
+ 2 7D I
+ ? B
+
+ !
+
+) .
+
+5 ?
+
+H Q
+
+Z b¸
+^C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\InverseBooleanToVisibilityConverter.cs
+
+ 4
+
+
+ % * 0 5
+
+ 1 ;
+
+ D M
+
+ V ^
+
+
+ !
+) . "? D
+
+5 ?
+
+H Q
+
+Z b
+ õ
+QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\PluralizationConverter.cs
+
+ '
+
+
+% *
- 2
+
+1 ;
+D M
+
+, 5
+
+V ^
+
+
+ )' @2
+ $ $0 D$ 8> R
+
+ "
+
+ !
+
+) .
+
+5 ?
+
+H Q
+
+Z b˛
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ProgressBarLegalValuesConverter.cs
+
+ 0
+
+
+% * 2 7
+
+1 ;
+D M
+
+* 3
+
+V ^
+
+
+ '% <2
+ " ". @( :( :
+ ) 1
+ ) 1(
+
+
+ !
+
+) .
+
+5 ?
+
+H Q
+
+Z b
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\TextToWidthConverter.cs
+
+ %
+
+
+% *
+
+1 ;
+D M
+
+( 1
+
+V ^
+
+
+ " *
+
+
+ !
+
+) .
+
+5 ?
+
+H Q
+
+Z b
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Events\PasswordEventArgs.cs
+
+ "
+
+
+
+
+
+
+
+) 0 _
+EC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IIsEnabled.cs
+
+
+
+
+DC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IPwEntity.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
)
+
+
+
+
+
+
+
+ %
+
+
+
+
+
+!!
+
+%%
+
+%%" 1
+CC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPage.xaml.cs
+
+ (
+ $
+
+
+
+ 2
+: @+ 1
+\ ]3 42
+ 3 ?J V
+
+ -
+B C!! m
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\AboutPage.xaml.cs
+
+ )
+
+
+
+ í
+YC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\NewDatabasePage.xaml.cs
+
+ /
+ ""
+
+
+
+ -
+
+5 ;
+
+M N
+ '
+ !! "" Ī
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPage.xaml.cs
+
+ ,
+ # $
+
+
+
+ 2
+: @+ 1
+\ ]3 4
+ ,U ao
+UC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\WelcomePage.xaml.cs
+
+ +
+
+
+
+ ā
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\AboutVm.cs
+
+ (
+! ) & &
+
+
+
+
+ !* 1
+
+
+
+
+ & ÷
+IC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\CompositeKeyVm.cs
+
+ X
+ CC0 ;MM" -mm
+6 A
+$ /
+L W
+ĨĨ/ :
+ MM. 4"
+
+B G
+0 5
+
+
+
+X _8
+ (xx
+
+1 9
+ ,
+ 88/ :
+
+ŽŽ
+gg ! % ,
+ . 3,
+$$ 88> H
+
+¯¯
+hh && $)) +
+'' ))- 2,
+.. "88_ m
+ "
+°°
+ii $00 (33 /
+11 331 6
+
+88 *
+jj 88 *
+ 8
+RR "88L S
+ĸĸ
+¯¯ %
+¯¯p w
+:: NN
+§§
+ll << ==" )
+== ==+ 0
+@@ MM
+¨¨
+mm 'BB )CC" -
+CC CC< A
+FF ee\ d
+ŽŽE M
+kk HH "KK
+II KK !
+nn $TT !WW
+UU WW XX #
+]] !XX (
+oo #__ %``" .ww
+`` ``0 5
+cc
+% .
+
+ee 1f
+pp* 3vv ww $
+8 A
+9 B
+8 A
+< E
+ (
+ "
+
+rr
+
+tt
+tt/ 7xx
+ttJ Rvv
+
+{{ ,
+{{2 ;
+: C$
+
+ĢĢ /
+$ 6
+$ 6<
+
+
+! -
+ ,
+$ 0
+ )0
+
+ĨĨ !
+
+
+
+
+
+T U
+
+
+ "
+
+
+
+ !$
+
+. 2
+ĄĄ "
+ĸĸ
+
+ĨĨ) -
+§§
+
+ĨĨ; ?
+¨¨ "<
+
+
+ŽŽ )
+¯¯/ ;
+°° ,
+ąą ņ
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\ListMenuItemVm.cs
+
+
+
+
+ $" -
+
+
+
+
+
+
+
+
+
+
+
+ / 4
+
+ 'u
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\MainMenuItemVm.cs
+
+
+
+
+
+ Ķ
+MC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\RecentItemVm.cs
+
+
+
+
+ $" -(
+ ' * &&$ 0
+
00& +
+
+
+
+
+
+ / 4
+
+
+
+
+# (
+1 9
+H L
+
+ $
+$$ $!!
+$$6 >&&
+
+)) $
+.. *++
+..: @00 ū
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\EntryDetailPage.xaml.cs
+
+ /<
+ KK NN SS7 <TT \\3 82
+ 0 << CC
+
+
+-- /* D
+
+--7 =
+
+--R S
+
+:: -(
+::B C<<+ ,== >># $
+
+AA /
+AAD ECC- .
+
+HH '
+
+HH/ 5
+
+HHG Hd
+JJ LL MM NN1 9NN^ fOO1 9PP QQ SS> FTT$ ,
+KK OOa h
+NN SSk o
+
+QQG H
+
+YY (
+
+YY0 6
+
+YYH I
+[[ \\: B\\l t
+
+`` 2
+
+``: @
+``W Xbb/ 0
+
+ee @
+eeH Ngg !
+
+eej k
+gg ii nn $
+hh nn rr% *Ę
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\GroupDetailPage.xaml.cs
+ /\\" 1
+" 12
+ 0!! "" ?? II z
+ pp ss xx; @yy
+3 8
+4 9
+4 9
+
+
+ŠŠ
+
+
+00 /""* D
+
+007 =
+
+00R S
+
+== -<
+==B C??+ ,AA BB3 4CC DD( )
+
+GG /
+GGD EII- .
+
+PP ,
+PP4 :RR !
+
+PPV W
+RR TT YY $
+SS YY \\4 9
+
+__ -
+
+__5 ;
+
+__W X
+aa gg jj4 9
+
+mm '
+
+mm/ 5
+
+mmG Hd
+oo qq rr ss1 9ss^ ftt1 9uu vv xxB Jyy( 0
+pp tta h
+ss xxo s
+
+vvG H
+
+~~ (
+
+~~0 6
+
+~~H I$
+
+
+: B
+
+
+ 3
+
+; A0
+
+d e
+
+
+) *
+
+ ,
+
+4 :
+
+L M
+
+ ,
+
+4 :
+
+L M
+
+ /
+
+7 =$
+
+Z [
+
+
+
+ 5
+
+@ F$
+
+o s
+ E I
+ŖŖ
+
+ ŖŖ
+
+
+ĄĄ# *
+
+ 1 2
+ 6 70
+
+ĄĄ
+ŖŖO U
+ŖŖ\ b
+ŖŖu {
+
+§§ 7
+
+§§B H
+
+§§s w
+ŠŠE I
+
+ŠŠ
+ĒĒ4 9
+
+ŠŠ8 9
+ŠŠ= >
+
+ 2
+
+: @
+
+W X
+¯¯/ 0°
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\OpenDatabasePage.xaml.cs
+
+ 0
+
+ --
+
+
+
+ -
+B C
+
+ -
+
+ 5 ;
+
+ M N
+"" (( ++ #
+++ ,, -- w
+]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\RecentDatabasesPage.xaml.cs
+
+ 3
+
+
+
+ "ō
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\SaveDatabasePage.xaml.cs
+
+ 0(
+ "" 22
+ !! 00
+
+
+
+ -
+B C
+
+ -
+
+5 ;
+
+M N
+
+%% /
+
+%%7 =
+
+%%O P
+'' ,, .. '
+.. // 00 I
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Properties\AssemblyInfo.csã
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\EntryVm.cs
+
+' .p
+ """I T##H S##a l
+: E
+šš
+įį1 <
+ņņ '
+øø
+ųų :
+ $
+ėė
+ņņ
+ōō
+˙˙0 =
+
+% 4
+
+ŖŖ! )8 @8 @7 ? (!! $[[ [[; Cbb, 4cc) 1hh !ii) 1ii? G
+ !
+
+- 5
+¸¸
+ĶĶ
+ÛÛ
+āā
+ūū
+ūū0 8
+
+M U
+
+% 4
+
+ +
+@@ E M\ d
+
+ *
+
+ %" 3cc 'ii '
+
+ 1
+ ,
+ÅÅ (
+ ,
+ÆÆ (
+ )
+ĮĮ %
+ (
+ÉÉ $
+ -
+ĘĘ )
+ (
+ËË $
+ *
+ČČ &
+ +
+ĖĖ '
+ !
+ÎÎ" -"
+
+õõ) /
+˙˙c i
+
+!!
+
+"" %
+
+¤¤* 3"") 2
+ļļ
+åå
+åå/ 8
+ææ
+įį
+įįJ S
+õõ
+˙˙
+˙˙J S
+
+
+##& 0,
+'' nn #
+H R
+
+)) $
+ÁÁ -
+
+¨¨ &++ (..
+,, .." 'z
+
+ĢĢ *// %FF %GG %rr %|| %
+ %
+ %
+ÔÔ !
+ÕÕ !
+ÖÖ !
+
+33 >
+
+ŲŲ $55 &<< &BB &MM &SS &>
+
+ŪŪ "66 == EE NN TT
+66 663 8
+
+::
+== ==6 ;
+CC EE4 9
+
+KK
+NN NN1 6
+
+QQ
+TT TT3 8
+
+WW
+
+`` (
+cc cc? D
+
+ff "
+ii ii\ a
+
+ll
+
+ĻĻ nn' 2qq
+oo qq #
+
+vv
+
+ŠŠ xx #{{
+yy {{ "
+
+ $$
+
+§§ &
+ *
+
!
+
+
+
$ )
+
+
+# (
+
+& -$
+
+
+
+
+
+ )
+, 8
+
+˛˛
+$ +
+
+ĄĄ1 @
+ $
+
+ĨĨ* 3
+ˇˇ
+ )
+
+ĢĢ2 >
+G S
+
+°°
+
+˛˛! &
+˛˛? D
+
+˛˛0 6
+˛˛F L
+
+´´
+
+´´ $
+¸¸
+
+´´. 4
+šš
+
+´´G O
+ļļ
+
+´´b j
+ˇˇ
+
+ŧŧ $
+
+žž
+ÅÅ* 3
+ÆÆ* 3
+ĮĮ' 0
+ČČ( 1
+ÉÉ& /
+ĘĘ+ 4
+ËË& /
+ĖĖ) 2
+ÎÎ
+ŅŅ/ 8$
+
+ĐĐ $
+ŅŅ% -
+ĶĶ8 @
+
+ŲŲ, /
+ÛÛ- 0
+
+ŪŪ* -
+āā" %
+
+ŪŪ6 >
+āāA I
+
+ãã !
+
+ãã) 8
+ææ+ :$
+
+īī
+įį
+ėė
+
+ęę $
+
+īī! ,
+ķķ
+øø %
+
+üü
+
+
+
+ !
+
+ 'ķ
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\GroupVm.cs
+
''$ +''] dbb' .cc ww* 1{{( /
+. 5
+
+
+ĩĩ
+ãã2 9v
+ "++! ,--0 ;//X cdd (ff" -
+ˇˇ '
+ŋŋ
+ĀĀ
+ÁÁ F
+ $
+˛˛
+ˇˇ
+¸¸
+šš
+ĮĮ0 =Z
+- 4$ +==Z a
+
+
+ĨĨ
+ÖÖ
+ÖÖ< C
+rr. 6 !* 2
+ 4 9
+$ . . 8(
+ ## !
+ " ( -\
+''- 3& ,
+
+
+¸¸
+ĀĀ
+ãã
+ãã; A8
+)) ** "
+ĢĢE K
+ŧŧ) /
+ČČ* 0°
+nn! ))) (99 %DD !DD; CEE LL LL; COO }}
+( 0
+' /
+
+1 9
+ !
+
+šš "
+šš1 9
+ÁÁ
+ÁÁ* 2
+ÆÆ
+ÆÆ/ 7
+ĮĮ_ g
+ĮĮq y
+ÕÕ
+ââ
+ããe m
+** 66c e66i k
+++ --# ,
+
+-- @
+44 --< F//I S//d n
+1 ;
+ĮĮ> H
+
+// %Ę
+oo* 3//) 266 "66. 766M V99/ 8~~
+L U
+ĢĢ
+ĢĢ/ 8
+ŦŦ
+
+> G
+ŧŧ
+ĮĮ
+ĮĮJ S
+ČČ
+ÍÍ
+77 99
+
+==< L.
+BB
+7 ;
+ããQ U
+îî
+EE EE" '
+
+HH
+OO OO, 1
+RR
+D N
+pp TT $UU" -
+UU UU/ 4
+
+XX
+ss "ZZ &[[" /
+[[ [[1 6
+
+^^& 0
+bb gg jj 2
+cc dd ff ff !gg %.
+qq '
+ $
+ '
+K Z
+
+uu "
+ww
+V ]
+ &
+ww! (ww] d
+ww2 8wwf l
+wwA Mxx& 2
+
+{{ ,
+{{ &}}
+8 ?
+7 >
+{{0 6
+{{I Q~~ .
+{{Z f
+
+= I
+g s
+
+O P
+` a
+
+ .
+) B
+
+M N
+^ _
+
+6 <<
+
+_ `
+
+* +
+N O
+7 8$
+
+
+> F
+. 6
+
+ "0
+
+* .
+2 6
+> B
+f j$
+
+
+ %
+' .$
+
+
+
+
+
+ "
+
+ĸĸ
+ŖŖ' .0
+
+ŖŖ
+¤¤
+ĨĨ
+ĻĻ
+
+ŠŠ !
+
+ŠŠ) 8
+ŦŦ+ :$
+
+ĩĩ
+
+˛˛
+
+°° $
+
+ĩĩ! ,
+ēē
+ŋŋ %
+
+ÄÄ
+
+ËË
+
+ĐĐ
+
+ŌŌ
+ÕÕ& .
+
+ÖÖL M
+ÖÖQ R
+
+ØØ
+ÚÚ4 5
+
+ŪŪ
+
+ããJ K
+ããO P
+
+ãã^ _
+ããc d
+
+ææ
+čč4 5
+
+ėė '
+NC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsNewVm.cs
+
+ <
+ * 3 " "
+
+
+
+
+. 6
+
+ "
+ 1 6
+
+# .
+
+ '
+ < Aņ
+EC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SettingsVm.cs
+
+ P
+
, & ! ! !"" -$$ !&& !
+F P #" ,
+E NSS
+ . 3
+ ,QQ
+ % *""? D
+
+++
+
+--
+--+ 3FF (NN (Z
+--F N33 $44 $;; $<< $BB $CC $JJ $KK $
+// QQ $SS% .
+QQ4 5QQ9 :ã
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\MainVm.cs
+
+
+F T '" 0P
+ , & ! !!! !$$ -&& !(( !
+
+
+E R
+
+ 2 7
+ ,ww
+ % *$$? D
+
+--
+
+//
+// ,//M [
+//4 D//] m
+
+33 F
+33 *>> .GG .OO .YY .dd" 0" 0F
+332 B==" 2FF" 2NN" 2XX" 2kk" 2rr" 2z
+33U ]55! )555 =@@! )@@5 =@@M U\\ !\\- 5zz zz$ ,}} $
+ (P
+33p x;; $DD $LL $VV $bb $ii $pp $
+
+33 ]] ^^ &
+55 QQ! /RR .*
+77 ww ({{
+
) 6
+ww8 9ww= >Z
+@C:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\NewVm.cs
+
+
+
+ Ģ
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\OpenVm.cs
+
+
+
+
+
+ #2
+* 3
+
+' 0 '
+
+
+
+
+
+ 2
+' / % -
+
+) -
+
+) - % )##
+> D##" (
+&& $##
+&&1 5(( (( !
+&&F L(( §
+CC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\RecentVm.cs
+
+ (
+
+
+( /++ ,, !33 P
+! . & ! ! ! -!! !""
+2 > %" .2
+1 <,, -- .. *44
+ 0 5
+ ,..
+ % */ 4
+
+&&
+
+))
+))' -++
+
+11 õ
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SaveVm.cs
+
+ 2
+
+
+* 3
+
+
+
+
+
' /
+
+
+$ )
+
+
+% )
+SC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsDatabaseVm.cs
+
+ #
+* 3 " "## $::E N>> EEF OFF LL% .MM hh ii F
+ %UU !VV !XX ![[ -]] !__ !
+
+ !
+ . 3
+ #UU. =
+!! ##
+''- 3RR ii
+
+))# *(
+-- --" %--K N//7 :
+
+44 2
+88 88" %88M P::. 1::c f
+>> >>? D
+
+AA# /
+
+CC %
+FF FFv {
+
+HH# 1
+HHL MHHQ R
+
+JJ '
+MMK LMMP Q
+MM MMZ _
+
+PP ,
+RR/ 0RR4 5
+SS UU% *[[8 =
+
+dd !
+
+ff !
+ff3 ;hh Ž
+`C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\HamburgerMenuUserControl.xaml.csP
+
+
+ 8 /&& /22 />> /JJ /WW /cc /
+
+ '
+
+ !
+2 E* = .
+ 0 5
+
+0 1
+
+3 7
+
+ !
+""2 E* = .
+ 0 5
+
+''0 1
+
+''3 7
+
+)) '
+..2 K++* C,, 4
+,, ,,6 ;
+
+33/ 0
+
+332 6
+
+55 "
+::2 F77" 688 /
+88 881 6
+
+??, -
+
+??/ 3
+
+AA )
+FF2 ICC. EDD 2
+DD DD4 9
+
+KK< =
+
+KK? C
+
+MM& 1
+SS2 EOO: MPP .
+PP PP0 5
+
+XX= >
+
+XX@ D
+
+ZZ "
+__2 F\\" 6]] /
+]] ]]1 6
+
+dd, -
+
+dd/ 3
+gg 9ff 1
+ff2 Bjj
+
+ggA G
+
+ggc d
+
+hh 0
+hh8 >jj% +
+hhZ [jj- .
+nn 6mm .
+mm/ <qq
+
+nn> D
+
+nnV W
+
+oo '
+oo/ 5qq" (
+ooG Hqq* +
\ No newline at end of file
diff --git a/ModernKeePass/.sonarqube/out/0/output-cs/token-cpd.pb b/ModernKeePass/.sonarqube/out/0/output-cs/token-cpd.pb
new file mode 100644
index 0000000..b50b350
--- /dev/null
+++ b/ModernKeePass/.sonarqube/out/0/output-cs/token-cpd.pb
@@ -0,0 +1,24951 @@
+¤
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\ClipboardAction.cs
+ namespace
+
ModernKeePass
+
+.
+Actions
+{
+public
+
+class
+ClipboardAction
+:! "
+DependencyObject# 3
+,3 4
+IAction5 <
+{
+public
+string
+Text
+{
+
+
+get
+{
+return
+(
+string
+) !
+GetValue! )
+() *
+TextProperty* 6
+)6 7
+;7 8
+}9 :
+set
+{
+SetValue
+(
+TextProperty '
+,' (
+value) .
+). /
+;/ 0
+}1 2
+}
+public
+static
+readonly
+DependencyProperty 1
+TextProperty2 >
+=? @
+DependencyProperty
+.
+Register '
+(' (
+$str( .
+,. /
+typeof0 6
+(6 7
+string7 =
+)= >
+,> ?
+typeof@ F
+(F G
+ClipboardActionG V
+)V W
+,W X
+newY \
+PropertyMetadata] m
+(m n
+stringn t
+.t u
+Emptyu z
+)z {
+){ |
+;| }
+public
+object
+Execute
+(
+object $
+sender% +
+,+ ,
+object- 3
+ parameter4 =
+)= >
+{
+var
+dataPackage
+=
+new !
+DataPackage" -
+{. /
+RequestedOperation0 B
+=C D
+DataPackageOperationE Y
+.Y Z
+CopyZ ^
+}_ `
+;` a
+dataPackage
+.
+SetText
+(
+Text $
+)$ %
+;% &
+ Clipboard
+.
+
+SetContent
+( !
+dataPackage! ,
+), -
+;- .
+return
+null
+;
+}
+}
+} Ī
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\NavigateToUrlAction.cs
+ namespace
+
ModernKeePass
+
+.
+Actions
+{
+public
+
+class
+NavigateToUrlAction $
+:% &
+DependencyObject' 7
+,7 8
+IAction9 @
+{
+public
+
+
+string
+
+
+Url
+
+
+{
+get
+{
+return
+(
+string
+) !
+GetValue! )
+() *
+UrlProperty* 5
+)5 6
+;6 7
+}8 9
+set
+{
+SetValue
+(
+UrlProperty
&
+,
& '
+value
( -
+)
- .
+;
. /
+}
0 1
+}
+public
+static
+readonly
+DependencyProperty 1
+UrlProperty2 =
+=> ?
+DependencyProperty
+.
+Register '
+(' (
+$str( -
+,- .
+typeof/ 5
+(5 6
+string6 <
+)< =
+,= >
+typeof? E
+(E F
+NavigateToUrlActionF Y
+)Y Z
+,Z [
+new\ _
+PropertyMetadata` p
+(p q
+stringq w
+.w x
+Emptyx }
+)} ~
+)~
+;
+public
+object
+Execute
+(
+object $
+sender% +
+,+ ,
+object- 3
+ parameter4 =
+)= >
+{
+try
+{
+var
+uri
+=
+new
+Uri !
+(! "
+Url" %
+)% &
+;& '
+return
+Windows
+.
+System %
+.% &
+Launcher& .
+.. /
+LaunchUriAsync/ =
+(= >
+uri> A
+)A B
+.B C
+
+GetAwaiterC M
+(M N
+)N O
+.O P
+ GetResultP Y
+(Y Z
+)Z [
+;[ \
+}
+catch
+(
+ Exception
+ex
+)
+{
+MessageDialogHelper #
+.# $
+ShowErrorDialog$ 3
+(3 4
+ex4 6
+)6 7
+;7 8
+return
+false
+;
+}
+}
+}
+}!! ŋ
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\SetupFocusAction.cs
+ namespace
+
ModernKeePass
+
+.
+Actions
+{
+public
+
+class
+SetupFocusAction !
+: " #
+DependencyObject $ 4
+, 4 5
+IAction 6 =
+{
+
+
+public
+Control
+TargetObject #
+{
+get
+{
+return
+(
+Control
!
+)
! "
+GetValue
" *
+(
* +
+TargetObjectProperty
+ ?
+)
? @
+;
@ A
+}
B C
+set
+{
+SetValue
+(
+TargetObjectProperty /
+,/ 0
+value1 6
+)6 7
+;7 8
+}9 :
+}
+public
+static
+readonly
+DependencyProperty 1
+TargetObjectProperty2 F
+=G H
+DependencyProperty
+.
+Register '
+(' (
+$str( 6
+,6 7
+typeof8 >
+(> ?
+Control? F
+)F G
+,G H
+typeofI O
+(O P
+SetupFocusActionP `
+)` a
+,a b
+newc f
+PropertyMetadatag w
+(w x
+nullx |
+)| }
+)} ~
+;~
+public
+object
+Execute
+(
+object $
+sender% +
+,+ ,
+object- 3
+ parameter4 =
+)= >
+{
+return
+Task
+.
+Factory
+.
+StartNew (
+(( )
+(
+)
+=>
+
+Dispatcher
+. !
+RunAsync! )
+() *"
+CoreDispatcherPriority* @
+.@ A
+LowA D
+,D E
+(
+)
+=>
+TargetObject &
+?& '
+.' (
+Focus( -
+(- .
+
+FocusState. 8
+.8 9
+Programmatic9 E
+)E F
+)F G
+)G H
+;H I
+}
+}
+} Ŋ\
+8C:\Sources\Other\ModernKeePass\ModernKeePass\App.xaml.cs
+ namespace
+
ModernKeePass
+
+{
+sealed
+
+partial
+class
+App
+{
+public
+App
+(
+)
+{
+HockeyClient
+.
+Current
+. !
+ Configure! *
+(* +
+$str+ M
+)M N
+;N O
+InitializeComponent
+(
+) !
+;! "
+
+Suspending
++=
+OnSuspending &
+; & '
+Resuming!!
++=!!
+
+OnResuming!! "
+;!!" #
+UnhandledException""
++="" !
+OnUnhandledException""" 6
+;""6 7
+}##
+private((
+void((
+OnUnhandledException(( )
+((() *
+object((* 0
+sender((1 7
+,((7 8'
+UnhandledExceptionEventArgs((9 T'
+unhandledExceptionEventArgs((U p
+)((p q
+{))
+var++
+ exception++
+=++ '
+unhandledExceptionEventArgs++ 7
+.++7 8
+ Exception++8 A
+;++A B
+var,,
+
realException,,
+=,,
+ exception--
+is-- %
+TargetInvocationException-- 6
+&&--7 9
+ exception..
+...
+InnerException.. (
+!=..) +
+null.., 0
+?//
+ exception//
+.//
+InnerException// .
+:00
+ exception00
+;00
+if22
+(22
+
realException22
+is22
+
SaveException22! .
+)22. /
+{33
'
+unhandledExceptionEventArgs44 +
+.44+ ,
+Handled44, 3
+=444 5
+true446 :
+;44: ;
+MessageDialogHelper55 #
+.55# $
+SaveErrorDialog55$ 3
+(553 4
+
realException554 A
+as55B D
+
SaveException55E R
+,55R S
+DatabaseService55T c
+.55c d
+Instance55d l
+)55l m
+;55m n
+}66
+else77
+if77
+(77
+
realException77 "
+is77# %#
+DatabaseOpenedException77& =
+)77= >
+{88
'
+unhandledExceptionEventArgs99 +
+.99+ ,
+Handled99, 3
+=994 5
+true996 :
+;99: ;
+MessageDialogHelper:: #
+.::# $
+SaveUnchangedDialog::$ 7
+(::7 8
+
realException::8 E
+as::F H#
+DatabaseOpenedException::I `
+,::` a
+DatabaseService::b q
+.::q r
+Instance::r z
+)::z {
+;::{ |
+};;
+}<<
+ protectedCC
+overrideCC
+asyncCC
+voidCC! %
+
+OnLaunchedCC& 0
+(CC0 1$
+LaunchActivatedEventArgsCC1 I
+eCCJ K
+)CCK L
+{DD
+OnLaunchOrActivatedEE
+(EE
+eEE !
+)EE! "
+;EE" #
+awaitFF
+HockeyClientFF
+.FF
+CurrentFF &
+.FF& '
+SendCrashesAsyncFF' 7
+(FF7 8
+)FFU V
+;FFV W
+}GG
+ protectedII
+overrideII
+voidII
+OnActivatedII +
+(II+ ,
+IActivatedEventArgsII, ?
+argsII@ D
+)IID E
+{JJ
+OnLaunchOrActivatedKK
+(KK
+argsKK $
+)KK$ %
+;KK% &
+}LL
+privateNN
+voidNN
+OnLaunchOrActivatedNN (
+(NN( )
+IActivatedEventArgsNN) <
+eNN= >
+)NN> ?
+{OO
+ifRR
+(RR
+SystemRR
+.RR
+DiagnosticsRR "
+.RR" #
+DebuggerRR# +
+.RR+ ,
+
+IsAttachedRR, 6
+)RR6 7
+{SS
+}UU
+varXX
+ rootFrameXX
+=XX
+WindowXX "
+.XX" #
+CurrentXX# *
+.XX* +
+ContentXX+ 2
+asXX3 5
+FrameXX6 ;
+;XX; <
+if\\
+(\\
+ rootFrame\\
+==\\
+null\\ !
+)\\! "
+{]]
+ rootFrame__
+=__
+new__
+Frame__ %
+{__& '
+Language__' /
+=__0 1
+Windows__2 9
+.__9 :
+
Globalization__: G
+.__G H
+ApplicationLanguages__H \
+.__\ ]
+ Languages__] f
+[__f g
+$num__g h
+]__h i
+}__i j
+;__j k
+ rootFramebb
+.bb
+NavigationFailedbb *
++=bb+ -
+OnNavigationFailedbb. @
+;bb@ A
+ifdd
+(dd
+edd
+.dd "
+PreviousExecutionStatedd ,
+==dd- /%
+ApplicationExecutionStatedd0 I
+.ddI J
+
+TerminatedddJ T
+)ddT U
+{ee
+MessageDialogHelperhh '
+.hh' ("
+ShowNotificationDialoghh( >
+(hh> ?
+$strhh? O
+,hhO P
+$strhhQ }
+)hh} ~
+;hh~
+}jj
+Windowmm
+.mm
+Currentmm
+.mm
+Contentmm &
+=mm' (
+ rootFramemm) 2
+;mm2 3
+}nn
+ifpp
+(pp
+epp
+ispp $
+LaunchActivatedEventArgspp -
+)pp- .
+{qq
+varrr #
+lauchActivatedEventArgsrr +
+=rr, -
+(rr. /$
+LaunchActivatedEventArgsrr/ G
+)rrG H
+errI J
+;rrJ K
+ifss
+(ss
+ rootFramess
+.ss
+Contentss %
+==ss& (
+nullss) -
+)ss- .
+{tt
+ rootFramexx
+.xx
+Navigatexx &
+(xx& '
+typeofxx' -
+(xx- .
+MainPagexx. 6
+)xx6 7
+,xx7 8#
+lauchActivatedEventArgsxx9 P
+.xxP Q
+ ArgumentsxxQ Z
+)xxZ [
+;xx[ \
+}yy
+}
+Window
+
+.
+
+Current
+
+.
+
+Activate
+ #
+(
+# $
+)
+$ %
+;
+% &
+}
+
+private
+
+async
+
+void
+
+
+OnResuming
+ %
+(
+% &
+object
+& ,
+sender
+- 3
+,
+3 4
+object
+5 ;
+e
+< =
+)
+= >
+{
+
+var
+
+currentFrame
+
+=
+
+Window
+ %
+.
+% &
+Current
+& -
+.
+- .
+Content
+. 5
+as
+6 8
+Frame
+9 >
+;
+> ?
+var
+
+database
+
+=
+
+DatabaseService
+ *
+.
+* +
+Instance
++ 3
+;
+3 4
+if
+
+(
+
+database
+
+.
+
+DatabaseFile
+ %
+==
+& (
+null
+) -
+)
+- .
+{
+
%
+ToastNotificationHelper
+ '
+.
+' (
+ShowGenericToast
+( 8
+(
+8 9
+$str
+9 H
+,
+H I
+$str
+J v
+)
+v w
+;
+w x
+return
+
+;
+
+}
+
+try
+
+{
+
+if
+
+(
+
+database
+
+.
+
+CompositeKey
+ )
+!=
+* ,
+null
+- 1
+)
+1 2
+await
+3 8
+database
+9 A
+.
+A B
+ReOpen
+B H
+(
+H I
+)
+I J
+;
+J K
+}
+
+catch
+
+(
+
+ Exception
+
+ex
+
+)
+
+{
+
+currentFrame
+
+?
+
+.
+
+Navigate
+ &
+(
+& '
+typeof
+' -
+(
+- .
+MainPage
+. 6
+)
+6 7
+)
+7 8
+;
+8 9!
+MessageDialogHelper
+ #
+.
+# $
+ShowErrorDialog
+$ 3
+(
+3 4
+ex
+4 6
+)
+6 7
+;
+7 8%
+ToastNotificationHelper
+ĄĄ '
+.
+ĄĄ' (
+ShowGenericToast
+ĄĄ( 8
+(
+ĄĄ8 9
+$str
+ĄĄ9 H
+,
+ĄĄH I
+$str
+ĄĄJ t
+)
+ĄĄt u
+;
+ĄĄu v
+}
+ĸĸ
+}
+ŖŖ
+void
+ĒĒ
+OnNavigationFailed
+ĒĒ
+(
+ĒĒ
+object
+ĒĒ &
+sender
+ĒĒ' -
+,
+ĒĒ- .'
+NavigationFailedEventArgs
+ĒĒ/ H
+e
+ĒĒI J
+)
+ĒĒJ K
+{
+ĢĢ
+throw
+ŦŦ
+new
+ŦŦ
+ Exception
+ŦŦ
+(
+ŦŦ
+$str
+ŦŦ 6
++
+ŦŦ7 8
+e
+ŦŦ9 :
+.
+ŦŦ: ;
+SourcePageType
+ŦŦ; I
+.
+ŦŦI J
+FullName
+ŦŦJ R
+)
+ŦŦR S
+;
+ŦŦS T
+}
+
+private
+ļļ
+async
+ļļ
+void
+ļļ
+OnSuspending
+ļļ '
+(
+ļļ' (
+object
+ļļ( .
+sender
+ļļ/ 5
+,
+ļļ5 6!
+SuspendingEventArgs
+ļļ7 J
+e
+ļļK L
+)
+ļļL M
+{
+ˇˇ
+var
+¸¸
+deferral
+¸¸
+=
+¸¸
+e
+¸¸
+.
+¸¸ !
+SuspendingOperation
+¸¸ 0
+.
+¸¸0 1
+GetDeferral
+¸¸1 <
+(
+¸¸< =
+)
+¸¸= >
+;
+¸¸> ?
+var
+šš
+database
+šš
+=
+šš
+DatabaseService
+šš *
+.
+šš* +
+Instance
+šš+ 3
+;
+šš3 4
+try
+ēē
+{
+ģģ
+if
+ŧŧ
+(
+ŧŧ
+SettingsService
+ŧŧ #
+.
+ŧŧ# $
+Instance
+ŧŧ$ ,
+.
+ŧŧ, -
+
+GetSetting
+ŧŧ- 7
+(
+ŧŧ7 8
+$str
+ŧŧ8 E
+,
+ŧŧE F
+true
+ŧŧG K
+)
+ŧŧK L
+)
+ŧŧL M
+database
+ŧŧN V
+.
+ŧŧV W
+Save
+ŧŧW [
+(
+ŧŧ[ \
+)
+ŧŧ\ ]
+;
+ŧŧ] ^
+await
+ŊŊ
+database
+ŊŊ
+.
+ŊŊ
+Close
+ŊŊ $
+(
+ŊŊ$ %
+false
+ŊŊ% *
+)
+ŊŊ* +
+;
+ŊŊ+ ,
+}
+žž
+catch
+ŋŋ
+(
+ŋŋ
+ Exception
+ŋŋ
+ exception
+ŋŋ &
+)
+ŋŋ& '
+{
+ĀĀ
%
+ToastNotificationHelper
+ÂÂ '
+.
+ÂÂ' (
+ShowErrorToast
+ÂÂ( 6
+(
+ÂÂ6 7
+ exception
+ÂÂ7 @
+)
+ÂÂ@ A
+;
+ÂÂA B
+}
+ÄÄ
+deferral
+ÅÅ
+.
+ÅÅ
+Complete
+ÅÅ
+(
+ÅÅ
+)
+ÅÅ
+;
+ÅÅ
+}
+ÆÆ
+ protected
+ĖĖ
+override
+ĖĖ
+void
+ĖĖ
+OnFileActivated
+ĖĖ /
+(
+ĖĖ/ 0$
+FileActivatedEventArgs
+ĖĖ0 F
+args
+ĖĖG K
+)
+ĖĖK L
+{
+ÍÍ
+base
+ÎÎ
+.
+ÎÎ
+OnFileActivated
+ÎÎ
+(
+ÎÎ !
+args
+ÎÎ! %
+)
+ÎÎ% &
+;
+ÎÎ& '
+var
+ĪĪ
+ rootFrame
+ĪĪ
+=
+ĪĪ
+new
+ĪĪ
+Frame
+ĪĪ %
+(
+ĪĪ% &
+)
+ĪĪ& '
+;
+ĪĪ' (
+DatabaseService
+ĐĐ
+.
+ĐĐ
+Instance
+ĐĐ $
+.
+ĐĐ$ %
+DatabaseFile
+ĐĐ% 1
+=
+ĐĐ2 3
+args
+ĐĐ4 8
+.
+ĐĐ8 9
+Files
+ĐĐ9 >
+[
+ĐĐ> ?
+$num
+ĐĐ? @
+]
+ĐĐ@ A
+as
+ĐĐB D
+StorageFile
+ĐĐE P
+;
+ĐĐP Q
+ rootFrame
+ŅŅ
+.
+ŅŅ
+Navigate
+ŅŅ
+(
+ŅŅ
+typeof
+ŅŅ %
+(
+ŅŅ% &
+MainPage
+ŅŅ& .
+)
+ŅŅ. /
+,
+ŅŅ/ 0
+args
+ŅŅ1 5
+)
+ŅŅ5 6
+;
+ŅŅ6 7
+Window
+ŌŌ
+.
+ŌŌ
+Current
+ŌŌ
+.
+ŌŌ
+Content
+ŌŌ "
+=
+ŌŌ# $
+ rootFrame
+ŌŌ% .
+;
+ŌŌ. /
+Window
+ĶĶ
+.
+ĶĶ
+Current
+ĶĶ
+.
+ĶĶ
+Activate
+ĶĶ #
+(
+ĶĶ# $
+)
+ĶĶ$ %
+;
+ĶĶ% &
+}
+ÔÔ
+}
+××
+}ØØ ÎX
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\IntToSymbolConverter.cs
+ namespace
+
ModernKeePass
+
+.
+
+Converters "
+{
+public
+
+class
+IntToSymbolConverter %
+:& '
+IValueConverter( 7
+{
+public
+
+
+object
+
+
+Convert
+
+
+(
+
+
+object
+
+ $
+value
+
+% *
+,
+
+* +
+Type
+
+, 0
+
+targetType
+
+1 ;
+,
+
+; <
+object
+
+= C
+ parameter
+
+D M
+,
+
+M N
+string
+
+O U
+language
+
+V ^
+)
+
+^ _
+{
+var
+icon
+=
+(
+PwIcon
+)
+value %
+;% &
+switch
+(
+icon
+)
+{
+case
+PwIcon
+.
+Key
+:
+return! '
+Symbol( .
+.. /
+Permissions/ :
+;: ;
+case
+PwIcon
+.
+WorldSocket '
+:' (
+case
+PwIcon
+.
+World !
+:! "
+return# )
+Symbol* 0
+.0 1
+World1 6
+;6 7
+case
+PwIcon
+.
+Warning #
+:# $
+return% +
+Symbol, 2
+.2 3
+ Important3 <
+;< =
+case
+PwIcon
+.
+
WorldComputer )
+:) *
+case
+PwIcon
+.
+Drive !
+:! "
+case
+PwIcon
+.
+DriveWindows (
+:( )
+case
+PwIcon
+.
+
NetworkServer )
+:) *
+return+ 1
+Symbol2 8
+.8 9
+MapDrive9 A
+;A B
+case
+PwIcon
+.
+MarkedDirectory +
+:+ ,
+return- 3
+Symbol4 :
+.: ;
+Map; >
+;> ?
+case
+PwIcon
+.
+UserCommunication -
+:- .
+return/ 5
+Symbol6 <
+.< =
+ContactInfo= H
+;H I
+case
+PwIcon
+.
+Parts !
+:! "
+return# )
+Symbol* 0
+.0 1
+ViewAll1 8
+;8 9
+case
+PwIcon
+.
+Notepad #
+:# $
+return% +
+Symbol, 2
+.2 3
+Document3 ;
+;; <
+case
+PwIcon
+.
+Identity $
+:$ %
+return& ,
+Symbol- 3
+.3 4
+Contact24 <
+;< =
+case
+PwIcon
+.
+
+PaperReady &
+:& '
+return( .
+Symbol/ 5
+.5 6
+
+SyncFolder6 @
+;@ A
+case
+PwIcon
+.
+Digicam #
+:# $
+return% +
+Symbol, 2
+.2 3
+Camera3 9
+;9 :
+case
+PwIcon
+.
+IRCommunication +
+:+ ,
+return- 3
+Symbol4 :
+.: ;
+View; ?
+;? @
+case
+PwIcon
+.
+Energy "
+:" #
+return$ *
+Symbol+ 1
+.1 2
+ZeroBars2 :
+;: ;
+case
+PwIcon
+.
+Scanner #
+: # $
+return % +
+Symbol , 2
+. 2 3
+Scan 3 7
+; 7 8
+case!!
+PwIcon!!
+.!!
+CDRom!! !
+:!!! "
+return!!# )
+Symbol!!* 0
+.!!0 1
+Rotate!!1 7
+;!!7 8
+case""
+PwIcon""
+.""
+Monitor"" #
+:""# $
+return""% +
+Symbol"", 2
+.""2 3
+Caption""3 :
+;"": ;
+case##
+PwIcon##
+.##
+EMailBox## $
+:##$ %
+case$$
+PwIcon$$
+.$$
+EMail$$ !
+:$$! "
+return$$# )
+Symbol$$* 0
+.$$0 1
+Mail$$1 5
+;$$5 6
+case%%
+PwIcon%%
+.%%
+
Configuration%% )
+:%%) *
+return%%+ 1
+Symbol%%2 8
+.%%8 9
+Setting%%9 @
+;%%@ A
+case&&
+PwIcon&&
+.&&
+ClipboardReady&& *
+:&&* +
+return&&, 2
+Symbol&&3 9
+.&&9 :
+Paste&&: ?
+;&&? @
+case''
+PwIcon''
+.''
+PaperNew'' $
+:''$ %
+return''& ,
+Symbol''- 3
+.''3 4
+Page2''4 9
+;''9 :
+case((
+PwIcon((
+.((
+Screen(( "
+:((" #
+return(($ *
+Symbol((+ 1
+.((1 2
+ GoToStart((2 ;
+;((; <
+case))
+PwIcon))
+.))
+
EnergyCareful)) )
+:))) *
+return))+ 1
+Symbol))2 8
+.))8 9
+FourBars))9 A
+;))A B
+case**
+PwIcon**
+.**
+Disk**
+:** !
+return**" (
+Symbol**) /
+.**/ 0
+Save**0 4
+;**4 5
+case--
+PwIcon--
+.--
+Console-- #
+:--# $
+return--% +
+Symbol--, 2
+.--2 3
+ SlideShow--3 <
+;--< =
+case..
+PwIcon..
+...
+Printer.. #
+:..# $
+return..% +
+Symbol.., 2
+...2 3
+Scan..3 7
+;..7 8
+case//
+PwIcon//
+.//
+ProgramIcons// (
+://( )
+return//* 0
+Symbol//1 7
+.//7 8
+ GoToStart//8 A
+;//A B
+case11
+PwIcon11
+.11
+Settings11 $
+:11$ %
+case22
+PwIcon22
+.22
+Tool22
+:22 !
+return22" (
+Symbol22) /
+.22/ 0
+Repair220 6
+;226 7
+case33
+PwIcon33
+.33
+Archive33 #
+:33# $
+return33% +
+Symbol33, 2
+.332 3
+Crop333 7
+;337 8
+case44
+PwIcon44
+.44
+Count44 !
+:44! "
+return44# )
+Symbol44* 0
+.440 1
+
+Calculator441 ;
+;44; <
+case55
+PwIcon55
+.55
+Clock55 !
+:55! "
+return55# )
+Symbol55* 0
+.550 1
+Clock551 6
+;556 7
+case66
+PwIcon66
+.66
+EMailSearch66 '
+:66' (
+return66) /
+Symbol660 6
+.666 7
+Find667 ;
+;66; <
+case77
+PwIcon77
+.77
+ PaperFlag77 %
+:77% &
+return77' -
+Symbol77. 4
+.774 5
+Flag775 9
+;779 :
+case99
+PwIcon99
+.99
+TrashBin99 $
+:99$ %
+return99& ,
+Symbol99- 3
+.993 4
+Delete994 :
+;99: ;
+case::
+PwIcon::
+.::
+Expired:: #
+:::# $
+return::% +
+Symbol::, 2
+.::2 3
+Cancel::3 9
+;::9 :
+case;;
+PwIcon;;
+.;;
+Info;;
+:;; !
+return;;" (
+Symbol;;) /
+.;;/ 0
+Help;;0 4
+;;;4 5
+case==
+PwIcon==
+.==
+Folder== "
+:==" #
+case>>
+PwIcon>>
+.>>
+
+FolderOpen>> &
+:>>& '
+case??
+PwIcon??
+.??
+
FolderPackage?? )
+:??) *
+return??+ 1
+Symbol??2 8
+.??8 9
+Folder??9 ?
+;??? @
+caseAA
+PwIconAA
+.AA
+PaperLockedAA '
+:AA' (
+returnAA) /
+SymbolAA0 6
+.AA6 7
+ProtectedDocumentAA7 H
+;AAH I
+caseBB
+PwIconBB
+.BB
+CheckedBB #
+:BB# $
+returnBB% +
+SymbolBB, 2
+.BB2 3
+AcceptBB3 9
+;BB9 :
+caseCC
+PwIconCC
+.CC
+PenCC
+:CC
+returnCC! '
+SymbolCC( .
+.CC. /
+EditCC/ 3
+;CC3 4
+caseDD
+PwIconDD
+.DD
+ ThumbnailDD %
+:DD% &
+returnDD' -
+SymbolDD. 4
+.DD4 5
+BrowsePhotosDD5 A
+;DDA B
+caseEE
+PwIconEE
+.EE
+BookEE
+:EE !
+returnEE" (
+SymbolEE) /
+.EE/ 0
+LibraryEE0 7
+;EE7 8
+caseFF
+PwIconFF
+.FF
+ListFF
+:FF !
+returnFF" (
+SymbolFF) /
+.FF/ 0
+ListFF0 4
+;FF4 5
+caseGG
+PwIconGG
+.GG
+UserKeyGG #
+:GG# $
+returnGG% +
+SymbolGG, 2
+.GG2 3
+ContactPresenceGG3 B
+;GGB C
+caseHH
+PwIconHH
+.HH
+HomeHH
+:HH !
+returnHH" (
+SymbolHH) /
+.HH/ 0
+HomeHH0 4
+;HH4 5
+caseII
+PwIconII
+.II
+StarII
+:II !
+returnII" (
+SymbolII) /
+.II/ 0
+OutlineStarII0 ;
+;II; <
+caseNN
+PwIconNN
+.NN
+MoneyNN !
+:NN! "
+returnNN# )
+SymbolNN* 0
+.NN0 1
+ShopNN1 5
+;NN5 6
+caseOO
+PwIconOO
+.OO
+CertificateOO '
+:OO' (
+returnOO) /
+SymbolOO0 6
+.OO6 7
+PreviewLinkOO7 B
+;OOB C
+casePP
+PwIconPP
+.PP
+
+BlackBerryPP &
+:PP& '
+returnPP( .
+SymbolPP/ 5
+.PP5 6
+ CellPhonePP6 ?
+;PP? @
+defaultQQ
+:QQ
+returnQQ
+SymbolQQ &
+.QQ& '
+StopQQ' +
+;QQ+ ,
+}RR
+}SS
+publicUU
+objectUU
+ConvertBackUU !
+(UU! "
+objectUU" (
+valueUU) .
+,UU. /
+TypeUU0 4
+
+targetTypeUU5 ?
+,UU? @
+objectUUA G
+ parameterUUH Q
+,UUQ R
+stringUUS Y
+languageUUZ b
+)UUb c
+{VV
+varWW
+symbolWW
+=WW
+(WW
+SymbolWW
+)WW !
+valueWW" '
+;WW' (
+switchXX
+(XX
+symbolXX
+)XX
+{YY
+casehh
+Symbolhh
+.hh
+Deletehh "
+:hh" #
+returnii
+PwIconii !
+.ii! "
+TrashBinii" *
+;ii* +
+default
+ÜÜ
+:
+ÜÜ
+return
+ŨŨ
+PwIcon
+ŨŨ !
+.
+ŨŨ! "
+Folder
+ŨŨ" (
+;
+ŨŨ( )
+}
+ŪŪ
+}
+ßß
+}
+āā
+}áá Õ
+RC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\DatabaseOpenedException.cs
+ namespace
+
ModernKeePass
+
+.
+
+Exceptions "
+{
+public
+
+class #
+DatabaseOpenedException (
+:( )
+ Exception* 3
+{
+}
+}
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ILicenseService.cs
+ namespace
+
ModernKeePass
+
+.
+
+Interfaces "
+{
+public
+
+ interface
+ILicenseService $
+{
+IReadOnlyDictionary
+<
+string "
+, " #
+ProductListing $ 2
+> 2 3
+Products 4 <
+{ = >
+get ? B
+; B C
+} D E
+Task
+
+
+<
+
+
+int
+
+
+>
+
+
+Purchase
+
+
+(
+
+
+string
+
+ !
+addOn
+
+" '
+)
+
+' (
+;
+
+( )
+}
+} Ã
+RC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IProxyInvocationHandler.cs
+ namespace
+
ModernKeePass
+
+.
+
+Interfaces "
+{
+public
+
+ interface #
+IProxyInvocationHandler ,
+{
+object
+Invoke
+(
+object
+proxy "
+," #
+
+MethodInfo$ .
+method/ 5
+,5 6
+object7 =
+[= >
+]> ?
+
+parameters@ J
+)J K
+;K L
+}
+} Ŋ
+IC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentService.cs
+ namespace
+
ModernKeePass
+
+.
+
+Interfaces "
+{
+public
+
+ interface
+IRecentService #
+{
+int
+
+EntryCount
+{
+get
+;
+}
+Task
+
+
+<
+
+
+IStorageItem
+
+
+>
+
+
+GetFileAsync
+
+ '
+(
+
+' (
+string
+
+( .
+token
+
+/ 4
+)
+
+4 5
+;
+
+5 6
+ObservableCollection
+<
+IRecentItem (
+>( )
+GetAllFiles* 5
+(5 6
+bool6 :
+removeIfNonExistant; N
+=O P
+trueQ U
+)U V
+;V W
+void
+Add
+(
+IStorageItem
+file "
+," #
+string$ *
+metadata+ 3
+)3 4
+;4 5
+void
+ClearAll
+(
+)
+;
+}
+} Õ
+FC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentItem.cs
+ namespace
+
ModernKeePass
+
+.
+
+Interfaces "
+{
+public
+
+ interface
+IRecentItem
+{
+StorageFile
+DatabaseFile
+{! "
+get# &
+;& '
+}( )
+string
+Token
+{
+get
+;
+}
+string
+Name
+{
+get
+;
+}
+}
+
+
+} Š
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IResourceService.cs
+ namespace
+
ModernKeePass
+
+.
+
+Interfaces "
+{
+public
+
+ interface
+IResourceService %
+{
+string
+GetResourceValue
+(
+string &
+key' *
+)* +
+;+ ,
+}
+}
+MC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SingletonServiceBase.cs
+ namespace
+
ModernKeePass
+
+.
+Services
+{
+public
+
+abstract
+class
+SingletonServiceBase .
+<. /
+T/ 0
+>0 1
+where2 7
+T8 9
+:: ;
+new< ?
+(? @
+)@ A
+{
+private
+static
+readonly
+Lazy $
+<$ %
+T% &
+>& '
+LazyInstance( 4
+=5 6
+new
+Lazy
+<
+T
+>
+(
+(
+)
+=>
+new !
+T" #
+(# $
+)$ %
+)% &
+;& '
+public
+
+
+static
+
+
+T
+
+
+Instance
+
+
+=>
+
+! #
+LazyInstance
+
+$ 0
+.
+
+0 1
+Value
+
+1 6
+;
+
+6 7
+}
+} Ū
+
+`C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\SelectableDataTemplateSelector.cs
+ namespace
+
ModernKeePass
+
+.
+TemplateSelectors )
+{
+public
+
+class *
+SelectableDataTemplateSelector /
+:/ 0
+DataTemplateSelector1 E
+{
+public
+DataTemplate
+TrueItem $
+{ % &
+get ' *
+; * +
+set , /
+; / 0
+} 1 2
+public
+
+
+DataTemplate
+
+
+ FalseItem
+
+ %
+{
+
+& '
+get
+
+( +
+;
+
++ ,
+set
+
+- 0
+;
+
+0 1
+}
+
+2 3
+ protected
+override
+DataTemplate '
+SelectTemplateCore( :
+(: ;
+object; A
+itemB F
+,F G
+DependencyObjectH X
+ containerY b
+)b c
+{
+var
+isSelectableItem
+=! "
+item# '
+as( *
+ISelectableModel+ ;
+;; <
+return
+isSelectableItem #
+!=$ &
+null' +
+&&, .
+isSelectableItem/ ?
+.? @
+
+IsSelected@ J
+?K L
+TrueItemM U
+:V W
+ FalseItemX a
+;a b
+}
+}
+} ø
+
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsSaveVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+SettingsSaveVm
+{
+private
+readonly
+ISettingsService )
+ _settings* 3
+;3 4
+public
+
+
+SettingsSaveVm
+
+
+(
+
+
+)
+
+
+:
+
+ !
+this
+
+" &
+(
+
+& '
+SettingsService
+
+' 6
+.
+
+6 7
+Instance
+
+7 ?
+)
+
+? @
+{
+}
+
+public
+SettingsSaveVm
+(
+ISettingsService
.
+settings
/ 7
+)
7 8
+{
+ _settings
+=
+settings
+; !
+}
+public
+bool
+
IsSaveSuspend !
+{
+get
+{
+return
+ _settings "
+." #
+
+GetSetting# -
+(- .
+$str. ;
+,; <
+true= A
+)A B
+;B C
+}D E
+set
+{
+ _settings
+.
+
+PutSetting &
+(& '
+$str' 4
+,4 5
+value6 ;
+); <
+;< =
+}> ?
+}
+}
+} ū
+TC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\DonatePage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class
+
+DonatePage *
+{
+public
+
+
+
+DonatePage
+
+
+(
+
+
+)
+
+
+{
+InitializeComponent
+(
+) !
+;! "
+}
+}
+} ģŦ
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\DatabaseService.cs
+ namespace
+
ModernKeePass
+
+.
+Services
+{
+public
+
+class
+DatabaseService
+: !
+SingletonServiceBase" 6
+<6 7
+DatabaseService7 F
+>F G
+,G H
+IDatabaseServiceI Y
+{
+private
+readonly
+
+PwDatabase #
+_pwDatabase$ /
+=0 1
+new2 5
+
+PwDatabase6 @
+(@ A
+)A B
+;B C
+private
+readonly
+ISettingsService )
+ _settings* 3
+;3 4
+private
+StorageFile
+_realDatabaseFile -
+;- .
+private
+StorageFile
+
_databaseFile )
+;) *
+private
+GroupVm
+_recycleBin #
+;# $
+private
+CompositeKey
+
_compositeKey *
+;* +
+public
+GroupVm
+ RootGroup
+{! "
+get# &
+;& '
+set( +
+;+ ,
+}- .
+public
+GroupVm
+
+RecycleBin !
+{
+get
+{
+return
+_recycleBin $
+;$ %
+}& '
+set
+{!!
+_recycleBin""
+=""
+value"" #
+;""# $
+_pwDatabase##
+.##
+RecycleBinUuid## *
+=##+ ,
+_recycleBin##- 8
+?##8 9
+.##9 :
+IdUuid##: @
+;##@ A
+}$$
+}%%
+public''
+string''
+Name''
+=>''
+DatabaseFile'' *
+?''* +
+.''+ ,
+Name'', 0
+;''0 1
+public))
+bool))
+RecycleBinEnabled)) %
+{**
+get++
+{++
+return++
+_pwDatabase++ $
+.++$ %
+RecycleBinEnabled++% 6
+;++6 7
+}++8 9
+set,,
+{,,
+_pwDatabase,,
+.,,
+RecycleBinEnabled,, /
+=,,0 1
+value,,2 7
+;,,7 8
+},,9 :
+}--
+public//
+StorageFile//
+DatabaseFile// '
+{00
+get11
+{11
+return11
+
_databaseFile11 &
+;11& '
+}11( )
+set22
+{33
+if44
+(44
+IsOpen44
+&&44
+
+HasChanged44 (
+)44( )
+{55
+throw66
+new66 #
+DatabaseOpenedException66 5
+(665 6
+)666 7
+;667 8
+}77
+
_databaseFile88
+=88
+value88 %
+;88% &
+}99
+}::
+public<<
+CompositeKey<<
+CompositeKey<< (
+{==
+get>>
+{>>
+return>>
+
_compositeKey>> &
+;>>& '
+}>>( )
+set??
+{??
+
_compositeKey??
+=?? !
+value??" '
+;??' (
+}??) *
+}@@
+publicBB
+PwUuidBB
+
+DataCipherBB
+{CC
+getDD
+{DD
+returnDD
+_pwDatabaseDD $
+.DD$ %
+DataCipherUuidDD% 3
+;DD3 4
+}DD5 6
+setEE
+{EE
+_pwDatabaseEE
+.EE
+DataCipherUuidEE ,
+=EE- .
+valueEE/ 4
+;EE4 5
+}EE6 7
+}FF
+publicHH "
+PwCompressionAlgorithmHH %
+CompressionAlgorithmHH& :
+{II
+getJJ
+{JJ
+returnJJ
+_pwDatabaseJJ $
+.JJ$ %
+CompressionJJ% 0
+;JJ0 1
+}JJ2 3
+setKK
+{KK
+_pwDatabaseKK
+.KK
+CompressionKK )
+=KK* +
+valueKK, 1
+;KK1 2
+}KK3 4
+}LL
+publicNN
+
KdfParametersNN
+
KeyDerivationNN *
+{OO
+getPP
+{PP
+returnPP
+_pwDatabasePP $
+.PP$ %
+
KdfParametersPP% 2
+;PP2 3
+}PP4 5
+setQQ
+{QQ
+_pwDatabaseQQ
+.QQ
+
KdfParametersQQ +
+=QQ, -
+valueQQ. 3
+;QQ3 4
+}QQ5 6
+}RR
+publicTT
+boolTT
+IsOpenTT
+=>TT
+_pwDatabaseTT )
+.TT) *
+IsOpenTT* 0
+;TT0 1
+publicUU
+boolUU
+
+IsFileOpenUU
+=>UU !
+!UU" #
+_pwDatabaseUU# .
+.UU. /
+IsOpenUU/ 5
+&&UU6 8
+
_databaseFileUU9 F
+!=UUG I
+nullUUJ N
+;UUN O
+publicVV
+boolVV
+IsClosedVV
+=>VV
+
_databaseFileVV -
+==VV. 0
+nullVV1 5
+;VV5 6
+publicWW
+boolWW
+
+HasChangedWW
+{WW
+getWW! $
+;WW$ %
+setWW& )
+;WW) *
+}WW+ ,
+publicYY
+DatabaseServiceYY
+(YY
+)YY
+:YY! "
+thisYY# '
+(YY' (
+SettingsServiceYY( 7
+.YY7 8
+InstanceYY8 @
+)YY@ A
+{ZZ
+}[[
+public]]
+DatabaseService]]
+(]]
+ISettingsService]] /
+settings]]0 8
+)]]8 9
+{^^
+ _settings__
+=__
+settings__
+;__ !
+}``
+publicii
+asyncii
+Taskii
+Openii
+(ii
+CompositeKeyii +
+keyii, /
+,ii/ 0
+boolii1 5
+ createNewii6 ?
+=ii@ A
+falseiiB G
+)iiG H
+{jj
+tryll
+{mm
+ifnn
+(nn
+keynn
+==nn
+nullnn
+)nn
+{oo
+throwpp
+newpp !
+ArgumentNullExceptionpp 3
+(pp3 4
+nameofpp4 :
+(pp: ;
+keypp; >
+)pp> ?
+)pp? @
+;pp@ A
+}qq
+
_compositeKeyss
+=ss
+keyss #
+;ss# $
+vartt
+ioConnectiontt
+=tt! "
+IOConnectionInfott# 3
+.tt3 4
+FromFilett4 <
+(tt< =
+DatabaseFilett= I
+)ttI J
+;ttJ K
+ifuu
+(uu
+ createNewuu
+)uu
+{vv
+_pwDatabaseww
+.ww
+Newww #
+(ww# $
+ioConnectionww$ 0
+,ww0 1
+keyww2 5
+)ww5 6
+;ww6 7
+ifzz
+(zz
+ _settingszz !
+.zz! "
+
+GetSettingzz" ,
+<zz, -
+boolzz- 1
+>zz1 2
+(zz2 3
+$strzz3 ;
+)zz; <
+)zz< =
+CreateSampleDatazz> N
+(zzN O
+)zzO P
+;zzP Q
+var{{
+
+fileFormat{{ "
+={{# $
+ _settings{{% .
+.{{. /
+
+GetSetting{{/ 9
+<{{9 :
+string{{: @
+>{{@ A
+({{A B
+$str{{B U
+){{U V
+;{{V W
+switch||
+(||
+
+fileFormat|| &
+)||& '
+{}}
+case~~
+$str~~
+:~~ !
+
KeyDerivation )
+=* +
+KdfPool, 3
+.3 4
+Get4 7
+(7 8
+$str8 @
+)@ A
+.A B
+GetDefaultParametersB V
+(V W
+)W X
+;X Y
+break
+ !
+;
+! "
+}
+
+}
+
+else
+
+_pwDatabase
+
+.
+ !
+Open
+! %
+(
+% &
+ioConnection
+& 2
+,
+2 3
+key
+4 7
+,
+7 8
+new
+9 <
+NullStatusLogger
+= M
+(
+M N
+)
+N O
+)
+O P
+;
+P Q
+if
+
+(
+
+ _settings
+
+.
+
+
+GetSetting
+ (
+<
+( )
+bool
+) -
+>
+- .
+(
+. /
+$str
+/ ?
+)
+? @
+)
+@ A
+{
+
+_realDatabaseFile
+ %
+=
+& '
+
_databaseFile
+( 5
+;
+5 6
+var
+
+
+backupFile
+ "
+=
+# $
+await
+
+ApplicationData
+ -
+.
+- .
+Current
+. 5
+.
+5 6
+
RoamingFolder
+6 C
+.
+C D
+CreateFileAsync
+D S
+(
+S T
+Name
+T X
+,
+X Y%
+CreationCollisionOption
+ 3
+.
+3 4
+FailIfExists
+4 @
+)
+@ A
+;
+A B
+Save
+
+(
+
+
+backupFile
+ #
+)
+# $
+;
+$ %
+}
+
+ RootGroup
+
+=
+
+new
+
+GroupVm
+ '
+(
+' (
+_pwDatabase
+( 3
+.
+3 4
+ RootGroup
+4 =
+,
+= >
+null
+? C
+,
+C D
+RecycleBinEnabled
+E V
+?
+W X
+_pwDatabase
+Y d
+.
+d e
+RecycleBinUuid
+e s
+:
+t u
+null
+v z
+)
+z {
+;
+{ |
+}
+
+catch
+
+(
+ *
+InvalidCompositeKeyException
+ /
+ex
+0 2
+)
+2 3
+{
+
+HockeyClient
+
+.
+
+Current
+ $
+.
+$ %
+TrackException
+% 3
+(
+3 4
+ex
+4 6
+)
+6 7
+;
+7 8
+throw
+
+new
+
+ArgumentException
+ +
+(
++ ,
+ex
+, .
+.
+. /
+Message
+/ 6
+,
+6 7
+ex
+8 :
+)
+: ;
+;
+; <
+}
+
+}
+
+public
+
+async
+
+Task
+
+ReOpen
+
+(
+ !
+)
+! "
+{
+
+await
+
+Open
+
+(
+
+
_compositeKey
+ $
+)
+$ %
+;
+% &
+}
+
+public
+ĸĸ
+void
+ĸĸ
+Save
+ĸĸ
+(
+ĸĸ
+)
+ĸĸ
+{
+ŖŖ
+if
+¤¤
+(
+¤¤
+!
+¤¤
+IsOpen
+¤¤
+)
+¤¤
+return
+¤¤
+;
+¤¤
+try
+ĨĨ
+{
+ĻĻ
+_pwDatabase
+§§
+.
+§§
+Save
+§§
+(
+§§ !
+new
+§§! $
+NullStatusLogger
+§§% 5
+(
+§§5 6
+)
+§§6 7
+)
+§§7 8
+;
+§§8 9
+if
+ĒĒ
+(
+ĒĒ
+ _settings
+ĒĒ
+.
+ĒĒ
+
+GetSetting
+ĒĒ (
+<
+ĒĒ( )
+bool
+ĒĒ) -
+>
+ĒĒ- .
+(
+ĒĒ. /
+$str
+ĒĒ/ ?
+)
+ĒĒ? @
+)
+ĒĒ@ A
+{
+ĢĢ
+_pwDatabase
+ŦŦ
+.
+ŦŦ
+Open
+ŦŦ $
+(
+ŦŦ$ %
+_pwDatabase
+ŦŦ% 0
+.
+ŦŦ0 1
+IOConnectionInfo
+ŦŦ1 A
+,
+ŦŦA B
+_pwDatabase
+ŦŦC N
+.
+ŦŦN O
+ MasterKey
+ŦŦO X
+,
+ŦŦX Y
+new
+ŦŦZ ]
+NullStatusLogger
+ŦŦ^ n
+(
+ŦŦn o
+)
+ŦŦo p
+)
+ŦŦp q
+;
+ŦŦq r
+}
+
+}
+ŽŽ
+catch
+¯¯
+(
+¯¯
+ Exception
+¯¯
+e
+¯¯
+)
+¯¯
+{
+°°
+throw
+ąą
+new
+ąą
+
SaveException
+ąą '
+(
+ąą' (
+e
+ąą( )
+)
+ąą) *
+;
+ąą* +
+}
+˛˛
+}
+ŗŗ
+public
+šš
+void
+šš
+Save
+šš
+(
+šš
+StorageFile
+šš $
+file
+šš% )
+)
+šš) *
+{
+ēē
+var
+ģģ
+oldFile
+ģģ
+=
+ģģ
+DatabaseFile
+ģģ &
+;
+ģģ& '
+DatabaseFile
+ŧŧ
+=
+ŧŧ
+file
+ŧŧ
+;
+ŧŧ
+try
+ŊŊ
+{
+žž
+_pwDatabase
+ŋŋ
+.
+ŋŋ
+SaveAs
+ŋŋ "
+(
+ŋŋ" #
+IOConnectionInfo
+ŋŋ# 3
+.
+ŋŋ3 4
+FromFile
+ŋŋ4 <
+(
+ŋŋ< =
+DatabaseFile
+ŋŋ= I
+)
+ŋŋI J
+,
+ŋŋJ K
+true
+ŋŋL P
+,
+ŋŋP Q
+new
+ŋŋR U
+NullStatusLogger
+ŋŋV f
+(
+ŋŋf g
+)
+ŋŋg h
+)
+ŋŋh i
+;
+ŋŋi j
+}
+ĀĀ
+catch
+ÁÁ
+{
+ÂÂ
+DatabaseFile
+ÃÃ
+=
+ÃÃ
+oldFile
+ÃÃ &
+;
+ÃÃ& '
+throw
+ÄÄ
+;
+ÄÄ
+}
+ÅÅ
+}
+ÆÆ
+public
+ËË
+async
+ËË
+Task
+ËË
+Close
+ËË
+(
+ËË
+bool
+ËË $
+releaseFile
+ËË% 0
+=
+ËË1 2
+true
+ËË3 7
+)
+ËË7 8
+{
+ĖĖ
+_pwDatabase
+ÍÍ
+?
+ÍÍ
+.
+ÍÍ
+Close
+ÍÍ
+(
+ÍÍ
+)
+ÍÍ
+;
+ÍÍ !
+if
+ĐĐ
+(
+ĐĐ
+ _settings
+ĐĐ
+.
+ĐĐ
+
+GetSetting
+ĐĐ $
+<
+ĐĐ$ %
+bool
+ĐĐ% )
+>
+ĐĐ) *
+(
+ĐĐ* +
+$str
+ĐĐ+ ;
+)
+ĐĐ; <
+)
+ĐĐ< =
+{
+ŅŅ
+if
+ŌŌ
+(
+ŌŌ
+_pwDatabase
+ŌŌ
+!=
+ŌŌ "
+null
+ŌŌ# '
+&&
+ŌŌ( *
+_pwDatabase
+ŌŌ+ 6
+.
+ŌŌ6 7
+Modified
+ŌŌ7 ?
+)
+ŌŌ? @
+Save
+ĶĶ
+(
+ĶĶ
+_realDatabaseFile
+ĶĶ *
+)
+ĶĶ* +
+;
+ĶĶ+ ,
+await
+ÔÔ
+DatabaseFile
+ÔÔ "
+.
+ÔÔ" #
+DeleteAsync
+ÔÔ# .
+(
+ÔÔ. /
+)
+ÔÔ/ 0
+;
+ÔÔ0 1
+}
+ÕÕ
+if
+ÖÖ
+(
+ÖÖ
+releaseFile
+ÖÖ
+)
+ÖÖ
+DatabaseFile
+ÖÖ )
+=
+ÖÖ* +
+null
+ÖÖ, 0
+;
+ÖÖ0 1
+}
+××
+public
+ŲŲ
+void
+ŲŲ
+AddDeletedItem
+ŲŲ "
+(
+ŲŲ" #
+PwUuid
+ŲŲ# )
+id
+ŲŲ* ,
+)
+ŲŲ, -
+{
+ÚÚ
+_pwDatabase
+ÛÛ
+.
+ÛÛ
+DeletedObjects
+ÛÛ &
+.
+ÛÛ& '
+Add
+ÛÛ' *
+(
+ÛÛ* +
+new
+ÛÛ+ .
+PwDeletedObject
+ÛÛ/ >
+(
+ÛÛ> ?
+id
+ÛÛ? A
+,
+ÛÛA B
+DateTime
+ÛÛC K
+.
+ÛÛK L
+UtcNow
+ÛÛL R
+)
+ÛÛR S
+)
+ÛÛS T
+;
+ÛÛT U
+}
+ÜÜ
+public
+ŪŪ
+void
+ŪŪ
+CreateRecycleBin
+ŪŪ $
+(
+ŪŪ$ %
+string
+ŪŪ% +
+title
+ŪŪ, 1
+)
+ŪŪ1 2
+{
+ßß
+
+RecycleBin
+āā
+=
+āā
+ RootGroup
+āā "
+.
+āā" #
+AddNewGroup
+āā# .
+(
+āā. /
+title
+āā/ 4
+)
+āā4 5
+;
+āā5 6
+
+RecycleBin
+áá
+.
+áá
+
+IsSelected
+áá !
+=
+áá" #
+true
+áá$ (
+;
+áá( )
+
+RecycleBin
+ââ
+.
+ââ
+IconId
+ââ
+=
+ââ
+(
+ââ !
+int
+ââ! $
+)
+ââ$ %
+PwIcon
+ââ% +
+.
+ââ+ ,
+TrashBin
+ââ, 4
+;
+ââ4 5
+}
+ãã
+private
+åå
+void
+åå
+CreateSampleData
+åå %
+(
+åå% &
+)
+åå& '
+{
+ææ
+_pwDatabase
+įį
+.
+įį
+ RootGroup
+įį !
+.
+įį! "
+AddGroup
+įį" *
+(
+įį* +
+new
+įį+ .
+PwGroup
+įį/ 6
+(
+įį6 7
+true
+įį7 ;
+,
+įį; <
+true
+įį= A
+,
+įįA B
+$str
+įįC L
+,
+įįL M
+PwIcon
+įįN T
+.
+įįT U
+Count
+įįU Z
+)
+įįZ [
+,
+įį[ \
+true
+įį] a
+)
+įįa b
+;
+įįb c
+_pwDatabase
+čč
+.
+čč
+ RootGroup
+čč !
+.
+čč! "
+AddGroup
+čč" *
+(
+čč* +
+new
+čč+ .
+PwGroup
+čč/ 6
+(
+čč6 7
+true
+čč7 ;
+,
+čč; <
+true
+čč= A
+,
+ččA B
+$str
+ččC J
+,
+ččJ K
+PwIcon
+ččL R
+.
+ččR S
+EMail
+ččS X
+)
+ččX Y
+,
+ččY Z
+true
+čč[ _
+)
+čč_ `
+;
+čč` a
+_pwDatabase
+éé
+.
+éé
+ RootGroup
+éé !
+.
+éé! "
+AddGroup
+éé" *
+(
+éé* +
+new
+éé+ .
+PwGroup
+éé/ 6
+(
+éé6 7
+true
+éé7 ;
+,
+éé; <
+true
+éé= A
+,
+ééA B
+$str
+ééC M
+,
+ééM N
+PwIcon
+ééO U
+.
+ééU V
+World
+ééV [
+)
+éé[ \
+,
+éé\ ]
+true
+éé^ b
+)
+ééb c
+;
+ééc d
+var
+ëë
+pe
+ëë
+=
+ëë
+new
+ëë
+PwEntry
+ëë
+(
+ëë !
+true
+ëë! %
+,
+ëë% &
+true
+ëë' +
+)
+ëë+ ,
+;
+ëë, -
+pe
+ėė
+.
+ėė
+Strings
+ėė
+.
+ėė
+Set
+ėė
+(
+ėė
+PwDefs
+ėė !
+.
+ėė! "
+
+TitleField
+ėė" ,
+,
+ėė, -
+new
+ėė. 1
+ProtectedString
+ėė2 A
+(
+ėėA B
+_pwDatabase
+ėėB M
+.
+ėėM N
+MemoryProtection
+ėėN ^
+.
+ėė^ _
+ProtectTitle
+ėė_ k
+,
+ėėk l
+$str
+íí
+)
+íí
+)
+íí
+;
+íí !
+pe
+îî
+.
+îî
+Strings
+îî
+.
+îî
+Set
+îî
+(
+îî
+PwDefs
+îî !
+.
+îî! "
+
UserNameField
+îî" /
+,
+îî/ 0
+new
+îî1 4
+ProtectedString
+îî5 D
+(
+îîD E
+_pwDatabase
+îîE P
+.
+îîP Q
+MemoryProtection
+îîQ a
+.
+îîa b
+ProtectUserName
+îîb q
+,
+îîq r
+$str
+īī
+)
+īī
+)
+īī
+;
+īī
+pe
+đđ
+.
+đđ
+Strings
+đđ
+.
+đđ
+Set
+đđ
+(
+đđ
+PwDefs
+đđ !
+.
+đđ! "
+UrlField
+đđ" *
+,
+đđ* +
+new
+đđ, /
+ProtectedString
+đđ0 ?
+(
+đđ? @
+_pwDatabase
+đđ@ K
+.
+đđK L
+MemoryProtection
+đđL \
+.
+đđ\ ]
+
+ProtectUrl
+đđ] g
+,
+đđg h
+PwDefs
+ņņ
+.
+ņņ
+HomepageUrl
+ņņ "
+)
+ņņ" #
+)
+ņņ# $
+;
+ņņ$ %
+pe
+ōō
+.
+ōō
+Strings
+ōō
+.
+ōō
+Set
+ōō
+(
+ōō
+PwDefs
+ōō !
+.
+ōō! "
+
PasswordField
+ōō" /
+,
+ōō/ 0
+new
+ōō1 4
+ProtectedString
+ōō5 D
+(
+ōōD E
+_pwDatabase
+ōōE P
+.
+ōōP Q
+MemoryProtection
+ōōQ a
+.
+ōōa b
+ProtectPassword
+ōōb q
+,
+ōōq r
+$str
+ķķ
+)
+ķķ
+)
+ķķ
+;
+ķķ
+pe
+ôô
+.
+ôô
+Strings
+ôô
+.
+ôô
+Set
+ôô
+(
+ôô
+PwDefs
+ôô !
+.
+ôô! "
+
+NotesField
+ôô" ,
+,
+ôô, -
+new
+ôô. 1
+ProtectedString
+ôô2 A
+(
+ôôA B
+_pwDatabase
+ôôB M
+.
+ôôM N
+MemoryProtection
+ôôN ^
+.
+ôô^ _
+ProtectNotes
+ôô_ k
+,
+ôôk l
+$str
+õõ 3
+)
+õõ3 4
+)
+õõ4 5
+;
+õõ5 6
+_pwDatabase
+öö
+.
+öö
+ RootGroup
+öö !
+.
+öö! "
+AddEntry
+öö" *
+(
+öö* +
+pe
+öö+ -
+,
+öö- .
+true
+öö/ 3
+)
+öö3 4
+;
+öö4 5
+pe
+øø
+=
+øø
+new
+øø
+PwEntry
+øø
+(
+øø
+true
+øø !
+,
+øø! "
+true
+øø# '
+)
+øø' (
+;
+øø( )
+pe
+ųų
+.
+ųų
+Strings
+ųų
+.
+ųų
+Set
+ųų
+(
+ųų
+PwDefs
+ųų !
+.
+ųų! "
+
+TitleField
+ųų" ,
+,
+ųų, -
+new
+ųų. 1
+ProtectedString
+ųų2 A
+(
+ųųA B
+_pwDatabase
+ųųB M
+.
+ųųM N
+MemoryProtection
+ųųN ^
+.
+ųų^ _
+ProtectTitle
+ųų_ k
+,
+ųųk l
+$str
+úú !
+)
+úú! "
+)
+úú" #
+;
+úú# $
+pe
+ûû
+.
+ûû
+Strings
+ûû
+.
+ûû
+Set
+ûû
+(
+ûû
+PwDefs
+ûû !
+.
+ûû! "
+
UserNameField
+ûû" /
+,
+ûû/ 0
+new
+ûû1 4
+ProtectedString
+ûû5 D
+(
+ûûD E
+_pwDatabase
+ûûE P
+.
+ûûP Q
+MemoryProtection
+ûûQ a
+.
+ûûa b
+ProtectUserName
+ûûb q
+,
+ûûq r
+$str
+üü
+)
+üü
+)
+üü
+;
+üü
+pe
+ũũ
+.
+ũũ
+Strings
+ũũ
+.
+ũũ
+Set
+ũũ
+(
+ũũ
+PwDefs
+ũũ !
+.
+ũũ! "
+UrlField
+ũũ" *
+,
+ũũ* +
+new
+ũũ, /
+ProtectedString
+ũũ0 ?
+(
+ũũ? @
+_pwDatabase
+ũũ@ K
+.
+ũũK L
+MemoryProtection
+ũũL \
+.
+ũũ\ ]
+
+ProtectUrl
+ũũ] g
+,
+ũũg h
+PwDefs
+ūū
+.
+ūū
+HelpUrl
+ūū
++
+ūū
+$str
+ūū! 3
+)
+ūū3 4
+)
+ūū4 5
+;
+ūū5 6
+pe
+˙˙
+.
+˙˙
+Strings
+˙˙
+.
+˙˙
+Set
+˙˙
+(
+˙˙
+PwDefs
+˙˙ !
+.
+˙˙! "
+
PasswordField
+˙˙" /
+,
+˙˙/ 0
+new
+˙˙1 4
+ProtectedString
+˙˙5 D
+(
+˙˙D E
+_pwDatabase
+˙˙E P
+.
+˙˙P Q
+MemoryProtection
+˙˙Q a
+.
+˙˙a b
+ProtectPassword
+˙˙b q
+,
+˙˙q r
+$str
+
+)
+
+)
+
+;
+
+pe
+
+.
+
+AutoType
+
+.
+
+Add
+
+(
+
+new
+ !
+AutoTypeAssociation
+ 3
+(
+3 4
+$str
+4 K
+,
+K L
+string
+M S
+.
+S T
+Empty
+T Y
+)
+Y Z
+)
+Z [
+;
+[ \
+_pwDatabase
+
+.
+
+ RootGroup
+ !
+.
+! "
+AddEntry
+" *
+(
+* +
+pe
++ -
+,
+- .
+true
+/ 3
+)
+3 4
+;
+4 5
+}
+
+}
+
+}
¸
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISettingsService.cs
+ namespace
+
ModernKeePass
+
+.
+
+Interfaces "
+{
+public
+
+ interface
+ISettingsService %
+{
+T
+
+GetSetting
+
+<
+T
+>
+(
+string
+property '
+,' (
+T) *
+defaultValue+ 7
+=8 9
+default: A
+(A B
+TB C
+)C D
+)D E
+;E F
+void
+
+PutSetting
+<
+T
+>
+(
+string !
+property" *
+,* +
+T, -
+value. 3
+)3 4
+;4 5
+}
+} ˇ8
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Common\MessageDialogHelper.cs
+ namespace
+
ModernKeePass
+
+.
+Common
+{
+public
+
+
+
+static
+
+
+class
+
+
+MessageDialogHelper
+
+ +
+{
+public
+static
+async
+void
+ShowActionDialog
! 1
+(
1 2
+string
2 8
+title
9 >
+,
> ?
+string
@ F
+contentText
G R
+,
R S
+string
T Z
+actionButtonText
[ k
+,
k l
+string
m s
+cancelButtonText
t
+,
+
%
+UICommandInvokedHandler
+
+
actionCommand
+
Ģ
+,
+
Ģ Ŧ%
+UICommandInvokedHandler
+
Ä
+
cancelCommand
+
Å Ō
+)
+
Ō Ķ
+{
+var
+
messageDialog
+=
+CreateBasicDialog 1
+(1 2
+title2 7
+,7 8
+contentText9 D
+,D E
+cancelButtonTextF V
+,V W
+
cancelCommandX e
+)e f
+;f g
+
messageDialog
+.
+Commands "
+." #
+Add# &
+(& '
+new' *
+ UICommand+ 4
+(4 5
+actionButtonText5 E
+,E F
+
actionCommandG T
+)T U
+)U V
+;V W
+await
+
messageDialog
+.
+ ShowAsync )
+() *
+)* +
+;+ ,
+}
+public
+static
+void
+SaveErrorDialog *
+(* +
+
SaveException+ 8
+ exception9 B
+,B C
+IDatabaseServiceD T
+databaseU ]
+)] ^
+{
+ShowActionDialog
+(
+$str )
+,) *
+ exception+ 4
+.4 5
+InnerException5 C
+.C D
+MessageD K
+,K L
+$strM V
+,V W
+$strX a
+,a b
+asyncc h
+commandi p
+=>q s
+{
+var
+
+savePicker
+=
+new! $
+FileSavePicker% 3
+{ "
+SuggestedStartLocation *
+=+ ,
+PickerLocationId- =
+.= >
+DocumentsLibrary> N
+,N O
+SuggestedFileName %
+= & '
+$" ( *
+{ * +
+database + 3
+. 3 4
+DatabaseFile 4 @
+. @ A
+DisplayName A L
+} L M
+ - copy M T
+" T U
+}!!
+;!!
+
+savePicker""
+.""
+FileTypeChoices"" *
+.""* +
+Add""+ .
+("". /
+$str""/ E
+,""E F
+new""G J
+List""K O
+<""O P
+string""P V
+>""V W
+{""X Y
+$str""Z a
+}""b c
+)""c d
+;""d e
+var$$
+file$$
+=$$
+await$$
+
+savePicker$$! +
+.$$+ ,
+PickSaveFileAsync$$, =
+($$= >
+)$$> ?
+;$$? @
+if%%
+(%%
+file%%
+!=%%
+null%%
+)%% !
+database%%" *
+.%%* +
+Save%%+ /
+(%%/ 0
+file%%0 4
+)%%4 5
+;%%5 6
+}&&
+,&&
+null&&
+)&&
+;&&
+}''
+public))
+static))
+void))
+SaveUnchangedDialog)) .
+()). /#
+DatabaseOpenedException))/ F
+ exception))G P
+,))P Q
+IDatabaseService))R b
+database))c k
+)))k l
+{**
+ShowActionDialog++
+(++
+$str++ .
+,++. /
+$"++0 2
+ Database ++2 ;
+{++; <
+database++< D
+.++D E
+Name++E I
+}++I J9
+- is currently opened. What to you wish to do?++J w
+"++w x
+,++x y
+$str ++z
+,
+++
+$str
+++
+,
+++
+command
+++
+=>
+++
+{,,
+database--
+.--
+Save--
+(--
+)--
+;--
+database..
+...
+Close..
+(..
+)..
+;.. !
+}//
+,//
+command00
+=>00
+{11
+database22
+.22
+Close22
+(22
+)22
+;22 !
+}33
+)33
+;33
+}44
+public66
+static66
+async66
+void66
+ShowErrorDialog66! 0
+(660 1
+ Exception661 :
+ exception66; D
+)66D E
+{77
+if88
+(88
+ exception88
+==88
+null88 !
+)88! "
+return88# )
+;88) *
+var::
+
messageDialog::
+=::
+CreateBasicDialog:: 1
+(::1 2
+ exception::2 ;
+.::; <
+Message::< C
+,::C D
+ exception::E N
+.::N O
+
+StackTrace::O Y
+,::Y Z
+$str::[ _
+)::_ `
+;::` a
+await==
+
messageDialog==
+.==
+ ShowAsync== )
+(==) *
+)==* +
+;==+ ,
+}>>
+public@@
+static@@
+async@@
+void@@ "
+ShowNotificationDialog@@! 7
+(@@7 8
+string@@8 >
+title@@? D
+,@@D E
+string@@F L
+message@@M T
+)@@T U
+{AA
+varBB
+dialogBB
+=BB
+CreateBasicDialogBB *
+(BB* +
+titleBB+ 0
+,BB0 1
+messageBB2 9
+,BB9 :
+$strBB; ?
+)BB? @
+;BB@ A
+awaitEE
+dialogEE
+.EE
+ ShowAsyncEE "
+(EE" #
+)EE# $
+;EE$ %
+}FF
+privateHH
+staticHH
+
MessageDialogHH $
+CreateBasicDialogHH% 6
+(HH6 7
+stringHH7 =
+titleHH> C
+,HHC D
+stringHHE K
+messageHHL S
+,HHS T
+stringHHU [
+dismissActionTextHH\ m
+,HHm n$
+UICommandInvokedHandler HHo
+
cancelCommand
+HH
+=
+HH
+null
+HH
+)
+HH
+{II
+varKK
+
messageDialogKK
+=KK
+newKK #
+
MessageDialogKK$ 1
+(KK1 2
+messageKK2 9
+,KK9 :
+titleKK; @
+)KK@ A
+;KKA B
+
messageDialogNN
+.NN
+CommandsNN "
+.NN" #
+AddNN# &
+(NN& '
+newNN' *
+ UICommandNN+ 4
+(NN4 5
+dismissActionTextNN5 F
+,NNF G
+
cancelCommandNNH U
+)NNU V
+)NNV W
+;NNW X
+
messageDialogQQ
+.QQ
+DefaultCommandIndexQQ -
+=QQ. /
+$numQQ0 1
+;QQ1 2
+
messageDialogTT
+.TT
+CancelCommandIndexTT ,
+=TT- .
+$numTT/ 0
+;TT0 1
+returnVV
+
messageDialogVV
+;VV !
+}WW
+}XX
+}YY §
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NavigationHelper.cs
+ namespace
+
ModernKeePass
+
+.
+Common
+{
+[;;
+Windows;;
+.;;
+
+Foundation;;
+.;;
+Metadata;;
+.;; !
+
WebHostHidden;;! .
+];;. /
+public<<
+
+class<<
+NavigationHelper<< !
+:<<" #
+DependencyObject<<$ 4
+{==
+private>>
+Page>>
+Page>>
+{>>
+get>>
+;>>
+set>>! $
+;>>$ %
+}>>& '
+private??
+Frame??
+Frame??
+{??
+get?? !
+{??" #
+return??$ *
+this??+ /
+.??/ 0
+Page??0 4
+.??4 5
+Frame??5 :
+;??: ;
+}??< =
+}??> ?
+publicGG
+NavigationHelperGG
+(GG
+PageGG $
+pageGG% )
+)GG) *
+{HH
+thisII
+.II
+PageII
+=II
+pageII
+;II
+thisNN
+.NN
+PageNN
+.NN
+LoadedNN
++=NN
+(NN !
+senderNN! '
+,NN' (
+eNN) *
+)NN* +
+=>NN, .
+{OO
+ifTT
+(TT
+thisTT
+.TT
+PageTT
+.TT
+ActualHeightTT *
+==TT+ -
+WindowTT. 4
+.TT4 5
+CurrentTT5 <
+.TT< =
+BoundsTT= C
+.TTC D
+HeightTTD J
+&&TTK M
+thisUU
+.UU
+PageUU
+.UU
+ActualWidthUU )
+==UU* ,
+WindowUU- 3
+.UU3 4
+CurrentUU4 ;
+.UU; <
+BoundsUU< B
+.UUB C
+WidthUUC H
+)UUH I
+{VV
+WindowXX
+.XX
+CurrentXX "
+.XX" #
+
+CoreWindowXX# -
+.XX- .
+
+DispatcherXX. 8
+.XX8 9#
+AcceleratorKeyActivatedXX9 P
++=XXQ S2
+&CoreDispatcher_AcceleratorKeyActivatedYY >
+;YY> ?
+WindowZZ
+.ZZ
+CurrentZZ "
+.ZZ" #
+
+CoreWindowZZ# -
+.ZZ- .
+PointerPressedZZ. <
++=ZZ= ?
+this[[
+.[[ %
+CoreWindow_PointerPressed[[ 6
+;[[6 7
+}\\
+}^^
+;^^
+thisaa
+.aa
+Pageaa
+.aa
+Unloadedaa
++=aa !
+(aa" #
+senderaa# )
+,aa) *
+eaa+ ,
+)aa, -
+=>aa. 0
+{bb
+Windowff
+.ff
+Currentff
+.ff
+
+CoreWindowff )
+.ff) *
+
+Dispatcherff* 4
+.ff4 5#
+AcceleratorKeyActivatedff5 L
+-=ffM O2
+&CoreDispatcher_AcceleratorKeyActivatedgg :
+;gg: ;
+Windowhh
+.hh
+Currenthh
+.hh
+
+CoreWindowhh )
+.hh) *
+PointerPressedhh* 8
+-=hh9 ;
+thisii
+.ii %
+CoreWindow_PointerPressedii 2
+;ii2 3
+}kk
+;kk
+}ll
+RelayCommandpp
+_goBackCommandpp #
+;pp# $
+RelayCommandqq
+_goForwardCommandqq &
+;qq& '
+public{{
+RelayCommand{{
+
GoBackCommand{{ )
+{||
+get}}
+{~~
+if
+(
+_goBackCommand "
+==# %
+null& *
+)* +
+{
+
+_goBackCommand
+ "
+=
+# $
+new
+% (
+RelayCommand
+) 5
+(
+5 6
+(
+
+)
+
+=>
+
+this
+ "
+.
+" #
+GoBack
+# )
+(
+) *
+)
+* +
+,
++ ,
+(
+
+)
+
+=>
+
+this
+ "
+.
+" #
+ CanGoBack
+# ,
+(
+, -
+)
+- .
+)
+. /
+;
+/ 0
+}
+
+return
+
+_goBackCommand
+
%
+;
+
% &
+}
+
+set
+
+{
+
+_goBackCommand
+
+=
+
+value
+! &
+;
+& '
+}
+
+}
+
+public
+
+RelayCommand
+
+GoForwardCommand
+ ,
+{
+
+get
+
+{
+
+if
+
+(
+
+_goForwardCommand
+ %
+==
+& (
+null
+) -
+)
+- .
+{
+
+_goForwardCommand
+ %
+=
+& '
+new
+( +
+RelayCommand
+, 8
+(
+8 9
+(
+
+)
+
+=>
+
+this
+ "
+.
+" #
+ GoForward
+# ,
+(
+, -
+)
+- .
+,
+. /
+(
+
+)
+
+=>
+
+this
+ "
+.
+" #
+CanGoForward
+# /
+(
+/ 0
+)
+0 1
+)
+1 2
+;
+2 3
+}
+
+return
+
+_goForwardCommand
+ (
+;
+( )
+}
+
+}
+
+public
+ŠŠ
+virtual
+ŠŠ
+bool
+ŠŠ
+ CanGoBack
+ŠŠ %
+(
+ŠŠ% &
+)
+ŠŠ& '
+{
+ĒĒ
+return
+ĢĢ
+this
+ĢĢ
+.
+ĢĢ
+Frame
+ĢĢ
+!=
+ĢĢ
+null
+ĢĢ! %
+&&
+ĢĢ& (
+this
+ĢĢ) -
+.
+ĢĢ- .
+Frame
+ĢĢ. 3
+.
+ĢĢ3 4
+ CanGoBack
+ĢĢ4 =
+;
+ĢĢ= >
+}
+ŦŦ
+public
+ĩĩ
+virtual
+ĩĩ
+bool
+ĩĩ
+CanGoForward
+ĩĩ (
+(
+ĩĩ( )
+)
+ĩĩ) *
+{
+ļļ
+return
+ˇˇ
+this
+ˇˇ
+.
+ˇˇ
+Frame
+ˇˇ
+!=
+ˇˇ
+null
+ˇˇ! %
+&&
+ˇˇ& (
+this
+ˇˇ) -
+.
+ˇˇ- .
+Frame
+ˇˇ. 3
+.
+ˇˇ3 4
+CanGoForward
+ˇˇ4 @
+;
+ˇˇ@ A
+}
+¸¸
+public
+žž
+virtual
+žž
+void
+žž
+GoBack
+žž "
+(
+žž" #
+)
+žž# $
+{
+ŋŋ
+if
+ĀĀ
+(
+ĀĀ
+this
+ĀĀ
+.
+ĀĀ
+Frame
+ĀĀ
+!=
+ĀĀ
+null
+ĀĀ "
+&&
+ĀĀ# %
+this
+ĀĀ& *
+.
+ĀĀ* +
+Frame
+ĀĀ+ 0
+.
+ĀĀ0 1
+ CanGoBack
+ĀĀ1 :
+)
+ĀĀ: ;
+this
+ĀĀ< @
+.
+ĀĀ@ A
+Frame
+ĀĀA F
+.
+ĀĀF G
+GoBack
+ĀĀG M
+(
+ĀĀM N
+)
+ĀĀN O
+;
+ĀĀO P
+}
+ÁÁ
+public
+ÆÆ
+virtual
+ÆÆ
+void
+ÆÆ
+ GoForward
+ÆÆ %
+(
+ÆÆ% &
+)
+ÆÆ& '
+{
+ĮĮ
+if
+ČČ
+(
+ČČ
+this
+ČČ
+.
+ČČ
+Frame
+ČČ
+!=
+ČČ
+null
+ČČ "
+&&
+ČČ# %
+this
+ČČ& *
+.
+ČČ* +
+Frame
+ČČ+ 0
+.
+ČČ0 1
+CanGoForward
+ČČ1 =
+)
+ČČ= >
+this
+ČČ? C
+.
+ČČC D
+Frame
+ČČD I
+.
+ČČI J
+ GoForward
+ČČJ S
+(
+ČČS T
+)
+ČČT U
+;
+ČČU V
+}
+ÉÉ
+private
+áá
+void
+áá 4
+&CoreDispatcher_AcceleratorKeyActivated
+áá ;
+(
+áá; <
+CoreDispatcher
+áá< J
+sender
+ááK Q
+,
+ááQ R%
+AcceleratorKeyEventArgs
+ââ #
+e
+ââ$ %
+)
+ââ% &
+{
+ãã
+var
+ää
+
+virtualKey
+ää
+=
+ää
+e
+ää
+.
+ää
+
+VirtualKey
+ää )
+;
+ää) *
+if
+čč
+(
+čč
+(
+čč
+e
+čč
+.
+čč
+ EventType
+čč
+==
+čč )
+CoreAcceleratorKeyEventType
+čč ;
+.
+čč; <
+
SystemKeyDown
+čč< I
+||
+ččJ L
+e
+éé
+.
+éé
+ EventType
+éé
+==
+éé )
+CoreAcceleratorKeyEventType
+éé :
+.
+éé: ;
+KeyDown
+éé; B
+)
+ééB C
+&&
+ééD F
+(
+ęę
+
+virtualKey
+ęę
+==
+ęę
+
+VirtualKey
+ęę )
+.
+ęę) *
+Left
+ęę* .
+||
+ęę/ 1
+
+virtualKey
+ęę2 <
+==
+ęę= ?
+
+VirtualKey
+ęę@ J
+.
+ęęJ K
+Right
+ęęK P
+||
+ęęQ S
+(
+ëë
+int
+ëë
+)
+ëë
+
+virtualKey
+ëë
+==
+ëë "
+$num
+ëë# &
+||
+ëë' )
+(
+ëë* +
+int
+ëë+ .
+)
+ëë. /
+
+virtualKey
+ëë/ 9
+==
+ëë: <
+$num
+ëë= @
+)
+ëë@ A
+)
+ëëA B
+{
+ėė
+var
+íí
+
+coreWindow
+íí
+=
+íí
+Window
+íí! '
+.
+íí' (
+Current
+íí( /
+.
+íí/ 0
+
+CoreWindow
+íí0 :
+;
+íí: ;
+var
+îî
+ downState
+îî
+=
+îî "
+CoreVirtualKeyStates
+îî 4
+.
+îî4 5
+Down
+îî5 9
+;
+îî9 :
+bool
+īī
+menuKey
+īī
+=
+īī
+(
+īī
+
+coreWindow
+īī *
+.
+īī* +
+GetKeyState
+īī+ 6
+(
+īī6 7
+
+VirtualKey
+īī7 A
+.
+īīA B
+Menu
+īīB F
+)
+īīF G
+&
+īīH I
+ downState
+īīJ S
+)
+īīS T
+==
+īīU W
+ downState
+īīX a
+;
+īīa b
+bool
+đđ
+
+controlKey
+đđ
+=
+đđ !
+(
+đđ" #
+
+coreWindow
+đđ# -
+.
+đđ- .
+GetKeyState
+đđ. 9
+(
+đđ9 :
+
+VirtualKey
+đđ: D
+.
+đđD E
+Control
+đđE L
+)
+đđL M
+&
+đđN O
+ downState
+đđP Y
+)
+đđY Z
+==
+đđ[ ]
+ downState
+đđ^ g
+;
+đđg h
+bool
+ņņ
+shiftKey
+ņņ
+=
+ņņ
+(
+ņņ !
+
+coreWindow
+ņņ! +
+.
+ņņ+ ,
+GetKeyState
+ņņ, 7
+(
+ņņ7 8
+
+VirtualKey
+ņņ8 B
+.
+ņņB C
+Shift
+ņņC H
+)
+ņņH I
+&
+ņņJ K
+ downState
+ņņL U
+)
+ņņU V
+==
+ņņW Y
+ downState
+ņņZ c
+;
+ņņc d
+bool
+ōō
+noModifiers
+ōō
+=
+ōō! "
+!
+ōō# $
+menuKey
+ōō$ +
+&&
+ōō, .
+!
+ōō/ 0
+
+controlKey
+ōō0 :
+&&
+ōō; =
+!
+ōō> ?
+shiftKey
+ōō? G
+;
+ōōG H
+bool
+ķķ
+onlyAlt
+ķķ
+=
+ķķ
+menuKey
+ķķ &
+&&
+ķķ' )
+!
+ķķ* +
+
+controlKey
+ķķ+ 5
+&&
+ķķ6 8
+!
+ķķ9 :
+shiftKey
+ķķ: B
+;
+ķķB C
+if
+õõ
+(
+õõ
+(
+õõ
+(
+õõ
+int
+õõ
+)
+õõ
+
+virtualKey
+õõ $
+==
+õõ% '
+$num
+õõ( +
+&&
+õõ, .
+noModifiers
+õõ/ :
+)
+õõ: ;
+||
+õõ< >
+(
+öö
+
+virtualKey
+öö
+==
+öö "
+
+VirtualKey
+öö# -
+.
+öö- .
+Left
+öö. 2
+&&
+öö3 5
+onlyAlt
+öö6 =
+)
+öö= >
+)
+öö> ?
+{
+÷÷
+e
+ųų
+.
+ųų
+Handled
+ųų
+=
+ųų
+true
+ųų $
+;
+ųų$ %
+this
+úú
+.
+úú
+
GoBackCommand
+úú &
+.
+úú& '
+Execute
+úú' .
+(
+úú. /
+null
+úú/ 3
+)
+úú3 4
+;
+úú4 5
+}
+ûû
+else
+üü
+if
+üü
+(
+üü
+(
+üü
+(
+üü
+int
+üü
+)
+üü
+
+virtualKey
+üü )
+==
+üü* ,
+$num
+üü- 0
+&&
+üü1 3
+noModifiers
+üü4 ?
+)
+üü? @
+||
+üüA C
+(
+ũũ
+
+virtualKey
+ũũ
+==
+ũũ "
+
+VirtualKey
+ũũ# -
+.
+ũũ- .
+Right
+ũũ. 3
+&&
+ũũ4 6
+onlyAlt
+ũũ7 >
+)
+ũũ> ?
+)
+ũũ? @
+{
+ūū
+e
+
+.
+
+Handled
+
+=
+
+true
+ $
+;
+$ %
+this
+
+.
+
+GoForwardCommand
+ )
+.
+) *
+Execute
+* 1
+(
+1 2
+null
+2 6
+)
+6 7
+;
+7 8
+}
+
+}
+
+}
+
+private
+
+void
+ '
+CoreWindow_PointerPressed
+ .
+(
+. /
+
+CoreWindow
+/ 9
+sender
+: @
+,
+@ A
+PointerEventArgs
+
+e
+
+)
+
+{
+
+var
+
+
+properties
+
+=
+
+e
+
+.
+
+CurrentPoint
+ +
+.
++ ,
+
+Properties
+, 6
+;
+6 7
+if
+
+(
+
+
+properties
+
+.
+ !
+IsLeftButtonPressed
+ .
+||
+/ 1
+
+properties
+2 <
+.
+< ="
+IsRightButtonPressed
+= Q
+||
+R T
+
+properties
+
+.
+ #
+IsMiddleButtonPressed
+ 0
+)
+0 1
+return
+2 8
+;
+8 9
+bool
+
+backPressed
+
+=
+
+
+properties
+ )
+.
+) *
+IsXButton1Pressed
+* ;
+;
+; <
+bool
+
+forwardPressed
+
+=
+ !
+
+properties
+" ,
+.
+, -
+IsXButton2Pressed
+- >
+;
+> ?
+if
+
+(
+
+backPressed
+
+^
+
+forwardPressed
+ ,
+)
+, -
+{
+
+e
+
+.
+
+Handled
+
+=
+
+true
+
+;
+ !
+if
+
+(
+
+backPressed
+
+)
+
+this
+! %
+.
+% &
+
GoBackCommand
+& 3
+.
+3 4
+Execute
+4 ;
+(
+; <
+null
+< @
+)
+@ A
+;
+A B
+if
+
+(
+
+forwardPressed
+ "
+)
+" #
+this
+$ (
+.
+( )
+GoForwardCommand
+) 9
+.
+9 :
+Execute
+: A
+(
+A B
+null
+B F
+)
+F G
+;
+G H
+}
+
+}
+
+private
+ĻĻ
+String
+ĻĻ
+_pageKey
+ĻĻ
+;
+ĻĻ
+public
+
+event
+ #
+LoadStateEventHandler
+ *
+ LoadState
++ 4
+;
+4 5
+public
+´´
+event
+´´ #
+SaveStateEventHandler
+´´ *
+ SaveState
+´´+ 4
+;
+´´4 5
+public
+ŊŊ
+void
+ŊŊ
+
OnNavigatedTo
+ŊŊ !
+(
+ŊŊ! "!
+NavigationEventArgs
+ŊŊ" 5
+e
+ŊŊ6 7
+)
+ŊŊ7 8
+{
+žž
+var
+ŋŋ
+
+frameState
+ŋŋ
+=
+ŋŋ
+SuspensionManager
+ŋŋ .
+.
+ŋŋ. /"
+SessionStateForFrame
+ŋŋ/ C
+(
+ŋŋC D
+this
+ŋŋD H
+.
+ŋŋH I
+Frame
+ŋŋI N
+)
+ŋŋN O
+;
+ŋŋO P
+this
+ĀĀ
+.
+ĀĀ
+_pageKey
+ĀĀ
+=
+ĀĀ
+$str
+ĀĀ #
++
+ĀĀ$ %
+this
+ĀĀ& *
+.
+ĀĀ* +
+Frame
+ĀĀ+ 0
+.
+ĀĀ0 1
+BackStackDepth
+ĀĀ1 ?
+;
+ĀĀ? @
+if
+ÂÂ
+(
+ÂÂ
+e
+ÂÂ
+.
+ÂÂ
+NavigationMode
+ÂÂ
+==
+ÂÂ! #
+NavigationMode
+ÂÂ$ 2
+.
+ÂÂ2 3
+New
+ÂÂ3 6
+)
+ÂÂ6 7
+{
+ÃÃ
+var
+ÆÆ
+nextPageKey
+ÆÆ
+=
+ÆÆ !
+this
+ÆÆ" &
+.
+ÆÆ& '
+_pageKey
+ÆÆ' /
+;
+ÆÆ/ 0
+int
+ĮĮ
+
nextPageIndex
+ĮĮ !
+=
+ĮĮ" #
+this
+ĮĮ$ (
+.
+ĮĮ( )
+Frame
+ĮĮ) .
+.
+ĮĮ. /
+BackStackDepth
+ĮĮ/ =
+;
+ĮĮ= >
+while
+ČČ
+(
+ČČ
+
+frameState
+ČČ !
+.
+ČČ! "
+Remove
+ČČ" (
+(
+ČČ( )
+nextPageKey
+ČČ) 4
+)
+ČČ4 5
+)
+ČČ5 6
+{
+ÉÉ
+
nextPageIndex
+ĘĘ !
+++
+ĘĘ! #
+;
+ĘĘ# $
+nextPageKey
+ËË
+=
+ËË !
+$str
+ËË" )
++
+ËË* +
+
nextPageIndex
+ËË, 9
+;
+ËË9 :
+}
+ĖĖ
+if
+ĪĪ
+(
+ĪĪ
+this
+ĪĪ
+.
+ĪĪ
+ LoadState
+ĪĪ "
+!=
+ĪĪ# %
+null
+ĪĪ& *
+)
+ĪĪ* +
+{
+ĐĐ
+this
+ŅŅ
+.
+ŅŅ
+ LoadState
+ŅŅ "
+(
+ŅŅ" #
+this
+ŅŅ# '
+,
+ŅŅ' (
+new
+ŅŅ) ,
+LoadStateEventArgs
+ŅŅ- ?
+(
+ŅŅ? @
+e
+ŅŅ@ A
+.
+ŅŅA B
+ Parameter
+ŅŅB K
+,
+ŅŅK L
+null
+ŅŅM Q
+)
+ŅŅQ R
+)
+ŅŅR S
+;
+ŅŅS T
+}
+ŌŌ
+}
+ĶĶ
+else
+ÔÔ
+{
+ÕÕ
+if
+ŲŲ
+(
+ŲŲ
+this
+ŲŲ
+.
+ŲŲ
+ LoadState
+ŲŲ "
+!=
+ŲŲ# %
+null
+ŲŲ& *
+)
+ŲŲ* +
+{
+ÚÚ
+this
+ÛÛ
+.
+ÛÛ
+ LoadState
+ÛÛ "
+(
+ÛÛ" #
+this
+ÛÛ# '
+,
+ÛÛ' (
+new
+ÛÛ) ,
+LoadStateEventArgs
+ÛÛ- ?
+(
+ÛÛ? @
+e
+ÛÛ@ A
+.
+ÛÛA B
+ Parameter
+ÛÛB K
+,
+ÛÛK L
+(
+ÛÛM N
+
+Dictionary
+ÛÛN X
+<
+ÛÛX Y
+String
+ÛÛY _
+,
+ÛÛ_ `
+Object
+ÛÛa g
+>
+ÛÛg h
+)
+ÛÛh i
+
+frameState
+ÛÛi s
+[
+ÛÛs t
+this
+ÛÛt x
+.
+ÛÛx y
+_pageKeyÛÛy
+]ÛÛ
+)ÛÛ
+)ÛÛ
+;ÛÛ
+}
+ÜÜ
+}
+ŨŨ
+}
+ŪŪ
+public
+įį
+void
+įį
+OnNavigatedFrom
+įį #
+(
+įį# $!
+NavigationEventArgs
+įį$ 7
+e
+įį8 9
+)
+įį9 :
+{
+čč
+var
+éé
+
+frameState
+éé
+=
+éé
+SuspensionManager
+éé .
+.
+éé. /"
+SessionStateForFrame
+éé/ C
+(
+ééC D
+this
+ééD H
+.
+ééH I
+Frame
+ééI N
+)
+ééN O
+;
+ééO P
+var
+ęę
+ pageState
+ęę
+=
+ęę
+new
+ęę
+
+Dictionary
+ęę *
+<
+ęę* +
+String
+ęę+ 1
+,
+ęę1 2
+Object
+ęę3 9
+>
+ęę9 :
+(
+ęę: ;
+)
+ęę; <
+;
+ęę< =
+if
+ëë
+(
+ëë
+this
+ëë
+.
+ëë
+ SaveState
+ëë
+!=
+ëë !
+null
+ëë" &
+)
+ëë& '
+{
+ėė
+this
+íí
+.
+íí
+ SaveState
+íí
+(
+íí
+this
+íí #
+,
+íí# $
+new
+íí% (
+SaveStateEventArgs
+íí) ;
+(
+íí; <
+ pageState
+íí< E
+)
+ííE F
+)
+ííF G
+;
+ííG H
+}
+îî
+
+frameState
+īī
+[
+īī
+_pageKey
+īī
+]
+īī
+=
+īī! "
+ pageState
+īī# ,
+;
+īī, -
+}
+đđ
+}
+ķķ
+public
+øø
+
+delegate
+øø
+void
+øø #
+LoadStateEventHandler
+øø .
+(
+øø. /
+object
+øø/ 5
+sender
+øø6 <
+,
+øø< =
+LoadStateEventArgs
+øø> P
+e
+øøQ R
+)
+øøR S
+;
+øøS T
+public
+üü
+
+delegate
+üü
+void
+üü #
+SaveStateEventHandler
+üü .
+(
+üü. /
+object
+üü/ 5
+sender
+üü6 <
+,
+üü< =
+SaveStateEventArgs
+üü> P
+e
+üüQ R
+)
+üüR S
+;
+üüS T
+public
+
+
+class
+
+LoadStateEventArgs
+ #
+:
+$ %
+ EventArgs
+& /
+{
+
+public
+
+Object
+ !
+NavigationParameter
+ )
+{
+* +
+get
+, /
+;
+/ 0
+private
+1 8
+set
+9 <
+;
+< =
+}
+> ?
+public
+
+
+Dictionary
+
+<
+
+string
+
+,
+ !
+Object
+" (
+>
+( )
+ PageState
+* 3
+{
+4 5
+get
+6 9
+;
+9 :
+private
+; B
+set
+C F
+;
+F G
+}
+H I
+public
+
+LoadStateEventArgs
+ !
+(
+! "
+Object
+" (!
+navigationParameter
+) <
+,
+< =
+
+Dictionary
+> H
+<
+H I
+string
+I O
+,
+O P
+Object
+Q W
+>
+W X
+ pageState
+Y b
+)
+b c
+:
+
+base
+
+(
+
+)
+
+{
+
+this
+
+.
+ !
+NavigationParameter
+ $
+=
+% &!
+navigationParameter
+' :
+;
+: ;
+this
+
+.
+
+ PageState
+
+=
+
+ pageState
+ &
+;
+& '
+}
+
+}
+
+public
+ŖŖ
+
+class
+ŖŖ
+SaveStateEventArgs
+ŖŖ #
+:
+ŖŖ$ %
+ EventArgs
+ŖŖ& /
+{
+¤¤
+public
+¨¨
+
+Dictionary
+¨¨
+<
+¨¨
+string
+¨¨
+,
+¨¨ !
+Object
+¨¨" (
+>
+¨¨( )
+ PageState
+¨¨* 3
+{
+¨¨4 5
+get
+¨¨6 9
+;
+¨¨9 :
+private
+¨¨; B
+set
+¨¨C F
+;
+¨¨F G
+}
+¨¨H I
+public
+ŽŽ
+SaveStateEventArgs
+ŽŽ !
+(
+ŽŽ! "
+
+Dictionary
+ŽŽ" ,
+<
+ŽŽ, -
+string
+ŽŽ- 3
+,
+ŽŽ3 4
+Object
+ŽŽ5 ;
+>
+ŽŽ; <
+ pageState
+ŽŽ= F
+)
+ŽŽF G
+:
+¯¯
+base
+¯¯
+(
+¯¯
+)
+¯¯
+{
+°°
+this
+ąą
+.
+ąą
+ PageState
+ąą
+=
+ąą
+ pageState
+ąą &
+;
+ąą& '
+}
+˛˛
+}
+ŗŗ
+}´´ ą
+PC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NotifyPropertyChangedBase.cs
+ namespace
+
ModernKeePass
+
+.
+Common
+{
+public
+
+class %
+NotifyPropertyChangedBase *
+:+ ,"
+INotifyPropertyChanged- C
+{
+public
+event '
+PropertyChangedEventHandler 0
+PropertyChanged 1 @
+; @ A
+ protected
+void
+OnPropertyChanged (
+(( )
+string) /
+propertyName0 <
+== >
+$str? A
+)A B
+{
+PropertyChanged
+?
+.
+Invoke
#
+(
# $
+this
$ (
+,
( )
+new
* -$
+PropertyChangedEventArgs
. F
+(
F G
+propertyName
G S
+)
S T
+)
T U
+;
U V
+}
+ protected
+bool
+SetProperty "
+<" #
+T# $
+>$ %
+(% &
+ref& )
+T* +
+property, 4
+,4 5
+T6 7
+value8 =
+,= >
+[? @
+CallerMemberName@ P
+]P Q
+stringR X
+propertyNameY e
+=f g
+$strh j
+)j k
+{
+if
+(
+EqualityComparer
+< !
+T! "
+>" #
+.# $
+Default$ +
+.+ ,
+Equals, 2
+(2 3
+property3 ;
+,; <
+value= B
+)B C
+)C D
+{
+return
+false
+;
+}
+property
+=
+value
+;
+OnPropertyChanged
+(
+propertyName *
+)* +
+;+ ,
+return
+true
+;
+}
+}
+} š`
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ObservableDictionary.cs
+ namespace
+
ModernKeePass
+
+.
+Common
+{
+public
+
+class
+ObservableDictionary %
+:& '
+IObservableMap( 6
+<6 7
+string7 =
+,= >
+object? E
+>E F
+{
+private
+class 0
+$ObservableDictionaryChangedEventArgs :
+:; <
+IMapChangedEventArgs= Q
+<Q R
+stringR X
+>X Y
+{
+public 0
+$ObservableDictionaryChangedEventArgs 7
+(7 8
+CollectionChange8 H
+changeI O
+,O P
+stringQ W
+keyX [
+)[ \
+{
+this
+.
+CollectionChange %
+=& '
+change( .
+;. /
+this
+.
+Key
+=
+key
+;
+}
+public
+CollectionChange #
+CollectionChange$ 4
+{5 6
+get7 :
+;: ;
+private< C
+setD G
+;G H
+}I J
+public
+string
+Key
+{
+get #
+;# $
+private% ,
+set- 0
+;0 1
+}2 3
+}
+private
+
+Dictionary
+<
+string !
+,! "
+object# )
+>) *
+_dictionary+ 6
+=7 8
+new9 <
+
+Dictionary= G
+<G H
+stringH N
+,N O
+objectP V
+>V W
+(W X
+)X Y
+;Y Z
+public
+event "
+MapChangedEventHandler +
+<+ ,
+string, 2
+,2 3
+object4 :
+>: ;
+
+MapChanged< F
+;F G
+private
+void
+InvokeMapChanged %
+(% &
+CollectionChange& 6
+change7 =
+,= >
+string? E
+keyF I
+)I J
+{
+var
+eventHandler
+=
+
+MapChanged )
+;) *
+if
+(
+eventHandler
+!=
+null $
+) $ %
+{!!
+eventHandler""
+(""
+this"" !
+,""! "
+new""# &0
+$ObservableDictionaryChangedEventArgs""' K
+(""K L
+change""L R
+,""R S
+key""T W
+)""W X
+)""X Y
+;""Y Z
+}##
+}$$
+public&&
+void&&
+Add&&
+(&&
+string&&
+key&& "
+,&&" #
+object&&$ *
+value&&+ 0
+)&&0 1
+{''
+this((
+.((
+_dictionary((
+.((
+Add((
+((( !
+key((! $
+,(($ %
+value((& +
+)((+ ,
+;((, -
+this))
+.))
+InvokeMapChanged)) !
+())! "
+CollectionChange))" 2
+.))2 3
+ItemInserted))3 ?
+,))? @
+key))A D
+)))D E
+;))E F
+}**
+public,,
+void,,
+Add,,
+(,,
+KeyValuePair,, $
+<,,$ %
+string,,% +
+,,,+ ,
+object,,- 3
+>,,3 4
+item,,5 9
+),,9 :
+{--
+this..
+...
+Add..
+(..
+item..
+...
+Key..
+,..
+item.. #
+...# $
+Value..$ )
+)..) *
+;..* +
+}//
+public11
+void11
+AddRange11
+(11
+IEnumerable11 (
+<11( )
+KeyValuePair11) 5
+<115 6
+string116 <
+,11< =
+object11> D
+>11D E
+>11E F
+values11G M
+)11M N
+{22
+foreach33
+(33
+var33
+value33
+in33 !
+values33" (
+)33( )
+{44
+Add55
+(55
+value55
+)55
+;55
+}66
+}77
+public99
+bool99
+Remove99
+(99
+string99 !
+key99" %
+)99% &
+{::
+if;;
+(;;
+this;;
+.;;
+_dictionary;;
+.;; !
+Remove;;! '
+(;;' (
+key;;( +
+);;+ ,
+);;, -
+{<<
+this==
+.==
+InvokeMapChanged== %
+(==% &
+CollectionChange==& 6
+.==6 7
+ItemRemoved==7 B
+,==B C
+key==D G
+)==G H
+;==H I
+return>>
+true>>
+;>>
+}??
+return@@
+false@@
+;@@
+}AA
+publicCC
+boolCC
+RemoveCC
+(CC
+KeyValuePairCC '
+<CC' (
+stringCC( .
+,CC. /
+objectCC0 6
+>CC6 7
+itemCC8 <
+)CC< =
+{DD
+objectEE
+currentValueEE
+;EE
+ifFF
+(FF
+thisFF
+.FF
+_dictionaryFF
+.FF !
+TryGetValueFF! ,
+(FF, -
+itemFF- 1
+.FF1 2
+KeyFF2 5
+,FF5 6
+outFF7 :
+currentValueFF; G
+)FFG H
+&&FFI K
+ObjectGG
+.GG
+EqualsGG
+(GG
+itemGG "
+.GG" #
+ValueGG# (
+,GG( )
+currentValueGG* 6
+)GG6 7
+&&GG8 :
+thisGG; ?
+.GG? @
+_dictionaryGG@ K
+.GGK L
+RemoveGGL R
+(GGR S
+itemGGS W
+.GGW X
+KeyGGX [
+)GG[ \
+)GG\ ]
+{HH
+thisII
+.II
+InvokeMapChangedII %
+(II% &
+CollectionChangeII& 6
+.II6 7
+ItemRemovedII7 B
+,IIB C
+itemIID H
+.IIH I
+KeyIII L
+)IIL M
+;IIM N
+returnJJ
+trueJJ
+;JJ
+}KK
+returnLL
+falseLL
+;LL
+}MM
+publicOO
+objectOO
+thisOO
+[OO
+stringOO !
+keyOO" %
+]OO% &
+{PP
+getQQ
+{RR
+returnSS
+thisSS
+.SS
+_dictionarySS '
+[SS' (
+keySS( +
+]SS+ ,
+;SS, -
+}TT
+setUU
+{VV
+thisWW
+.WW
+_dictionaryWW
+[WW !
+keyWW! $
+]WW$ %
+=WW& '
+valueWW( -
+;WW- .
+thisXX
+.XX
+InvokeMapChangedXX %
+(XX% &
+CollectionChangeXX& 6
+.XX6 7
+ItemChangedXX7 B
+,XXB C
+keyXXD G
+)XXG H
+;XXH I
+}YY
+}ZZ
+public\\
+void\\
+Clear\\
+(\\
+)\\
+{]]
+var^^
+ priorKeys^^
+=^^
+this^^
+.^^ !
+_dictionary^^! ,
+.^^, -
+Keys^^- 1
+.^^1 2
+ToArray^^2 9
+(^^9 :
+)^^: ;
+;^^; <
+this__
+.__
+_dictionary__
+.__
+Clear__ "
+(__" #
+)__# $
+;__$ %
+foreach``
+(``
+var``
+key``
+in``
+ priorKeys`` )
+)``) *
+{aa
+thisbb
+.bb
+InvokeMapChangedbb %
+(bb% &
+CollectionChangebb& 6
+.bb6 7
+ItemRemovedbb7 B
+,bbB C
+keybbD G
+)bbG H
+;bbH I
+}cc
+}dd
+publicff
+ICollectionff
+<ff
+stringff !
+>ff! "
+Keysff# '
+{gg
+gethh
+{hh
+returnhh
+thishh
+.hh
+_dictionaryhh )
+.hh) *
+Keyshh* .
+;hh. /
+}hh0 1
+}ii
+publickk
+boolkk
+ContainsKeykk
+(kk
+stringkk &
+keykk' *
+)kk* +
+{ll
+returnmm
+thismm
+.mm
+_dictionarymm #
+.mm# $
+ContainsKeymm$ /
+(mm/ 0
+keymm0 3
+)mm3 4
+;mm4 5
+}nn
+publicpp
+boolpp
+TryGetValuepp
+(pp
+stringpp &
+keypp' *
+,pp* +
+outpp, /
+objectpp0 6
+valuepp7 <
+)pp< =
+{qq
+returnrr
+thisrr
+.rr
+_dictionaryrr #
+.rr# $
+TryGetValuerr$ /
+(rr/ 0
+keyrr0 3
+,rr3 4
+outrr5 8
+valuerr9 >
+)rr> ?
+;rr? @
+}ss
+publicuu
+ICollectionuu
+<uu
+objectuu !
+>uu! "
+Valuesuu# )
+{vv
+getww
+{ww
+returnww
+thisww
+.ww
+_dictionaryww )
+.ww) *
+Valuesww* 0
+;ww0 1
+}ww2 3
+}xx
+publiczz
+boolzz
+Containszz
+(zz
+KeyValuePairzz )
+<zz) *
+stringzz* 0
+,zz0 1
+objectzz2 8
+>zz8 9
+itemzz: >
+)zz> ?
+{{{
+return||
+this||
+.||
+_dictionary|| #
+.||# $
+Contains||$ ,
+(||, -
+item||- 1
+)||1 2
+;||2 3
+}}}
+public
+int
+Count
+{
+
+get
+
+{
+
+return
+
+this
+
+.
+
+_dictionary
+ )
+.
+) *
+Count
+* /
+;
+/ 0
+}
+1 2
+}
+
+public
+
+bool
+
+
+IsReadOnly
+
+{
+
+get
+
+{
+
+return
+
+false
+
+;
+
+}
+ !
+}
+
+public
+
+IEnumerator
+
+<
+
+KeyValuePair
+ '
+<
+' (
+string
+( .
+,
+. /
+object
+0 6
+>
+6 7
+>
+7 8
+
GetEnumerator
+9 F
+(
+F G
+)
+G H
+{
+
+return
+
+this
+
+.
+
+_dictionary
+ #
+.
+# $
+
GetEnumerator
+$ 1
+(
+1 2
+)
+2 3
+;
+3 4
+}
+
+System
+
+.
+
+Collections
+
+.
+
+IEnumerator
+ &
+System
+' -
+.
+- .
+Collections
+. 9
+.
+9 :
+IEnumerable
+: E
+.
+E F
+
GetEnumerator
+F S
+(
+S T
+)
+T U
+{
+
+return
+
+this
+
+.
+
+_dictionary
+ #
+.
+# $
+
GetEnumerator
+$ 1
+(
+1 2
+)
+2 3
+;
+3 4
+}
+
+public
+
+void
+
+CopyTo
+
+(
+
+KeyValuePair
+ '
+<
+' (
+string
+( .
+,
+. /
+object
+0 6
+>
+6 7
+[
+7 8
+]
+8 9
+array
+: ?
+,
+? @
+int
+A D
+
+arrayIndex
+E O
+)
+O P
+{
+
+int
+
+ arraySize
+
+=
+
+array
+ !
+.
+! "
+Length
+" (
+;
+( )
+foreach
+
+(
+
+var
+
+pair
+
+in
+
+this
+! %
+.
+% &
+_dictionary
+& 1
+)
+1 2
+{
+
+if
+
+(
+
+
+arrayIndex
+
+>=
+ !
+ arraySize
+" +
+)
++ ,
+break
+- 2
+;
+2 3
+array
+
+[
+
+
+arrayIndex
+
+++
+ "
+]
+" #
+=
+$ %
+pair
+& *
+;
+* +
+}
+
+}
+
+}
+
+} ü
+CC:\Sources\Other\ModernKeePass\ModernKeePass\Common\RelayCommand.cs
+ namespace
+
ModernKeePass
+
+.
+Common
+{
+public
+
+class
+RelayCommand
+:
+ICommand (
+{
+private
+readonly
+Action
+_execute (
+;( )
+private
+readonly
+Func
+<
+bool "
+>" #
+_canExecute$ /
+;/ 0
+public
+event
+EventHandler !
+CanExecuteChanged" 3
+;3 4
+public
+RelayCommand
+(
+Action "
+execute# *
+)* +
+:
+this
+(
+execute
+,
+null
+) !
+{!!
+}""
+public))
+RelayCommand))
+())
+Action)) "
+execute))# *
+,))* +
+Func)), 0
+<))0 1
+bool))1 5
+>))5 6
+
+canExecute))7 A
+)))A B
+{**
+if++
+(++
+execute++
+==++
+null++
+)++
+throw,,
+new,, !
+ArgumentNullException,, /
+(,,/ 0
+$str,,0 9
+),,9 :
+;,,: ;
+_execute--
+=--
+execute--
+;--
+_canExecute..
+=..
+
+canExecute.. $
+;..$ %
+}//
+public88
+bool88
+
+CanExecute88
+(88
+object88 %
+ parameter88& /
+)88/ 0
+{99
+return::
+_canExecute::
+==:: !
+null::" &
+?::' (
+true::) -
+:::. /
+_canExecute::0 ;
+(::; <
+)::< =
+;::= >
+};;
+publicCC
+voidCC
+ExecuteCC
+(CC
+objectCC "
+ parameterCC# ,
+)CC, -
+{DD
+_executeEE
+(EE
+)EE
+;EE
+}FF
+publicMM
+voidMM "
+RaiseCanExecuteChangedMM *
+(MM* +
+)MM+ ,
+{NN
+varOO
+handlerOO
+=OO
+CanExecuteChangedOO +
+;OO+ ,
+ifPP
+(PP
+handlerPP
+!=PP
+nullPP
+)PP
+{QQ
+handlerRR
+(RR
+thisRR
+,RR
+ EventArgsRR '
+.RR' (
+EmptyRR( -
+)RR- .
+;RR. /
+}SS
+}TT
+}UU
+}VV Â
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Common\SuspensionManager.cs
+ namespace
+
ModernKeePass
+
+.
+Common
+{
+internal
+sealed
+class
+SuspensionManager +
+{
+private
+static
+
+Dictionary !
+<! "
+string" (
+,( )
+object* 0
+>0 1
+
_sessionState2 ?
+=@ A
+newB E
+
+DictionaryF P
+<P Q
+stringQ W
+,W X
+objectY _
+>_ `
+(` a
+)a b
+;b c
+private
+static
+List
+<
+Type
+> !
+_knownTypes" -
+=. /
+new0 3
+List4 8
+<8 9
+Type9 =
+>= >
+(> ?
+)? @
+;@ A
+private
+const
+string
+sessionStateFilename 1
+=2 3
+$str4 G
+;G H
+public$$
+static$$
+
+Dictionary$$
+<$$ !
+string$$! '
+,$$' (
+object$$) /
+>$$/ 0
+SessionState$$1 =
+{%%
+get&&
+{&&
+return&&
+
_sessionState&& &
+;&&& '
+}&&( )
+}''
+public..
+static..
+List..
+<..
+Type..
+>..
+
+KnownTypes..! +
+{//
+get00
+{00
+return00
+_knownTypes00 $
+;00$ %
+}00& '
+}11
+public::
+static::
+async::
+Task::
+ SaveAsync::! *
+(::* +
+)::+ ,
+{;;
+try<<
+{==
+foreach??
+(??
+var??
+weakFrameReference?? /
+in??0 2
+_registeredFrames??3 D
+)??D E
+{@@
+FrameAA
+frameAA
+;AA
+ifBB
+(BB
+weakFrameReferenceBB *
+.BB* +
+TryGetTargetBB+ 7
+(BB7 8
+outBB8 ;
+frameBB< A
+)BBA B
+)BBB C
+{CC $
+SaveFrameNavigationStateDD 0
+(DD0 1
+frameDD1 6
+)DD6 7
+;DD7 8
+}EE
+}FF
+MemoryStreamJJ
+sessionDataJJ (
+=JJ) *
+newJJ+ .
+MemoryStreamJJ/ ;
+(JJ; <
+)JJ< =
+;JJ= >"
+DataContractSerializerKK &
+
+serializerKK' 1
+=KK2 3
+newKK4 7"
+DataContractSerializerKK8 N
+(KKN O
+typeofKKO U
+(KKU V
+
+DictionaryKKV `
+<KK` a
+stringKKa g
+,KKg h
+objectKKi o
+>KKo p
+)KKp q
+,KKq r
+_knownTypesKKs ~
+)KK~
+; KK
+
+serializerLL
+.LL
+WriteObjectLL &
+(LL& '
+sessionDataLL' 2
+,LL2 3
+
_sessionStateLL4 A
+)LLA B
+;LLB C
+StorageFileOO
+fileOO
+=OO! "
+awaitOO# (
+ApplicationDataOO) 8
+.OO8 9
+CurrentOO9 @
+.OO@ A
+LocalFolderOOA L
+.OOL M
+CreateFileAsyncOOM \
+(OO\ ]
+sessionStateFilenameOO] q
+,OOq r$
+CreationCollisionOption OOs
+.
+OO
+ReplaceExisting
+OO
+)
+OO
+;
+OO
+usingPP
+(PP
+StreamPP
+
+fileStreamPP (
+=PP) *
+awaitPP+ 0
+filePP1 5
+.PP5 6#
+OpenStreamForWriteAsyncPP6 M
+(PPM N
+)PPN O
+)PPO P
+{QQ
+sessionDataRR
+.RR
+SeekRR $
+(RR$ %
+$numRR% &
+,RR& '
+
+SeekOriginRR( 2
+.RR2 3
+BeginRR3 8
+)RR8 9
+;RR9 :
+awaitSS
+sessionDataSS %
+.SS% &
+CopyToAsyncSS& 1
+(SS1 2
+
+fileStreamSS2 <
+)SS< =
+;SS= >
+}TT
+}UU
+catchVV
+(VV
+ ExceptionVV
+eVV
+)VV
+{WW
+throwXX
+newXX &
+SuspensionManagerExceptionXX 4
+(XX4 5
+eXX5 6
+)XX6 7
+;XX7 8
+}YY
+}ZZ
+publicgg
+staticgg
+asyncgg
+Taskgg
+RestoreAsyncgg! -
+(gg- .
+Stringgg. 4
+sessionBaseKeygg5 C
+=ggD E
+nullggF J
+)ggJ K
+{hh
+
_sessionStateii
+=ii
+newii
+
+Dictionaryii *
+<ii* +
+Stringii+ 1
+,ii1 2
+Objectii3 9
+>ii9 :
+(ii: ;
+)ii; <
+;ii< =
+trykk
+{ll
+StorageFilenn
+filenn
+=nn! "
+awaitnn# (
+ApplicationDatann) 8
+.nn8 9
+Currentnn9 @
+.nn@ A
+LocalFoldernnA L
+.nnL M
+GetFileAsyncnnM Y
+(nnY Z
+sessionStateFilenamennZ n
+)nnn o
+;nno p
+usingoo
+(oo
+IInputStreamoo #
+inStreamoo$ ,
+=oo- .
+awaitoo/ 4
+fileoo5 9
+.oo9 :#
+OpenSequentialReadAsyncoo: Q
+(ooQ R
+)ooR S
+)ooS T
+{pp "
+DataContractSerializerrr *
+
+serializerrr+ 5
+=rr6 7
+newrr8 ;"
+DataContractSerializerrr< R
+(rrR S
+typeofrrS Y
+(rrY Z
+
+DictionaryrrZ d
+<rrd e
+stringrre k
+,rrk l
+objectrrm s
+>rrs t
+)rrt u
+,rru v
+_knownTypes rrw
+)
+rr
+;
+rr
+
_sessionStatess !
+=ss" #
+(ss$ %
+
+Dictionaryss% /
+<ss/ 0
+stringss0 6
+,ss6 7
+objectss8 >
+>ss> ?
+)ss? @
+
+serializerss@ J
+.ssJ K
+
+ReadObjectssK U
+(ssU V
+inStreamssV ^
+.ss^ _
+AsStreamForReadss_ n
+(ssn o
+)sso p
+)ssp q
+;ssq r
+}tt
+foreachww
+(ww
+varww
+weakFrameReferenceww /
+inww0 2
+_registeredFramesww3 D
+)wwD E
+{xx
+Frameyy
+frameyy
+;yy
+ifzz
+(zz
+weakFrameReferencezz *
+.zz* +
+TryGetTargetzz+ 7
+(zz7 8
+outzz8 ;
+framezz< A
+)zzA B
+&&zzC E
+(zzF G
+stringzzG M
+)zzM N
+framezzN S
+.zzS T
+GetValuezzT \
+(zz\ ]'
+FrameSessionBaseKeyPropertyzz] x
+)zzx y
+==zzz |
+sessionBaseKey zz}
+)
+zz
+{{{
+frame||
+.||
+
+ClearValue|| (
+(||( )%
+FrameSessionStateProperty||) B
+)||B C
+;||C D'
+RestoreFrameNavigationState}} 3
+(}}3 4
+frame}}4 9
+)}}9 :
+;}}: ;
+}~~
+}
+}
+
+catch
+
+(
+
+ Exception
+
+e
+
+)
+
+{
+
+throw
+
+new
+ (
+SuspensionManagerException
+ 4
+(
+4 5
+e
+5 6
+)
+6 7
+;
+7 8
+}
+
+}
+
+private
+
+static
+
+DependencyProperty
+ )*
+FrameSessionStateKeyProperty
+* F
+=
+G H
+DependencyProperty
+
+.
+
+RegisterAttached
+ /
+(
+/ 0
+$str
+0 G
+,
+G H
+typeof
+I O
+(
+O P
+String
+P V
+)
+V W
+,
+W X
+typeof
+Y _
+(
+_ `
+SuspensionManager
+` q
+)
+q r
+,
+r s
+null
+t x
+)
+x y
+;
+y z
+private
+
+static
+
+DependencyProperty
+ ))
+FrameSessionBaseKeyProperty
+* E
+=
+F G
+DependencyProperty
+
+.
+
+RegisterAttached
+ /
+(
+/ 0
+$str
+0 L
+,
+L M
+typeof
+N T
+(
+T U
+String
+U [
+)
+[ \
+,
+\ ]
+typeof
+^ d
+(
+d e
+SuspensionManager
+e v
+)
+v w
+,
+w x
+null
+y }
+)
+} ~
+;
+~
+private
+
+static
+
+DependencyProperty
+ )'
+FrameSessionStateProperty
+* C
+=
+D E
+DependencyProperty
+
+.
+
+RegisterAttached
+ /
+(
+/ 0
+$str
+0 D
+,
+D E
+typeof
+F L
+(
+L M
+
+Dictionary
+M W
+<
+W X
+String
+X ^
+,
+^ _
+Object
+` f
+>
+f g
+)
+g h
+,
+h i
+typeof
+j p
+(
+p q
+SuspensionManagerq
+)
+,
+null
+)
+;
+private
+
+static
+
+List
+
+<
+
+
WeakReference
+ )
+<
+) *
+Frame
+* /
+>
+/ 0
+>
+0 1
+_registeredFrames
+2 C
+=
+D E
+new
+F I
+List
+J N
+<
+N O
+
WeakReference
+O \
+<
+\ ]
+Frame
+] b
+>
+b c
+>
+c d
+(
+d e
+)
+e f
+;
+f g
+public
+
+static
+
+void
+
+
RegisterFrame
+ (
+(
+( )
+Frame
+) .
+frame
+/ 4
+,
+4 5
+String
+6 <
+sessionStateKey
+= L
+,
+L M
+String
+N T
+sessionBaseKey
+U c
+=
+d e
+null
+f j
+)
+j k
+{
+
+if
+
+(
+
+frame
+
+.
+
+GetValue
+
+(
+ *
+FrameSessionStateKeyProperty
+ ;
+)
+; <
+!=
+= ?
+null
+@ D
+)
+D E
+{
+
+throw
+ĄĄ
+new
+ĄĄ '
+InvalidOperationException
+ĄĄ 3
+(
+ĄĄ3 4
+$str
+ĄĄ4 l
+)
+ĄĄl m
+;
+ĄĄm n
+}
+ĸĸ
+if
+¤¤
+(
+¤¤
+frame
+¤¤
+.
+¤¤
+GetValue
+¤¤
+(
+¤¤ '
+FrameSessionStateProperty
+¤¤ 8
+)
+¤¤8 9
+!=
+¤¤: <
+null
+¤¤= A
+)
+¤¤A B
+{
+ĨĨ
+throw
+ĻĻ
+new
+ĻĻ '
+InvalidOperationException
+ĻĻ 3
+(
+ĻĻ3 4
+$strĻĻ4
+)ĻĻ
+;ĻĻ
+}
+§§
+if
+ŠŠ
+(
+ŠŠ
+!
+ŠŠ
+string
+ŠŠ
+.
+ŠŠ
+
IsNullOrEmpty
+ŠŠ %
+(
+ŠŠ% &
+sessionBaseKey
+ŠŠ& 4
+)
+ŠŠ4 5
+)
+ŠŠ5 6
+{
+ĒĒ
+frame
+ĢĢ
+.
+ĢĢ
+SetValue
+ĢĢ
+(
+ĢĢ )
+FrameSessionBaseKeyProperty
+ĢĢ :
+,
+ĢĢ: ;
+sessionBaseKey
+ĢĢ< J
+)
+ĢĢJ K
+;
+ĢĢK L
+sessionStateKey
+ŦŦ
+=
+ŦŦ !
+sessionBaseKey
+ŦŦ" 0
++
+ŦŦ1 2
+$str
+ŦŦ3 6
++
+ŦŦ7 8
+sessionStateKey
+ŦŦ9 H
+;
+ŦŦH I
+}
+
+frame
+ąą
+.
+ąą
+SetValue
+ąą
+(
+ąą *
+FrameSessionStateKeyProperty
+ąą 7
+,
+ąą7 8
+sessionStateKey
+ąą9 H
+)
+ąąH I
+;
+ąąI J
+_registeredFrames
+˛˛
+.
+˛˛
+Add
+˛˛ !
+(
+˛˛! "
+new
+˛˛" %
+
WeakReference
+˛˛& 3
+<
+˛˛3 4
+Frame
+˛˛4 9
+>
+˛˛9 :
+(
+˛˛: ;
+frame
+˛˛; @
+)
+˛˛@ A
+)
+˛˛A B
+;
+˛˛B C)
+RestoreFrameNavigationState
+ĩĩ '
+(
+ĩĩ' (
+frame
+ĩĩ( -
+)
+ĩĩ- .
+;
+ĩĩ. /
+}
+ļļ
+public
+ŋŋ
+static
+ŋŋ
+void
+ŋŋ
+UnregisterFrame
+ŋŋ *
+(
+ŋŋ* +
+Frame
+ŋŋ+ 0
+frame
+ŋŋ1 6
+)
+ŋŋ6 7
+{
+ĀĀ
+SessionState
+ÃÃ
+.
+ÃÃ
+Remove
+ÃÃ
+(
+ÃÃ
+(
+ÃÃ !
+String
+ÃÃ! '
+)
+ÃÃ' (
+frame
+ÃÃ( -
+.
+ÃÃ- .
+GetValue
+ÃÃ. 6
+(
+ÃÃ6 7*
+FrameSessionStateKeyProperty
+ÃÃ7 S
+)
+ÃÃS T
+)
+ÃÃT U
+;
+ÃÃU V
+_registeredFrames
+ÄÄ
+.
+ÄÄ
+ RemoveAll
+ÄÄ '
+(
+ÄÄ' (
+(
+ÄÄ( )
+weakFrameReference
+ÄÄ) ;
+)
+ÄÄ; <
+=>
+ÄÄ= ?
+{
+ÅÅ
+Frame
+ÆÆ
+ testFrame
+ÆÆ
+;
+ÆÆ
+return
+ĮĮ
+!
+ĮĮ
+weakFrameReference
+ĮĮ *
+.
+ĮĮ* +
+TryGetTarget
+ĮĮ+ 7
+(
+ĮĮ7 8
+out
+ĮĮ8 ;
+ testFrame
+ĮĮ< E
+)
+ĮĮE F
+||
+ĮĮG I
+ testFrame
+ĮĮJ S
+==
+ĮĮT V
+frame
+ĮĮW \
+;
+ĮĮ\ ]
+}
+ČČ
+)
+ČČ
+;
+ČČ
+}
+ÉÉ
+public
+ØØ
+static
+ØØ
+
+Dictionary
+ØØ
+<
+ØØ !
+String
+ØØ! '
+,
+ØØ' (
+Object
+ØØ) /
+>
+ØØ/ 0"
+SessionStateForFrame
+ØØ1 E
+(
+ØØE F
+Frame
+ØØF K
+frame
+ØØL Q
+)
+ØØQ R
+{
+ŲŲ
+var
+ÚÚ
+
+frameState
+ÚÚ
+=
+ÚÚ
+(
+ÚÚ
+
+Dictionary
+ÚÚ (
+<
+ÚÚ( )
+String
+ÚÚ) /
+,
+ÚÚ/ 0
+Object
+ÚÚ1 7
+>
+ÚÚ7 8
+)
+ÚÚ8 9
+frame
+ÚÚ9 >
+.
+ÚÚ> ?
+GetValue
+ÚÚ? G
+(
+ÚÚG H'
+FrameSessionStateProperty
+ÚÚH a
+)
+ÚÚa b
+;
+ÚÚb c
+if
+ÜÜ
+(
+ÜÜ
+
+frameState
+ÜÜ
+==
+ÜÜ
+null
+ÜÜ "
+)
+ÜÜ" #
+{
+ŨŨ
+var
+ŪŪ
+frameSessionKey
+ŪŪ #
+=
+ŪŪ$ %
+(
+ŪŪ& '
+String
+ŪŪ' -
+)
+ŪŪ- .
+frame
+ŪŪ. 3
+.
+ŪŪ3 4
+GetValue
+ŪŪ4 <
+(
+ŪŪ< =*
+FrameSessionStateKeyProperty
+ŪŪ= Y
+)
+ŪŪY Z
+;
+ŪŪZ [
+if
+ßß
+(
+ßß
+frameSessionKey
+ßß #
+!=
+ßß$ &
+null
+ßß' +
+)
+ßß+ ,
+{
+āā
+if
+ââ
+(
+ââ
+!
+ââ
+
_sessionState
+ââ &
+.
+ââ& '
+ContainsKey
+ââ' 2
+(
+ââ2 3
+frameSessionKey
+ââ3 B
+)
+ââB C
+)
+ââC D
+{
+ãã
+
_sessionState
+ää %
+[
+ää% &
+frameSessionKey
+ää& 5
+]
+ää5 6
+=
+ää7 8
+new
+ää9 <
+
+Dictionary
+ää= G
+<
+ääG H
+String
+ääH N
+,
+ääN O
+Object
+ääP V
+>
+ääV W
+(
+ääW X
+)
+ääX Y
+;
+ääY Z
+}
+åå
+
+frameState
+ææ
+=
+ææ
+(
+ææ! "
+
+Dictionary
+ææ" ,
+<
+ææ, -
+String
+ææ- 3
+,
+ææ3 4
+Object
+ææ5 ;
+>
+ææ; <
+)
+ææ< =
+
_sessionState
+ææ= J
+[
+ææJ K
+frameSessionKey
+ææK Z
+]
+ææZ [
+;
+ææ[ \
+}
+įį
+else
+čč
+{
+éé
+
+frameState
+ëë
+=
+ëë
+new
+ëë! $
+
+Dictionary
+ëë% /
+<
+ëë/ 0
+String
+ëë0 6
+,
+ëë6 7
+Object
+ëë8 >
+>
+ëë> ?
+(
+ëë? @
+)
+ëë@ A
+;
+ëëA B
+}
+ėė
+frame
+íí
+.
+íí
+SetValue
+íí
+(
+íí '
+FrameSessionStateProperty
+íí 8
+,
+íí8 9
+
+frameState
+íí: D
+)
+ííD E
+;
+ííE F
+}
+îî
+return
+īī
+
+frameState
+īī
+;
+īī
+}
+đđ
+private
+ōō
+static
+ōō
+void
+ōō )
+RestoreFrameNavigationState
+ōō 7
+(
+ōō7 8
+Frame
+ōō8 =
+frame
+ōō> C
+)
+ōōC D
+{
+ķķ
+var
+ôô
+
+frameState
+ôô
+=
+ôô "
+SessionStateForFrame
+ôô 1
+(
+ôô1 2
+frame
+ôô2 7
+)
+ôô7 8
+;
+ôô8 9
+if
+õõ
+(
+õõ
+
+frameState
+õõ
+.
+õõ
+ContainsKey
+õõ &
+(
+õõ& '
+$str
+õõ' 3
+)
+õõ3 4
+)
+õõ4 5
+{
+öö
+frame
+÷÷
+.
+÷÷
+SetNavigationState
+÷÷ (
+(
+÷÷( )
+(
+÷÷) *
+String
+÷÷* 0
+)
+÷÷0 1
+
+frameState
+÷÷1 ;
+[
+÷÷; <
+$str
+÷÷< H
+]
+÷÷H I
+)
+÷÷I J
+;
+÷÷J K
+}
+øø
+}
+ųų
+private
+ûû
+static
+ûû
+void
+ûû &
+SaveFrameNavigationState
+ûû 4
+(
+ûû4 5
+Frame
+ûû5 :
+frame
+ûû; @
+)
+ûû@ A
+{
+üü
+var
+ũũ
+
+frameState
+ũũ
+=
+ũũ "
+SessionStateForFrame
+ũũ 1
+(
+ũũ1 2
+frame
+ũũ2 7
+)
+ũũ7 8
+;
+ũũ8 9
+
+frameState
+ūū
+[
+ūū
+$str
+ūū #
+]
+ūū# $
+=
+ūū% &
+frame
+ūū' ,
+.
+ūū, -
+GetNavigationState
+ūū- ?
+(
+ūū? @
+)
+ūū@ A
+;
+ūūA B
+}
+˙˙
+}
+
+public
+
+
+class
+ (
+SuspensionManagerException
+ +
+:
+, -
+ Exception
+. 7
+{
+
+public
+ (
+SuspensionManagerException
+ )
+(
+) *
+)
+* +
+{
+
+}
+
+public
+ (
+SuspensionManagerException
+ )
+(
+) *
+ Exception
+* 3
+e
+4 5
+)
+5 6
+:
+
+base
+
+(
+
+$str
+ -
+,
+- .
+e
+/ 0
+)
+0 1
+{
+
+}
+
+}
+
+} ĸ-
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Services\LicenseService.cs
+ namespace
+
ModernKeePass
+
+.
+Services
+{
+public
+
+class
+LicenseService
+: !
+SingletonServiceBase " 6
+< 6 7
+LicenseService 7 E
+> E F
+, F G
+ILicenseService H W
+{
+
+
+public
+enum
+PurchaseResult "
+{
+ Succeeded
+,
+NothingToFulfill
+,
+PurchasePending
+,
+PurchaseReverted
+,
+ServerError
+,
+NotPurchased
+,
+AlreadyPurchased
+}
+public
+IReadOnlyDictionary "
+<" #
+string# )
+,) *
+ProductListing+ 9
+>9 :
+Products; C
+{D E
+getF I
+;I J
+}K L
+private
+readonly
+HashSet
+< !
+Guid! %
+>% &#
+_consumedTransactionIds' >
+=? @
+newA D
+HashSetE L
+<L M
+GuidM Q
+>Q R
+(R S
+)S T
+;T U
+public
+LicenseService
+(
+)
+{
+var
+listing
+=
+
+CurrentApp $
+.$ %'
+LoadListingInformationAsync% @
+(@ A
+)A B
+.B C
+
+GetAwaiterC M
+(M N
+)N O
+.O P
+ GetResultP Y
+(Y Z
+)Z [
+;[ \
+Products
+=
+listing
+.
+ProductListings .
+;. /
+}
+public!!
+async!!
+Task!!
+<!!
+int!!
+>!!
+Purchase!! '
+(!!' (
+string!!( .
+addOn!!/ 4
+)!!4 5
+{""
+var##
+purchaseResults##
+=## !
+await##" '
+
+CurrentApp##( 2
+.##2 3'
+RequestProductPurchaseAsync##3 N
+(##N O
+addOn##O T
+)##T U
+;##U V
+switch$$
+($$
+purchaseResults$$ #
+.$$# $
+Status$$$ *
+)$$* +
+{%%
+case&& !
+ProductPurchaseStatus&& *
+.&&* +
+ Succeeded&&+ 4
+:&&4 5
+GrantFeatureLocally'' '
+(''' (
+purchaseResults''( 7
+.''7 8
+
TransactionId''8 E
+)''E F
+;''F G
+return((
+(((
+int((
+)((
+await((! &"
+ReportFulfillmentAsync((' =
+(((= >
+purchaseResults((> M
+.((M N
+
TransactionId((N [
+,(([ \
+addOn((] b
+)((b c
+;((c d
+case)) !
+ProductPurchaseStatus)) *
+.))* +
+NotFulfilled))+ 7
+:))7 8
+if,,
+(,,
+!,,
+IsLocallyFulfilled,, +
+(,,+ ,
+purchaseResults,,, ;
+.,,; <
+
TransactionId,,< I
+),,I J
+),,J K
+{--
+GrantFeatureLocally.. +
+(..+ ,
+purchaseResults.., ;
+...; <
+
TransactionId..< I
+)..I J
+;..J K
+}//
+return00
+(00
+int00
+)00
+await00! &"
+ReportFulfillmentAsync00' =
+(00= >
+purchaseResults00> M
+.00M N
+
TransactionId00N [
+,00[ \
+addOn00] b
+)00b c
+;00c d
+case11 !
+ProductPurchaseStatus11 *
+.11* +
+NotPurchased11+ 7
+:117 8
+return22
+(22
+int22
+)22
+PurchaseResult22! /
+.22/ 0
+NotPurchased220 <
+;22< =
+case33 !
+ProductPurchaseStatus33 *
+.33* +
+AlreadyPurchased33+ ;
+:33; <
+return44
+(44
+int44
+)44
+PurchaseResult44! /
+.44/ 0
+AlreadyPurchased440 @
+;44@ A
+default55
+:55
+throw66
+new66 '
+ArgumentOutOfRangeException66 9
+(669 :
+)66: ;
+;66; <
+}77
+}88
+private::
+async::
+Task::
+<::
+PurchaseResult:: )
+>::) *"
+ReportFulfillmentAsync::+ A
+(::A B
+Guid::B F
+
transactionId::G T
+,::T U
+string::V \
+productName::] h
+)::h i
+{;;
+var<<
+result<<
+=<<
+await<<
+
+CurrentApp<< )
+.<<) *,
+ ReportConsumableFulfillmentAsync<<* J
+(<<J K
+productName<<K V
+,<<V W
+
transactionId<<X e
+)<<e f
+;<<f g
+return==
+(==
+PurchaseResult== "
+)==" #
+result==$ *
+;==* +
+}>>
+private@@
+void@@
+GrantFeatureLocally@@ (
+(@@( )
+Guid@@) -
+
transactionId@@. ;
+)@@; <
+{AA #
+_consumedTransactionIdsBB #
+.BB# $
+AddBB$ '
+(BB' (
+
transactionIdBB( 5
+)BB5 6
+;BB6 7
+}CC
+privateEE
+boolEE
+IsLocallyFulfilledEE '
+(EE' (
+GuidEE( ,
+
transactionIdEE- :
+)EE: ;
+{FF
+returnGG #
+_consumedTransactionIdsGG *
+.GG* +
+ContainsGG+ 3
+(GG3 4
+
transactionIdGG4 A
+)GGA B
+;GGB C
+}HH
+}II
+}JJ ķ
+FC:\Sources\Other\ModernKeePass\ModernKeePass\Services\RecentService.cs
+ namespace
+
ModernKeePass
+
+.
+Services
+{
+
+
+public
+
+class
+
RecentService
+:
+SingletonServiceBase! 5
+<5 6
+
RecentService6 C
+>C D
+,D E
+IRecentServiceF T
+{
+private
+readonly
+
+StorageItemMostRecentlyUsedList
8
+_mru
9 =
+=
> ?)
+StorageApplicationPermissions
@ ]
+.
] ^
+MostRecentlyUsedList
^ r
+;
r s
+public
+int
+
+EntryCount
+=>
+_mru! %
+.% &
+Entries& -
+.- .
+Count. 3
+;3 4
+public
+ObservableCollection #
+<# $
+IRecentItem$ /
+>/ 0
+GetAllFiles1 <
+(< =
+bool= A
+removeIfNonExistantB U
+=V W
+trueX \
+)\ ]
+{
+var
+result
+=
+new
+ObservableCollection 1
+<1 2
+IRecentItem2 =
+>= >
+(> ?
+)? @
+;@ A
+foreach
+(
+var
+entry
+in !
+_mru" &
+.& '
+Entries' .
+). /
+{
+try
+{
+var
+file
+=
+_mru #
+.# $
+GetFileAsync$ 0
+(0 1
+entry1 6
+.6 7
+Token7 <
+,< =
+AccessCacheOptions> P
+.P Q$
+SuppressAccessTimeUpdateQ i
+)i j
+.j k
+
+GetAwaiterk u
+(u v
+)v w
+.w x
+ GetResult x
+(
+
+)
+
+;
+
+result
+.
+Add
+(
+new "
+RecentItemVm# /
+(/ 0
+entry0 5
+.5 6
+Token6 ;
+,; <
+entry= B
+.B C
+MetadataC K
+,K L
+fileM Q
+)Q R
+)R S
+;S T
+}
+catch
+(
+ Exception
+) !
+{
+if
+(
+removeIfNonExistant +
+)+ ,
+_mru- 1
+.1 2
+Remove2 8
+(8 9
+entry9 >
+.> ?
+Token? D
+)D E
+;E F
+}
+}
+return
+result
+;
+}!!
+public##
+void##
+Add##
+(##
+IStorageItem## $
+file##% )
+,##) *
+string##+ 1
+metadata##2 :
+)##: ;
+{$$
+_mru%%
+.%%
+Add%%
+(%%
+file%%
+,%%
+metadata%% #
+)%%# $
+;%%$ %
+}&&
+public((
+void((
+ClearAll((
+(((
+)((
+{))
+_mru**
+.**
+Clear**
+(**
+)**
+;**
+}++
+public--
+async--
+Task--
+<--
+IStorageItem-- &
+>--& '
+GetFileAsync--( 4
+(--4 5
+string--5 ;
+token--< A
+)--A B
+{..
+return//
+await//
+_mru//
+.//
+GetFileAsync// *
+(//* +
+token//+ 0
+)//0 1
+;//1 2
+}00
+}11
+}22 ė
+IC:\Sources\Other\ModernKeePass\ModernKeePass\Services\ResourcesService.cs
+ namespace
+
ModernKeePass
+
+.
+Services
+{
+public
+
+class
+ResourcesService !
+:! "
+IResourceService# 3
+{
+private
+const
+string
+ResourceFileName -
+=. /
+$str0 <
+;< =
+private
+readonly
+ResourceLoader '
+_resourceLoader ( 7
+= 8 9
+ResourceLoader : H
+. H I
+GetForCurrentView I Z
+( Z [
+) [ \
+; \ ]
+public
+string
+GetResourceValue &
+(& '
+string' -
+key. 1
+)1 2
+{
+var
+resource
+=
+_resourceLoader
*
+.
* +
+ GetString
+ 4
+(
4 5
+$"
5 7
+/
7 8
+{
8 9
+ResourceFileName
9 I
+}
I J
+/
J K
+{
K L
+key
L O
+}
O P
+"
P Q
+)
Q R
+;
R S
+return
+resource
+;
+}
+}
+} ø
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SettingsService.cs
+ namespace
+
ModernKeePass
+
+.
+Services
+{
+public
+
+class
+SettingsService
+:! "
+SingletonServiceBase# 7
+<7 8
+SettingsService8 G
+>G H
+,H I
+ISettingsServiceJ Z
+{
+private
+
+
+readonly
+
+
+IPropertySet
+
+ %
+_values
+
+& -
+=
+
+. /
+ApplicationData
+
+0 ?
+.
+
+? @
+Current
+
+@ G
+.
+
+G H
+
LocalSettings
+
+H U
+.
+
+U V
+Values
+
+V \
+;
+
+\ ]
+public
+T
+
+GetSetting
+<
+T
+>
+(
+string %
+property& .
+,. /
+T0 1
+defaultValue2 >
+=? @
+defaultA H
+(H I
+TI J
+)J K
+)K L
+{
+try
+{
+return
+(
+T
+)
+Convert !
+.! "
+
+ChangeType" ,
+(, -
+_values- 4
+[4 5
+property5 =
+]= >
+,> ?
+typeof@ F
+(F G
+TG H
+)H I
+)I J
+;J K
+}
+catch
+(
+InvalidCastException '
+)' (
+{
+return
+defaultValue #
+;# $
+}
+}
+public
+void
+
+PutSetting
+<
+T
+> !
+(! "
+string" (
+property) 1
+,1 2
+T3 4
+value5 :
+): ;
+{
+if
+(
+_values
+.
+ContainsKey #
+(# $
+property$ ,
+), -
+)- .
+_values
+[
+property
+] !
+=" #
+value$ )
+;) *
+else
+_values
+.
+Add
+(
+property %
+,% &
+value' ,
+), -
+;- .
+}
+}
+} Ë.
+NC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ToastNotificationHelper.cs
+ namespace
+
ModernKeePass
+
+.
+Common
+{
+public
+
+
+
+static
+
+
+class
+
+ #
+ToastNotificationHelper
+
+ /
+{
+public
+static
+void
+ShowMovedToast )
+() *
+ IPwEntity* 3
+entity4 :
+,: ;
+string< B
+actionC I
+,I J
+stringK Q
+textR V
+)V W
+{
+var
+
+entityType
+=
+entity #
+is$ &
+GroupVm' .
+?/ 0
+$str1 8
+:9 :
+$str; B
+;B C
+var
+notificationXml
+= !$
+ToastNotificationManager" :
+.: ;
+GetTemplateContent; M
+(M N
+ToastTemplateTypeN _
+._ `
+ToastText02` k
+)k l
+;l m
+var
+
toastElements
+=
+notificationXml /
+./ 0
+GetElementsByTagName0 D
+(D E
+$strE K
+)K L
+;L M
+
toastElements
+[
+$num
+]
+.
+AppendChild (
+(( )
+notificationXml) 8
+.8 9
+CreateTextNode9 G
+(G H
+$"H J
+{J K
+actionK Q
+}Q R
+{S T
+
+entityTypeT ^
+}^ _
+{` a
+entitya g
+.g h
+Nameh l
+}l m
+"m n
+)n o
+)o p
+;p q
+
toastElements
+[
+$num
+]
+.
+AppendChild (
+(( )
+notificationXml) 8
+.8 9
+CreateTextNode9 G
+(G H
+textH L
+)L M
+)M N
+;N O
+var
+ toastNode
+=
+notificationXml +
+.+ ,
+SelectSingleNode, <
+(< =
+$str= E
+)E F
+;F G
+var
+launch
+=
+new
+
+JsonObject '
+{
+{
+$str
+,
+ JsonValue (
+.( )
+CreateStringValue) :
+(: ;
+
+entityType; E
+)E F
+}F G
+,G H
+{
+$str
+,
+ JsonValue &
+.& '
+CreateStringValue' 8
+(8 9
+entity9 ?
+.? @
+Id@ B
+)B C
+}C D
+}
+;
+(
+(
+
+XmlElement
+)
+ toastNode "
+)" #
+?# $
+.$ %
+SetAttribute% 1
+(1 2
+$str2 :
+,: ;
+launch< B
+.B C
+ StringifyC L
+(L M
+)M N
+)N O
+;O P
+var
+toast
+=
+new
+ToastNotification -
+(- .
+notificationXml. =
+)= >
+{
+ExpirationTime
+=
+DateTime! )
+.) *
+Now* -
+.- .
+
+AddSeconds. 8
+(8 9
+$num9 :
+): ;
+}
+;
$
+ToastNotificationManager $
+. $ %
+CreateToastNotifier % 8
+( 8 9
+) 9 :
+. : ;
+Show ; ?
+( ? @
+toast @ E
+) E F
+; F G
+}!!
+public##
+static##
+void##
+ShowGenericToast## +
+(##+ ,
+string##, 2
+title##3 8
+,##8 9
+string##: @
+text##A E
+)##E F
+{$$
+var%%
+notificationXml%%
+=%% !$
+ToastNotificationManager%%" :
+.%%: ;
+GetTemplateContent%%; M
+(%%M N
+ToastTemplateType%%N _
+.%%_ `
+ToastText02%%` k
+)%%k l
+;%%l m
+var&&
+
toastElements&&
+=&&
+notificationXml&& /
+.&&/ 0
+GetElementsByTagName&&0 D
+(&&D E
+$str&&E K
+)&&K L
+;&&L M
+
toastElements''
+[''
+$num''
+]''
+.''
+AppendChild'' (
+(''( )
+notificationXml'') 8
+.''8 9
+CreateTextNode''9 G
+(''G H
+title''H M
+)''M N
+)''N O
+;''O P
+
toastElements((
+[((
+$num((
+]((
+.((
+AppendChild(( (
+(((( )
+notificationXml(() 8
+.((8 9
+CreateTextNode((9 G
+(((G H
+text((H L
+)((L M
+)((M N
+;((N O
+var**
+toast**
+=**
+new**
+ToastNotification** -
+(**- .
+notificationXml**. =
+)**= >
+{++
+ExpirationTime,,
+=,,
+DateTime,,! )
+.,,) *
+Now,,* -
+.,,- .
+
+AddSeconds,,. 8
+(,,8 9
+$num,,9 :
+),,: ;
+}--
+;--
$
+ToastNotificationManager.. $
+...$ %
+CreateToastNotifier..% 8
+(..8 9
+)..9 :
+...: ;
+Show..; ?
+(..? @
+toast..@ E
+)..E F
+;..F G
+}//
+public11
+static11
+void11
+ShowErrorToast11 )
+(11) *
+ Exception11* 3
+ exception114 =
+)11= >
+{22
+ShowGenericToast33
+(33
+ exception33 &
+.33& '
+Source33' -
+,33- .
+ exception33/ 8
+.338 9
+Message339 @
+)33@ A
+;33A B
+}44
+}55
+}66
+`C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DiscreteIntToSolidColorBrushConverter.cs
+ namespace
+
ModernKeePass
+
+.
+
+Converters "
+{
+public
+
+class 1
+%DiscreteIntToSolidColorBrushConverter 6
+:7 8
+IValueConverter9 H
+{
+public
+
+
+object
+
+
+Convert
+
+
+(
+
+
+object
+
+ $
+value
+
+% *
+,
+
+* +
+Type
+
+, 0
+
+targetType
+
+1 ;
+,
+
+; <
+object
+
+= C
+ parameter
+
+D M
+,
+
+M N
+string
+
+O U
+language
+
+V ^
+)
+
+^ _
+{
+var
+status
+=
+System
+.
+Convert '
+.' (
+ToInt32( /
+(/ 0
+value0 5
+)5 6
+;6 7
+switch
+(
+status
+)
+{
+case
+$num
+:
+return
+new "
+SolidColorBrush# 2
+(2 3
+Colors3 9
+.9 :
+Red: =
+)= >
+;> ?
+case
+$num
+:
+return
+new "
+SolidColorBrush# 2
+(2 3
+Colors3 9
+.9 :
+Yellow: @
+)@ A
+;A B
+case
+$num
+:
+return
+new "
+SolidColorBrush# 2
+(2 3
+Colors3 9
+.9 :
+Green: ?
+)? @
+;@ A
+default
+:
+return
+new #
+SolidColorBrush$ 3
+(3 4
+Colors4 :
+.: ;
+Black; @
+)@ A
+;A B
+}
+}
+public
+object
+ConvertBack !
+(! "
+object" (
+value) .
+,. /
+Type0 4
+
+targetType5 ?
+,? @
+objectA G
+ parameterH Q
+,Q R
+stringS Y
+languageZ b
+)b c
+{
+throw
+new #
+NotImplementedException -
+(- .
+). /
+;/ 0
+}
+}
+} ļ
+[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\EmptyStringToVisibilityConverter.cs
+ namespace
+
ModernKeePass
+
+.
+
+Converters "
+{
+class ,
+ EmptyStringToVisibilityConverter
+ *
+:* +
+IValueConverter, ;
+{
+public
+object
+Convert
+(
+object $
+value % *
+, * +
+Type , 0
+
+targetType 1 ;
+, ; <
+object = C
+ parameter D M
+, M N
+string O U
+language V ^
+) ^ _
+{
+
+
+var
+text
+=
+value
+is
+string &
+?' (
+value) .
+.. /
+ToString/ 7
+(7 8
+)8 9
+:: ;
+string< B
+.B C
+EmptyC H
+;H I
+return
+string
+.
+
IsNullOrEmpty '
+(' (
+text( ,
+), -
+?. /
+
+Visibility0 :
+.: ;
+ Collapsed; D
+:E F
+
+VisibilityG Q
+.Q R
+VisibleR Y
+;Y Z
+}
+public
+object
+ConvertBack !
+(! "
+object" (
+value) .
+,. /
+Type0 4
+
+targetType5 ?
+,? @
+objectA G
+ parameterH Q
+,Q R
+stringS Y
+languageZ b
+)b c
+{
+throw
+new #
+NotImplementedException -
+(- .
+). /
+;/ 0
+}
+}
+} Ã
+QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\NullToBooleanConverter.cs
+ namespace
+
ModernKeePass
+
+.
+
+Converters "
+{
+public
+
+class "
+NullToBooleanConverter '
+:( )
+IValueConverter* 9
+{
+public
+object
+Convert
+(
+object $
+value% *
+,* +
+Type, 0
+
+targetType1 ;
+,; <
+object= C
+ parameterD M
+,M N
+stringO U
+languageV ^
+)^ _
+{
+return
+
+
+value
+
+
+!=
+
+
+null
+
+
+;
+
+ !
+}
+public
+object
+ConvertBack
!
+(
! "
+object
" (
+value
) .
+,
. /
+Type
0 4
+
+targetType
5 ?
+,
? @
+object
A G
+ parameter
H Q
+,
Q R
+string
S Y
+language
Z b
+)
b c
+{
+throw
+new #
+NotImplementedException -
+(- .
+). /
+;/ 0
+}
+}
+} Á
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\SaveException.cs
+ namespace
+
ModernKeePass
+
+.
+
+Exceptions "
+{
+public
+
+class
+
SaveException
+:
+ Exception! *
+{
+public
+new
+ Exception
+InnerException +
+{, -
+get. 1
+;1 2
+}3 4
+public
+
SaveException
+(
+ Exception &
+ exception ' 0
+) 0 1
+{
+
+
+InnerException
+=
+ exception &
+;& '
+}
+}
+} Ī
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Extensions\DispatcherTaskExtensions.cs
+ namespace
+
ModernKeePass
+
+.
+
+Extensions "
+{
+public
+
+static
+class $
+DispatcherTaskExtensions 0
+{
+public
+static
+async
+Task
+< !
+T ! "
+> " #
+RunTaskAsync $ 0
+< 0 1
+T 1 2
+> 2 3
+( 3 4
+this 4 8
+CoreDispatcher 9 G
+
+dispatcher H R
+, R S
+Func
+
+
+<
+
+
+Task
+
+
+<
+
+
+T
+
+
+>
+
+
+>
+
+
+func
+
+
+,
+
+ "
+CoreDispatcherPriority
+
+ 6
+priority
+
+7 ?
+=
+
+@ A"
+CoreDispatcherPriority
+
+B X
+.
+
+X Y
+Normal
+
+Y _
+)
+
+_ `
+{
+var
+taskCompletionSource $
+=% &
+new' *
+TaskCompletionSource+ ?
+<? @
+T@ A
+>A B
+(B C
+)C D
+;D E
+await
+
+dispatcher
+.
+RunAsync
%
+(
% &
+priority
& .
+,
. /
+async
0 5
+(
6 7
+)
7 8
+=>
9 ;
+{
+try
+{
+taskCompletionSource (
+.( )
+ SetResult) 2
+(2 3
+await3 8
+func9 =
+(= >
+)> ?
+)? @
+;@ A
+}
+catch
+(
+ Exception
+ex! #
+)# $
+{
+taskCompletionSource (
+.( )
+SetException) 5
+(5 6
+ex6 8
+)8 9
+;9 :
+}
+}
+)
+;
+return
+await
+taskCompletionSource -
+.- .
+Task. 2
+;2 3
+}
+public
+static
+async
+Task
+RunTaskAsync! -
+(- .
+this. 2
+CoreDispatcher3 A
+
+dispatcherB L
+,L M
+Func
+<
+Task
+>
+func
+, "
+CoreDispatcherPriority 3
+priority4 <
+== >"
+CoreDispatcherPriority? U
+.U V
+NormalV \
+)\ ]
+=>^ `
+await
+RunTaskAsync
+(
+
+dispatcher )
+,) *
+async+ 0
+(1 2
+)2 3
+=>4 6
+{7 8
+await9 >
+func? C
+(C D
+)D E
+;E F
+returnG M
+falseN S
+;S T
+}U V
+,V W
+priorityX `
+)` a
+;a b
+}
+} ã
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IDatabaseService.cs
+ namespace
+
ModernKeePass
+
+.
+
+Interfaces "
+{
+public
+
+
+
+ interface
+
+
+IDatabaseService
+
+ %
+{
+string
+Name
+{
+get
+;
+}
+bool
+RecycleBinEnabled
+{
+get
! $
+;
$ %
+set
& )
+;
) *
+}
+ ,
+GroupVm
+ RootGroup
+{
+get
+;
+set! $
+;$ %
+}& '
+GroupVm
+
+RecycleBin
+{
+get
+; !
+set" %
+;% &
+}' (
+StorageFile
+DatabaseFile
+{! "
+get# &
+;& '
+set( +
+;+ ,
+}- .
+CompositeKey
+CompositeKey !
+{" #
+get$ '
+;' (
+set) ,
+;, -
+}. /
+PwUuid
+
+DataCipher
+{
+get
+;
+set! $
+;$ %
+}& '"
+PwCompressionAlgorithm
+CompressionAlgorithm 3
+{4 5
+get6 9
+;9 :
+set; >
+;> ?
+}@ A
+
KdfParameters
+
KeyDerivation #
+{$ %
+get& )
+;) *
+set+ .
+;. /
+}0 1
+bool
+IsOpen
+{
+get
+;
+}
+bool
+
+IsFileOpen
+{
+get
+;
+}
+bool
+IsClosed
+{
+get
+;
+}
+bool
+
+HasChanged
+{
+get
+;
+set "
+;" #
+}$ %
+Task
+Open
+(
+CompositeKey
+key "
+," #
+bool$ (
+ createNew) 2
+=3 4
+false5 :
+): ;
+;; <
+Task
+ReOpen
+(
+)
+;
+void
+Save
+(
+)
+;
+void
+Save
+(
+StorageFile
+file "
+)" #
+;# $
+void
+CreateRecycleBin
+(
+string $
+title% *
+)* +
+;+ ,
+void
+AddDeletedItem
+(
+PwUuid "
+id # %
+) % &
+; & '
+Task!!
+Close!!
+(!!
+bool!!
+releaseFile!! #
+=!!$ %
+true!!& *
+)!!* +
+;!!+ ,
+}""
+}## Ã
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IHasSelectableObject.cs
+ namespace
+
ModernKeePass
+
+.
+
+Interfaces "
+{
+public
+
+ interface
+IHasSelectableObject )
+{
+ISelectableModel
+SelectedItem %
+{& '
+get( +
+;+ ,
+set- 0
+;0 1
+}2 3
+}
+}
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISelectableModel.cs
+ namespace
+
ModernKeePass
+
+.
+
+Interfaces "
+{
+public
+
+ interface
+ISelectableModel %
+{
+bool
+
+IsSelected
+{
+get
+;
+set "
+;" #
+}$ %
+}
+} I
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\BasePages\LayoutAwarePageBase.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+.
+ BasePages '
+{
+
+
+public
+
+class
+LayoutAwarePageBase $
+:$ %
+Page& *
+{
+public
+NavigationHelper
+NavigationHelper 0
+{1 2
+get3 6
+;6 7
+}8 9
+public
+virtual
+ListView
+ListView (
+{) *
+get+ .
+;. /
+set0 3
+;3 4
+}5 6
+public
+virtual
+CollectionViewSource +
+ListViewSource, :
+{; <
+get= @
+;@ A
+setB E
+;E F
+}G H
+public
+virtual
+IHasSelectableObject +
+Model, 1
+{2 3
+get4 7
+;7 8
+set9 <
+;< =
+}> ?
+public
+LayoutAwarePageBase "
+(" #
+)# $
+{
+NavigationHelper
+=
+new "
+NavigationHelper# 3
+(3 4
+this4 8
+)8 9
+;9 :
+NavigationHelper
+.
+ LoadState &
++=' )&
+navigationHelper_LoadState* D
+;D E
+NavigationHelper
+.
+ SaveState &
++=' )&
+navigationHelper_SaveState* D
+;D E
+NavigationHelper
+.
+
GoBackCommand *
+= + ,
+new - 0
+RelayCommand 1 =
+( = >
+( > ?
+) ? @
+=> A C
+GoBack D J
+( J K
+) K L
+, L M
+( N O
+) O P
+=> Q S
+ CanGoBack T ]
+( ] ^
+) ^ _
+) _ `
+; ` a
+Window$$
+.$$
+Current$$
+.$$
+SizeChanged$$ &
++=$$' )
+Window_SizeChanged$$* <
+;$$< =!
+InvalidateVisualState%% !
+(%%! "
+)%%" #
+;%%# $
+}&&
+ protected((
+void(( %
+ListView_SelectionChanged(( 0
+(((0 1
+object((1 7
+sender((8 >
+,((> ?%
+SelectionChangedEventArgs((@ Y
+e((Z [
+)(([ \
+{))
+if//
+(//
+!// &
+UsingLogicalPageNavigation// +
+(//+ ,
+)//, -
+)//- .
+return/// 5
+;//5 6
+NavigationHelper00
+.00
+
GoBackCommand00 *
+.00* +"
+RaiseCanExecuteChanged00+ A
+(00A B
+)00B C
+;00C D!
+InvalidateVisualState11 !
+(11! "
+)11" #
+;11# $
+}22
+ protected??
+void?? &
+navigationHelper_LoadState?? 1
+(??1 2
+object??2 8
+sender??9 ?
+,??? @
+LoadStateEventArgs??A S
+e??T U
+)??U V
+{@@
+ifDD
+(DD
+eDD
+.DD
+ PageStateDD
+==DD
+nullDD #
+)DD# $
+{EE
+ifHH
+(HH
+!HH &
+UsingLogicalPageNavigationHH /
+(HH/ 0
+)HH0 1
+)HH1 2
+{II
+ListViewSourceJJ "
+.JJ" #
+ViewJJ# '
+?JJ' (
+.JJ( )
+MoveCurrentToFirstJJ) ;
+(JJ; <
+)JJ< =
+;JJ= >
+}KK
+}LL
+elseMM
+{NN
+ifPP
+(PP
+ePP
+.PP
+ PageStatePP
+.PP
+ContainsKeyPP +
+(PP+ ,
+$strPP, :
+)PP: ;
+)PP; <
+{QQ
+ListViewSourceRR "
+.RR" #
+ViewRR# '
+?RR' (
+.RR( )
+
MoveCurrentToRR) 6
+(RR6 7
+eRR7 8
+.RR8 9
+ PageStateRR9 B
+[RRB C
+$strRRC Q
+]RRQ R
+)RRR S
+;RRS T
+}SS
+}TT
+}UU
+ protected__
+void__ &
+navigationHelper_SaveState__ 1
+(__1 2
+object__2 8
+sender__9 ?
+,__? @
+SaveStateEventArgs__A S
+e__T U
+)__U V
+{``
+ifaa
+(aa
+ListViewSourceaa
+.aa
+Viewaa #
+!=aa$ &
+nullaa' +
+)aa+ ,
+{bb
+ecc
+.cc
+ PageStatecc
+[cc
+$strcc *
+]cc* +
+=cc, -
+Modelcc. 3
+?cc3 4
+.cc4 5
+SelectedItemcc5 A
+;ccA B
+}dd
+}ee
+ protectedpp
+constpp
+intpp -
+!MinimumWidthForSupportingTwoPanespp =
+=pp> ?
+$numpp@ C
+;ppC D
+ protectedww
+boolww &
+UsingLogicalPageNavigationww 1
+(ww1 2
+)ww2 3
+{xx
+returnyy
+Windowyy
+.yy
+Currentyy !
+.yy! "
+Boundsyy" (
+.yy( )
+Widthyy) .
+<yy/ 0-
+!MinimumWidthForSupportingTwoPanesyy1 R
+;yyR S
+}zz
+ protected
+
+void
+
+Window_SizeChanged
+ )
+(
+) *
+object
+* 0
+sender
+1 7
+,
+7 8
+Windows
+9 @
+.
+@ A
+UI
+A C
+.
+C D
+Core
+D H
+.
+H I(
+WindowSizeChangedEventArgs
+I c
+e
+d e
+)
+e f
+{
+ #
+InvalidateVisualState
+ !
+(
+! "
+)
+" #
+;
+# $
+}
+
+ protected
+
+bool
+
+ CanGoBack
+
+(
+ !
+)
+! "
+{
+
+if
+
+(
+ (
+UsingLogicalPageNavigation
+ *
+(
+* +
+)
++ ,
+&&
+- /
+ListView
+0 8
+.
+8 9
+SelectedItem
+9 E
+!=
+F H
+null
+I M
+)
+M N
+{
+
+return
+
+true
+
+;
+
+}
+
+return
+
+NavigationHelper
+ #
+.
+# $
+ CanGoBack
+$ -
+(
+- .
+)
+. /
+;
+/ 0
+}
+
+ protected
+
+void
+
+GoBack
+
+(
+
+)
+
+{
+
+if
+
+(
+ (
+UsingLogicalPageNavigation
+ *
+(
+* +
+)
++ ,
+&&
+- /
+ListView
+0 8
+.
+8 9
+SelectedItem
+9 E
+!=
+F H
+null
+I M
+)
+M N
+{
+
+ListView
+
+.
+
+SelectedItem
+ %
+=
+& '
+null
+( ,
+;
+, -
+}
+
+else
+
+{
+
+NavigationHelper
+
+.
+ !
+GoBack
+! '
+(
+' (
+)
+( )
+;
+) *
+}
+
+}
+
+ protected
+
+void
+ #
+InvalidateVisualState
+ ,
+(
+, -
+)
+- .
+{
+
+var
+
+visualState
+
+=
+ "
+DetermineVisualState
+ 2
+(
+ 2 3
+)
+ 3 4
+;
+ 4 5
+VisualStateManager
+ĄĄ
+.
+ĄĄ
+ GoToState
+ĄĄ (
+(
+ĄĄ( )
+this
+ĄĄ) -
+,
+ĄĄ- .
+visualState
+ĄĄ/ :
+,
+ĄĄ: ;
+false
+ĄĄ< A
+)
+ĄĄA B
+;
+ĄĄB C
+NavigationHelper
+ĸĸ
+.
+ĸĸ
+
GoBackCommand
+ĸĸ *
+.
+ĸĸ* +$
+RaiseCanExecuteChanged
+ĸĸ+ A
+(
+ĸĸA B
+)
+ĸĸB C
+;
+ĸĸC D
+}
+ŖŖ
+ protected
+ŦŦ
+string
+ŦŦ "
+DetermineVisualState
+ŦŦ -
+(
+ŦŦ- .
+)
+ŦŦ. /
+{
+
+if
+ŽŽ
+(
+ŽŽ
+!
+ŽŽ (
+UsingLogicalPageNavigation
+ŽŽ +
+(
+ŽŽ+ ,
+)
+ŽŽ, -
+)
+ŽŽ- .
+return
+¯¯
+$str
+¯¯ $
+;
+¯¯$ %
+var
+˛˛
+logicalPageBack
+˛˛
+=
+˛˛ !(
+UsingLogicalPageNavigation
+˛˛" <
+(
+˛˛< =
+)
+˛˛= >
+&&
+˛˛? A
+ListView
+˛˛B J
+?
+˛˛J K
+.
+˛˛K L
+SelectedItem
+˛˛L X
+!=
+˛˛Y [
+null
+˛˛\ `
+;
+˛˛` a
+return
+´´
+logicalPageBack
+´´ "
+?
+´´# $
+$str
+´´% 8
+:
+´´9 :
+$str
+´´; G
+;
+´´G H
+}
+ĩĩ
+ protected
+ÄÄ
+override
+ÄÄ
+void
+ÄÄ
+
OnNavigatedTo
+ÄÄ -
+(
+ÄÄ- .!
+NavigationEventArgs
+ÄÄ. A
+e
+ÄÄB C
+)
+ÄÄC D
+{
+ÅÅ
+NavigationHelper
+ÆÆ
+.
+ÆÆ
+
OnNavigatedTo
+ÆÆ *
+(
+ÆÆ* +
+e
+ÆÆ+ ,
+)
+ÆÆ, -
+;
+ÆÆ- .
+}
+ĮĮ
+ protected
+ÉÉ
+override
+ÉÉ
+void
+ÉÉ
+OnNavigatedFrom
+ÉÉ /
+(
+ÉÉ/ 0!
+NavigationEventArgs
+ÉÉ0 C
+e
+ÉÉD E
+)
+ÉÉE F
+{
+ĘĘ
+NavigationHelper
+ËË
+.
+ËË
+OnNavigatedFrom
+ËË ,
+(
+ËË, -
+e
+ËË- .
+)
+ËË. /
+;
+ËË/ 0
+}
+ĖĖ
+}
+ĪĪ
+}ĐĐ
+bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsDatabasePage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class
+SettingsDatabasePage 4
+{
+public
+
+
+SettingsDatabasePage
+
+ #
+(
+
+# $
+)
+
+$ %
+{
+InitializeComponent
+(
+) !
+;! "
+}
+}
+} Š
+eC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsNewDatabasePage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class #
+SettingsNewDatabasePage 7
+{
+public
+
+ #
+SettingsNewDatabasePage
+
+ &
+(
+
+& '
+)
+
+' (
+{
+InitializeComponent
+(
+) !
+;! "
+}
+}
+}
+^C:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSavePage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class
+SettingsSavePage 0
+{
+public
+
+
+SettingsSavePage
+
+
+(
+
+
+)
+
+ !
+{
+InitializeComponent
+(
+) !
+;! "
+}
+}
+} Ķ
+bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSecurityPage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class
+SettingsSecurityPage 4
+{
+public
+SettingsSecurityPage
#
+(
# $
+)
$ %
+{
+InitializeComponent
+(
+) !
+;! "
+}
+private
+void 7
++CompositeKeyUserControl_OnValidationChecked @
+(@ A
+objectA G
+senderH N
+,N O
+PasswordEventArgsP a
+eb c
+)c d
+{ #
+ToastNotificationHelper #
+.# $
+ShowGenericToast$ 4
+(4 5
+$str5 D
+,D E
+$strF f
+)f g
+;g h
+}
+}
+}
+aC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsWelcomePage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class
+SettingsWelcomePage 3
+{
+public
+
+
+SettingsWelcomePage
+
+ "
+(
+
+" #
+)
+
+# $
+{
+InitializeComponent
+(
+) !
+;! "
+}
+}
+} ¤
+_C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\FirstItemDataTemplateSelector.cs
+ namespace
+
ModernKeePass
+
+.
+TemplateSelectors )
+{
+public
+
+class )
+FirstItemDataTemplateSelector .
+:. /
+DataTemplateSelector0 D
+{
+public
+DataTemplate
+ FirstItem %
+{& '
+get( +
+;+ ,
+set- 0
+;0 1
+}2 3
+public
+DataTemplate
+ OtherItem %
+{ & '
+get ( +
+; + ,
+set - 0
+; 0 1
+} 2 3
+ protected
+override
+DataTemplate '
+SelectTemplateCore( :
+(: ;
+object; A
+itemB F
+,F G
+DependencyObjectH X
+ containerY b
+)b c
+{
+var
+itemsControl
+=
+ItemsControl
+
+.
+ ,)
+ItemsControlFromItemContainer
, I
+(
I J
+ container
J S
+)
S T
+;
T U
+var
+returnTemplate
+=
+itemsControl! -
+?- .
+.. /
+IndexFromContainer/ A
+(A B
+ containerB K
+)K L
+==M O
+$numP Q
+?R S
+ FirstItemT ]
+:^ _
+ OtherItem` i
+;i j
+return
+returnTemplate !
+;! "
+}
+}
+}
+LC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\ListViewWithDisable.cs
+ namespace
+
ModernKeePass
+
+.
+Controls
+{
+public
+
+class
+ListViewWithDisable $
+:$ %
+ListView& .
+{
+ protected
+override
+void +
+PrepareContainerForItemOverride ?
+( ? @
+DependencyObject @ P
+element Q X
+, X Y
+object Z `
+item a e
+) e f
+{
+
+
+base
+. +
+PrepareContainerForItemOverride 0
+(0 1
+element1 8
+,8 9
+item: >
+)> ?
+;? @
+var
+ container
+=
+element
#
+as
$ &
+ListViewItem
' 3
+;
3 4
+var
+
+binaryItem
+=
+item !
+as" $
+
+IIsEnabled% /
+;/ 0
+if
+(
+ container
+==
+null !
+||" $
+
+binaryItem% /
+==0 2
+null3 7
+)7 8
+return9 ?
+;? @
+ container
+.
+ IsEnabled
+= !
+
+binaryItem" ,
+., -
+ IsEnabled- 6
+;6 7
+ container
+.
+IsHitTestVisible &
+=' (
+
+binaryItem) 3
+.3 4
+ IsEnabled4 =
+;= >
+}
+}
+}
+]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\BreadCrumbUserControl.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+.
+UserControls *
+{
+public
+
+sealed
+partial
+class !
+BreadCrumbUserControl 5
+{
+
+
+public !
+BreadCrumbUserControl $
+($ %
+)% &
+{
+InitializeComponent
+(
+)
!
+;
! "
+}
+public
+IEnumerable
+<
+ IPwEntity $
+>$ %
+ItemsSource& 1
+{
+get
+{
+return
+(
+IEnumerable %
+<% &
+ IPwEntity& /
+>/ 0
+)0 1
+GetValue1 9
+(9 :
+ItemsSourceProperty: M
+)M N
+;N O
+}P Q
+set
+{
+SetValue
+(
+ItemsSourceProperty .
+,. /
+value0 5
+)5 6
+;6 7
+}8 9
+}
+public
+static
+readonly
+DependencyProperty 1
+ItemsSourceProperty2 E
+=F G
+DependencyProperty
+.
+Register '
+(' (
+$str
+,
+typeof
+(
+IEnumerable "
+<" #
+ IPwEntity# ,
+>, -
+)- .
+,. /
+typeof
+( !
+BreadCrumbUserControl ,
+), -
+,- .
+new
+PropertyMetadata $
+($ %
+new% (
+Stack) .
+<. /
+ IPwEntity/ 8
+>8 9
+(9 :
+): ;
+,; <
+(= >
+o> ?
+,? @
+argsA E
+)E F
+=>G I
+{J K
+}L M
+)M N
+)N O
+;O P
+}
+} T
+_C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\CompositeKeyUserControl.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+.
+UserControls *
+{
+public
+
+sealed
+partial
+class #
+CompositeKeyUserControl 7
+{
+public
+CompositeKeyVm
+Model #
+=>$ &
+Grid' +
+.+ ,
+DataContext, 7
+as8 :
+CompositeKeyVm; I
+;I J
+public
+bool
+ CreateNew
+{
+get
+{
+return
+(
+bool
+)
+GetValue '
+(' (
+CreateNewProperty( 9
+)9 :
+;: ;
+}< =
+set
+{
+SetValue
+(
+CreateNewProperty ,
+,, -
+value. 3
+)3 4
+;4 5
+}6 7
+}
+public
+static
+readonly
+DependencyProperty 1
+CreateNewProperty2 C
+=D E
+DependencyProperty
+.
+Register '
+(' (
+$str
+,
+typeof
+(
+bool
+)
+,
+typeof
+( #
+CompositeKeyUserControl .
+). /
+,/ 0
+new
+PropertyMetadata $
+($ %
+false% *
+,* +
+(, -
+o- .
+,. /
+args0 4
+)4 5
+=>6 8
+{9 :
+}; <
+)< =
+)= >
+;> ?
+public
+bool
+ UpdateKey
+{!!
+get""
+{""
+return""
+(""
+bool""
+)""
+GetValue"" '
+(""' (
+UpdateKeyProperty""( 9
+)""9 :
+;"": ;
+}""< =
+set##
+{##
+SetValue##
+(##
+UpdateKeyProperty## ,
+,##, -
+value##. 3
+)##3 4
+;##4 5
+}##6 7
+}$$
+public%%
+static%%
+readonly%%
+DependencyProperty%% 1
+UpdateKeyProperty%%2 C
+=%%D E
+DependencyProperty&&
+.&&
+Register&& '
+(&&' (
+$str''
+,''
+typeof((
+(((
+bool((
+)((
+,((
+typeof))
+()) #
+CompositeKeyUserControl)) .
+))). /
+,))/ 0
+new**
+PropertyMetadata** $
+(**$ %
+false**% *
+,*** +
+(**, -
+o**- .
+,**. /
+args**0 4
+)**4 5
+=>**6 8
+{**9 :
+}**; <
+)**< =
+)**= >
+;**> ?
+public,,
+string,,
+ButtonLabel,, !
+{--
+get..
+{..
+return..
+(..
+string..
+).. !
+GetValue..! )
+(..) *
+ButtonLabelProperty..* =
+)..= >
+;..> ?
+}..@ A
+set//
+{//
+SetValue//
+(//
+ButtonLabelProperty// .
+,//. /
+value//0 5
+)//5 6
+;//6 7
+}//8 9
+}00
+public11
+static11
+readonly11
+DependencyProperty11 1
+ButtonLabelProperty112 E
+=11F G
+DependencyProperty22
+.22
+Register22 '
+(22' (
+$str33
+,33
+typeof44
+(44
+string44
+)44
+,44
+typeof55
+(55 #
+CompositeKeyUserControl55 .
+)55. /
+,55/ 0
+new66
+PropertyMetadata66 $
+(66$ %
+$str66% )
+,66) *
+(66+ ,
+o66, -
+,66- .
+args66/ 3
+)663 4
+=>665 7
+{668 9
+}66: ;
+)66; <
+)66< =
+;66= >
+public99
+bool99 #
+ShowComplexityIndicator99 +
+=>99, .
+ CreateNew99/ 8
+||999 ;
+ UpdateKey99< E
+;99E F
+public;; #
+CompositeKeyUserControl;; &
+(;;& '
+);;' (
+{<<
+InitializeComponent==
+(==
+)== !
+;==! "
+}>>
+public@@
+event@@ (
+PasswordCheckingEventHandler@@ 1
+ValidationChecking@@2 D
+;@@D E
+publicAA
+delegateAA
+voidAA (
+PasswordCheckingEventHandlerAA 9
+(AA9 :
+objectAA: @
+senderAAA G
+,AAG H
+ EventArgsAAI R
+eAAS T
+)AAT U
+;AAU V
+publicBB
+eventBB '
+PasswordCheckedEventHandlerBB 0
+ValidationCheckedBB1 B
+;BBB C
+publicCC
+delegateCC
+voidCC '
+PasswordCheckedEventHandlerCC 8
+(CC8 9
+objectCC9 ?
+senderCC@ F
+,CCF G
+PasswordEventArgsCCH Y
+eCCZ [
+)CC[ \
+;CC\ ]
+privateEE
+asyncEE
+voidEE
+OpenButton_OnClickEE -
+(EE- .
+objectEE. 4
+senderEE5 ;
+,EE; <
+RoutedEventArgsEE= L
+eEEM N
+)EEN O
+{FF
+ValidationCheckingGG
+?GG
+.GG
+InvokeGG &
+(GG& '
+thisGG' +
+,GG+ ,
+newGG- 0
+ EventArgsGG1 :
+(GG: ;
+)GG; <
+)GG< =
+;GG= >
+ifII
+(II
+ UpdateKeyII
+)II
+{JJ
+ModelKK
+.KK
+ UpdateKeyKK
+(KK
+)KK !
+;KK! "
+ValidationCheckedLL !
+?LL! "
+.LL" #
+InvokeLL# )
+(LL) *
+thisLL* .
+,LL. /
+newLL0 3
+PasswordEventArgsLL4 E
+(LLE F
+ModelLLF K
+.LLK L
+ RootGroupLLL U
+)LLU V
+)LLV W
+;LLW X
+}MM
+elseNN
+{OO
+varPP
+resourcePP
+=PP
+newPP "
+ResourcesServicePP# 3
+(PP3 4
+)PP4 5
+;PP5 6
+varQQ
+oldLabelQQ
+=QQ
+ButtonLabelQQ *
+;QQ* +
+ButtonLabelRR
+=RR
+resourceRR &
+.RR& '
+GetResourceValueRR' 7
+(RR7 8
+$strRR8 M
+)RRM N
+;RRN O
+ifSS
+(SS
+awaitSS
+
+DispatcherSS $
+.SS$ %
+RunTaskAsyncSS% 1
+(SS1 2
+asyncSS2 7
+(SS8 9
+)SS9 :
+=>SS; =
+awaitSS> C
+ModelSSD I
+.SSI J
+OpenDatabaseSSJ V
+(SSV W
+ CreateNewSSW `
+)SS` a
+)SSa b
+)SSb c
+{TT
+ValidationCheckedUU %
+?UU% &
+.UU& '
+InvokeUU' -
+(UU- .
+thisUU. 2
+,UU2 3
+newUU4 7
+PasswordEventArgsUU8 I
+(UUI J
+ModelUUJ O
+.UUO P
+ RootGroupUUP Y
+)UUY Z
+)UUZ [
+;UU[ \
+}VV
+ButtonLabelWW
+=WW
+oldLabelWW &
+;WW& '
+}XX
+}YY
+private[[
+void[[
+PasswordBox_KeyDown[[ (
+([[( )
+object[[) /
+sender[[0 6
+,[[6 7
+KeyRoutedEventArgs[[8 J
+e[[K L
+)[[L M
+{\\
+if]]
+(]]
+e]]
+.]]
+Key]]
+==]]
+
+VirtualKey]] #
+.]]# $
+Enter]]$ )
+&&]]* ,
+Model]]- 2
+.]]2 3
+IsValid]]3 :
+)]]: ;
+{^^
+OpenButton_OnClick__ "
+(__" #
+sender__# )
+,__) *
+e__+ ,
+)__, -
+;__- .
+eaa
+.aa
+Handledaa
+=aa
+trueaa
+;aa !
+}bb
+}cc
+privateee
+asyncee
+voidee
+KeyFileButton_Clickee .
+(ee. /
+objectee/ 5
+senderee6 <
+,ee< =
+RoutedEventArgsee> M
+eeeN O
+)eeO P
+{ff
+vargg
+pickergg
+=gg
+newhh
+FileOpenPickerhh "
+{ii
+ViewModejj
+=jj
+PickerViewModejj -
+.jj- .
+Listjj. 2
+,jj2 3"
+SuggestedStartLocationkk *
+=kk+ ,
+PickerLocationIdkk- =
+.kk= >
+DocumentsLibrarykk> N
+}ll
+;ll
+pickermm
+.mm
+FileTypeFiltermm !
+.mm! "
+Addmm" %
+(mm% &
+$strmm& ,
+)mm, -
+;mm- .
+varpp
+filepp
+=pp
+awaitpp
+pickerpp #
+.pp# $
+PickSingleFileAsyncpp$ 7
+(pp7 8
+)pp8 9
+;pp9 :
+ifqq
+(qq
+fileqq
+==qq
+nullqq
+)qq
+returnqq $
+;qq$ %
+Modelrr
+.rr
+KeyFilerr
+=rr
+filerr
+;rr !
+}ss
+privateuu
+asyncuu
+voiduu %
+CreateKeyFileButton_Clickuu 4
+(uu4 5
+objectuu5 ;
+senderuu< B
+,uuB C
+RoutedEventArgsuuD S
+euuT U
+)uuU V
+{vv
+varww
+
+savePickerww
+=ww
+newww
+FileSavePickerww! /
+{xx
"
+SuggestedStartLocationyy &
+=yy' (
+PickerLocationIdyy) 9
+.yy9 :
+DocumentsLibraryyy: J
+,yyJ K
+SuggestedFileNamezz !
+=zz" #
+$strzz$ )
+}{{
+;{{
+
+savePicker||
+.||
+FileTypeChoices|| &
+.||& '
+Add||' *
+(||* +
+$str||+ 5
+,||5 6
+new||7 :
+List||; ?
+<||? @
+string||@ F
+>||F G
+{||H I
+$str||J P
+}||Q R
+)||R S
+;||S T
+var~~
+file~~
+=~~
+await~~
+
+savePicker~~ '
+.~~' (
+PickSaveFileAsync~~( 9
+(~~9 :
+)~~: ;
+;~~; <
+if
+(
+file
+==
+null
+)
+return $
+;$ %
+Model
+
+.
+
+
CreateKeyFile
+
+(
+
+file
+ $
+)
+$ %
+;
+% &
+}
+
+}
+
+} 1
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\TextBoxWithButton.cs
+ namespace
+
ModernKeePass
+
+.
+Controls
+{
+public
+
+class
+TextBoxWithButton "
+:# $
+TextBox% ,
+{
+public
+
+
+string
+
+
+ButtonSymbol
+
+ "
+{
+get
+{
+return
+(
+string
+) !
+GetValue! )
+() *
+ButtonSymbolProperty* >
+)> ?
+;? @
+}A B
+set
+{
+SetValue
+(
+ButtonSymbolProperty
/
+,
/ 0
+value
1 6
+)
6 7
+;
7 8
+}
9 :
+}
+public
+static
+readonly
+DependencyProperty 1
+ButtonSymbolProperty2 F
+=G H
+DependencyProperty
+.
+Register '
+(' (
+$str
+,
+typeof
+(
+string
+)
+,
+typeof
+(
+TextBoxWithButton (
+)( )
+,) *
+new
+PropertyMetadata $
+($ %
+$str% /
+,/ 0
+(1 2
+o2 3
+,3 4
+args5 9
+)9 :
+=>; =
+{> ?
+}@ A
+)A B
+)B C
+;C D
+public
+event
+EventHandler !
+<! "
+RoutedEventArgs" 1
+>1 2
+ButtonClick3 >
+;> ?
+public
+string
+
ButtonTooltip #
+{
+get
+{
+return
+(
+string
+) !
+GetValue! )
+() *!
+ButtonTooltipProperty* ?
+)? @
+;@ A
+}B C
+set
+{
+SetValue
+( !
+ButtonTooltipProperty 0
+,0 1
+value2 7
+)7 8
+;8 9
+}: ;
+}
+public
+static
+readonly
+DependencyProperty 1!
+ButtonTooltipProperty2 G
+=H I
+DependencyProperty
+.
+Register '
+(' (
+$str
+,
+typeof
+(
+string
+)
+,
+typeof
+(
+TextBoxWithButton (
+) ( )
+, ) *
+new!!
+PropertyMetadata!! $
+(!!$ %
+string!!% +
+.!!+ ,
+Empty!!, 1
+,!!1 2
+(!!3 4
+o!!4 5
+,!!5 6
+args!!7 ;
+)!!; <
+=>!!= ?
+{!!@ A
+}!!B C
+)!!C D
+)!!D E
+;!!E F
+public##
+bool##
+IsButtonEnabled## #
+{$$
+get%%
+{%%
+return%%
+(%%
+bool%%
+)%%
+GetValue%% '
+(%%' (#
+IsButtonEnabledProperty%%( ?
+)%%? @
+;%%@ A
+}%%B C
+set&&
+{&&
+SetValue&&
+(&& #
+IsButtonEnabledProperty&& 2
+,&&2 3
+value&&4 9
+)&&9 :
+;&&: ;
+}&&< =
+}''
+public((
+static((
+readonly((
+DependencyProperty(( 1#
+IsButtonEnabledProperty((2 I
+=((J K
+DependencyProperty))
+.))
+Register)) '
+())' (
+$str** !
+,**! "
+typeof++
+(++
+bool++
+)++
+,++
+typeof,,
+(,,
+TextBoxWithButton,, (
+),,( )
+,,,) *
+new--
+PropertyMetadata-- $
+(--$ %
+true--% )
+,--) *
+(--+ ,
+o--, -
+,--- .
+args--/ 3
+)--3 4
+=>--5 7
+{--8 9
+}--: ;
+)--; <
+)--< =
+;--= >
+public//
+
+FlyoutBase//
+ButtonFlyout// &
+{00
+get11
+{11
+return11
+(11
+
+FlyoutBase11 $
+)11$ %
+GetValue11% -
+(11- .
+ButtonFlyoutProperty11. B
+)11B C
+;11C D
+}11E F
+set22
+{22
+SetValue22
+(22
+ButtonFlyoutProperty22 /
+,22/ 0
+value221 6
+)226 7
+;227 8
+}229 :
+}33
+public44
+static44
+readonly44
+DependencyProperty44 1
+ButtonFlyoutProperty442 F
+=44G H
+DependencyProperty55
+.55
+Register55 '
+(55' (
+$str66
+,66
+typeof77
+(77
+
+FlyoutBase77 !
+)77! "
+,77" #
+typeof88
+(88
+TextBoxWithButton88 (
+)88( )
+,88) *
+new99
+PropertyMetadata99 $
+(99$ %
+null99% )
+,99) *
+(99+ ,
+o99, -
+,99- .
+args99/ 3
+)993 4
+=>995 7
+{998 9
+}99: ;
+)99; <
+)99< =
+;99= >
+ protected;;
+override;;
+void;;
+OnApplyTemplate;; /
+(;;/ 0
+);;0 1
+{<<
+base==
+.==
+OnApplyTemplate==
+(== !
+)==! "
+;==" #
+var>>
+actionButton>>
+=>>
+GetTemplateChild>> /
+(>>/ 0
+$str>>0 >
+)>>> ?
+as>>@ B
+Button>>C I
+;>>I J
+if??
+(??
+actionButton??
+!=??
+null?? $
+)??$ %
+{@@
+actionButtonAA
+.AA
+ClickAA "
++=AA# %
+(AA& '
+senderAA' -
+,AA- .
+eAA/ 0
+)AA0 1
+=>AA2 4
+ButtonClickAA5 @
+?AA@ A
+.AAA B
+InvokeAAB H
+(AAH I
+senderAAI O
+,AAO P
+eAAQ R
+)AAR S
+;AAS T
+}BB
+}CC
+}DD
+}EE
+WC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\BooleanToVisibilityConverter.cs
+ namespace
+
ModernKeePass
+
+.
+
+Converters "
+{
+public
+
+class (
+BooleanToVisibilityConverter -
+:. /
+IValueConverter0 ?
+{
+public
+object
+Convert
+(
+object $
+value % *
+, * +
+Type , 0
+
+targetType 1 ;
+, ; <
+object = C
+ parameter D M
+, M N
+string O U
+language V ^
+) ^ _
+{
+
+
+var
+boolean
+=
+value
+is "
+bool# '
+?( )
+(* +
+bool+ /
+)/ 0
+value1 6
+:7 8
+false9 >
+;> ?
+return
+boolean
+?
+
+Visibility '
+.' (
+Visible( /
+:0 1
+
+Visibility2 <
+.< =
+ Collapsed= F
+;F G
+}
+public
+object
+ConvertBack !
+(! "
+object" (
+value) .
+,. /
+Type0 4
+
+targetType5 ?
+,? @
+objectA G
+ parameterH Q
+,Q R
+stringS Y
+languageZ b
+)b c
+{
+var
+
+visibility
+=
+value "
+is# %
+
+Visibility& 0
+?1 2
+(3 4
+
+Visibility4 >
+)> ?
+value@ E
+:F G
+
+VisibilityH R
+.R S
+VisibleS Z
+;Z [
+switch
+(
+
+visibility
+)
+{
+case
+
+Visibility
+.
+Visible '
+:' (
+return) /
+true0 4
+;4 5
+case
+
+Visibility
+.
+ Collapsed )
+:) *
+return+ 1
+false2 7
+;7 8
+default
+:
+throw
+new '
+ArgumentOutOfRangeException 9
+(9 :
+): ;
+;; <
+}
+}
+}
+} ×
+PC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ColorToBrushConverter.cs
+ namespace
+
ModernKeePass
+
+.
+
+Converters "
+{
+public
+
+class !
+ColorToBrushConverter &
+:' (
+IValueConverter) 8
+{
+public
+
+
+object
+
+
+Convert
+
+
+(
+
+
+object
+
+ $
+value
+
+% *
+,
+
+* +
+Type
+
+, 0
+
+targetType
+
+1 ;
+,
+
+; <
+object
+
+= C
+ parameter
+
+D M
+,
+
+M N
+string
+
+O U
+language
+
+V ^
+)
+
+^ _
+{
+var
+color
+=
+value
+is
+Color! &
+?' (
+() *
+Color* /
+?/ 0
+)0 1
+value2 7
+:8 9
+Color: ?
+.? @
+Empty@ E
+;E F
+if
+(
+color
+==
+Color
+.
+Empty
$
+&&
% '
+ parameter
( 1
+is
2 4
+SolidColorBrush
5 D
+)
D E
+return
F L
+(
M N
+SolidColorBrush
N ]
+)
] ^
+ parameter
_ h
+;
h i
+return
+new
+SolidColorBrush &
+(& '
+Windows' .
+.. /
+UI/ 1
+.1 2
+Color2 7
+.7 8
+FromArgb8 @
+(@ A
+color
+.
+Value
+.
+A
+,
+color
+.
+Value
+.
+R
+,
+color
+.
+Value
+.
+G
+,
+color
+.
+Value
+.
+B
+)
+)
+;
+}
+public
+object
+ConvertBack !
+(! "
+object" (
+value) .
+,. /
+Type0 4
+
+targetType5 ?
+,? @
+objectA G
+ parameterH Q
+,Q R
+stringS Y
+languageZ b
+)b c
+{
+throw
+new #
+NotImplementedException -
+(- .
+). /
+;/ 0
+}
+}
+} ž
+[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DoubleToSolidColorBrushConverter.cs
+ namespace
+
ModernKeePass
+
+.
+
+Converters "
+{
+public
+
+class ,
+ DoubleToSolidColorBrushConverter 1
+:2 3
+IValueConverter4 C
+{
+public
+
+
+object
+
+
+Convert
+
+
+(
+
+
+object
+
+ $
+value
+
+% *
+,
+
+* +
+Type
+
+, 0
+
+targetType
+
+1 ;
+,
+
+; <
+object
+
+= C
+ parameter
+
+D M
+,
+
+M N
+string
+
+O U
+language
+
+V ^
+)
+
+^ _
+{
+try
+{
+var
+currentValue
+=! "
+(# $
+double$ *
+)* +
+value, 1
+;1 2
+var
+maxValue
+=
+double %
+.% &
+Parse& +
+(+ ,
+ parameter, 5
+as6 8
+string9 ?
+)? @
+;@ A
+var
+green
+=
+System "
+." #
+Convert# *
+.* +
+ToByte+ 1
+(1 2
+currentValue2 >
+/? @
+maxValueA I
+*J K
+byteL P
+.P Q
+MaxValueQ Y
+)Y Z
+;Z [
+var
+red
+=
+(
+byte
+)
+(! "
+byte" &
+.& '
+MaxValue' /
+-0 1
+green2 7
+)7 8
+;8 9
+return
+new
+SolidColorBrush *
+(* +
+Color+ 0
+.0 1
+FromArgb1 9
+(9 :
+$num: =
+,= >
+red? B
+,B C
+greenD I
+,I J
+$numK L
+)L M
+)M N
+;N O
+}
+catch
+(
+OverflowException $
+)$ %
+{
+return
+new
+SolidColorBrush *
+(* +
+Color+ 0
+.0 1
+FromArgb1 9
+(9 :
+$num: =
+,= >
+$num? @
+,@ A
+byteB F
+.F G
+MaxValueG O
+,O P
+$numQ R
+)R S
+)S T
+;T U
+}
+}
+public
+object
+ConvertBack !
+(! "
+object" (
+value) .
+,. /
+Type0 4
+
+targetType5 ?
+,? @
+objectA G
+ parameterH Q
+,Q R
+stringS Y
+languageZ b
+)b c
+{
+throw
+new #
+NotImplementedException -
+(- .
+). /
+;/ 0
+}
+}
+}
+^C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\InverseBooleanToVisibilityConverter.cs
+ namespace
+
ModernKeePass
+
+.
+
+Converters "
+{
+public
+
+class /
+#InverseBooleanToVisibilityConverter 4
+:5 6
+IValueConverter7 F
+{
+public
+object
+Convert
+(
+object $
+value % *
+, * +
+Type , 0
+
+targetType 1 ;
+, ; <
+object = C
+ parameter D M
+, M N
+string O U
+language V ^
+) ^ _
+{
+
+
+var
+boolean
+=
+value
+is "
+bool# '
+?( )
+(* +
+bool+ /
+)/ 0
+value0 5
+:6 7
+false8 =
+;= >
+return
+boolean
+?
+
+Visibility '
+.' (
+ Collapsed( 1
+:2 3
+
+Visibility4 >
+.> ?
+Visible? F
+;F G
+}
+public
+object
+ConvertBack !
+(! "
+object" (
+value) .
+,. /
+Type0 4
+
+targetType5 ?
+,? @
+objectA G
+ parameterH Q
+,Q R
+stringS Y
+languageZ b
+)b c
+{
+var
+
+visibility
+=
+value "
+is# %
+
+Visibility& 0
+?1 2
+(3 4
+
+Visibility4 >
+)> ?
+value? D
+:E F
+
+VisibilityG Q
+.Q R
+VisibleR Y
+;Y Z
+switch
+(
+
+visibility
+)
+{
+case
+
+Visibility
+.
+Visible '
+:' (
+return) /
+false0 5
+;5 6
+case
+
+Visibility
+.
+ Collapsed )
+:) *
+return+ 1
+true2 6
+;6 7
+default
+:
+throw
+new '
+ArgumentOutOfRangeException 9
+(9 :
+): ;
+;; <
+}
+}
+}
+}
+QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\PluralizationConverter.cs
+ namespace
+
ModernKeePass
+
+.
+
+Converters "
+{
+public
+
+class "
+PluralizationConverter '
+:( )
+IValueConverter* 9
+{
+public
+object
+Convert
+(
+object $
+value% *
+,* +
+Type, 0
+
+targetType1 ;
+,; <
+object= C
+ parameterD M
+,M N
+stringO U
+languageV ^
+)^ _
+{
+var
+
+ %
+pluralizationOptionString
+
+ )
+=
+
+* +
+ parameter
+
+, 5
+as
+
+6 8
+string
+
+9 ?
+;
+
+? @
+var
+pluralizationOptions $
+=% &%
+pluralizationOptionString' @
+?@ A
+.A B
+SplitB G
+(G H
+newH K
+[K L
+]L M
+{N O
+$strP S
+}T U
+,U V
+StringSplitOptionsW i
+.i j
+RemoveEmptyEntriesj |
+)| }
+;} ~
+if
+(
+pluralizationOptions $
+==% '
+null( ,
+||- /
+pluralizationOptions0 D
+.D E
+LengthE K
+!=L N
+$numO P
+)P Q
+returnR X
+stringY _
+._ `
+Empty` e
+;e f
+var
+count
+=
+value
+is
+int
! $
+?
% &
+(
' (
+int
( +
+)
+ ,
+value
- 2
+:
3 4
+$num
5 6
+;
6 7
+var
+text
+=
+count
+==
+$num !
+?" #
+pluralizationOptions$ 8
+[8 9
+$num9 :
+]: ;
+:< =
+pluralizationOptions> R
+[R S
+$numS T
+]T U
+;U V
+return
+$"
+{
+count
+}
+{
+text "
+}" #
+"# $
+;$ %
+}
+public
+object
+ConvertBack !
+(! "
+object" (
+value) .
+,. /
+Type0 4
+
+targetType5 ?
+,? @
+objectA G
+ parameterH Q
+,Q R
+stringS Y
+languageZ b
+)b c
+{
+throw
+new #
+NotImplementedException -
+(- .
+). /
+;/ 0
+}
+}
+} Ú
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ProgressBarLegalValuesConverter.cs
+ namespace
+
ModernKeePass
+
+.
+
+Converters "
+{
+public
+
+class +
+ProgressBarLegalValuesConverter 0
+:1 2
+IValueConverter3 B
+{
+public
+object
+Convert
+(
+object $
+value% *
+,* +
+Type, 0
+
+targetType1 ;
+,; <
+object= C
+ parameterD M
+,M N
+stringO U
+languageV ^
+)^ _
+{
+var
+
+ #
+legalValuesOptionString
+
+ '
+=
+
+( )
+ parameter
+
+* 3
+as
+
+4 6
+string
+
+7 =
+;
+
+= >
+var
+legalValuesOptions "
+=# $#
+legalValuesOptionString% <
+?< =
+.= >
+Split> C
+(C D
+newD G
+[G H
+]H I
+{J K
+$strL O
+}P Q
+,Q R
+StringSplitOptionsS e
+.e f
+RemoveEmptyEntriesf x
+)x y
+;y z
+if
+(
+legalValuesOptions "
+==# %
+null& *
+||+ -
+legalValuesOptions. @
+.@ A
+LengthA G
+!=H J
+$numK L
+)L M
+returnN T
+$numU V
+;V W
+var
+minValue
+=
+double !
+.! "
+Parse" '
+(' (
+legalValuesOptions( :
+[: ;
+$num; <
+]< =
+)= >
+;> ?
+var
+maxValue
+=
+double !
+.! "
+Parse" '
+(' (
+legalValuesOptions( :
+[: ;
+$num; <
+]< =
+)= >
+;> ?
+var
+count
+=
+value
+is
+double! '
+?( )
+(* +
+double+ 1
+)1 2
+value2 7
+:8 9
+$num: ;
+;; <
+if
+(
+count
+>
+maxValue
+) !
+return" (
+maxValue) 1
+;1 2
+if
+(
+count
+<
+minValue
+) !
+return" (
+minValue) 1
+;1 2
+return
+count
+;
+}
+public
+object
+ConvertBack !
+(! "
+object" (
+value) .
+,. /
+Type0 4
+
+targetType5 ?
+,? @
+objectA G
+ parameterH Q
+,Q R
+stringS Y
+languageZ b
+)b c
+{
+throw
+new #
+NotImplementedException -
+(- .
+). /
+;/ 0
+}
+}
+} á
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\TextToWidthConverter.cs
+ namespace
+
ModernKeePass
+
+.
+
+Converters "
+{
+public
+
+class
+TextToWidthConverter %
+:& '
+IValueConverter( 7
+{
+public
+object
+Convert
+(
+object $
+value% *
+,* +
+Type, 0
+
+targetType1 ;
+,; <
+object= C
+ parameterD M
+,M N
+stringO U
+languageV ^
+)^ _
+{
+var
+
+
+fontSize
+
+
+=
+
+
+double
+
+ !
+.
+
+! "
+Parse
+
+" '
+(
+
+' (
+ parameter
+
+( 1
+as
+
+2 4
+string
+
+5 ;
+)
+
+; <
+;
+
+< =
+var
+text
+=
+value
+as
+string &
+;& '
+return
+text
+?
+.
+Length
+* !
+fontSize" *
+??+ -
+$num. /
+;/ 0
+}
+public
+object
+ConvertBack !
+(! "
+object" (
+value) .
+,. /
+Type0 4
+
+targetType5 ?
+,? @
+objectA G
+ parameterH Q
+,Q R
+stringS Y
+languageZ b
+)b c
+{
+throw
+new #
+NotImplementedException -
+(- .
+). /
+;/ 0
+}
+}
+} Â
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Events\PasswordEventArgs.cs
+ namespace
+
ModernKeePass
+
+.
+Events
+{
+public
+
+class
+PasswordEventArgs "
+:" #
+ EventArgs$ -
+{
+public
+GroupVm
+ RootGroup
+{! "
+get# &
+;& '
+set( +
+;+ ,
+}- .
+public
+
+
+PasswordEventArgs
+
+
+(
+
+ !
+GroupVm
+
+! (
+groupVm
+
+) 0
+)
+
+0 1
+{
+ RootGroup
+=
+groupVm
+;
+}
+}
+}
+EC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IIsEnabled.cs
+ namespace
+
ModernKeePass
+
+.
+
+Interfaces "
+{
+public
+
+ interface
+
+IIsEnabled
+{
+bool
+ IsEnabled
+{
+get
+;
+}
+}
+} Ā
+DC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IPwEntity.cs
+ namespace
+
ModernKeePass
+
+.
+
+Interfaces "
+{
+public
+
+ interface
+ IPwEntity
+{
+GroupVm
+ParentGroup
+{
+get !
+;! "
+}# $
+GroupVm
+
PreviousGroup
+{
+get #
+; # $
+} % &
+int
+
+
+IconId
+
+
+{
+
+
+get
+
+
+;
+
+
+}
+
+
+string
+Id
+{
+get
+;
+}
+string
+Name
+{
+get
+;
+set
+;
+} !
+IEnumerable
+<
+ IPwEntity
+>
+
+BreadCrumb
)
+{
* +
+get
, /
+;
/ 0
+}
1 2
+bool
+
+IsEditMode
+{
+get
+;
+}
+bool
+IsRecycleOnDelete
+{
+get! $
+;$ %
+}& '
+void
+Move
+(
+GroupVm
+destination %
+)% &
+;& '
+void
+CommitDelete
+(
+)
+;
+void
+
+UndoDelete
+(
+)
+;
+void!!
+Save!!
+(!!
+)!!
+;!!
+void%%
+
MarkForDelete%%
+(%%
+string%% !
+recycleBinTitle%%" 1
+)%%1 2
+;%%2 3
+}&&
+}'' į
+CC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class
+MainPage (
+{
+public
+new
+MainVm
+Model
+=> "
+(# $
+MainVm$ *
+)* +
+DataContext+ 6
+;6 7
+public
+MainPage
+(
+)
+{
+InitializeComponent
+(
+) !
+;! "
+ListView
+=
+MenuListView #
+;# $
+ListViewSource
+=
+MenuItemsSource ,
+;, -
+}
+private
+new
+void %
+ListView_SelectionChanged 2
+(2 3
+object3 9
+sender: @
+,@ A%
+SelectionChangedEventArgsB [
+e\ ]
+)] ^
+{
+base
+. %
+ListView_SelectionChanged *
+(* +
+sender+ 1
+,1 2
+e3 4
+)4 5
+;5 6
+var
+selectedItem
+=
+Model $
+.$ %
+SelectedItem% 1
+as2 4
+MainMenuItemVm5 C
+;C D
+if
+(
+selectedItem
+==
+null $
+)$ %
+ MenuFrame& /
+./ 0
+Navigate0 8
+(8 9
+typeof9 ?
+(? @
+WelcomePage@ K
+)K L
+)L M
+;M N
+else
+selectedItem
+.
+Destination )
+.) *
+Navigate* 2
+(2 3
+selectedItem3 ?
+.? @
+PageType@ H
+,H I
+selectedItemJ V
+.V W
+ ParameterW `
+)` a
+;a b
+}
+ protected
+override
+void
+
OnNavigatedTo -
+(- .
+NavigationEventArgs. A
+eB C
+)C D
+{
+base!!
+.!!
+
OnNavigatedTo!!
+(!!
+e!!
+)!! !
+;!!! "
+DataContext""
+=""
+new""
+MainVm"" $
+(""$ %
+Frame""% *
+,""* +
+ MenuFrame"", 5
+)""5 6
+;""6 7
+}##
+}$$
+}%% û
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\AboutPage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class
+ AboutPage )
+{
+public
+
+
+ AboutPage
+
+
+(
+
+
+)
+
+
+{
+InitializeComponent
+(
+) !
+;! "
+}
+}
+} ķ
+YC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\NewDatabasePage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+
+
+public
+
+sealed
+partial
+class
+NewDatabasePage /
+{
+public
+NewVm
+Model
+=>
+(
+NewVm $
+)$ %
+DataContext% 0
+;0 1
+public
+NewDatabasePage
+(
+)
+{
+InitializeComponent
+(
+) !
+;! "
+}
+private
+async
+void
+ButtonBase_OnClick -
+(- .
+object. 4
+sender5 ;
+,; <
+RoutedEventArgs= L
+eM N
+)N O
+{
+var
+
+savePicker
+=
+new
+FileSavePicker! /
+{
"
+SuggestedStartLocation &
+=' (
+PickerLocationId) 9
+.9 :
+DocumentsLibrary: J
+,J K
+SuggestedFileName !
+=" #
+$str$ 2
+}
+;
+
+savePicker
+.
+FileTypeChoices &
+.& '
+Add' *
+(* +
+$str+ A
+,A B
+newC F
+ListG K
+<K L
+stringL R
+>R S
+{T U
+$strV ]
+}^ _
+)_ `
+;` a
+var
+file
+=
+await
+
+savePicker '
+. ' (
+PickSaveFileAsync ( 9
+( 9 :
+) : ;
+; ; <
+if!!
+(!!
+file!!
+==!!
+null!!
+)!!
+return!! $
+;!!$ %
+Model""
+.""
+OpenFile""
+(""
+file""
+)""
+;"" !
+}##
+}$$
+}%%
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class
+SettingsPage ,
+{
+public
+new
+
+SettingsVm
+Model #
+=>$ &
+(' (
+
+SettingsVm( 2
+)2 3
+DataContext3 >
+;> ?
+public
+SettingsPage
+(
+)
+{
+InitializeComponent
+(
+) !
+;! "
+ListView
+=
+MenuListView #
+;# $
+ListViewSource
+=
+MenuItemsSource ,
+;, -
+}
+private
+new
+void %
+ListView_SelectionChanged 2
+(2 3
+object3 9
+sender: @
+,@ A%
+SelectionChangedEventArgsB [
+e\ ]
+)] ^
+{
+base
+. %
+ListView_SelectionChanged *
+(* +
+sender+ 1
+,1 2
+e3 4
+)4 5
+;5 6
+var
+selectedItem
+=
+Model $
+.$ %
+SelectedItem% 1
+as2 4
+ListMenuItemVm5 C
+;C D
+ MenuFrame
+?
+.
+Navigate
+(
+selectedItem ,
+==- /
+null0 4
+?5 6
+typeof7 =
+(= >
+SettingsWelcomePage> Q
+)Q R
+:S T
+selectedItemU a
+.a b
+PageTypeb j
+)j k
+;k l
+}
+}
+}
+UC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\WelcomePage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class
+WelcomePage +
+{
+public
+
+
+WelcomePage
+
+
+(
+
+
+)
+
+
+{
+InitializeComponent
+(
+) !
+;! "
+}
+}
+} â
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\AboutVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+AboutVm
+{
+private
+readonly
+Package
+_package! )
+;) *
+public
+string
+Name
+=>
+_package &
+. & '
+DisplayName ' 2
+; 2 3
+public
+string
+Version
+{
+get
+{
+var
+version
+=
+_package &
+.& '
+Id' )
+.) *
+Version* 1
+;1 2
+return
+$"
+{
+version !
+.! "
+Major" '
+}' (
+.( )
+{) *
+version* 1
+.1 2
+Minor2 7
+}7 8
+"8 9
+;9 :
+}
+}
+public
+AboutVm
+(
+)
+:
+this
+(
+Package '
+.' (
+Current( /
+)/ 0
+{1 2
+}3 4
+public
+AboutVm
+(
+Package
+package &
+)& '
+{
+_package
+=
+package
+;
+}
+}
+} m
+IC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\CompositeKeyVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+CompositeKeyVm
+: %
+NotifyPropertyChangedBase! :
+{
+public
+enum
+StatusTypes
+{
+Normal
+=
+$num
+,
+Error
+=
+$num
+,
+Warning
+=
+$num
+,
+Success
+=
+$num
+}
+public
+IDatabaseService
+Database (
+{) *
+get+ .
+;. /
+set0 3
+;3 4
+}5 6
+public
+bool
+HasPassword
+{
+get
+{
+return
+_hasPassword %
+;% &
+}' (
+set
+{
+SetProperty
+(
+ref
+_hasPassword ,
+,, -
+value. 3
+)3 4
+;4 5
+OnPropertyChanged !
+( ! "
+$str " +
+) + ,
+; , -
+}!!
+}""
+public$$
+bool$$
+
+HasKeyFile$$
+{%%
+get&&
+{&&
+return&&
+_hasKeyFile&& $
+;&&$ %
+}&&& '
+set''
+{((
+SetProperty))
+())
+ref))
+_hasKeyFile)) +
+,))+ ,
+value))- 2
+)))2 3
+;))3 4
+OnPropertyChanged** !
+(**! "
+$str**" +
+)**+ ,
+;**, -
+}++
+},,
+public..
+bool..
+HasUserAccount.. "
+{//
+get00
+{00
+return00
+_hasUserAccount00 (
+;00( )
+}00* +
+set11
+{22
+SetProperty33
+(33
+ref33
+_hasUserAccount33 /
+,33/ 0
+value331 6
+)336 7
+;337 8
+OnPropertyChanged44 !
+(44! "
+$str44" +
+)44+ ,
+;44, -
+}55
+}66
+public88
+bool88
+IsValid88
+=>88
+!88
+
+_isOpening88 *
+&&88+ -
+(88. /
+HasPassword88/ :
+||88; =
+
+HasKeyFile88> H
+&&88I K
+KeyFile88L S
+!=88T V
+null88W [
+||88\ ^
+HasUserAccount88_ m
+)88m n
+;88n o
+public::
+string::
+Status::
+{;;
+get<<
+{<<
+return<<
+_status<<
+;<< !
+}<<" #
+set==
+{==
+SetProperty==
+(==
+ref== !
+_status==" )
+,==) *
+value==+ 0
+)==0 1
+;==1 2
+}==3 4
+}>>
+public@@
+int@@
+
+StatusType@@
+{AA
+getBB
+{BB
+returnBB
+(BB
+intBB
+)BB
+_statusTypeBB )
+;BB) *
+}BB+ ,
+setCC
+{CC
+SetPropertyCC
+(CC
+refCC !
+_statusTypeCC" -
+,CC- .
+(CC/ 0
+StatusTypesCC0 ;
+)CC; <
+valueCC< A
+)CCA B
+;CCB C
+}CCD E
+}DD
+publicFF
+stringFF
+PasswordFF
+{GG
+getHH
+{HH
+returnHH
+ _passwordHH "
+;HH" #
+}HH$ %
+setII
+{JJ
+ _passwordKK
+=KK
+valueKK !
+;KK! "
+OnPropertyChangedLL !
+(LL! "
+$strLL" ?
+)LL? @
+;LL@ A
+
+StatusTypeMM
+=MM
+(MM
+intMM !
+)MM! "
+StatusTypesMM" -
+.MM- .
+NormalMM. 4
+;MM4 5
+StatusNN
+=NN
+stringNN
+.NN
+EmptyNN %
+;NN% &
+}OO
+}PP
+publicRR
+StorageFileRR
+KeyFileRR "
+{SS
+getTT
+{TT
+returnTT
+_keyFileTT !
+;TT! "
+}TT# $
+setUU
+{VV
+_keyFileWW
+=WW
+valueWW
+;WW !
+KeyFileTextXX
+=XX
+valueXX #
+?XX# $
+.XX$ %
+NameXX% )
+;XX) *
+OnPropertyChangedYY !
+(YY! "
+$strYY" +
+)YY+ ,
+;YY, -
+}ZZ
+}[[
+public]]
+string]]
+KeyFileText]] !
+{^^
+get__
+{__
+return__
+_keyFileText__ %
+;__% &
+}__' (
+set``
+{``
+SetProperty``
+(``
+ref`` !
+_keyFileText``" .
+,``. /
+value``0 5
+)``5 6
+;``6 7
+}``8 9
+}aa
+publiccc
+GroupVmcc
+ RootGroupcc
+{cc! "
+getcc# &
+;cc& '
+setcc( +
+;cc+ ,
+}cc- .
+publicee
+doubleee '
+PasswordComplexityIndicatoree 1
+=>ee2 4
+QualityEstimationee5 F
+.eeF G
+EstimatePasswordBitseeG [
+(ee[ \
+Passwordee\ d
+?eed e
+.eee f
+ToCharArrayeef q
+(eeq r
+)eer s
+)ees t
+;eet u
+privategg
+boolgg
+_hasPasswordgg !
+;gg! "
+privatehh
+boolhh
+_hasKeyFilehh
+;hh !
+privateii
+boolii
+_hasUserAccountii $
+;ii$ %
+privatejj
+booljj
+
+_isOpeningjj
+;jj
+privatekk
+stringkk
+ _passwordkk
+=kk! "
+stringkk# )
+.kk) *
+Emptykk* /
+;kk/ 0
+privatell
+stringll
+_statusll
+;ll
+privatemm
+StatusTypesmm
+_statusTypemm '
+;mm' (
+privatenn
+StorageFilenn
+_keyFilenn $
+;nn$ %
+privateoo
+stringoo
+_keyFileTextoo #
+;oo# $
+privatepp
+readonlypp
+IResourceServicepp )
+ _resourcepp* 3
+;pp3 4
+publicrr
+CompositeKeyVmrr
+(rr
+)rr
+:rr !
+thisrr" &
+(rr& '
+DatabaseServicerr' 6
+.rr6 7
+Instancerr7 ?
+,rr? @
+newrrA D
+ResourcesServicerrE U
+(rrU V
+)rrV W
+)rrW X
+{rrY Z
+}rr[ \
+publictt
+CompositeKeyVmtt
+(tt
+IDatabaseServicett .
+databasett/ 7
+,tt7 8
+IResourceServicett9 I
+resourcettJ R
+)ttR S
+{uu
+ _resourcevv
+=vv
+resourcevv
+;vv !
+_keyFileTextww
+=ww
+ _resourceww $
+.ww$ %
+GetResourceValueww% 5
+(ww5 6
+$strww6 R
+)wwR S
+;wwS T
+Databasexx
+=xx
+databasexx
+;xx
+}yy
+public{{
+async{{
+Task{{
+<{{
+bool{{
+>{{
+OpenDatabase{{ ,
+({{, -
+bool{{- 1
+ createNew{{2 ;
+){{; <
+{||
+try}}
+{~~
+
+_isOpening
+=
+true !
+;! "
+await
+
+Database
+
+.
+
+Open
+ #
+(
+# $
+CreateCompositeKey
+$ 6
+(
+6 7
+)
+7 8
+,
+8 9
+ createNew
+: C
+)
+C D
+;
+D E
+await
+
+Task
+
+.
+
+Run
+
+(
+
+(
+
+)
+ !
+=>
+" $
+ RootGroup
+% .
+=
+/ 0
+Database
+1 9
+.
+9 :
+ RootGroup
+: C
+)
+C D
+;
+D E
+return
+
+true
+
+;
+
+}
+
+catch
+
+(
+
+ArgumentException
+ $
+)
+$ %
+{
+
+var
+
+errorMessage
+
+=
+! "
+new
+# &
+
StringBuilder
+' 4
+(
+4 5
+$"
+5 7
+{
+7 8
+ _resource
+8 A
+.
+A B
+GetResourceValue
+B R
+(
+R S
+$str
+S j
+)
+j k
+}
+k l
+\n
+l n
+"
+n o
+)
+o p
+;
+p q
+if
+
+(
+
+HasPassword
+
+)
+
+errorMessage
+! -
+.
+- .
+
+AppendLine
+. 8
+(
+8 9
+ _resource
+9 B
+.
+B C
+GetResourceValue
+C S
+(
+S T
+$str
+T s
+)
+s t
+)
+t u
+;
+u v
+if
+
+(
+
+
+HasKeyFile
+
+)
+
+errorMessage
+ ,
+.
+, -
+
+AppendLine
+- 7
+(
+7 8
+ _resource
+8 A
+.
+A B
+GetResourceValue
+B R
+(
+R S
+$str
+S q
+)
+q r
+)
+r s
+;
+s t
+if
+
+(
+
+HasUserAccount
+ "
+)
+" #
+errorMessage
+$ 0
+.
+0 1
+
+AppendLine
+1 ;
+(
+; <
+ _resource
+< E
+.
+E F
+GetResourceValue
+F V
+(
+V W
+$str
+W u
+)
+u v
+)
+v w
+;
+w x
+UpdateStatus
+
+(
+
+errorMessage
+ )
+.
+) *
+ToString
+* 2
+(
+2 3
+)
+3 4
+,
+4 5
+StatusTypes
+6 A
+.
+A B
+Error
+B G
+)
+G H
+;
+H I
+}
+
+catch
+
+(
+
+ Exception
+
+e
+
+)
+
+{
+
+var
+
+error
+
+=
+
+$"
+
+{
+
+ _resource
+ (
+.
+( )
+GetResourceValue
+) 9
+(
+9 :
+$str
+: Q
+)
+Q R
+}
+R S
+{
+S T
+e
+T U
+.
+U V
+Message
+V ]
+}
+] ^
+"
+^ _
+;
+_ `
+UpdateStatus
+
+(
+
+error
+ "
+,
+" #
+StatusTypes
+$ /
+.
+/ 0
+Error
+0 5
+)
+5 6
+;
+6 7
+}
+
+finally
+
+{
+
+
+_isOpening
+
+=
+
+false
+ "
+;
+" #
+}
+
+return
+
+false
+
+;
+
+}
+
+public
+
+void
+
+ UpdateKey
+
+(
+
+)
+
+{
+
+Database
+
+.
+
+CompositeKey
+ !
+=
+" #
+CreateCompositeKey
+$ 6
+(
+6 7
+)
+7 8
+;
+8 9
+UpdateStatus
+
+(
+
+ _resource
+ "
+.
+" #
+GetResourceValue
+# 3
+(
+3 4
+$str
+4 I
+)
+I J
+,
+J K
+StatusTypes
+L W
+.
+W X
+Success
+X _
+)
+_ `
+;
+` a
+}
+
+public
+
+void
+
+
CreateKeyFile
+ !
+(
+! "
+StorageFile
+" -
+file
+. 2
+)
+2 3
+{
+
+
+KcpKeyFile
+ĄĄ
+.
+ĄĄ
+Create
+ĄĄ
+(
+ĄĄ
+file
+ĄĄ "
+,
+ĄĄ" #
+null
+ĄĄ$ (
+)
+ĄĄ( )
+;
+ĄĄ) *
+KeyFile
+ĸĸ
+=
+ĸĸ
+file
+ĸĸ
+;
+ĸĸ
+}
+ŖŖ
+private
+ĨĨ
+void
+ĨĨ
+UpdateStatus
+ĨĨ !
+(
+ĨĨ! "
+string
+ĨĨ" (
+text
+ĨĨ) -
+,
+ĨĨ- .
+StatusTypes
+ĨĨ/ :
+type
+ĨĨ; ?
+)
+ĨĨ? @
+{
+ĻĻ
+Status
+§§
+=
+§§
+text
+§§
+;
+§§
+
+StatusType
+¨¨
+=
+¨¨
+(
+¨¨
+int
+¨¨
+)
+¨¨
+type
+¨¨ "
+;
+¨¨" #
+}
+ŠŠ
+private
+ĢĢ
+CompositeKey
+ĢĢ
+CreateCompositeKey
+ĢĢ /
+(
+ĢĢ/ 0
+)
+ĢĢ0 1
+{
+ŦŦ
+var
+
+compositeKey
+
+=
+
+new
+ "
+CompositeKey
+# /
+(
+/ 0
+)
+0 1
+;
+1 2
+if
+ŽŽ
+(
+ŽŽ
+HasPassword
+ŽŽ
+)
+ŽŽ
+compositeKey
+ŽŽ )
+.
+ŽŽ) *
+
+AddUserKey
+ŽŽ* 4
+(
+ŽŽ4 5
+new
+ŽŽ5 8
+KcpPassword
+ŽŽ9 D
+(
+ŽŽD E
+Password
+ŽŽE M
+)
+ŽŽM N
+)
+ŽŽN O
+;
+ŽŽO P
+if
+¯¯
+(
+¯¯
+
+HasKeyFile
+¯¯
+&&
+¯¯
+KeyFile
+¯¯ %
+!=
+¯¯& (
+null
+¯¯) -
+)
+¯¯- .
+compositeKey
+¯¯/ ;
+.
+¯¯; <
+
+AddUserKey
+¯¯< F
+(
+¯¯F G
+new
+¯¯G J
+
+KcpKeyFile
+¯¯K U
+(
+¯¯U V
+IOConnectionInfo
+¯¯V f
+.
+¯¯f g
+FromFile
+¯¯g o
+(
+¯¯o p
+KeyFile
+¯¯p w
+)
+¯¯w x
+)
+¯¯x y
+)
+¯¯y z
+;
+¯¯z {
+if
+°°
+(
+°°
+HasUserAccount
+°°
+)
+°°
+compositeKey
+°° ,
+.
+°°, -
+
+AddUserKey
+°°- 7
+(
+°°7 8
+new
+°°8 ;
+KcpUserAccount
+°°< J
+(
+°°J K
+)
+°°K L
+)
+°°L M
+;
+°°M N
+return
+ąą
+compositeKey
+ąą
+;
+ąą
+}
+˛˛
+}
+ŗŗ
+}´´ ¯
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\ListMenuItemVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+ListMenuItemVm
+: !%
+NotifyPropertyChangedBase" ;
+,; <
+
+IIsEnabled= G
+,G H
+ISelectableModelI Y
+{
+private
+
+
+bool
+
+
+_isSelected
+
+
+;
+
+ !
+public
+string
+Title
+{
+get !
+;! "
+set# &
+;& '
+}( )
+public
+string
+Group
+{
+get !
+;! "
+set# &
+;& '
+}( )
+=* +
+$str, /
+;/ 0
+public
+Type
+PageType
+{
+get "
+;" #
+set$ '
+;' (
+}) *
+public
+Symbol
+
+SymbolIcon
+{! "
+get# &
+;& '
+set( +
+;+ ,
+}- .
+public
+bool
+ IsEnabled
+{
+get #
+;# $
+set% (
+;( )
+}* +
+=, -
+true. 2
+;2 3
+public
+bool
+
+IsSelected
+{
+get
+{
+return
+_isSelected $
+;$ %
+}& '
+set
+{
+SetProperty
+(
+ref !
+_isSelected" -
+,- .
+value/ 4
+)4 5
+;5 6
+}7 8
+}
+public
+override
+string
+ToString '
+(' (
+)( )
+{
+return
+Title
+;
+}
+}
+}
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\MainMenuItemVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+MainMenuItemVm
+:
+ListMenuItemVm! /
+{
+public
+object
+ Parameter
+{ !
+get" %
+;% &
+set' *
+;* +
+}, -
+public
+Frame
+Destination
+{! "
+get# &
+;& '
+set( +
+;+ ,
+}- .
+}
+}
+
+
+MC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\RecentItemVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+RecentItemVm
+: %
+NotifyPropertyChangedBase 8
+,8 9
+ISelectableModel: J
+,J K
+IRecentItemL W
+{
+private
+
+
+bool
+
+
+_isSelected
+
+
+;
+
+ !
+public
+StorageFile
+DatabaseFile '
+{( )
+get* -
+;- .
+}/ 0
+public
+string
+Token
+{
+get
!
+;
! "
+}
# $
+public
+string
+Name
+{
+get
+; !
+}" #
+public
+string
+Path
+=>
+DatabaseFile *
+?* +
+.+ ,
+Path, 0
+;0 1
+public
+bool
+
+IsSelected
+{
+get
+{
+return
+_isSelected $
+;$ %
+}& '
+set
+{
+SetProperty
+(
+ref !
+_isSelected" -
+,- .
+value/ 4
+)4 5
+;5 6
+}7 8
+}
+public
+RecentItemVm
+(
+)
+{
+}
+public
+RecentItemVm
+(
+string "
+token# (
+,( )
+string* 0
+metadata1 9
+,9 :
+IStorageItem; G
+fileH L
+)L M
+{
+Token
+=
+token
+;
+Name
+=
+metadata
+;
+DatabaseFile
+=
+file
+as "
+StorageFile# .
+;. /
+}
+public
+void
+OpenDatabaseFile $
+($ %
+)% &
+{
+OpenDatabaseFile!!
+(!!
+DatabaseService!! ,
+.!!, -
+Instance!!- 5
+)!!5 6
+;!!6 7
+}""
+public$$
+void$$
+OpenDatabaseFile$$ $
+($$$ %
+IDatabaseService$$% 5
+database$$6 >
+)$$> ?
+{%%
+database&&
+.&&
+DatabaseFile&& !
+=&&" #
+DatabaseFile&&$ 0
+;&&0 1
+}''
+public))
+void))
+UpdateAccessTime)) $
+())$ %
+)))% &
+{**
+UpdateAccessTime++
+(++
+
RecentService++ *
+.++* +
+Instance+++ 3
+)++3 4
+;++4 5
+},,
+public..
+async..
+void..
+UpdateAccessTime.. *
+(..* +
+IRecentService..+ 9
+recent..: @
+)..@ A
+{//
+await00
+recent00
+.00
+GetFileAsync00 %
+(00% &
+Token00& +
+)00+ ,
+;00, -
+}11
+}22
+}33 Ĩ;
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\EntryDetailPage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class
+EntryDetailPage /
+{
+public
+EntryVm
+Model
+=>
+( !
+EntryVm! (
+)( )
+DataContext* 5
+;5 6
+public
+NavigationHelper
+NavigationHelper 0
+{1 2
+get3 6
+;6 7
+}8 9
+public
+EntryDetailPage
+(
+)
+{
+InitializeComponent
+(
+) !
+;! "
+NavigationHelper
+=
+new "
+NavigationHelper# 3
+(3 4
+this4 8
+)8 9
+;9 :
+NavigationHelper
+.
+ LoadState &
++=' )&
+navigationHelper_LoadState* D
+;D E
+}
+private--
+void-- &
+navigationHelper_LoadState-- /
+(--/ 0
+object--0 6
+sender--7 =
+,--= >
+LoadStateEventArgs--? Q
+e--R S
+)--S T
+{--U V
+}--V W
+ protected::
+override::
+void::
+
OnNavigatedTo:: -
+(::- .
+NavigationEventArgs::. A
+e::B C
+)::C D
+{;;
+NavigationHelper<<
+.<<
+
OnNavigatedTo<< *
+(<<* +
+e<<+ ,
+)<<, -
+;<<- .
+if==
+(==
+!==
+(==
+e==
+.==
+ Parameter==
+is==
+EntryVm==! (
+)==( )
+)==) *
+return==+ 1
+;==1 2
+DataContext>>
+=>>
+(>>
+EntryVm>> "
+)>>" #
+e>># $
+.>>$ %
+ Parameter>>% .
+;>>. /
+}??
+ protectedAA
+overrideAA
+voidAA
+OnNavigatedFromAA /
+(AA/ 0
+NavigationEventArgsAA0 C
+eAAD E
+)AAE F
+{BB
+NavigationHelperCC
+.CC
+OnNavigatedFromCC ,
+(CC, -
+eCC- .
+)CC. /
+;CC/ 0
+}DD
+privateHH
+voidHH
+DeleteButton_ClickHH '
+(HH' (
+objectHH( .
+senderHH/ 5
+,HH5 6
+RoutedEventArgsHH7 F
+eHHG H
+)HHH I
+{II
+varJJ
+resourceJJ
+=JJ
+newJJ
+ResourcesServiceJJ /
+(JJ/ 0
+)JJ0 1
+;JJ1 2
+varKK
+messageKK
+=KK
+ModelKK
+.KK
+IsRecycleOnDeleteKK 1
+?LL
+resourceLL
+.LL
+GetResourceValueLL +
+(LL+ ,
+$strLL, H
+)LLH I
+:MM
+resourceMM
+.MM
+GetResourceValueMM +
+(MM+ ,
+$strMM, G
+)MMG H
+;MMH I
+varNN
+textNN
+=NN
+ModelNN
+.NN
+IsRecycleOnDeleteNN .
+?NN/ 0
+resourceNN1 9
+.NN9 :
+GetResourceValueNN: J
+(NNJ K
+$strNNK Z
+)NNZ [
+:NN\ ]
+resourceNN^ f
+.NNf g
+GetResourceValueNNg w
+(NNw x
+$str NNx
+)
+NN
+;
+NN
+MessageDialogHelperOO
+.OO
+ShowActionDialogOO 0
+(OO0 1
+resourceOO1 9
+.OO9 :
+GetResourceValueOO: J
+(OOJ K
+$strOOK ^
+)OO^ _
+,OO_ `
+messageOOa h
+,OOh i
+resourcePP
+.PP
+GetResourceValuePP )
+(PP) *
+$strPP* D
+)PPD E
+,PPE F
+resourceQQ
+.QQ
+GetResourceValueQQ )
+(QQ) *
+$strQQ* D
+)QQD E
+,QQE F
+aQQG H
+=>QQI K
+{RR
#
+ToastNotificationHelperSS '
+.SS' (
+ShowMovedToastSS( 6
+(SS6 7
+ModelSS7 <
+,SS< =
+resourceSS> F
+.SSF G
+GetResourceValueSSG W
+(SSW X
+$strSSX h
+)SSh i
+,SSi j
+textSSk o
+)SSo p
+;SSp q
+ModelTT
+.TT
+
MarkForDeleteTT #
+(TT# $
+resourceTT$ ,
+.TT, -
+GetResourceValueTT- =
+(TT= >
+$strTT> O
+)TTO P
+)TTP Q
+;TTQ R
+ifUU
+(UU
+FrameUU
+.UU
+ CanGoBackUU #
+)UU# $
+FrameUU% *
+.UU* +
+GoBackUU+ 1
+(UU1 2
+)UU2 3
+;UU3 4
+}VV
+,VV
+nullVV
+)VV
+;VV
+}WW
+privateYY
+voidYY
+RestoreButton_ClickYY (
+(YY( )
+objectYY) /
+senderYY0 6
+,YY6 7
+RoutedEventArgsYY8 G
+eYYH I
+)YYI J
+{ZZ
+var[[
+resource[[
+=[[
+new[[
+ResourcesService[[ /
+([[/ 0
+)[[0 1
+;[[1 2#
+ToastNotificationHelper\\ #
+.\\# $
+ShowMovedToast\\$ 2
+(\\2 3
+Model\\3 8
+,\\8 9
+resource\\: B
+.\\B C
+GetResourceValue\\C S
+(\\S T
+$str\\T i
+)\\i j
+,\\j k
+resource\\l t
+.\\t u
+GetResourceValue \\u
+(
+\\
+$str
+\\
+)
+\\
+)
+\\
+;
+\\
+if]]
+(]]
+Frame]]
+.]]
+ CanGoBack]]
+)]]
+Frame]]! &
+.]]& '
+GoBack]]' -
+(]]- .
+)]]. /
+;]]/ 0
+}^^
+private``
+void`` )
+EntryDetailPage_OnSizeChanged`` 2
+(``2 3
+object``3 9
+sender``: @
+,``@ A
+SizeChangedEventArgs``B V
+e``W X
+)``X Y
+{aa
+VisualStateManagerbb
+.bb
+ GoToStatebb (
+(bb( )
+thisbb) -
+,bb- .
+ebb/ 0
+.bb0 1
+NewSizebb1 8
+.bb8 9
+Widthbb9 >
+<bb? @
+$numbbA D
+?bbE F
+$strbbG N
+:bbO P
+$strbbQ X
+,bbX Y
+truebbZ ^
+)bb^ _
+;bb_ `
+}cc
+privateee
+voidee 7
++HamburgerMenuUserControl_OnSelectionChangedee @
+(ee@ A
+objecteeA G
+sendereeH N
+,eeN O%
+SelectionChangedEventArgseeP i
+eeej k
+)eek l
+{ff
+vargg
+listViewgg
+=gg
+sendergg !
+asgg" $
+ListViewgg% -
+;gg- .
+EntryVmhh
+entryhh
+;hh
+switchii
+(ii
+listViewii
+?ii
+.ii
+
SelectedIndexii +
+)ii+ ,
+{jj
+casekk
+-kk
+$numkk
+:kk
+returnll
+;ll
+defaultmm
+:mm
+entrynn
+=nn
+listViewnn $
+?nn$ %
+.nn% &
+SelectedItemnn& 2
+asnn3 5
+EntryVmnn6 =
+;nn= >
+breakoo
+;oo
+}pp
+
+StackPanelrr
+.rr
+DataContextrr "
+=rr# $
+entryrr% *
+;rr* +
+}ss
+}tt
+}uu r
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\GroupDetailPage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class
+GroupDetailPage /
+{
+public
+NavigationHelper
+NavigationHelper 0
+{1 2
+get3 6
+;6 7
+}8 9
+public
+GroupVm
+Model
+=>
+( !
+GroupVm! (
+)( )
+DataContext) 4
+;4 5
+public
+GroupDetailPage
+(
+)
+{
+InitializeComponent
+(
+) !
+; ! "
+NavigationHelper!!
+=!!
+new!! "
+NavigationHelper!!# 3
+(!!3 4
+this!!4 8
+)!!8 9
+;!!9 :
+NavigationHelper""
+.""
+ LoadState"" &
++=""' )&
+navigationHelper_LoadState""* D
+;""D E
+}##
+private00
+void00 &
+navigationHelper_LoadState00 /
+(00/ 0
+object000 6
+sender007 =
+,00= >
+LoadStateEventArgs00? Q
+e00R S
+)00S T
+{00U V
+}00V W
+ protected==
+override==
+void==
+
OnNavigatedTo== -
+(==- .
+NavigationEventArgs==. A
+e==B C
+)==C D
+{>>
+NavigationHelper??
+.??
+
OnNavigatedTo?? *
+(??* +
+e??+ ,
+)??, -
+;??- .
+ifAA
+(AA
+eAA
+.AA
+ ParameterAA
+isAA
+PasswordEventArgsAA 0
+)AA0 1
+DataContextBB
+=BB
+(BB
+(BB
+PasswordEventArgsBB 1
+)BB1 2
+eBB3 4
+.BB4 5
+ ParameterBB5 >
+)BB> ?
+.BB? @
+ RootGroupBB@ I
+;BBI J
+elseCC
+ifCC
+(CC
+eCC
+.CC
+ ParameterCC
+isCC! #
+GroupVmCC$ +
+)CC+ ,
+DataContextDD
+=DD
+(DD
+GroupVmDD &
+)DD& '
+eDD( )
+.DD) *
+ ParameterDD* 3
+;DD3 4
+}EE
+ protectedGG
+overrideGG
+voidGG
+OnNavigatedFromGG /
+(GG/ 0
+NavigationEventArgsGG0 C
+eGGD E
+)GGE F
+{HH
+NavigationHelperII
+.II
+OnNavigatedFromII ,
+(II, -
+eII- .
+)II. /
+;II/ 0
+}JJ
+privatePP
+voidPP #
+groups_SelectionChangedPP ,
+(PP, -
+objectPP- 3
+senderPP4 :
+,PP: ;%
+SelectionChangedEventArgsPP< U
+ePPV W
+)PPW X
+{QQ
+varRR
+listViewRR
+=RR
+senderRR !
+asRR" $
+ListViewRR% -
+;RR- .
+GroupVmSS
+groupSS
+;SS
+switchTT
+(TT
+listViewTT
+?TT
+.TT
+
SelectedIndexTT +
+)TT+ ,
+{UU
+caseVV
+-VV
+$numVV
+:VV
+returnWW
+;WW
+defaultXX
+:XX
+groupYY
+=YY
+listViewYY $
+?YY$ %
+.YY% &
+SelectedItemYY& 2
+asYY3 5
+GroupVmYY6 =
+;YY= >
+breakZZ
+;ZZ
+}[[
+Frame\\
+.\\
+Navigate\\
+(\\
+typeof\\ !
+(\\! "
+GroupDetailPage\\" 1
+)\\1 2
+,\\2 3
+group\\4 9
+)\\9 :
+;\\: ;
+}]]
+private__
+void__ $
+entries_SelectionChanged__ -
+(__- .
+object__. 4
+sender__5 ;
+,__; <%
+SelectionChangedEventArgs__= V
+e__W X
+)__X Y
+{``
+EntryVmaa
+entryaa
+;aa
+switchbb
+(bb
+GridViewbb
+.bb
+
SelectedIndexbb *
+)bb* +
+{cc
+casedd
+-dd
+$numdd
+:dd
+returnee
+;ee
+defaultff
+:ff
+entrygg
+=gg
+GridViewgg $
+.gg$ %
+SelectedItemgg% 1
+asgg2 4
+EntryVmgg5 <
+;gg< =
+breakhh
+;hh
+}ii
+Framejj
+.jj
+Navigatejj
+(jj
+typeofjj !
+(jj! "
+EntryDetailPagejj" 1
+)jj1 2
+,jj2 3
+entryjj4 9
+)jj9 :
+;jj: ;
+}kk
+privatemm
+voidmm
+DeleteButton_Clickmm '
+(mm' (
+objectmm( .
+sendermm/ 5
+,mm5 6
+RoutedEventArgsmm7 F
+emmG H
+)mmH I
+{nn
+varoo
+resourceoo
+=oo
+newoo
+ResourcesServiceoo /
+(oo/ 0
+)oo0 1
+;oo1 2
+varpp
+messagepp
+=pp
+Modelpp
+.pp
+IsRecycleOnDeletepp 1
+?qq
+resourceqq
+.qq
+GetResourceValueqq +
+(qq+ ,
+$strqq, H
+)qqH I
+:rr
+resourcerr
+.rr
+GetResourceValuerr +
+(rr+ ,
+$strrr, G
+)rrG H
+;rrH I
+varss
+textss
+=ss
+Modelss
+.ss
+IsRecycleOnDeletess .
+?ss/ 0
+resourcess1 9
+.ss9 :
+GetResourceValuess: J
+(ssJ K
+$strssK Z
+)ssZ [
+:ss\ ]
+resourcess^ f
+.ssf g
+GetResourceValuessg w
+(ssw x
+$str ssx
+)
+ss
+;
+ss
+MessageDialogHelpertt
+.tt
+ShowActionDialogtt 0
+(tt0 1
+resourcett1 9
+.tt9 :
+GetResourceValuett: J
+(ttJ K
+$strttK ^
+)tt^ _
+,tt_ `
+messagetta h
+,tth i
+resourceuu
+.uu
+GetResourceValueuu )
+(uu) *
+$struu* D
+)uuD E
+,uuE F
+resourcevv
+.vv
+GetResourceValuevv )
+(vv) *
+$strvv* D
+)vvD E
+,vvE F
+avvG H
+=>vvI K
+{ww #
+ToastNotificationHelperxx +
+.xx+ ,
+ShowMovedToastxx, :
+(xx: ;
+Modelxx; @
+,xx@ A
+resourcexxB J
+.xxJ K
+GetResourceValuexxK [
+(xx[ \
+$strxx\ l
+)xxl m
+,xxm n
+textxxo s
+)xxs t
+;xxt u
+Modelyy
+.yy
+
MarkForDeleteyy '
+(yy' (
+resourceyy( 0
+.yy0 1
+GetResourceValueyy1 A
+(yyA B
+$stryyB S
+)yyS T
+)yyT U
+;yyU V
+ifzz
+(zz
+Framezz
+.zz
+ CanGoBackzz '
+)zz' (
+Framezz) .
+.zz. /
+GoBackzz/ 5
+(zz5 6
+)zz6 7
+;zz7 8
+}{{
+,{{
+null{{
+){{
+;{{
+}||
+private~~
+void~~
+RestoreButton_Click~~ (
+(~~( )
+object~~) /
+sender~~0 6
+,~~6 7
+RoutedEventArgs~~8 G
+e~~H I
+)~~I J
+{
+var
+
+resource
+
+=
+
+new
+
+ResourcesService
+ /
+(
+/ 0
+)
+0 1
+;
+1 2%
+ToastNotificationHelper
+ #
+.
+# $
+ShowMovedToast
+$ 2
+(
+2 3
+Model
+3 8
+,
+8 9
+resource
+: B
+.
+B C
+GetResourceValue
+C S
+(
+S T
+$str
+T i
+)
+i j
+,
+j k
+resource
+
+.
+
+GetResourceValue
+ )
+(
+) *
+$str
+* 9
+)
+9 :
+)
+: ;
+;
+; <
+if
+
+(
+
+Frame
+
+.
+
+ CanGoBack
+
+)
+
+Frame
+! &
+.
+& '
+GoBack
+' -
+(
+- .
+)
+. /
+;
+/ 0
+}
+
+private
+
+void
+ ,
+SemanticZoom_ViewChangeStarted
+ 3
+(
+3 4
+object
+4 :
+sender
+; A
+,
+A B.
+ SemanticZoomViewChangedEventArgs
+C c
+e
+d e
+)
+e f
+{
+
+if
+
+(
+
+e
+
+.
+ "
+IsSourceZoomedInView
+ &
+==
+' )
+false
+* /
+)
+/ 0
+{
+
+e
+
+.
+
+DestinationItem
+ !
+.
+! "
+Item
+" &
+=
+' (
+e
+) *
+.
+* +
+
+SourceItem
++ 5
+.
+5 6
+Item
+6 :
+;
+: ;
+}
+
+}
+
+private
+
+void
+ %
+CreateEntry_ButtonClick
+ ,
+(
+, -
+object
+- 3
+sender
+4 :
+,
+: ;
+RoutedEventArgs
+< K
+e
+L M
+)
+M N
+{
+
+Frame
+
+.
+
+Navigate
+
+(
+
+typeof
+ !
+(
+! "
+EntryDetailPage
+" 1
+)
+1 2
+,
+2 3
+Model
+4 9
+.
+9 :
+AddNewEntry
+: E
+(
+E F
+)
+F G
+)
+G H
+;
+H I
+}
+
+private
+
+void
+ %
+CreateGroup_ButtonClick
+ ,
+(
+, -
+object
+- 3
+sender
+4 :
+,
+: ;
+RoutedEventArgs
+< K
+e
+L M
+)
+M N
+{
+
+Frame
+
+.
+
+Navigate
+
+(
+
+typeof
+ !
+(
+! "
+GroupDetailPage
+" 1
+)
+1 2
+,
+2 3
+Model
+4 9
+.
+9 :
+AddNewGroup
+: E
+(
+E F
+)
+F G
+)
+G H
+;
+H I
+}
+
+private
+
+void
+ (
+GridView_DragItemsStarting
+ /
+(
+/ 0
+object
+0 6
+sender
+7 =
+,
+= >(
+DragItemsStartingEventArgs
+? Y
+e
+Z [
+)
+[ \
+{
+
+e
+
+.
+
+Cancel
+
+=
+
+!
+
+Model
+
+.
+
+
+IsEditMode
+ (
+;
+( )
+e
+
+.
+
+Data
+
+.
+
+RequestedOperation
+ %
+=
+& '"
+DataPackageOperation
+( <
+.
+< =
+Move
+= A
+;
+A B
+}
+
+private
+
+void
+ .
+ SearchBox_OnSuggestionsRequested
+ 5
+(
+5 6
+ SearchBox
+6 ?
+sender
+@ F
+,
+F G4
+&SearchBoxSuggestionsRequestedEventArgs
+H n
+args
+o s
+)
+s t
+{
+
+var
+
+imageUri
+
+=
+ )
+RandomAccessStreamReference
+ 6
+.
+6 7
+
CreateFromUri
+7 D
+(
+D E
+new
+E H
+Uri
+I L
+(
+L M
+$strM
+)
+)
+;
+var
+
+results
+
+=
+
+Model
+
+.
+
+
+SubEntries
+ *
+.
+ * +
+Where
+ + 0
+(
+ 0 1
+e
+ 1 2
+=>
+ 3 5
+e
+ 6 7
+.
+ 7 8
+Name
+ 8 <
+.
+ < =
+IndexOf
+ = D
+(
+ D E
+args
+ E I
+.
+ I J
+ QueryText
+ J S
+,
+ S T
+StringComparison
+ U e
+.
+ e f
+OrdinalIgnoreCase
+ f w
+)
+ w x
+>=
+ y {
+$num
+ | }
+)
+ } ~
+.
+ ~
+Take
+(
+$num
+)
+;
+foreach
+ĄĄ
+(
+ĄĄ
+var
+ĄĄ
+result
+ĄĄ
+in
+ĄĄ "
+results
+ĄĄ# *
+)
+ĄĄ* +
+{
+ĸĸ
+args
+ŖŖ
+.
+ŖŖ
+Request
+ŖŖ
+.
+ŖŖ (
+SearchSuggestionCollection
+ŖŖ 7
+.
+ŖŖ7 8$
+AppendResultSuggestion
+ŖŖ8 N
+(
+ŖŖN O
+result
+ŖŖO U
+.
+ŖŖU V
+Name
+ŖŖV Z
+,
+ŖŖZ [
+result
+ŖŖ\ b
+.
+ŖŖb c
+ParentGroup
+ŖŖc n
+.
+ŖŖn o
+Name
+ŖŖo s
+,
+ŖŖs t
+result
+ŖŖu {
+.
+ŖŖ{ |
+Id
+ŖŖ| ~
+,
+ŖŖ~
+imageUriŖŖ
+,ŖŖ
+stringŖŖ
+.ŖŖ
+EmptyŖŖ
+)ŖŖ
+;ŖŖ
+}
+¤¤
+}
+ĨĨ
+private
+§§
+void
+§§ 0
+"SearchBox_OnResultSuggestionChosen
+§§ 7
+(
+§§7 8
+ SearchBox
+§§8 A
+sender
+§§B H
+,
+§§H I6
+(SearchBoxResultSuggestionChosenEventArgs
+§§J r
+args
+§§s w
+)
+§§w x
+{
+¨¨
+var
+ŠŠ
+entry
+ŠŠ
+=
+ŠŠ
+Model
+ŠŠ
+.
+ŠŠ
+
+SubEntries
+ŠŠ (
+.
+ŠŠ( )
+FirstOrDefault
+ŠŠ) 7
+(
+ŠŠ7 8
+e
+ŠŠ8 9
+=>
+ŠŠ: <
+e
+ŠŠ= >
+.
+ŠŠ> ?
+Id
+ŠŠ? A
+==
+ŠŠB D
+args
+ŠŠE I
+.
+ŠŠI J
+Tag
+ŠŠJ M
+)
+ŠŠM N
+;
+ŠŠN O
+Frame
+ĒĒ
+.
+ĒĒ
+Navigate
+ĒĒ
+(
+ĒĒ
+typeof
+ĒĒ !
+(
+ĒĒ! "
+EntryDetailPage
+ĒĒ" 1
+)
+ĒĒ1 2
+,
+ĒĒ2 3
+entry
+ĒĒ4 9
+)
+ĒĒ9 :
+;
+ĒĒ: ;
+}
+ĢĢ
+private
+
+void
+ +
+GroupDetailPage_OnSizeChanged
+ 2
+(
+2 3
+object
+3 9
+sender
+: @
+,
+@ A"
+SizeChangedEventArgs
+B V
+e
+W X
+)
+X Y
+{
+ŽŽ
+VisualStateManager
+¯¯
+.
+¯¯
+ GoToState
+¯¯ (
+(
+¯¯( )
+this
+¯¯) -
+,
+¯¯- .
+e
+¯¯/ 0
+.
+¯¯0 1
+NewSize
+¯¯1 8
+.
+¯¯8 9
+Width
+¯¯9 >
+<
+¯¯? @
+$num
+¯¯A D
+?
+¯¯E F
+$str
+¯¯G N
+:
+¯¯O P
+$str
+¯¯Q X
+,
+¯¯X Y
+true
+¯¯Z ^
+)
+¯¯^ _
+;
+¯¯_ `
+}
+°°
+}
+ŗŗ
+}´´
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\OpenDatabasePage.xaml.cs
+ namespace
+
+
+
ModernKeePass
+
+
+
+.
+
+
+Views
+
+
+{
+public
+
+sealed
+partial
+class
+OpenDatabasePage 0
+{
+private
+Frame
+
+_mainFrame
+; !
+public
+OpenVm
+Model
+=>
+(
+OpenVm &
+)& '
+DataContext' 2
+;2 3
+public
+OpenDatabasePage
+(
+) !
+{
+InitializeComponent
+(
+) !
+;! "
+}
+ protected
+override
+void
+
OnNavigatedTo -
+(- .
+NavigationEventArgs. A
+eB C
+)C D
+{
+base
+.
+
OnNavigatedTo
+(
+e
+) !
+;! "
+
+_mainFrame
+=
+e
+.
+ Parameter $
+as% '
+Frame( -
+;- .
+}
+private
+async
+void
+ButtonBase_OnClick -
+( - .
+object . 4
+sender 5 ;
+, ; <
+RoutedEventArgs = L
+e M N
+) N O
+{!!
+var""
+picker""
+=""
+new##
+FileOpenPicker## "
+{$$
+ViewMode%%
+=%%
+PickerViewMode%% -
+.%%- .
+List%%. 2
+,%%2 3"
+SuggestedStartLocation&& *
+=&&+ ,
+PickerLocationId&&- =
+.&&= >
+DocumentsLibrary&&> N
+}''
+;''
+picker((
+.((
+FileTypeFilter(( !
+.((! "
+Add((" %
+(((% &
+$str((& -
+)((- .
+;((. /
+var++
+file++
+=++
+await++
+picker++ #
+.++# $
+PickSingleFileAsync++$ 7
+(++7 8
+)++8 9
+;++9 :
+if,,
+(,,
+file,,
+==,,
+null,,
+),,
+return,, $
+;,,$ %
+Model--
+.--
+OpenFile--
+(--
+file--
+)--
+;-- !
+}..
+}//
+}00
+]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\RecentDatabasesPage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class
+RecentDatabasesPage 3
+{
+public
+
+
+RecentDatabasesPage
+
+ "
+(
+
+" #
+)
+
+# $
+{
+InitializeComponent
+(
+) !
+;! "
+}
+}
+} â
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\SaveDatabasePage.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+{
+public
+
+sealed
+partial
+class
+SaveDatabasePage 0
+{
+private
+Frame
+
+_mainFrame
+; !
+public
+SaveVm
+Model
+=>
+(
+SaveVm &
+)& '
+DataContext' 2
+;2 3
+public
+SaveDatabasePage
+(
+) !
+{
+InitializeComponent
+(
+) !
+;! "
+}
+ protected
+override
+void
+
OnNavigatedTo -
+(- .
+NavigationEventArgs. A
+eB C
+)C D
+{
+base
+.
+
OnNavigatedTo
+(
+e
+) !
+;! "
+
+_mainFrame
+=
+e
+.
+ Parameter $
+as% '
+Frame( -
+;- .
+}
+private
+async
+void
+SaveButton_OnClick -
+(- .
+object. 4
+sender5 ;
+,; <
+RoutedEventArgs= L
+eM N
+)N O
+{
+await!!
+Model!!
+.!!
+Save!!
+(!!
+)!!
+;!!
+
+_mainFrame""
+.""
+Navigate""
+(""
+typeof"" &
+(""& '
+MainPage""' /
+)""/ 0
+)""0 1
+;""1 2
+}##
+private%%
+async%%
+void%%
+SaveAsButton_OnClick%% /
+(%%/ 0
+object%%0 6
+sender%%7 =
+,%%= >
+RoutedEventArgs%%? N
+e%%O P
+)%%P Q
+{&&
+var''
+
+savePicker''
+=''
+new''
+FileSavePicker''! /
+{((
"
+SuggestedStartLocation)) &
+=))' (
+PickerLocationId))) 9
+.))9 :
+DocumentsLibrary)): J
+,))J K
+SuggestedFileName** !
+=**" #
+$str**$ 2
+}++
+;++
+
+savePicker,,
+.,,
+FileTypeChoices,, &
+.,,& '
+Add,,' *
+(,,* +
+$str,,+ A
+,,,A B
+new,,C F
+List,,G K
+<,,K L
+string,,L R
+>,,R S
+{,,T U
+$str,,V ]
+},,^ _
+),,_ `
+;,,` a
+var..
+file..
+=..
+await..
+
+savePicker.. '
+...' (
+PickSaveFileAsync..( 9
+(..9 :
+)..: ;
+;..; <
+if//
+(//
+file//
+==//
+null//
+)//
+return// $
+;//$ %
+Model00
+.00
+Save00
+(00
+file00
+)00
+;00
+
+_mainFrame22
+.22
+Navigate22
+(22
+typeof22 &
+(22& '
+MainPage22' /
+)22/ 0
+)220 1
+;221 2
+}33
+}44
+}55 ī
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Properties\AssemblyInfo.cs
+[
+assembly
+:
+
+
AssemblyTitle
+(
+$str (
+)( )
+]) *
+[
+assembly
+:
+
+AssemblyDescription
+(
+$str b
+)b c
+]c d
+[
+assembly
+:
+!
+AssemblyConfiguration
+( !
+$str ! #
+) # $
+] $ %
+[
+
+
+assembly
+
+
+:
+
+
+
+AssemblyCompany
+
+
+(
+
+
+$str
+
+ #
+)
+
+# $
+]
+
+$ %
+[
+assembly
+:
+
+AssemblyProduct
+(
+$str *
+)* +
+]+ ,
+[
+assembly
+:
+
+AssemblyCopyright
+(
+$str /
+)/ 0
+]0 1
+[
+assembly
+:
+
+AssemblyTrademark
+(
+$str
+)
+]
!
+[
+assembly
+:
+
+AssemblyCulture
+(
+$str
+)
+]
+[
+assembly
+:
+
+AssemblyVersion
+(
+$str %
+)% &
+]& '
+[
+assembly
+:
+
+AssemblyFileVersion
+(
+$str )
+)) *
+]* +
+[
+assembly
+:
+
+
+ComVisible
+(
+false
+)
+] ĀÄ
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\EntryVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+EntryVm
+: "
+INotifyPropertyChanged 1
+,1 2
+ IPwEntity3 <
+,< =
+ISelectableModel> N
+{
+public
+GroupVm
+ParentGroup "
+{# $
+get% (
+;( )
+private* 1
+set2 5
+;5 6
+}7 8
+public
+GroupVm
+
PreviousGroup $
+{% &
+get' *
+;* +
+private, 3
+set4 7
+;7 8
+}9 :
+public
+System
+.
+Drawing
+.
+Color #
+?# $
+BackgroundColor% 4
+=>5 7
+_pwEntry8 @
+?@ A
+.A B
+BackgroundColorB Q
+;Q R
+public
+System
+.
+Drawing
+.
+Color #
+?# $
+ForegroundColor% 4
+=>5 7
+_pwEntry8 @
+?@ A
+.A B
+ForegroundColorB Q
+;Q R
+public
+bool #
+IsRevealPasswordEnabled +
+=>, .
+!/ 0
+string0 6
+.6 7
+
IsNullOrEmpty7 D
+(D E
+PasswordE M
+)M N
+;N O
+public
+bool
+
+HasExpired
+=> !
+HasExpirationDate" 3
+&&4 6
+_pwEntry7 ?
+.? @
+
+ExpiryTime@ J
+<K L
+DateTimeM U
+.U V
+NowV Y
+;Y Z
+public
+double '
+PasswordComplexityIndicator 1
+=>2 4
+QualityEstimation5 F
+.F G
+EstimatePasswordBitsG [
+([ \
+Password\ d
+?d e
+.e f
+ToCharArrayf q
+(q r
+)r s
+)s t
+;t u
+public
+bool $
+UpperCasePatternSelected ,
+{- .
+get/ 2
+;2 3
+set4 7
+;7 8
+}9 :
+=; <
+true= A
+;A B
+public
+bool $
+LowerCasePatternSelected ,
+{- .
+get/ 2
+;2 3
+set4 7
+;7 8
+}9 :
+=; <
+true= A
+;A B
+public
+bool !
+DigitsPatternSelected )
+{* +
+get, /
+;/ 0
+set1 4
+;4 5
+}6 7
+=8 9
+true: >
+;> ?
+public
+bool
+MinusPatternSelected (
+{) *
+get+ .
+;. /
+set0 3
+;3 4
+}5 6
+public
+bool %
+UnderscorePatternSelected -
+{. /
+get0 3
+;3 4
+set5 8
+;8 9
+}: ;
+public
+bool
+SpacePatternSelected (
+{) *
+get+ .
+;. /
+set0 3
+;3 4
+}5 6
+public
+bool "
+SpecialPatternSelected *
+{+ ,
+get- 0
+;0 1
+set2 5
+;5 6
+}7 8
+public
+bool #
+BracketsPatternSelected +
+{, -
+get. 1
+;1 2
+set3 6
+;6 7
+}8 9
+public
+string
+CustomChars !
+{" #
+get$ '
+;' (
+set) ,
+;, -
+}. /
+=0 1
+string2 8
+.8 9
+Empty9 >
+;> ?
+public
+PwUuid
+IdUuid
+=>
+_pwEntry (
+? ( )
+. ) *
+Uuid * .
+; . /
+public!!
+string!!
+Id!!
+=>!!
+_pwEntry!! $
+?!!$ %
+.!!% &
+Uuid!!& *
+.!!* +
+ToHexString!!+ 6
+(!!6 7
+)!!7 8
+;!!8 9
+public""
+bool""
+IsRecycleOnDelete"" %
+=>""& (
+ _database"") 2
+.""2 3
+RecycleBinEnabled""3 D
+&&""E G
+!""H I
+ParentGroup""I T
+.""T U
+
+IsSelected""U _
+;""_ `
+public##
+IEnumerable##
+<##
+ IPwEntity## $
+>##$ %
+
+BreadCrumb##& 0
+=>##1 3
+new##4 7
+List##8 <
+<##< =
+ IPwEntity##= F
+>##F G
+(##G H
+ParentGroup##H S
+.##S T
+
+BreadCrumb##T ^
+)##^ _
+{##` a
+ParentGroup##a l
+}##l m
+;##m n
+public''
+bool''
+
+IsSelected''
+{''
+get''! $
+;''$ %
+set''& )
+;'') *
+}''+ ,
+=''- .
+true''/ 3
+;''3 4
+public))
+double))
+PasswordLength)) $
+{**
+get++
+{++
+return++
+_passwordLength++ (
+;++( )
+}++* +
+set,,
+{--
+_passwordLength..
+=.. !
+value.." '
+;..' (!
+NotifyPropertyChanged// %
+(//% &
+$str//& 6
+)//6 7
+;//7 8
+}00
+}11
+public33
+string33
+Name33
+{44
+get55
+{55
+return55
+
GetEntryValue55 &
+(55& '
+PwDefs55' -
+.55- .
+
+TitleField55. 8
+)558 9
+;559 :
+}55; <
+set66
+{66
+
SetEntryValue66
+(66
+PwDefs66 &
+.66& '
+
+TitleField66' 1
+,661 2
+value663 8
+)668 9
+;669 :
+}66; <
+}77
+public::
+string::
+UserName::
+{;;
+get<<
+{<<
+return<<
+
GetEntryValue<< &
+(<<& '
+PwDefs<<' -
+.<<- .
+
UserNameField<<. ;
+)<<; <
+;<<< =
+}<<> ?
+set==
+{==
+
SetEntryValue==
+(==
+PwDefs== &
+.==& '
+
UserNameField==' 4
+,==4 5
+value==6 ;
+)==; <
+;==< =
+}==> ?
+}>>
+public@@
+string@@
+Password@@
+{AA
+getBB
+{BB
+returnBB
+
GetEntryValueBB &
+(BB& '
+PwDefsBB' -
+.BB- .
+
PasswordFieldBB. ;
+)BB; <
+;BB< =
+}BB> ?
+setCC
+{DD
+
SetEntryValueEE
+(EE
+PwDefsEE $
+.EE$ %
+
PasswordFieldEE% 2
+,EE2 3
+valueEE4 9
+)EE9 :
+;EE: ;!
+NotifyPropertyChangedFF %
+(FF% &
+$strFF& 0
+)FF0 1
+;FF1 2!
+NotifyPropertyChangedGG %
+(GG% &
+$strGG& C
+)GGC D
+;GGD E
+}HH
+}II
+publicKK
+stringKK
+UrlKK
+{LL
+getMM
+{MM
+returnMM
+
GetEntryValueMM &
+(MM& '
+PwDefsMM' -
+.MM- .
+UrlFieldMM. 6
+)MM6 7
+;MM7 8
+}MM9 :
+setNN
+{NN
+
SetEntryValueNN
+(NN
+PwDefsNN &
+.NN& '
+UrlFieldNN' /
+,NN/ 0
+valueNN1 6
+)NN6 7
+;NN7 8
+}NN9 :
+}OO
+publicQQ
+stringQQ
+NotesQQ
+{RR
+getSS
+{SS
+returnSS
+
GetEntryValueSS &
+(SS& '
+PwDefsSS' -
+.SS- .
+
+NotesFieldSS. 8
+)SS8 9
+;SS9 :
+}SS; <
+setTT
+{TT
+
SetEntryValueTT
+(TT
+PwDefsTT &
+.TT& '
+
+NotesFieldTT' 1
+,TT1 2
+valueTT3 8
+)TT8 9
+;TT9 :
+}TT; <
+}UU
+publicWW
+intWW
+IconIdWW
+{XX
+getYY
+{ZZ
+if[[
+([[
+_pwEntry[[
+?[[
+.[[
+IconId[[ $
+!=[[% '
+null[[( ,
+)[[, -
+return[[. 4
+([[5 6
+int[[6 9
+)[[9 :
+_pwEntry[[; C
+?[[C D
+.[[D E
+IconId[[E K
+;[[K L
+return\\
+-\\
+$num\\
+;\\
+}]]
+}^^
+public``
+DateTimeOffset``
+
+ExpiryDate`` (
+{aa
+getbb
+{bb
+returnbb
+newbb
+DateTimeOffsetbb +
+(bb+ ,
+_pwEntrybb, 4
+.bb4 5
+
+ExpiryTimebb5 ?
+.bb? @
+Datebb@ D
+)bbD E
+;bbE F
+}bbG H
+setcc
+{cc
+ifcc
+(cc
+HasExpirationDatecc '
+)cc' (
+_pwEntrycc) 1
+.cc1 2
+
+ExpiryTimecc2 <
+=cc= >
+valuecc? D
+.ccD E
+DateTimeccE M
+;ccM N
+}ccO P
+}dd
+publicff
+TimeSpanff
+
+ExpiryTimeff "
+{gg
+gethh
+{hh
+returnhh
+_pwEntryhh !
+.hh! "
+
+ExpiryTimehh" ,
+.hh, -
+ TimeOfDayhh- 6
+;hh6 7
+}hh8 9
+setii
+{ii
+ifii
+(ii
+HasExpirationDateii '
+)ii' (
+_pwEntryii) 1
+.ii1 2
+
+ExpiryTimeii2 <
+=ii= >
+_pwEntryii? G
+.iiG H
+
+ExpiryTimeiiH R
+.iiR S
+DateiiS W
+.iiW X
+AddiiX [
+(ii[ \
+valueii\ a
+)iia b
+;iib c
+}iid e
+}jj
+publicll
+boolll
+
+IsEditModell
+{mm
+getnn
+{nn
+returnnn
+
+IsSelectednn #
+&&nn$ &
+_isEditModenn' 2
+;nn2 3
+}nn4 5
+setoo
+{pp
+_isEditModeqq
+=qq
+valueqq #
+;qq# $!
+NotifyPropertyChangedrr %
+(rr% &
+$strrr& 2
+)rr2 3
+;rr3 4
+}ss
+}tt
+publicvv
+boolvv
+ IsVisiblevv
+{ww
+getxx
+{xx
+returnxx
+
+_isVisiblexx #
+;xx# $
+}xx% &
+setyy
+{zz
+
+_isVisible{{
+={{
+value{{ "
+;{{" #!
+NotifyPropertyChanged|| %
+(||% &
+$str||& 1
+)||1 2
+;||2 3
+}}}
+}~~
+public
+
+bool
+
+IsRevealPassword
+ $
+{
+
+get
+
+{
+
+return
+
+_isRevealPassword
+ *
+;
+* +
+}
+, -
+set
+
+{
+
+_isRevealPassword
+
!
+=
+
" #
+value
+
$ )
+;
+
) *#
+NotifyPropertyChanged
+ %
+(
+% &
+$str
+& 8
+)
+8 9
+;
+9 :
+}
+
+}
+
+public
+
+bool
+
+HasExpirationDate
+ %
+{
+
+get
+
+{
+
+return
+
+_pwEntry
+ !
+.
+! "
+Expires
+" )
+;
+) *
+}
++ ,
+set
+
+{
+
+_pwEntry
+
+.
+
+Expires
+
+=
+! "
+value
+# (
+;
+( )#
+NotifyPropertyChanged
+ %
+(
+% &
+$str
+& 9
+)
+9 :
+;
+: ;
+}
+
+}
+
+public
+
+IEnumerable
+
+<
+
+ IPwEntity
+ $
+>
+$ %
+History
+& -
+{
+
+get
+
+{
+
+var
+
+history
+
+=
+
+new
+ !
+List
+" &
+<
+& '
+EntryVm
+' .
+>
+. /
+{
+0 1
+this
+1 5
+}
+5 6
+;
+6 7
+foreach
+
+(
+
+var
+
+historyEntry
+ )
+in
+* ,
+_pwEntry
+- 5
+.
+5 6
+History
+6 =
+)
+= >
+{
+
+history
+
+.
+
+Add
+
+(
+
+new
+ #
+EntryVm
+$ +
+(
++ ,
+historyEntry
+, 8
+,
+8 9
+ParentGroup
+: E
+)
+E F
+{
+G H
+
+IsSelected
+H R
+=
+S T
+false
+U Z
+}
+Z [
+)
+[ \
+;
+\ ]
+}
+
+return
+
+history
+
+;
+
+}
+
+}
+
+public
+ĄĄ
+event
+ĄĄ )
+PropertyChangedEventHandler
+ĄĄ 0
+PropertyChanged
+ĄĄ1 @
+;
+ĄĄ@ A
+private
+ŖŖ
+readonly
+ŖŖ
+PwEntry
+ŖŖ
+_pwEntry
+ŖŖ! )
+;
+ŖŖ) *
+private
+¤¤
+readonly
+¤¤
+IDatabaseService
+¤¤ )
+ _database
+¤¤* 3
+;
+¤¤3 4
+private
+ĨĨ
+readonly
+ĨĨ
+IResourceService
+ĨĨ )
+ _resource
+ĨĨ* 3
+;
+ĨĨ3 4
+private
+ĻĻ
+bool
+ĻĻ
+_isEditMode
+ĻĻ
+;
+ĻĻ !
+private
+§§
+bool
+§§
+_isRevealPassword
+§§ &
+;
+§§& '
+private
+¨¨
+double
+¨¨
+_passwordLength
+¨¨ &
+=
+¨¨' (
+$num
+¨¨) +
+;
+¨¨+ ,
+private
+ŠŠ
+bool
+ŠŠ
+
+_isVisible
+ŠŠ
+=
+ŠŠ !
+true
+ŠŠ" &
+;
+ŠŠ& '
+private
+ĢĢ
+void
+ĢĢ #
+NotifyPropertyChanged
+ĢĢ *
+(
+ĢĢ* +
+string
+ĢĢ+ 1
+propertyName
+ĢĢ2 >
+)
+ĢĢ> ?
+{
+ŦŦ
+PropertyChanged
+
+?
+
+.
+
+Invoke
+ #
+(
+# $
+this
+$ (
+,
+( )
+new
+* -&
+PropertyChangedEventArgs
+. F
+(
+F G
+propertyName
+G S
+)
+S T
+)
+T U
+;
+U V
+}
+ŽŽ
+public
+°°
+EntryVm
+°°
+(
+°°
+)
+°°
+{
+°°
+}
+°°
+internal
+˛˛
+EntryVm
+˛˛
+(
+˛˛
+PwEntry
+˛˛
+entry
+˛˛! &
+,
+˛˛& '
+GroupVm
+˛˛( /
+parent
+˛˛0 6
+)
+˛˛6 7
+:
+˛˛8 9
+this
+˛˛: >
+(
+˛˛> ?
+entry
+˛˛? D
+,
+˛˛D E
+parent
+˛˛F L
+,
+˛˛L M
+DatabaseService
+˛˛N ]
+.
+˛˛] ^
+Instance
+˛˛^ f
+,
+˛˛f g
+new
+˛˛h k
+ResourcesService
+˛˛l |
+(
+˛˛| }
+)
+˛˛} ~
+)
+˛˛~
+{˛˛
+}˛˛
+public
+´´
+EntryVm
+´´
+(
+´´
+PwEntry
+´´
+entry
+´´ $
+,
+´´$ %
+GroupVm
+´´& -
+parent
+´´. 4
+,
+´´4 5
+IDatabaseService
+´´6 F
+database
+´´G O
+,
+´´O P
+IResourceService
+´´Q a
+resource
+´´b j
+)
+´´j k
+{
+ĩĩ
+ _database
+ļļ
+=
+ļļ
+database
+ļļ
+;
+ļļ !
+ _resource
+ˇˇ
+=
+ˇˇ
+resource
+ˇˇ
+;
+ˇˇ !
+_pwEntry
+¸¸
+=
+¸¸
+entry
+¸¸
+;
+¸¸
+ParentGroup
+šš
+=
+šš
+parent
+šš
+;
+šš !
+}
+ēē
+public
+ŧŧ
+void
+ŧŧ
+GeneratePassword
+ŧŧ $
+(
+ŧŧ$ %
+)
+ŧŧ% &
+{
+ŊŊ
+var
+žž
+ pwProfile
+žž
+=
+žž
+new
+žž
+ PwProfile
+žž )
+{
+ŋŋ
+
GeneratorType
+ĀĀ
+=
+ĀĀ #
+PasswordGeneratorType
+ĀĀ 5
+.
+ĀĀ5 6
+CharSet
+ĀĀ6 =
+,
+ĀĀ= >
+Length
+ÁÁ
+=
+ÁÁ
+(
+ÁÁ
+uint
+ÁÁ
+)
+ÁÁ
+PasswordLength
+ÁÁ -
+,
+ÁÁ- .
+CharSet
+ÂÂ
+=
+ÂÂ
+new
+ÂÂ
+ PwCharSet
+ÂÂ '
+(
+ÂÂ' (
+)
+ÂÂ( )
+}
+ÃÃ
+;
+ÃÃ
+if
+ÅÅ
+(
+ÅÅ &
+UpperCasePatternSelected
+ÅÅ (
+)
+ÅÅ( )
+ pwProfile
+ÅÅ* 3
+.
+ÅÅ3 4
+CharSet
+ÅÅ4 ;
+.
+ÅÅ; <
+Add
+ÅÅ< ?
+(
+ÅÅ? @
+ PwCharSet
+ÅÅ@ I
+.
+ÅÅI J
+ UpperCase
+ÅÅJ S
+)
+ÅÅS T
+;
+ÅÅT U
+if
+ÆÆ
+(
+ÆÆ &
+LowerCasePatternSelected
+ÆÆ (
+)
+ÆÆ( )
+ pwProfile
+ÆÆ* 3
+.
+ÆÆ3 4
+CharSet
+ÆÆ4 ;
+.
+ÆÆ; <
+Add
+ÆÆ< ?
+(
+ÆÆ? @
+ PwCharSet
+ÆÆ@ I
+.
+ÆÆI J
+ LowerCase
+ÆÆJ S
+)
+ÆÆS T
+;
+ÆÆT U
+if
+ĮĮ
+(
+ĮĮ #
+DigitsPatternSelected
+ĮĮ %
+)
+ĮĮ% &
+ pwProfile
+ĮĮ' 0
+.
+ĮĮ0 1
+CharSet
+ĮĮ1 8
+.
+ĮĮ8 9
+Add
+ĮĮ9 <
+(
+ĮĮ< =
+ PwCharSet
+ĮĮ= F
+.
+ĮĮF G
+Digits
+ĮĮG M
+)
+ĮĮM N
+;
+ĮĮN O
+if
+ČČ
+(
+ČČ $
+SpecialPatternSelected
+ČČ &
+)
+ČČ& '
+ pwProfile
+ČČ( 1
+.
+ČČ1 2
+CharSet
+ČČ2 9
+.
+ČČ9 :
+Add
+ČČ: =
+(
+ČČ= >
+ PwCharSet
+ČČ> G
+.
+ČČG H
+SpecialChars
+ČČH T
+)
+ČČT U
+;
+ČČU V
+if
+ÉÉ
+(
+ÉÉ "
+MinusPatternSelected
+ÉÉ $
+)
+ÉÉ$ %
+ pwProfile
+ÉÉ& /
+.
+ÉÉ/ 0
+CharSet
+ÉÉ0 7
+.
+ÉÉ7 8
+Add
+ÉÉ8 ;
+(
+ÉÉ; <
+$char
+ÉÉ< ?
+)
+ÉÉ? @
+;
+ÉÉ@ A
+if
+ĘĘ
+(
+ĘĘ '
+UnderscorePatternSelected
+ĘĘ )
+)
+ĘĘ) *
+ pwProfile
+ĘĘ+ 4
+.
+ĘĘ4 5
+CharSet
+ĘĘ5 <
+.
+ĘĘ< =
+Add
+ĘĘ= @
+(
+ĘĘ@ A
+$char
+ĘĘA D
+)
+ĘĘD E
+;
+ĘĘE F
+if
+ËË
+(
+ËË "
+SpacePatternSelected
+ËË $
+)
+ËË$ %
+ pwProfile
+ËË& /
+.
+ËË/ 0
+CharSet
+ËË0 7
+.
+ËË7 8
+Add
+ËË8 ;
+(
+ËË; <
+$char
+ËË< ?
+)
+ËË? @
+;
+ËË@ A
+if
+ĖĖ
+(
+ĖĖ %
+BracketsPatternSelected
+ĖĖ '
+)
+ĖĖ' (
+ pwProfile
+ĖĖ) 2
+.
+ĖĖ2 3
+CharSet
+ĖĖ3 :
+.
+ĖĖ: ;
+Add
+ĖĖ; >
+(
+ĖĖ> ?
+ PwCharSet
+ĖĖ? H
+.
+ĖĖH I
+Brackets
+ĖĖI Q
+)
+ĖĖQ R
+;
+ĖĖR S
+ pwProfile
+ÎÎ
+.
+ÎÎ
+CharSet
+ÎÎ
+.
+ÎÎ
+Add
+ÎÎ !
+(
+ÎÎ! "
+CustomChars
+ÎÎ" -
+)
+ÎÎ- .
+;
+ÎÎ. /
+ProtectedString
+ĐĐ
+password
+ĐĐ $
+;
+ĐĐ$ %
+PwGenerator
+ŅŅ
+.
+ŅŅ
+Generate
+ŅŅ
+(
+ŅŅ !
+out
+ŅŅ! $
+password
+ŅŅ% -
+,
+ŅŅ- .
+ pwProfile
+ŅŅ/ 8
+,
+ŅŅ8 9
+null
+ŅŅ: >
+,
+ŅŅ> ?
+new
+ŅŅ@ C#
+CustomPwGeneratorPool
+ŅŅD Y
+(
+ŅŅY Z
+)
+ŅŅZ [
+)
+ŅŅ[ \
+;
+ŅŅ\ ]
+_pwEntry
+ĶĶ
+?
+ĶĶ
+.
+ĶĶ
+Strings
+ĶĶ
+.
+ĶĶ
+Set
+ĶĶ !
+(
+ĶĶ! "
+PwDefs
+ĶĶ" (
+.
+ĶĶ( )
+
PasswordField
+ĶĶ) 6
+,
+ĶĶ6 7
+password
+ĶĶ8 @
+)
+ĶĶ@ A
+;
+ĶĶA B#
+NotifyPropertyChanged
+ÔÔ !
+(
+ÔÔ! "
+$str
+ÔÔ" ,
+)
+ÔÔ, -
+;
+ÔÔ- .#
+NotifyPropertyChanged
+ÕÕ !
+(
+ÕÕ! "
+$str
+ÕÕ" ;
+)
+ÕÕ; <
+;
+ÕÕ< =#
+NotifyPropertyChanged
+ÖÖ !
+(
+ÖÖ! "
+$str
+ÖÖ" ?
+)
+ÖÖ? @
+;
+ÖÖ@ A
+}
+××
+private
+ŲŲ
+string
+ŲŲ
+
GetEntryValue
+ŲŲ $
+(
+ŲŲ$ %
+string
+ŲŲ% +
+key
+ŲŲ, /
+)
+ŲŲ/ 0
+{
+ÚÚ
+return
+ÛÛ
+_pwEntry
+ÛÛ
+?
+ÛÛ
+.
+ÛÛ
+Strings
+ÛÛ $
+.
+ÛÛ$ %
+GetSafe
+ÛÛ% ,
+(
+ÛÛ, -
+key
+ÛÛ- 0
+)
+ÛÛ0 1
+.
+ÛÛ1 2
+
+ReadString
+ÛÛ2 <
+(
+ÛÛ< =
+)
+ÛÛ= >
+;
+ÛÛ> ?
+}
+ÜÜ
+private
+ŪŪ
+void
+ŪŪ
+
SetEntryValue
+ŪŪ "
+(
+ŪŪ" #
+string
+ŪŪ# )
+key
+ŪŪ* -
+,
+ŪŪ- .
+string
+ŪŪ/ 5
+newValue
+ŪŪ6 >
+)
+ŪŪ> ?
+{
+ßß
+_pwEntry
+āā
+?
+āā
+.
+āā
+Strings
+āā
+.
+āā
+Set
+āā !
+(
+āā! "
+key
+āā" %
+,
+āā% &
+new
+āā' *
+ProtectedString
+āā+ :
+(
+āā: ;
+true
+āā; ?
+,
+āā? @
+newValue
+āāA I
+)
+āāI J
+)
+āāJ K
+;
+āāK L
+}
+áá
+public
+ãã
+void
+ãã
+
MarkForDelete
+ãã !
+(
+ãã! "
+string
+ãã" (
+recycleBinTitle
+ãã) 8
+)
+ãã8 9
+{
+ää
+if
+åå
+(
+åå
+ _database
+åå
+.
+åå
+RecycleBinEnabled
+åå +
+&&
+åå, .
+ _database
+åå/ 8
+.
+åå8 9
+
+RecycleBin
+åå9 C
+?
+ååC D
+.
+ååD E
+IdUuid
+ååE K
+==
+ååL N
+null
+ååO S
+)
+ååS T
+ _database
+ææ
+.
+ææ
+CreateRecycleBin
+ææ *
+(
+ææ* +
+recycleBinTitle
+ææ+ :
+)
+ææ: ;
+;
+ææ; <
+Move
+įį
+(
+įį
+ _database
+įį
+.
+įį
+RecycleBinEnabled
+įį ,
+&&
+įį- /
+!
+įį0 1
+ParentGroup
+įį1 <
+.
+įį< =
+
+IsSelected
+įį= G
+?
+įįH I
+ _database
+įįJ S
+.
+įįS T
+
+RecycleBin
+įįT ^
+:
+įį_ `
+null
+įįa e
+)
+įįe f
+;
+įįf g
+}
+čč
+public
+ęę
+void
+ęę
+
+UndoDelete
+ęę
+(
+ęę
+)
+ęę
+{
+ëë
+Move
+ėė
+(
+ėė
+
PreviousGroup
+ėė
+)
+ėė
+;
+ėė
+}
+íí
+public
+īī
+void
+īī
+Move
+īī
+(
+īī
+GroupVm
+īī
+destination
+īī! ,
+)
+īī, -
+{
+đđ
+
PreviousGroup
+ņņ
+=
+ņņ
+ParentGroup
+ņņ '
+;
+ņņ' (
+
PreviousGroup
+ōō
+.
+ōō
+Entries
+ōō !
+.
+ōō! "
+Remove
+ōō" (
+(
+ōō( )
+this
+ōō) -
+)
+ōō- .
+;
+ōō. /
+if
+ķķ
+(
+ķķ
+destination
+ķķ
+==
+ķķ
+null
+ķķ #
+)
+ķķ# $
+{
+ôô
+ _database
+õõ
+.
+õõ
+AddDeletedItem
+õõ (
+(
+õõ( )
+IdUuid
+õõ) /
+)
+õõ/ 0
+;
+õõ0 1
+return
+öö
+;
+öö
+}
+÷÷
+ParentGroup
+øø
+=
+øø
+destination
+øø %
+;
+øø% &
+ParentGroup
+ųų
+.
+ųų
+Entries
+ųų
+.
+ųų
+Add
+ųų #
+(
+ųų# $
+this
+ųų$ (
+)
+ųų( )
+;
+ųų) *
+}
+úú
+public
+üü
+void
+üü
+CommitDelete
+üü
+(
+üü !
+)
+üü! "
+{
+ũũ
+_pwEntry
+ūū
+.
+ūū
+ParentGroup
+ūū
+.
+ūū !
+Entries
+ūū! (
+.
+ūū( )
+Remove
+ūū) /
+(
+ūū/ 0
+_pwEntry
+ūū0 8
+)
+ūū8 9
+;
+ūū9 :
+if
+˙˙
+(
+˙˙
+!
+˙˙
+ _database
+˙˙
+.
+˙˙
+RecycleBinEnabled
+˙˙ ,
+||
+˙˙- /
+
PreviousGroup
+˙˙0 =
+.
+˙˙= >
+
+IsSelected
+˙˙> H
+)
+˙˙H I
+ _database
+˙˙J S
+.
+˙˙S T
+AddDeletedItem
+˙˙T b
+(
+˙˙b c
+IdUuid
+˙˙c i
+)
+˙˙i j
+;
+˙˙j k
+}
+
+public
+
+void
+
+Save
+
+(
+
+)
+
+{
+
+ _database
+
+.
+
+Save
+
+(
+
+)
+
+;
+
+}
+
+public
+
+PwEntry
+
+
+GetPwEntry
+ !
+(
+! "
+)
+" #
+{
+
+return
+
+_pwEntry
+
+;
+
+}
+
+public
+
+override
+
+string
+
+ToString
+ '
+(
+' (
+)
+( )
+{
+
+return
+
+
+IsSelected
+
+?
+
+ _resource
+ )
+.
+) *
+GetResourceValue
+* :
+(
+: ;
+$str
+; I
+)
+I J
+:
+K L
+_pwEntry
+M U
+.
+U V"
+LastModificationTime
+V j
+.
+j k
+ToString
+k s
+(
+s t
+$str
+t w
+)
+w x
+;
+x y
+}
+
+}
+
+} čŗ
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\GroupVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+GroupVm
+:
%
+NotifyPropertyChangedBase
4
+,
4 5
+ IPwEntity
6 ?
+,
? @
+ISelectableModel
A Q
+{
+public
+GroupVm
+ParentGroup "
+{# $
+get% (
+;( )
+private* 1
+set2 5
+;5 6
+}7 8
+public
+GroupVm
+
PreviousGroup $
+{% &
+get' *
+;* +
+private, 3
+set4 7
+;7 8
+}9 :
+public
+ObservableCollection #
+<# $
+EntryVm$ +
+>+ ,
+Entries- 4
+{
+get
+{
+return
+_entries !
+;! "
+}# $
+private
+set
+{
+SetProperty %
+(% &
+ref& )
+_entries* 2
+,2 3
+value4 9
+)9 :
+;: ;
+}< =
+}
+public
+IEnumerable
+<
+EntryVm "
+>" #
+
+SubEntries$ .
+{
+get
+{
+var
+
+subEntries
+=
+new! $
+List% )
+<) *
+EntryVm* 1
+>1 2
+(2 3
+)3 4
+;4 5
+
+subEntries
+.
+AddRange #
+(# $
+Entries$ +
+)+ ,
+;, -
+foreach
+(
+var
+group "
+in# %
+Groups& ,
+), -
+{
+
+subEntries
+.
+AddRange '
+( ' (
+group ( -
+. - .
+
+SubEntries . 8
+) 8 9
+; 9 :
+}!!
+return##
+
+subEntries## !
+;##! "
+}$$
+}%%
+public''
+ObservableCollection'' #
+<''# $
+GroupVm''$ +
+>''+ ,
+Groups''- 3
+{''4 5
+get''6 9
+;''9 :
+set''; >
+;''> ?
+}''@ A
+=''B C
+new''D G
+ObservableCollection''H \
+<''\ ]
+GroupVm''] d
+>''d e
+(''e f
+)''f g
+;''g h
+public))
+PwUuid))
+IdUuid))
+=>))
+_pwGroup)) (
+?))( )
+.))) *
+Uuid))* .
+;)). /
+public**
+string**
+Id**
+=>**
+IdUuid** "
+?**" #
+.**# $
+ToHexString**$ /
+(**/ 0
+)**0 1
+;**1 2
+public++
+bool++
+ IsNotRoot++
+=>++
+ParentGroup++! ,
+!=++- /
+null++0 4
+;++4 5
+public--
+bool--
+ShowRestore--
+=>-- "
+ IsNotRoot--# ,
+&&--- /
+ParentGroup--0 ;
+.--; <
+
+IsSelected--< F
+;--F G
+public//
+bool//
+IsRecycleOnDelete// %
+=>//& (
+ _database//) 2
+.//2 3
+RecycleBinEnabled//3 D
+&&//E G
+!//H I
+
+IsSelected//I S
+&&//T V
+!//W X
+ParentGroup//X c
+.//c d
+
+IsSelected//d n
+;//n o
+public44
+bool44
+
+IsSelected44
+{55
+get66
+{66
+return66
+ _database66 "
+!=66# %
+null66& *
+&&66+ -
+ _database66. 7
+.667 8
+RecycleBinEnabled668 I
+&&66J L
+ _database66M V
+.66V W
+
+RecycleBin66W a
+?66a b
+.66b c
+Id66c e
+==66f h
+Id66i k
+;66k l
+}66m n
+set77
+{88
+if99
+(99
+value99
+&&99
+_pwGroup99 %
+!=99& (
+null99) -
+)99- .
+ _database99/ 8
+.998 9
+
+RecycleBin999 C
+=99D E
+this99F J
+;99J K
+}::
+};;
+public==
+IOrderedEnumerable== !
+<==! "
+ IGrouping==" +
+<==+ ,
+char==, 0
+,==0 1
+EntryVm==2 9
+>==9 :
+>==: ;
+EntriesZoomedOut==< L
+=>==M O
+from==P T
+e==U V
+in==W Y
+Entries==Z a
+group>>
+e>>
+by>>
+e>>
+.>>
+Name>>
+.>>
+ToUpper>> %
+(>>% &
+)>>& '
+.>>' (
+FirstOrDefault>>( 6
+(>>6 7
+)>>7 8
+into>>9 =
+grp>>> A
+orderby??
+grp??
+.??
+Key??
+select@@
+grp@@
+;@@
+publicBB
+stringBB
+NameBB
+{CC
+getDD
+{DD
+returnDD
+_pwGroupDD !
+==DD" $
+nullDD% )
+?DD* +
+stringDD, 2
+.DD2 3
+EmptyDD3 8
+:DD9 :
+_pwGroupDD; C
+.DDC D
+NameDDD H
+;DDH I
+}DDJ K
+setEE
+{EE
+_pwGroupEE
+.EE
+NameEE
+=EE !
+valueEE" '
+;EE' (
+}EE) *
+}FF
+publicHH
+intHH
+IconIdHH
+{II
+getJJ
+{KK
+ifLL
+(LL
+_pwGroupLL
+?LL
+.LL
+IconIdLL $
+!=LL% '
+nullLL( ,
+)LL, -
+returnLL. 4
+(LL5 6
+intLL6 9
+)LL9 :
+_pwGroupLL; C
+?LLC D
+.LLD E
+IconIdLLE K
+;LLK L
+returnMM
+-MM
+$numMM
+;MM
+}NN
+setOO
+{OO
+_pwGroupOO
+.OO
+IconIdOO !
+=OO" #
+(OO$ %
+PwIconOO% +
+)OO+ ,
+valueOO, 1
+;OO1 2
+}OO3 4
+}PP
+publicRR
+boolRR
+
+IsEditModeRR
+{SS
+getTT
+{TT
+returnTT
+_isEditModeTT $
+;TT$ %
+}TT& '
+setUU
+{UU
+SetPropertyUU
+(UU
+refUU !
+_isEditModeUU" -
+,UU- .
+valueUU/ 4
+)UU4 5
+;UU5 6
+}UU7 8
+}VV
+publicXX
+boolXX
+IsMenuClosedXX
+{YY
+getZZ
+{ZZ
+returnZZ
+
_isMenuClosedZZ &
+;ZZ& '
+}ZZ( )
+set[[
+{[[
+SetProperty[[
+([[
+ref[[ !
+
_isMenuClosed[[" /
+,[[/ 0
+value[[1 6
+)[[6 7
+;[[7 8
+}[[9 :
+}\\
+public^^
+IEnumerable^^
+<^^
+ IPwEntity^^ $
+>^^$ %
+
+BreadCrumb^^& 0
+{__
+get``
+{aa
+varbb
+groupsbb
+=bb
+newbb
+Stackbb! &
+<bb& '
+GroupVmbb' .
+>bb. /
+(bb/ 0
+)bb0 1
+;bb1 2
+varcc
+groupcc
+=cc
+thiscc
+;cc !
+whiledd
+(dd
+groupdd
+.dd
+ParentGroupdd (
+!=dd) +
+nulldd, 0
+)dd0 1
+{ee
+groupff
+=ff
+groupff !
+.ff! "
+ParentGroupff" -
+;ff- .
+groupsgg
+.gg
+Pushgg
+(gg
+groupgg %
+)gg% &
+;gg& '
+}hh
+returnjj
+groupsjj
+;jj
+}kk
+}ll
+privatenn
+readonlynn
+PwGroupnn
+_pwGroupnn! )
+;nn) *
+privateoo
+readonlyoo
+IDatabaseServiceoo )
+ _databaseoo* 3
+;oo3 4
+privatepp
+boolpp
+_isEditModepp
+;pp !
+privateqq
+PwEntryqq
+_reorderedEntryqq '
+;qq' (
+privaterr
+ObservableCollectionrr $
+<rr$ %
+EntryVmrr% ,
+>rr, -
+_entriesrr. 6
+=rr7 8
+newrr9 <
+ObservableCollectionrr= Q
+<rrQ R
+EntryVmrrR Y
+>rrY Z
+(rrZ [
+)rr[ \
+;rr\ ]
+privatess
+boolss
+
_isMenuClosedss "
+=ss# $
+truess% )
+;ss) *
+publicuu
+GroupVmuu
+(uu
+)uu
+{uu
+}uu
+internalww
+GroupVmww
+(ww
+PwGroupww
+pwGroupww! (
+,ww( )
+GroupVmww* 1
+parentww2 8
+,ww8 9
+PwUuidww: @
+recycleBinIdwwA M
+=wwN O
+nullwwP T
+)wwT U
+:wwV W
+thiswwX \
+(ww\ ]
+pwGroupww] d
+,wwd e
+parentwwf l
+,wwl m
+DatabaseServicexx
+.xx
+Instancexx $
+,xx$ %
+recycleBinIdxx& 2
+)xx2 3
+{yy
+}yy
+
+public{{
+GroupVm{{
+({{
+PwGroup{{
+pwGroup{{ &
+,{{& '
+GroupVm{{( /
+parent{{0 6
+,{{6 7
+IDatabaseService{{8 H
+database{{I Q
+,{{Q R
+PwUuid{{S Y
+recycleBinId{{Z f
+={{g h
+null{{i m
+){{m n
+{||
+_pwGroup}}
+=}}
+pwGroup}}
+;}}
+ _database~~
+=~~
+database~~
+;~~ !
+ParentGroup
+=
+parent
+; !
+if
+
+(
+
+recycleBinId
+
+!=
+
+null
+ $
+&&
+% '
+_pwGroup
+( 0
+.
+0 1
+Uuid
+1 5
+.
+5 6
+Equals
+6 <
+(
+< =
+recycleBinId
+= I
+)
+I J
+)
+J K
+ _database
+L U
+.
+U V
+
+RecycleBin
+V `
+=
+a b
+this
+c g
+;
+g h
+Entries
+
+=
+
+new
+ "
+ObservableCollection
+ .
+<
+. /
+EntryVm
+/ 6
+>
+6 7
+(
+7 8
+pwGroup
+8 ?
+.
+? @
+Entries
+@ G
+.
+G H
+Select
+H N
+(
+N O
+e
+O P
+=>
+Q S
+new
+T W
+EntryVm
+X _
+(
+_ `
+e
+` a
+,
+a b
+this
+c g
+)
+g h
+)
+h i
+)
+i j
+;
+j k
+Entries
+
+.
+
+CollectionChanged
+ %
++=
+& ('
+Entries_CollectionChanged
+) B
+;
+B C
+Groups
+
+=
+
+new
+ "
+ObservableCollection
+ -
+<
+- .
+GroupVm
+. 5
+>
+5 6
+(
+6 7
+pwGroup
+7 >
+.
+> ?
+Groups
+? E
+.
+E F
+Select
+F L
+(
+L M
+g
+M N
+=>
+O Q
+new
+R U
+GroupVm
+V ]
+(
+] ^
+g
+^ _
+,
+_ `
+this
+a e
+,
+e f
+recycleBinId
+g s
+)
+s t
+)
+t u
+)
+u v
+;
+v w
+}
+
+private
+
+void
+ '
+Entries_CollectionChanged
+ .
+(
+. /
+object
+/ 5
+sender
+6 <
+,
+< =.
+ NotifyCollectionChangedEventArgs
+> ^
+e
+_ `
+)
+` a
+{
+
+switch
+
+(
+
+e
+
+.
+
+Action
+
+)
+
+{
+
+case
+ +
+NotifyCollectionChangedAction
+ 2
+.
+2 3
+Remove
+3 9
+:
+9 :
+var
+
+oldIndex
+
+=
+! "
+(
+# $
+uint
+$ (
+)
+( )
+e
+* +
+.
++ ,
+OldStartingIndex
+, <
+;
+< =
+_reorderedEntry
+ $
+=
+% &
+_pwGroup
+' /
+.
+/ 0
+Entries
+0 7
+.
+7 8
+GetAt
+8 =
+(
+= >
+oldIndex
+> F
+)
+F G
+;
+G H
+_pwGroup
+
+.
+
+Entries
+ $
+.
+$ %
+RemoveAt
+% -
+(
+- .
+oldIndex
+. 6
+)
+6 7
+;
+7 8
+break
+
+;
+
+case
+ +
+NotifyCollectionChangedAction
+ 2
+.
+2 3
+Add
+3 6
+:
+6 7
+if
+
+(
+
+_reorderedEntry
+ '
+==
+( *
+null
++ /
+)
+/ 0
+_pwGroup
+1 9
+.
+9 :
+AddEntry
+: B
+(
+B C
+(
+C D
+(
+D E
+EntryVm
+E L
+)
+L M
+e
+N O
+.
+O P
+NewItems
+P X
+[
+X Y
+$num
+Y Z
+]
+Z [
+)
+[ \
+.
+\ ]
+
+GetPwEntry
+] g
+(
+g h
+)
+h i
+,
+i j
+true
+k o
+)
+o p
+;
+p q
+else
+
+_pwGroup
+ !
+.
+! "
+Entries
+" )
+.
+) *
+Insert
+* 0
+(
+0 1
+(
+1 2
+uint
+2 6
+)
+6 7
+e
+7 8
+.
+8 9
+NewStartingIndex
+9 I
+,
+I J
+_reorderedEntry
+K Z
+)
+Z [
+;
+[ \
+break
+
+;
+
+}
+
+}
+
+public
+
+GroupVm
+
+AddNewGroup
+ "
+(
+" #
+string
+# )
+name
+* .
+=
+/ 0
+$str
+1 3
+)
+3 4
+{
+
+var
+
+pwGroup
+
+=
+
+new
+
+PwGroup
+ %
+(
+% &
+true
+& *
+,
+* +
+true
+, 0
+,
+0 1
+name
+2 6
+,
+6 7
+PwIcon
+8 >
+.
+> ?
+Folder
+? E
+)
+E F
+;
+F G
+_pwGroup
+
+.
+
+AddGroup
+
+(
+
+pwGroup
+ %
+,
+% &
+true
+' +
+)
++ ,
+;
+, -
+var
+
+newGroup
+
+=
+
+new
+
+GroupVm
+ &
+(
+& '
+pwGroup
+' .
+,
+. /
+this
+0 4
+)
+4 5
+{
+6 7
+Name
+7 ;
+=
+< =
+name
+> B
+,
+B C
+
+IsEditMode
+D N
+=
+O P
+string
+Q W
+.
+W X
+
IsNullOrEmpty
+X e
+(
+e f
+name
+f j
+)
+j k
+}
+k l
+;
+l m
+Groups
+
+.
+
+Add
+
+(
+
+newGroup
+
+)
+
+;
+ !
+return
+
+newGroup
+
+;
+
+}
+
+public
+
+EntryVm
+
+AddNewEntry
+ "
+(
+ " #
+)
+ # $
+{
+ĄĄ
+var
+ĸĸ
+pwEntry
+ĸĸ
+=
+ĸĸ
+new
+ĸĸ
+PwEntry
+ĸĸ %
+(
+ĸĸ% &
+true
+ĸĸ& *
+,
+ĸĸ* +
+true
+ĸĸ, 0
+)
+ĸĸ0 1
+;
+ĸĸ1 2
+var
+ŖŖ
+newEntry
+ŖŖ
+=
+ŖŖ
+new
+ŖŖ
+EntryVm
+ŖŖ &
+(
+ŖŖ& '
+pwEntry
+ŖŖ' .
+,
+ŖŖ. /
+this
+ŖŖ0 4
+)
+ŖŖ4 5
+{
+ŖŖ6 7
+
+IsEditMode
+ŖŖ7 A
+=
+ŖŖB C
+true
+ŖŖD H
+}
+ŖŖH I
+;
+ŖŖI J
+newEntry
+¤¤
+.
+¤¤
+GeneratePassword
+¤¤ %
+(
+¤¤% &
+)
+¤¤& '
+;
+¤¤' (
+Entries
+ĨĨ
+.
+ĨĨ
+Add
+ĨĨ
+(
+ĨĨ
+newEntry
+ĨĨ
+)
+ĨĨ !
+;
+ĨĨ! "
+return
+ĻĻ
+newEntry
+ĻĻ
+;
+ĻĻ
+}
+§§
+public
+ŠŠ
+void
+ŠŠ
+
MarkForDelete
+ŠŠ !
+(
+ŠŠ! "
+string
+ŠŠ" (
+recycleBinTitle
+ŠŠ) 8
+)
+ŠŠ8 9
+{
+ĒĒ
+if
+ĢĢ
+(
+ĢĢ
+ _database
+ĢĢ
+.
+ĢĢ
+RecycleBinEnabled
+ĢĢ +
+&&
+ĢĢ, .
+ _database
+ĢĢ/ 8
+.
+ĢĢ8 9
+
+RecycleBin
+ĢĢ9 C
+?
+ĢĢC D
+.
+ĢĢD E
+IdUuid
+ĢĢE K
+==
+ĢĢL N
+null
+ĢĢO S
+)
+ĢĢS T
+ _database
+ŦŦ
+.
+ŦŦ
+CreateRecycleBin
+ŦŦ *
+(
+ŦŦ* +
+recycleBinTitle
+ŦŦ+ :
+)
+ŦŦ: ;
+;
+ŦŦ; <
+Move
+
+(
+
+ _database
+
+.
+
+RecycleBinEnabled
+ ,
+&&
+- /
+!
+0 1
+
+IsSelected
+1 ;
+?
+< =
+ _database
+> G
+.
+G H
+
+RecycleBin
+H R
+:
+S T
+null
+U Y
+)
+Y Z
+;
+Z [
+}
+ŽŽ
+public
+°°
+void
+°°
+
+UndoDelete
+°°
+(
+°°
+)
+°°
+{
+ąą
+Move
+˛˛
+(
+˛˛
+
PreviousGroup
+˛˛
+)
+˛˛
+;
+˛˛
+}
+ŗŗ
+public
+ĩĩ
+void
+ĩĩ
+Move
+ĩĩ
+(
+ĩĩ
+GroupVm
+ĩĩ
+destination
+ĩĩ! ,
+)
+ĩĩ, -
+{
+ļļ
+
PreviousGroup
+ˇˇ
+=
+ˇˇ
+ParentGroup
+ˇˇ '
+;
+ˇˇ' (
+
PreviousGroup
+¸¸
+.
+¸¸
+Groups
+¸¸
+.
+¸¸ !
+Remove
+¸¸! '
+(
+¸¸' (
+this
+¸¸( ,
+)
+¸¸, -
+;
+¸¸- .
+
PreviousGroup
+šš
+.
+šš
+_pwGroup
+šš "
+.
+šš" #
+Groups
+šš# )
+.
+šš) *
+Remove
+šš* 0
+(
+šš0 1
+_pwGroup
+šš1 9
+)
+šš9 :
+;
+šš: ;
+if
+ēē
+(
+ēē
+destination
+ēē
+==
+ēē
+null
+ēē #
+)
+ēē# $
+{
+ģģ
+ _database
+ŧŧ
+.
+ŧŧ
+AddDeletedItem
+ŧŧ (
+(
+ŧŧ( )
+IdUuid
+ŧŧ) /
+)
+ŧŧ/ 0
+;
+ŧŧ0 1
+return
+ŊŊ
+;
+ŊŊ
+}
+žž
+ParentGroup
+ŋŋ
+=
+ŋŋ
+destination
+ŋŋ %
+;
+ŋŋ% &
+ParentGroup
+ĀĀ
+.
+ĀĀ
+Groups
+ĀĀ
+.
+ĀĀ
+Add
+ĀĀ "
+(
+ĀĀ" #
+this
+ĀĀ# '
+)
+ĀĀ' (
+;
+ĀĀ( )
+ParentGroup
+ÁÁ
+.
+ÁÁ
+_pwGroup
+ÁÁ
+.
+ÁÁ !
+AddGroup
+ÁÁ! )
+(
+ÁÁ) *
+_pwGroup
+ÁÁ* 2
+,
+ÁÁ2 3
+true
+ÁÁ4 8
+)
+ÁÁ8 9
+;
+ÁÁ9 :
+}
+ÂÂ
+public
+ÄÄ
+void
+ÄÄ
+CommitDelete
+ÄÄ
+(
+ÄÄ !
+)
+ÄÄ! "
+{
+ÅÅ
+_pwGroup
+ÆÆ
+.
+ÆÆ
+ParentGroup
+ÆÆ
+.
+ÆÆ !
+Groups
+ÆÆ! '
+.
+ÆÆ' (
+Remove
+ÆÆ( .
+(
+ÆÆ. /
+_pwGroup
+ÆÆ/ 7
+)
+ÆÆ7 8
+;
+ÆÆ8 9
+if
+ĮĮ
+(
+ĮĮ
+ _database
+ĮĮ
+.
+ĮĮ
+RecycleBinEnabled
+ĮĮ +
+&&
+ĮĮ, .
+!
+ĮĮ/ 0
+
PreviousGroup
+ĮĮ0 =
+.
+ĮĮ= >
+
+IsSelected
+ĮĮ> H
+)
+ĮĮH I
+ _database
+ĮĮJ S
+.
+ĮĮS T
+
+RecycleBin
+ĮĮT ^
+.
+ĮĮ^ _
+_pwGroup
+ĮĮ_ g
+.
+ĮĮg h
+AddGroup
+ĮĮh p
+(
+ĮĮp q
+_pwGroup
+ĮĮq y
+,
+ĮĮy z
+true
+ĮĮ{
+)ĮĮ
+;ĮĮ
+else
+ČČ
+ _database
+ČČ
+.
+ČČ
+AddDeletedItem
+ČČ )
+(
+ČČ) *
+IdUuid
+ČČ* 0
+)
+ČČ0 1
+;
+ČČ1 2
+}
+ÉÉ
+public
+ËË
+void
+ËË
+Save
+ËË
+(
+ËË
+)
+ËË
+{
+ĖĖ
+ _database
+ÍÍ
+.
+ÍÍ
+Save
+ÍÍ
+(
+ÍÍ
+)
+ÍÍ
+;
+ÍÍ
+}
+ÎÎ
+public
+ĐĐ
+void
+ĐĐ
+SortEntries
+ĐĐ
+(
+ĐĐ
+)
+ĐĐ !
+{
+ŅŅ
+var
+ŌŌ
+comparer
+ŌŌ
+=
+ŌŌ
+new
+ŌŌ
+PwEntryComparer
+ŌŌ .
+(
+ŌŌ. /
+PwDefs
+ŌŌ/ 5
+.
+ŌŌ5 6
+
+TitleField
+ŌŌ6 @
+,
+ŌŌ@ A
+true
+ŌŌB F
+,
+ŌŌF G
+false
+ŌŌH M
+)
+ŌŌM N
+;
+ŌŌN O
+try
+ĶĶ
+{
+ÔÔ
+_pwGroup
+ÕÕ
+.
+ÕÕ
+Entries
+ÕÕ
+.
+ÕÕ !
+Sort
+ÕÕ! %
+(
+ÕÕ% &
+comparer
+ÕÕ& .
+)
+ÕÕ. /
+;
+ÕÕ/ 0
+Entries
+ÖÖ
+=
+ÖÖ
+new
+ÖÖ "
+ObservableCollection
+ÖÖ 2
+<
+ÖÖ2 3
+EntryVm
+ÖÖ3 :
+>
+ÖÖ: ;
+(
+ÖÖ; <
+Entries
+ÖÖ< C
+.
+ÖÖC D
+OrderBy
+ÖÖD K
+(
+ÖÖK L
+e
+ÖÖL M
+=>
+ÖÖN P
+e
+ÖÖQ R
+.
+ÖÖR S
+Name
+ÖÖS W
+)
+ÖÖW X
+)
+ÖÖX Y
+;
+ÖÖY Z
+}
+××
+catch
+ØØ
+(
+ØØ
+ Exception
+ØØ
+e
+ØØ
+)
+ØØ
+{
+ŲŲ
!
+MessageDialogHelper
+ÚÚ #
+.
+ÚÚ# $
+ShowErrorDialog
+ÚÚ$ 3
+(
+ÚÚ3 4
+e
+ÚÚ4 5
+)
+ÚÚ5 6
+;
+ÚÚ6 7
+}
+ÛÛ
+}
+ÜÜ
+public
+ŪŪ
+void
+ŪŪ
+
+SortGroups
+ŪŪ
+(
+ŪŪ
+)
+ŪŪ
+{
+ßß
+try
+āā
+{
+áá
+_pwGroup
+ââ
+.
+ââ
+
SortSubGroups
+ââ &
+(
+ââ& '
+false
+ââ' ,
+)
+ââ, -
+;
+ââ- .
+Groups
+ãã
+=
+ãã
+new
+ãã "
+ObservableCollection
+ãã 1
+<
+ãã1 2
+GroupVm
+ãã2 9
+>
+ãã9 :
+(
+ãã: ;
+Groups
+ãã; A
+.
+ããA B
+OrderBy
+ããB I
+(
+ããI J
+g
+ããJ K
+=>
+ããL N
+g
+ããO P
+.
+ããP Q
+Name
+ããQ U
+)
+ããU V
+.
+ããV W
+ThenBy
+ããW ]
+(
+ãã] ^
+g
+ãã^ _
+=>
+ãã` b
+g
+ããc d
+.
+ããd e
+_pwGroup
+ããe m
+==
+ããn p
+null
+ããq u
+)
+ããu v
+)
+ããv w
+;
+ããw x
+OnPropertyChanged
+ää !
+(
+ää! "
+$str
+ää" *
+)
+ää* +
+;
+ää+ ,
+}
+åå
+catch
+ææ
+(
+ææ
+ Exception
+ææ
+e
+ææ
+)
+ææ
+{
+įį
!
+MessageDialogHelper
+čč #
+.
+čč# $
+ShowErrorDialog
+čč$ 3
+(
+čč3 4
+e
+čč4 5
+)
+čč5 6
+;
+čč6 7
+}
+éé
+}
+ęę
+public
+ėė
+override
+ėė
+string
+ėė
+ToString
+ėė '
+(
+ėė' (
+)
+ėė( )
+{
+íí
+return
+îî
+Name
+îî
+;
+îî
+}
+īī
+}
+đđ
+}ņņ Ā
+NC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsNewVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+
SettingsNewVm
+{
+private
+readonly
+ISettingsService )
+ _settings * 3
+; 3 4
+public
+
SettingsNewVm
+(
+)
+:
+this! %
+(% &
+SettingsService& 5
+.5 6
+Instance6 >
+)> ?
+{
+}
+
+public
+
SettingsNewVm
+(
+ISettingsService -
+settings. 6
+)6 7
+{
+ _settings
+=
+settings
+; !
+}
+public
+bool
+IsCreateSample "
+{
+get
+{
+return
+ _settings "
+." #
+
+GetSetting# -
+<- .
+bool. 2
+>2 3
+(3 4
+$str4 <
+)< =
+;= >
+}? @
+set
+{
+ _settings
+.
+
+PutSetting &
+(& '
+$str' /
+,/ 0
+value1 6
+)6 7
+;7 8
+}9 :
+}
+public
+IEnumerable
+<
+string !
+>! "
+FileFormats# .
+=>/ 1
+new2 5
+[6 7
+]7 8
+{8 9
+$str9 <
+,< =
+$str> A
+}A B
+;B C
+public
+string
+FileFormatVersion '
+{
+get
+{
+return
+ _settings "
+." #
+
+GetSetting# -
+<- .
+string. 4
+>4 5
+(5 6
+$str6 I
+)I J
+;J K
+}L M
+set
+{
+ _settings
+.
+
+PutSetting &
+(& '
+$str' :
+,: ;
+value< A
+)A B
+;B C
+}D E
+}
+}
+}!! Ō3
+EC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SettingsVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+
+
+public
+
+class
+
+SettingsVm
+: %
+NotifyPropertyChangedBase 7
+,7 8
+IHasSelectableObject9 M
+{
+private
+ListMenuItemVm
+
_selectedItem
,
+;
, -
+private
+IOrderedEnumerable "
+<" #
+ IGrouping# ,
+<, -
+string- 3
+,3 4
+ListMenuItemVm5 C
+>C D
+>D E
+
+_menuItemsF P
+;P Q
+public
+IOrderedEnumerable !
+<! "
+ IGrouping" +
+<+ ,
+string, 2
+,2 3
+ListMenuItemVm4 B
+>B C
+>C D
+ MenuItemsE N
+{
+get
+{
+return
+
+_menuItems #
+;# $
+}% &
+set
+{
+SetProperty
+(
+ref !
+
+_menuItems" ,
+,, -
+value. 3
+)3 4
+;4 5
+}6 7
+}
+public
+ISelectableModel
+SelectedItem ,
+{
+get
+{
+return
+
_selectedItem &
+;& '
+}( )
+set
+{
+if
+(
+
_selectedItem !
+==" $
+value% *
+)* +
+return, 2
+;2 3
+if
+(
+
_selectedItem !
+!=" $
+null% )
+)) *
+{
+
_selectedItem !
+.! "
+
+IsSelected" ,
+=- .
+false/ 4
+;4 5
+}
+SetProperty""
+(""
+ref""
+
_selectedItem"" -
+,""- .
+(""/ 0
+ListMenuItemVm""0 >
+)""> ?
+value""? D
+)""D E
+;""E F
+if$$
+($$
+
_selectedItem$$ !
+!=$$" $
+null$$% )
+)$$) *
+{%%
+
_selectedItem&& !
+.&&! "
+
+IsSelected&&" ,
+=&&- .
+true&&/ 3
+;&&3 4
+}''
+}((
+}))
+public++
+
+SettingsVm++
+(++
+)++
+:++
+this++ "
+(++" #
+DatabaseService++# 2
+.++2 3
+Instance++3 ;
+,++; <
+new++= @
+ResourcesService++A Q
+(++Q R
+)++R S
+)++S T
+{++U V
+}++W X
+public--
+
+SettingsVm--
+(--
+IDatabaseService-- *
+database--+ 3
+,--3 4
+IResourceService--5 E
+resource--F N
+)--N O
+{..
+var//
+ menuItems//
+=//
+new//
+ObservableCollection// 4
+<//4 5
+ListMenuItemVm//5 C
+>//C D
+{00
+new11
+ListMenuItemVm11 "
+{22
+Title33
+=33
+resource33 $
+.33$ %
+GetResourceValue33% 5
+(335 6
+$str336 K
+)33K L
+,33L M
+Group44
+=44
+resource44 $
+.44$ %
+GetResourceValue44% 5
+(445 6
+$str446 T
+)44T U
+,44U V
+
+SymbolIcon55
+=55
+Symbol55! '
+.55' (
+Add55( +
+,55+ ,
+PageType66
+=66
+typeof66 %
+(66% &#
+SettingsNewDatabasePage66& =
+)66= >
+,66> ?
+
+IsSelected77
+=77
+true77! %
+}88
+,88
+new99
+ListMenuItemVm99 "
+{::
+Title;;
+=;;
+resource;; $
+.;;$ %
+GetResourceValue;;% 5
+(;;5 6
+$str;;6 L
+);;L M
+,;;M N
+Group<<
+=<<
+resource<< $
+.<<$ %
+GetResourceValue<<% 5
+(<<5 6
+$str<<6 T
+)<<T U
+,<<U V
+
+SymbolIcon==
+===
+Symbol==! '
+.==' (
+Save==( ,
+,==, -
+PageType>>
+=>>
+typeof>> %
+(>>% &
+SettingsSavePage>>& 6
+)>>6 7
+}??
+,??
+new@@
+ListMenuItemVm@@ "
+{AA
+TitleBB
+=BB
+resourceBB $
+.BB$ %
+GetResourceValueBB% 5
+(BB5 6
+$strBB6 O
+)BBO P
+,BBP Q
+GroupCC
+=CC
+resourceCC $
+.CC$ %
+GetResourceValueCC% 5
+(CC5 6
+$strCC6 Q
+)CCQ R
+,CCR S
+
+SymbolIconDD
+=DD
+SymbolDD! '
+.DD' (
+SettingDD( /
+,DD/ 0
+PageTypeEE
+=EE
+typeofEE %
+(EE% &
+SettingsDatabasePageEE& :
+)EE: ;
+,EE; <
+ IsEnabledFF
+=FF
+databaseFF (
+.FF( )
+IsOpenFF) /
+}GG
+,GG
+newHH
+ListMenuItemVmHH "
+{II
+TitleJJ
+=JJ
+resourceJJ $
+.JJ$ %
+GetResourceValueJJ% 5
+(JJ5 6
+$strJJ6 P
+)JJP Q
+,JJQ R
+GroupKK
+=KK
+resourceKK $
+.KK$ %
+GetResourceValueKK% 5
+(KK5 6
+$strKK6 Q
+)KKQ R
+,KKR S
+
+SymbolIconLL
+=LL
+SymbolLL! '
+.LL' (
+PermissionsLL( 3
+,LL3 4
+PageTypeMM
+=MM
+typeofMM %
+(MM% &
+SettingsSecurityPageMM& :
+)MM: ;
+,MM; <
+ IsEnabledNN
+=NN
+databaseNN (
+.NN( )
+IsOpenNN) /
+}OO
+}PP
+;PP
+SelectedItemQQ
+=QQ
+ menuItemsQQ $
+.QQ$ %
+FirstOrDefaultQQ% 3
+(QQ3 4
+mQQ4 5
+=>QQ6 8
+mQQ9 :
+.QQ: ;
+
+IsSelectedQQ; E
+)QQE F
+;QQF G
+ MenuItemsSS
+=SS
+fromSS
+itemSS !
+inSS" $
+ menuItemsSS% .
+groupSS/ 4
+itemSS5 9
+bySS: <
+itemSS= A
+.SSA B
+GroupSSB G
+intoSSH L
+grpSSM P
+orderbySSQ X
+grpSSY \
+.SS\ ]
+KeySS] `
+selectSSa g
+grpSSh k
+;SSk l
+}TT
+}UU
+}VV ÕU
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\MainVm.cs
+ namespace
+
+
+
ModernKeePass
+
+
+
+.
+
+
+
+ViewModels
+
+ "
+{
+public
+
+class
+MainVm
+: %
+NotifyPropertyChangedBase 3
+,3 4
+IHasSelectableObject5 I
+{
+private
+IOrderedEnumerable "
+<" #
+ IGrouping# ,
+<, -
+string- 3
+,3 4
+MainMenuItemVm5 C
+>C D
+>D E
+_mainMenuItemsF T
+;T U
+private
+MainMenuItemVm
+
_selectedItem ,
+;, -
+public
+string
+Name
+{
+get
+; !
+}" #
+=$ %
+Package& -
+.- .
+Current. 5
+.5 6
+DisplayName6 A
+;A B
+public
+IOrderedEnumerable !
+<! "
+ IGrouping" +
+<+ ,
+string, 2
+,2 3
+MainMenuItemVm4 B
+>B C
+>C D
+
MainMenuItemsE R
+{
+get
+{
+return
+_mainMenuItems '
+;' (
+}) *
+set
+{
+SetProperty
+(
+ref !
+_mainMenuItems" 0
+,0 1
+value2 7
+)7 8
+;8 9
+}: ;
+}
+public
+ISelectableModel
+SelectedItem ,
+{
+get
+{
+return
+
_selectedItem &
+;& '
+}( )
+set
+{
+if
+(
+
_selectedItem !
+==" $
+value% *
+)* +
+return, 2
+;2 3
+if
+(
+
_selectedItem !
+!=" $
+null% )
+)) *
+{
+
_selectedItem!! !
+.!!! "
+
+IsSelected!!" ,
+=!!- .
+false!!/ 4
+;!!4 5
+}""
+SetProperty$$
+($$
+ref$$
+
_selectedItem$$ -
+,$$- .
+($$/ 0
+MainMenuItemVm$$0 >
+)$$> ?
+value$$? D
+)$$D E
+;$$E F
+if&&
+(&&
+
_selectedItem&& !
+!=&&" $
+null&&% )
+)&&) *
+{''
+
_selectedItem(( !
+.((! "
+
+IsSelected((" ,
+=((- .
+true((/ 3
+;((3 4
+}))
+}**
+}++
+public--
+MainVm--
+(--
+)--
+{--
+}--
+internal//
+MainVm//
+(//
+Frame//
+referenceFrame// ,
+,//, -
+Frame//. 3
+destinationFrame//4 D
+)//D E
+://F G
+this//H L
+(//L M
+referenceFrame//M [
+,//[ \
+destinationFrame//] m
+,//m n
+DatabaseService00
+.00
+Instance00 $
+,00$ %
+new00& )
+ResourcesService00* :
+(00: ;
+)00; <
+,00< =
+
RecentService00> K
+.00K L
+Instance00L T
+)00T U
+{11
+}11
+
+public33
+MainVm33
+(33
+Frame33
+referenceFrame33 *
+,33* +
+Frame33, 1
+destinationFrame332 B
+,33B C
+IDatabaseService33D T
+database33U ]
+,33] ^
+IResourceService33_ o
+resource33p x
+,33x y
+IRecentService 33z
+recent
+33
+)
+33
+{44
+var55
+isDatabaseOpen55
+=55
+database55! )
+!=55* ,
+null55- 1
+&&552 4
+database555 =
+.55= >
+IsOpen55> D
+;55D E
+var77
+
mainMenuItems77
+=77
+new77 #
+ObservableCollection77$ 8
+<778 9
+MainMenuItemVm779 G
+>77G H
+{88
+new99
+MainMenuItemVm99 "
+{::
+Title;;
+=;;
+resource;; $
+.;;$ %
+GetResourceValue;;% 5
+(;;5 6
+$str;;6 H
+);;H I
+,;;I J
+PageType<<
+=<<
+typeof<< %
+(<<% &
+OpenDatabasePage<<& 6
+)<<6 7
+,<<7 8
+Destination==
+=== !
+destinationFrame==" 2
+,==2 3
+ Parameter>>
+=>>
+referenceFrame>> .
+,>>. /
+
+SymbolIcon??
+=??
+Symbol??! '
+.??' (
+Page2??( -
+,??- .
+
+IsSelected@@
+=@@
+database@@! )
+!=@@* ,
+null@@- 1
+&&@@2 4
+database@@5 =
+.@@= >
+
+IsFileOpen@@> H
+&&@@I K
+!@@L M
+database@@M U
+.@@U V
+IsOpen@@V \
+}AA
+,AA
+newBB
+MainMenuItemVmBB "
+{CC
+TitleDD
+=DD
+resourceDD $
+.DD$ %
+GetResourceValueDD% 5
+(DD5 6
+$strDD6 G
+)DDG H
+,DDH I
+PageTypeEE
+=EE
+typeofEE %
+(EE% &
+NewDatabasePageEE& 5
+)EE5 6
+,EE6 7
+DestinationFF
+=FF !
+destinationFrameFF" 2
+,FF2 3
+ ParameterGG
+=GG
+referenceFrameGG .
+,GG. /
+
+SymbolIconHH
+=HH
+SymbolHH! '
+.HH' (
+AddHH( +
+}II
+,II
+newJJ
+MainMenuItemVmJJ "
+{KK
+TitleLL
+=LL
+resourceLL $
+.LL$ %
+GetResourceValueLL% 5
+(LL5 6
+$strLL6 H
+)LLH I
+,LLI J
+PageTypeMM
+=MM
+typeofMM %
+(MM% &
+SaveDatabasePageMM& 6
+)MM6 7
+,MM7 8
+DestinationNN
+=NN !
+destinationFrameNN" 2
+,NN2 3
+ ParameterOO
+=OO
+referenceFrameOO .
+,OO. /
+
+SymbolIconPP
+=PP
+SymbolPP! '
+.PP' (
+SavePP( ,
+,PP, -
+
+IsSelectedQQ
+=QQ
+isDatabaseOpenQQ! /
+,QQ/ 0
+ IsEnabledRR
+=RR
+isDatabaseOpenRR .
+}SS
+,SS
+newTT
+MainMenuItemVmTT "
+{UU
+TitleVV
+=VV
+resourceVV $
+.VV$ %
+GetResourceValueVV% 5
+(VV5 6
+$strVV6 J
+)VVJ K
+,VVK L
+PageTypeWW
+=WW
+typeofWW %
+(WW% &
+RecentDatabasesPageWW& 9
+)WW9 :
+,WW: ;
+DestinationXX
+=XX !
+destinationFrameXX" 2
+,XX2 3
+ ParameterYY
+=YY
+referenceFrameYY .
+,YY. /
+
+SymbolIconZZ
+=ZZ
+SymbolZZ! '
+.ZZ' (
+CopyZZ( ,
+,ZZ, -
+
+IsSelected[[
+=[[
+(\\
+database\\ !
+==\\" $
+null\\% )
+||\\* ,
+database\\- 5
+.\\5 6
+IsClosed\\6 >
+)\\> ?
+&&\\@ B
+recent]]
+.]]
+
+EntryCount]] )
+>]]* +
+$num]], -
+,]]- .
+ IsEnabled^^
+=^^
+recent^^ &
+.^^& '
+
+EntryCount^^' 1
+>^^2 3
+$num^^4 5
+}__
+,__
+new``
+MainMenuItemVm`` "
+{aa
+Titlebb
+=bb
+resourcebb $
+.bb$ %
+GetResourceValuebb% 5
+(bb5 6
+$strbb6 L
+)bbL M
+,bbM N
+PageTypecc
+=cc
+typeofcc %
+(cc% &
+SettingsPagecc& 2
+)cc2 3
+,cc3 4
+Destinationdd
+=dd !
+referenceFramedd" 0
+,dd0 1
+
+SymbolIconee
+=ee
+Symbolee! '
+.ee' (
+Settingee( /
+}ff
+,ff
+newgg
+MainMenuItemVmgg "
+{hh
+Titleii
+=ii
+resourceii $
+.ii$ %
+GetResourceValueii% 5
+(ii5 6
+$strii6 I
+)iiI J
+,iiJ K
+PageTypejj
+=jj
+typeofjj %
+(jj% &
+ AboutPagejj& /
+)jj/ 0
+,jj0 1
+Destinationkk
+=kk !
+destinationFramekk" 2
+,kk2 3
+
+SymbolIconll
+=ll
+Symbolll! '
+.ll' (
+Helpll( ,
+}mm
+,mm
+newnn
+MainMenuItemVmnn "
+{oo
+Titlepp
+=pp
+resourcepp $
+.pp$ %
+GetResourceValuepp% 5
+(pp5 6
+$strpp6 J
+)ppJ K
+,ppK L
+PageTypeqq
+=qq
+typeofqq %
+(qq% &
+
+DonatePageqq& 0
+)qq0 1
+,qq1 2
+Destinationrr
+=rr !
+destinationFramerr" 2
+,rr2 3
+
+SymbolIconss
+=ss
+Symbolss! '
+.ss' (
+Shopss( ,
+}tt
+}uu
+;uu
+SelectedItemww
+=ww
+
mainMenuItemsww (
+.ww( )
+FirstOrDefaultww) 7
+(ww7 8
+mww8 9
+=>ww: <
+mww= >
+.ww> ?
+
+IsSelectedww? I
+)wwI J
+;wwJ K
+ifzz
+(zz
+databasezz
+!=zz
+nullzz
+&&zz! #
+databasezz$ ,
+.zz, -
+IsOpenzz- 3
+)zz3 4
+
mainMenuItems{{
+.{{
+Add{{ !
+({{! "
+new{{" %
+MainMenuItemVm{{& 4
+{||
+Title}}
+=}}
+database}} $
+.}}$ %
+Name}}% )
+,}}) *
+PageType~~
+=~~
+typeof~~ %
+(~~% &
+GroupDetailPage~~& 5
+)~~5 6
+,~~6 7
+Destination
+= !
+referenceFrame" 0
+,0 1
+ Parameter
+
+=
+
+database
+ (
+.
+( )
+ RootGroup
+) 2
+,
+2 3
+Group
+
+=
+
+$str
+ '
+,
+' (
+
+SymbolIcon
+
+=
+
+Symbol
+! '
+.
+' (
+ProtectedDocument
+( 9
+}
+
+)
+
+;
+
+
MainMenuItems
+
+=
+
+from
+
+item
+
! %
+in
+
& (
+
mainMenuItems
+
) 6
+group
+
7 <
+item
+
= A
+by
+
B D
+item
+
E I
+.
+
I J
+Group
+
J O
+into
+
P T
+grp
+
U X
+orderby
+
Y `
+grp
+
a d
+.
+
d e
+Key
+
e h
+select
+
i o
+grp
+
p s
+;
+
s t
+}
+
+}
+
+} Ę
+@C:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\NewVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+NewVm
+:
+OpenVm
+{
+public
+string
+Password
+{
+get! $
+;$ %
+set& )
+;) *
+}+ ,
+}
+}
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\OpenVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+OpenVm
+: %
+NotifyPropertyChangedBase 2
+{
+public
+
+
+bool
+
+
+ShowPasswordBox
+
+ #
+=>
+
+$ &
+ _database
+
+' 0
+.
+
+0 1
+
+IsFileOpen
+
+1 ;
+;
+
+; <
+public
+string
+Name
+=>
+ _database '
+?' (
+.( )
+Name) -
+;- .
+private
+readonly
+IDatabaseService )
+ _database* 3
+;3 4
+public
+OpenVm
+(
+)
+:
+this
+(
+DatabaseService .
+.. /
+Instance/ 7
+)7 8
+{9 :
+}; <
+public
+OpenVm
+(
+IDatabaseService &
+database' /
+)/ 0
+{
+ _database
+=
+database
+; !
+if
+(
+database
+==
+null
+||! #
+!$ %
+database% -
+.- .
+
+IsFileOpen. 8
+)8 9
+return: @
+;@ A
+OpenFile
+(
+database
+.
+DatabaseFile *
+)* +
+;+ ,
+}
+public
+void
+OpenFile
+(
+StorageFile (
+file) -
+)- .
+{
+OpenFile
+(
+file
+,
+
RecentService (
+.( )
+Instance) 1
+)1 2
+;2 3
+}
+public
+void
+OpenFile
+(
+StorageFile (
+file) -
+,- .
+IRecentService/ =
+recent> D
+)D E
+{
+ _database
+.
+DatabaseFile "
+= # $
+file % )
+; ) *
+OnPropertyChanged!!
+(!!
+$str!! $
+)!!$ %
+;!!% &
+OnPropertyChanged""
+(""
+$str"" /
+)""/ 0
+;""0 1
+AddToRecentList##
+(##
+file##
+,## !
+recent##" (
+)##( )
+;##) *
+}$$
+private&&
+void&&
+AddToRecentList&& $
+(&&$ %
+StorageFile&&% 0
+file&&1 5
+,&&5 6
+IRecentService&&7 E
+recent&&F L
+)&&L M
+{''
+recent((
+.((
+Add((
+(((
+file((
+,((
+file(( !
+.((! "
+DisplayName((" -
+)((- .
+;((. /
+}))
+}**
+}++ ĩ
+CC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\RecentVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+RecentVm
+: %
+NotifyPropertyChangedBase 5
+,5 6
+IHasSelectableObject7 K
+{
+private
+
+
+readonly
+
+
+IRecentService
+
+ '
+_recent
+
+( /
+;
+
+/ 0
+private
+ISelectableModel
+
_selectedItem! .
+;. /
+private
+ObservableCollection $
+<$ %
+IRecentItem% 0
+>0 1
+_recentItems2 >
+=? @
+newA D
+ObservableCollectionE Y
+<Y Z
+IRecentItemZ e
+>e f
+(f g
+)g h
+;h i
+public
+ObservableCollection #
+<# $
+IRecentItem$ /
+>/ 0
+RecentItems1 <
+{
+get
+{
+return
+_recentItems %
+;% &
+}' (
+set
+{
+SetProperty
+(
+ref !
+_recentItems" .
+,. /
+value0 5
+)5 6
+;6 7
+}8 9
+}
+public
+ISelectableModel
+SelectedItem ,
+{
+get
+{
+return
+
_selectedItem &
+;& '
+}( )
+set
+{
+if
+(
+
_selectedItem !
+==" $
+value% *
+)* +
+return, 2
+;2 3
+if
+(
+
_selectedItem !
+!=" $
+null% )
+)) *
+{
+
_selectedItem !
+.! "
+
+IsSelected" ,
+=- .
+false/ 4
+;4 5
+}
+SetProperty
+(
+ref
+
_selectedItem -
+,- .
+value/ 4
+)4 5
+;5 6
+if!!
+(!!
+
_selectedItem!! !
+==!!" $
+null!!% )
+)!!) *
+return!!+ 1
+;!!1 2
+
_selectedItem""
+.""
+
+IsSelected"" (
+="") *
+true""+ /
+;""/ 0
+}##
+}$$
+public&&
+RecentVm&&
+(&&
+)&&
+:&&
+this&&
+(&&! "
+
RecentService&&" /
+.&&/ 0
+Instance&&0 8
+)&&8 9
+{''
+}''
+
+public))
+RecentVm))
+())
+IRecentService)) &
+recent))' -
+)))- .
+{**
+_recent++
+=++
+recent++
+;++
+RecentItems,,
+=,,
+_recent,, !
+.,,! "
+GetAllFiles,," -
+(,,- .
+),,. /
+;,,/ 0
+if--
+(--
+RecentItems--
+.--
+Count-- !
+>--" #
+$num--$ %
+)--% &
+SelectedItem..
+=..
+RecentItems.. *
+[..* +
+$num..+ ,
+].., -
+as... 0
+RecentItemVm..1 =
+;..= >
+}//
+public11
+void11
+ClearAll11
+(11
+)11
+{22
+_recent33
+.33
+ClearAll33
+(33
+)33
+;33
+RecentItems44
+.44
+Clear44
+(44
+)44
+;44
+}55
+}66
+}77 Æ
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SaveVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+SaveVm
+{
+private
+
+
+readonly
+
+
+IDatabaseService
+
+ )
+ _database
+
+* 3
+;
+
+3 4
+public
+SaveVm
+(
+)
+:
+this
+(
+DatabaseService .
+.. /
+Instance/ 7
+)7 8
+{9 :
+}; <
+public
+SaveVm
+(
+IDatabaseService
&
+database
' /
+)
/ 0
+{
+ _database
+=
+database
+; !
+}
+public
+async
+Task
+Save
+(
+bool #
+close$ )
+=* +
+true, 0
+)0 1
+{
+ _database
+.
+Save
+(
+)
+;
+if
+(
+close
+)
+await
+ _database
+.
+Close %
+(% &
+)& '
+;' (
+}
+public
+void
+Save
+(
+StorageFile $
+file% )
+)) *
+{
+ _database
+.
+Save
+(
+file
+)
+; !
+}
+}
+} ü@
+SC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsDatabaseVm.cs
+ namespace
+
ModernKeePass
+
+.
+
+ViewModels "
+{
+public
+
+class
+SettingsDatabaseVm #
+:# $%
+NotifyPropertyChangedBase% >
+,> ?
+IHasSelectableObject@ T
+{
+private
+readonly
+IDatabaseService )
+ _database* 3
+;3 4
+private
+GroupVm
+
_selectedItem %
+;% &
+public
+bool
+
HasRecycleBin !
+{
+get
+{
+return
+ _database "
+." #
+RecycleBinEnabled# 4
+;4 5
+}6 7
+set
+{
+ _database
+.
+RecycleBinEnabled +
+=, -
+value. 3
+;3 4
+OnPropertyChanged !
+(! "
+$str" 1
+)1 2
+;2 3
+}
+}
+public
+bool
+IsNewRecycleBin #
+{
+get
+{
+return
+ _database "
+. " #
+
+RecycleBin # -
+== . 0
+null 1 5
+; 5 6
+} 7 8
+set!!
+{""
+if##
+(##
+value##
+)##
+ _database## $
+.##$ %
+
+RecycleBin##% /
+=##0 1
+null##2 6
+;##6 7
+}$$
+}%%
+public''
+ObservableCollection'' #
+<''# $
+GroupVm''$ +
+>''+ ,
+Groups''- 3
+{''4 5
+get''6 9
+;''9 :
+set''; >
+;''> ?
+}''@ A
+public))
+IEnumerable))
+<))
+string)) !
+>))! "
+Ciphers))# *
+{**
+get++
+{,,
+for--
+(--
+var--
+inx--
+=--
+$num--
+;-- !
+inx--" %
+<--& '
+
+CipherPool--( 2
+.--2 3
+
+GlobalPool--3 =
+.--= >
+EngineCount--> I
+;--I J
+inx--K N
+++--N P
+)--P Q
+{..
+yield//
+return//
+
+CipherPool//! +
+.//+ ,
+
+GlobalPool//, 6
+[//6 7
+inx//7 :
+]//: ;
+.//; <
+DisplayName//< G
+;//G H
+}00
+}11
+}22
+public44
+int44
+CipherIndex44
+{55
+get66
+{77
+for88
+(88
+var88
+inx88
+=88
+$num88
+;88 !
+inx88" %
+<88& '
+
+CipherPool88( 2
+.882 3
+
+GlobalPool883 =
+.88= >
+EngineCount88> I
+;88I J
+++88K M
+inx88M P
+)88P Q
+{99
+if::
+(::
+
+CipherPool:: "
+.::" #
+
+GlobalPool::# -
+[::- .
+inx::. 1
+]::1 2
+.::2 3
+
+CipherUuid::3 =
+.::= >
+Equals::> D
+(::D E
+ _database::E N
+.::N O
+
+DataCipher::O Y
+)::Y Z
+)::Z [
+return::\ b
+inx::c f
+;::f g
+};;
+return<<
+-<<
+$num<<
+;<<
+}==
+set>>
+{>>
+ _database>>
+.>>
+
+DataCipher>> &
+=>>' (
+
+CipherPool>>) 3
+.>>3 4
+
+GlobalPool>>4 >
+[>>> ?
+value>>? D
+]>>D E
+.>>E F
+
+CipherUuid>>F P
+;>>P Q
+}>>R S
+}??
+publicAA
+IEnumerableAA
+<AA
+stringAA !
+>AA! "
+CompressionsAA# /
+=>AA0 2
+EnumAA3 7
+.AA7 8
+GetNamesAA8 @
+(AA@ A
+typeofAAA G
+(AAG H"
+PwCompressionAlgorithmAAH ^
+)AA^ _
+)AA_ `
+.AA` a
+TakeAAa e
+(AAe f
+(AAf g
+intAAg j
+)AAj k#
+PwCompressionAlgorithm AAk
+.
+AA
+Count
+AA
+)
+AA
+;
+AA
+publicCC
+stringCC
+CompressionNameCC %
+{DD
+getEE
+{EE
+returnEE
+EnumEE
+.EE
+GetNameEE %
+(EE% &
+typeofEE& ,
+(EE, -"
+PwCompressionAlgorithmEE- C
+)EEC D
+,EED E
+ _databaseEEF O
+.EEO P
+CompressionAlgorithmEEP d
+)EEd e
+;EEe f
+}EEg h
+setFF
+{FF
+ _databaseFF
+.FF
+CompressionAlgorithmFF 0
+=FF1 2
+(FF3 4"
+PwCompressionAlgorithmFF4 J
+)FFJ K
+EnumFFK O
+.FFO P
+ParseFFP U
+(FFU V
+typeofFFV \
+(FF\ ]"
+PwCompressionAlgorithmFF] s
+)FFs t
+,FFt u
+valueFFv {
+)FF{ |
+;FF| }
+}FF~
+}GG
+publicHH
+IEnumerableHH
+<HH
+stringHH !
+>HH! "
+KeyDerivationsHH# 1
+=>HH2 4
+KdfPoolHH5 <
+.HH< =
+EnginesHH= D
+.HHD E
+SelectHHE K
+(HHK L
+eHHL M
+=>HHN P
+eHHQ R
+.HHR S
+NameHHS W
+)HHW X
+;HHX Y
+publicJJ
+stringJJ
+KeyDerivationNameJJ '
+{KK
+getLL
+{LL
+returnLL
+KdfPoolLL
+.LL !
+GetLL! $
+(LL$ %
+ _databaseLL% .
+.LL. /
+
KeyDerivationLL/ <
+.LL< =
+KdfUuidLL= D
+)LLD E
+.LLE F
+NameLLF J
+;LLJ K
+}LLL M
+setMM
+{MM
+ _databaseMM
+.MM
+
KeyDerivationMM )
+=MM* +
+KdfPoolMM, 3
+.MM3 4
+EnginesMM4 ;
+.MM; <
+FirstOrDefaultMM< J
+(MMJ K
+eMMK L
+=>MMM O
+eMMP Q
+.MMQ R
+NameMMR V
+==MMW Y
+valueMMZ _
+)MM_ `
+?MM` a
+.MMa b
+GetDefaultParametersMMb v
+(MMv w
+)MMw x
+;MMx y
+}MMz {
+}NN
+publicPP
+ISelectableModelPP
+SelectedItemPP ,
+{QQ
+getRR
+{RR
+returnRR
+GroupsRR
+.RR
+FirstOrDefaultRR .
+(RR. /
+gRR/ 0
+=>RR1 3
+gRR4 5
+.RR5 6
+
+IsSelectedRR6 @
+)RR@ A
+;RRA B
+}RRC D
+setSS
+{TT
+ifUU
+(UU
+
_selectedItemUU !
+==UU" $
+valueUU% *
+||UU+ -
+IsNewRecycleBinUU. =
+)UU= >
+returnUU? E
+;UUE F
+ifVV
+(VV
+
_selectedItemVV !
+!=VV" $
+nullVV% )
+)VV) *
+{WW
+
_selectedItemXX !
+.XX! "
+
+IsSelectedXX" ,
+=XX- .
+falseXX/ 4
+;XX4 5
+}YY
+SetProperty[[
+([[
+ref[[
+
_selectedItem[[ -
+,[[- .
+([[/ 0
+GroupVm[[0 7
+)[[7 8
+value[[8 =
+)[[= >
+;[[> ?
+if]]
+(]]
+
_selectedItem]] !
+!=]]" $
+null]]% )
+)]]) *
+{^^
+
_selectedItem__ !
+.__! "
+
+IsSelected__" ,
+=__- .
+true__/ 3
+;__3 4
+}``
+}aa
+}bb
+publicdd
+SettingsDatabaseVmdd !
+(dd! "
+)dd" #
+:dd$ %
+thisdd& *
+(dd* +
+DatabaseServicedd+ :
+.dd: ;
+Instancedd; C
+)ddC D
+{ddE F
+}ddG H
+publicff
+SettingsDatabaseVmff !
+(ff! "
+IDatabaseServiceff" 2
+databaseff3 ;
+)ff; <
+{gg
+ _databasehh
+=hh
+databasehh
+;hh !
+Groupsii
+=ii
+ _databaseii
+?ii
+.ii
+ RootGroupii )
+.ii) *
+Groupsii* 0
+;ii0 1
+}jj
+}kk
+}ll ôT
+`C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\HamburgerMenuUserControl.xaml.cs
+ namespace
+
ModernKeePass
+
+.
+Views
+.
+UserControls *
+{
+public
+
+
+
+sealed
+
+
+partial
+
+
+class
+
+ $
+HamburgerMenuUserControl
+
+ 8
+{
+public $
+HamburgerMenuUserControl '
+(' (
+)( )
+{
+InitializeComponent
+(
+) !
+;! "
+}
+public
+string
+HeaderLabel !
+{
+get
+{
+return
+(
+string
+) !
+GetValue! )
+() *
+HeaderLabelProperty* =
+)= >
+;> ?
+}@ A
+set
+{
+SetValue
+(
+HeaderLabelProperty .
+,. /
+value0 5
+)5 6
+;6 7
+}8 9
+}
+public
+static
+readonly
+DependencyProperty 1
+HeaderLabelProperty2 E
+=F G
+DependencyProperty
+.
+Register '
+(' (
+$str
+,
+typeof
+(
+string
+)
+,
+typeof
+( $
+HamburgerMenuUserControl /
+)/ 0
+,0 1
+new
+PropertyMetadata $
+($ %
+$str% -
+,- .
+(/ 0
+o0 1
+,1 2
+args3 7
+)7 8
+=>9 ;
+{< =
+}> ?
+)? @
+)@ A
+;A B
+public
+string
+ButtonLabel !
+{
+get
+{
+return
+(
+string
+) !
+GetValue! )
+() *
+ButtonLabelProperty* =
+)= >
+;> ?
+}@ A
+set
+{
+SetValue
+(
+ButtonLabelProperty .
+, . /
+value 0 5
+) 5 6
+; 6 7
+} 8 9
+}!!
+public""
+static""
+readonly""
+DependencyProperty"" 1
+ButtonLabelProperty""2 E
+=""F G
+DependencyProperty##
+.##
+Register## '
+(##' (
+$str$$
+,$$
+typeof%%
+(%%
+string%%
+)%%
+,%%
+typeof&&
+(&& $
+HamburgerMenuUserControl&& /
+)&&/ 0
+,&&0 1
+new''
+PropertyMetadata'' $
+(''$ %
+$str''% -
+,''- .
+(''/ 0
+o''0 1
+,''1 2
+args''3 7
+)''7 8
+=>''9 ;
+{''< =
+}''> ?
+)''? @
+)''@ A
+;''A B
+public))
+string))
+DisplayMemberPath)) '
+{**
+get++
+{++
+return++
+(++
+string++
+)++ !
+GetValue++! )
+(++) *%
+DisplayMemberPathProperty++* C
+)++C D
+;++D E
+}++F G
+set,,
+{,,
+SetValue,,
+(,, %
+DisplayMemberPathProperty,, 4
+,,,4 5
+value,,6 ;
+),,; <
+;,,< =
+},,> ?
+}--
+public..
+static..
+readonly..
+DependencyProperty.. 1%
+DisplayMemberPathProperty..2 K
+=..L M
+DependencyProperty//
+.//
+Register// '
+(//' (
+$str00 #
+,00# $
+typeof11
+(11
+string11
+)11
+,11
+typeof22
+(22 $
+HamburgerMenuUserControl22 /
+)22/ 0
+,220 1
+new33
+PropertyMetadata33 $
+(33$ %
+$str33% ,
+,33, -
+(33. /
+o33/ 0
+,330 1
+args332 6
+)336 7
+=>338 :
+{33; <
+}33= >
+)33> ?
+)33? @
+;33@ A
+public55
+object55
+ResizeTarget55 "
+{66
+get77
+{77
+return77
+GetValue77 !
+(77! "
+ResizeTargetProperty77" 6
+)776 7
+;777 8
+}779 :
+set88
+{88
+SetValue88
+(88
+ResizeTargetProperty88 /
+,88/ 0
+value881 6
+)886 7
+;887 8
+}889 :
+}99
+public::
+static::
+readonly::
+DependencyProperty:: 1
+ResizeTargetProperty::2 F
+=::G H
+DependencyProperty;;
+.;;
+Register;; '
+(;;' (
+$str<<
+,<<
+typeof==
+(==
+object==
+)==
+,==
+typeof>>
+(>> $
+HamburgerMenuUserControl>> /
+)>>/ 0
+,>>0 1
+new??
+PropertyMetadata?? $
+(??$ %
+null??% )
+,??) *
+(??+ ,
+o??, -
+,??- .
+args??/ 3
+)??3 4
+=>??5 7
+{??8 9
+}??: ;
+)??; <
+)??< =
+;??= >
+publicAA
+
+VisibilityAA
+IsButtonVisibleAA )
+{BB
+getCC
+{CC
+returnCC
+(CC
+
+VisibilityCC $
+)CC$ %
+GetValueCC% -
+(CC- .#
+IsButtonVisiblePropertyCC. E
+)CCE F
+;CCF G
+}CCH I
+setDD
+{DD
+SetValueDD
+(DD #
+IsButtonVisiblePropertyDD 2
+,DD2 3
+valueDD4 9
+)DD9 :
+;DD: ;
+}DD< =
+}EE
+publicFF
+staticFF
+readonlyFF
+DependencyPropertyFF 1#
+IsButtonVisiblePropertyFF2 I
+=FFJ K
+DependencyPropertyGG
+.GG
+RegisterGG '
+(GG' (
+$strHH !
+,HH! "
+typeofII
+(II
+
+VisibilityII !
+)II! "
+,II" #
+typeofJJ
+(JJ $
+HamburgerMenuUserControlJJ /
+)JJ/ 0
+,JJ0 1
+newKK
+PropertyMetadataKK $
+(KK$ %
+
+VisibilityKK% /
+.KK/ 0
+ CollapsedKK0 9
+,KK9 :
+(KK; <
+oKK< =
+,KK= >
+argsKK? C
+)KKC D
+=>KKE G
+{KKH I
+}KKJ K
+)KKK L
+)KKL M
+;KKM N
+publicMM
+IEnumerableMM
+<MM
+ IPwEntityMM $
+>MM$ %
+ItemsSourceMM& 1
+{NN
+getOO
+{OO
+returnOO
+(OO
+IEnumerableOO %
+<OO% &
+ IPwEntityOO& /
+>OO/ 0
+)OO0 1
+GetValueOO1 9
+(OO9 :
+ItemsSourcePropertyOO: M
+)OOM N
+;OON O
+}OOP Q
+setPP
+{PP
+SetValuePP
+(PP
+ItemsSourcePropertyPP .
+,PP. /
+valuePP0 5
+)PP5 6
+;PP6 7
+}PP8 9
+}QQ
+publicSS
+staticSS
+readonlySS
+DependencyPropertySS 1
+ItemsSourcePropertySS2 E
+=SSF G
+DependencyPropertyTT
+.TT
+RegisterTT '
+(TT' (
+$strUU
+,UU
+typeofVV
+(VV
+IEnumerableVV "
+<VV" #
+ IPwEntityVV# ,
+>VV, -
+)VV- .
+,VV. /
+typeofWW
+(WW $
+HamburgerMenuUserControlWW /
+)WW/ 0
+,WW0 1
+newXX
+PropertyMetadataXX $
+(XX$ %
+newXX% (
+ListXX) -
+<XX- .
+ IPwEntityXX. 7
+>XX7 8
+(XX8 9
+)XX9 :
+,XX: ;
+(XX< =
+oXX= >
+,XX> ?
+argsXX@ D
+)XXD E
+=>XXF H
+{XXI J
+}XXK L
+)XXL M
+)XXM N
+;XXN O
+publicZZ
+objectZZ
+SelectedItemZZ "
+{[[
+get\\
+{\\
+return\\
+GetValue\\ !
+(\\! "
+SelectedItemProperty\\" 6
+)\\6 7
+;\\7 8
+}\\9 :
+set]]
+{]]
+SetValue]]
+(]]
+SelectedItemProperty]] /
+,]]/ 0
+value]]1 6
+)]]6 7
+;]]7 8
+}]]9 :
+}^^
+public__
+static__
+readonly__
+DependencyProperty__ 1
+SelectedItemProperty__2 F
+=__G H
+DependencyProperty``
+.``
+Register`` '
+(``' (
+$straa
+,aa
+typeofbb
+(bb
+objectbb
+)bb
+,bb
+typeofcc
+(cc $
+HamburgerMenuUserControlcc /
+)cc/ 0
+,cc0 1
+newdd
+PropertyMetadatadd $
+(dd$ %
+nulldd% )
+,dd) *
+(dd+ ,
+odd, -
+,dd- .
+argsdd/ 3
+)dd3 4
+=>dd5 7
+{dd8 9
+}dd: ;
+)dd; <
+)dd< =
+;dd= >
+publicff
+eventff (
+SelectionChangedEventHandlerff 1
+SelectionChangedff2 B
+;ffB C
+publicgg
+delegategg
+voidgg (
+SelectionChangedEventHandlergg 9
+(gg9 :
+objectgg: @
+senderggA G
+,ggG H%
+SelectionChangedEventArgsggI b
+eggc d
+)ggd e
+;gge f
+privatehh
+voidhh '
+Selector_OnSelectionChangedhh 0
+(hh0 1
+objecthh1 7
+senderhh8 >
+,hh> ?%
+SelectionChangedEventArgshh@ Y
+ehhZ [
+)hh[ \
+{ii
+SelectionChangedjj
+?jj
+.jj
+Invokejj $
+(jj$ %
+senderjj% +
+,jj+ ,
+ejj- .
+)jj. /
+;jj/ 0
+}kk
+publicmm
+eventmm %
+ButtonClickedEventHandlermm .
+
ButtonClickedmm/ <
+;mm< =
+publicnn
+delegatenn
+voidnn %
+ButtonClickedEventHandlernn 6
+(nn6 7
+objectnn7 =
+sendernn> D
+,nnD E
+RoutedEventArgsnnF U
+ennV W
+)nnW X
+;nnX Y
+privateoo
+voidoo
+ButtonBase_OnClickoo '
+(oo' (
+objectoo( .
+senderoo/ 5
+,oo5 6
+RoutedEventArgsoo7 F
+eooG H
+)ooH I
+{pp
+
ButtonClickedqq
+?qq
+.qq
+Invokeqq !
+(qq! "
+senderqq" (
+,qq( )
+eqq* +
+)qq+ ,
+;qq, -
+}rr
+}ss
+}tt
\ No newline at end of file
diff --git a/ModernKeePass/.sonarqube/out/0/output-cs/token-type.pb b/ModernKeePass/.sonarqube/out/0/output-cs/token-type.pb
new file mode 100644
index 0000000..e22ce1d
--- /dev/null
+++ b/ModernKeePass/.sonarqube/out/0/output-cs/token-type.pb
@@ -0,0 +1,2160 @@
+ņ
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\ClipboardAction.cs
+
+
+
+
+ # 35 < ) . 1 ( .0 67 =@ FG VY \] mn t $- 3 !" -E Y š
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\NavigateToUrlAction.cs
+
+
+
+
+
+ $' 79 @
+
+
+
+
( - 1 ( -/ 56 <? EF Y\ _` pq w $- 3 ! & . # ā
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\SetupFocusAction.cs
+
+
+
+
+
+
+ ! $ 4 6 =
! 1 6 1 ( 68 >? FI OP `c fg wx | $- 3 * @. 8
+8C:\Sources\Other\ModernKeePass\ModernKeePass\App.xaml.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `
+ [
+ b S + M(( (( ((* 0((9 T** O++ ,, -- -- 6.., 022 22 22! .446 :55 #55B D55E R55T c77 77 77# %77& =996 ::: #::F H::I `::b q>> ?? b@@ ZAA BB QCC CC CC CC! %CC1 IFF FF FF8 UII II II II, ?NN NN NN) <RR RR# +TT >XX XX "XX3 5XX6 ;ZZ T[[ 4\\ \\ !^^ a__ __ %__H \__g h`` +dd dd0 Iff Mhh 'hh? OhhQ }ll 8mm pp pp pp -rr rr/ Gss ss) -uu [vv _ww xx' -xx. 6z~
+ 6
+
+ 2
+
+
+
+
+& ,
+5 ;
+
+ %
+6 8
+9 >
+
+ *
+
+) -
+ '
+9 H
+J v
+
+
+
+- 1
+3 8
+
+
+' -
+. 6
+ #
+ĄĄ '
+ĄĄ9 H
+ĄĄJ t
+ĨĨ
+ĻĻ ;
+§§
+¨¨ J
+ŠŠ H
+ĒĒ
+ĒĒ &
+ĒĒ/ H
+ŦŦ
+ŦŦ
+ŦŦ
+ŦŦ 6
+¯¯
+°° ^
+ąą c
+˛˛ #
+ŗŗ
+´´ K
+ĩĩ F
+ļļ
+ļļ
+ļļ
+ļļ( .
+ļļ7 J
+¸¸
+šš
+šš *
+ēē
+ŧŧ
+ŧŧ #
+ŧŧ8 E
+ŧŧG K
+ŊŊ
+ŊŊ% *
+ŋŋ
+ŋŋ
+ÂÂ '
+ČČ
+ÉÉ Y
+ĘĘ
+ËË J
+ĖĖ
+ĖĖ
+ĖĖ
+ĖĖ0 F
+ÎÎ
+ĪĪ
+ĪĪ
+ĪĪ %
+ĐĐ
+ĐĐ? @
+ĐĐB D
+ĐĐE P
+ŅŅ %
+ŅŅ& .
+ŌŌ
+ĶĶ Ü
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\IntToSymbolConverter.cs
+
+
+
+
+
+ %( 7
+
+
+
+
+
+ $
+
+, 0
+
+= C
+
+O U
! '( . # )* 0 % +, 2 + 12 8 - 34 : / 56 < # )* 0 % +, 2 & ,- 3 ( ./ 5 % +, 2 - 34 : $ *+ 1 % + , 2!! !! !!# )!!* 0"" "" ""% +"", 2## ## $$ $$ $$# )$$* 0%% %% %%+ 1%%2 8&& && &&, 2&&3 9'' '' ''& ,''- 3(( (( (($ *((+ 1)) )) ))+ 1))2 8** ** **" (**) /++ 5,, @-- -- --% +--, 2.. .. ..% +.., 2// // //* 0//1 700 211 11 22 22 22" (22) /33 33 33% +33, 244 44 44# )44* 055 55 55# )55* 066 66 66) /660 677 77 77' -77. 488 599 99 99& ,99- 3:: :: ::% +::, 2;; ;; ;;" (;;) /<< 6== == >> >> ?? ?? ??+ 1??2 8@@ 7AA AA AA) /AA0 6BB BB BB% +BB, 2CC CC CC! 'CC( .DD DD DD' -DD. 4EE EE EE" (EE) /FF FF FF" (FF) /GG GG GG% +GG, 2HH HH HH" (HH) /II II II" (II) /JJ 2KK 6LL 4MM 3NN NN NN# )NN* 0OO OO OO) /OO0 6PP PP PP( .PP/ 5QQ QQ QQ &UU UU UU" (UU0 4UUA GUUS YWW WW XX Zg hh hh ii ii !
jÛ
+ÜÜ
+ŨŨ
+ŨŨ !¤
+RC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\DatabaseOpenedException.cs
+
+
+ (* 3
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ILicenseService.cs
+
+
+
+
+ $ " $ 2 ? B
+
+
+
+
+
+ !Î
+RC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IProxyInvocationHandler.cs
+
+
+ , $ .7 =Û
+IC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentService.cs
+
+
+
+
+ #
+
+
+
+
+
+( . (6 :Q U $ *
Ū
+FC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentItem.cs
+
+
+ # &
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IResourceService.cs
+
+ % &˙
+MC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SingletonServiceBase.cs
+
+
+ ./ 02 78 9< ? $% & !
+
+
+
+
+
+ Æ
+`C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\SelectableDataTemplateSelector.cs
+
+
+
+
+ /1 E ' * , /
+
+
+
+
+
+( +
+
+- 0 '; AH X ( *+ ; ' +Š
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsSaveVm.cs
+
+
+
+ )
+
+
+
+
+
+" &
+
+' 6
. . ;= A ' 46 ;ú
+TC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\DonatePage.xaml.cs
+ ^
+ Q
+ *
+
+
+
+ ā$
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\DatabaseService.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ " 67 FI Y #2 56 @ ) # &( + "" #'' '' )) )) ++ ++ ,, ,,2 7// // 11 11 22 44 66 66 66 588 %<< << >> >> ?? ??" 'BB BB DD DD EE EE/ 4HH HH %JJ JJ KK KK, 1NN NN PP PP QQ QQ. 3TT TT UU UU UUJ NVV VV VV1 5WW WW WW! $WW& )YY YY YY# 'YY( 7]] ]] ]] /cc dd #ee ff @gg [hh 7ii ii ii ii +ii1 5iiB Gkk >ll nn nn pp pp pp 3tt tt# 3uu yy 1zz zz- 1zz3 ;{{ {{: @{{B U|| ~~ ~~ , 38 @
+ !
+
+9 <
+= M
+
2
+ S
+
+) -
+/ ?
+
+
+ -
+ 3
+
+ '
+? C
+v z
+
+ /
+
+
+
+ +
+
+
+
+
+
+ G
+ĄĄ
+ĸĸ
+ĸĸ
+¤¤
+¤¤
+ĨĨ
+§§! $
+§§% 5
+ŠŠ 0
+ĒĒ
+ĒĒ) -
+ĒĒ/ ?
+ŦŦZ ]
+ŦŦ^ n
+¯¯
+¯¯
+ąą
+ąą
+ąą '
+ĩĩ
+ļļ A
+ˇˇ
+¸¸ <
+šš
+šš
+šš $
+ģģ
+ŊŊ
+ŋŋ# 3
+ŋŋL P
+ŋŋR U
+ŋŋV f
+ÁÁ
+ÄÄ
+ČČ
+ÉÉ /
+ĘĘ
+ËË
+ËË
+ËË
+ËË $
+ËË3 7
+ĪĪ 8
+ĐĐ
+ĐĐ% )
+ĐĐ+ ;
+ŌŌ
+ŌŌ# '
+ÔÔ
+ÖÖ
+ÖÖ, 0
+ŲŲ
+ŲŲ
+ŲŲ# )
+ÛÛ+ .
+ÛÛ/ >
+ÛÛC K
+ŪŪ
+ŪŪ
+ŪŪ% +
+áá$ (
+ââ! $
+ââ% +
+åå
+åå
+įį+ .
+įį/ 6
+įį7 ;
+įį= A
+įįC L
+įįN T
+įį] a
+čč+ .
+čč/ 6
+čč7 ;
+čč= A
+ččC J
+ččL R
+čč[ _
+éé+ .
+éé/ 6
+éé7 ;
+éé= A
+ééC M
+ééO U
+éé^ b
+ëë
+ëë
+ëë
+ëë! %
+ëë' +
+ėė !
+ėė. 1
+ėė2 A
+íí
+îî !
+îî1 4
+îî5 D
+īī
+đđ !
+đđ, /
+đđ0 ?
+ņņ
+ōō !
+ōō1 4
+ōō5 D
+ķķ
+ôô !
+ôô. 1
+ôô2 A
+õõ 3
+öö/ 3
+øø
+øø
+øø !
+øø# '
+ųų !
+ųų. 1
+ųų2 A
+úú !
+ûû !
+ûû1 4
+ûû5 D
+üü
+ũũ !
+ũũ, /
+ũũ0 ?
+ūū
+ūū! 3
+˙˙ !
+˙˙1 4
+˙˙5 D
+
+
+ 3
+4 K
+M S
+/ 3
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISettingsService.cs
+
+ % ) *: AB C !, -Í
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Common\MessageDialogHelper.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + "
2 8
@ F
T Z
m s
+
+
Ä <
' *+ 4 & + 8D T )M VX ac h ! $% 3- = ( * M T T U""/ E""G J""K O""P V""Z a$$ $$ %% %% && )) )) )) ))/ F))R b++ .++0 2++2 ;++J w++w x
++z
+++ 66 66 66 66 661 :88 88 !88# )99 <:: ::[ _<< &== @@ @@ @@ @@ @@8 >@@F LBB BB; ?DD &EE HH HH HH $HH7 =HHE KHHU [
HHo
+HH JJ <KK KK #KK$ 1MM 5NN' *NN+ 4PP >QQ0 1SS CTT/ 0VV Ũ7
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NavigationHelper.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Y W X ] F B T O S
+!! B"" N## N$$
%% && ^'' (( ^)) ** ++ ,, ^-- f.. S// 00 H11
22 233
44 55 J66
77 488
99 :: ;;! .<<
+<< << !<<$ 4>> >> >> >>! $?? ?? ?? !??$ *??+ /AA BB SCC DD UEE UFF `GG GG GG $II KK JLL IMM 5NN SS \TT TT TT. 4UU UU- 3WW LXX ZZ [[ `` Gaa ff hh ii pp qq ss tt Yuu Yvv /ww xx cyy Mzz {{ {{ }} & *
+% (
+) 5
+ "
+ "
+
+
+! &
+
+ V
+ Z
+
+ f
+ P
+
+
+
+
+
+) -
+( +
+, 8
+ "
+ "
+
+ĄĄ
+ĸĸ K
+ŖŖ @
+¤¤
+ĨĨ
+ĻĻ C
+§§ +
+¨¨
+ŠŠ
+ŠŠ
+ŠŠ
+ĢĢ
+ĢĢ
+ĢĢ! %
+ĢĢ) -
+
+ŽŽ N
+¯¯ C
+°°
+ąą
+˛˛ C
+ŗŗ .
+´´
+ĩĩ
+ĩĩ
+ĩĩ
+ˇˇ
+ˇˇ
+ˇˇ! %
+ˇˇ) -
+ēē
+ģģ K
+ŧŧ U
+ŊŊ
+žž
+žž
+žž
+ĀĀ
+ĀĀ
+ĀĀ "
+ĀĀ& *
+ĀĀ< @
+ÂÂ
+ÃÃ N
+ÄÄ X
+ÅÅ
+ÆÆ
+ÆÆ
+ÆÆ
+ČČ
+ČČ
+ČČ "
+ČČ& *
+ČČ? C
+ÚÚ
+ÛÛ `
+ÜÜ c
+ŨŨ G
+ŪŪ
+ßß K
+āā _
+áá
+áá
+áá< J
+ââ #
+ää
+ææ `
+įį
+čč
+čč ;
+éé :
+ęę )
+ęę@ J
+ëë
+ëë# &
+ëë+ .
+ëë= @
+íí
+íí! '
+îî
+îî 4
+īī
+īī7 A
+đđ
+đđ: D
+ņņ
+ņņ8 B
+ōō
+ķķ
+õõ
+õõ
+õõ( +
+öö# -
+øø R
+ųų $
+úú
+úú/ 3
+üü
+üü
+üü
+üü- 0
+ũũ# -
+˙˙ R
+ $
+
+2 6
+
+ _
+ a
+ C
+
+ K
+ _
+
+
+/ 9
+
+
+ L
+
+2 8
+ R
+
+
+
+
+
+! %
+< @
+
+$ (
+B F
+ĻĻ
+ĻĻ
+¨¨
+ŠŠ H
+ĒĒ F
+ĢĢ G
+ŦŦ
+
+
+ *
+ŽŽ
+¯¯ ?
+°° >
+ąą B
+˛˛ "
+ŗŗ
+´´
+´´
+´´ *
+ļļ
+ˇˇ I
+¸¸ N
+šš N
+ēē
+ģģ _
+ŧŧ @
+ŊŊ
+ŊŊ
+ŊŊ" 5
+ŋŋ
+ŋŋ .
+ŋŋD H
+ĀĀ
+ĀĀ #
+ĀĀ& *
+ÂÂ
+ÂÂ$ 2
+ÄÄ \
+ÅÅ #
+ÆÆ
+ÆÆ" &
+ĮĮ
+ĮĮ$ (
+ČČ
+ËË" )
+ÎÎ @
+ĪĪ
+ĪĪ
+ĪĪ& *
+ŅŅ
+ŅŅ# '
+ŅŅ) ,
+ŅŅ- ?
+ŅŅM Q
+ÔÔ
+ÖÖ \
+×× _
+ØØ
+ŲŲ
+ŲŲ
+ŲŲ& *
+ÛÛ
+ÛÛ# '
+ÛÛ) ,
+ÛÛ- ?
+ÛÛN X
+ÛÛY _
+ÛÛa g
+ÛÛt x
+āā
+áá J
+ââ N
+ãã N
+ää
+åå _
+ææ @
+įį
+įį
+įį$ 7
+éé
+éé .
+ééD H
+ęę
+ęę
+ęę *
+ęę+ 1
+ęę3 9
+ëë
+ëë
+ëë" &
+íí
+íí #
+íí% (
+íí) ;
+õõ
+öö `
+÷÷
+øø
+
+øø
+øø
+øø .
+øø/ 5
+øø> P
+ųų
+úú `
+ûû
+üü
+
+üü
+üü
+üü .
+üü/ 5
+üü> P
+ūū
+˙˙ V
+
+
+
+
+ #
+& /
+
+ U
+
3
+
+
+
+, /
+1 8
+9 <
+
+ J
+ I
+
+
+
+
+" (
+6 9
+; B
+C F
+
+ U
+
+ .
+ U
+ 3
+
+ $
+ J
+ I
+
+
+ !
+" (
+> H
+I O
+Q W
+
+
+
+
+ĄĄ V
+ĸĸ
+ŖŖ
+
+ŖŖ
+ŖŖ #
+ŖŖ& /
+ĨĨ
+ĻĻ H
+§§
+¨¨
+¨¨
+¨¨
+¨¨" (
+¨¨6 9
+¨¨; B
+¨¨C F
+ĒĒ
+ĢĢ U
+ŦŦ
+ h
+ŽŽ
+ŽŽ !
+ŽŽ" ,
+ŽŽ- 3
+ŽŽ5 ;
+¯¯
+ąą Ļ
+PC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NotifyPropertyChangedBase.cs
+
+
+
+
+ *- C 0 ) /? A
$ (
* -
. F # $& )* +6 7@ PR Xh j ! " É
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ObservableDictionary.cs
+
+
+
+
+ [
+
+
+ %( 67 =? E := QR X 78 HQ W #7 :< CD G #% ,- 0 !# )9 <= GH NP V +, 24 : & 6? E $"" !""# &""' K&& && && &&$ *(( )) ))" 2,, ,, ,, $,,% +,,- 3.. 11 11 11 (11) 5116 <11> D33 33 33 !99 99 99 !;; ;; == ==& 6>> >> @@ @@ CC CC CC 'CC( .CC0 6EE FF FF FF7 :GG GG; ?II II& 6JJ JJ LL LL OO OO OO OO !QQ SS SS UU WW WW( -XX XX& 6\\ \\ ^^ ^^ __ `` `` `` bb bb& 6ff ff ff !hh hh hh kk kk kk &mm mm pp pp pp &pp, /pp0 6rr rr rr5 8uu uu uu !ww ww ww zz zz zz )zz* 0zz2 8|| ||
+
+
+
+
+
+
+
+
+
+
+ '
+( .
+0 6
+
+
+ &
+: E
+
+
+
+
+ '
+( .
+0 6
+A D
+
+
+
+
+! %
+
+- 2Ŗ
+
+CC:\Sources\Other\ModernKeePass\ModernKeePass\Common\RelayCommand.cs
+
+
+
+
+
+
+
+
+ C 0
E H I
+ ( " 9 ! : > " $$ %% "&& '' >(( H)) )) )) ")), 0))1 5++ ++ ,, ,, ,, /,,0 911 22 `33 44 $55 x66 77 V88 88 88 %:: ::" &::) -== >> R?? @@ $AA xBB CC CC CC "HH II JJJ MKK LL MM MM OO PP PP RR RR '(
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Common\SuspensionManager.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _ b ^ ]
+ !" (* 0B EF PQ WY _ 0 34 89 = 4 G [ A I!! _"" I## $$ $$ $$ $$! '$$) /&& && )) ** Z++ X,, 9-- .. .. .. .. 00 00 33 44 [55 X66 `77 88 99 d:: :: :: :: << >> F?? ?? ??0 2AA BB BB8 ;HH cII JJ JJ+ .JJ/ ;KK &KK4 7KK8 NKKO UKKV `KKa gKKi oNN dOO OO# (OO) 8
OOs PP PP PP+ 0RR% &RR( 2SS VV VV XX XX XX 4\\ ]] d^^ `__ a`` aa bb ]cc bdd ^ee [ff gg gg gg gg gg. 4ggF Jii ii *ii+ 1ii3 9kk mm Ann nn# (nn) 8oo oo #oo/ 4qq 4rr *rr8 ;rr< RrrS YrrZ drre krrm sss% /ss0 6ss8 >vv Eww ww ww0 2yy zz zz8 ;zzG M
+
+
+
+
+ 4
+
+
+ )
+
+0 G
+I O
+P V
+Y _
+` q
+t x
+
+
+ )
+
+0 L
+N T
+U [
+^ d
+e v
+y }
+
+
+ )
+
+0 D
+F L
+M W
+X ^
+` f
+j pq
+
+
+
+ )
+* /
+F I
+J N
+O \
+] b
+
+ c
+ [
+ b
+ Q
+ [
+ L
+
+ Y
+ 3
+ ^
+ 9
+ ]
+ b
+
+
+
+) .
+6 <
+N T
+f j
+
+@ D
+ĄĄ
+ĄĄ
+ĄĄ 3
+ĄĄ4 l
+¤¤
+¤¤= A
+ĻĻ
+ĻĻ
+ĻĻ 3ĻĻ4
+ŠŠ
+ŠŠ
+ŦŦ3 6
+¯¯ s
+°° 1
+˛˛" %
+˛˛& 3
+˛˛4 9
+´´ ?
+¸¸
+šš d
+ēē ^
+ģģ
+ŧŧ
+ŊŊ X
+žž
+ŋŋ
+ŋŋ
+ŋŋ
+ŋŋ+ 0
+ÁÁ a
+ÂÂ `
+ÃÃ! '
+ÆÆ
+ĮĮ
+ĮĮ8 ;
+ËË
+ĖĖ a
+ÍÍ ]
+ÎÎ X
+ĪĪ \
+ĐĐ [
+ŅŅ
+ŌŌ
+ĶĶ X
+ÔÔ _
+ÕÕ X
+ÖÖ Y
+×× 1
+ØØ
+ØØ
+ØØ
+ØØ! '
+ØØ) /
+ØØF K
+ÚÚ
+ÚÚ (
+ÚÚ) /
+ÚÚ1 7
+ÜÜ
+ÜÜ "
+ŪŪ
+ŪŪ' -
+ßß
+ßß' +
+áá P
+ââ
+ää9 <
+ää= G
+ääH N
+ääP V
+ææ" ,
+ææ- 3
+ææ5 ;
+čč
+ęę I
+ëë! $
+ëë% /
+ëë0 6
+ëë8 >
+īī
+ōō
+ōō
+ōō
+ōō8 =
+ôô
+õõ
+õõ' 3
+÷÷* 0
+÷÷< H
+ûû
+ûû
+ûû
+ûû5 :
+ũũ
+ūū #
+
+
+
+ +
+. 7
+
+ )
+
+ )
+* 3
+
+ -ņ
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Services\LicenseService.cs
+
+
+
+
+
+
+ " 6 7 E H W " "# )+ 9F I 9 ! %A DE LM Q $!! !! !! !! !!( .## ##" '##( 2$$ && && *(( (( ((! &)) )) *** k++ &,, 00 00 00! &11 11 *22 22 22! /33 33 *44 44 44! /55 66 66 66 9:: :: :: :: )::B F::V \<< << << )== == "@@ @@ @@) -EE EE EE( ,GG Ŧ
+FC:\Sources\Other\ModernKeePass\ModernKeePass\Services\RecentService.cs
+
+
+
+
+
+
+
+
+ ! 56 CF T
8
@ ] #$ /= AX \ 12 = ! > P "# / ## ## ## $##+ 1(( (( -- -- -- -- &--5 ;// //
+IC:\Sources\Other\ModernKeePass\ModernKeePass\Services\ResourcesService.cs
+
+
+
+ !# 3 0 < ' : H ' -
5 7
7 8
J K
P Q Ô
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SettingsService.cs
+
+
+
+
+
+ # 78 GJ Z
+
+
+
+
+
+ %
+
+0 ? %0 1A HI J !@ FG H ' " (3 4
+NC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ToastNotificationHelper.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ / * 3< BK Q $ &' .1 8; B " :N _ E K H Jm n = E ' ( & 2 : -! )9 : $## ## ## ##, 2##: @%% %%" :%%N _&& &&E K'' (( ** ** ** -,,! ),,9 :.. $11 11 11 11* 3
+`C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DiscreteIntToSolidColorBrushConverter.cs
+
+
+
+
+
+ 69 H
+
+
+
+
+
+ $
+
+, 0
+
+= C
+
+O U '
"# 23 9 "# 23 9 "# 23 9 #$ 34 : " (0 4A GS Y -ų
+[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\EmptyStringToVisibilityConverter.cs
+
+
+
+
+ *, ; $ , 0 = C O U &< B 0 :G Q " (0 4A GS Y -
+QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\NullToBooleanConverter.cs
+
+
+
+ '* 9 $, 0= CO U
+
+
+
+
" (
0 4
A G
S Y -ü
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\SaveException.cs
+
+
+ ! * . 1 &û
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Extensions\DispatcherTaskExtensions.cs
+
+
+
+
+ 0 ! " 1 2 4 8 9 G
+
+
+
+
+
+
+
+ 6
+
+B X ' *+ ?@ A
0 5 3 8 V . 23 A 3? U + 09 >G MN S
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IDatabaseService.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %
! $
& ) " ! $ " % # &( + $ ') , ! $ 6 9; > & )+ . " $ (5 : $ "!! !! !!& *ą
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IHasSelectableObject.cs
+
+ ) ( +- 0
+KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISelectableModel.cs
+
+ % "ß
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\BasePages\LayoutAwarePageBase.cs
+
+
+
+
+
+
+
+
+ $& *
K ' 3 6 + .0 3 += @B E +4 79 < " * "# 34 8 F 8 - 0 1 ="" 7## H$$ (( (( ((1 7((@ Y** _++ _,, `-- b.. // /// 544 55 ^66 A77 88 !99 T:: ;; \<< a== J>> V?? ?? ??2 8??A SAA LBB ZDD DD #FF cGG \HH MM OO OPP PP, :RRC QWW XX aYY bZZ P[[ \\ q]] ]^^ '__ __ __2 8__A Saa aa' +cc *ii \jj Qkk
+ll ]mm Ynn pp pp pp pp@ Crr ss Xtt uu Rvv ww ww yy yy || }} 0~~ ;
+ X
+
+
+* 0
+I c
+
+
+
+I M
+
+
+
+
+
+
+I M
+ ]
+ a
+ [
+
+( ,
+
+
+
+
+ĄĄ
+ĄĄ) -
+ĄĄ< A
+ĨĨ
+ĻĻ `
+§§
+¨¨
+ŠŠ _
+ĒĒ _
+ĢĢ `
+ŦŦ
+ŦŦ
+ŽŽ
+¯¯
+¯¯ $
+ąą Q
+˛˛
+˛˛\ `
+´´
+´´% 8
+´´; G
+ģģ I
+ŧŧ I
+ŊŊ
+žž L
+ŋŋ ;
+ĀĀ @
+ÁÁ J
+ÂÂ J
+ÄÄ
+ÄÄ
+ÄÄ
+ÄÄ. A
+ÉÉ
+ÉÉ
+ÉÉ
+ÉÉ0 C
+bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsDatabasePage.xaml.cs
+ ^
+ Q
+ 4
+
+
+
+ #
+eC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsNewDatabasePage.xaml.cs
+ {
+ h
+ 7
+
+
+
+ &
+^C:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSavePage.xaml.cs
+ ^
+ Q
+ 0
+
+
+
+
+bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSecurityPage.xaml.cs
+ ^
+
+
+ Q
+
+
+ 4
# A GP a #5 DF f
+aC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsWelcomePage.xaml.cs
+ ^
+ Q
+ 3
+
+
+
+ "š
+_C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\FirstItemDataTemplateSelector.cs
+
+
+
+ .0 D ( +- 0 ( + - 0 '; AH X
+ P Q
+LC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\ListViewWithDisable.cs
+
+
+
+
+ $& . @ P Z `
$ &
' 3 " $% / !3 79 ?Û
+]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\BreadCrumbUserControl.xaml.cs
+
+
+
+ `
+
+ 5 $ $ %& / 0 5 1 "# , , $% () ./ 8Ā
+_C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\CompositeKeyUserControl.xaml.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 7 8 :; I . 3 1 . $% * "" "" "" ## ##. 3%% %% %% %% 1&& '' (( (( )) )) .** ** $**% *,, ,, .. .. .. // //0 511 11 11 11 122 33 44 44 55 55 .66 66 $66% )99 99 ;; ;; &@@ @@ @@ 1AA AA AA AA 9AA: @AAI RBB BB BB 0CC CC CC CC 8CC9 ?CCH YEE EE EE EE. 4EE= LGG' +GG- 0GG1 :II LL* .LL0 3LL4 ENN PP PP "PP# 3QQ RR8 MSS SS SS2 7SS> CUU. 2UU4 7UU8 I[[ [[ [[) /[[8 J]] ]] #`` 7aa ee ee ee ee/ 5ee> Mgg hh hh "jj -kk- =mm& ,oo Gpp pp qq qq qq $uu uu uu uu5 ;uuD Sww ww ww! /yy) 9zz$ )||+ 5||7 :||; ?||@ F||J P~~ ~~ $ä
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\TextBoxWithButton.cs
+
+
+
+
+
+ "% ,
+
+
+
+
1 6 1 ( $% / !" 1 2 7 1 (!! !! $!!% +## ## %% %% %% && &&4 9(( (( (( (( 1)) ** !++ ++ ,, ,, (-- -- $--% )// // 11 11 11 $22 221 644 44 44 44 155 66 77 77 !88 88 (99 99 $99% );; ;; ;; == >> >>0 >>>@ B>>C I?? ?? $ã
+WC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\BooleanToVisibilityConverter.cs
+
+
+
+
+ -0 ? $ , 0 = C O U "# '+ /9 > '2 < $ " (0 4A GS Y # %& 04 >H R ) /0 4 + 12 7 9ę
+PC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ColorToBrushConverter.cs
+
+
+
+
+
+ &) 8
+
+
+
+
+
+ $
+
+, 0
+
+= C
+
+O U ! &* /: ?
2 4
5 D
F L
N ] &2 7 " (0 4A GS Y -š
+[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DoubleToSolidColorBrushConverter.cs
+
+
+
+
+
+ 14 C
+
+
+
+
+
+ $
+
+, 0
+
+= C
+
+O U $ * %6 89 ? # *L P " & *+ 0: =K L $ *+ 0: =? @B FQ R " (0 4A GS Y -ę
+^C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\InverseBooleanToVisibilityConverter.cs
+
+
+
+
+ 47 F $ , 0 = C O U "# '+ /8 = '4 > $ " (0 4A GS Y # %& 04 >G Q ) /0 5 + 12 6 9ß
+QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\PluralizationConverter.cs
+
+
+
+ '* 9 $, 0= CO U
+
+
+
+6 8
+
+9 ? H KP SW i ( ,O PR XY _
! $
( +
5 6 !9 :S T # $ $ " (0 4A GS Y -
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ProgressBarLegalValuesConverter.cs
+
+
+
+ 03 B $, 0= CO U
+
+
+
+4 6
+
+7 = D GL OS e & *K LN TU V !; < !; < ! '+ 1: ; " ( " ( " (0 4A GS Y -ũ
+OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\TextToWidthConverter.cs
+
+
+
+ %( 7 $, 0= CO U
+
+
+
+ !
+
+2 4
+
+5 ; & . / " (0 4A GS Y -
+HC:\Sources\Other\ModernKeePass\ModernKeePass\Events\PasswordEventArgs.cs
+
+
+
+ "$ - # &( +
+
+
+
+
+
+! (
+EC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IIsEnabled.cs
+
+ Ō
+DC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IPwEntity.cs
+
+
+
+ ! #
+
+
+
+
, / ! $ 2 S ! !! "" ## !$$ %% %% !ë
+CC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPage.xaml.cs
+
+
+
+ ^
+
+
+ Q
+ ( $ * 3 9B [ 2 45 C $9 ?@ K . A!! "" "" $ų
+SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\AboutPage.xaml.cs
+ ^
+ Q
+ )
+
+
+
+ ũ
+YC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\NewDatabasePage.xaml.cs
+
+
+
+
+
+ ^
+ Q
+ / $ . 4= L ! /) 9$ 2+ AC FG KL RV ] !! !! !! $ķ
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPage.xaml.cs
+
+
+ ^
+ ]
+
+ $
+ , ( 2 3 9B [ 2 45 C0 47 => Qû
+UC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\WelcomePage.xaml.cs
+ ^
+ Q
+ +
+
+
+
+
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\AboutVm.cs
+
+
+
( )8 9 ' ë
+IC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\CompositeKeyVm.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ! : + .0 3 . 3 " +$$ $$ && && '' )) ))- 2**" +.. .. 00 00 11 33 331 644" +88 88 88W [:: :: << << == == !==+ 0@@ @@ BB BB BB CC CC !CC0 ;CC< AFF FF HH HH II KK !LL" ?MM !MM" -NN RR RR TT TT UU WW XX #YY" +]] ]] __ __ `` `` !``0 5cc cc cc# &cc( +ee ee ee5 Fgg gg hh hh ii ii jj jj kk kk kk# )ll ll mm mm nn nn oo oo pp pp pp )rr rr rr" &rr' 6rrA DrrE Utt tt tt .tt9 Iww6 R{{ {{ {{ {{ {{- 1}} !
+
+
+
+
+
+
+ $
+
+# &
+' 4
+5 7
+S j
+l n
+n o
+
+T s
+
+S q
+
+W u
+6 A
+
+
+
+
+: Q
+^ _
+$ /
+
+ "
+
+
+
+
+4 I
+L W
+
+
+" -
+ 0
+ĄĄ
+ĄĄ$ (
+ĨĨ
+ĨĨ
+ĨĨ" (
+ĨĨ/ :
+¨¨
+ĢĢ
+ĢĢ
+
+ "
+# /
+ŽŽ
+ŽŽ5 8
+ŽŽ9 D
+¯¯
+¯¯) -
+¯¯G J
+¯¯K U
+¯¯V f
+°°
+°°8 ;
+°°< J
+ąą Ë
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\ListMenuItemVm.cs
+
+
+
+
+
+ " ;= GI Y
+
+
+
+ !# & !# &, / "$ ' # &( + #% (. 2 !/ 4
+OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\MainMenuItemVm.cs
+
+
+ ! / " %' * # &( +š
+MC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\RecentItemVm.cs
+
+
+
+
+
+ 8: JL W
+
+
+
+ * -
! !/ 4 "* 0; G "# . !! ,$$ $$ $$% 5)) )) ++ *.. .. .. ..+ 900 ž
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\EntryDetailPage.xaml.cs
+
+
+
+
+
+
+
+
^ G
+ / ! ( Y 4 3 6 "# 34 8"" ## o$$ Q%% && !'' T(( )) e** c++ M,, h-- -- --0 6--? Q11 ]22 Q33 44 g55 ;66 ?77 P88 M:: :: :: ::. A== == ==! (==+ 1>> "AA AA AA AA0 CHH HH HH( .HH7 FJJ JJ JJ /KK LL, HMM, GNN NNK Z
NNx OO OOK ^PP* DQQ* DSS 'SSX hTT> OUU VV YY YY YY) /YY8 G[[ [[ [[ /\\ #\\T i
+\\ ]] `` `` ``3 9``B Vbb bb) -bbA DbbG NbbQ XbbZ ^ee ee eeA GeeP igg gg" $gg% -hh ii kk kk ll mm nn3 5nn6 =oo Æ
+JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\GroupDetailPage.xaml.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
e
+ \
+ / K ' 3 6 ! ( !! "!!# 3!!4 8%% && ^'' A(( )) !** T++ ,, \-- a.. J// V00 00 000 600? Q44 I55 I66 77 L88 ;99 @:: J;; J<< == == == ==. AAA AA AA 0BB 1CC CC CC! #CC$ +DD &GG GG GG GG0 CPP PP PP- 3PP< URR RR" $RR% -SS TT VV VV WW XX YY3 5YY6 =ZZ \\ !\\" 1__ __ __. 4__= Vaa bb dd dd ee ff gg2 4gg5 <hh jj !jj" 1mm mm mm( .mm7 Foo oo oo /pp qq, Hrr, Gss ssK Z
ssx tt ttK ^uu* Dvv* Dxx +xx\ lyyB Szz {{ ~~ ~~ ~~) /~~8 G
+
+
+ /
+ #
+T i
+* 9
+
+
+
+4 :
+C c
+ n
+
+* /
+
+
+- 3
+< K
+ !
+" 1
+
+
+- 3
+< K
+ !
+" 1
+
+
+0 6
+? Y
+( <
+
+
+6 ?
+H n
+
+ 6
+E H
+I LM
+
+ U e
+ | }
+ĄĄ
+ĄĄ
+ĄĄ "ŖŖ
+§§
+§§
+§§8 A
+§§J r
+ŠŠ
+ĒĒ !
+ĒĒ" 1
+
+
+3 9
+B V
+¯¯
+¯¯) -
+¯¯A D
+¯¯G N
+¯¯Q X
+¯¯Z ^Ū
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\OpenDatabasePage.xaml.cs
+
+
+
+
+
+
+ ^
+
+
+
Q
+ 0 & . A % '( - . 4 = L"" ## ## "%% -&&- =((& -** G++ ++ ,, ,, ,, $
+]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\RecentDatabasesPage.xaml.cs
+ {
+ h
+ 3
+
+
+
+ "
+ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\SaveDatabasePage.xaml.cs
+
+
+
+
+
+
+
+ ^
+
Q
+ 0 & . A % '( - . 4= L!! "" &""' /%% %% %% %%0 6%%? N'' '' ''! /))) 9**$ 2,,+ A,,C F,,G K,,L R,,V ].. .. // // // $22 &22' /Ë
+GC:\Sources\Other\ModernKeePass\ModernKeePass\Properties\AssemblyInfo.cs
+
+
+ M
+ M
+ ( b ! #
+
+
+
+
+
+ # * /
+ M
+
+
+
+
+
+
+ T
+ #
+ ' % ) Ö'
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\EntryVm.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 13 <> N % (* 12 5 ' *, 34 7 # # 0 6 M U 5 F / 24 7= A / 24 7= A , /1 4: > + .0 3 0 35 8 + .0 3 - 02 5 . 13 6 $ ') ,2 8 !! !! "" "" ## ## ## $##4 7##8 <##= F$$ %% >&& '' '' ''! $''& )''/ 3)) )) ++ ++ ,, .." '//& 633 33 55 55 55' -66 66 &663 8:: :: << << <<' -== == &==6 ;@@ @@ BB BB BB' -CC EE $EE4 9FF& 0GG& CKK KK MM MM MM' -NN NN &NN1 6QQ QQ SS SS SS' -TT TT &TT3 8WW WW YY [[ [[( ,[[. 4[[6 9\\ \\ `` `` bb bb bb bb +cc cc cc? Dff ff hh hh ii ii ii\ all ll nn nn oo qq #rr& 2vv vv xx xx yy {{ "||& 1
+
+
+
+
+
+
$ )
+& 8
+
+
+
+
+
+# (
+& 9
+
+
+ $
+
+
+ !
+" &
+' .
+1 5
+
+
+* ,
+ #
+$ +
+U Z
+
+ĄĄ
+ĄĄ
+ĄĄ 0
+ŖŖ
+ŖŖ
+ŖŖ
+¤¤
+¤¤
+¤¤ )
+ĨĨ
+ĨĨ
+ĨĨ )
+ĻĻ
+ĻĻ
+§§
+§§
+¨¨
+¨¨
+¨¨) +
+ŠŠ
+ŠŠ
+ŠŠ" &
+ĢĢ
+ĢĢ
+ĢĢ+ 1
+$ (
+* -
+. F
+°°
+°°
+˛˛
+˛˛
+˛˛
+˛˛( /
+˛˛: >
+˛˛N ]
+˛˛h k
+˛˛l |
+´´
+´´
+´´
+´´& -
+´´6 F
+´´Q a
+ŧŧ
+ŧŧ
+žž
+žž
+žž )
+ĀĀ 5
+ÁÁ
+ÂÂ
+ÂÂ '
+ÅÅ
+ÅÅ@ I
+ÆÆ
+ÆÆ@ I
+ĮĮ
+ĮĮ= F
+ČČ
+ČČ> G
+ÉÉ
+ÉÉ< ?
+ĘĘ
+ĘĘA D
+ËË
+ËË< ?
+ĖĖ
+ĖĖ? H
+ĐĐ
+ŅŅ
+ŅŅ! $
+ŅŅ: >
+ŅŅ@ C
+ŅŅD Y
+ĶĶ" (
+ÔÔ" ,
+ÕÕ" ;
+ÖÖ" ?
+ŲŲ
+ŲŲ
+ŲŲ% +
+ÛÛ
+ŪŪ
+ŪŪ
+ŪŪ# )
+ŪŪ/ 5
+āā' *
+āā+ :
+āā; ?
+ãã
+ãã
+ãã" (
+åå
+ååO S
+įįa e
+ęę
+ęę
+īī
+īī
+īī
+ōō) -
+ķķ
+ķķ #
+öö
+ųų$ (
+üü
+üü
+˙˙
+
+
+
+
+
+
+
+
+
+; I
+t w´"
+BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\GroupVm.cs
+
+
+
+
+
+
+
+
+
+
+
4
6 ?
A Q % (* 12 5 ' *, 34 7 #$ + & )4 9 " ! $% )* 1 # %## '' '' #''$ +''6 9''; >''D G''H \''] d)) )) ** ** ++ ++ ++0 4-- -- // // 11 22 233 44 44 66 66 66& *77 99 99 99) -99F J== == !==" +==, 0==2 9==P T==W Y>> >> >>9 =?? @@ BB BB DD DD DD% )DD, 2EE EE" 'HH HH JJ LL LL( ,LL. 4LL6 9MM MM OO OO% +OO, 1RR RR TT TT UU UU !UU/ 4XX XX ZZ ZZ [[ [[ ![[1 6^^ ^^ ^^ $`` bb bb bb! &bb' .cc cc dd dd, 0jj nn nn nn oo oo oo )pp pp qq qq rr rr $rr% ,rr9 <rr= QrrR Yss ss ss% )uu uu ww ww ww ww* 1ww: @wwP TwwX \xx {{ {{ {{ {{( /{{8 H{{S Y{{i m
+
+ $
+c g
+
+ .
+/ 6
+T W
+X _
+c g
+
+ -
+. 5
+R U
+V ]
+a e
+
+
+/ 5
+> ^
+
+
+ 2
+
+$ (
+
+
+ 2
+
++ /
+E L
+Y Z
+k o
+
+2 6
+
+
+
+# )
+1 3
+
+
+ %
+& *
+, 0
+8 >
+' +
+
+
+ &
+0 4
+Q W
+
+
+
+ĸĸ
+ĸĸ
+ĸĸ %
+ĸĸ& *
+ĸĸ, 0
+ŖŖ
+ŖŖ
+ŖŖ &
+ŖŖ0 4
+ŖŖD H
+ĻĻ
+ŠŠ
+ŠŠ
+ŠŠ" (
+ĢĢ
+ĢĢO S
+U Y
+°°
+°°
+ĩĩ
+ĩĩ
+ĩĩ
+¸¸( ,
+ēē
+ēē #
+ŊŊ
+ĀĀ# '
+ÁÁ4 8
+ÄÄ
+ÄÄ
+ĮĮ
+ĮĮ{
+ČČ
+ËË
+ËË
+ĐĐ
+ĐĐ
+ŌŌ
+ŌŌ
+ŌŌ .
+ŌŌ/ 5
+ŌŌB F
+ŌŌH M
+ĶĶ
+ÖÖ
+ÖÖ 2
+ÖÖ3 :
+ØØ
+ØØ
+ÚÚ #
+ŪŪ
+ŪŪ
+āā
+ââ' ,
+ãã
+ãã 1
+ãã2 9
+ããq u
+ää" *
+ææ
+ææ
+čč #
+ėė
+ėė
+ėė
+îî
+NC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsNewVm.cs
+
+
+
+
+ ) ! %& 5 - . 24 < ' /1 6 !2 59 <> A . 46 I ' :< A
+EC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SettingsVm.cs
+
+
+
+
+
+
+
+
+ 79 M
"# ,- 35 C !" +, 24 B !. 3 % *, 2 % )/ 4"" ""0 >""? D$$ $$% )&&/ 3++ ++ ++ "++# 2++= @++A Q-- -- -- *--5 E// // // 4//5 C11 11 "336 K446 T55! '66 %66& =77! %99 99 ";;6 L<<6 T==! '>> %>>& 6@@ @@ "BB6 OCC6 QDD! 'EE %EE& :HH HH "JJ6 PKK6 QLL! 'MM %MM& :SS SS" $SS/ 4SS: <SSH LSSQ XSSa gŪ
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\MainVm.cs
+
+
+
+
+
+
+
+
+
+
+
+ 35 I "# ,- 35 C & - !" +, 24 B !2 7 % *, 2 % )!!/ 4$$ $$0 >$$? D&& &&% )((/ 3-- -- // // // //. 3//H L00 00& )00* :00> K33 33 33 33, 133D T33_ o
33z 55 55- 177 77 #77$ 8779 G99 99 ";;6 H<< %<<& 6??! '@@- 1BB BB "DD6 GEE %EE& 5HH! 'JJ JJ "LL6 HMM %MM& 6PP! 'TT TT "VV6 JWW %WW& 9ZZ! '\\% )]], -^^4 5`` `` "bb6 Lcc %cc& 2ee! 'gg gg "ii6 Ijj %jj& /ll! 'nn nn "pp6 Jqq %qq& 0ss! 'vv Oyy 8zz zz {{" %{{& 4~~ %~~& 5
+ '
+! '
+
+
& (
+
7 <
+
B D
+
P T
+
Y `
+
i ož
+@C:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\NewVm.cs
+
+ ! $& )é
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\OpenVm.cs
+
+
+
+
+
+ 2
+
+
+
+ ) . & : @ ( ( (/ =!! $"" /&& && &&% 0&&7 E
+CC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\RecentVm.cs
+
+
+
+
+
+ 57 K
+
+
+
+
+
+ ' $% 0A DE YZ e #$ / !0 5 % *, 2 % )/ 4 / 4!! !!% )!!+ 1""+ /&& && && &&" /)) )) )) &-- --$ %..+ ,... 0..1 =11 11 Á
+AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SaveVm.cs
+
+
+
+
+
+
+
+
+
+
+
+ ) .
& #, 0 $¤
+SC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsDatabaseVm.cs
+
+
+
+
+
+
+
+
+
+
+
+
+ #
+ #% >@ T ) . 3" 1 1 5!! ## ## ##2 6'' '' #''$ +''6 9''; >)) )) )) !++ -- -- -- --( 2// // //! +44 44 66 88 88 88 88( 2:: :: "::\ b<< << >> >>) 3>>? DAA AA AA !AA3 7AAA GAAH ^AAg j
AAk CC CC EE EE EE EE& ,EE- CFF FF4 JFFK OFFV \FF] sFFv {HH HH HH !HH5 <JJ JJ LL LL LL MM MM, 3MMZ _PP PP RR RR SS UU UU% *UU? EVV VV% )XX/ 4[[ [[0 7[[8 =]] ]]% )__/ 3dd dd !dd& *dd+ :ff ff !ff" 2Ę
+`C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\HamburgerMenuUserControl.xaml.cs
+
+
+
+
+ `
+
+
+
+
+
+
+
+
+
+
+
+ 8 ' 0 5 1 / $% - 0 5"" "" "" "" 1## $$ %% %% && && /'' '' $''% -)) )) ++ ++ ++ ,, ,,6 ;.. .. .. .. 1// 00 #11 11 22 22 /33 33 $33% ,55 55 77 77 88 881 6:: :: :: :: 1;; << == == >> >> /?? ?? $??% )AA AA CC CC CC $DD DD4 9FF FF FF FF 1GG HH !II II !JJ JJ /KK KK $KK% /MM MM MM $OO OO OO %OO& /PP PP0 5SS SS SS SS 1TT UU VV VV "VV# ,WW WW /XX XX $XX% (XX) -XX. 7ZZ ZZ \\ \\ ]] ]]1 6__ __ __ __ 1`` aa bb bb cc cc /dd dd $dd% )ff ff ff 1gg gg gg gg 9gg: @ggI bhh hh hh1 7hh@ Ymm mm mm .nn nn nn nn 6nn7 =nnF Uoo oo oo( .oo7 F
\ No newline at end of file
diff --git a/ModernKeePass/.sonarqube/out/sonar-project.properties b/ModernKeePass/.sonarqube/out/sonar-project.properties
new file mode 100644
index 0000000..39199fb
--- /dev/null
+++ b/ModernKeePass/.sonarqube/out/sonar-project.properties
@@ -0,0 +1,210 @@
+sonar.projectKey=ModernKeePass
+sonar.working.directory=C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\.sonarqube\\out\\.sonar
+sonar.projectBaseDir=C:\\Sources\\Other\\ModernKeePass\\ModernKeePass
+
+A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.projectKey=ModernKeePass:A0CFC681-769B-405A-8482-0CDEE595A91F
+A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.projectName=ModernKeePass.App
+A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.projectBaseDir=C:\\Sources\\Other\\ModernKeePass\\ModernKeePass
+A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.sourceEncoding=utf-8
+A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.sources=\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Actions\\ClipboardAction.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Actions\\NavigateToUrlAction.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Actions\\SetupFocusAction.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\App.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\IntToSymbolConverter.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Exceptions\\DatabaseOpenedException.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\ILicenseService.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IProxyInvocationHandler.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IRecentService.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IRecentItem.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IResourceService.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Services\\SingletonServiceBase.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\TemplateSelectors\\SelectableDataTemplateSelector.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\Items\\SettingsSaveVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\DonatePage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Services\\DatabaseService.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\ISettingsService.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\MessageDialogHelper.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\NavigationHelper.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\NotifyPropertyChangedBase.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\ObservableDictionary.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\RelayCommand.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\SuspensionManager.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Services\\LicenseService.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Services\\RecentService.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Services\\ResourcesService.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Services\\SettingsService.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\ToastNotificationHelper.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\DiscreteIntToSolidColorBrushConverter.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\EmptyStringToVisibilityConverter.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\NullToBooleanConverter.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Exceptions\\SaveException.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Extensions\\DispatcherTaskExtensions.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IDatabaseService.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IHasSelectableObject.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\ISelectableModel.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\BasePages\\LayoutAwarePageBase.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsDatabasePage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsNewDatabasePage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsSavePage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsSecurityPage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsWelcomePage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\TemplateSelectors\\FirstItemDataTemplateSelector.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Controls\\ListViewWithDisable.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\UserControls\\BreadCrumbUserControl.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\UserControls\\CompositeKeyUserControl.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Controls\\TextBoxWithButton.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\BooleanToVisibilityConverter.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\ColorToBrushConverter.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\DoubleToSolidColorBrushConverter.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\InverseBooleanToVisibilityConverter.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\PluralizationConverter.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\ProgressBarLegalValuesConverter.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\TextToWidthConverter.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Events\\PasswordEventArgs.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IIsEnabled.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IPwEntity.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\AboutPage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\NewDatabasePage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\WelcomePage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\AboutVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\CompositeKeyVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\Items\\ListMenuItemVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\Items\\MainMenuItemVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\Items\\RecentItemVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\EntryDetailPage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\GroupDetailPage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\OpenDatabasePage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\RecentDatabasesPage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\SaveDatabasePage.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Properties\\AssemblyInfo.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\EntryVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\GroupVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\Items\\SettingsNewVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\SettingsVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\MainVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\NewVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\OpenVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\RecentVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\SaveVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\Items\\SettingsDatabaseVm.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\UserControls\\HamburgerMenuUserControl.xaml.cs",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\description.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Entry.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Filter.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Group.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.New.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Open.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Recent.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Semantic.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Settings.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Entry.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Filter.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Group.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\New.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Open.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Recent.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Semantic.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Settings.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\keywords.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\privacyPolicy.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\releaseNotes.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\websiteUrl.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\description.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Entry.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Filter.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Group.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.New.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Open.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Recent.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Semantic.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Settings.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Entry.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Filter.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Group.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\New.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Open.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Recent.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Semantic.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Settings.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\keywords.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\privacyPolicy.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\releaseNotes.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\websiteUrl.txt",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Logo.scale-100.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Logo.scale-140.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Logo.scale-180.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Logo.scale-80.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.scale-100.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.scale-140.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.scale-180.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.scale-80.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.targetsize-16.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.targetsize-256.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.targetsize-32.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.targetsize-48.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SplashScreen.scale-100.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SplashScreen.scale-140.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SplashScreen.scale-180.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square310x310Logo.scale-100.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square310x310Logo.scale-140.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square310x310Logo.scale-180.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square310x310Logo.scale-80.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square70x70Logo.scale-100.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square70x70Logo.scale-140.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square70x70Logo.scale-180.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square70x70Logo.scale-80.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\StoreLogo.scale-100.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\StoreLogo.scale-140.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\StoreLogo.scale-180.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Wide310x150Logo.scale-100.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Wide310x150Logo.scale-140.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Wide310x150Logo.scale-180.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Wide310x150Logo.scale-80.png",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\packages.config",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Strings\\fr-FR\\Resources.resw",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Strings\\fr-FR\\CodeBehind.resw",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Strings\\en-US\\CodeBehind.resw",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Strings\\en-US\\Resources.resw",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Styles\\Colors.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsSavePage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\UserControls\\BreadCrumbUserControl.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\UserControls\\CompositeKeyUserControl.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\AboutPage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\EntryDetailPage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\GroupDetailPage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\DonatePage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\NewDatabasePage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\OpenDatabasePage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\RecentDatabasesPage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\SaveDatabasePage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\WelcomePage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsDatabasePage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsNewDatabasePage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsSecurityPage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsWelcomePage.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Styles\\HamburgerButtonStyle.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Styles\\ListViewLeftIndicatorStyle.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Styles\\NoBorderButtonStyle.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Styles\\Styles.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Styles\\TextBoxWithButtonStyle.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\UserControls\\HamburgerMenuUserControl.xaml",\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\App.xaml"
+
+A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.cs.roslyn.reportFilePath=C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\bin\\Debug\\ModernKeePass.exe.RoslynCA.json
+A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.cs.analyzer.projectOutPath=C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\.sonarqube\\out\\0
+A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.cs.analyzer.projectOutPaths=\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\.sonarqube\\out\\0"
+A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.cs.roslyn.reportFilePaths=\
+"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\bin\\Debug\\ModernKeePass.exe.RoslynCA.json"
+
+sonar.organization=geogeob
+sonar.host.url=https://sonarcloud.io
+sonar.visualstudio.enable=false
+
+sonar.modules=A0CFC681-769B-405A-8482-0CDEE595A91F
+
diff --git a/ModernKeePass/.sonarqube/out/summary.md b/ModernKeePass/.sonarqube/out/summary.md
new file mode 100644
index 0000000..e604fd9
--- /dev/null
+++ b/ModernKeePass/.sonarqube/out/summary.md
@@ -0,0 +1,3 @@
+Analysis succeeded for SonarQube project "", version [Analysis results](https://sonarcloud.io/dashboard/index/ModernKeePass)
+- Product projects: 1, test projects: 0
+- Invalid projects: 0, skipped projects: 0, excluded projects: 0
diff --git a/ModernKeePass/App.xaml.cs b/ModernKeePass/App.xaml.cs
index 2edccc4..7485dc3 100644
--- a/ModernKeePass/App.xaml.cs
+++ b/ModernKeePass/App.xaml.cs
@@ -190,9 +190,7 @@ namespace ModernKeePass
}
catch (Exception exception)
{
-#if DEBUG
ToastNotificationHelper.ShowErrorToast(exception);
-#endif
}
deferral.Complete();
}