From 2fa2191a5f213bb99a918b2adbe99bc9f759483b Mon Sep 17 00:00:00 2001 From: yaso-meth Date: Tue, 25 Jun 2024 17:21:39 +0200 Subject: [PATCH] Update AppUser Objecct to cater for all fields. enable file generation of med cert --- .../.minio.sys/buckets/.tracker.bin | Bin 239713 -> 239713 bytes .../226941b2-df46-401d-88d2-7c472e978183 | Bin 4096 -> 0 bytes .../xl.meta | Bin 0 -> 3680 bytes .../Med-Cert-Yaso Meth-24-06-2024.pdf/xl.meta | Bin 3629 -> 3629 bytes .../lib/components/medCertInput.dart | 54 ++++++ .../lib/components/patientFiles.dart | 158 +++++++++++------- .../lib/components/patientNotes.dart | 2 +- .../patient_manager/lib/objects/AppUser.dart | 42 ++++- .../patient_manager/lib/objects/Patient2.dart | 47 ++++++ .../lib/pages/patientView.dart | 1 + .../__pycache__/docOffices.cpython-310.pyc | Bin 1724 -> 1786 bytes .../__pycache__/patients.cpython-310.pyc | Bin 5285 -> 5561 bytes .../patients_files.cpython-310.pyc | Bin 2593 -> 3513 bytes .../routers/__pycache__/users.cpython-310.pyc | Bin 1154 -> 1154 bytes database/#ib_16384_0.dblwr | Bin 6291456 -> 6291456 bytes database/#innodb_redo/#ib_redo18 | Bin 3276800 -> 3276800 bytes database/binlog.000035 | Bin 158 -> 1260 bytes database/ibdata1 | Bin 12582912 -> 12582912 bytes database/mysql.ibd | Bin 46137344 -> 46137344 bytes database/patient_manager/patient_files.ibd | Bin 131072 -> 131072 bytes database/undo_001 | Bin 16777216 -> 16777216 bytes database/undo_002 | Bin 16777216 -> 16777216 bytes temp.pdf | 26 +-- 23 files changed, 251 insertions(+), 79 deletions(-) delete mode 100644 File_Storage/Mzanzi_Innovation_Hub/.minio.sys/tmp/.trash/226941b2-df46-401d-88d2-7c472e978183 create mode 100644 File_Storage/Mzanzi_Innovation_Hub/mih/Med-Cert-Yasien Meth-2024-06-25.pdf/xl.meta create mode 100644 Frontend/patient_manager/lib/components/medCertInput.dart create mode 100644 Frontend/patient_manager/lib/objects/Patient2.dart diff --git a/File_Storage/Mzanzi_Innovation_Hub/.minio.sys/buckets/.tracker.bin b/File_Storage/Mzanzi_Innovation_Hub/.minio.sys/buckets/.tracker.bin index fb5b0e24d8dff61bba8a795867dd9ad372e4375b..1ab39bc9d87777e328d3b5b4130f3febf623e1bd 100644 GIT binary patch delta 120 zcmaEOf$!l3K4$h6_ct>C5Zb=)1Ct%!Mu)W?+r{jd0$HYS6J%~-WZ7t_+yEj^^KL&k zlX)^w!A1S;_WaD{OdB26!C4yIAWf?cx36np{=y0~>KzM2&vc;C9PO4@7`IzqVbZt) E05AJ5W&i*H delta 125 tcmaEOf$!l3K4$iYwHuj#2yJxOO+%b1G=1L(CXRN?D~#JMuP|v`0RW^=Hkbea diff --git a/File_Storage/Mzanzi_Innovation_Hub/.minio.sys/tmp/.trash/226941b2-df46-401d-88d2-7c472e978183 b/File_Storage/Mzanzi_Innovation_Hub/.minio.sys/tmp/.trash/226941b2-df46-401d-88d2-7c472e978183 deleted file mode 100644 index 67222404bee143bf2602f4027082fe082db2ed5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 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 diff --git a/File_Storage/Mzanzi_Innovation_Hub/mih/Med-Cert-Yasien Meth-2024-06-25.pdf/xl.meta b/File_Storage/Mzanzi_Innovation_Hub/mih/Med-Cert-Yasien Meth-2024-06-25.pdf/xl.meta new file mode 100644 index 0000000000000000000000000000000000000000..795ac38c5dcdb40f72d05c1f52345fcd499e1d82 GIT binary patch literal 3680 zcmb7HNvtDB8J-ss4kkzeAt7;U@5^)B-EDWb&f2sQG_xDwe zS_E=->m#>*aqHIE?dP65d+7S=!N{)~Mk_o*+di$DL<-|T+3EaVkQKl@Hu zXj?y>Td$Xe0waGG{N@%64m)*C1b5G%UP(Tf_s`xaGDr1f@FhgW}c7gc3V)=^nAfuV5< zY$&n@P?0mahtHeF5u9`f2jg=OppEoVWy@r2KoczmYvfw7z#TvZE)EITfN~p{a9v2atO>d(YZ4M3%35AK z$nOa{oC=^*90@Z=-pU3Nw(17UjImzZjBU z#V;t+_Hsph?;dxs z&*h@M%v9@1uE@0Ru7nkRJq-8>E<(6mcJh33aP_N3Yk5SM`-CT29tl3j1Z~w_)Do}g zv4NKisMT@sa@EaVZ33N$)-2XqxtQ~6z|3Pc%t3dtWCbXqia;F*&=UB%oW>lK(E-pK%dgqc5yH{k6tAu7dIn)5tMi~IJ}+@Y=(vn)i? ztv2QI`QToUR|bai9loaydc@d6O#|kNFBFoq+&I%1dM*Z71ndh+ne)uCVZNVCEX9Va z?ih8pshp@q8_v@1z)^a$nXRkdV3V01x-Ht3TUEn+W5%F4c4~Kq=F+0<-OswyA~9VH zm+6@_ACVx_QbL8YJ7*85%qFpw7yM=(6UM!v*HfKMFD_InHmn)LEUjwAB-=_&@>dE` zr)$DGz_dH;v=XZ8dzzc|hx4dU%4b#;S2;GQkv@Ilq53tFiykL|`a;UP*(s=<%hgW3 zET_b=iP8>+XfaH!ZC)h3@NcJt#^y$!pp(`J;41|Us+2D~iMbc)qTZKlDUux>(^;&d zSE!~+kH@*W(2YicD^g-x&EVLj%qp%%j`sIaS60|>v2&JTGWOn#H288&5F1;HtLqPX`!l5BGZUOu3oKdxlKBI>(|)lhnHXL~|e<$HO8% zD%t&9(wUXmmopH)9|Ol@ASZ92UGWh^9S|A{A?~+4uNk z4IlXg5 zej~+JZC;yxSk8USv(YGNIl5*}?m$!$O~2~!6rus4-CVh%@k6G?#NBR=@>6toNO|pY zpv_g#mKrL!veR>-8;tN+J}EifA<5PCk*1W%qyv&1m^r+IXn4*J%!YF#avdF?gepO~ zCwCc&78kwbs=#VaF!N3H0M!{`6JLF=(dmLGd*O9#1I_Hf#5QO;DU5m{yg#uYhof~b zvYyfvB{6V0Ts}wDS8k8H!%I8v7gR^7o^89AsfE}tjf_mcIim{SNtVZ(%kc%nPG%H()tDqJd?BJUc70fyOIaP1dw}*%y7SBP$?ANI){}nL zWlz=my_uhD_*r$J&qv-xWY*eb#9lwz9=bdQ=TI?&4$QGwaC3e%mlaR?=#)@D=goFO zUS+&jEj9=Wm#vVSO&Mv5%+_Yde4&8n4*YmG-qW6N>N2L|zWQ$TPM$M8v1{@Hq91Elv}#YX8$8yeT|mOAzrJb1@B0 zR)BFji`PqtZJMI^2qp+PCjuIab1|BT36Xe|C)e<>C$32<^T8T(oBPJ~Kzje{0g57` z4AIU+eE;pH;J4Yrb#1L97UK175Nvf5u@Drtt-F=A5vRWzymp|&FwCCE4F_F D^(jdw literal 0 HcmV?d00001 diff --git a/File_Storage/Mzanzi_Innovation_Hub/mih/Med-Cert-Yaso Meth-24-06-2024.pdf/xl.meta b/File_Storage/Mzanzi_Innovation_Hub/mih/Med-Cert-Yaso Meth-24-06-2024.pdf/xl.meta index 2f708c0bc96e5bcd122121dd0da92d331d52361f..877d2efb99d26add7bfb46e65668e98f6539811a 100644 GIT binary patch delta 246 zcmZ20vsPw;29MjMguJA;M_9sCZ@Eu2F%Etj*wb&)8C5h=b6%vyTjm=Gsk}MMqQw&lqlT6LiEG!L8EsPUWjFJsf%@>xPOP<~^ z|6ChakO5=klDyKKoTEImxwU0x-ky3Z@b%6;hhv$JUW$l+6idrg POA9+20xBji=WPQ35ocUH delta 247 zcmZ20vsPw;29M1q?~hf1M_3G#K3PvRF%*but?Zbl;L_XkHNS25gURI+OY7MnY9{_N zRbP@?l9+x|A<@FpA|)*`(IhF=+{Dz>#K1Jg%p@hzEG5an%rq&i z=AR2_|7FD3xFoMMC+8^7Z10EloK2GJL@ynBYLptZyxZu-r*BF&QF0yJTR1G;1+Q-2 z#5jeW)zHMm)OfNtX99$^c?0J*X2(>+6q95#Q$u4TV createState() => _MedcertinputState(); +} + +class _MedcertinputState extends State { + @override + Widget build(BuildContext context) { + return SizedBox( + height: 250, + child: Column( + children: [ + const SizedBox(height: 50.0), + SizedBox( + width: 700, + child: MyDateField( + controller: widget.startDateController, + LableText: "From", + ), + ), + const SizedBox(height: 25.0), + SizedBox( + width: 700, + child: MyDateField( + controller: widget.endDateTextController, + LableText: "Up to Including", + ), + ), + const SizedBox(height: 25.0), + SizedBox( + width: 700, + child: MyDateField( + controller: widget.retDateTextController, + LableText: "Return", + ), + ), + ], + ), + ); + } +} diff --git a/Frontend/patient_manager/lib/components/patientFiles.dart b/Frontend/patient_manager/lib/components/patientFiles.dart index 43ec16ed..fa0e9765 100644 --- a/Frontend/patient_manager/lib/components/patientFiles.dart +++ b/Frontend/patient_manager/lib/components/patientFiles.dart @@ -3,62 +3,122 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:patient_manager/components/buildFilesList.dart'; +import 'package:patient_manager/components/medCertInput.dart'; import 'package:patient_manager/components/myDateInput.dart'; +import 'package:patient_manager/main.dart'; +import 'package:patient_manager/objects/AppUser.dart'; +import 'package:patient_manager/objects/Patient2.dart'; import 'package:patient_manager/objects/files.dart'; import 'package:http/http.dart' as http; -Future> fetchNotes(String endpoint) async { - final response = await http.get(Uri.parse(endpoint)); - print(response.statusCode); - //print(response.body); - if (response.statusCode == 200) { - Iterable l = jsonDecode(response.body); - List files = - List.from(l.map((model) => PFile.fromJson(model))); - return files; - } else { - throw Exception('failed to load patients'); - } -} +import '../objects/patients.dart'; class PatientFiles extends StatefulWidget { final int patientIndex; - const PatientFiles({super.key, required this.patientIndex}); + final Patient selectedPatient; + const PatientFiles({ + super.key, + required this.patientIndex, + required this.selectedPatient, + }); @override State createState() => _PatientFilesState(); } class _PatientFilesState extends State { - String endpoint = "http://localhost:80/files/patients/"; - String apiUrlAddNote = "http://localhost:80/notes/insert/"; + String endpointFiles = "http://localhost:80/files/patients/"; + String endpointUser = "http://localhost:80/docOffices/user/"; + String endpointGenFiles = "http://localhost:80/files/generate/"; + String endpointInsertFiles = "http://localhost:80/files/insert/"; + final startDateController = TextEditingController(); final endDateTextController = TextEditingController(); + final retDateTextController = TextEditingController(); late Future> futueFiles; + late String userEmail = ""; + late AppUser appUser; - Future addPatientNoteAPICall() async { - var response = await http.post( - Uri.parse(apiUrlAddNote), + Future generateMedCert() async { + var response1 = await http.post( + Uri.parse(endpointGenFiles), headers: { "Content-Type": "application/json; charset=UTF-8" }, body: jsonEncode({ - "note_name": startDateController.text, - "note_text": endDateTextController.text, - "patient_id": widget.patientIndex, + "fullName": + "${widget.selectedPatient.first_name} ${widget.selectedPatient.last_name}", + "docfname": "${appUser.title} ${appUser.fname} ${appUser.lname}", + "startDate": startDateController.text, + "endDate": endDateTextController.text, + "returnDate": retDateTextController.text, }), ); - if (response.statusCode == 201) { - setState(() { - futueFiles = fetchNotes(endpoint + widget.patientIndex.toString()); - }); - // Navigator.of(context) - // .pushNamed('/patient-manager', arguments: widget.userEmail); - String message = "Successfully added Files"; - messagePopUp(message); + print(response1.statusCode); + String fileName = + "Med-Cert-${widget.selectedPatient.first_name} ${widget.selectedPatient.last_name}-${startDateController.text}"; + if (response1.statusCode == 200) { + var response2 = await http.post( + Uri.parse(endpointInsertFiles), + headers: { + "Content-Type": "application/json; charset=UTF-8" + }, + body: jsonEncode({ + "file_path": fileName, + "file_name": fileName, + "patient_id": widget.patientIndex + }), + ); + print(response2.statusCode); + if (response2.statusCode == 201) { + setState(() { + futueFiles = + fetchFiles(endpointFiles + widget.patientIndex.toString()); + }); + String message = "Successfully added file"; + messagePopUp(message); + } else { + messagePopUp("error response 2"); + } } else { - messagePopUp("error"); + messagePopUp("error respose 1"); + } + } + + Future getUserDetails() async { + await getUserEmail(); + var response = await http.get(Uri.parse(endpointUser + userEmail)); + //print(response.body); + if (response.statusCode == 200) { + appUser = + AppUser.fromJson(jsonDecode(response.body) as Map); + } else { + throw Exception('Failed to load user'); + } + } + + Future getUserEmail() async { + final res = await client.auth.getUser(); + if (res.user!.email != null) { + //print("emai not null"); + userEmail = res.user!.email!; + //print(userEmail); + } + } + + Future> fetchFiles(String endpoint) async { + final response = await http.get(Uri.parse(endpoint)); + + //print(response.statusCode); + //print(response.body); + if (response.statusCode == 200) { + Iterable l = jsonDecode(response.body); + List files = + List.from(l.map((model) => PFile.fromJson(model))); + return files; + } else { + throw Exception('failed to load patients'); } } @@ -75,8 +135,9 @@ class _PatientFilesState extends State { @override void initState() { - futueFiles = fetchNotes(endpoint + widget.patientIndex.toString()); - + futueFiles = fetchFiles(endpointFiles + widget.patientIndex.toString()); + //patientDetails = getPatientDetails() as Patient; + getUserDetails(); super.initState(); } @@ -128,33 +189,18 @@ class _PatientFilesState extends State { Text("Create Medical Certificate"), ], ), - content: SizedBox( - height: 250, - child: Column( - children: [ - const SizedBox(height: 50.0), - SizedBox( - width: 700, - child: MyDateField( - controller: startDateController, - LableText: "From", - ), - ), - const SizedBox(height: 25.0), - SizedBox( - width: 700, - child: MyDateField( - controller: endDateTextController, - LableText: "Up to Including", - ), - ), - ], - ), + content: Medcertinput( + startDateController: startDateController, + endDateTextController: + endDateTextController, + retDateTextController: + retDateTextController, ), actions: [ TextButton( onPressed: () { - //addPatientNoteAPICall(); + //getPatientDetails(); + generateMedCert(); Navigator.pop(context); //print(widget.patientIndex); }, diff --git a/Frontend/patient_manager/lib/components/patientNotes.dart b/Frontend/patient_manager/lib/components/patientNotes.dart index 59fd55f5..0174359b 100644 --- a/Frontend/patient_manager/lib/components/patientNotes.dart +++ b/Frontend/patient_manager/lib/components/patientNotes.dart @@ -12,7 +12,7 @@ Future> fetchNotes(String endpoint) async { if (response.statusCode == 200) { Iterable l = jsonDecode(response.body); List notes = List.from(l.map((model) => Note.fromJson(model))); - print("Here notes"); + //print("Here notes"); return notes; } else { throw Exception('failed to load patients'); diff --git a/Frontend/patient_manager/lib/objects/AppUser.dart b/Frontend/patient_manager/lib/objects/AppUser.dart index e48058b0..774fd808 100644 --- a/Frontend/patient_manager/lib/objects/AppUser.dart +++ b/Frontend/patient_manager/lib/objects/AppUser.dart @@ -1,15 +1,39 @@ class AppUser { - final int idusers; - final String email; + final int idUser; + final String UserName; final int docOffice_id; + final String fname; + final String lname; + final String title; - const AppUser( - this.idusers, - this.email, - this.docOffice_id, - ); + const AppUser({ + required this.idUser, + required this.UserName, + required this.docOffice_id, + required this.fname, + required this.lname, + required this.title, + }); - factory AppUser.fromJson(dynamic json) { - return AppUser(json['idusers'], json['email'], json['docOffice_id']); + factory AppUser.fromJson(Map json) { + return switch (json) { + { + 'idUser': int idUser, + 'UserName': String UserName, + 'docOffice_id': int docOffice_id, + 'fname': String fname, + 'lname': String lname, + 'title': String title, + } => + AppUser( + idUser: idUser, + UserName: UserName, + docOffice_id: docOffice_id, + fname: fname, + lname: lname, + title: title, + ), + _ => throw const FormatException('Failed to load album.'), + }; } } diff --git a/Frontend/patient_manager/lib/objects/Patient2.dart b/Frontend/patient_manager/lib/objects/Patient2.dart new file mode 100644 index 00000000..a80bd500 --- /dev/null +++ b/Frontend/patient_manager/lib/objects/Patient2.dart @@ -0,0 +1,47 @@ +class Patient2 { + final int idpatients; + final String id_no; + final String first_name; + final String last_name; + final String email; + final String cell_no; + final String medical_aid_name; + final String medical_aid_no; + final String medical_aid_scheme; + final String address; + final int doc_office_id; + + const Patient2( + this.idpatients, + this.id_no, + this.first_name, + this.last_name, + this.email, + this.cell_no, + this.medical_aid_name, + this.medical_aid_no, + this.medical_aid_scheme, + this.address, + this.doc_office_id, + ); + + factory Patient2.fromJson(dynamic json) { + return Patient2( + json['idpatients'], + json['id_no'], + json['first_name'], + json['last_name'], + json['email'], + json['cell_no'], + json['medical_aid_name'], + json['medical_aid_no'], + json['medical_aid_scheme'], + json['address'], + json['docOffice_id'], + ); + } + + String getIDNum() { + return id_no; + } +} diff --git a/Frontend/patient_manager/lib/pages/patientView.dart b/Frontend/patient_manager/lib/pages/patientView.dart index ce2ff30d..7f1117dc 100644 --- a/Frontend/patient_manager/lib/pages/patientView.dart +++ b/Frontend/patient_manager/lib/pages/patientView.dart @@ -34,6 +34,7 @@ class _PatientViewState extends State { ), PatientFiles( patientIndex: widget.selectedPatient.idpatients, + selectedPatient: widget.selectedPatient, ) ], ) diff --git a/backend/routers/__pycache__/docOffices.cpython-310.pyc b/backend/routers/__pycache__/docOffices.cpython-310.pyc index c92f581208e9eb4002b2718301879b3c2dbf3758..2b7959a2edcef25162a6e99aae85eabbe69f9805 100644 GIT binary patch delta 203 zcmdnP`-_(^pO=@50SIg_Ri*KNShyJ(jV8yiE@9M} X%*ZCss4`iREe1%|u~{>V@G$}aUU)Hh delta 132 zcmeyxyN8!ApO=@50SF{D1k+ZqZRF!;o~+Nv$(S+Ok};mIh9!kvk|Bj-4s$SrCg$6xg%1l1ZB*VnrwWF5SsT~zuvs0OCURuAVr9Q>P{TirWRV%q#MH`Eq5iXW-v57XTVl@{X zG_YsuQzWjn(4eZ-P%^FwwC1NsrS@!9Xfc^hDGS+5C`Cidd@-G(xq@Mz4UmE^o4lSW zh(&3J;K%PBdVZJq^^sq{;GOPexMe&Vj}A`AEpjX|HY)GC$QOsBiKv{S`^11h^ZhZm z`VBe#3$h6=vESt7E(L*JW1VnS4D0=>=~FS>+s~^d+hNe<6rEm3=a`Z6|IEYcH5!QP zgD&RdkFf>>v}E`JtQkQM(}w!t5SASXVT1^WfL`@xJxFvS^dj^jI1j*u6=pk$#fkim zc#nvO#;y`$Y}^zILVE}6gEd1fS%EFXrHJk7ah$e#hl6m$&oGN3zZidqz2oBU)QzL@IB z5d1WK{a@$pqVu1!Hn-}mXT!*pY+e*%QWM#N1*wjVz(dJL8uQ!I8$x_=#o{4;Sh0kS z2b%#oZA4&Q@WbME;6`kU>|BW{c*?uPPn^v3z^<(kZk1P)ME*(nj%sQ1i0a>t!(E$K z9L3%XuwnC(Z}8a`B@53!@`gtZb&39Ty&u(YK$uvCMK>-6XU{_apA_5iHY}22_deWN&cMkfA{?N&f{hK zn&B&`sz(ynCu&W;jV}5kWanc0@?2ovd7F%Dru(YOf=p$;1(}6d!@MNiZMM68!ws9h zNtrdWh&`bTR?nIQYi2DA4i+^%g2q_frhY*KtaW2DYI+6R!4ftL3Kn9?DhrB1MZgqm zvta`xXC=cZUnhPC{Gz&EsV(NLDRbH?8KmO0a+ga$YntWKLpWU@hM&$mkgiG6?@L6I zW?{{>LJSz72Rv@^q!pQ6;u*M0v#z9QOYnwfNl*E6%`Fm02!p#&5b+dB8(eh9m9Qw+ z<%-;y;d^1l-Aov~a-Yxa!W9{mtdL6Wq-jlD$>sBWw`dI)R}k$%u@`m2u&0ZR!>lJk z`rxtWNxB!=J`~)6@87KKwh`NdLguhI1T)_D&|y&;&aI)yj=*zog4}>F-WJjif4txR zH+i|5tg7jVo$TTR=xjN2HU6BMB1>>nZ6Sm3NNpvp<#*~+LSiso*F@rQuP*D}d>Nq8 zE}3WHcU>feFJhhYp?^Xlt##99!YuW|S3L>$wICTOuW9e?NWF>1abOr0^%y;dT7@Vx^QL7+&zKVh&iF=1gFn@|c{q+g0oPIR zoAKi)4wMrpcwVvDHGfS0A;ANG2N{Fc{$f`T`h6(cvZiQ?LSZ!!{tF}!#<&0g diff --git a/backend/routers/__pycache__/patients_files.cpython-310.pyc b/backend/routers/__pycache__/patients_files.cpython-310.pyc index e8a8e682ea471935dd9f4362238b81a8c3582d4a..74fda05a9d1bfc4a91e8da3db1df2115ef902dd8 100644 GIT binary patch delta 1696 zcmah}O>7%Q6rS0gU9ZjoQ7;EN#n-(DLud;REQ=(gD6#kR2m6c#xpJ(+1@Za zrnTkZqU72`wRe<=6X%KpXD)Dr1BVq72Tnb5K>~@N_r`9Tv%$rAD_GABO^nAc&1KR#Z#*5`!Vjbzi^b}13&KG{yaMRJ~v=lKMmlmk7q%{5byEUgoW5%mWL}~h^odf@6F8Z35 zCmbM?7>*6#5{IU#L>a6r(z)m|oxUh6!MM3fI0Iu=JX-e~;$|xpQf-P)+9FiZCG*91 zZ&@t5YNQpwFCJlztcr}Q;y-10>U^zobvUl z6^uh$`^t!orIncZN;FTHN6WFh+VDeF3!1yvC!@aEdHFI*EpS+NVheYKXSZafsPam+ z(WqdE;aGHq&CsQ2gI%O<)L;R9C;FLPEqd>5uB~r+Z`}1x_~WguZ{3J8R&j9>{VgKs zfW2c%vpVWaAX`HDOVRt*wT)RIOP0jElM4vwsw^WcB0Rr19ogh*H!B}?D!WzXi3sr+xkrQ&u#wWUF_<~ymXGyp z-|7}I;=WXnfhzEZQ4g}#>#oe>tzb@kT=q2Csy0RWc$v@3Co{L?bu zdp=5WqA9|#dQWt{t#+*jbiLhZbi5moflBnbw(f0;S|E8TE%7E}O9i~zIs5Ksk`2=! zPOd+wiCyIft=NV-ZTf1E3W-4~yb5d1HcP3i^~oA-p0x}bHV!wiktZUF5Mt(qp9TDZyPxy R$I`Y-(*=+v0J6mb{TFhBZCL;S delta 819 zcmaiyzi-n(6vut%`1~Vw5{TQ9h6)mB!K5ig9gt8}0YXABRH$qju%g_B8YLLc$&d-8 zWMx3d03%{TjGg!!_z%1yhKx)wA>O-|s$u|3{^|MmH^?WSkB)704`@5thMVH6j!65D@1Ca$#kSzk}ONTn7 zKs>?-bJ$PE!$`K&9jifH)wfb|O}#Vg>bte58f>{;g(4Xu^mHr7N{85#i&At;v95Qic84SuDT@&Et; diff --git a/backend/routers/__pycache__/users.cpython-310.pyc b/backend/routers/__pycache__/users.cpython-310.pyc index 48ed4568e0bca3fdd9fa3047627e43ad203ca01e..26f2ca5525bcd676f9e54c766436014ccf691dda 100644 GIT binary patch delta 19 YcmZqTY~tj~=jG*M0D^!$8@Vc203}KT_W%F@ delta 19 YcmZqTY~tj~=jG*M0D{eR8@Vc2048Px8~^|S diff --git a/database/#ib_16384_0.dblwr b/database/#ib_16384_0.dblwr index 6e1eae9c1dc6f1674e62af2c5c2661b50da50cf6..3ccce746905e0abb777bf6f84755a441b12beb02 100644 GIT binary patch delta 21025 zcmds9dw3PqwcmTrE6K^@kdTlkIY4;jc@hZ*33zx)qKUyrcvKBY5;#giOhOw_nE_8v zZ2i6pmutt`@3!bysgDXMrJ-mQup+J1QhV$3tJ3SW*CIu<*L$HB&RuI}_RO9+`vm&$ z9mr(X%y0eH-fQjG?7b(7qPP_J$=|=}y?jE5CvF^YOfJ|I!w$Qx3)e2$DL zynBA^PqzS|&W>LCx(S7UX?Sfrsx=%T)n4Sf2+yiL{gg;_ zf26lN(zCILc!-~nfsK9rT|FD+p0v!2EC2<_vcA=Wk*?msj-J)MtJik*GqHEWVAlW> zBAp$P&N@p%)9u-m5SlXPKTv=}>fZeB*EL!%$)~3oSV$`yHZ|TM290zgPy1L2cnhZN zKmiVoH_N9bHyFQxfknJ+H#D`(yJ1D7lYz8MAW3^3Cbo$NP#{DmeoSq8st27g?c%3Q z!C>7u(A7WCxnYf-KDfBPyF0R`3!H%3&3euQAEE#U?cRLvPM=TX3dMga;xbdFF_Vd) z)vV`p@+_Y$c zQAC!65#a zId6iRttz^Pulq{PKO8J6N*U7(Y;cC!_!+XMyeMu1(+aqxQ1J=AP^J%0KPLsnzCcc$8Z(b+6OojY4Y16jY{PkliX$RPrRT$ z`+)SYy8B0!vx}R@>Uzz&gg{w?c<9IEwG^$ImVoLQ1uF!?+>W%BuvxrZwQ0jWJ#ciRk9L-qJa zA58#6lb$vG>>9pdn$2yWL2DSG>($C|QGQwAIY2?GL8p?PQLjBu*KQw2h`LU>>B;Q% zW;T|fcWP-s{k*Ae%A_nuGb4E+y4v9eS3xFez$!d_9vRb!X?kVvnlcSWXZ-|zYo3Gh zlu4L6Hu<07kHH4Nq%fTDz=mDZpdX;9ouRd^B~pMu|q;KVQ{6CsEOOMh2CKax?n0JR9!vT^9?Q%`?&1{wA~wdd)lPBC2#f$1ak zJ8%Nsm!ALXrBg_W$Mb4mxMk=W$ zH7~&h{Tj06!)bZ|Pw8s!Vd_)A{Dem7Ey70!{sNC~6+YT{ibmD*hiN1I!Oo@Od(?|t zsaHLCgw9dxKZPfoj?zZ;OT3!(GF%-vjcB-{k8$W<0(#?L5&a50`H}Uc;TWAmA2(%* zc8k(LcXNofB7{1oEOWxnRpDFoP?*bZ$W;}k`JB$c|Vf_ zsxoi7SKSgWN&`w3)9PQ-2h>?_fQk`MkKoQU zpF{bOB_DhXmd#pF{aYCW{k(=3V+KJFS)2c&!TYH|)F8n&Ju{1oK*mOOMC}B*(ND~=?HVn?#x&c7))`6Ug_x5w6ka2o< z8b&fyp1k#bz`z>=cfkER;^S@@m+e}21cF4qP&;TicmHkSPkormFY2ZCe663SrIP!( z()cer02YQHg}=U|ZQ!Y$6Y?KPL91vbrbscx6;s?X#S>G!F~t{CQesMKOi7C={+N;; zQ!-*oW=zS7DS?Q zcZOel5)uFo;5*;0^J>0AC({>4<|;Is(o-W#x6&WaosVeOaM$@kA1MYE=r64U?-RcF zfPReLru7?p%-(|v%e2Rgt3)Ls!pk9CLWGY)xP^!m4&f0ZQaOZIh)81yaqYv3OjCrK z=}Z%9cB&AO!6C3QPUvN6CWr6~5m_7}U5E&9hzucO42Q@RBCs!n36P=-r|h%ydQD?|i2#3UhNGD8Rx zsA_d=s!($((}eU*6C$Q@i0MMabPiE2M3i%g3L&C`LsSY8l^miye2y2`r(M3XpHS&_^Vj)5siy0BUMu^~FiIxZv)?152n}mpF&g;!W#I+1DO3bel zYPO83IkM+C^-C}fDQdZwGF2!pONEFVIK&M?#El%{Mj_%Rh7e|Lr219*fQzmWs;*?J zkieBf#Md~4@ExDt!XbpO`t(*4u@FayI3nEHdg$L^9OxL1!$?t|l!4(RjKpF7u6$qJ z2l{M-ekShe|8tNk2%{*2`S%ajXwz~IipXsRd`xq zVE~`_CLRUjW$^01b#bUb%{o@&QRg42nV4I?uj0-YLR~=swU0-TzkHts8Y8*g-L9I~ zJZuWerOrDtqvX5CYdpCXo{H10MAF8-2EVk#QiWNInp`#GXw9tLiaRT}v=En@Gg5J< z6S?cPkUIlR`7Bdo<~N`zuNpd9lb2g@x-#BM+`K(kyPd_aW*)7ds;L})8B{8_R1LQf z4{x|~i$EpKN4;7;Rnw%dAFn#sO1!*DcQdDd_b+QQ)wW}G#VnPnh3b@4@ z8=c+HXk`&&q$Ff_hro2)U&aLjN+0jB$c_Y<*rjb&$^o<&i z3mmFG`by2!xz!g!<6B7@PwBPL9l13-LNBxsKhIXP!(S*Fk98lkkSw0OR$bj(SBRxNCsT`u5nXbnT6?S}p*6T*K|hY;_za zo24x2c3T~n=*=L*dpLb0jZHr<(WalZGx9YXGylzngqq76aG%}`v$uM6r#G|eo-qk) z@)Vem)~4&PqLmXf+Y6BfYB|j2N?GbwcVKs>bUT~EZp=ElO&u>)=BX#4Oi%C`t0CM} zwzl?ybN#TQB4uID_0^Bf?jYtH^O-f=dp%gt)+04raKigL!GmeuFCa-UjZc^C=O!46 zbQdl}RfHbh>t78R$1+FzX`2iGA1!lWej(qdpLKuyJ@A%enWOzQ6h5hXWbxt36l-x~ zA%am!TDlqk%U<4!jvr{O%1U$R($sSGuIA8tBh&p=AEXvH z;|et#%_W59{)0{65K?qJtxDY>RZmlQh12?W?3yR%)k9&6e-+o(7&3}aZi9prNz1XW z;$jvabO;uYv>Vo)+<)W^w-TC(&rPibtjWJpLz8NA#p6nCYK6KDKwz&Y5b4Af&n9ch zGp|1HZ_p2A*(k3tDM^dP=3;lfjFAqh0e5wkoHsmfW-D=NtH3N>bh`nk<$AhG851pc zr0W?URr3BeZWHuRc8bSs6cTY#NP0qKSOMMVqg%(#9QQ&i@z^;I**IJY94?lbz_UoP zX&iKuUOUBaZ4~YV3fXOP>_Ltf^5?e_pPl1BZ5*Bi4v$H(7b)WT--IsAMj@p#iVBBA zWm@6zC~zqG^Yf3ll2kj#cpC@rQJuo@C^!^?vNivk1=-N;6cEQWgWooS?D{7NypYa@) zADbCb;5m+{RNX$!TdGd@&A6QUf|Z5&tt7)nL02(`XUR;H;aQ78{qn)$V12>Mg?B=q zYFBMzs{69& z3bc}dohQV2_K=XtvxnpHboH!`tXJ=PH8-ce@JP|>Rx-xU5M&I`kUEp$8H+)Uq*NDI z6a|W)Ol6nY3PiwAg%)cGQ-zk{)No~ESrPO{c(fZ$V>|Rs#oP3?R{cpX)%st5@mpqZ zsuoF=1=y7qk4^%EXv5DW;Ugl*ut=N=%s=Q>Mj~=`p1|rc}g~%9v6WQ>tT1O-u>Jl-igAQ|DL2 zlo>IlKBml!DObjnhL|!drd$2CyuJTVZ<-2Gb?emwJaz9-~75`*Y9-w`6yMKx)4^l;@ zyZlql8yo3%y3aq&l)p}Q(Zl}fru+@MkDlW>L<;(A%p3Pg0V(7UnerAXD24sCrYuV#sm)(!%8C@0R{5_m<*ibi z)aRdJ%G;z>lH#v7<@=;QX}f=>DMxRY6ls_LO7q4yrR~x_e}gH} z{8yRs{nBCSq<^+4e@i+co%J`G^0%dv*68rGOU4ofJK7#k`Tp_W5klNpYVd$-7#(&W zUGx%O8HWo-$MY3jVeO|%J(huPwzST-nKf9vO!Hzak!gjQ!*mtzy&>%o&DZmL= z#5Z9pT$Ry44UTDRU^m-fZS~;LV0WZ{U@(aH5c%MV9zQDPldC|K;L21iu@vi2aiD9> zhTcw2vscp$YMQeC0&dtWw^Xk{)xmXO)KrxoJkgtlMyHXvU=%w^(l`c(R!~)XBE69f zRc2}(BETWZ@Az;bE<~z9^uQHqFP2d~jRsIL(!19915*acUAb0m{8n|oynhiaD8+u{iDduJBTjRse+N&?PW~h5aiYS}BL$rZVoT3`(R$ z-&Kha-#Ap8MAzZO7v6vaQ-O!6h8q>9k?UCBF4|Ct`1bLjN&OX`?#=HX!W(cnlRz`F z+)zG{t10PzTU0E)8533|-PAoe2heEYzi&dkai>i@X;b1%M1SE!>=aX(BvE19SzH2ow!-jBeud%`GpUg4S){Q;4 zcl8H1bO#X(n|T2YInjELNN;D?P_bJ#6Qp+t&EOm=mu~+K#xBEMjy{n&CEbV30o2W# zZ0$i3$FL^ijHrqD`s)73>f6_Mfm704;FJ*QlEtKUpBSXlVUCnbbaJ0)RvIoAi;Udf+uvedU*=WX3 zi<)t3x39(lp2^69$&6KGka3H82h)_@Uq**f8Rsm~R{1h26c{CB9a(!BMwuH8V^!yD z#!Oq58)X>wX%#muUEiYLNA4WWj`2+2q3>*r46D@_IIGxA;XxT|q_fa4HAL?2V_$`c z9GT3P*5??uLgP7GX8&v1s!WI>WD{bjkj)whzBX`v1*65a&hj7VIwMI#c+ry7S|F9>-! zX}!>3!g>MCzG2GU%9*+xZ|aqCSJHaH8)a@ZYwl3N2q^0X$O+7)@TT!zGO|!$E z>0eDH@urv0qFyn;zO82H#`ckW7@?zLjBZS;8Acv`11yhF`^>>4qm6XxHAB|Mr5fu5 z%qf)5gHSCm`};8GsKGFv@)&1)v|!45>r?DT+ir50^j^MgM^IBo#5NP_28-!&vR=My zb3;jjn)VyctgyAyV|qduQyD+QOAIP+j1Q{+bIw@OpeDxjon$eU#m4RJoe|WGAZL8E zpxR@4arp96`;j7uysCRsUS=6S7JiQ}(%5DFY7o>F;Xp9FCv4PabtBt=T(AZXeyA=`zF4Ie{H8ljyRH^f5BLRk|TlT$jW* zZi(Lx+Pr5u&jSV1d=WKkf$c-X{B-R@MVdm)Px~DG->BB~YM^J)m&sW(UwduVtd1W7 z2ZrGj+5p*<;7D2f5LRSZ7{e4Oj%GGl3`Yy0ZaLp=HuCoNd_d+Ct$m#7h-T`1vBkt_ z`qJ@p)G``Ocw5)r_|5LuHUgGOMh=9ZrntP_t`N?%@dq_N1cajR$)Z6zExy~~K|8hG zXN(!%XG~_N&!GJkyh3WmLh*kc#TauFGjd97B#}N{{{omcj5!MQdjDqxMav8XL|-3t zmUK2<@;oISi~p_T8pkBR>Il>rK4ml!Ebv0avtUL$MPu~CCqpW!RZ4m zXv?K6hXr$@$SB7w{<#(Cy{WDaZtjUIWQpF>KW&BKaVl08dDVplNW027HkHX z*H~HJA#=>5y3JYWU=K)KIJ0QBGxo-SS?sVIlrJ%#)HMWUTq_dF#g&eXIg5mIENTQw zx>Z~>v|=u3e_(V7MI%V>zpyo#L3Up}+BfXF=W%w;0%EBaq8%B^;P&{#?5@!enK@(k z6AWp+p<&1q8QqZ873zaM80c#reK>x<^Zh%iVS6wQ!`>a7VXpKfX+U6*ui4!d{}#(v zkF5U%iX?VfaW(Au_KNK#R&o}@C*t2VO$jZ@gD^LWe{CR1El+udGnp)i5W{_!8AIL< z#!x0k-ctWCx}ju2JP1LwzpaUV35G>6l&7X$;0#}W5D#-f6nd69))B+>BAYpD{wpzv z&_<_WMLaGHqCVGewl?;LGq(nNg=x@6yJ}7vVKb-y`8HaHRZ}P|nw=BmE`cj`JM2M1 zMbu{DbFW8p719ANZ)Q7fsj}Vxdbu?0<=*kU2OmNXk?!A-l zv!mFMwZEQ{Q22FYwk}TSKJXsS=V60cMn6dyUneb!X0&9zA-fj+SDyMfmpMUYbJhWj zoYqvIRd349NzT8GA~sxShEccYd%&=V@1LWudkh(w z1P?iflSynPL{qovt`X!>HeXC&9l#iUNh!$#=^TCO)UF#j>QPH2PIs`mC!D4*<{yks zUJ4`+q*>D)&6u77X_+_$NxC9d6SHJ}94O^~^|+vxXe*qiVYATcMMpPmt0QKa<(n9+ zBe*nXR1+z9akgbjpZ~pdAo*(I5w5c`PTsq={$83U=qhAm8Q0Q=@YE&r6?$I11OJqh zjd6w)`byLSX}&ebAFLA=1~={1f6A^g&X5`|ql=QY&fifx{U3_$B{s59ZlNVFlfr*@ zz8GUjZ4G&XPqj8yuAr}rjU_3$P>Qg#l9rrzPIFlnoxwB^KIc zK8&M2|HYQTl3NxA((@-Pke40DpftqAksJRDN{~4lYz(lxcZv-rR?M;5ERS1K5;{%$ zBoAzRu-6Xup86U0o@$1VpXGt-Va&n6UzCF#9rugpV7TcdyAO3ka*;HNv&8kCNh^bH zZu>Z9HYM+Hd^Bu?w^5slJ7aVio?Ak{=*^T z+p93zfN!rB9hf2%m%l?U1+9YhWzqT31<{4kMbX94Yobe{P0{A) vwbARMEz#EK_0hKI(&!D*8>2TxZ;rM{mqnLHS43AvzZShEdTaEyXvhBnEwwH( delta 76667 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 diff --git a/database/#innodb_redo/#ib_redo18 b/database/#innodb_redo/#ib_redo18 index 70457a6c44c7d3f976888c74ea7ad5d454bc7036..3c14db27c8b4785171d56900f3a8c7fb996e8f71 100644 GIT binary patch delta 7145 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 delta 271 zcmXBPO-{m47=__{_g>*@vDV6uXrUDOM?`1tzy#thTu9@f9lHP);HV}fG&&>H{yOX$9}mzR2H=SQp^w0sQxN3ighff_KQda}tcZHedG;>!iD@c;)C zL)Duk$J25iJ%fP+Q&j0&i$8EGJjhWPkGY;9)PbI+I>4b^zHoH=Lh%>LG?UCp^y{qM z8QOr{lwsYoO~)H3>yAEXRv-~3EPKdwL5wL%OeQ#dE5`vJTdqTXy#E?Wwvtj7{oN`_ z9>h9`m~H^ibUoV{i~_2gt16#zqjyQ5k>&*QD-)QFVTjgud#UB+!U~XG5h}l6&6^RT zTv)d6(TUvza*TnTet)D!a;&Te%O~8o}?Q%L^f?jeOK|W1BgWWbn_S*vD0p41NQqlhAD%+F?Ym u_3AEO9ktu^N?JOV&Sc0R diff --git a/database/ibdata1 b/database/ibdata1 index 40317fe14daa853106ff150cdf05f83f493a686e..2d30e40cd4b0f29a021e7b7f36734d442cf1fdcf 100644 GIT binary patch delta 638 zcmX|%*IUg206_0gO3CaRS4J|jGP6frdv9frtYjs7r6Zg&vdNywN<~QKt3ONk#reMT zbPkX}%<3Q-`5Pn~3WefZ{7+nYL48vs8icch^v3)k98~3$2F;1FHI^ihRuU(zC0-Jw zjU-Bvw3TFOC+($!bd*lgSyCh{U8JjYlkO6c9+E0OrI+-UK9VMVC0+VSe;FVHB|`?u zU>PDqWte2ja2X*ZWt5DTF_I-?Wt@zc2{KV8$z+)#Q)QZDOO8Zky3CN7GD~L59GNTg zWWFqrg|bK%%Mw{C%VfE%kd?AZawShz%NkiL>twxbkd3lQHp>>tm#wl*w#yFLDFw1i z3T3zKk-f4{_Dhi*kYYI~hvcvvk)v``!-DW~MLl*kz=738dx$vHVM7epzS3b`nk zY0#7qoko=e(pq99 zR^lXH+DL-5l|*SL?WKbxNwRd5PSROI(nY#TH|Z{6=^;I(m-LoC(pUOPiu9M3mjNh%L-X3t0Z4mOM$GBLRl+CQY`DFMApj&*(jT2 zvuu&AvQ4(j4%sQYWVh^*y|PdC%K`!-DW~MLlnQc2&Pth_lk=jK z%LTb8m*lck$Q8LN*Q8Re%MGcLYPl)5q(*Axw%n1sa!>Bd19>Qq-o(;iVYho diff --git a/database/mysql.ibd b/database/mysql.ibd index 257b5f7cb2bfb3e0d77ca95f57ea50cff5cd3121..e2cf4cd5c84bc8053401013cc3a33873ea70fe59 100644 GIT binary patch delta 3087 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 BYdrt} diff --git a/database/patient_manager/patient_files.ibd b/database/patient_manager/patient_files.ibd index 4b308f2737625529ee69d4bf360d6ab090d1408a..7729497d3db731836cae20cccf9e9f2dedb22b07 100644 GIT binary patch delta 492 zcmah_u}Z^G6umcTn`lA1=w#^|90ZAkSW6I8v=P9=k1 z(ZRXs)G<0)f1!SZ^LDFle;IrLKx#ZG>Op;OydU+so0JNQ zauCij!XHo|16tR{P1L(h>?^Pr8HlBOO{2XD8zDfNsnwN7;?H9)kbdB`t|kwyu@ir- zE)vCtQ-T@lpqhW6MILkeC&$8T`LZ2|hS!v5uICFnfh!5O{bVYxYjr7Zy}%X3Ck^ae z#KS^?gq+_e!t4dAf;F?4tH`=>NQ%aJ&G%$WRAk^9mT46Yvt(FX|Ex)l91nYM<+Wby zE|qWKl4IkT2JP27`Y1gU-)J^I_)g-3Pl``X+_AsNac~{=sOjK#5f=C-x+#)0r-;L} fr-;LH#sgw8Q%g+6%ULqTX2{eineC8SzPs8VFs_7F delta 225 zcmZo@;Aj9Mi;v93#~2tGSpGu+kj=nc+gRwjAH;$JW(Fq4zS(Gpt}> z1*&HO*~GwLBRJi`fl-^0b$X5iqZQZxPYpo(ftUqi)h{t_pjECwD}Ywbf{57wodCkN F>;Rc-M3Ddh diff --git a/database/undo_001 b/database/undo_001 index 8fff12a87430cb40152493e9981fff8673da5049..d332e2c512b67ec13ee17d2317e2018ef1c0616f 100644 GIT binary patch delta 2019 zcmeHH`&U$D6utKjGK1pG0I8!$NJ&wFs42bx4V2D6>(#|Bn_(kr1)?{J zA-?^QSz{HgyUp#q9HGF{sLwPCyhb3cSvNN453pf&x$&^OP{De1LhYxj*GGJg{G_4E zLz247qgA3G^Mv!;okpNftbt9mfu7KuNs5yk*PwN$&tc1@cc5K1N}*dJ4oCu|8zd3p zgt#C{knWHkkYq?th#TU8cp)i}R7e`+BuFnvZ%7}A57HOX50Vb)56OU>49SEHfMh{V zft(5%2+4+=200y)133e7CgdzgE+h{!2$ByO3>g9$3OO4x3^E*202u)p2^j?$4H*L| zgcL!FA!8xZBqc0dwP~(Lt%ob_W0z`1XQjQp{fK6yw51lPtXq|q-k18TWsR7iZ{ChmX=y@k*0N^GD}<3tCh(uR+hgs&#GKr z;pw&@d1gwRTH@V#F58<81zO`w8HUH0+I4LDlt|&^kqP<~O^Z#gOwZK>$xR>}1Fx-+4A$@p=G zN6lHThr+*bAsAI`VcFtWa7wFBe8QECn!^DBk5Ly44m8SH4YVpy+(o4Hl@r(t1c|w zl-*JOKO8FRvIez1gO>y^4NeVC3tkqSzOmZ$g?DYuQ)|2~HilTV4`_A#R@ZwCeM4kk zr7!F^`&)CedOP)UOP#FC!h_orql@dR%|R}kZ{xvga0WONoCVGXF9&PDE5JG6TyP$E zC3qD$A6x)l4K4&1fs4T<;8O4!a2a?lcpZ2>XoAbZTJQ!i2;K++41qU+E5McD&EP8V z7VuW^Ht=?^4qOd}!8^bRxCXSqwcwrLI&eLB7kD>#54ZuW2OGe9!TZ3CU?bQBZUQ%h z_k$0B4}x33hrq4iHt=C^JGcXE1|I=;g1f*d_$c@o_&E3k_$2rg_%!$oNU#Om4L%D# z2krq|!RNsjz!$-nz?Z?j;49#(;A`OP;2YqZ;9KC^;5*>E;CtZv;0NG`;6Csp@MCa4 zcmO;Iegd|EpMsx(pMzh3UxJ6g!{Aro*Wfqcx8Qf+5%7EPDEI^TBlr{eGx!U54Ez=R S4LlD14*miD37%+TyZi;ublnC3 delta 1624 zcmeH{`pI5QrToeh#1#GWTt11%P@sut@@?4tf(fssw6^o)9DkYWSpiW za+%VkNNM79_th1Zq^nfYl?v%L-I(^qtkw7%de?fN_g&BWe!tKAKHqn5-}j?_FumO2 zV^>AO;q+e}#&DZaQn9(r>*yRR%j@SXTRX*doWse3PRptVPH|o|WQ2$k!<@7wM#<9gY0r22#@xc@RgSx|N81n`Tz0S)B%e6X!j)tg=l6}=!238Nt z#Oh-Wuqf6L%fcFAjj}tX z4m%xdk9EL0VrO8Tu+G?-SQo4-mV(ueH+B|wHr5C0i}l0K!TMtZuye72 zST2@_orhVaiURY7%-*pzkjkz-Te!L#4lh3@Wd)ww zZT3;Aaj6PFe^TSNjUt)HF6XAR^9usuP$VSb7vK-WAC6y$e?I;N_#^N~;*Y{Fs`N+u zImO9&GlP1={#!3J{rK)UG3UbaoFcD$@R**d$u?$5s+lvUFtyS;OsI;vdvcR8cSJN4 z3(3Lzsm?u;{y*%g+lXF$5|<>#CB`Q%OwxBoB zTj*`H6}^MDp?A@C^d5R2eSkhhAEA%Y4)h7yi9SW2q0iAS^aa|DzC>T4uhBQ?Tl5{; wgZ85D(GTcHv=8k^2hdOGAo>~of__E6q2Ez8`UCxm{z8AFf6yUxxKcItFZx8EUH||9 diff --git a/database/undo_002 b/database/undo_002 index 5effa03db7c651a12810bad24d0ec2404e36aaab..f0731ad05d6116fe27d77d1e570c102b15dee208 100644 GIT binary patch delta 2392 zcmZuy3v?V+8J?M)eRQ`;(>E=P&2FP<0fm(=Rv!vTj%PtgjD-~O-O{GR_Dp4tD z`HAHVP({|*UJ%d%B|HR4t+!{+jrKc~{BRAXMz@CamP}j>Ux|?l?$V71T5BDs^XQ>lm#(p)fjr!~y9Srf z%7kc~Yr`wDaGwKnmUp#v#MK-EvGNtE)3PoKJ-!|r5TpW937HKE zL#iOvkQzuWr*8hSP}g=-_14VytE=VmlA)M{)%sx9 zmdr+X*LCOl99nkk(XQcWEE;;d==`&7nW>d3S0Q#ascwmdj8s^yWLM0fYe+ZNtCGE4 zewSM>$y8k*JJi|j2-x*2A4)!cmn}4I}D^2dInP0s>n zDti(hQyZ2ndLi@5kyvRUoT|=IQ#G2_Fp`&X?p4Pe+-;?e?xg*eI4j<|eYX2teXV-! z>Fx?O!(+KsOtZOn_z@rn%PD`mEdMsMy1$y7n%t+UB#| z!A5uEXi_t>M|?`(SUf>h8x1R{iVSN(u(7vkQ$ll@wYI=1lg8eu$n9GenMJmhcfx9B zY^h`AQ4zx`4>pcAjU_d+(9e~ctP)Vgu_b3@DRkMCrcKR*3C&$-+_dQ(D1NW*$?j8) zTjuy<&Bv3Pr_j<|Qoz5~w2IXw`xk}tDW_GMSFO9Ir+KiYFQIu0eVYd-^NJ=cpUfU; zc9(hn@s^WG%~$B_p75F6IxNBc4YTtkYCB-Ix`>l9CfqT@(0_j_7zF3xKP}8&p5ACt?^kMWo?Jsk0i7i zh2m{$^)ua-&RbquoUO;H>T2^8uJcjI->C>=9=>k&Kb@2pxW9KUmQ-A<#bX(O{-7m z{ws1Ta}VWOwf^W8nl{T>tBE^Zcv|sFwc)vi9q#_=SJtQPq@@+zPA(^h5nukI4XMm2 zz)K={Dqe6yd*bV&T=GQ*ynzBT@cC!7l9_$hn0;eoHP>!jcwu;*p#ega$%eiG~hH-Mi4uLAqQPlKNUKMP(BZUnCZuLVB`ejeNeUIz+zJvab< z0o)AU00JBYZv<}wZw9x3Uj)Ad-U5CZycJA?Ujc`}uYy~_ZJ+{g18)bv2HpYQ3El;M z9sCBk9lRU72fP>D0p14=gZG0EfDeKXf!_ol1|I>x1wIOnfIGo&gS)`*fRBOS1vB9H z!0&^PgFgUwgHM2az#oDH_k#PtAAwJTKL+=MKLMWtp9Y@+p9Oyk{tSE${5kkM_zUot z;IF`6gTDa}fCs_ff-iu-0}p|}2M>csz!$-nz(0V01YZXK1Re$d4E_cDEBFfdD)={W t6#P4Q4EzW9Pw+MHU*NyN*TFZyH^H~SM0rP!x!Yc#ZKxY=|)~ zHUz~`1Q8=X8}ehthKL0MiUkW%j0Fi6aD7h>c*2}BbLPza_xtDGJ7yL!e@2(AT{<)+ z7*4N6!5VDCQwL3(5zTj2EG=o{I16jboOvaYKp0$9xVTP@8*-x)d(O%A)h+$GcZ4fu zHC9KR9$wr+k@Qe$W~~#NUyvI}gR3!K;d)=2wpZ_O!W9kOy{JMx)16YUY}()j1(84& z9M28A(JkXgPw`c)nuL_E+LnmA;lhajVjt#Yd1bD%qjgn5GBwnt{y)!15E%A_SQu-D zHOE?DsaOQt4{M2~Vf$mPumiBxSUPqf)&^^fWnh`uLD<1q6l;gI$Fi_&EC=g=9fIXz z9kD~PPFNn6j~#{`jvaw@#=2l#v2Iv*tOr(r6=FwXM`1@}$6&`|J+b4ktu{5ZGcyu!15Rb%%6^q6&5gUoMHNFf_)hKq_X$4E ztj2wv@~iXLHFe6{=oP#1<$1nSr>%k0%tZC5_yFH1t9`!!8(?~`9GL0j+c(8Gbl(@B zxif23Q+%f56AAdFXlc0(ud>gkDC=(JN>L5?YB~MX#aP(HrPZ z^cGr$-bU}BchP(3eY6^VfYzW7(OUEo`WStJK1J)$dQ^utppED=^f}suzCd51uh7?M zGx`R7i@rnOqb;Z&{eXT%ThULb0sV}ALBFEk&^Git+Kw904)h256a9t$Mmy0i^iPeF F?!S#1cM1Ri diff --git a/temp.pdf b/temp.pdf index 5c1f6cb6..6d68807f 100644 --- a/temp.pdf +++ b/temp.pdf @@ -17,17 +17,17 @@ endobj endobj 4 0 obj << -/BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /ASCII85Decode /FlateDecode ] /Height 100 /Length 1025 /Subtype /Image +/BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /ASCII85Decode /FlateDecode ] /Height 100 /Length 1071 /Subtype /Image /Type /XObject /Width 100 >> stream -Gb"/`bAuB'$j6,$5OI6(.;K2G.':\dJiCr;Gk?H4FFs=pRRncIR22B/nOV>_3d5K!P>rOCFsNsE?*A6lRm61B?eLldiRp=8390Pd,X+-(pVEKf@;]@1Q69[h#X8`I+@i0&K9&0duFEC^SRkd37Q'I=f\X/RU4.-G%H=,D5rLI4DCNGf,eLrGU5M>9TT743:4$/FRk=K02g5#-.-!3TMf,:GQ]+:\)\hB"5L>sZ-4<<.(=@"%+n%5"+e'-:7h1la;@J[-4,3oIq6398OUa%dYqILBV?\D[>Z%q%N8d/_WmP))P:fb4q=UDLrE)WKCfg;%Wc1/QYr`W@S!+dJ=a@\Z0B[aiGI6+jCe!_j-eLW4W1LcW0%5Y9;V,H3M,M1W%78m67hO0XJO%NPUPOD7r3oi>[[Ai32/nN#6r%_;O(G0*/K!8b%j69l4[V3Lp_"g^+Cc20/RAAY;-JG$B+o>iipWJH_>PBuPVfuA:\-=Gh3uALJ/h8!TXE\Q5,0_Z*:ASo]mC:>H<]pE#lK7:G;^r_!g?Hbgl*Df)PSKh"@\qmh.df'GK\[l>CV2)#m*#,lMmBXtn&`_;M/=`L!g'j2=LlV`$Nl:g1(PSKgriq&G:Sgnjr!nSeCYB;$*CMI(?m@[0^B_R^iHiL8u5II4Ys-W=&nhNLqEcendstream +Gb"/b8TFnf$j6,$:HR1X8-GC230ea(RqW4&]DQtd)Y5hT9#S<2R'&'gpTX!mlmK->]IX`N@_9*\>H*:Hbn"@jWPU-di4\Qg4g(ebYJ^G]W)Ju3h2,E>EP#FWBbu,nI1MsRQW5'l)cl[_p-,Rbmk(WP@C1q%YO/oJCU^tfX0(4O5-229g\WIZc(N&-I[nPg$3[I%F/lofW*)2a32$$!5+Zs$RGrL_u-_q:&4EXc("Z-LI$6_1Fo7U'5*mGY,V`O?jh*N3nKCHL@7#jUS]7H0"9O/F.7(Rq+Pe=(RJTT6.bA_7a^LAqZ_gRGJ17=joM!#tC4[lU`6l)pk-=h`JgCqRsJlG.S=]9_Gfq-F<1nLf0h"5=:!m@K:n_nD%JW&QU03eqBlEa&]0WAR;:_dJ$I"XNk<@dn4J#Dpsa6oKK?Im',KS[sOL9$@`G/bJ\S-@T[!#.]g^E'q\O[C2[fcV=\g]X5e>Ll.BE%@!*mSh:ki^bh]7cYPW'&G\[QQm67WHrW?9mnC;TL`F$E7UH5(o^&6RH5a4uZ*I^gA%T[eH+iGNIEi!K+*8jE6CXL=7mIeA*4$;O^nJZSKCC(O8:Sp,`Hh)[U0T!/PP8>EK>A&WS8G]04lK5nOR:KUcuYWC1XD!)a;#?gT~>endstream endobj 5 0 obj << /Contents 9 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 8 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /XObject << -/FormXob.09be740384c9e55854408d2289092f07 4 0 R +/FormXob.dedcbf51b54970828e09ce961fd66ee7 4 0 R >> >> /Rotate 0 /Trans << @@ -42,7 +42,7 @@ endobj endobj 7 0 obj << -/Author (anonymous) /CreationDate (D:20240625114453+00'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20240625114453+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) +/Author (anonymous) /CreationDate (D:20240625151653+00'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20240625151653+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) /Subject (unspecified) /Title (untitled) /Trapped /False >> endobj @@ -53,10 +53,10 @@ endobj endobj 9 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 440 +/Filter [ /ASCII85Decode /FlateDecode ] /Length 445 >> stream -GasbV?Vc;.'ZJu*'^&=f`nITnHW7Ic%k^?'#PZ;AE@A1$`Plb6_-uV6(/n,(\bC:J;l-ZSf+qVMDJTh\KIrd#hMQnS0F5Yu]t?kp02;UtT:]ldp-?mBeL.f=H"TB]&YO)c`iK5ZU,V1;TVV6A6/e&9dq8Oe[9:=gQQ)1KrhhS<#A0"b@^&UIF[j_~>endstream +Gas2F:K)m"&B4*cMK`$48s>LS8%%a6)69OW6'!i*MaF-Lm.B$?[+2O,3b0A;g#%.g$O(5tg>>=*gi*\"'U4/]TUtJ#hdaNo1Z.F,iPiOS69d^P;`BTn#e\(Zo*6NX0Z(Iqn9=B&?Q'"k*K?Ut0h-=;cXP.1RZ!uWXfP3f[9Fl:U$"$("G(EMYOWV!1)cm"DI?M%_<^dRDXr>RK[6ktC=H-2/2nD1GG3&o5V$qfp#Z#;Tb1K_YQSTZ\6-jJZ;FbB3oS!oWD]g?oeEPe9'ZO]V+Z`+k-I;)T$!dPR4MW$&B#Wlt,"0"^^a]bX]il&=u#g-)a'?OeAmS'jLT,eBVL.%Tendstream endobj xref 0 10 @@ -65,15 +65,15 @@ xref 0000000114 00000 n 0000000221 00000 n 0000000333 00000 n -0000001549 00000 n -0000001815 00000 n -0000001883 00000 n -0000002179 00000 n -0000002238 00000 n +0000001595 00000 n +0000001861 00000 n +0000001929 00000 n +0000002225 00000 n +0000002284 00000 n trailer << /ID -[] +[<6b30cc1ade908a7927c384b5f230df56><6b30cc1ade908a7927c384b5f230df56>] % ReportLab generated PDF document -- digest (http://www.reportlab.com) /Info 7 0 R @@ -81,5 +81,5 @@ trailer /Size 10 >> startxref -2768 +2819 %%EOF