Payables Endpoint
The examples in this section are related to the Document handling via Payables Endpoint (see in Swagger).

Document Structure:
Every payables/receivables invoice might hold a document, which is located in a DMS. A document can be delete from an invoice.
This will only remove the document, but not the invoice it has been attached to.
This will only remove the document, but not the invoice it has been attached to.
#Code reference - GET.party_by_id
#Code reference - Create.payables_invoice
#Code reference - POST.payables_invoice
#Code reference - POST.dms_link_document
#Code reference - DELETE.payables_invoice
#Code reference - GET.payables_invoice_by_freeinvoicenum
[TestMethod]
public void REST_Payables_document_DELETE()
{
state = new ErrorState { passed = false };
decimal payment_amount = 4000.0m;
Party party = GET.party_by_name("Tamedia AG", manager);
party = GET.party_by_id(party.id, manager);
#region create_invoice
List postings = new List();
postings.Add(payment_amount);
Invoice_TO invoice_DTO = new Invoice_TO
{
party = party,
manager = manager,
payment_amount = payment_amount,
free_inv_num = "odyssey_2001",
vat_code = "",
hasDocument = 0,
isDebit = true,
isAuthorized = false,
text = "New Invoice",
date = DateTime.Today,
pay_method = "IBAN-CHF",
posting_amounts = postings
};
Invoice invoice = Create.payables_invoice(invoice_DTO);
state.passed = POST.payables_invoice(invoice, manager);
Assert.AreEqual(true, state.passed, state.message);
#endregion create_invoice
state.passed = false;
invoice = GET.payables_invoice_by_freeinvoicenum(invoice_DTO.free_inv_num, manager);
if (invoice != null)
{
string path = "../../data/invoices/QR_QRR_CHF_3003.pdf";
state.passed = POST.dms_link_document(path, "payables", invoice.id, manager);
}
Assert.AreEqual(true, state.passed, state.message);
state.passed = false;
invoice = GET.payables_invoice_by_freeinvoicenum(invoice_DTO.free_inv_num, manager);
if (invoice != null) {
state.passed = false;
state.passed = DELETE.dms_document("payables", invoice.id , manager);
Assert.AreEqual(true, state.passed, state.message);
state.passed = false;
state.passed = DELETE.payables_invoice(invoice, manager);
Assert.AreEqual(true, state.passed, state.message);
}
}
class DELETE{
public static bool dms_document(string area, Guid id, Manager manager)
{
string request = $"clients/{manager.getCurrentClient().id}/fiscalYears/{manager.getCurrentFiscalYear().id}/{area}/{id}/document";
var response = manager.httpClient.DeleteAsync(request).Result;
if (response.StatusCode != HttpStatusCode.OK)
{
ResponseDetails details = new ResponseDetails();
}
return response.IsSuccessStatusCode;
}
}
UNDER CONSTRUCTION
Link a document to an invoice in the DMS. Link document does also perform the upload procedure.
#Code reference - GET.party_by_id
#Code reference - Create.payables_invoice
#Code reference - POST.payables_invoice
#Code reference - DELETE.payables_document
#Code reference - DELETE.payables_invoice
#Code reference - GET.payables_invoice_by_freeinvoicenum
[TestMethod]
public void REST_Payables_document_upload_and_link()
{
state = new ErrorState { passed = false };
decimal payment_amount = 4000.0m;
Party party = GET.party_by_name("Tamedia AG", manager);
party = GET.party_by_id(party.id, manager);
#region create_invoice
List postings = new List();
postings.Add(payment_amount);
Invoice_TO invoice_DTO = new Invoice_TO
{
party = party,
manager = manager,
payment_amount = payment_amount,
free_inv_num = "odyssey_2001",
vat_code = "",
hasDocument = 0,
isDebit = true,
isAuthorized = false,
text = "New Invoice",
date = DateTime.Today,
pay_method = "IBAN-CHF",
posting_amounts = postings
};
Invoice invoice = Create.payables_invoice(invoice_DTO);
state.passed = POST.payables_invoice(invoice, manager);
Assert.AreEqual(true, state.passed, state.message);
#endregion create_invoice
state.passed = false;
invoice = GET.payables_invoice_by_freeinvoicenum(invoice_DTO.free_inv_num, manager);
if (invoice != null)
{
string path = "../../data/invoices/QR_QRR_CHF_3003.pdf";
state.passed = POST.dms_link_document(path, "payables", invoice.id, manager);
}
Assert.AreEqual(true, state.passed, state.message);
state.passed = false;
invoice = GET.payables_invoice_by_freeinvoicenum(invoice_DTO.free_inv_num, manager);
if (invoice != null) {
state.passed = false;
state.passed = DELETE.dms_document("payables", invoice.id , manager);
Assert.AreEqual(true, state.passed, state.message);
state.passed = false;
state.passed = DELETE.payables_invoice(invoice, manager);
Assert.AreEqual(true, state.passed, state.message);
}
}
class POST{
public static bool dms_link_document(string path, string area, Guid id, Manager manager)
{
var content = new MultipartFormDataContent($"Upload----{path}");
FileStream fs = File.OpenRead(path);
content.Add(new StreamContent(fs), $"{area}_document", Path.GetFileName(path));
string request = $"clients/{manager.getCurrentClient().id}/fiscalYears/{manager.getCurrentFiscalYear().id}/{area}/{id}/document";
var response = manager.httpClient.PostAsync(string.Format(request), content).Result;
if (response.StatusCode != HttpStatusCode.OK)
{
ResponseDetails details = new ResponseDetails(response);
}
return response.IsSuccessStatusCode;
}
}
UNDER CONSTRUCTION
Submission of a file stream
Download and store a document from DMS on the local file system.
#Code reference - GET.party_by_id
#Code reference - Create.payables_invoice
#Code reference - POST.payables_invoice
#Code reference - POST.link_document
#Code reference - DELETE.payables_document
#Code reference - DELETE.payables_invoice
#Code reference - GET.payables_invoice_by_freeinvoicenum
[TestMethod]
public void REST_Payables_document_download_GET()
{
state = new ErrorState { passed = false };
decimal payment_amount = 4000.0m;
Party party = GET.party_by_name("Tamedia AG", manager);
party = GET.party_by_id(party.id, manager);
#region create_invoice
List postings = new List();
postings.Add(payment_amount);
Invoice_TO invoice_DTO = new Invoice_TO
{
party = party,
manager = manager,
payment_amount = payment_amount,
free_inv_num = "odyssey_2001",
vat_code = "",
hasDocument = 0,
isDebit = true,
isAuthorized = false,
text = "New Invoice",
date = DateTime.Today,
pay_method = "IBAN-CHF",
posting_amounts = postings
};
Invoice invoice = Create.payables_invoice(invoice_DTO);
state.passed = POST.payables_invoice(invoice, manager);
Assert.AreEqual(true, state.passed, state.message);
#endregion create_invoice
state.passed = false;
invoice = GET.payables_invoice_by_freeinvoicenum(invoice_DTO.free_inv_num, manager);
if (invoice != null)
{
string path = "../../data/invoices/QR_QRR_CHF_3003.pdf";
state.passed = POST.dms_link_document(path, "payables", invoice.id, manager);
}
Assert.AreEqual(true, state.passed, state.message);
state.passed = false;
invoice = GET.payables_invoice_by_freeinvoicenum(invoice_DTO.free_inv_num, manager);
if (invoice != null)
{
state.passed = false;
state.passed = GET.dms_document_download_store("payables", invoice.id, manager);
Assert.AreEqual(true, state.passed, state.message);
}
if (invoice != null)
{
state.passed = false;
state.passed = DELETE.dms_document("payables", invoice.id, manager);
Assert.AreEqual(true, state.passed, state.message);
state.passed = false;
state.passed = DELETE.payables_invoice(invoice, manager);
Assert.AreEqual(true, state.passed, state.message);
}
}
class GET{
public static bool dms_document_download_store(Guid id, Manager manager)
{
string request = $"clients/{manager.getCurrentClient().id}/fiscalYears/{manager.getCurrentFiscalYear().id}/payables/{id}/document";
var response = manager.httpClient.GetAsync(request).Result;
if (!response.IsSuccessStatusCode)
throw new Exception($"{(int)response.StatusCode} {response.ReasonPhrase}");
Stream _stream = null;
try
{
_stream = response.Content.ReadAsStreamAsync().Result;
}
catch (SystemException ex)
{
string message = "" + ex;
}
var fileName = response.Content.Headers.ContentDisposition.FileName;
fileName = Path.Combine("C:/temp/", fileName);
using (Stream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write),
contentStream = response.Content.ReadAsStreamAsync().Result)
{
contentStream.CopyToAsync(stream).Wait();
}
return response.IsSuccessStatusCode;
}
UNDER CONSTRUCTION
UNDER CONSTRUCTION
Load pending (unprocessed) documents from DMS
[TestMethod]
public void REST_Payables_pending_documents_GET()
{
state = new ErrorState();
List documents = GET.dms_pending_documents("payables", manager);
if (documents.Count > 0)
{
state.passed = true;
}
Assert.AreEqual(true, state.passed, state.message);
}
class GET{
public static List<Document> dms_pending_documents(string area, Manager manager)
{
List docs = new List();
string request = $"clients/{manager.getCurrentClient().id}/fiscalyears/{manager.getCurrentFiscalYear().id}/{area}/documents/pending";
var response = manager.httpClient.GetAsync(request).Result;
if (response.IsSuccessStatusCode)
{
var documents = JsonConvert.DeserializeObject>(response.Content.ReadAsStringAsync().Result);
foreach (var document in documents)
docs.Add(document);
}
return docs;
}
}
UNDER CONSTRUCTION
[
{
"fileName": "QR_QRR_CHF_3000.pdf",
"modifyDate": "2022-03-23T12:57:00",
"id": "UEsDBBQAAAAIAK9.qVTlsjm._____w0KAAAEAAAAREFUQd1WW2_iRhR.r9T_YPGcwWN7wDYylggouyghYQnaVlqt3BnPMfGuGVN73EB_fQffSZD2qaq2ghefy3cu_s459p5Byljs8t8yejhA9hQtG4n_6y.a1uo1eTrAdLBNDzSZPyxvh7c0h4c4l0vxVxqHsFg9N45_GF..dHb3IHh6vIsTyNdZejw1Vjfa9mk9e9C2Cje_0T5DlsepmFpDfP7daPMikUUGUwGFzGhyo60LlsThPZy26XcQUxaCSTgLjRGzGCP469dBmbHKea2wUrFJE7iLIeGPdA_._SaoxCC.p0Kmnn7N6lyyAqhreiz2FwCbXfCYefo1be34BvMzTQoVOgMeyzQD8S5oZfDO2Z_XLhVe362psUvCx_2UGv08iUHIi_RXVHAqpKe_1dXxK_G5W5p.BabMtdNUXW1L02YsoTtIMxmYnl4qa9iSJAvfcjAxDYshwwgBgWsYyAEnQhjj0HQjK3RN19Nr455rCVXSKbiLBRV_syJ8eaGKHGJX2feDKYpFimrLhU8Y5dGY28hysY2IDRQ5Lg8Rc.mYmTAGhrlqbGtfhzwTtQT8tAk.bTbB_ONdYKkchwceeXqrra1XKY.j04JK8LGlm.qPTVMzzMnInmD1Xnr6Fl8xsmxlXvdY8W2WZfT0FJVvq2rzcZ.IfHLM.XTwIuVhouuvr6_DV2uYZjsVBBv676uH5_AF9nSgNcbxj41RLHJJRQjNsJR87wK3OXXyshtqfFr6dKSqajqbqiIqLq9SEdzG39IimH0IZuulp1fyC9MNUP4kkpMf0SQHT2.fL6xUsyVk81So6VGrwYc_C5qU7.BC3PmcdU13e4V4V6Uq466Q99uh03X4bZH9if4ZysOGYjDGLrIcaqsB5A6iLjbV7I0wi4hpq0Gsm9cbpov3eiY2whYyrW1H75.odgPxkTtGxBkxREMYIz4mY2JTV1Vv_19rV3eyvr3LRUAiGkYMOKIcE0QIx0jtQRdh2wB3NDJCm4Q_aARjNrFGZ_Y4lCIIzzs8wvzNDv.PWeHp79Zpc816.6HZvp46FRGnBmFjNR4mpoi4loGo7TBkR6FjRabthsRQN3bRwDwXbClh30B0C1wpygOmlO1S_vc2uHbM44mIk.lAZgUMutOsXyTo6c0nl8q_e7jywfcPUEsBAjMAFAAAAAgAr36pVOWyOb5fAwAADQoAAAQAAAAAAAAAAAAAAAAAAAAAAERBVEFQSwUGAAAAAAEAAQAyAAAAgQMAAAAA"
},
{
"fileName": "Rechnung_24.JPG",
"modifyDate": "2022-02-22T09:33:00",
"id": "UEsDBBQAAAAIAK9.qVRWgLVW_____wkKAAAEAAAAREFUQd1W2Y7iVhB9j5R_sHjui68XvCCDRIN6xHTTjWg0iTQakbuUwRlzTbykIV.fwitMI81TFM0IXlzLqcWnqhy8Qp5Hapv9lrLDAdKXcN5Ixr_.ommtXstPBxj11smBxdOn.X3_nmXwFGX5XP2dRAJmi9fG8Q_j8.fO7hGUTI4PUQzZMk2Op8bqTlu_LCdP2hpxszvtE6RZlKiR1afn3502LeK8SGGkoMhTFt9py4LHkXiE0zr5CmrEBZi25MIYcItzm3750iszxpyXiJWoVRLDQwSxfGZ7GD.uNpUY1NdE5Umg37I6l4wAdU3Pxf4KYLXdPKeBfktbO36D.YnFBYZOQUZ5koJ6F7QyeOc8ntYuFd6lW1Njl8SYXqbU6KdxBCq_Sn_BlGQqD_RvdXX8SnzulqbfgClz7TRVV9vStAmP2RaSNN.YgV4qa9iSJLOx5VHbNCxODEMAAd8wiAdeSCilwvRDS_imH.i18YVrCVXSafMQKab.4YXY7RiSQ20r.8tgSLEQqTafjW3OZOhIl1g.dYntAiOeLwXhPnO4CQ5wKrGxrX0d8kzUEnAFYqcwxsa0.x.XHwK91dSWi0RG4WnGchhTUzfxT01To_7QsoYU38mFvsVGNpZtzOr.ItcmacpOL2H5pqoWH_exyobHTI56uzw_DHX97e2t_2b1k3SLQaih_754ehU72LOe1hhH3zcmkcpypgQ0g1JyvQvc5tTJy07g6LTU6QhV1XQ2xSIqHi8StbmP_kyKzeTDZrKcB3olvzJdAZMvKj6NQxZnEOjt85UVNjuHdJoonBxcC2P4q2Bx.Q6uxJ3PWdd096KQ4KYUM.4Keb8ZOl2H3xZ5Oc0_QnnUwAmj1CeWx1wcPukR5lMT525AeWibLg5h3byLQbp6r2diE3QxzXVH7x.odoPIge8Q2xtwwgQ4RDq2Y7vMx.rdn7V2vJH13Z3PNnbIRMhBEiapTWxbUoI70CfUNcAfDAzh2uI7jXCEJwA8RnBbWwTEeX.HSKvr_f0_syLQ363T5pJd7Idm.wZ4JkLJDJs7OB4mZcT2LYMw1.PEDYVnhabrC9vA.zprYF4LPs9h30B0CxwV5fFCZbuU_7sNrh2zaKiieNTL0wJ63VnWrxIM9OZzC_PvHm587P0LUEsBAjMAFAAAAAgAr36pVFaAtVZZAwAACQoAAAQAAAAAAAAAAAAAAAAAAAAAAERBVEFQSwUGAAAAAAEAAQAyAAAAewMAAAAA"
},
{
"fileName": "QR_QRR_CHF_3000.pdf",
"modifyDate": "2022-02-22T09:03:00",
"id": "UEsDBBQAAAAIAK9.qVRiFC6._____w0KAAAEAAAAREFUQd1WWY_aSBB.X2n_g8XzNG4f2BgZSwxodtEMM4RBSaQo8na7y4wT02Z97EB.fQrfZJDytFplBS.u46vDX1XZfYY8j.Qu.5CywwHSp3DZSLzff1OUVq_kpwNMB9vkwOL5w_J2eMsyeIiyfCn_SaIAFqvnxvEv7dOnzu4epEiOd1EM2TpNjqfG6kbZPq1nD8oWcbMb5T2kWZTIqTGk59.NMi_ivEhhKqHIUxbfKOuCx1FwD6dt8hXklAegm4IH2ogbnJv08.dBmTHmvEasRG6SGO4iiMUj24N3v_ErMcivicwTV71mdS4ZAeqaHov9BcBm5z.mrnpNWzv.gPmexQWGTkFEeZKCfBO0Mnjj7M1rlwqv79bU2CXh0X5KjX4eRyDzi_RXTAomc1f9UVfHr8TnbinqFZgy105TdbUtTZnxmO0gSXNfd9VSWcOWJFl4xpiaumZwomkBEHA0jYxhHBJKaaA7oRE4uuOqtXHPtYQq6eTfRZLJb7wIXl4YkkPuKvt.MKRYiFRbLjyTMxFawiaGQ21i2sDI2BEB4Q6zuA4WcCqwsa19HfJM1BLw3cZ_t9n48z_vfANzHB5E6KqttrZeJSIKTwuWg0d1Vcc_1XWFOhNqTCi.l56.xUdGlq3M6h4j32Zpyk5PYfm2qjYf97HMJsdMTAcveX6YqOrr6.vw1Rgm6Q6DUE39uHp4Dl5gzwZKYxz93JhEMsuZDKAZlpLvXeA2p05edgPHp6VPR6qqprMpFlFxeZVI_zb6khT.7A9_tl66aiW_MN0AE08yPnkhizNw1fb5wgqbnUM6TyROD64GD_4uWFy.gwtx53PWNd3tFeJelWLGXSFvt0On6_DbIvsT_SuURzVkMKUOMcbMxgEUY8IcquPsjSgPTd3GQayb1xumi_d6JjZBF13fdvT.hWrXiBg5FjHHI05YABYRlmmZNnOwevv_Wjveyfr2Lhe.GbIg5CAIE9QkpikowT3oEGpr4IxGWmCbwU8aAYZlCMMQhINjEAjOOzxEWiG3ejv8P2aFq75Zp8016.2HZvu6eCpCwTSTWzgeOmXEdAyNMHvMiR0GYyPUbScwNbyxiwbmueDLHPYNRLfAUVEeMFS2S_nf2.DKMYsmMoqngzwtYNCdZvUiQVdtPrkw_.7hygffd1BLAQIzABQAAAAIAK9.qVRiFC6.YAMAAA0KAAAEAAAAAAAAAAAAAAAAAAAAAABEQVRBUEsFBgAAAAABAAEAMgAAAIIDAAAAAA--"
},
{
"fileName": "QR_QRR_CHF_3001.pdf",
"modifyDate": "2022-02-22T07:21:00",
"id": "UEsDBBQAAAAIAK9.qVQfq4n0_____7oLAAAEAAAAREFUQdVW247iRhB9j5R_sHiext2.GxkkBjQbNMMMy6DdSKuV0.0ug3dNm_iSgXzP_sn.WBpfYQft5CWKELy4q.pUnerqqvKeIc8jsc4.pnS3g_QpnDUno19_UZRWruSHHQx7q2RH48nD7LZ_SzN4iLJ8Jv5KogCm8.fG8A_y6VOndw.CJ_u7KIZskSb7Q6N1o6yeFuMHZSVxsxvlA6RZlIih3sfH340yKeK8SGEooMhTGt8oi4LFUXAPh1XyFcSQBaAZnAXEZDpjBv78uVdGLGNeSKxELJMY7iKI.SPdwuh.6VfHIL4mIk889ZLWkbIEqDk9FtszgOXaf0w99ZK0NvwB8wONC.k6BR7lSQrildNK4ZXxaFKbVHinZg3HLogRPg2pkU_iCER.Fv6cCk5F7qk_ymr_1fExW4p6AaaMtZNUWW2pKWMW0zUkae5rnloKa9iySKYj3cGGRnSGCAkAgUsIcsAJEcY40NxQD1zN9dRa.cS0hCrLyb.LBBV_syLYbKgsDrGu9E.dyRILZanNpiODUR5a3Ea6i21k2ECR4_IAMZdaTAMLGOYysa1.7fJYqCXg.6X_frn0J7_d.TrGpL_joae20lp7nvAoPExpDiOsqZr8Y01TsD3QyADLezmRt_iyIstUZnWOZb2N05QensLytqo077exyAb7jA97mzzfDVT15eWl_6L3k3QtnWCi_j5_eA42sKU9pVGO3lZGkchyKgJoHktZ753jNqbuvMyGfD5t.XRFVXE6qkoSVS3PE.HfRl.Swh._88eLmadW52eqS6D8ScSHUUjjDDy1_T7TksnOIZ0kQr4e2RpG8GdB4_IOzo47m6Osye4JEe_iqYy4I_K6O3SyDr8lefqir4TeO8iCzfdvYZ59oRvZxH7K71jFV3NxH79_26RlM_gpJ_mQr4MSJrIlYuwi3aG27JbcQdTFmmyUJmahodmya_6L.0PSRNNWXS.6hkKtuRPETddChmMyRAOwELcMy7CpK9nbb3MnCDuIWCvsDDSz7MPXwF0uNfWiNJv6RkiDkAFHlGMDGQbHSA4tF2GbgGuaJLCN4I1EmGHAbNMhyGKhHLisHLgS8Xzg_s.Z8dRXs69ZPU6aeTMqPTnXQ06JwSz5PDRMkeHqBFHbYcgOA0cPNdsNDCIXomkD81ywWQ7bBqKbtlJQbhtS2E7Q_27cKvssGogoHvbytIBet0epZwF6arMfy_i7jwvb.T9QSwECMwAUAAAACACvfqlUH6uJ9JQDAAC6CwAABAAAAAAAAAAAAAAAAAAAAAAAREFUQVBLBQYAAAAAAQABADIAAAC2AwAAAAA-"
},
{
"fileName": "QR_QRR_CHF_3000.pdf",
"modifyDate": "2022-02-22T07:21:00",
"id": "UEsDBBQAAAAIAK9.qVRYvja8_____.cKAAAEAAAAREFUQdVW3W7aSBS.X2nfweI6g8djg21kkAgoXZSQUILaSlXlHXvOgFszpva4gX2efZN9sR38Cwna9KZaRXDj8_.dOX_eI0gZiXX2MaW7HaQPfFZTRr__pmkNX5OHHQw7q2RH48nd7Lp7TTO4izI5Ez.SKITp_LFW_NP4_LmVuwXBkv1NFEO2SJP9oZa60lYPi_GdtlJ2syvtA6RZlIih2cXH35U2yWOZpzAUkMuUxlfaIg_iKLyFwyr5BmIYhEAsFoRGLzCDwMJfvnSKiFXMC2UrEcskhpsIYnZPtzC6XfolGcS3RMjE0y9JHSErAxWm.3x7ZmC59u9TT7_ErRSf2fxA41y5ToFFMklBvHBaCrxQHk0qldLeqVqNsQ1ihE9DqvmTOAIhz8KfU8GokJ7.nFf5L8nHbGn6BTNFrC2nzGoDTRsHMV1DkkqfeHrBrMwWRTIdmQ62iGEGyDBCQOAaBnLA4QhjHBKXm6FLXE.vhE9UC1NFOfk3kaDiryAPNxuqikOsS_lTZ6rEuCq12XRkBZTxPrOR6WIbWTZQ5LgsRIFL.wGBPgSYqcQ28pXLY6EWBt8v_ffLpT_548Y3VYzdHeOe3nAr6XnCIn6YUgkjTHSi_pgQDdsDYgywepcTfmNfVWSRyqzKsaq3cZrSwwMvXqtM834bi2ywz9iws5FyN9D1p6en7pPZTdK1coIN_dP87jHcwJZ2tFo4el0YRSKTVIRQN0tR763jJqaWXmRDtU9TPm1RlZiOogpEWcvzRPjX0dck98fv_PFi5ukl_Ux0CZQ9iPgw4jTOwNOb7zMplWwJ6SQRqnvUaBjB95zGxRuckVudI6_O7gkQ7yJVRdwCeTkdWl5rvwF52tFvBN47yMLNP39zmX2lGzXE_hPfsYrfxsNhQ_Umxi4yHWqr0cIcRF1M1FTp4YBbxFYj5ifAIqVCyKpt3LfwqhV2A7Ge20eW0wsQDaGPWN_qWzZ1FXr7dewGUtkjzsowBsQuhtZbwK4ugOqqmE19i9OQB8AQZdhClsUwUhPeRdg2wO31jNC2wlcS0ecuVkcERxYnGEFYbCduPttO_3NmPP3Foqj39Mnkq_eKp5YgZ9Swgr5qD4IpslzTQNR2AmTz0DE5sd3QMtT1MK3NPObBTMK2NtGuJsUoVrNiNuvm1.0mbZ9FAxHFw45Mc.i0R4d.FqCn18ekir_9uHDK_gtQSwECMwAUAAAACACvfqlUWL42vIIDAADnCgAABAAAAAAAAAAAAAAAAAAAAAAAREFUQVBLBQYAAAAAAQABADIAAACkAwAAAAA-"
},
{
"fileName": "Q3_1.JPG",
"modifyDate": "2022-02-22T07:21:00",
"id": "UEsDBBQAAAAIAK9.qVS7MNjr_____68LAAAEAAAAREFUQdVW227iSBB9X2n_weI5jdsXMEYGiYCSYRMSNkEzK41GbLe7DJ4xbdZub2C_Z_5kfmwLX2GCJvuyGiF4cdWp6jrV1VXlPYNSoVylHxK23ULyGEwryfDXXzSt1mtqv4VBaxFvWTS.n163r1kK92GqpvLvOPRhMnuuDP80Pn5scHcgRby7CSNI50m821eoK23xOB_dawv0m15p7yFJw1gOrDY9_K60cRapLIGBhEwlLLrS5hmPQv8O9ov4C8gB98G0BfeNDrc4t.mnT608Yox5jr5i.RRHcBNCJB7YBoZ3T8tCDPJLLFXs6edQB8rooOT0kG1OHDytlg.Jp5_Tlobf.XzPogyPTkCEKk5Avjq0ALwyHo5Lk8LfsVnFsQliSI9DqvTjKASpTsKfMSmYVJ7.va48vxAfsqXpZ9zksTaaIqs1NW3EI7aCOFFL09NzZek2L5LJ0OpR2zQsTgzDBwKuYZAe9AJCKfVNN7B813Q9vQQfmeau8nJa3oSSyX945q_XDItDrgr88WFYYgGW2nQytDkTQVc4xHKpQ2wHGOm5wifcZV1uQhc4FZjYGl8eeSjU3OHv1tJo_za_9fRaVEJmsQiD_YQpGFJTN_FPTVOjTt80.hQv40hfO8UyzPOXlonFIhslCds_BvkVFbndbSKZ9nepGLTWSm37uv7y8tJ.sdpxssJDqKH_Mbt_9tewYS2tAodvg0koU8WkD9ULyYu8ObiOqZHnKcA3U9dMU0kFpwMUSRQFPIvl8jr8HGfL0e1yNJ96eiE_gT4BE48y2g8DFqXg6fX3CQqTrSAZxxKfDPaDIfyVsSi_gxNxY3PQVdk9IuKdlWLEDZHXLaHRNf5rksfP.ELo3ULqr799DVT6ma2xc_2Q36GKL.biPnz7uk7yDvBDTuN3N5dBiRrYByl1idVjDrZI0SPMpSZ2xw7lgW062Cr_w_0RNDHNRdOLLqFQS.4GER23S.xehxPmQ5eIrt21HeYie.dt7gbBNm.6C8PsUzfvw5fAHTeZcjuaTpZ2wPyAgyBMUJvYtqAEJ5WLxAxwOx3Dd2z_jURwN0CgsEi3E1ACPJ.yOPpOp.xPzoynv5p91b5x1MyrUenhMA8EM2zexedhUkZs1zIIc3qcOIHfswLTcX3bwC1oUrl5zvhUwaZy0UxbVOQrBirrCfr_jVttl4Z9GUaDlkoyaDXLk34SoKdXSzHG33ycWcn_BVBLAQIzABQAAAAIAK9.qVS7MNjrjQMAAK8LAAAEAAAAAAAAAAAAAAAAAAAAAABEQVRBUEsFBgAAAAABAAEAMgAAAK8DAAAAAA--"
}
]