From 1b030b6cc054e42b739eb2410a5a588ca6d9c99e Mon Sep 17 00:00:00 2001 From: Roman Koldaev Date: Fri, 2 Apr 2021 11:39:30 +0400 Subject: [PATCH] add readme + some betters --- pkg_user_export_18.09.18.html | 31 ------- pkg_user_export_18.09.18.xml | 9 -- readme.md | 13 +++ readme.txt | 13 +++ src/main/java/PKG/PKGgui.form | 60 ++++++++++++- src/main/java/PKG/PKGgui.java | 81 ++++++++++++++++-- .../PKG/img/16x16/Button-Forward-16.png | Bin 0 -> 800 bytes .../resources/PKG/img/16x16/Play-Green-16.png | Bin 0 -> 724 bytes .../PKG/img/16x16/go-green-krug-16.png | Bin 0 -> 800 bytes .../PKG/img/24x24/Button-Forward-24.png | Bin 0 -> 1371 bytes .../resources/PKG/img/24x24/Play-Green-24.png | Bin 0 -> 1335 bytes .../PKG/img/24x24/clipboard-note-add-24.png | Bin 0 -> 1310 bytes .../PKG/img/24x24/clipboard-plus-24.png | Bin 0 -> 1681 bytes users/user/user.xml | 2 +- 14 files changed, 160 insertions(+), 49 deletions(-) delete mode 100644 pkg_user_export_18.09.18.html delete mode 100644 pkg_user_export_18.09.18.xml create mode 100644 readme.md create mode 100644 readme.txt create mode 100644 src/main/resources/PKG/img/16x16/Button-Forward-16.png create mode 100644 src/main/resources/PKG/img/16x16/Play-Green-16.png create mode 100644 src/main/resources/PKG/img/16x16/go-green-krug-16.png create mode 100644 src/main/resources/PKG/img/24x24/Button-Forward-24.png create mode 100644 src/main/resources/PKG/img/24x24/Play-Green-24.png create mode 100644 src/main/resources/PKG/img/24x24/clipboard-note-add-24.png create mode 100644 src/main/resources/PKG/img/24x24/clipboard-plus-24.png diff --git a/pkg_user_export_18.09.18.html b/pkg_user_export_18.09.18.html deleted file mode 100644 index b20cf7e..0000000 --- a/pkg_user_export_18.09.18.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - PKG export for user user, DB last change = 18.09.18 08:02 - - - -

-PKG html export for user user, DB last change = 18.09.18 08:02 -

- - - - - - - - - - - - - - - - - -
NTitleLoginPasswordDescriptionURL
1qqqqqqqqq
- - diff --git a/pkg_user_export_18.09.18.xml b/pkg_user_export_18.09.18.xml deleted file mode 100644 index acd885a..0000000 --- a/pkg_user_export_18.09.18.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - qq - qqq - qqqq - - - - diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..0bf0ac6 --- /dev/null +++ b/readme.md @@ -0,0 +1,13 @@ +Password Keeper + Generator. +Free portable cross-platform multi-user password manager, 100%-pure Java. +DB for each pkg-user is encrypted and protected by pkg-user hash. +In addition - all passwords in DB are stored in encrypted form. +In result - stored passwords are double encrypted ! +Passwords of pkg-users are not stored in program - stored and compared only hashes. +Support md2, md5, sha1, sha256, sha384 and sha512 hash. +Support export DB to CSV, HTML, XLS, XML and import from CSV, XLS, XML. +Simple and intuitive GUI - Graphical User Interface. +PKG use crypto security random number generator. +Tested in Windows/Linux. +Need Jre-1.8: +https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..0bf0ac6 --- /dev/null +++ b/readme.txt @@ -0,0 +1,13 @@ +Password Keeper + Generator. +Free portable cross-platform multi-user password manager, 100%-pure Java. +DB for each pkg-user is encrypted and protected by pkg-user hash. +In addition - all passwords in DB are stored in encrypted form. +In result - stored passwords are double encrypted ! +Passwords of pkg-users are not stored in program - stored and compared only hashes. +Support md2, md5, sha1, sha256, sha384 and sha512 hash. +Support export DB to CSV, HTML, XLS, XML and import from CSV, XLS, XML. +Simple and intuitive GUI - Graphical User Interface. +PKG use crypto security random number generator. +Tested in Windows/Linux. +Need Jre-1.8: +https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html diff --git a/src/main/java/PKG/PKGgui.form b/src/main/java/PKG/PKGgui.form index 619e210..8235012 100644 --- a/src/main/java/PKG/PKGgui.form +++ b/src/main/java/PKG/PKGgui.form @@ -580,7 +580,7 @@ - + @@ -612,7 +612,7 @@ - + @@ -623,7 +623,7 @@ - + @@ -647,6 +647,8 @@ + + @@ -807,6 +809,8 @@ + + @@ -936,6 +940,20 @@ + + + + + + + + + + + + + + @@ -950,6 +968,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/PKG/PKGgui.java b/src/main/java/PKG/PKGgui.java index cf4f473..1bfd5b3 100644 --- a/src/main/java/PKG/PKGgui.java +++ b/src/main/java/PKG/PKGgui.java @@ -69,14 +69,22 @@ public class PKGgui extends javax.swing.JFrame { "chars=13", "chars=14", "chars=15", - "chars=16" + "chars=16", + "chars=17", + "chars=18", + "chars=19", + "chars=20", + "chars=21", + "chars=22", + "chars=23", + "chars=24" }; public static String [] typeAlphabetArray= {"aA-zZ_0-9","A-Z_0-9","a-z_0-9"}; public static String [] arrayExport = { "HTML","XML","CSV","XLS" }; public static String [] arrayImport = { "XML","CSV","XLS" }; public static String [] searchArray= {"title","login","description","url"}; - public static String Zagolovok="Password Keeper+Generator, v1.0.6, build 19-01-21."; - private static Dimension frameDimension = new Dimension(702, 480); + public static String Zagolovok="Password Keeper+Generator, v1.0.7, build 02-04-21."; + private static Dimension frameDimension = new Dimension(800, 480); public PKGgui() { initComponents(); @@ -189,6 +197,7 @@ private void initComponents() { bRunGenerate = new javax.swing.JButton(); bCopyGenerated = new javax.swing.JButton(); btnClearGenerate = new javax.swing.JButton(); + jSeparator18 = new javax.swing.JToolBar.Separator(); jToolBar9 = new javax.swing.JToolBar(); bExport = new javax.swing.JButton(); bExportCombo = new javax.swing.JComboBox<>(); @@ -202,6 +211,7 @@ private void initComponents() { bClearDB = new javax.swing.JButton(); bCpPasswToClip = new javax.swing.JButton(); bGoURL = new javax.swing.JButton(); + jSeparator19 = new javax.swing.JToolBar.Separator(); jToolBar12 = new javax.swing.JToolBar(); bShowClipboard = new javax.swing.JButton(); bAddUser = new javax.swing.JButton(); @@ -211,7 +221,11 @@ private void initComponents() { jSplitPane1 = new javax.swing.JSplitPane(); GeneratorToolBar = new javax.swing.JToolBar(); jToolBar4 = new javax.swing.JToolBar(); + btnGenerateSmall = new javax.swing.JButton(); TFpassw = new javax.swing.JTextField(); + btnCopyGeneratedSmall = new javax.swing.JButton(); + btnShowClipboardSmall = new javax.swing.JButton(); + jSeparator20 = new javax.swing.JToolBar.Separator(); checkSpecial = new javax.swing.JCheckBox(); jToolBar2 = new javax.swing.JToolBar(); jSeparator17 = new javax.swing.JToolBar.Separator(); @@ -463,7 +477,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jToolBar7.setBorder(javax.swing.BorderFactory.createTitledBorder("Generator")); jToolBar7.setFloatable(false); - bRunGenerate.setIcon(new javax.swing.ImageIcon(getClass().getResource("/PKG/img/24x24/play1hot.png"))); // NOI18N + bRunGenerate.setIcon(new javax.swing.ImageIcon(getClass().getResource("/PKG/img/24x24/Button-Forward-24.png"))); // NOI18N bRunGenerate.setToolTipText("Generate Password"); bRunGenerate.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -472,7 +486,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); jToolBar7.add(bRunGenerate); - bCopyGenerated.setIcon(new javax.swing.ImageIcon(getClass().getResource("/PKG/img/24x24/clipboard-blue.png"))); // NOI18N + bCopyGenerated.setIcon(new javax.swing.ImageIcon(getClass().getResource("/PKG/img/24x24/clipboard-note-add-24.png"))); // NOI18N bCopyGenerated.setToolTipText("Copy generated to ClipBoard"); bCopyGenerated.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -494,6 +508,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jToolBar7.add(btnClearGenerate); jToolBar10.add(jToolBar7); + jToolBar10.add(jSeparator18); jToolBar9.setBorder(javax.swing.BorderFactory.createTitledBorder("Keeper")); jToolBar9.setFloatable(false); @@ -599,6 +614,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jToolBar9.add(bGoURL); jToolBar10.add(jToolBar9); + jToolBar10.add(jSeparator19); jToolBar12.setBorder(javax.swing.BorderFactory.createTitledBorder("System")); jToolBar12.setFloatable(false); @@ -677,11 +693,48 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jToolBar4.setFloatable(false); jToolBar4.setRollover(true); + btnGenerateSmall.setIcon(new javax.swing.ImageIcon(getClass().getResource("/PKG/img/16x16/go-green-krug-16.png"))); // NOI18N + btnGenerateSmall.setToolTipText("Generate"); + btnGenerateSmall.setFocusable(false); + btnGenerateSmall.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnGenerateSmall.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + btnGenerateSmall.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnGenerateSmallActionPerformed(evt); + } + }); + jToolBar4.add(btnGenerateSmall); + TFpassw.setFont(new java.awt.Font("Lucida Console", 1, 14)); // NOI18N TFpassw.setHorizontalAlignment(javax.swing.JTextField.CENTER); TFpassw.setComponentPopupMenu(mPopupGenerator); jToolBar4.add(TFpassw); + btnCopyGeneratedSmall.setIcon(new javax.swing.ImageIcon(getClass().getResource("/PKG/img/16x16/clipboard_plus.png"))); // NOI18N + btnCopyGeneratedSmall.setToolTipText("Copy generated to ClipBoard"); + btnCopyGeneratedSmall.setFocusable(false); + btnCopyGeneratedSmall.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnCopyGeneratedSmall.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + btnCopyGeneratedSmall.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnCopyGeneratedSmallActionPerformed(evt); + } + }); + jToolBar4.add(btnCopyGeneratedSmall); + + btnShowClipboardSmall.setIcon(new javax.swing.ImageIcon(getClass().getResource("/PKG/img/16x16/clipboard_lupa-16.png"))); // NOI18N + btnShowClipboardSmall.setToolTipText("Show ClipBoard"); + btnShowClipboardSmall.setFocusable(false); + btnShowClipboardSmall.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnShowClipboardSmall.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + btnShowClipboardSmall.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnShowClipboardSmallActionPerformed(evt); + } + }); + jToolBar4.add(btnShowClipboardSmall); + jToolBar4.add(jSeparator20); + checkSpecial.setText("Use Special symbols"); checkSpecial.setFocusable(false); jToolBar4.add(checkSpecial); @@ -1271,6 +1324,18 @@ private void btnClearGenerateActionPerformed(java.awt.event.ActionEvent evt) {// TFpassw.setText(""); }//GEN-LAST:event_btnClearGenerateActionPerformed + private void btnCopyGeneratedSmallActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCopyGeneratedSmallActionPerformed + this.CopyCP(); + }//GEN-LAST:event_btnCopyGeneratedSmallActionPerformed + + private void btnGenerateSmallActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnGenerateSmallActionPerformed + BLogic.generate(checkSpecial.isSelected(),bcomboAlphabet.getSelectedItem().toString(),Integer.parseInt(bcomboNumSymbols.getSelectedItem().toString().split("=")[1]), TFpassw); + }//GEN-LAST:event_btnGenerateSmallActionPerformed + + private void btnShowClipboardSmallActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnShowClipboardSmallActionPerformed + actions.ShowClipboard(this); + }//GEN-LAST:event_btnShowClipboardSmallActionPerformed + public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { @@ -1326,7 +1391,10 @@ public void run() { public static javax.swing.JComboBox bcomboNumSymbols; private javax.swing.JButton btnAbout; private javax.swing.JButton btnClearGenerate; + public static javax.swing.JButton btnCopyGeneratedSmall; private javax.swing.JButton btnExit; + private javax.swing.JButton btnGenerateSmall; + public static javax.swing.JButton btnShowClipboardSmall; public static javax.swing.JCheckBox checkSpecial; private javax.swing.JMenu jMenu1; private javax.swing.JMenu jMenu2; @@ -1347,7 +1415,10 @@ public void run() { private javax.swing.JToolBar.Separator jSeparator15; private javax.swing.JToolBar.Separator jSeparator16; private javax.swing.JToolBar.Separator jSeparator17; + private javax.swing.JToolBar.Separator jSeparator18; + private javax.swing.JToolBar.Separator jSeparator19; private javax.swing.JToolBar.Separator jSeparator2; + private javax.swing.JToolBar.Separator jSeparator20; private javax.swing.JPopupMenu.Separator jSeparator3; private javax.swing.JPopupMenu.Separator jSeparator4; private javax.swing.JPopupMenu.Separator jSeparator5; diff --git a/src/main/resources/PKG/img/16x16/Button-Forward-16.png b/src/main/resources/PKG/img/16x16/Button-Forward-16.png new file mode 100644 index 0000000000000000000000000000000000000000..d4732ee3b229712f91ad52c2ffbe5c39a5f8b710 GIT binary patch literal 800 zcmV+*1K<3KP)2%b;8&`)i8+l7k>!I8lkHc6@1T+?6K8(%}`lQf&+kK#Jz3EL z?R%Kmb?6v?`E{C90XYc*)qzb^WANQb`@oe@>mNY~S2N;M!XG1xRMk6@0h|;-C) zzA!MitnVAHjh#;cJg?|yMVZQ(VgfJ|_l>0YHy(x{2vAiOp->2X-Xf}60|+xJrU>BM zD*gORtWg#K)2fpWat5&Kqi}yLm&%B`7CxF@gtHUL5u+_QNS-UkRqDPGZ$msDL`%~ zOyPC--A-iL1i(Zf=81e5%N8I)MvS~$Apw-hyc7b&pjFhfvTM9i3je7C^KH~=t>|~y z!3aE{({5MWrtvy44od(X$x~ut{Pg6F`4|6{vc3ryI2#^i*q}EUNG-5i`w5bNE@^>f zqd*QXMz4Qrnd(XV7qq1?tS_LNEvIhsWtsz~Y<;Ft!^0>GYq5#MSm4c%dt6rX?b?_e zO$%Vlz$$aFC_&gaV@q)qNi1kJu9CzdsIzP4c$a=PI1)Y`WpgVk)6#>2$mI+z4LN#}aDgcORCE$) zL6p@nH2K1zX4vdgDX+%@0FMVV;zSv}O^H3g3DV-0;nFA!My3Xx2;_{jX>TU{0F7Ny zT_^Sx=ZVtNhV0u?0E9%L&^g@JeKCI~e-m))WxOd`7dsXg!GSD`fCvU|)Yzb)m;=+E zAg_jh=S+|=G3Ny5;)hx5|iWBEgtQfh2nr z&E?@?*fx5hD%aAY02({YHR*}T*9c-gBZk@z)umRy&~r}f;ZTmKL?g>G^nV$xtuC-! zS8iN=Vm_Z5pU}e4NO4v%5ztWSP;7%q3rF%oAY8u!Sac~GFGw&nW-Y5Nvffbums-uc z3|zP^CQ_%+gBcFm@4De&mKJpS@4(}wKWae0^y~smIp>WHC06@p7fPFVJT1;lFA%UB z5MqHLw}D%j4{RkB1dn?AJMLA^75cTYt~JddAlJL}WFzMh*0!7jmR7<0Pc|nlsSnqc z3{3g~Za&N+KY!$tLQLN}kENL-DM|!h6xNGM(tt4ueFNij%l7a>L!5f}O8Il_2e{mn zOWOxDJ7tPb;6ok9qfC6JPN$0Yoh>Z5zs`))uh<_kJs{Aw2%~$tx&GN&z+b4ko=xFZ z73G~kB+C+wNaUSbuMa^;A{GULKvIxaz^n%2`ifrJcjp(4&-xMIprP3S0000SWNi< literal 0 HcmV?d00001 diff --git a/src/main/resources/PKG/img/16x16/go-green-krug-16.png b/src/main/resources/PKG/img/16x16/go-green-krug-16.png new file mode 100644 index 0000000000000000000000000000000000000000..d4732ee3b229712f91ad52c2ffbe5c39a5f8b710 GIT binary patch literal 800 zcmV+*1K<3KP)2%b;8&`)i8+l7k>!I8lkHc6@1T+?6K8(%}`lQf&+kK#Jz3EL z?R%Kmb?6v?`E{C90XYc*)qzb^WANQb`@oe@>mNY~S2N;M!XG1xRMk6@0h|;-C) zzA!MitnVAHjh#;cJg?|yMVZQ(VgfJ|_l>0YHy(x{2vAiOp->2X-Xf}60|+xJrU>BM zD*gORtWg#K)2fpWat5&Kqi}yLm&%B`7CxF@gtHUL5u+_QNS-UkRqDPGZ$msDL`%~ zOyPC--A-iL1i(Zf=81e5%N8I)MvS~$Apw-hyc7b&pjFhfvTM9i3je7C^KH~=t>|~y z!3aE{({5MWrtvy44od(X$x~ut{Pg6F`4|6{vc3ryI2#^i*q}EUNG-5i`w5bNE@^>f zqd*QXMz4Qrnd(XV7qq1?tS_LNEvIhsWtsz~Y<;Ft!^0>GYq5#MSm4c%dt6rX?b?_e zO$%Vlz$$aFC_&gaV@q)qNi1kJu9CzdsIzP4c$a=PI1)adtfJX>nQZFE`Ii zBM&TlykY8UB+OO}r_Ugs`4cHCI4UD@0jQ2C7$ej}=Bv@t_7RSpJN#Kqd0_4ChX)h4 z1*~f>7sn1X%sCyV#K~Zl6{QnPctn3V_>@RnF%C{~R{J$U))+7*5-NE75w6(+r_! z(t%a6{yf0k9pa|iC1txrp$%i5KmjS2_^k5yH6D^|LU37m5c|u9=;Xx+K?af(vdk2m zJ=Xc!j~n&3@&NU3D<`VvVO~IrAs_*YZ9Qiv6xj1rB`m{%+QtFYEFS_dT6vH(MLb4; zpbiY`3ffO|KOcW7GCvPc_o*B&E!E^Q8SoQ8&RK8g;hn~rkYyPh$H5YYFk|HvR4tBx z@!7q$7aDmHB0#qW^juXErQ&hWZMl@DT<<(tk!G*o#E~X&7km0bbY!$51{P9R<8%! zCXAsFQJ54dTSY3pFKl=SE|&|cmtn&E4g}_RA}l5lqIm0>Y!$`r3L;Sdh=_RHvAuu2 zwkZDATK1UAeF+E`Fs|Nsw42s>7-gW5V7ms%+{!3W+4%>J{aYo zjretrB`Vw3MK9mfD&(EmC3~@HtRL_y^i9?~DMUU3rbvmVXHT%L*vctS=l+Ld4197N z;$dU=rC0i1y=5;7Y=;m^p~Y8%#a=I2PoZ)W#6h0$Tz<2&m1jtKl9b0a2Gyv5J|usi z(t94gxG|i*ZM*huggR{E8&5G7s)ghQoeR5o98^^tm+M2ea;kf(RtQER{FsDPSU3?L z?r8Y^jluA3+x7L~UJhByV5?Yz7u^A-NCe>>7P#EWbwGrh^TJCPkeu{sS5Ef57fTFo z={{(uJ%8K;P@VvbeFCx_RdJ23Y2tnAczK-5Es2Um2hMb*GeN62{M*R+{$B^0 zlfmRUlJBl~&L8f4KV;nzAU+6YbV4$^P++GeH+{Bayuz!rgBejHM&I^5JVbNAo}MZ> z?3wD;dkzKf47fgo*`UjpaaNRi9!D1%J&mx%8N(KnCyORbW>6C{M6X~-g`zR=!;M?) dt^ohl_zT7b3O98i3abDB002ovPDHLkV1kxcfO!A_ literal 0 HcmV?d00001 diff --git a/src/main/resources/PKG/img/24x24/Play-Green-24.png b/src/main/resources/PKG/img/24x24/Play-Green-24.png new file mode 100644 index 0000000000000000000000000000000000000000..013647a70696c00431ee1d257d1ff70bfa43e889 GIT binary patch literal 1335 zcmV-71<3k|P)OrJ>g>Dtoq=T=S5{yD z^dA8nYhA*0_P0MRTBLntxid!!1_T5L0h2foz{8gqK*#_LV~0qbz~%0<{=wLtH7-Zl z;hK^r{7`^nm!B|s{T(liu#ax2D3~!Kruqmbv7{fl@0q-g7-S#@R)QAq_kDc>zt@k> za(}dF($Q#IfW4<&b4>=@fvK+9c`Oq~gveyri+V>i8DexsKknzZ=CLmL_;gr z&A)LfEkMJO?1R&b=P!4NnUs=9DhACH2*JA8e>WBh;1Be}xoam5ZClz`_W;25FQpPm z%xRxiR7D6xw15dZ7{&zeZtFm^7D{A{TR`>79JXXc{1%y3DaQSh=(r31*fQPY}_xnc1YM%nT+ot%u0>Yl5ioq|@I8 zt+(1XZm;$2)&acsnRIZ@TvqS^^=UI=TO5SjRdQ)0Jg5WqH9yZ!hx&U4wE0Z zqMSmRFkC1_DW>uqYd-(=?iIepI)HTtoO^4^%h%W~0_~uCvmy#^Xjs#pI=f3VprSex z9C>lzOn(B#a%un>+HHYw1io!;*|+CK-&!5OOZ%M*it-NI;SNo3Z0Ja^RXzq*jU7RB+^9Jd=l9+ERtnHPByoAvV;*84Rx0W9~iXSH|-mz zPb_`Aq#y_4N^H1n9$3amGmcQ|(k{$|88{ zPbhX)PAMq>mc^8^I4D>d4$M(X44|qE{M_z^%bwn5#yfs(hShd0w=^`kb=7etEx^`2 z3%Jfpc6&4gPT-U=QA_uuM7%rK?Y0-@N*PwsCYUse0t1nFcW+?edPm?E1RQ5f;oKHb z*iQPcXKZD#f9Hnd>DP7rd$XBHkTZ0(nJfq=b_S2Rs3pq#OEDYI1w=$`2pM353^v~8 zBiUD2)fA>WD4bCVWsZ`=qB9oV@yZD`Er4d5_s&MKFoRfzV`)IzMRdg=!fL)l|LKV& tHaEt2Xoq9%o4^pvn^pYA%cpfa{Vy`DH8);pz;OTo002ovPDHLkV1jMwcQF6} literal 0 HcmV?d00001 diff --git a/src/main/resources/PKG/img/24x24/clipboard-note-add-24.png b/src/main/resources/PKG/img/24x24/clipboard-note-add-24.png new file mode 100644 index 0000000000000000000000000000000000000000..59d95e760b07af3993f20f34f5c507bd0baf9a59 GIT binary patch literal 1310 zcmV+(1>yRMP)28;UR$)=D(Rw5 zCJs&F_jQdedO<*c$4B33S#1%aS=1cMIg7=@UgLntf@wvel#((4!?B_$IK>sF8I>6z z_KQVPPR57ab&cDz1p!0X_Fmx~^Jd)AU|g#q!d_D<2WwAN&)B}_mfx2|5IQ_kLB7aczwq_K zfasOBZgMqGC1J9m1p?8?1mneHau_}Wk+>xj0QZ&@C-Rz3{;ZxmyJCKG@PB~F<+guy zXY)fOmfdp&IV}q@wI9Cn|Be?U-IU2|;IozD;_}DSvI1)s}?Lvi~#=Gb3JDO zgtB|mp4enZdrm>yUtfaFYy*iGhOwj*#M3g&Dyf1Ub+29OiuE?UI)CYa0l1O1H&yC_ z_wE(2!*{&z6t!PC3LcvsBo1)r{0;Q5vl`Z)*@YoBN@-082WQ2$`ZrJa%7cvKC)Hs~r5(tWTfGu<1g&NlkSa)h8s9F$)G=%*6W500k>B3p|~U9>7HU2NF$1z#$JJ=fLKg7V=oDVc)qOXod^yl;k0z zhB2i(Xl-@-FBm%CdNXc$raZ?@n%Dzof?~djUw5u20n?*NT=Uprs<6+2%|EY1yQzal z_5-53csVU{uWrF$$L_v_w4hvL9_T2-IA77*ZIZJXPTc$u28O;hTpw->0F{opu<6W8 zY*{*g#PpqDU($qJol`ih++U>klz)s&Q0$SU$4prA_%tN=t1pMhP{? z)QZ$}x9l-eX7*siuoWex6b%Dh0RdTFyX@XQoqHB-l$`PG+_`7(`Q6{={=Vn;`yIk< z#^?KXP{Xy(`H|6a8`NsGiHMlXmn5k`#4j+o z3`tT;YiH)9Ns}gMG#cWz%;|JeQPJVG;}RpizH67b6@TdWgE2oOwdR+H7jO8!2VmOx z#K}wNW*&--OVEMIAaVInL8CDsHWuw|?TQ=Wj5sDltA*>L9nrzf;9kL9L*n;O_wD_< zSrt1Ycl%!NO@P7uOw&Jl?{!-k8c-ROO2J|MnG!+W& z$X+*TYmczRl<{~wXSu!B7ilT96?NPS$l8;;%z77VKyA!pGNc zNAXS9gV5{sY-nPlkj3lsQ~BWnmYg&c>({NZ*UC|rLhCJn1P<7>@g-Xry9#Ij*+?Cp zgtj&}F1MURRZ|(#2R#BmmrWRRjd%p&l4ZY;>-0D8V?<&CHf~r~?Bsw?ZUqdEF=g#s z|Gd?NM$`|OM{fNY*40UH+vZJ`{{lJGRfrX<7T@#CMyv#6{; zfs7%K-jE30+sy>P&*v&QzS@Gp10s;0zqR<1D$H_V|BpQZ1*@O38aSXMaRGJe&N7~* zxX@5W*%LOf-yJ2;>9y3WS1(pmT}@iOj_)r+OiT=dH6e83&=xi*#)PfgKeSf`8!Xnn z_MU+J74ximw7@fb5sgnxWrt7g#?)c+$SZg8Z}lpgkRrU2w*i6pk3)R2pGpsHX7PP= z*s-(Feo-4@u@#o|1Z;k7wpC9qct6VvVy5C#0FC!ixhi_RIK(|1qw@+L!)EVJ3N?Mh~7sU(y|tp z4ErBPZ9^lHmaly5r#}T?;|tSy1nmeOw+s`L!a3(?VTtiI3vzlTiDPg*qBYq96m<{1L8Iy>E})o>U6CJ@s`Fy#r#t}gctEAa`0dAhETs6z&?(PP zPx&N7qv{jTh2i#tAaP8!t`0SW{z6i+7rbjDJY=L;ZE~Ly_26)zrPPM?1N+8rqdwuG zchxt!`tfyLx6F4kq__-BNuGwM%tH`mFd|5Kx2+Xj=PTg+qX-2Jr-OITS~9eOo}4j3 zb*A!i5Kj9mU+P2J)+n>4?aRDt bqR0OWuQLJEiRgUm00000NkvXXu0mjf6Am(K literal 0 HcmV?d00001 diff --git a/users/user/user.xml b/users/user/user.xml index c77797b..d0019c8 100644 --- a/users/user/user.xml +++ b/users/user/user.xml @@ -2,6 +2,6 @@ ee11cbb19052e40b07aac0ca060c23ee md5 - 19.01.21 01:33 + 02.04.21 11:36