Document editor import and export for Angular

Hi,

As per documentation, I have set up the document editor. Now I would like to achieve few functionality, 

Import:


1. On page load I would like to get data from database as a base64 and import to editor 

1. I would like to import word documents (.dotx,.docx,.docm,.dot,.doc), rich text format documents (.rtf), and text documents (.txt) 

Export:

Error:  Property 'save' does not exist on type 'DocumentEditorContainerComponent'.

2. I would like to save as a base64 into my database (in future i get it back again for some changes)

I have already Implement Web API to convert into SFDT. Could you please provide me an example so I can take reference and implement for my requirement. 

Regards,
Parth

32 Replies 1 reply marked as answer

SM Suriya Murugan Syncfusion Team June 7, 2021 07:09 AM UTC

Hi Parthkumar, 

Syncfusion Greetings! 

I would like to import word documents (.dotx,.docx,.docm,.dot,.doc), rich text format documents (.rtf), and text documents (.txt)  
Documenteditor requires a server-side APIs for the following functionalities alone, 
Opening word documents 
For reading the content from Word documents using DocIO and convert it to SFDT. 
Paste with formatting 
For converting the HTML/RTF format (received from system clipboard) to SFDT format content. Whereas plain text received from system clipboard will be pasted directly in client-side. 
Restrict editing 
For performing encryption and decryption logics. 
Spellcheck 
For validating the words and get suggestions for error words. 
Please refer to this link to configure the web service and set the serviceUrl property. 
  
We have server-side libraries in ASP.NET Core, ASP.NET MVC, and Java. But for now we recommend ASP.NET CORE or MVC library for server-side web API services which has no limitation at present. 
 
 
Export: 
 
Error:  Property 'save' does not exist on type 'DocumentEditorContainerComponent'. 
 
You can access save method from Documenteditor.  
 
Code snippet: 
 
container.documentEditor.save(‘Sample 
,’Docx’); 
 
1.      On page load I would like to get data from database as a base64 and import to editor  
2.      I would like to save as a base64 into my database (in future i get it back again for some changes) 
Please check below KB link which is in MVC and core platform which will save document in backend: 
 
 
 
You can modify this based on your requirement. 

Please let us know if you have any questions. 

Regards, 
Suriya M. 


Marked as answer

PK Parthkumar Kakadiya June 7, 2021 03:17 PM UTC

Hi Suriya,

Your explanation worked for me now I can save as a Blob and save in database as a string.

Now I would like to open database saved file in editor. for that I have implanted web API for JAVA as my backend in Spring. To convert string to ".sfdt" type to open.
@CrossOrigin(origins = "*", allowedHeaders = "*")
@PostMapping("/api/wordeditor/Import")
public String uploadFile(@RequestParam("files") MultipartFile file) throws Exception {
try {
return WordProcessorHelper.load(file.getInputStream(), FormatType.Docx);
} catch (Exception e) {
e.printStackTrace();
return "{\"sections\":[{\"blocks\":[{\"inlines\":[{\"text\":" + e.getMessage() + "}]}]}]}";
}
}
Here in request body it requires MultipartFile. I tried normal string and blob but it throws Bad request data from Frontend. 
this is how I got from database. Now I would like to open it in editor. Can you please help me, what kind of structure I need to send from frontend for this web API.

Regards,
Parth 



SM Suriya Murugan Syncfusion Team June 8, 2021 10:54 AM UTC

Hi Eren, 


 
You have to convert the base64 string to input stream and pass that to Load API. 

In front end, pass the file name like already provided KB link. 

Please check like that and let us know if you need code snippet. 

Regards, 
Suriya M. 




PK Parthkumar Kakadiya June 8, 2021 03:54 PM UTC

Hi Suriya,

You suggestion worked for me.

I have few query for document editor.

1. if I import big Docx. file in editor and save it in db as base64. When I again wanted to edit it and try to convert to ".sfdt" through Web API. It throws error of size exceed.
     How can I save this file? How can I increase the Size limit.  Show warning to User that file size is exceeded.

2. How does past with Formatting work.
     Like on pasting text do i need to call Web API?
     could you please explain process for pasting text and save in Database as a base64 string..

3. How does change track works?

Regards,
Parth


SM Suriya Murugan Syncfusion Team June 9, 2021 11:58 AM UTC

Hi Parthkumar, 

if I import big Docx. file in editor and save it in db as base64. When I again wanted to edit it and try to convert to ".sfdt" through Web API. It throws error of size exceed. 
     How can I save this file? How can I increase the Size limit.  Show warning to User that file size is exceeded. 
 
Can you please share the simple document for this document for testing purpose? So that we can proceed further and provide you solution at earliest. 
How does past with Formatting work. 
     Like on pasting text do i need to call Web API? 
     could you please explain process for pasting text and save in Database as a base64 string.. 
 
On ctrL+v clicked, SystemClipboard API wIll trigger. You can customize it based on requirement. 
 
How does change track works? 
Currently, Documenteditor Java backend doesn’t have support for track changes. We already logged the feature request for this. You can track the status of feature through below feedback link: 
 
 
Note: Better you can use ASP.NET Core or MVC which will work without limitation. 


Regards, 
Suriya M. 



PK Parthkumar Kakadiya June 9, 2021 02:37 PM UTC

Hello Suriya,

Thanks a lot for the support.

It seems like my implementation approach is still not suitable to the editor architecture.

Let me explain what i am doing.

1. to save documenteditor file in my database as a base64 string.
     
     Step 1: on save I get the Blob of the doc. with saveAsBlob() function. 
     step 2: I convert it into base64 to save in database
public saveAsBlob(): void {
this.container.documentEditor.saveAsBlob('Docx').then((exportedDocument: Blob) => {
// The blob can be processed further
let reader = new FileReader();
reader.readAsDataURL(exportedDocument);
reader.onloadend = () => {
let base64data = reader.result;
this.createOrUpdateContract(base64data.toString());
};
});
}
 2, To edit saved document from database which stored as a base64

     step 1:  I create Blob of base64 string
     step 2: create FormData with Blob to send to backend for .sfdt conversion


#documentEditorDefault [enableLocalPaste]=false [enableToolbar]=true
id="container" [locale]="locale" name="documentEditor" (keydown)="onClipboardPast($event)"
serviceUrl="https://ej2services.syncfusion.com/production/web-services/api/documenteditor/"
style="display:block; height:400px; min-height: 400px;">
convertVertragsForEditor() {
const blob = this.b64toBlob(this.buchungContract.vertragstext, this.buchungContract.vertragstextContentType);
const imageFile = new File([blob], 'sample', { type: this.buchungContract.vertragstextContentType });
let fd = new FormData();
fd.append('files', imageFile);
// this service is Java Web API given in documentation 
this.contractService.wordEditorImport(fd).subscribe(converted => {
this.container.documentEditor.open(converted);
});
}
this service make a post request to below API for .sfdt conversion. and I get .sfdt format response which I used to open in editor.
@CrossOrigin(origins = "*", allowedHeaders = "*")
@PostMapping("/api/wordeditor/Import")
public String uploadFile(@RequestParam("files") MultipartFile file) throws Exception {
try {
return WordProcessorHelper.load(file.getInputStream(), FormatType.Docx);
} catch (Exception e) {
e.printStackTrace();
return "{\"sections\":[{\"blocks\":[{\"inlines\":[{\"text\":" + e.getMessage() + "}]}]}]}";
}
}
So Now When I try to open attached word file it does import successfully and than I try to save it in my database. Than again I try to open than I send base64 to JAVA Web API.
which throws such error. 
{"sections":[{"blocks":[{"inlines":[{"text":Trying to output non-whitespace characters outside main element tree (in prolog or epilog)}]}]}]}

So this is the overall scenario of my implementation. I not sure this is the correct way according to Architecture. 
Also, globalization also not working.
I have attached the sample word file , video and code as well. 
Regards,
Parth

Attachment: for_document_editor_Issue_e32adc0b.zip


SM Suriya Murugan Syncfusion Team June 10, 2021 10:07 AM UTC

Hi Parthkumar, 

Currently, we are checking the provided document and reported scenario. We will check and update details on or before  June 14,2021. 

Regards, 
Suriya M. 



PK Parthkumar Kakadiya June 10, 2021 03:29 PM UTC

Hi Suriya,

Thanks for considering my issue.

I would like to use the functionality of tracking changes. As per your documentation, I need to implement Backend WebAPI in .Net . I implemented version 2.0 as per this link

When I try to put backend in docker it gives me error of version 2.0 is doesn't exist. 


So few things if it is possible to provide:

1. A working example of Angular with document editor and .Net backend connection (with changes track functionality ) . 
2. are you gonna release Java Web API with updated features?
3. Document editor with Localization example.

Thanks a Lot for support. 

Regards,
Parth 


SM Suriya Murugan Syncfusion Team June 11, 2021 09:52 AM UTC

Hi Parthkumar, 

Syncfusion Greetings! 

A working example of Angular with document editor and .Net backend connection (with changes track functionality ) .  
Front end Angular sample: 
 
Back end download sample in below link: 
 
 
 are you gonna release Java Web API with updated features? 
We have plan to include the missed feature in our 2021 volume 2 release which scheduled on end of June 2021. 
 
Disclaimer: The date for the feature implementation is tentative and not a commitment on our parts. 
 
 Document editor with Localization example. 
Please find documentation for localization: 
 
 
Stackblitz link: 
 

Please let us know if you have any questions. 

Regards, 
Suriya M. 



PK Parthkumar Kakadiya June 13, 2021 01:45 PM UTC

Hi Suriya,

Thanks for the information.

I do manage to set up .net Core backend API for Import, past with Formatting, restrict editing and track changes functionality. 

My main aim with document editor is to implement all this functionality.

1. For Restrict Editing

     - How does the entire process works.?
     - As more than one person can work on the document how can I bind value who can edit and who can see?
     
2. Track Changes

     - How does this process work?
     - In example, it show that you have to bind the changes of the other people as well.


     what value assigned as a track changes here ?
     do I need to save different version of the document who has made any changes.?
     
3. I wanted to save document as a base64 
     - which efficient way i can achieve ?
     - approach I implemented: I get blob value of the document and convert it as a base64 than save it.

4. How can I use the Restrict and track changes features with saving base64 in database?
 

     What I tried and achieved:
      1. I have setup the backend
      2. I wanted to save document as a base64 

Regars,
Parth




SM Suriya Murugan Syncfusion Team June 14, 2021 09:11 AM UTC

Hi Parthkumar, 

For Restrict Editing 
 
     - How does the entire process works.? 
     - As more than one person can work on the document how can I bind value who can edit and who can see? 
 
We need some clarification regarding your requirement. 
 
If your requirement is multiple user edit document similar to collaborative editing, Documenteditor doesn’t have support this feature. 
Otherwise, if you want to protect document with multiple user, Please check below sample in which we have binded two user. 
Similarly, you can use it. 
 
If above provided details doesn’t satisfied your requirement, can you please share the details description about your use case scenario? So that we can proceed further and provide you solution at earliest. 
Track Changes 
In provided code snippet, we set document name as ‘Track Changes’. 
 
To enable track changes in document editor, you can use UI level options by using Toolbar ‘ Track changes’ options which will enable/disable track changes options. 
 
 
Otherwise use, below code snippet to enable/disable track changes. 
 
 
this.container.enableTrackChanges = true/false; 
 
 I wanted to save document as a base64  
To use the document as base64, you have to save the document as Blob and then convert to base64 string. 
 
Please use the already used approach for base64 string. 
How can I use the Restrict and track changes features with saving base64 in database? 
If you save the document as base64 string, Documenteditor will maintain file level setting in base64 string.  
 
Track changes: maintain revision info with track changes enable/disable setting in document level. 
 
Restricediting: maintain protection info. 

Please let us know if you have any questions. 


Regards, 
Suriya M. 



PK Parthkumar Kakadiya June 15, 2021 01:46 PM UTC

Hi Suriya,

Thanks a lot for your guidance.

I do able to implement track changes functionality.

I followed the Localization example provided by you .

But I don't know what's wrong with my implementation.

I would like to localize in German.

In attachment I have attached. Please help me to find problem with my implementation.

Regards,
Parth  

Attachment: Document_Editor_Localization_6adbf4d2.zip


SM Suriya Murugan Syncfusion Team June 16, 2021 08:43 AM UTC

Hi Parthkumar, 

We have checked the provided file and used the same in simple sample. It is working properly. 

Can you please check the below sample for reference? 

Use npm install and ng serve command to run the sample. 

Can you please check and modify the sample if anything need? Please let us know if still issue exists. 

Regards, 
Suriya M. 



PK Parthkumar Kakadiya June 16, 2021 01:48 PM UTC

Hi Suriya,

Thanks a lot for your effort and guide.

I did implemented exactly the same but still it's not working for me.

Does the version of the document editor play any role for localization?

That's the only and last suspicion i have.

Here are the list of syncfusion modules I have used in my application.

"@syncfusion/ej2-angular-calendars": "18.1.57",
"@syncfusion/ej2-angular-documenteditor": "^19.1.66",
"@syncfusion/ej2-angular-dropdowns": "^18.4.46",
"@syncfusion/ej2-angular-grids": "18.1.59",
"@syncfusion/ej2-angular-inputs": "18.1.59",
"@syncfusion/ej2-angular-navigations": "18.1.57",
"@syncfusion/ej2-angular-schedule": "18.1.56",

Regards
Parth   


SM Suriya Murugan Syncfusion Team June 17, 2021 07:10 AM UTC

Hi Parthkumar, 

We have created branch incident under your account. Please follow up further on that incident regarding this issue. 

Regards, 
Suriya M. 



PK Parthkumar Kakadiya June 21, 2021 02:57 PM UTC

Hi Suriya,


I have requirement where i would like to merge document editor data with the PDF base64 string saved in my database.

For that I need a base64 string of PDF from document editor.

I have setup the docker Image for the .net core API. from here https://hub.docker.com/r/syncfusion/word-processor-server 

I know that I can't export directly as a PDF so I am exporting as doc and than try to convert as a pdf As per your documentation for doc to pdf converter: https://help.syncfusion.com/file-formats/docio/word-to-pdf 


  1. Could you provider me docker set up with .net core api and api to convert word to pdf?

       or Do you have already an docker image for convert word to pdf than share please?´


    2. As my application is deployed with docker and using spring boot backend I can't directly add .net Core Web API  to         my backend. so it would be perfect if you provide me docker implementation guide?


    3. Could you provide the example 


Thanks  for your guidance. 


Regards,

Parth



KB Kurthis Banu Abdul Majeeth Syncfusion Team June 22, 2021 12:15 PM UTC

Hi Parthkumar,  

To Export the document as PDF, you can convert the word document into PDF by using ‘Syncfusion.DocToPDFConverter’ server-side library.  

In client side, using saveASBlob method, you can convert the Word document as blob stream and then send stream to server. In server side, using ‘Syncfusion.DocToPDFConverter’, you can convert the stream to pdf document and save it.   

Kindly refer the below code snippets for your reference. 

Client side: 
   saveAsPDF(): void { 
     var obj=this; 
    this.container.documentEditor.saveAsBlob('Docx').then(function (exportedDocument) { 
      // The blob can be processed further 
      var fileName = (obj.container.documentEditor.documentName ? obj.container.documentEditor.documentName : 'Untitled') + ".pdf"; 
      var formData = new FormData(); 
      formData.append('data', exportedDocument); 
      var httpRequest = new XMLHttpRequest(); 
      httpRequest.open('POST', 'http://localhost:50574/api/DocumentEditor/DocToPDF?fileName=' + fileName, true); 
      httpRequest.onreadystatechange = function () { 
        if (httpRequest.readyState === 4) { 
          if (httpRequest.status === 200 || httpRequest.status === 304) { 
            alert('Document saved successFully'); 
          } else { 
            //alert('Fail to save the document'); 
         
       
     
      httpRequest.send(formData); 
    }); 
 
 
  

Server side: 
Word processor server Docker: 

Kindly add the below code snippet in your server-side application in DocumentEditorController.cs file  
Export As PDF: 
        [AcceptVerbs("Post")] 
        [HttpPost] 
        [EnableCors("AllowAllOrigins")] 
        [Route("DocToPDF")] 
        public string DocToPDF(string fileName) 
       
            Stream stream = new MemoryStream(); 
            IFormFile file = HttpContext.Request.Form.Files[0]; 
            file.CopyTo(stream); 
            stream.Position = 0; 
 
            Syncfusion.DocIO.DLS.WordDocument wordDocument = new Syncfusion.DocIO.DLS.WordDocument(stream, Syncfusion.DocIO.FormatType.Docx); 
 
            //Instantiation of DocIORenderer for Word to PDF conversion 
            DocIORenderer render = new DocIORenderer(); 
 
            //Converts Word document into PDF document 
            PdfDocument pdfDocument = render.ConvertToPDF(wordDocument); 
 
            //Saves the PDF file 
            FileStream fileStream = new FileStream(_hostingEnvironment.ContentRootPath + "\\App_Data\\" + fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite); 
 
            pdfDocument.Save(fileStream); 
 
            //Closes the instance of PDF document object 
            render.Dispose(); 
            wordDocument.Dispose(); 
            pdfDocument.Dispose(); 
            fileStream.Close(); 
            return "Success"; 
       

Kindly refer below blog for more information about docker: 

Please let us know if you have any questions. 

Regards, 
Kurthis Banu A. 



PK Parthkumar Kakadiya June 22, 2021 03:20 PM UTC

Hi  Kurthis,


Thanks a lot for your solution.


I am having problem for opening Dialog. It's not opening any modal. (i.e. Table, Link and bookmark).


I followed the documentation for opening Dialog. but I don' know what's wrong. There is no error message as well.


I have attached the 


Attachment: contract_f6be78d3.zip


KB Kurthis Banu Abdul Majeeth Syncfusion Team June 23, 2021 04:18 PM UTC

Hi Parthkumar, 

Currently, we are checking your reported issue and will update you further details by June24,2021.  

Regards, 
Kurthis Banu A. 



SM Suriya Murugan Syncfusion Team June 24, 2021 10:55 AM UTC

Hi Parthkumar, 

We need some details regarding reported issue. Can you please share the screenshot of the issue which you faced and also share the details, whether you was trying to open existing dialog or creating new dialog from your side? if yes, please share code snippet. That will be helpful for us to proceed further and provide you solution at earliest. 

Regards, 
Suriya M. 



PK Parthkumar Kakadiya June 24, 2021 03:39 PM UTC

Hi Suriya,


I am just trying to use default functionality of the toolbar for inserting Table and Links.


From toolbar I am trying to click on Table link inserting in Document editor. Link and bookmark dialogs are also not opening. 


So It should open the dialog for selecting raw and column but it's not working for me.

I again attached files. 


Regards,

Parth


Attachment: Document_Editor_Localization_a4e6b5c1.zip


SM Suriya Murugan Syncfusion Team June 25, 2021 11:28 AM UTC

Hi Parth, 

As we discussed in meeting, some style override to show dialog.  

Try the provided solution and let us know if you have any questions. 

Regards, 
Suriya M. 



PK Parthkumar Kakadiya September 8, 2021 03:08 PM UTC

Hi Suriya,


I have one strange problem to open one sfdt file in decument ediot.


let data ="{\"sections\":[{\"blocks\":[{\"characterFormat\":{\"fontColor\":\"#000000FF\"},\"paragraphFormat\":{\"styleName\":\"Normal\"},\"inlines\":[{\"text\":\"yxxxxyyy\",\"characterFormat\":{\"fontColor\":\"#000000FF\"}},{\"text\":\"\u000b\",\"characterFormat\":{\"fontColor\":\"#000000FF\"}},{\"visible\":true,\"width\":225,\"height\":150,\"widthScale\":100,\"heightScale\":100,\"textWrappingStyle\":\"Inline\",\"textWrappingType\":\"Both\",\"verticalPosition\":0,\"verticalOrigin\":\"Margin\",\"verticalAlignment\":\"None\",\"verticalRelativePercent\":0,\"horizontalPosition\":0,\"horizontalOrigin\":\"Margin\",\"horizontalAlignment\":\"None\",\"horizontalRelativePercent\":0,\"zOrderPosition\":2147483647,\"allowOverlap\":true,\"layoutInCell\":true,\"distanceBottom\":0,\"distanceLeft\":9,\"distanceRight\":9,\"distanceTop\":0,\"imageString\":\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAADICAYAAABS39xVAAAAAXNSR0IArs4c6QAAIABJREFUeF7tXQd4HMXZfnevqFtdsiRbtmS5F3C3wcYNML33EkKH\/BAnhFACmBaKSSAQSGiB0LupAUzHNuDeCxgXyU1usnq9u939n3dWI59lyXuyfGD7ZvTcc7rZqe988+73fTszq0EFhYBCQCFwkCCgWZZlHSRtDamZa9asQUFBQYtpi4uLkZ2dHVI5KtGhhUB7x57TZGdpJWJjY6FpWqvgGIH6Qwu4X6A38fHxopYFCxY01ZaYmNjiPD7kCGvdunXIz89vEeYtW7YgKyvrFxgCVcWBhkB7x940LZSWKcIKx7i2RFjJycktzmNFWOEYAVXmAYeAIqwDbkiaGhTRhKVMwgNXMH\/NlimT8NdEf+91R7RJWFhYiLy8vBYR2rp1Kzp27HjgjpxqWdgQaO\/Ym6aJ0rIq5cMKwwi1RFgpKSktzuNDziRUGlYYJOoQKFJpWAfuILZJwzIMw+JTD\/mwUP5\/sMZRw9qb0z0zM1M85TlU+qv6EdpYbtu2rV0PXJTTPXyE1yYfVklJySG1rIGwpqamtohuSUnJXh9Jh29IVMm\/NgIk9rS0tH1uhiKsfYbOMWObCOtQW4fliI5KoBDYBwTUOqx9AC3ELG0yCRVhhYiqShbRCCine\/iGP6Kd7uGDVZUcyQgoDSt8o680rPBhq0qOUASUDyt8A698WOHDVpUcoQgowgrfwCvCCh+2quQIRUCZhOEbeGUShg9bVXKEIqCc7uEbeOV0Dx+2quQIRUBpWOEbeKVhhQ9bVXKEIqB8WOEbeOXDCh+2quQIRUARVvgGXhFW+LBVJUcoAsokDN\/AK5MwfNiqkiMUAeV0D9\/AK6d7+LBVJUcoAoZhoryiCjEx6kz3\/S0CSsPa34iq8iIegeqaOvj9AURFRauXUOxnaVA+rP0MqCouchGgZlVbV4+GBj+io6Phcrn2CoZ6a07bZaVNhFVeUW01f2kRD8hScQoDJQeAZZkIGBbcbjc8Ho\/jeWqKsPYPYbX6mq\/yippD7gC\/tkOmcigEWkaAryDUdRd0XXckK5agCKvtktQmp3ttnV8RVtsxVjkUAi0ioAir7YLRJqe7Iqy2A6xyKARaQ0ARVttlo00+LEVYbQdY5VAIKMLafzKgCGv\/YalKUgi0CQGlYbUJLpFYmYRtx0zlUAjsFwQUYbUdRuV0bztmKodCYL8goAir7TAqDavtmKkcCoH9goAirLbDqHxYbcdM5VAI7BcEFGG1HUZFWG3HTOVQCOwXBBRhtR3GNpmEaqV72wFWOSIHAbXSPfxj3Sane3l5laVxVCAXvGvgYWUqTmGg5ADgSaOGqfYShpO22qRhqVfVh3MoVNkHOwKGYaC2rkGd1hDGgWyTD0sRVhhHQhV9yCCgzsMK31AqwgoftqrkCEVAnTgavoFXJmH4sFUlRygC6kz38A18m5zuyiQM30Cokg8dBNRbc8I3lkrDCh+2quQIRUC9lzB8A698WOHDVpUcoQgowgrfwCvCCh+2quQIRUCZhOEbeGUShg9bVXKEIqCc7uEbeOV0Dx+2quQIRUBpWOEbeKVhhQ9bVXKEIqB8WOEbeOXDCh+2quQIRUARVvgGXhFW+LBVJUcoAsokDN\/AK5MwfNiqkiMUAeV0D9\/AK6d7+LBVJUcoAkrDCt\/AKw0rfNiqkiMUAeXDCt\/AKx9W+LBVJUcoAoqwwjfwirDCh60qOUIRUCZh+AZemYThw1aVHKEIKKd7+AZeOd3Dh60qOUIRUBpW+Aa+XRoWX0VhWoCL76U4BEPABHTN\/jgFCqnfANwuO6VhAm7dKdeBf72qAYjxAA0BIMrdep8oB4RJvKMkzKE+AES7w1xJO4pXGta+gWe\/zGbvoV0+rNkbgU6JQKcOTtUcfNc5Ae\/6Gpi7CXjnfCDeu6sPJCcG+S2v3PMNcOkgoLQO8OhAn4yDr9\/BLf7kZ+C1JUD3NPvGtKMauG0skNPCeBdXAc\/MBe6aEN4+1\/mB898E3jzPJtADMSine\/tGJZi4mpNYmwjrgemWxTstNQcK7pdrgdwkYO1O4PsNtlCfNwDol2EL+tpSu+FXDwM6xrevE7907ooG4LgXgLQ44KohwMm9gPVlFqauAP5whIWfSuwWsV8PzQC8bmDZVuDpU4G1ZYBlAp2TgOfmAwHLxuSc\/r90L9pXH8e3oh44sy\/JGXhwOtBgAHeMA15eDKyvAGLdwGWDAWo9zy8AbhgFTJkOjM8H3lwOPHAs0CEKuOdrYNIRwOQvgW6pwLYa4OhuwA\/rgR01wJSJQGUD8ORcu82juwJDc4C7vwISom2N9dwBHAPg+v8Bz54GDM4B\/vkDYABIigL+eGT7+ru\/ciuTcH8hSY1da3yNoF1mm0zCz1Zb1rEFwBOzgTF5wOdrgFFdgAdnAE+ebAscJ3LnROCbdcANRwJvLAWWbQfuO3r\/deKXKOmz1cCcTfak+dcc4L0LTMzZYPf91XMsTFttt2LlNktoICM7W7j4beCJk4EZRfYk\/WKNjdPpvYE\/fQrcMqZl7eSX6M++1PHRKiBgAKf3sXPvrAVu\/QL43XDgzaXA\/ccCj\/8AbKkGrhsBPPqDfdM6px\/QvyMw4HHgm8uBpGjgrDeA504HRjwJfHW5TYT3TwdeORv4\/cfAZYOAZ+cDjxxva6cnvwL862Tg\/LeAry8DVpUAU2YCr58DnPemrfU+Phs4qQdQkGqXdelgIDdxX3q6f\/Mok7DteEpNqjXtShJXm5zut3xmWfQd0Ldz4eHA12vtu9zyrcCaUiDKBYzLB2ZvAlZsA7qlAH7Tnrw3jW57J36tHJykf5oG9Eq3tcmHZpiYe42tMT4008RrZwMziyyhdrz3I3DbGE5KC68uBSYWAN+steByAa8uAf5zmj1hpy63tdGhnX6tXrW93q\/W2TchEi5DaS1w42dA3wxgQCZwTAGwoRy44yvg\/mOAC96y\/VifXmJ\/D3gCmHGFraUe9yLw0lnAmGeBedfaWidvChceBtw3HeiVBtw0DfjtINsPtrECmDQSOPsNYOl1wLoy4OoPgPcvBM56Hfj0NzZxHZZlt42mIjW4jLi293N\/51AaVmiI7o2cWIIkqWAyS0hIEIUvWLCgqZLExEQUFBTsUam2odyyqD2RsOhof2wWMDIXGJxtxz3yPTBvE3BSL9vnc25\/O57hYHJAr94JXPk+cEovoMZnYnMlcEJ3IDXWwiPfmXj9HAuf\/xwQ\/aLZNGlEABnxLjwxx8DJPYHv12uI9Rh4a7kLjx5vIiUWeHmJjj4ZBobluGCYNiguXYdhGnDpdhwnuR4Uxzs1wy8dJ9v3xVodDQEDp\/R2gW1ZugX4z0Idg7MNJMe4cEovU5D4377XcecYA4\/PcWF4jglNB47rrmPE0wY++Y0LHaJMXPQ28O9TdRz\/goFvr3ChqsHErA0083Q8NMNAz3SXuDF8dRkQ7dHBl5JW+Vw44SUTX11K81PHjZ8E8Pp5blw61cDLZwM3TnPhb8cGEBvlhmnSMCRWLhhGAC7XrjjiGzACcLvcAm8be2IegEtvOW638hrTMY7eS6e8rKu0rArxcQkwLbuOlsrz+2vtNmu75MCkLyFS4lxuWI39lRhx3CxYAmPKPcmK3zJ06GA7UIMJKzk5Gfn5+XsS1tHPW9bYPNs0uPko4PWlNmHRPEiIsu\/GJLSrhwJXvQ8MzAaKK4FhnYHzDhL\/DX01V30A9MsErh9uCw+flJ36ionHT7RwwVsm7jtiHWp9i1Bdvw6G2QCX5oFh1cOwXHBrFkzLT4qGYfrgcbmhw4JhBaBpHgB+uDTbW2xRmF0emKYfuuYWmoUt4B4Y5q50TXFWC3GNeVlecF6WJ+N0lmfYdewWJ\/NaEO2T9WpMZ1ELIinbbWZe+pECYvJ6YDW2xWA6MwCvy4MAy9Pdwox0aQHUBzyIctt56ePyuAJoCHgQ7faDddB8BAIwLA90zQ9fwI0YN\/vhb2qLz2CcBRMBNBgeeF1++BvjWK+H+FmN+BEDBOAOwm9vmLpdNs7BuLSKfWM6+8n4Lqx2yyswssszQTkw4NY8CASNm8BZyIsPLs1+pGxYRmOcHy60ENdSugMgThf9oEyyzZRxc1c\/gtpHDOx0lD9N4OLSvfY4ax5omi6Iy+2KgmUZiPYkoGuHEejcsSe83qgm4iJ5tYmwPlllWeX1QHIM76C2XyE9DtheDSzbZhMcTcK0WGDWRmBThf1InKYDzcWDJdA\/1SedTz9twjJMC\/\/70cSoLiYWFVvYVPwmLM93qAs0PlU4WDqm2qkQOAgQ0DUXsqOGID9xPHIy85q0LGpaLRFWqyZhJL2XkH6I4A9NFP7m96uzJsPnKjoIhl41USFwcCJAbax\/3OXo2XXgbqZhUlLSHiZhSkoK8vLy9jQJI4mwpP+I3\/JDshKENecWGO5GlfLglAfVaoXAAY9Ab+\/F6NttBFwu25\/F75YIS2lY9FM0OryDySoQCAjCen3e7TDcWw74AVcNVAgczAj08pCwhjcRltvtbpGwWnW6R4qGJcmKJqAkLJKV\/Ly54A6YHqVhHcyTQbX9wEegu+t89Os2UhCW\/ND8YwjpKWGkERbJSvqtpHbl9\/vx1sLbYHoal7of+OOuWqgQOCgRyLPOxGE9jgI1K5qE\/G6JsCLeJAw2ByVhkahIWvx+Z9GdML3bD0ohUI1WCBwsCORrZ6N\/tyOFdkWyao2wIt7p3pLD3efzCf8Vv6cuuR2mp\/UlDYNyT0PPzKPEWiKuOanzV+KbVU+hvLa43bKiQcPA3FNR569CUck8jO1xNTaWLcHy4s\/bXXZbCuidNQExngQs2vCBWOgXHPplH4u+2cfi25+fxrbKxj1MIRTesUMPDO5yBj5e9iDG97oWMZ4kfLzsgRByqiSHIgKdA6fi8B5j4PF4hIbl9XrbpmEZhmnZy+SlgGrCZDqU4jj5LOFw1wRB7dKwbMJq8Pnw3pLJML07W5WRUd0vRf\/siVi66RPU+irgN+uxYedC9Oo4DlxjwoVyC9a\/i27pI8RiuWWbpwmCi\/UmYdHGDzE493R4XNFi8eGiDe\/DrUdhYOdT4DNq4HXFikWeLDc9Pg89O47Bloof8dHS+8SiRYZOyQPQJeUwlNZuRqw3ERtKl6AhUIM+WRPEIr\/N5StRtHMBSBDd0oeLPDuq1+PnbTPQP+cERHli4dWj0RCoxeJN\/xMLXA\/vfCpiPPEoq9uCH7d8jd5Z4xHnTcbCDe+hY4eeyEsdgvpANdbumI28tGEY0uVM0RfWV1G\/TeRJjs1G36xj4DPqRP3sR37aMJCEiXuPjFECg+\/XvYzclMORHJuD1+f+8VCcixHXp5LiGuzcUoOegzNQVdaAHZurkd8vda84dDFOw4DuRzkSVqtO99Lyyt1vpYco7MEalk1aJvz+AAKNZuGX66a0ibDKajehrHYzqHmQVPrlHIdV22agom4LhnU5B5+seAjH9J6ENTt+QG1DBYbnn4uVxV+hU3J\/1PhKMb\/oHZxy2GRU1G1FYck89M4ej8q6bSit3rgHYSVEpeGcIQ8JgqJml56Qh29WPY3DOp0Irysa26vWCUJ7b\/FkTOzzR0S7E7B6+0z4AnWYt\/4dnDf0ESTFZGFF8efokTkaxRU\/IWDWIzd5IFZt+xbdM0ZhXtFb6J45GkmxWZhX+DZG5l+EjWVLkRqXKwh51bbpGNzlLGyrWgUdbiTHdcL7i+\/Eif1vxdaKVUIz6xCTiTmFb2Bsz6tRUbtF4NG747gmwkqNzUVqfC7eX3zXISplkdWtjdMz8eiUZ3HshT2x6NtNGH\/kSTjyEg\/8WmWrQDTXsKhppabaJKec7kGwNScskpb0X\/F76hI63ctaBfqIbhcLjaiyfrsgqHUl88QkJxHkpQ3FYZ1OQlHpAqGBnT34Qazc8pWYrK\/N\/SPG9bwGUZ44TF14G3pmjMbIgovx\/ZoXhelHbWtO0Zu4fNR\/BQHOWfc6Tux\/CxZueB\/zit4W7emWPhJH975OkE9N\/U4c1eMKzFj9HI7s9huhLZbXFSMzoTvmr38HybGdkBbfFSTUTWXLBGmcPXiK2DbxypzfYUKv65Cd1BcBowEJ0WnYsHMROqUMwNaKn+H1xAoNqLh8JXKS+uKV2dcJYiIBssxBuafiy5\/+hcyEbji888mYte5VDOt6LrZXrUWUOxYpcZ3x1ap\/Y0z3KzC78A0s2fgRJvS+Dh0TeuDVub8XGhrLmbbi4cia2Ydob\/uknYRpr67A36Y8jNzcznjtk39gZdmHaPBXt9rjHP9JGNRzfJOGRR9WWlraHoSlnO5Ba7DkYtFgwnp38R0w9mISju5+OXpnjcMbc28QpMUwoNMJgjQ+XPJXQShbKldh+qpncP6wf8CjR8MXqMWr8ybhuL43IjEmE+8suBUDco7HgM4n4Ye1LwnCIikt3vgRLhzxT6GdzS+aihP63Yx5698WviQGmmPH9pkkSKymoRSjCi7F9NXPYmT+BaKONdtnNZqAhUJby+hQIDS\/gvSRmLnmvxiQcwKi3fGiLRP73oCU2M5CqOKj04TWRW2Tmlu3jBFIjMkShEVzcOqi2xHrSUJmhwLhIhjY+TR8snyKMDtJPtSmhuWdK0xGaockz6qGHYJQp\/\/8LFZtnY5j+\/4RGfHd8Mqc65Aa30UQPNOrcPAjULa9Fl88U4qZX89Fdk5HXHJ3X2Tn7\/0soOYmYWuEpZzuToS15DYYDhpWv5yJeG3OJFQ32L4u\/qY2UVW\/Q\/hu6ICnc3lIl7MwtOvZKCyZK7SJzA49cMqA21EfqBL+qsWbPsT6nQtx9uCHMHvdq8KnJDWsb396CmcM+qs4deDFWVcLbY6+r5MH3C5MwZ01G4UWNGP1f5Cd1EeQEkmMhPPVj08I5z21I+ahH2nair9jfK\/rkBCdjqr67YiPShVk6DcaMCLvAtT6ykQd3615ESO6XSDK\/mTpgxjZ7WKhgXn0KGyrWi00MJbN\/tGspU\/u+e8vF+Yf28WTC0qq16Nw51yM6XFVE2ENzzsPfGBB85J1Kaf7wU9Usgcbv0\/C51MX4K5HrsPSWRvx3Q\/f4tQ\/doap1ykNq73D7GQSvrfkDgQ8rTvdO6ccJhzMP22dLrQahrioFHTPsI\/EJJEkRKUKU5A+p4KMI4UjfHuV\/USNzvn4qBThV+LTvyh3HHpkjhLmFJ+69ck+Gn6jDqu20kl+HNy6VzjuA6ZP5D\/lsDuEubei+AscnnuyIIQtFT+hW9pwcZJArb9M5CV5dEoaIPLIOPqw6OtivSTCJZv+J67TYR\/ljkfAbLAfEnQ8Ch5XDFYWf4nMDt3Fh2WvK5kDrysOOUl9sGb790Izy0wowLLiaYiPShMmMdtLDZPkyd90wJfVbGoymens5wMG1sc+qHDwIzAg7WzUlXqxDm+hR\/JEeBuysMY\/VchAayE3cJpYhyWfEramYamV7g4aFp8SBg7ghaOnHX4XcpL6iWNQymo2460FN4nlFaEEEhbPJnp97g0ivwoKgf2BAJ+Mc0OzvKnyyTdvfnsLXYwzMKD7KEVYTgPgqGEtvR0B94F7tEx6Qj4SozMbNacK4WcKNXRJ4ZGfFtbvXBy0fCXU3CqdQmD\/IdA5cBoOD0HDUk53Bw3rgyV3wedRK933n2iqkhQCeyKQb50rNj87mYTK6e5AWO8vnQy\/W+0lVJNMIRBOBLqaZ6N\/wUhHwlIalgNhfbj0bjSo87DCKauqbIUACnA+eucPdSQs5XR3IKyPlt2DetdWJVIKAYVAGBHoqV+EHl0HKcJywtjJ6f7RsrtR71LnYTnhqK4rBNqDQA\/tIvTMcyYsZRI6aFjLNn2OqIPsTdbtERyVVyHwayDg356Kbrl9HTWsVp3uNTU1Ebf5mVtyqHFxi448Eysqxo3M9OxfYwxVnQqBiEHg2++moVsXZ8JqVcOqqqqKOMKSewmDCSsmzouszIPoFc4RI+Kqo4cSAtO\/\/wJdO\/Vw1LBadborwrJPHY2Ni0LHzJxDSTZUXxQCBxwCM2d9jdzsboqwnEamJad7sIaV0CEO6Wn2SnIVFAIKgfAgMPOHr5Gb40xYyiRswem+u0kYjaxM5cMKj5iqUhUCNgKz5sxEdsdcRw2rVae7Mgltk7BDYgLSUtOVXCkEFAJhROCH2TORk+VMWErDctCw4hPikJGuTMIwyqoqWiGA2XN\/QFZmjqOGpZzuirDUdFEI\/OoIzJk7Cx0zsxVhOY2Ek9M9MbEDUlPts6VVUAgoBMKDQKiEpUxCBw0rLi4OmZnKJAyPmKpSFQI2AvPmzxWul30+XkY53W2nOxldvm6oJeHauXMnpk+fjoaGBvG22qOOOkoQHF\/CunHjRnTr1i0sMrlixQqsWrWqqd68vDz0798f8+bNw\/Dh9rlCwYEr9xctWoShQ4c2vlty35pVW1uLadOmISMjA\/Hx8Tj88MP3WtDSpUuRk5OzVwxbK2D16tVYvJiHC0L0KTc3F6GUtzfs6+rqxNhwXJuHrVu3gjeohISENoMjx+O4445DbGysqGPZsmUYPHiwwL2goGCfym1zQw7SDHPnzkFmZkdHwlIaloOGReFNT2\/9KeGsWbPw2muvoWNHG+yysjL84Q9\/EML5448\/CoEl8TGQ1DghGGpqahAVFSXecstPcBxf181AoWdepmOc\/RJbO\/zrX\/9CdXV10\/U+ffpg7NixmDp1Ks455xyRJjhvZWUlJk2ahGeeeUYQa319PWJiYkSZsi18uw37QDOZEzs6OlpsUeI3A6+TMP75z3+CE5PCc\/TRR4t4Ehknqmw7y2C5f\/\/733HiiSdi2LBholzGkehYL\/FgfYxrThK89txzz4ly2Qamu\/766\/HDDz+gR48eggSblyexYR6JPTEkvsSC\/fj555+xY8cOHHHEEQI\/YsC6eO3LL78UYz1o0KDdpn1VVZVIF4wPy+Rv5uX\/7Cd\/X3fddQIXysG9996LRx55BLfccgt++9vfonPnzqIeYsS2s23sF3\/LOlgWseF19mNfyPNg5CzeaHkTdNKwlNN9PxAWhevII+2XTixfvhzvvfce\/u\/\/\/g\/vvvuuENQnn3xSTBIK9LnnnisIiJOR35x4l1xyCT777DNxJ+bEOvbYY8UdmcJ\/2GGHibxXXXWV0KBkIEmefvrpYiLJQKH\/zW9+g3\/\/+9\/485\/\/DGpdjDvllFPEpL\/11lsFuX766adikrA8Ehnr5TfjJk+ejJdeegnbt28XE6e8vBwPP\/ywuEYS++tf\/wpqIhMnThTaz+WXX4577rkH+fn52LRpE\/74xz8KQvzvf\/8rJuc333yDhx56CElJSXj77bdF\/0jav\/vd7wSBchKzbfxmH2VgWW+88QZuvPFGEbVkyRKBFft2wgknoEOHDruVR6wksZaWlgrszz\/\/fDz11FOCmFjH1VdfLeJJZsTnlVdeEWV\/\/\/33glxI9uzjlClTBPkyvPXWW0JTqqioQElJCV5++WU8+OCDuO2227BlyxbRvosuugiPPfaY+GadxCqYsHgDY\/9Jbiz3jjvuwF\/+8hcxQdmXoqIizJw5U9RHjfzUU0\/F7bffLq5fdtllAptDPcybPw8Z6YqwHMfZ2em+d5Nw\/vz5QhAlYXFy8K5Kwvroo49w0kknCQKgYHKiUzh79+4tJkZ2drYghqysrCYhprbBSUni4AT+\/PPPhVbDiX\/DDTc09Yea0oYNG5pMP5JS9+7dceaZZ+KFF17AFVdcISYn01Abu\/vuuwUBsi0koEsvvRS8W5F0SATr168XZMO6mZ4TnXc9Eg9\/S81J9pcEwAlOrYcTnATMPNQatm3bJkzFs88+WxA2iYLkM2LECPTr10\/8P2HCBDz66KOiTprRnKBso9frFX1kOSRH1kvCZn8GDBggiIJ9bV4eNb1x48aJvDTTiT3rolnet29fUBOmSUnseZ1xDMSWeJGEmIaacs+ePZtwJlF26tQJP\/30k2gDTb\/77rtPjNfmzZtF31gXx\/xPf\/pTUz6S5p133onHH39cYHTGGWcIGWHcAw88IOLYX2pUrPu8884TZE7i+8c\/\/iEIjWMcKWHevLnIyHD2YSmT0MnpHh+HzIzWne68OzNIwqJG88QTTwiyeeedd8TE5aQnKTEMGTIEY8aMEWbV7NmzBZHRxOEEOOaYY4RWQx8YTa6bbrpJaEScLNTamEYGagckp2ANi1oSSYL1UXt59dVXUVxcLCYESYVaBQmJ7eNEY14SIk0h1vvdd98J4qBvjFoByZV5gwlL9pft+PDDD3HllVfi+eefx\/333y\/aWFhYKIiOk5H94qSjJkfyIVlIE+ess84ScTId+0YyklqS7Cd3HZAMSKgkbPabODUvj2Ywy5eERewZ1qxZI0xQhpNPPlloOiQTjgNNLtb\/+9\/\/XpA2tdyuXbvuRlgff\/yx8FESn6+\/\/lpoY8SS7aWGRZw5RiQmkq8M1LBIbDQVST7URKk9UZNjXtlfkh6xZnsY2H\/eTKiVMm+khAUL5iMtLd3RJFQr3R0Iy8npHqxh0eQjWfBOSTLhnZf+G35ffPHFwiTkHZ+Tlh+aGBRWmmq8q9LcoObCCU9tgGYT83LSUaMIJqw333xTaBrBhEXtTmpYJBISCicVJwmJh3d1algkLGoL1C6vvfZaccenlsiJQiJtq4b19NNPC62NbSRhsVySVbCGRaJhe2lKUquhdklzh5OfRMNJzf7J\/hBXaqTUUBm++OILYULTnGU5zcsLduwHa1gcC2p2jKPWRuLh\/zSXSQg0q6WpTWIK1rCICbGhlkiTkJjNmTNHkDNvJitXrhQmIdu2Nw2LmhdvEMREEpbsL+tgeSRgtm3u3Lno1asX7rrrLkGCkRJC9WEpDWs\/+LBIUpwwDLybU8ApfNKHReGkM5HaAicgfRP\/+c9\/hK+H\/1Mb452c\/i\/GcTJRC6OzlgRDjYfEdfPNNzfJLzUlkhHTM9BZfNpppwlTlNc4SV588UWRhpOJE49mJjUbTjoSGs0tmiDUCukT4sSjaffBBx80+bCohZDs5INob5yuAAAgAElEQVQBmk3sG\/vCNlNzoIZFbYIaFn1PrIPER22BddHHxfJJlHziynpJjiRqanScyDSV+FtqWDSZ2W75wIIaKkn\/b3\/7W5MPK7g8tkNqsSQktoX+JGptNH1ZLn1DrJ\/kQA2WeBIztoeaLomW2hLby4nBukne9ONxXInP+++\/Lz40pWkqUuMieZJcePMJ1rBIRGwv28D20c9HnPg7uL9sK3FiO0jkNA+JOfNGSuANijKsnO4OI+7kw3J6Ssji5RMe3i2pIcgnSLzGyU2tid+chNIkkk\/mGE9BlU\/a5BNB5pVPr+T\/vCYD0wc\/5WKdnJSsg45dPgWUk1\/+L9shn0RJ4uF1lk0NhPlpGtLHRAIlWfKhQHAgWTEvJzQJk22RT754TT5pZB+l81peD35KKOuV7ZB+MlkXy2IaaSrxOuMYWipP5iNpklip4TE\/28i+ybawDRwn+U2c2X+m41gGP5mTOJOwiJ\/0sTEd41gu81KOJKmzHczHONlm9pHXZTr2I7i\/UoaC0zXH41AmL0VYIY6uE2E5mYQhVnPQJKMfjNqRnFA0Gfe2Du1A6xjbTw3pwgsvxMCBAw+05qn2tIKAMglDFA0nwuJdlGabCgoBhUD4EFiwYAHS0tIcTULldG+n0z18Q6hKVghEDgJKwwpxrJ00rFB8WCFWpZIpBBQCrSCgfFghioYirBCBUskUAmFEQBFWiOA6EZaT051PmLg\/jU+K5LYTbqUIfmIUYlN2S8YnUlz0ybK4CLEtjm8+1md6LmnguqLgPYishE8X+cSsvW3cl36pPAqBlhBQJmGIcuFEWE5Od67D4TokLvRk6NKlCy644IKmx98hNmOPZHzMzVMRuPCUa3yC12A5lcnFiVzDxRXs3JfY\/PF4S6vkncpU1xUC4USg3U73urq6iH0vITUlfqjlkLD2pt0030vIQeWjdZIYFxxyNTsXCnKDMVdUU2Pi3YSLJbkJlwtCuSaIq7G5PYP766gRcTU3F5dyGwqXGTCe2hwJkltLuN+Nj+5ZNjdKs\/xRo0aJkxpIWFysyoWLXKDJxafMy35w8SRXZ3OhJBdNcvHn2rVrxbohLjaNlNMBwjn5VNltR6DdGpZFCY6A0JKGJcmK39RO+Li1tcAFiiQWalg0sbjdhIsLuWmWm3q5X5ALFGlakqC4CJPbUa655hqxnYXbUbhZmKuvSTD8za0uNAe5lYar1alhcRU4V0nztAeuCCYJsS5u+eAqdpIrSY3kRsLivkF+uOqc50rxFAeeCMAV9DyBgFtSuKGa20vYFt7h2A55NE0EDL3q4gGEQLt9WIqw7AP8QiEs+oR4UoBc6U5zjltcSACM4\/45aj\/ccsHtMdyKwX1pJDpuwWAgGZGAuB2DW1JaIizmlxt8eUSL3AfI7S1coS7PXwomLP7PPXPc48eFlNysy2NeSFgkTtYjtxXxjChqdCooBH5pBBRhhYi4k4bFbSZcrNZaaMkk5BEkJAXu16NJSNNw9OjRQntifSQvnvxJcqJ2xP16NO1IZlylTY1KHl1CbYgERlLih\/vVqPGxTO7PYxzLJWHJ40ykSSiPfuGqdT4YIFHSt0XfGE1Omq00R0mUJFaWwdMMVFAI\/NIIKJMwRMSdCItm3t5OHG1+vAyrpQnG0xdILCQEbr6l2cV9eSQxHn3C1fM8TYH5qcXxxFD6lWgWUiOSR5fQJCQBUUuTjni2h\/4omoMkOJIdyUYeZ8L09FPRUc803MDLI2toNpLc6Ddj+TzZgaYoy6PfjGc28cwpFRQCvzQC7Xa6K5PQNgmdNCxqJnI5gxxkuv94JAy\/ufueZEJSYDpqXCQrEiE1H\/qQ6N+SZhmvS3KhucanjowjsZL4eCAf6+TJBPzNa9QAWZfMG7ysgXWtW7dOXKdDnfnYHm4QprOeDwiozXGZA8+CUkEh8GsgoDSsEFF30rCcfFghVqOSKQQUAntBQPmwQhQPRVghAqWSKQTCiIAirBDBdSIsLlGg6aWCQkAhED4ElEkYIrZOhKVMwhCBVMkUAu1AQDndQwTPibCUhhUikCqZQqAdCCgNK0TwmhMWf\/PxPz\/yCOC2bDwOsVqVTCGgEAhCoDlh8em8nHfUvmRo9UWqkbisgWQl38jLJQc8r5vnfCvCUnNLIRBeBJoTFi0buWBbEVYQ9sEaVkuEpUzC8AqqKl0hQARCJaxWX\/MViRoWF1dSs5LmoHzLzN5WuitxUwgoBNqHABUFnjbCRc58yEWrhp+WNKxWz3SPZMKi70oSF1eCcxV68Cu22jc8KrdCQCEgESBZcfcGX1RL1wuJirtAWiMspWE1voRCvkeOAMrzsPjNbS4EUL6PTpqQwafv8H\/uxWt+Ig\/jZHp5PTjdgRZHITqQ29cc518KP9PcfXztes2QsDKlbJj2aU27t9lsIa6ldIdGHDvLMZTv7ZTb06gUcNO9fCcntSx+lA+rlRtbcz8WtatgLYu\/+ZFkJoGXBMX45scQy8kVXKWKswX2QMWKeyz58tm2tI9jX15Rg7i4mN3Ipzk5BfwNEUVOcm5IgpYkJV8UK18gzPhgM5D\/Sw1LnhyinO7NiKslx7skKRIXr8vfUhOTpKWU+0MHARIWT9doS6A8lJVXIyYmmvpTq1lNwyasSA3BNwFJWiQmSU6SuCRh8bslwop4kzBYW6LwSce7\/JZEJTUsSVjyDhIhB7NGxDzjybA8GLEtQWhY5dWIjonZQzMLLkcRlk3mJCv5aYmkGCcJrSXCinine7DzT5KXXN4gTUCpYfE6\/1dk1ZYpffCkbZ+GRcJqva9GILI1LElWLZGW1LSkdiV\/84BKhmCTUGlYjTImzUL+lNqUJK5gh7zUwpRJePAQUagt3TcNy0J5RZUwJbW9mIRGhJuEwYQVTFqSnKRWJUmLv1sirIhf6b6b2t6oPTU3DaVWFfyEMNjhHuqEUOkObAR4VDUPMmxL4BPEsvJKxMTE7tUkNAL1bSn2kEsrzUB2TL4PM9gBL4lLXuO3IiwHMZB+K6k9UdOS5CW1LVmEJCymUeHQQGBfTcLSMkVYThIgfVPNTUP5zsxQCUuZhI1IB5t6kqhIUg2+BuwoLUaDrxamRQIzYZj2EgfAsv\/EG9F2vRWNcQdS2JupsquddptDarlIFNzf4N4GldDsTXEhlf2LArd7i3w+P7xeT1MLQnnRHce+vsHec7r7U8Ldy7ZMoxGxAw8FR8jb3GQpcZqAhL\/En3Dy6XDpLmh8Qqi54NLdSE3KQlxMvNC8gk3EljQs5XRvHK1gcy\/Y6T7n52\/xc9VswL8BFkhS9qJBWzhtwuJgyGt2cRxh+\/ouIf714jToe7Qv1DgKGBr73Vrf2HfN0mFp\/LY9z5ZmtRgHSwc0kwns4jTL\/l9+76+4Xwz7Jp1bTMZgrGzZsLGXU3iXvNhyY0uLlKEDOM7SGsc0eHyd4hrHtREXYiGDpvF\/zokoZHhHo1\/HoUhJShdrsqSpqJzurdxKpHYVbP5JR\/ubCx5FtX++401IJVAIKAT2DQFDz8Lw+DNR0KW\/0LAkYdH8Y1ALR5vh2pyo5FNCfr8z\/zbUYPO+jYTKpRBQCISEQL\/oy9A7f4jQsKRZqFa6twJdSyvd5dacdxbcgjpte0igq0QKAYXAviHQ030h+hWMbNr8rFa6O5iDvCyd7XLzM3+\/u\/AO1Olb9m0UVC6FgEIgJAR6eS5Cn\/zhQsOSH\/nyl2CTMOKd7sHalVzWELzx+d0lt8Gnl4QEukqkEFAI7BsCedZZOKzHaHW8jBN8rREWSYsH+L2\/ZDIaXMokdMJRXVcItAeBPJyFAQWjBGHJ0xvU8TItILq3I5JJWO8tuQN+d+saVmLcUchLSYRb98IwA4C1E+s2fYeK9oxeU143uucch+iGDVhWshRZqWMR3fAtCqv3pfAsdM\/ug3VbvkJszFB0S+0I3diKhcXz9qWwoLb0w4Au+Shf\/yE27FNJKpNCAOhinoHDutsaFgmLL6FQhNVGwuJLKN5fejv87tJWZSondTJOH9AHlbU7ELAMwFiDmQueREVcDnQrIBbHldZshDsqEx20OpTWVwJRHZGi+1BaV4r42Fy4wXQaSms2A5oHKbFZCJh+QYJZacPgqSvCupokTOx\/Loztd+PddRub2uPxpCDByxMGTNTVb0adASTGZAOWHy5XNIxAFSoaTPTtchWGd+2DD+bfjvSs63B0Rw++X\/MiFm1djpS4zjCtAAK1W1CNeCTGJYvlRBp8qLe8iEI94IqGS9SxFZ7o8UFtOQaXjJuAjd9ciK\/VzFMIUBIbfNhW50JWkguWYaCsTkdK\/F52hgPo5D8FA3uOFUQlD8xsibAifqV7axpWsEno97SuYXXNvAcn9UnE299MwrZGcY2P7Yczht6NDmJtnA8zl16J6pR7cEzKKrww92nkDXwBR+JFvLFqLU4c9A+kewDLrMSsn36HhVUFuHL4XdBIWJYPFfBCL1mCqtQh6ORmulq88MOVqPHbe9OO7D8FA9MKAPixdu0D+HTDElw8eiqiAjsQHZ2OhqoFeHb+clw29hLEaoDPXwWvJ0HkLd32dyyo7oEJ+adA1\/zYsfYpfLDBg7PHXY2oAOAxf8Tsmi4YEReA35uIaPixas1ziOt6TVBb3sapI89A4YzfYpaargoBAPNfm483V3px7539sfbjuXhvcSwm3dofCVGtw5NrnC40LCfCUk73xiOSgw\/pk2TF73eX3gbDXRayhlVZchM+KQKSYzqiU+pw9M49D\/qO8\/HR1mG4ZODlmLrsA0zodyFWzj0fdV3uxdjUBnyw6Bn4M67GWTnlmLbwYxw94gGUbXwcX28pxLFD\/o6osq\/x3tpanDt0InZuuDlIwzoeV4y9AJVFH6EodSIGR1fgye9vwCVHTYW7+mW8VzIE5+Tn4NtvJyGj\/\/3onxqLN+bdjqye92Js1Cq8uGw5Th58GWo2vINSbwYOyxqO9+a9i3HDLoCv8M\/4bFsF8nv+AyPjNuGbxc9g8OC\/wVX2Jd5bVx\/UlnKcNvJRLJl1OQrVdFUIAEj3j8Gb9z+NWes3wTTicetjdyExbRpqAq3Dk+U\/EUN6TmgiLJqGaWlpIsPixYvFE3wGpWE5EBZ9WAHPzlaRzs24C6f0zcWydR+j0gygoXYa1td2xMDsMTBRg9ysC+AuvQyvrM3BpSPvxbrKIvRNSMDz312Lvof\/B4PMD\/HsovcQFXU+Lh95BGbMfQojh9+DomWT8UXJOpw56nnElX2Ol1bsxOVjz0Px6gvwadM61mtx1bij4TYawOF0oQLvzrgWxx41FTVbzsTU1Zfi0rGjsfjby+Du\/TCGpkfhue+uQ+cBz+C4qMV4Ys0OXDngPJFf090ImD58tWw6Rh5+LLZ\/dyk+91dj4OEvYZh3Pp6e+zSOH\/E80qu+3KMtxw9+FJ8u+IOarAoBG4H4\/khbsArnX\/sGcoaOwbNPpmJt5d7ByQmcgkE9dpmEwYS1fv16lJWViT27XEyal5e3R2FaJL41J\/hYZPmqr3eX3AHDkbCS8dY3kyCfJeZm3IlT+nbFsnULkdt1LKwdl+GVlRXo0e8pHJ2ejvqKj\/HCwueRnXs1TssfjGWFn6Eu9Xgcpn+Ed1auwVmtEtaFqC15Ge+snAY\/Hfzoj4tH\/xl1G\/8nHN5GYCMWbZqFi1ohrGEZqZi7+nGUZVxtE9acL3DG6PthFb+PzYYfQAA\/bq7BqaOuCIGwZFs2o09uV5QVvaec7oqwBALr31qIf726E1decTVWz3wNK9MScc2k3ojfi0mYHTgVg3uMaVHDCj6YIPiYmmC4FWE1vqreySTsmHwdxhXEYdq8KZCGY2zCeJza6yS4tBqsL6tDpvsbvPPjLCDmNJw7YAzKih\/C5xu3IMqbitF9bkPHKA8MswazVt2GIl8XnNn\/OhSvfgKzyjfg+CEPIbpyFt77+TscP\/gmJLssvDX\/JgQEYQGHd78RfZI7if93lv0Pn63+EqcPfRz1O67Hp0Vn44xhg7By7q3Y0elKTMzuC9TPwwx\/L4x2L8fry95Ex9RRGNftLLg0F6orX8RnP8diwuDTUTL\/Jsw2\/ejV6z4c7lmJN5a9gbEDH0JyzexmbZmLU4YOwaY5N2KumrAKAZpta3LxyPIM3H+lF1ZhAC\/Mi8LR42fCt5dTHzJ9J2FYr\/EtElYooCrCkoS15E4Ynh2hYKbSKAQUAkQg4TAcHgcs3roE0dGd0ScpFgu3rtorNjnGGRjUfZQiLCcJCn5K2JJJOHXp7TD3sqzBqXx1XSGgEHBGIMN3Kob3atkkdM7N04ki5HUwjoS15E6YSsMKRWZUGoXAPiPQMXAWhvY4QmlYTgg6EdY7S+6C5VFbc5xwVNcVAu1BIDNwDob1GKEIywlER8JaOhnWXrbmOJWvrisEFALOCKT5z8bIniMVYTlB5URYby+5F\/Co42WccFTXFQLtQSDTuAjDug9ShOUEoiNhLb0bcMtNN06lqesKAYXAviCQ4r8QR\/YcrAjLCTwnwnpryQOwPDZhaTBgwgMdflhwqTiFgZKD\/TQXMszzMbLgMEVY7SWsB3\/ejopoe0+TpbmhW36YmgeaZS\/cVHEKAyUH7Z8Lx1QuxBEF\/RRhtZewHiisQVVshlMx6rpCQCHQDgTGbZ+B0d37KsJywtDJJJyyrhIVcVlOxajrCgGFQDsQOLpkNo7o1l0RlhOGToT1QFEdqmJsk1AFhYBCIDwIjNk+G2O6K8JyRNeJsB4srEVlbLpjOSqBQkAhsO8IjC+Zh1Hd8pWG5QShM2HVoTJWaVhOOKrrCoH2IDBu5wKMzu+qCMsJRCfCur\/Ih+qYZKdi1HWFgEKgHQiM3rEA4woUYTlC6ERYDxYqDcsRRJVAIdBOBMaVLsHovE5Kw3LC0Ymw7i\/yozomyakYdV0hoBBoBwKjdyzBuAJFWI4QOhHWA4UNqIpNcSxHJVAIKAT2HYExO5dhTH620rCcIHQmLB+qYpUPywlHdV0h0B4EFGGFiJ4TYd1fFEB1TGKrpaVH6TgpWcP2xlcYxVsmPi23UGm\/lSikcGymG0mGhRqZ2rTwTbWFIzvo+KqE+xebBxdOzQA+2N6GSkJqSdsTXZjtxk+lASywX5MYtnBkuhtVOwKIT3WjoxHAu+XtqyozyoWJScBOCaFpYUGpia3tKxbwajhGjBtwchvH6NwMF97eYeC4JB2flO056p1S3EgpDWBpe9vI\/ElunKGZeLfMxPAUF7rpwIqdBpbs5dz1lqo9Nt2F4h0GlrezTaNKlmJ8txylYTnh6ERYDxY2oHIvJmHPBDfOjQ\/gHp5AowFjOnvRty6Af+8wURCvo2e0BpgW5pWa2A4dRyRrSHYBq0sN\/Nwok5fmebCm0I+ZwY31ajg6QceMUgvDkjUk8qWsANaVGEhM8eDUFA3Ttvrgc+mI8mhAg4FlDTpGdLDfsFvdYGJ6lYWsBB2DojRUGUCMZeGrchM2t+oYk2hheoWF3okuRAdMLKqx0D9RR4MfSIWJWbXAgGQXSmpMxMfoyHYDUaaFz8pMjEt1IUYHRqW4MWNzA6ZVazg6VUeUtnvfCMrIFB0Lyw00mHZ5O6oNlBo6JqRosEwLn5aayIjVMZhvVXHZeDEuOFza1YuNRT50yPaip25gaT1Q22DhmypTtDle15ACCx9XWTgxyQZrZ52B2TXAkCQXUtxAfYOJGVX2jOzXwYMJbj8ea\/ZSb7avs72vHV+VGkhJcCGtwhAkERWro3e9iTUuDWMaB4Tj8SN0jEqxx2hzvYW0KL4zW8fxyfYYTa\/WMDZNB9\/PXVxn4zw6SUeAbdaBDbUmltVauCffg3uL\/JiQqGNamYUxaTriAdT7LXwV0HBlpgvRlQZeLjGQkeRCdzfQELDwZfnuWKV6G+XAsrBsp4kN0TrGxWqIFS\/2tbCs1ET3zl4co1t4rcTECR1dCJQZeLzMELKQ4wKqGrHi7466hViXhloTqDchsKysNzETOm7v6ML2UgP\/LTXA9y7taxhXugKj8zoqwnIC0ImwnDSsvDg3Lu7QSFiszO3GrZ00PLDVxKQk4K0yE\/0S3cjXTDy9TcN9ecATxQYqG3ZpVNfme1GzIyDuUpyv9QELy1wu\/D3bhVt+NnBHgY4vNviRnOrGkbqJR3ZouCZHw1Mb\/LiqixebSvz4uAbol6hjVbWJtA5uXJas4cYNJn6fqeGNrQGMyfTgCK+FSWv8jRqbhj93ceGF9QFc3t0Lvc7E\/ZsM3NBJx\/N1On4LPx7dCVyUH4UlW33ITvMit8qHD6qBcVke+MoDmOvT8Keubny7xYfsRA\/mlvixzQAuy3ThueIAihu1zhE5XiSX+PBpQMNd3TyYutnAhDQdU7cGEB\/lwikdLMxs0HFBkoYHN\/jRJdmD7g0+vBD0\/tqLunqxtciHtE5eDHAZeGKrhfOy3Xil0IeT87zIbAjgvyUWeqS7EVMSwEKPjoszdDxW6Mc1+V6s3uTHvICF0kaNqke8B2cnGPi8BjAsoLTaRKlbw8mpOn4oNWF0cONEzY\/PG9y4OMbAXdssHJfrxfyNfhzf2Y0d2wIojnHh9EQN922wxBg9vcGPqigX7sxy4eEiA1c2jtH4DA989QHMqtEwIdOFGRv8+G03L7aU+fE\/uHFNBwt3FgVwX74Hkwv9eCzPjSlbgeszgL8XmzgyRccHOw2MyvIgbZsfWxJcGBNt4aUdJjqRuKoMvFrbqBpFu\/B\/qTreKwmgc6wLx8YD99VoeDBFw6Mb\/Tgq3YMeRgDPam5co5v4x1YD5+d64NvsR3GaG539Jv5XYWJ8hhtGSQDo6EVXn4EXSwycnONBZoOBZ0uAy3J03LchgEm5HhRt9uODhjaqZs0m5qiS5RjfLUsRVnsJ64HCvfuwuse7cX5CEGHBhRvzdHzo03C2ZWKxeLeRjiHxwN1FFibnmrhnw+53xCvyvXCVG1jXSFh1PhPTLR0PZbtw5xoTf87TcM9aP\/qneXBZB+DmdRb+lKfhgUI\/buvmxcy1PsxgLRowJMUFmqkT4jU8Vw0cbRh4bJuBoekeXJDAvH74GkH5bVcPyjYGMKSzCztMDf8ssXB5tIk3dReuQgCPlFiCsFZu8yErzQtsasDH0HB\/dy9eLGzAKh9wa0EU1pT7MS7ZjW9LDWHWDkl2Yc4WH6ZV2xXFxbnx50QTj5UDkzN0fFij4cQ4CzcXBWBE6WKCflFiYYLomx8FCR6cFe+3tdbGcElXLzYX+ZCU40WXgA8PbwNkXHaeF9FlPjxT7sIdBS6hzTF06+DCf9f7cFkXLx5bJ3ttF9gnwYNzEk3MrrMJa2u5gWUmEK0Dw5NcSHbrOMwdwKPlGu7PceH2DSau76zjb8UWbu6o4a511Cc0QYavrDdwQ1d7jBDvahq3P3Sxx+jObl7Mr7DblBnvQk2RDwVN4+bG5G523nvzPbhvfQBTurhw91YLt2TqmFlp4KcyE6tNYFBnL1I2+pCe60WBaWBhPZDo1dBPt\/CXTXb5+VleXBVlYWY1ZUzD8CQdD5Ra+EsicEehH6MzPTgp2sLN9Rpu003ct8XAb\/K8qC3yoUdBFGprAljtAzrHuZDqN7DK40JSvYH\/bLPT2TgDk\/JtTK\/I8+DnQr+Qv\/aEMTtXYEy+0rAcMXTSsB4s9KMytvVlDXsQVqwbd6QBbxo6xlcG8HyNTU6cFIblbpmwWhr0IMEPjbB03JDvxrrKAL6u13BHtgsvOBDW6AwPjvYYKK22MDPODUvX4CvxYX28Zx8Iy4UHVvuxzbZIETDR5Htz6ZrQHooqLdTU+LEq1oNzwkRYt+XreLjID79la6s+c9fkChYGEtYxnt1Nwtw4F65MAz7dauJH04Xr0w3cUwz8obsX9T4TmQEDd5fquCurjYSV78ErRX5sbJQD3QJuciCsSesCgjxpkpF4Czf5YGXvIqy0Wh+eLrXlyk2PQOM9kIR1MQxM2WbswqCDB\/cmh0ZYK7Y14LNq2HkBnJLr\/UUIa+zOFThKEZYjX8GJsEIxCS9NMvDEDnuCjM50w10dwGu1Ov6SouG\/9OrGuTAkYOKjSh2TO5u4Z+PuGhZNwuLNfvEiUimA270uPNhoEv6Fd+A1fhye7sHlicAkal35Ol7a6MeVuV58t9aHr+HCpDwdbxcHUJDoxmnJOm5ab+xuEnpMTFobaCKSpCQ3Jqfr+HiNDxsT3bg8VcMjhX6Uely4Kx14bKeJ3+R48VmxbRJiYwM+s4ATO3nhrWxmEiZ5sLDEj40BYEyCjtklBoqC4L++WxS6aCYeWuOHL8qF33bc0yQ8X\/TNj4J4D85L2F3DCjYJ8wM+3L8VkHFdeOcv9+FfZRomdHKjQ3UA39dqGJms46PtAfxfnhePN9OwaBIe792dsDrHuvF\/aSYe2QqMTHZhsDuAyZst5GZ68ftEDWu2N+Cpcg0X5+5pEsoxQoK70ZQP4E959hjRHM9qMPBGpYXeCTqKSgxc1E2OmxuTC+zxDTYJb99k4tQkiAc4Q7M8+HGDD7FZXvTY6cfWDi5MjAeeKTaQ4NaRqRmY3qjNItqFP6TreGt7AAFq2h7gTVPHPUnA7YV+jOvowWkxFiZVaZgcbeFfWwI4LdeL2kIfynM86GmaeKvURI84HYbPQKf0KCTVBfDkVgOXN+EMXJ9vY3p1ngdbiwPtNglHlyzHOGUStp+wphT6ULGXZQ1NDs7GqkprDeGsZuid4EJ+4+u5l5UY2BDk6A5u2cBkF7IbHb0yfnaNiYGxttN9ZBIwvcx2TA\/0QjjOafp1MEzU6RrWl5niNfHZiS4M9NBhakH3aphVZiAlzna6x3hdGOQ28ZcNjY4lUZGGsam6SBfj1nBknIaP+XRKAyakuBANCAIqqbOd7vTcywcFwukOCEdrYZWBNT4dE9M0uOlYLjWwqNlDrtwEF3q7bYc9Q5S+p9Nd9i0lSkdvj7lrEvIN10kuVJYbiEpwIdG0nekyLi7JBXe9gUX1QLxnl0NcPngYkezC7LLdn6hmRNqbYegAAAc7SURBVOnI003MqQsaCZeGY5N1eGA7nePcGj4V7dUxMRX4kQ5s7F6HdLqPSbbHiE8J7YclBgYl22P0eR0wsYMusBHO6moLo5P1xnHTIfOOS9bxXYVpO90rraa2BAL2wxLiMjRBE33J7WDLTMDYhansCfvGdAyifXS6RwPflJvIjdOFs\/6rCmBCmobqGgO1US4EyvnwABiR4kKqTke\/ia+aP5AJwlliShnvSpksNfb6ZmenmTi+bCVGdc1UPiwnoJw0rAfWB1AV3fqyBqfyf9Xr8S5cm6hhdqWJQYk6qmoMvFXWPufor9ofVfkhi8BRJcsxVmlYzuPrRFgPFvlReRBvzRmW7AJvtmbAxDeViqycJUKl+DUQGF+6AqPUsgZn6J0Ia0qRHxUHMWE5I6BSKAR+fQTGl63AqK7qKaHjSDgR1oPrA6g8WE1Cx96rBAqBAwOBcTuXY3S+WoflOBpOhPW3Ih\/K1HlYjjiqBAqB9iAwsXwFhndRGpYjhs0Ji7\/9fr\/4BAIBTNlgoCKqg2M5KoFCQCGw7wgcXbocR+Tt0rA8Hg9SU1NDLlCzLCsiPLTBhMX\/+fH5fIKsSFp\/X+9HabQ6DytkyVEJFQL7gMBx5SswLEjD8nq9SEkJ\/ViniCcswzAEcT28PoCdyoe1DyKosigEQkfgpIqVGJS7ax2WIqxWsGtNwyJh2RpWADuVSRi65KmUCoE2I2DhpPKVGNw1C263Gy6XSywgVRpWC0AGExatYBIVzUFpEj5XWI3V0eo1X22WQZVBIRAiAgmBGpzg24TeORlNhEXiUoS1F8IiWUkfliQsfi\/ZtAOLfF5st7yAZcLgvhXLhAmNRwvZ\/2s6NMuEpWlglGZZsGQc0zeP01qJ05rlbS1dqOX9WumsVvqBIFx+ib4FYS\/HCI31cvDkGO0ep4nxCzmusQ6Ivtl5LVlva3FgOltepGwEy1DI8vJrjW8I9RI\/u3fE0p4fmmafU6YTIV2Dblli\/+1AowR9UxOQnBAvtCv5UYTVAmGRqOTzBWpX\/F8SFn\/X1NWhpLIGNT4\/\/AEDFp3yJulKnIWGgPhfg2FZ4ngXEpYpBkKHYZnQG4XSjpPp7KFUcb8cBhwHe4xawd4CGvw+RHu9u9JZje3TNRhms7yNcSytrr4BLpoyOsfcnoQUhIA4SUFDgPVa9h5O+7rdFn7LONm+4Lhd6WzB5cb4gyHOlmtBu2I+sc2WZredXeZ88bpcYs9qlMuF9A5xSIiNadKuJGElJ4d+NHnEON0FcZj2hlypYfGbpEXCCv4EXxf3jsh4kBqiYn\/wJ6utrUVsbGybOkKZKCuvRmxsDDSpvbWkyRu7n8fVpkoOocQSI13XwU+wRsXfNAVlfFJS6E\/nI4qwpJZF4ZN+rGB\/FuNJXPK6JDhFWofQTKKmVFeHmBieQRF6oJyQsGKio3eZkS0SVkPohR6CKYPJnP9LwuL\/wSQl4\/mtCKsVQZCE1Zy4JFE1J6tgM\/IQlK2I7VJNTQ3i4njyeuiBMlJeUSOIbm8alhEI81s6Qm\/yr5qSGMlPMGlR0wr+zf8TE0M\/JUX7+uuvrYaGBvF4kYGP+KOiosTaJDKi1EB4nddYoXRccw0F0zGOjaN5xTxMx28ZJ\/MGl8e8wfUyb3B5sl4Zx7wMTBdcXvM6ZPtIPuwH6whuH\/PKNsv+8jrjCJ4kL9kPWV7zelvCpaW2sA62pSUMguOa9431Ns8bahz7wbYE19tS3pYwDTVdS3mlIAZj1Vp5zfFrbXxbwrklXFrCvjX5o4ZFwpJy2hL2UsaD5b66ug4ut944lpR1jpEGI2DA7XEj4PdD02xfKeWouaxxPJrLM+PYd2IWLLvMK+OC+xs8L1lHsJzuTf6C6w0Fezlusg62hePbmkwGt0WOpcSAfZSyYZoWoqK8Nld4PLafy+uBx+uFv5FLWEdaWhoGDhy4B+lqY8aMsTiA0VR1ATHBeRdhHCc8O0eQ5ORnx2U6+gGYLjhOkp2MC84bTIrMyzudTMcOMG99ff1u5Ml2yTo4ICyPeZhOtlnWwThZHoUxOK8kp+ZxkijZ7+BJI9vC8ohB8\/KCB10SLweF\/wdjJdss6w3GlHHBbWY\/ZByxYnmyv\/yW+PF\/OUbNcZYCHVxv8I1B1sG4lvrGOmRe2Q\/ZZnkzk21mOpbTvM1ShmQ6iV9zGQoeN14Llr\/muASPB9MFYxCct6U6muPMfhC\/mppaMXns8mx52SV\/e455KPIXjFVb5Y\/Yy4dBwf34JeSvtbHcL\/JH2aXC0Th\/o6Oihdw0yV9g11yV8jd27Fjc99e\/7klY1dXVFoFlwxiCySCccXJih7MOSWoHSh0UQk6WXxLnAw2DX0PWwoHBLzGW+7uO\/V1euMdSannBrBVRTvc96FpFKAQUAgcVAoqwDqrhUo1VCEQ2AoqwInv8Ve8VAgcVAoqwDqrhUo1VCEQ2AoqwInv8Ve8VAgcVAoqwDqrhUo1VCEQ2Av8Pboq89eiOI5UAAAAASUVORK5CYII=\",\"length\":1,\"isInlineImage\":true,\"isMetaFile\":false,\"top\":0,\"bottom\":0,\"right\":0,\"left\":0,\"getimageheight\":0,\"getimagewidth\":0},{\"text\":\"\u000b\",\"characterFormat\":{\"fontColor\":\"#000000FF\"}},{\"text\":\"test1 test1\",\"characterFormat\":{\"fontColor\":\"#000000FF\"}}]}],\"headersFooters\":{\"header\":{\"blocks\":[{\"characterFormat\":{\"fontColor\":\"empty\"},\"paragraphFormat\":{\"styleName\":\"Normal\"},\"inlines\":[]}]},\"footer\":{\"blocks\":[{\"characterFormat\":{\"fontColor\":\"empty\"},\"paragraphFormat\":{\"styleName\":\"Normal\"},\"inlines\":[]}]},\"evenHeader\":{\"blocks\":[{\"inlines\":[]}]},\"evenFooter\":{\"blocks\":[{\"inlines\":[]}]},\"firstPageHeader\":{\"blocks\":[{\"inlines\":[]}]},\"firstPageFooter\":{\"blocks\":[{\"inlines\":[]}]}},\"sectionFormat\":{\"headerDistance\":36,\"footerDistance\":36,\"pageWidth\":612,\"pageHeight\":792,\"leftMargin\":72,\"rightMargin\":72,\"topMargin\":72,\"bottomMargin\":72,\"differentFirstPage\":false,\"differentOddAndEvenPages\":false,\"bidi\":false,\"restartPageNumbering\":false,\"pageStartingNumber\":0,\"endnoteNumberFormat\":\"LowerCaseRoman\",\"footNoteNumberFormat\":\"Arabic\",\"restartIndexForFootnotes\":\"DoNotRestart\",\"restartIndexForEndnotes\":\"DoNotRestart\"}}],\"characterFormat\":{\"bold\":false,\"italic\":false,\"strikethrough\":\"None\",\"baselineAlignment\":\"Normal\",\"fontSize\":11,\"fontFamily\":\"Calibri\",\"fontColor\":\"#00000000\",\"italicBidi\":false,\"fontSizeBidi\":11,\"fontFamilyBidi\":\"Calibri\"},\"paragraphFormat\":{\"leftIndent\":0,\"rightIndent\":0,\"firstLineIndent\":0,\"beforeSpacing\":0,\"afterSpacing\":0,\"lineSpacing\":1,\"lineSpacingType\":\"Multiple\",\"textAlignment\":\"Left\"},\"background\":{\"color\":\"#FFFFFFFF\"},\"styles\":[{\"type\":\"Paragraph\",\"name\":\"Normal\",\"next\":\"Normal\",\"characterFormat\":{\"fontColor\":\"empty\"}},{\"type\":\"Paragraph\",\"name\":\"Heading 1\",\"basedOn\":\"Normal\",\"next\":\"Normal\",\"link\":\"Heading 1 Char\",\"characterFormat\":{\"fontSize\":16,\"fontFamily\":\"Calibri Light\",\"fontColor\":\"#2F5496FF\",\"fontSizeBidi\":16,\"fontFamilyBidi\":\"Calibri Light\"},\"paragraphFormat\":{\"leftIndent\":0,\"rightIndent\":0,\"firstLineIndent\":0,\"beforeSpacing\":12,\"afterSpacing\":0,\"lineSpacing\":1.0791666507720947,\"lineSpacingType\":\"Multiple\",\"outlineLevel\":\"Level1\",\"textAlignment\":\"Left\"}},{\"type\":\"Character\",\"name\":\"Heading 1 Char\",\"basedOn\":\"Default Paragraph Font\",\"characterFormat\":{\"fontSize\":16,\"fontFamily\":\"Calibri Light\",\"fontColor\":\"#2F5496FF\",\"fontSizeBidi\":16,\"fontFamilyBidi\":\"Calibri Light\"}},{\"type\":\"Character\",\"name\":\"Default Paragraph Font\",\"characterFormat\":{\"fontColor\":\"empty\"}},{\"type\":\"Paragraph\",\"name\":\"Heading 2\",\"basedOn\":\"Normal\",\"next\":\"Normal\",\"link\":\"Heading 2 Char\",\"characterFormat\":{\"fontSize\":13,\"fontFamily\":\"Calibri Light\",\"fontColor\":\"#2F5496FF\",\"fontSizeBidi\":13,\"fontFamilyBidi\":\"Calibri Light\"},\"paragraphFormat\":{\"leftIndent\":0,\"rightIndent\":0,\"firstLineIndent\":0,\"beforeSpacing\":2,\"afterSpacing\":0,\"lineSpacing\":1.0791666507720947,\"lineSpacingType\":\"Multiple\",\"outlineLevel\":\"Level2\",\"textAlignment\":\"Left\"}},{\"type\":\"Character\",\"name\":\"Heading 2 Char\",\"basedOn\":\"Default Paragraph Font\",\"characterFormat\":{\"fontSize\":13,\"fontFamily\":\"Calibri Light\",\"fontColor\":\"#2F5496FF\",\"fontSizeBidi\":13,\"fontFamilyBidi\":\"Calibri Light\"}},{\"type\":\"Paragraph\",\"name\":\"Heading 3\",\"basedOn\":\"Normal\",\"next\":\"Normal\",\"link\":\"Heading 3 Char\",\"characterFormat\":{\"fontSize\":12,\"fontFamily\":\"Calibri Light\",\"fontColor\":\"#1F3763FF\",\"fontSizeBidi\":12,\"fontFamilyBidi\":\"Calibri Light\"},\"paragraphFormat\":{\"leftIndent\":0,\"rightIndent\":0,\"firstLineIndent\":0,\"beforeSpacing\":2,\"afterSpacing\":0,\"lineSpacing\":1.0791666507720947,\"lineSpacingType\":\"Multiple\",\"outlineLevel\":\"Level3\",\"textAlignment\":\"Left\"}},{\"type\":\"Character\",\"name\":\"Heading 3 Char\",\"basedOn\":\"Default Paragraph Font\",\"characterFormat\":{\"fontSize\":12,\"fontFamily\":\"Calibri Light\",\"fontColor\":\"#1F3763FF\",\"fontSizeBidi\":12,\"fontFamilyBidi\":\"Calibri Light\"}},{\"type\":\"Paragraph\",\"name\":\"Heading 4\",\"basedOn\":\"Normal\",\"next\":\"Normal\",\"link\":\"Heading 4 Char\",\"characterFormat\":{\"italic\":true,\"fontFamily\":\"Calibri Light\",\"fontColor\":\"#2F5496FF\",\"italicBidi\":true,\"fontFamilyBidi\":\"Calibri Light\"},\"paragraphFormat\":{\"leftIndent\":0,\"rightIndent\":0,\"firstLineIndent\":0,\"beforeSpacing\":2,\"afterSpacing\":0,\"lineSpacing\":1.0791666507720947,\"lineSpacingType\":\"Multiple\",\"outlineLevel\":\"Level4\",\"textAlignment\":\"Left\"}},{\"type\":\"Character\",\"name\":\"Heading 4 Char\",\"basedOn\":\"Default Paragraph Font\",\"characterFormat\":{\"italic\":true,\"fontFamily\":\"Calibri Light\",\"fontColor\":\"#2F5496FF\",\"italicBidi\":true,\"fontFamilyBidi\":\"Calibri Light\"}},{\"type\":\"Paragraph\",\"name\":\"Heading 5\",\"basedOn\":\"Normal\",\"next\":\"Normal\",\"link\":\"Heading 5 Char\",\"characterFormat\":{\"fontFamily\":\"Calibri Light\",\"fontColor\":\"#2F5496FF\",\"fontFamilyBidi\":\"Calibri Light\"},\"paragraphFormat\":{\"leftIndent\":0,\"rightIndent\":0,\"firstLineIndent\":0,\"beforeSpacing\":2,\"afterSpacing\":0,\"lineSpacing\":1.0791666507720947,\"lineSpacingType\":\"Multiple\",\"outlineLevel\":\"Level5\",\"textAlignment\":\"Left\"}},{\"type\":\"Character\",\"name\":\"Heading 5 Char\",\"basedOn\":\"Default Paragraph Font\",\"characterFormat\":{\"fontFamily\":\"Calibri Light\",\"fontColor\":\"#2F5496FF\",\"fontFamilyBidi\":\"Calibri Light\"}},{\"type\":\"Paragraph\",\"name\":\"Heading 6\",\"basedOn\":\"Normal\",\"next\":\"Normal\",\"link\":\"Heading 6 Char\",\"characterFormat\":{\"fontFamily\":\"Calibri Light\",\"fontColor\":\"#1F3763FF\",\"fontFamilyBidi\":\"Calibri Light\"},\"paragraphFormat\":{\"leftIndent\":0,\"rightIndent\":0,\"firstLineIndent\":0,\"beforeSpacing\":2,\"afterSpacing\":0,\"lineSpacing\":1.0791666507720947,\"lineSpacingType\":\"Multiple\",\"outlineLevel\":\"Level6\",\"textAlignment\":\"Left\"}},{\"type\":\"Character\",\"name\":\"Heading 6 Char\",\"basedOn\":\"Default Paragraph Font\",\"characterFormat\":{\"fontFamily\":\"Calibri Light\",\"fontColor\":\"#1F3763FF\",\"fontFamilyBidi\":\"Calibri Light\"}}],\"defaultTabWidth\":36,\"formatting\":false,\"trackChanges\":false,\"protectionType\":\"NoProtection\",\"enforcement\":false,\"dontUseHTMLParagraphAutoSpacing\":false,\"alignTablesRowByRow\":false,\"formFieldShading\":true,\"footnotes\":{\"separator\":[{\"characterFormat\":{\"fontColor\":\"empty\"},\"paragraphFormat\":{\"styleName\":\"Normal\"},\"inlines\":[{\"text\":\"\u0003\",\"characterFormat\":{\"fontColor\":\"empty\"}}]}],\"continuationSeparator\":[{\"characterFormat\":{\"fontColor\":\"empty\"},\"paragraphFormat\":{\"styleName\":\"Normal\"},\"inlines\":[{\"text\":\"\u0004\",\"characterFormat\":{\"fontColor\":\"empty\"}}]}],\"continuationNotice\":[{\"inlines\":[]}]},\"endnotes\":{\"separator\":[{\"characterFormat\":{\"fontColor\":\"empty\"},\"paragraphFormat\":{\"styleName\":\"Normal\"},\"inlines\":[{\"text\":\"\u0003\",\"characterFormat\":{\"fontColor\":\"empty\"}}]}],\"continuationSeparator\":[{\"characterFormat\":{\"fontColor\":\"empty\"},\"paragraphFormat\":{\"styleName\":\"Normal\"},\"inlines\":[{\"text\":\"\u0004\",\"characterFormat\":{\"fontColor\":\"empty\"}}]}],\"continuationNotice\":[{\"inlines\":[]}]}}";

I am trying to open this sfdt string into  document editor. Which throws an error like below.



Document looks like this. consist of one png image and some text.


Here is the Image: Untitled.png


could you please provide me infromation about what is the problem and soluion for it.


Regards,

Parth



KB Kurthis Banu Abdul Majeeth Syncfusion Team September 9, 2021 11:45 AM UTC

Hi Parth,  

We are cross checked your reported problem. We need some clarification regarding your reported issue. 

Please share below details to proceed further: 

1.       How are you generating the sfdt? 
2.       Share your backend details. If it is MVC, can you please check it you were using HttpResponseMessage as return type. 
 
 

Kindly share your original input word document. This will be helpful for us to investigate further and provide you the solution at the earliest. 

Note: If you have any confidential data in your document, please replace with some dummy data and provide us the same. We just need your document to recreate the problem you face. 

Regards, 
Kurthis Banu A. 



PK Parthkumar Kakadiya November 4, 2021 11:25 AM UTC

Hi,


I have one .dcox file which is not openning properly in the document editor. 



Like it can be seen from image, document editor having a lot of white space and nested index always start from new page.


I have also attached the .docx file which I try to open in document editor.

feel free to contact incase of more information. 


Parth


Attachment: agonvorlage_456121b0.7z


KB Kurthis Banu Abdul Majeeth Syncfusion Team November 8, 2021 06:55 AM UTC

Hi Parthkumar, 

Regarding: Section break continuous  
 
We have checked the provided document. It contains continuous section break. Currently, we have considered it as next page section break. Currently, document editor doesn’t provide support for section continuous layout. We have already logged this as feature request. We will include this feature in any of our upcoming release. 

You can track the status of feature from the below link:           

We will update the status of the feedback link once it is taken for implementation. We will update you once feature implemented. We appreciate your patience.  

Regards, 
Kurthis Banu A.        



PK Parthkumar Kakadiya November 17, 2021 05:47 PM UTC

Hi,


I am using Document editor for my Angular Application. 

Problem occures in Mac devices for Firefox and Chrom.

  1. For copy pasting text from docx to the document editor. Text is not displying in editor. I have feelings that only some text causing the problem. 
  2. Also pasted text doesn't take any formate as well. 


 I have attached the file with text which causing problem. 

Please let me know what is the problem and what can be the solution of this problem. (I have also checked it with your live example from your website:  https://ej2.syncfusion.com/angular/demos/#/material/document-editor/default


In my previous query you have created the feature request for the text formation.  which is :  https://www.syncfusion.com/feedback/5154/support-for-continuous-section-layout  

could you please also tell me that when are you gonna publish new version which the fix. As it's urgent for us as a user requirement. 


feel free for ask for any query. 


Reagards,

Parth 



Attachment: dokument_fehler_64d91cf4.7z


SM Suriya Murugan Syncfusion Team November 18, 2021 08:57 AM UTC

Hi Parth, 

Problem occures in Mac devices for Firefox and Chrom. 
  1. For copy pasting text from docx to the document editor. Text is not displying in editor. I have feelings that only some text causing the problem. 
  2. Also pasted text doesn't take any formate as well. 
 
 I have attached the file with text which causing problem.  
 
 
We couldn’t reproduce the reported issue. 
 
Can you please share the video illustration of the reported issue? that will be helpful for us to proceed further and provide you solution at earliest. 
In my previous query you have created the feature request for the text formation.  which is :  https://www.syncfusion.com/feedback/5154/support-for-continuous-section-layout   
could you please also tell me that when are you gonna publish new version which the fix. As it's urgent for us as a user requirement.  
 
We understand how this feature could be of value to you. But, due to other priority works, we are unable to implement this feature immediately. At present, it is not possible to provide timeline about this feature implementation. 
 
However, based on your interest in this feature, we will add priority to this feature request and consider implementing it sooner. Once we have a definite plan about this feature implementation, we will move the feedback to scheduled status with tentative release timeline. 

You can track the status of feature from the below link:  
 
 
  
 
Please let us know if you have any questions. 
 
Regards, 
Suriya M. 






PK Parthkumar Kakadiya November 25, 2021 03:05 PM UTC

Hi Suriya,


Problem occures in Mac devices for Firefox and Chrom. 
  1. For copy pasting text from docx to the document editor. Text is not displying in editor. I have feelings that only some text causing the problem. 
  2. Also pasted text doesn't take any formate as well. 
 I have attached the file with text which causing problem.  


for above problem video I have attached and also available at this link:

https://theaterportal.eu/s/N2xt7TXaiDxB48C


You can download from there. I have also attached the document as well. 


Please provide me possible solution as soon as possible. Thanks 


Regards,´

parth 


Attachment: Copy_Past_problem_211909dc.7z


SM Suriya Murugan Syncfusion Team November 26, 2021 12:13 PM UTC

Hi parth, 

We will check reported issue in MAC and will share details by November 30,2021. 

Regards, 
Suriya M. 



SM Suriya Murugan Syncfusion Team December 1, 2021 03:29 AM UTC

Hi parth,  

Apologies! 

We will check and update further details on or before December 2,2021. 

Regards,  
Suriya M.  




SM Suriya Murugan Syncfusion Team December 3, 2021 03:30 AM UTC

Hi Parth, 

Currently, we are checking the reported issue. In meantime, can you please confirm are you facing the same issue in Syncfusion demo site also? 


Regards, 
Suriya M. 



Loader.
Up arrow icon