metanorma-iso 2.1.1 → 2.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/html2doc/lists.rb +145 -10
- data/lib/isodoc/iso/base_convert.rb +10 -0
- data/lib/isodoc/iso/html/html_iso_titlepage.html +2 -0
- data/lib/isodoc/iso/html/isodoc-dis.css +173 -257
- data/lib/isodoc/iso/html/isodoc-dis.scss +173 -249
- data/lib/isodoc/iso/html/isodoc.css +38 -13
- data/lib/isodoc/iso/html/isodoc.scss +38 -12
- data/lib/isodoc/iso/html/style-human.css +14 -1
- data/lib/isodoc/iso/html/style-human.scss +10 -1
- data/lib/isodoc/iso/html/style-iso.css +35 -23
- data/lib/isodoc/iso/html/style-iso.scss +31 -23
- data/lib/isodoc/iso/html/word_iso_intro-dis.html +1 -6
- data/lib/isodoc/iso/html/word_iso_titlepage-dis.html +24 -13
- data/lib/isodoc/iso/html/word_iso_titlepage-prf.html +58 -0
- data/lib/isodoc/iso/html/word_iso_titlepage.html +6 -2
- data/lib/isodoc/iso/html_convert.rb +5 -0
- data/lib/isodoc/iso/i18n-en.yaml +32 -4
- data/lib/isodoc/iso/i18n-fr.yaml +29 -3
- data/lib/isodoc/iso/i18n-ru.yaml +32 -4
- data/lib/isodoc/iso/i18n-zh-Hans.yaml +32 -3
- data/lib/isodoc/iso/i18n.rb +1 -1
- data/lib/isodoc/iso/iso.amendment.xsl +750 -307
- data/lib/isodoc/iso/iso.international-standard.xsl +750 -307
- data/lib/isodoc/iso/metadata.rb +63 -63
- data/lib/isodoc/iso/presentation_bibdata.rb +74 -0
- data/lib/isodoc/iso/presentation_xml_convert.rb +15 -4
- data/lib/isodoc/iso/presentation_xref.rb +8 -2
- data/lib/isodoc/iso/sections.rb +1 -1
- data/lib/isodoc/iso/word_cleanup.rb +3 -0
- data/lib/isodoc/iso/word_convert.rb +6 -3
- data/lib/isodoc/iso/word_dis_cleanup.rb +243 -0
- data/lib/isodoc/iso/word_dis_convert.rb +47 -108
- data/lib/isodoc/iso/xref.rb +34 -6
- data/lib/metanorma/iso/base.rb +14 -1
- data/lib/metanorma/iso/biblio.rng +134 -39
- data/lib/metanorma/iso/boilerplate-fr.xml +3 -0
- data/lib/metanorma/iso/boilerplate-ru.xml +3 -0
- data/lib/metanorma/iso/boilerplate.xml +3 -0
- data/lib/metanorma/iso/cleanup.rb +53 -13
- data/lib/metanorma/iso/front.rb +38 -6
- data/lib/metanorma/iso/front_id.rb +2 -0
- data/lib/metanorma/iso/isodoc.rng +32 -0
- data/lib/metanorma/iso/isostandard.rng +32 -12
- data/lib/metanorma/iso/validate_section.rb +0 -12
- data/lib/metanorma/iso/version.rb +1 -1
- data/spec/isodoc/amd_spec.rb +4 -30
- data/spec/isodoc/blocks_spec.rb +499 -2
- data/spec/isodoc/i18n_spec.rb +145 -80
- data/spec/isodoc/iso_spec.rb +50 -169
- data/spec/isodoc/metadata_spec.rb +223 -83
- data/spec/isodoc/postproc_spec.rb +41 -5
- data/spec/isodoc/section_spec.rb +9 -9
- data/spec/isodoc/word_dis_spec.rb +1332 -146
- data/spec/isodoc/xref_spec.rb +87 -13
- data/spec/metanorma/amd_spec.rb +39 -23
- data/spec/metanorma/base_spec.rb +174 -44
- data/spec/metanorma/blocks_spec.rb +21 -0
- data/spec/metanorma/cleanup_spec.rb +196 -196
- data/spec/metanorma/lists_spec.rb +2 -2
- data/spec/metanorma/section_spec.rb +2 -2
- data/spec/metanorma/validate_spec.rb +8 -19
- data/spec/spec_helper.rb +10 -7
- data/spec/vcr_cassettes/withdrawn_iso.yml +30 -30
- metadata +6 -8
- data/docs/asciiiso-syntax.adoc +0 -307
- data/docs/guidance.adoc +0 -487
- data/docs/navigation.adoc +0 -23
- data/docs/quickstart.adoc +0 -179
- data/lib/isodoc/iso/presentation_inline.rb +0 -90
@@ -30,12 +30,19 @@
|
|
30
30
|
</xsl:variable>
|
31
31
|
<xsl:variable name="copyrightYear" select="/iso:iso-standard/iso:bibdata/iso:copyright/iso:from"/>
|
32
32
|
<xsl:variable name="copyrightAbbr_">
|
33
|
-
<xsl:for-each select="/iso:iso-standard/iso:bibdata/iso:copyright/iso:owner/iso:organization/iso:abbreviation">
|
33
|
+
<xsl:for-each select="/iso:iso-standard/iso:bibdata/iso:copyright/iso:owner/iso:organization/iso:abbreviation[. != 'IEEE']">
|
34
34
|
<xsl:value-of select="."/><xsl:if test="position() != last()">/</xsl:if>
|
35
35
|
</xsl:for-each>
|
36
36
|
</xsl:variable>
|
37
37
|
<xsl:variable name="copyrightAbbr" select="normalize-space($copyrightAbbr_)"/>
|
38
|
-
<xsl:variable name="
|
38
|
+
<xsl:variable name="copyrightAbbrIEEE" select="normalize-space(/iso:iso-standard/iso:bibdata/iso:copyright/iso:owner/iso:organization/iso:abbreviation[. = 'IEEE'])"/>
|
39
|
+
<xsl:variable name="copyrightText">
|
40
|
+
<xsl:value-of select="concat('© ', $copyrightAbbr, ' ', $copyrightYear ,' – ', $all_rights_reserved)"/>
|
41
|
+
<xsl:if test="$copyrightAbbrIEEE != ''">
|
42
|
+
<xsl:value-of select="$linebreak"/>
|
43
|
+
<xsl:value-of select="concat('© ', $copyrightAbbrIEEE, ' ', $copyrightYear ,' – ', $all_rights_reserved)"/>
|
44
|
+
</xsl:if>
|
45
|
+
</xsl:variable>
|
39
46
|
|
40
47
|
<xsl:variable name="lang-1st-letter_tmp" select="substring-before(substring-after(/iso:iso-standard/iso:bibdata/iso:docidentifier[@type = 'iso-with-lang'], '('), ')')"/>
|
41
48
|
<xsl:variable name="lang-1st-letter" select="concat('(', $lang-1st-letter_tmp , ')')"/>
|
@@ -195,22 +202,48 @@
|
|
195
202
|
</xsl:variable>
|
196
203
|
|
197
204
|
<xsl:variable name="editorialgroup_">
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
<xsl:
|
203
|
-
<xsl:
|
205
|
+
<!-- Example: ISO/TC 46/SC 2 -->
|
206
|
+
<!-- ISO/SG SMART/SG TS/AG 1 -->
|
207
|
+
<xsl:variable name="approvalgroup" select="normalize-space(/iso:iso-standard/iso:bibdata/iso:ext/iso:approvalgroup/@identifier)"/>
|
208
|
+
<xsl:variable name="parts_by_slash">
|
209
|
+
<xsl:call-template name="split">
|
210
|
+
<xsl:with-param name="pText" select="$approvalgroup"/>
|
211
|
+
<xsl:with-param name="sep" select="'/'"/>
|
212
|
+
<xsl:with-param name="normalize-space">false</xsl:with-param>
|
213
|
+
<xsl:with-param name="keep_sep">true</xsl:with-param>
|
214
|
+
</xsl:call-template>
|
215
|
+
</xsl:variable>
|
216
|
+
<xsl:variable name="parts_with_subparts">
|
217
|
+
<xsl:for-each select="xalan:nodeset($parts_by_slash)//item">
|
218
|
+
<subitem>
|
219
|
+
<xsl:call-template name="split">
|
220
|
+
<xsl:with-param name="pText" select="."/>
|
221
|
+
<xsl:with-param name="sep" select="' '"/>
|
222
|
+
<xsl:with-param name="normalize-space">false</xsl:with-param>
|
223
|
+
<xsl:with-param name="keep_sep">true</xsl:with-param>
|
224
|
+
</xsl:call-template>
|
225
|
+
</subitem>
|
204
226
|
</xsl:for-each>
|
205
|
-
<xsl:if test="not($stage-abbreviation = 'DIS' or $stage-abbreviation = 'FDIS')">
|
206
|
-
<xsl:for-each select="/iso:iso-standard/iso:bibdata/iso:ext/iso:editorialgroup/iso:workgroup[normalize-space(@number) != '']">
|
207
|
-
<xsl:text>/WG </xsl:text><fo:inline font-weight="bold"><xsl:value-of select="@number"/></fo:inline>
|
208
|
-
</xsl:for-each>
|
209
|
-
</xsl:if>
|
210
227
|
</xsl:variable>
|
211
|
-
<xsl:
|
212
|
-
<xsl:
|
213
|
-
|
228
|
+
<xsl:for-each select="xalan:nodeset($parts_with_subparts)//subitem">
|
229
|
+
<xsl:choose>
|
230
|
+
<xsl:when test="position() = 1">
|
231
|
+
<xsl:value-of select="."/>
|
232
|
+
</xsl:when>
|
233
|
+
<xsl:otherwise>
|
234
|
+
<xsl:for-each select="item">
|
235
|
+
<xsl:choose>
|
236
|
+
<xsl:when test="position() = last()">
|
237
|
+
<fo:inline font-weight="bold"><xsl:value-of select="."/></fo:inline>
|
238
|
+
</xsl:when>
|
239
|
+
<xsl:otherwise>
|
240
|
+
<xsl:value-of select="."/>
|
241
|
+
</xsl:otherwise>
|
242
|
+
</xsl:choose>
|
243
|
+
</xsl:for-each>
|
244
|
+
</xsl:otherwise>
|
245
|
+
</xsl:choose>
|
246
|
+
</xsl:for-each>
|
214
247
|
</xsl:variable>
|
215
248
|
<xsl:variable name="editorialgroup" select="xalan:nodeset($editorialgroup_)"/>
|
216
249
|
|
@@ -243,9 +276,9 @@
|
|
243
276
|
|
244
277
|
<xsl:variable name="root-style">
|
245
278
|
<root-style xsl:use-attribute-sets="root-style">
|
246
|
-
<xsl:if test="$lang = 'zh'">
|
279
|
+
<!-- <xsl:if test="$lang = 'zh'">
|
247
280
|
<xsl:attribute name="font-family">Source Han Sans, Times New Roman, Cambria Math</xsl:attribute>
|
248
|
-
</xsl:if>
|
281
|
+
</xsl:if> -->
|
249
282
|
</root-style>
|
250
283
|
</xsl:variable>
|
251
284
|
<xsl:call-template name="insertRootStyle">
|
@@ -264,25 +297,25 @@
|
|
264
297
|
</fo:simple-page-master>
|
265
298
|
|
266
299
|
<fo:simple-page-master master-name="cover-page-published" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
267
|
-
<fo:region-body margin-top="12.7mm" margin-bottom="
|
300
|
+
<fo:region-body margin-top="12.7mm" margin-bottom="75mm" margin-left="78mm" margin-right="18.5mm"/>
|
268
301
|
<fo:region-before region-name="cover-page-header" extent="12.7mm"/>
|
269
|
-
<fo:region-after region-name="cover-page-footer" extent="
|
302
|
+
<fo:region-after region-name="cover-page-footer" extent="75mm" display-align="after"/>
|
270
303
|
<fo:region-start region-name="cover-left-region" extent="78mm"/>
|
271
304
|
<fo:region-end region-name="cover-right-region" extent="18.5mm"/>
|
272
305
|
</fo:simple-page-master>
|
273
306
|
|
274
307
|
|
275
308
|
<fo:simple-page-master master-name="cover-page-publishedISO-odd" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
276
|
-
<fo:region-body margin-top="12.7mm" margin-bottom="
|
309
|
+
<fo:region-body margin-top="12.7mm" margin-bottom="75mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
|
277
310
|
<fo:region-before region-name="cover-page-header" extent="12.7mm"/>
|
278
|
-
<fo:region-after region-name="cover-page-footer" extent="
|
311
|
+
<fo:region-after region-name="cover-page-footer" extent="75mm" display-align="after"/>
|
279
312
|
<fo:region-start region-name="cover-left-region" extent="{$marginLeftRight1}mm"/>
|
280
313
|
<fo:region-end region-name="cover-right-region" extent="{$marginLeftRight2}mm"/>
|
281
314
|
</fo:simple-page-master>
|
282
315
|
<fo:simple-page-master master-name="cover-page-publishedISO-even" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
283
|
-
<fo:region-body margin-top="12.7mm" margin-bottom="
|
316
|
+
<fo:region-body margin-top="12.7mm" margin-bottom="75mm" margin-left="{$marginLeftRight2}mm" margin-right="{$marginLeftRight1}mm"/>
|
284
317
|
<fo:region-before region-name="cover-page-header" extent="12.7mm"/>
|
285
|
-
<fo:region-after region-name="cover-page-footer" extent="
|
318
|
+
<fo:region-after region-name="cover-page-footer" extent="75mm" display-align="after"/>
|
286
319
|
<fo:region-start region-name="cover-left-region" extent="{$marginLeftRight2}mm"/>
|
287
320
|
<fo:region-end region-name="cover-right-region" extent="{$marginLeftRight1}mm"/>
|
288
321
|
</fo:simple-page-master>
|
@@ -431,9 +464,9 @@
|
|
431
464
|
<fo:table-column column-width="112.5mm"/>
|
432
465
|
<fo:table-body>
|
433
466
|
<fo:table-row>
|
434
|
-
<fo:table-cell font-size="6.5pt" text-align="justify" display-align="after" padding-bottom="8mm"
|
467
|
+
<fo:table-cell font-size="6.5pt" text-align="justify" display-align="after" padding-bottom="8mm">
|
435
468
|
<!-- margin-top="-30mm" -->
|
436
|
-
<fo:block margin-top="-100mm"
|
469
|
+
<fo:block> <!-- margin-top="-100mm" -->
|
437
470
|
<xsl:if test="$stage-abbreviation = 'DIS' or $stage-abbreviation = 'NWIP' or $stage-abbreviation = 'NP' or $stage-abbreviation = 'PWI' or $stage-abbreviation = 'AWI' or $stage-abbreviation = 'WD' or $stage-abbreviation = 'CD'">
|
438
471
|
<fo:block margin-bottom="1.5mm">
|
439
472
|
<xsl:text>THIS DOCUMENT IS A DRAFT CIRCULATED FOR COMMENT AND APPROVAL. IT IS THEREFORE SUBJECT TO CHANGE AND MAY NOT BE REFERRED TO AS AN INTERNATIONAL STANDARD UNTIL PUBLISHED AS SUCH.</xsl:text>
|
@@ -463,31 +496,82 @@
|
|
463
496
|
<fo:table-cell>
|
464
497
|
<fo:block> </fo:block>
|
465
498
|
</fo:table-cell>
|
466
|
-
<fo:table-cell>
|
467
|
-
<
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
499
|
+
<fo:table-cell display-align="after" padding-bottom="3mm">
|
500
|
+
<fo:block-container height="22.5mm" display-align="center">
|
501
|
+
|
502
|
+
<xsl:variable name="iso-fast-track">false</xsl:variable>
|
503
|
+
|
504
|
+
<xsl:if test="normalize-space($iso-fast-track) = 'true'">
|
505
|
+
<xsl:attribute name="height">28mm</xsl:attribute>
|
506
|
+
</xsl:if>
|
507
|
+
|
508
|
+
<fo:block>
|
509
|
+
<xsl:if test="$stage-abbreviation = 'NWIP' or $stage-abbreviation = 'NP' or $stage-abbreviation = 'PWI' or $stage-abbreviation = 'AWI' or $stage-abbreviation = 'WD' or $stage-abbreviation = 'CD' or $stage-abbreviation = 'DIS' or $stage-abbreviation = 'FDIS'">
|
510
|
+
<xsl:variable name="text">
|
511
|
+
<xsl:for-each select="/iso:iso-standard/iso:preface/iso:note[@coverpage='true']/iso:p">
|
512
|
+
<fo:block>
|
513
|
+
<xsl:apply-templates/>
|
514
|
+
</fo:block>
|
515
|
+
</xsl:for-each>
|
516
|
+
</xsl:variable>
|
517
|
+
<xsl:if test="normalize-space($text) != ''">
|
518
|
+
<fo:block-container margin-left="1mm"> <!-- margin-bottom="7mm" margin-top="-15mm" -->
|
519
|
+
<fo:block font-size="9pt" border="0.5pt solid black" fox:border-radius="5pt" padding-left="2mm" padding-top="2mm" padding-bottom="2mm">
|
520
|
+
<!-- <xsl:text>This document is circulated as received from the committee secretariat.</xsl:text> -->
|
521
|
+
<xsl:copy-of select="xalan:nodeset($text)/node()"/>
|
522
|
+
</fo:block>
|
523
|
+
</fo:block-container>
|
524
|
+
</xsl:if>
|
525
|
+
|
526
|
+
<xsl:if test="normalize-space($iso-fast-track) = 'true'">
|
527
|
+
<fo:block-container space-before="2mm">
|
528
|
+
<fo:block background-color="rgb(77,77,77)" color="white" fox:border-radius="5pt" text-align="center" display-align="center" font-size="19pt" font-weight="bold">
|
529
|
+
<fo:block-container height="13.2mm">
|
530
|
+
<fo:block>
|
531
|
+
<xsl:text>FAST TRACK PROCEDURE</xsl:text>
|
532
|
+
</fo:block>
|
533
|
+
</fo:block-container>
|
534
|
+
</fo:block>
|
535
|
+
</fo:block-container>
|
536
|
+
</xsl:if>
|
537
|
+
</xsl:if>
|
538
|
+
</fo:block>
|
539
|
+
</fo:block-container>
|
474
540
|
<fo:block>
|
475
541
|
<xsl:call-template name="insertTripleLine"/>
|
476
|
-
<fo:table table-layout="fixed" width="100%" margin-bottom="3mm"
|
542
|
+
<fo:table table-layout="fixed" width="100%"> <!-- margin-bottom="3mm" -->
|
477
543
|
<fo:table-column column-width="50%"/>
|
478
544
|
<fo:table-column column-width="50%"/>
|
479
545
|
<fo:table-body>
|
480
546
|
<fo:table-row height="34mm">
|
481
547
|
<fo:table-cell display-align="center">
|
548
|
+
|
549
|
+
<xsl:if test="$copyrightAbbrIEEE != ''">
|
550
|
+
<xsl:attribute name="display-align">before</xsl:attribute>
|
551
|
+
</xsl:if>
|
552
|
+
|
482
553
|
<fo:block text-align="left" margin-top="2mm">
|
483
|
-
|
484
|
-
<xsl:
|
554
|
+
|
555
|
+
<xsl:if test="$copyrightAbbrIEEE != ''">
|
556
|
+
<xsl:attribute name="margin-top">0</xsl:attribute>
|
557
|
+
</xsl:if>
|
558
|
+
|
559
|
+
<!-- <xsl:variable name="docid" select="substring-before(/iso:iso-standard/iso:bibdata/iso:docidentifier, ' ')"/>
|
560
|
+
<xsl:for-each select="xalan:tokenize($docid, '/')"> -->
|
561
|
+
<xsl:variable name="content-height">
|
562
|
+
<xsl:choose>
|
563
|
+
<xsl:when test="$copyrightAbbrIEEE != ''">13.9</xsl:when>
|
564
|
+
<xsl:otherwise>19</xsl:otherwise>
|
565
|
+
</xsl:choose>
|
566
|
+
</xsl:variable>
|
567
|
+
|
568
|
+
<xsl:for-each select="/iso:iso-standard/iso:bibdata/iso:copyright/iso:owner/iso:organization/iso:abbreviation[. != 'IEEE']">
|
485
569
|
<xsl:choose>
|
486
570
|
<xsl:when test=". = 'ISO'">
|
487
|
-
<fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-ISO-Logo))}" content-height="
|
571
|
+
<fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-ISO-Logo))}" content-height="{$content-height}mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
|
488
572
|
</xsl:when>
|
489
573
|
<xsl:when test=". = 'IEC'">
|
490
|
-
<fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-IEC-Logo))}" content-height="
|
574
|
+
<fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-IEC-Logo))}" content-height="{$content-height}mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
|
491
575
|
</xsl:when>
|
492
576
|
<xsl:otherwise/>
|
493
577
|
</xsl:choose>
|
@@ -495,6 +579,11 @@
|
|
495
579
|
<fo:inline padding-right="1mm"> </fo:inline>
|
496
580
|
</xsl:if>
|
497
581
|
</xsl:for-each>
|
582
|
+
<xsl:if test="$copyrightAbbrIEEE != ''">
|
583
|
+
<fo:block>
|
584
|
+
<fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-IEEE-Logo))}" content-height="11mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
|
585
|
+
</fo:block>
|
586
|
+
</xsl:if>
|
498
587
|
</fo:block>
|
499
588
|
</fo:table-cell>
|
500
589
|
<fo:table-cell display-align="center">
|
@@ -508,7 +597,17 @@
|
|
508
597
|
<fo:block>
|
509
598
|
<xsl:value-of select="$ISOname"/>
|
510
599
|
</fo:block>
|
511
|
-
<fo:block space-before="28pt"
|
600
|
+
<fo:block space-before="28pt">
|
601
|
+
<xsl:if test="$copyrightAbbrIEEE != ''">
|
602
|
+
<xsl:attribute name="space-before">14pt</xsl:attribute>
|
603
|
+
</xsl:if>
|
604
|
+
<fo:inline font-size="9pt">©</fo:inline><xsl:value-of select="concat(' ', $copyrightAbbr, ' ', $copyrightYear)"/>
|
605
|
+
<xsl:if test="$copyrightAbbrIEEE != ''">
|
606
|
+
<xsl:value-of select="$linebreak"/>
|
607
|
+
<fo:inline font-size="9pt">©</fo:inline>
|
608
|
+
<xsl:value-of select="concat(' ', $copyrightAbbrIEEE, ' ', $copyrightYear)"/>
|
609
|
+
</xsl:if>
|
610
|
+
</fo:block>
|
512
611
|
</fo:block>
|
513
612
|
</fo:table-cell>
|
514
613
|
</fo:table-row>
|
@@ -713,7 +812,7 @@
|
|
713
812
|
<xsl:call-template name="printEdition"/>
|
714
813
|
</xsl:if>
|
715
814
|
<xsl:choose>
|
716
|
-
<xsl:when test="($stage-abbreviation = 'PWI' or $stage-abbreviation = 'AWI' or $stage-abbreviation = 'WD' or $stage-abbreviation = 'CD') and /iso:iso-standard/iso:bibdata/iso:version/iso:revision-date">
|
815
|
+
<xsl:when test="($stage-abbreviation = 'NWIP' or $stage-abbreviation = 'NP' or $stage-abbreviation = 'PWI' or $stage-abbreviation = 'AWI' or $stage-abbreviation = 'WD' or $stage-abbreviation = 'CD' or $stage-abbreviation = 'FDIS') and /iso:iso-standard/iso:bibdata/iso:version/iso:revision-date">
|
717
816
|
<xsl:value-of select="$linebreak"/>
|
718
817
|
<xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:version/iso:revision-date"/>
|
719
818
|
</xsl:when>
|
@@ -756,7 +855,7 @@
|
|
756
855
|
<fo:table-cell><fo:block/></fo:table-cell>
|
757
856
|
<fo:table-cell number-columns-spanned="2" font-size="10pt" line-height="1.2" display-align="center">
|
758
857
|
<fo:block>
|
759
|
-
<xsl:if test="$stage-abbreviation = 'PWI' or $stage-abbreviation = 'AWI' or $stage-abbreviation = 'WD' or $stage-abbreviation = 'CD'">
|
858
|
+
<xsl:if test="$stage-abbreviation = 'NWIP' or $stage-abbreviation = 'NP' or $stage-abbreviation = 'PWI' or $stage-abbreviation = 'AWI' or $stage-abbreviation = 'WD' or $stage-abbreviation = 'CD' or $stage-abbreviation = 'FDIS'">
|
760
859
|
<fo:table table-layout="fixed" width="100%">
|
761
860
|
<fo:table-column column-width="50%"/>
|
762
861
|
<fo:table-column column-width="50%"/>
|
@@ -868,7 +967,7 @@
|
|
868
967
|
</fo:block>
|
869
968
|
</xsl:for-each>
|
870
969
|
|
871
|
-
<xsl:if test="$stage-abbreviation = 'PWI' or $stage-abbreviation = 'AWI' or $stage-abbreviation = 'WD' or $stage-abbreviation = 'CD'">
|
970
|
+
<xsl:if test="$stage-abbreviation = 'NWIP' or $stage-abbreviation = 'NP' or $stage-abbreviation = 'PWI' or $stage-abbreviation = 'AWI' or $stage-abbreviation = 'WD' or $stage-abbreviation = 'CD' or $stage-abbreviation = 'FDIS'">
|
872
971
|
<fo:block margin-top="10mm">
|
873
972
|
<xsl:copy-of select="$ics"/>
|
874
973
|
</fo:block>
|
@@ -920,7 +1019,13 @@
|
|
920
1019
|
<fo:block><xsl:value-of select="$ISOname"/></fo:block>
|
921
1020
|
<fo:block> </fo:block>
|
922
1021
|
<fo:block> </fo:block>
|
923
|
-
<fo:block><fo:inline font-size="9pt">©</fo:inline><xsl:value-of select="concat(' ', $copyrightAbbr, ' ', $copyrightYear)"
|
1022
|
+
<fo:block><fo:inline font-size="9pt">©</fo:inline><xsl:value-of select="concat(' ', $copyrightAbbr, ' ', $copyrightYear)"/>
|
1023
|
+
<xsl:if test="$copyrightAbbrIEEE != ''">
|
1024
|
+
<xsl:value-of select="$linebreak"/>
|
1025
|
+
<fo:inline font-size="9pt">©</fo:inline>
|
1026
|
+
<xsl:value-of select="concat(' ', $copyrightAbbrIEEE, ' ', $copyrightYear)"/>
|
1027
|
+
</xsl:if>
|
1028
|
+
</fo:block>
|
924
1029
|
</fo:block>
|
925
1030
|
</fo:table-cell>
|
926
1031
|
</fo:table-row>
|
@@ -1927,6 +2032,9 @@
|
|
1927
2032
|
<fo:table-body>
|
1928
2033
|
<fo:table-row>
|
1929
2034
|
<fo:table-cell display-align="center" padding-top="0mm" font-size="11pt" font-weight="{$font-weight}">
|
2035
|
+
<xsl:if test="contains($copyrightText, 'IEEE')">
|
2036
|
+
<xsl:attribute name="display-align">before</xsl:attribute>
|
2037
|
+
</xsl:if>
|
1930
2038
|
<fo:block><fo:page-number/></fo:block>
|
1931
2039
|
</fo:table-cell>
|
1932
2040
|
<fo:table-cell display-align="center">
|
@@ -1981,6 +2089,9 @@
|
|
1981
2089
|
</fo:block>
|
1982
2090
|
</fo:table-cell>
|
1983
2091
|
<fo:table-cell display-align="center" padding-top="0mm" font-size="11pt" font-weight="{$font-weight}">
|
2092
|
+
<xsl:if test="contains($copyrightText, 'IEEE')">
|
2093
|
+
<xsl:attribute name="display-align">before</xsl:attribute>
|
2094
|
+
</xsl:if>
|
1984
2095
|
<fo:block text-align="right"><fo:page-number/></fo:block>
|
1985
2096
|
</fo:table-cell>
|
1986
2097
|
</fo:table-row>
|
@@ -2013,20 +2124,51 @@
|
|
2013
2124
|
<xsl:text>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</xsl:text>
|
2014
2125
|
</xsl:variable>
|
2015
2126
|
|
2127
|
+
<xsl:variable name="Image-IEEE-Logo">
|
2128
|
+
<xsl:text>iVBORw0KGgoAAAANSUhEUgAABvEAAAIMCAYAAADM7YCkAAAACXBIWXMAALiNAAC4jQEesVnLAAAgAElEQVR4nOzdZ3xVZd718XWSEJIAEoLSYW+5EHQAgxUFVKSG0EIA6aCIFFFEitg7ghVFRXpRBCwgIHbFLo7ldpCxjplJnFEZRwLcqAEh5HlBmMdbEZKc65zrlN/31Xwcs/5rRvQFy713QAAgyXh+VUmNJFWVtFfS/0r6Z15B/i9OiwEAAAAAAAAAEIcCrgsAcMN4fpKkLEm5ks6WZA7xp+2T9LGklyU9nleQ/2H4GgIAAAAAAAAAEL8Y8YA4Yzw/WdLFkq6QVLecP/5nSbfkFeQ/Y70YAAAAAAAAAAD4L0Y8II4Yz28jaYmkpkFGbZA0Oq8g/7vgWwEAAAAAAAAAgN9ixAPiROmA97qkJEuR+ZJOyivI32EpDwAAAAAAAAAAlEpwXQBA6BnPT5e0QvYGPEnyJc23mAcAAAAAAAAAAEox4gHxYb4kLwS5/Y3nXxSCXAAAAAAAAAAA4hqv0wRiXOnIFson5n6WdGpeQf5nIbwBAAAAAAAAAEBcYcQDYpjx/BMkfSApLcSnPpbUOq8gf3eI7wAAAAAAAAAAEBd4nSYQo4znV5a0SqEf8CTpREl3heEOAAAAAAAAAABxgREPiF136sC4Fi7jjef3DuM9AAAAAAAAAABiFq/TBGKQ8fwekp52cLpQUmZeQf6/HNwGAAAAAAAAACBmMOIBMcZ4fj0d+EZdTUcVXpfUMa8gv9jRfQAAAAAAAAAAol6i6wIA7DGenyhpraQ/OazhSyrZvnPHaw47AAAAAAAAAAAQ1fgmHhBbrpN0rusSkq4znt/edQkAAAAAAAAAAKIVr9MEYoTx/HMkbVTkjPPfSWqVV5D/vesiAAAAAAAAAABEm0j5zX4AQTCeX0vSSkXW39N1JS03nh9JnQAAAAAAAAAAiAp8Ew+IcsbzA5KelHSS6y6HYCTt3r5zx1uuiwAAAAAAAAAAEE14QgaIftMkZbkucRi3Gs9v57oEAAAAAAAAAADRhG/iAVHMeP6Zkt6QlOS6yxF8IykzryB/m+siAAAAAAAAAABEA57EA6KU8fwMSY8p8gc8SaovaWnpqz8BAAAAAAAAAMAR8E08IAqVjmErJLV23aUcmkr6cfvOHe+4LgIAAAAAAAAAQKTjSTwgOl0mKcd1iQqYUfoKUAAAAAAAAAAAcBi82g6IMlH0Hbw/8o2kVnkF+T+4LgIAAAAAAAAAQKTiSTwgikTZd/D+SH1Jy43n888fAAAAAAAAAAD+AN/EA6JE6Xfw1kg6xXUXC5pIKt6+c8cbrosAAAAAAAAAABCJeBIGiB5XSspyXcKiG43nd3RdAgAAAAAAAACASMQ38YAoYDz/HEkbFXvD+78lnZxXkP+t6yIAAAAAAAAAAEQSRjwgwhnPry3pI0l1XXcJkTckdcgryC92XQQAAAAAAAAAgEjBN/GACGY8P1HSWkknuu4SQp6kytt37njZdREAAAAAAAAAACJFrL2aD4g110vq4LpEGEwznt/DdQkAAAAAAAAAACIFr9MEIpTx/CxJzyp+/j7dIemUvIL8v7suAgAAAAAAAACAa/EyDgBRxXi+L+l/JNVwXCXc/iKpTV5BfpHrIgAAAAAAAAAAuMTrNIEIYzy/sqQnFH8DniS1kjTHdQkAAAAAAAAAAFxLdF0AwP+VkZ7+kKSerns41CojPf277Tt3fOi6CAAAAAAAAAAArvA6TSCCGM8fIWmp6x4R4BdJ7fIK8t93XQQAAAAAAAAAABcY8YAIYTw/U9K7klJcd4kQX0s6Oa8gf5vrIgAAAAAAAAAAhBvfxAMigPH8dEmrxYD3a40kPWo8n39OAQAAAAAAAADiDt/EAxwznh+Q9JikM113iUBNJAW279zxmusiAAAAAAAAAACEE0+4AO5Nk9TLdYkIdp3x/B6uSwAAAAAAAAAAEE58Ew9wyHh+Z0nPi0H9SHZKOi2vIP9vrosAAAAAAAAAABAOjHiAI8bzfUkfSspwXCVafCLpjLyC/B9dFwEAAAAAAAAAINR4+gdwwHh+qqQ1YsArj+aSlpR+QxAAAAAAAAAAgJjGiAe4MVfSSa5LRKF+kqa6LgEAAAAAAAAAQKjxRAsQZsbzL5U023WPKLZfUlZeQf5LrosAAAAAAAAAABAqjHhAGBnPbydpo6RKrrtEuUJJp+QV5Oe7LgIAAAAAAAAAQCgw4gFhYjy/rqSPJNV23SVGbJZ0Zl5BfpHrIgAAAAAAAAAA2MY38YAwMJ6fLGm1GPBsypQ033UJAAAAAAAAAABCIdF1ASAeZKSn3y+pj+seMejEjPT0Xdt37tjkuggAAAAAAAAAADbxOk0gxIznj5Y0z3WPGLZfUlZeQf5LrosAAAAAAAAAAGALIx4QQsbz20h6TVIlx1Vi3XZJp+UV5Oe5LgIAAAAAAAAAgA2MeECIGM+vL+lD8R28cPlE0pl5Bfm7XBcBAAAAAAAAACBYCa4LALHIeH6KpKfEgBdOzSU9bDyffzkBAAAAAAAAABD1GPGA0Jgr6TTXJeJQjqQbXJcAAAAAAAAAACBYia4LALHGeP5ESdNc94hj7TPS0z/evnPH566LAAAAAAAAAABQUbx2DrDIeH4HSS+Kgdy1nySdkVeQ/1fXRQAAAAAAAAAAqAhGPMAS4/m+pA8lZTiuggP+Lun0vIL8ba6LAAAAAAAAAABQXnwTD7DAeH5VSevFgBdJGkt60nh+JddFAAAAAAAAAAAoL0Y8IEjG8wOSHpXU0nUX/E57Sfe7LgEAAAAAAAAAQHnx3S4gSBnp6dMljXLdA3/o1Iz09G3bd+54z3URAAAAAAAAAADKim/iAUEwnj9I0grXPXBExZKy8gryX3ZdBAAAAAAAAACAsmDEAyrIeP6pkt6QlOq6C8pkh6TWeQX5X7ouAgAAAAAAAADAkTDiARVgPL+upA8k1XPdBeXyhaQz8gryd7guAgAAAAAAAADA4SS4LgBEG+P5KZLWigEvGjWT9LjxfL4HCgAAAAAAAACIaIx4QPktlHS66xKosM6S7nZdAgAAAAAAAACAw+FpFKAcjOdfKely1z0QtDMy0tP/vX3njg9cFwEAAAAAAAAA4FD4Jh5QRsbz+0haLf6+iRXFkrrlFeS/5LoIAAAAAAAAAAC/xRgBlIHx/JMlvSkpzXWXcEhMSlSVtCravXu3fvnlF9d1QmmnpDPzCvI/c10EAAAAAAAAAIBfY8QDjsB4fj1J70mq77qLDYFAQJ7vqUWLlmpsjDzPU8NGDVWz5tE6+pijVaVKld/9zO7du7Vt2zZt+2Gbvv3mG+UX5OvvX+Xp008+0VdffaV9+/Y5+F9izT8knZ5XkP+D6yIAAAAAAAAAABzEiAcchvH8NElvSDrFdZdgHH/88Wp71lk6s82ZOvW001S1alVr2b/88ov+8tFHenfTu3rrzTf1l48+0v79+63lh8nbkjrkFeTH9GOHAIJjPD8gqbrrHqiQ/XkF+f/rukSoGc8/SlKC6x4AcAQ78wryS1yXCBfj+VUkVXLdAwCO4Me8gvyo/je0y8t4fqqkyq57AMAR/C8jHvAHSn+z9glJfV13qYgTTjhBvfv0UdesrmrYqFHY7hYWFuqVl17S2qfW6v333oumQW+5pOHx9BsKAMrHeH66pO2ue6BCCvIK8n3XJULNeH6+JM91DwA4ghp5Bfk7XJcIF+P5ayX1dt0DAI7g3LyC/Ndclwgn4/n3SrrMdQ8AOILjklw3ACLYdEXZgJeSkqLcvn01YNBANW/RwkmHjIwM9R8wQP0HDNA333yjVStW6rGVK1VYWOikTzkMlfS5Dvx1BwAAAAAAAADAKV63AxyC8fxhkq5y3aOsUlJSNHHSJL216R3dPP1WZwPeb9WvX1+Tp07RW+9u0o0336T0GjVcVzqSW43nn+e6BAAAAAAAAAAAjHjAbxjPbydpoeseZdXs+GZa+/R6XTLh0ogdyZKTkzV0+HBtfP01XTBypJKSIvoh4KXG889wXQIAAAAAAAAAEN8Y8YBfMZ7fWNJTkpJddymLIUOHas26dWpy3HGuq5TJUUcdpWuuv07PvviC2rZr67rOH0mVtL701wIAAAAAAAAAAE4w4gGljOdnSHpO0tGuuxxJ9erVNWfeXN106y2qXLmy6zrl1rhxYy1bvlyzZt+no4+OyP+7j5H0rPH8yHy0EQAAAAAAAAAQ8xjxAEnG85N14Am8pq67HMmpp52qDc8/py5du7quErSevXrppVc3asjQoQoEAq7r/FYzSWtLf20AAAAAAAAAABBWjHiIe8bzAzrwDbyzXXc5nMTERF0y4VI9umqV6tat67qONdWqVdNNt96i5StXqEHDhq7r/NbZkhaV/hoBAAAAAAAAACBsGPEA6XpJw1yXOJzaderokRWPauKkSUpMTHRdJyRan3GGnnvheQ0dPjzSnsobKulG1yUAAAAAAAAAAPGFEQ9xzXh+xA80HTp11DPPPavTW7d2XSXkUtPSdOPNN2nJw8si7Vt51xvPH+G6BAAAAAAAAAAgfjDiIW4Zzz9L0mLXPf5IcnKyrr/xRs1fuFDpNWq4rhNW7c46S8+++ILO7dDBdZVfW2A8/1zXJQAAAAAAAAAA8SHJdQHABeP5TSWtlVTJdZdD8Y/1df+DD+qEP/0ppHf+/ve/69NPPtHfvvxSXxd8ra1bv1Nh4XbtLir675+TnJys9Bo1VLt2bTVo2EBNjjtOzZs3V9NmzUL6as+MjAwtWLxIDy9dphnTp2vv3r0hu1VGlSQ9ZTy/TV5B/qeuywAAAAAAAAAAYhsjHuKO8fxjJD0rKcN1l0Pp0bOnbps5U2lV0qxn79q1S6+89LJe3bhRm955R4WFhWX7wX/843d/KK1Kmk4/vbXan9teXbp2Va3atS23PWD4+SOUeVIrXTruYn377bchuVEO1SU9Zzz/zLyCfOdlAAAAAAAAAACxixEPccV4fpqk9ZKM6y6/VblyZV17w/UaNHiw1dySkhK98/Y7WrniUb3y0svWnmj7+aef9dqrr+q1V1/VTTfcqDPOPFMDBg1U16wsVapk9wHHzMxMrX9mgy6/bKLefOMNq9kV0EjSM8bzz8kryP9f12UAAAAAAAAAALGJb+IhbhjPT5T0qKQzXHf5LWOM1qxbZ33A2/rdVg0eMFAjhg7V888+F7JXUpaUlGjTO+9o4qUT1Kn9uXpmwwbrN9Jr1NCipUs0ZtxY69kV0ErSE8bzk10XAQAAAAAAAADEJkY8xJNZknJcl/it3n1ytPbp9Wp2fDOruS+/9JK6Z2Xp/ffes5p7JN98840uu+RSDTpvgD771O6n4xISEjR12jTdfe8sVa5c2Wp2BXSRNM94fsB1EQAAAAAAAABA7GHEQ1wwnj9Z0qWue/xaSkqKZtw+U3fPmqXUNHvfv9uzZ49uuuEGjb1otHbu3Gktt7zef+899e7RU7fefLN++uknq9m9c3K04vHHdMwxx1jNrYDzJd3sugQAAAAAAAAAIPYw4iHmGc/vL+ku1z1+7bimTbX26fXqP2CA1dy8vDz1y+mjR5Y9bDW3ovbv36+li5eoa6dOeunFF61mZ2Zm6sm1T8kY5583vNZ4/kWuSwAAAAAAAAAAYgsjHmKa8fx2kh5x3ePX+vbrpzXr1qrJccdZzX3i8ceV07OXPvvsM6u5Nmz9bqvGjR6jSy6+WIWFhdZy69evr8fXrNapp51qLbOC5hrPz3ZdAgAAAAAAAAAQOxjxELOM5x8vab0k5x9Pk6TUtDTdcfdduv2uO5Wammot98cff9TlEy7TVVdMU9HPP1vLDYXnn31O2V26Wn0qr3r16lq2fLm6dO1qLbMCEiQ9YTzf+ZoIAAAAAAAAAIgNjHiIScbza0t6TlIN110kyRijp9atVW7fvlZzP978sXpmd9fT69dbzQ2lH374QeNGj9EVk6fo55/sjI6VK1fWAw/NUU5uHyt5FZQm6Tnj+U1clgAAAAAAAAAAxAZGPMQc4/lH6cCA5zuuIknq2auX1j693urrM0tKSrRg3nyd17ev/vn119Zyw2nN6tXq2T1bf92yxUpeQkKC7rrnHg0ZNsxKXgUdLekF4/l1XJYAAAAAAAAAAEQ/RjzEFOP5yZKelHSS6y7Jycm66dZbNGv2fUpNS7OWu71wuy48/wLdPmOG9u3bZy3XhYL8AvXrk6slixZZy7zplps1YeJlCgQC1jLLqbEOPJFX3VUBAAAAAAAAAED0Y8RDzDCeH5C0WFJn110aNGyox1c/qSFDh1rNff+999UjO1tvvP661VyX9u3bp+m33KpLx4+39nrNCRMnas68uapSpYqVvApoJWl16agMAAAAAAAAAEC5MeIhltwpaYjrEh07d9L6ZzaoRcuW1jL379+vB+9/QEMGDtS/t261lhtJnnvmWfXp3Vt5eXlW8jp36aI169bq2GOPtZJXAR0lPVI6LgMAAAAAAAAAUC6MeIgJxvMnSprsskNiUqKmXXWV5i1YoKOOOspa7rZt2zRyxAjNuvtu7d+/31puJMr76iv1y+mjt95800qeadJETz29Xh07d7KSVwHnSZrl6jgAAAAAAAAAIHox4iHqGc8fIMdDSa3atfXoylW6aMxoq7nv/fnP6tktW2+9+ZbV3Ei2a9cujRxxvh5eusxKXtWqVTVvwQJNmDjR1XfyLjOef6WLwwAAAAAAAACA6MWIh6hmPL+DpEdcdmjTtq02PPesTj3tVGuZxcXFmn3vvRo6aLC+//57a7nRYv/+/br5xht14/U3qLi42ErmhImXad7ChVafkiyHGcbzz3dxGAAAAAAAAAAQnRjxELWM52dKekpSJRf3A4GALr1sgpY+8rAyMjKs5f7nP//R+cOGa/a998X86zOPZPnDD2vC+Eu0e/duK3kdOnbQmnXr1OS446zkldNC4/k9XRwGAAAAAAAAAEQfRjxEJeP5RtLzkpw8VlW9enXNX7RQl11+uRIS7P1t9M7bb6tnt2xteucda5nR7oXnn9eIocO0a9cuK3n+sb7WrF2rrG7drOSVQ6Kkx4znnxXuwwAAAAAAAACA6MOIh6hjPL+2pBck1XFx/4QTTtDap9fr3A4drGUefH3m+cOG64cffrCWGys+/OADDep/ngoLC63kpVVJ0wMPzdGUK6YqMTHRSmYZpUraUPoUKQAAAAAAAAAAf4gRD1HFeH51HXgCz7i4n9u3r55c+5QaNmpkLXPbtm26YPgIXp95BJ9//rmGDBykrd9ttZY59uKLtWDxIqWnp1vLLIOjJL1gPL9JOI8CAAAAAAAAAKILIx6ihvH8FEnrJLUK9+3k5GTdctt03XH3XapcubK13A/e/0A9u2XrnbfftpYZy/725ZcaNGCAvvrb36xlnn3OOVr79Hodf/zx1jLLoLYODHl1w3kUAAAAAAAAABA9GPEQFYznJ0paIemccN+uV6+eVj3xhAYNHmwts6SkRAvmzdeQgQP1/fffW8uNB//8+mvl5uTo+Wefs5bZoGFDPfHUGvXo2dNaZhk0lvRi6dOlAAAAAAAAAAD8H4x4iHjG8wOS5knqE+7b7c5qp/XPbNCJmSday9y5c6fGjh6t22fMUHFxsbXcePLzTz/rkosv1l133Gnt/8PU1FTde/9sXX3tNeH8Tl4LSc8az08L10EAAAAAAAAAQHRgxEM0mC7pwnAeDAQCGn/pJVq8bJnSa9SwlvvXLVvUu3sPvfLSy9Yy49ncOXM06oKR2rFjh7XMkaNGaekjD6tGhr2/7kfQRtITxvOTw3UQAAAAAAAAABD5GPEQ0YznT5R0VThvVq9eXfMWLtTlkycrIcHe3yKPLl+u/rl99a9//ctaJqQ333hDOT176fPPP7eWeWabNlq3we4TmEeQLWlJ6WtjAQAAAAAAAABgxEPkMp4/XNKscN6sV6+eVq9dqw4dO1jL/Pmnn3X5hMt0w7XXae/evdZy8f/965//VP8+uXpmwwZrmQe/hXjewAHWMo9gsKQHS18fCwAAAAAAAACIc4x4iEjG83tLWhLWm8boiTWr5R/rW8v825dfqk+vXnp6/XprmTi0oqIiXXbJpbrt1unWvpOXnJys22bO1IzbZyo5OSxvuxwj6fZwHAIAAAAAAAAARDZGPEQc4/kdJD2hMP76bNGypVY98YRq16ljLXPD008rN6eP8vLyrGXiyBYvXKjzhw3Xju3brWX2HzBAjz35pOrVq2ct8zCmGs+/OhyHAAAAAAAAAACRixEPEcV4fmtJ6yVVCtfN1mecoeUrV6hGRg0refv27dMtN92kiZdOUNHPP1vJRPlseucd9ereQ3/dssVaZssTW2rdhg1q07attczDmG48f3w4DgEAAAAAAAAAIhMjHiKG8fyWkp6VVCVcNzt06qhFS5eoatWqVvK+//e/NXjAQC1bstRKHiru22+/1YB+/bV2zVPWMmtk1NDSRx7WmHFjFQiE/NN1DxjPHxbqIwAAAAAAAACAyMSIh4hgPL+JpOclZYTrZu+cHM2ZO1cpKSlW8t7dtEm9uvfQ/3z4oZU8BG/Pnj2aMmmSbrnpJu3bt89KZkJCgqZOm6YHHpqjKlVCvjcvLf0+JAAAAAAAAAAgzjDiwTnj+fV1YMALywfHJGnEBefr7ntnKSkpKeiskpISzZ87T8OHDNUPP/xgoR1sW7ZkqYYNHmL1r0/XrCytWb9OpkkTa5mHkCDpCeP5HUN5BAAAAAAAAAAQeRjx4JTx/Jo6MOCZcN2cOGmSrrvhBitZP/74o8aPHac7Zs7U/v37rWQiNN5/7z3l9OypzZs3W8s0xuipdeuU1a2btcxDqCTpaeP57UJ5BAAAAAAAAAAQWRjx4Izx/Oo68A28FuG4l5iYqFtum65LJlxqJe/LL75UTs+eevGFF6zkIfS2frdVA/v11xOPPWYtM61Kmh54aI6uuPJKJSYmWsv9jVRJzxjPbx2qAwAAAAAAAACAyMKIByeM56dJWifp9HDcq1Spku67/34NGjzYSt76devUNydH+f/It5KH8Nm7d6+umnalrr7ySv3yyy/WckePHaOljzysjIyQfdbxKEnPGc9vGaoDAAAAAAAAAIDIwYiHsDOenyxpraRzwnGvatWqWrxsqbKy7bzy8N577tGkyyaqqKjISh7ceHzVYxrYv7++++47a5lntmmjdc9s0ImZJ1rL/I0akjYazz8hVAcAAAAAAAAAAJGBEQ9hZTw/UdKTkjqH415GRoaWr1yhM9u0CTqrpKREN15/gx6Yfb+FZogEH2/+WL26d9emd96xllm3bl099uSTOm/gAGuZv3G0pJeM5zcJ1QEAAAAAAAAAgHuMeAib0gHvYUk9w3GvkefpyafWqEXL4N8+WLyvWFMun6TlDz9soRkiyfbC7RoxdJgWzJuvkpISK5mVKlXSbTNnauy4cVbyDqG+pFeM5zcI1QEAAAAAAAAAgFuMeAgL4/kBSXMk2fko3RE0b9FCT6xZrUaeF3RWUVGRxo0do3Vr11pohki0f/9+3T5jhi4Zd7F++ukna7lTpl0RyiGvkaTXjOfXDdUBAAAAAAAAAIA7jHgIl1mSRofjULuzztKKx1apZs2aQWft2rVLoy4YqY0vv2KhWfRITU11XcGJF55/Xrm9eivvq6+sZYZ4yDOSXjSef0yoDgAAAAAAAAAA3GDEQ8gZz58u6bJw3Oqdk6OFSxarSpUqQWcVFhZq+JAh+vO771poFj0yW7VSdvfurms4k5eXpz69e+v5556zlhniIa+FpI0MeQAAAAAAAAAQWxjxEFLG86+UdHU4bo0cNUp33ztLSUlJQWd9++23GtC3n7Z8vMVCs+iS3T1buf36uq7h1M8//axLxl2sO2bOVHFxsZXMMAx5zxjPrx6qAwAAAAAAAACA8GLEQ8gYz58maUao7yQkJOia66/T1ddeYyXvb19+qf65ffWPf/zDSl606da9u047/XTVq1fPdRXn5s+dpxFDh6mwsNBKXoiHvNN04NWaDHkAAAAAAAAAEAMY8RASxvPHSZoZ6juVK1fW7Ace0AUjR1rJ+8tHH2nQeQP0761breRFmxMzT1S9evWUkJCgXjk5rutEhHc3bVKv7t21efNmK3khHvJOF0MeAAAAAAAAAMQERjxYVzrgzQn1nfT0dC1bvlxZ2d2s5L3+2msaOmiwduzYYSUvGnXJyvrvf473V2r+2tbvtmpgv/56bOUqK3lhGPLWG89PC9UBAAAAAAAAAEDoMeLBKuP5wxSGAa9BgwZ6fM1qnXraqVby1q1dqzGjLtLu3but5EWr7Ozs//7nxo0b68TMEx22iSx79+7VNVddpauumKY9e/YEnRfiIe9sSRsY8gAAAAAAAAAgejHiwRrj+UMkLQ31neYtWujJtU+pcePGVvKWLF6syRMv1759+6zkRavmLVqokef9nz+W25en8X7riccf18D+/bX1u+BfuRriIe9cMeQBAAAAAAAAQNRixIMVxvP7SXpYIf41dfY552jV44/p6KOPDjqrpKREt8+Yoek332KhWfTrmtX1d3+se4+eSkxKdNAmsm35eIsGDxwYLUPeauP5yaE6AAAAAAAAAAAIDUY8BM14fi9JKxSGAW/+ooVKTQv+waK9e/fqiilTtGDefAvNYkPXbr//tmCNjBo699wODtpEvq8LCqJlyMuS9CRDHgAAAAAAAABEF0Y8BKV0wHtSUqVQ3jmzTRvNmTdXSUlJQWf9/NPPumjkhXpq9RoLzWJD02ZNZYw55H+Xk9snzG2iRxQNeT3FkAcAAAAAAAAAUYURDxUWrgEvs1UrzV+0UCkpKUFnFRYWavDAgXrrzTctNIsd2d17/OF/16FjR1WvXj2MbaILQx4AAAAAAAAAIBQY8VAh4RrwWp7YUsuWP6LU1NSgs74uKFC/Prn665YtFprFli5df/89vIOSk5PVvccfj3xgyAMAAAAAAAAA2MeIh3Iznt9FYRjwmh3fTIuXLlPVqlWDztry8QrJJc4AACAASURBVBb165OrrwsKLDSLLY0bN1bTZk0P++fwSs0jY8gDAAAAAAAAANjEiIdyMZ7fQdJahXjA83xPy1esVI2MGkFnvbpxowadd54KCwstNIs93bpnH/HPOfmUU+T5XhjaRLcoG/KeNp6fFqoDAAAAAAAAAIDgMOKhzEoHvA2Sgn+35WF4vqcVq1ZZGfBWrVipMaMu0u7duy00i02H+x7er+X0yQ1xk9gQRUNeF0kbGPIAAAAAAAAAIDIx4qFMwj3g1a5TJ6ickpIS3XPX3br26qu1f/9+S+1iT8NGjdTs+GZl+nP78ErNMouiIe9cMeQBAAAAAAAAQERixMMRRduAt3fvXl0xZYrmPPCApWaxK7sMr9I8qEHDhjrt9NNC2Ca2MOQBAAAAAAAAAILBiIfDirYBb/fu3bpo5Eg9tXqNpWaxrVt22Uc8iVdqlpftIW/I0KEWWh0SQx4AAAAAAAAARBhGPPyhaBvw9u7dqwmXXKK33nzLUrPY1qBhQ7Vo2bJcP5Pdo7uSk5ND1Cg22Rzybrr1llAPeRuN51cP1QEAAAAAAAAAQNkx4uGQjOf3kvS8QjzgNW3W1MqAV1xcrAnjL9HGl1+x1Cz2denatdw/U61aNXXq0jkEbWJbFA15rSW9yJAHAAAAAAAAAO4x4uF3Sge8JyVVCuWdZsc306Mr7Qx4UydN1ksvvmipWXwoz/fwfq1PLq/UrIgoGvJO14EhLz1UBwAAAAAAAAAAR8aIh/8jXANeZqtWenTVKtXIqBFUTklJia696mqtX7fOUrP4ULduXWW2alWhnz377HNUs2ZNy43iQ5QNeW8azz8mVAcAAAAAAAAAAIfHiIf/CteA1+qkk7Rs+SNKTw/uQZ+SkhLdcO11euLxxy01ix9Z3bopEAhU6GcTkxLVs3cvy43iRxQNeS104Bt5DHkAAAAAAAAA4AAjHiRJxvP7KwwD3plt2mj5yhWqWrVqUDkHB7wVjz5qqVl86ZKVFdTP80rN4ETZkPe68fwGoToAAAAAAAAAADi0JNcF4J7x/CGSHlaIR91z2rfXg3MfUkpKSlA5DHjBqVWrlk459ZSgMpq3aKEmxx2nr/72N0ut4s/BIW/FqlWqUze470LedOstkqRHly+3Ue23TpD0mvH8jnkF+QWhOAAAQBwbL+ln1yWAMOPXPCLd/ZL+x3UJIMw+d10AKIOVkl50XQIIs+8Z8eJcuAa8Hj176q5Z9ygpKbhfcgx4wevaLUsJCcH/5c7t21d3zJxpoVH8sj3k/fLLL6F6vayR9Lbx/PZ5BflfheIAAABxakVeQf4O1yUAAP/HxryC/LWuSwAAfue9vIL8pa5LAOHG6zTjmPH8cZKWK8S/DgYPGaJ77ruXAS9CdMvOtpLTO6d3hb+rh//P5qs1p8+cod45ORZaHVJ9SW8az28ZqgMAAAAAAAAAgP+PES9OGc+/VNKcUN+5+JJLdPP0W4N+8osBz46MjAydcuqpVrJq16mjtu3aWsmKd7aGvISEBN15z92hHPLqSNpoPP/kUB0AAAAAAAAAABzAiBeHjOdfKWl2KG8EAgFdfe01mjRlctBZDHj2dM3KUmJiorW8nD651rLi3dcFBRo6eJAKCwuDygnDkHe0pFeN57cO1QEAAAAAAAAAACNe3DGef4OkGaG8kZiYqBl33K6Ro0YFncWAZ1e37nZepXlQl65dlZqWZjUznuX/I19DB0XFkHeUpFeM53cI1QEAAAAAAAAAiHeMeHHEeP5MSTeG8kZiYqLuvOdu9evfP+is4uJiTZsylQHPkvT0dLU+4wyrmWlV0pTVLctqZrz78osvo2XIqyJpg/H8bqE6AAAAAAAAAADxjBEvDhjPDxjPv0/StFDeOTjg9erdO+is4uJiTZ00WWtWr7bQDJLUuUsXq6/SPIhXatoXRUNeqqR1xvPPC9UBAAAAAAAAAIhXjHgxznh+oqSHJE0I5Z1AIKDbbp9pZcDbu3evxo0Zo/Xr1llohoNsv0rzoDPbnKnadeqEJDueRdGQV0nSSuP5wb8/FwAAAAAAAADwX4x4Mcx4fpKkhyWNCeWdQCCgm269RX379Qs6q6ioSOPHjtXGl1+x0AwHVa9eXW3atg1JdkJCgnrnBD/e4vdsD3lZ2SF782WCpAXG8yeF6gAAAAAAAAAAxBtGvBhlPD9Z0hpJg0N55+CAN3jIkKCzdu3apYtGXqiNr2y00Ay/1qFTRyUlJYUsP7dv35BlxzubQ969s2erY+dOlpod0t3G828O5QEAAAAAAAAAiBeMeDHIeH6apOck9QzlHZsDXmFhoYYPGaJ3N22y0Ay/1a1baF6leVCT445T8xYtQnojntka8pKSkvTgQw+pbbvQPJVZ6jrj+bON5wdCeQQAAAAAAAAAYh0jXowxnl9d0iuSOoT61g033WhlwNv63VYNOm+Atny8xUIr/FbVqlXV7uyzQn6nT25uyG/EM5tD3ryFC3VmmzaWmh3SpZKWln6TEwAAAAAAAABQAYx4McR4/jGSXpN0RqhvTZ02TUOHDw86pyC/QOf17au8r76y0AqH0rFzJyUnJ4f8Ts/evZSYxGYTSl9+8aVGDB2mXbt2BZWTkpKi+YsWKrNVK0vNDmm4pCdKX+0LAAAAAAAAACgnRrwYYTy/gaTXJYX0d+WlAwPemHFjg8757LPP1C+3j7799lsLrfBHunTtGpY7NWvW1NlnnxOWW/Hss08/1fkWhrzU1FQtW/5IqIe8PpKeNZ5fNZRHAAAAAAAAACAWMeLFAOP5TXTgCbwTQn3L1oC3+S9/0aD+52l74XYLrfBHUtPSdE779mG7xys1w2Pz5s1WhryqVatq0ZLFanZ8M0vNDqmjpI2lTwoDAAAAAAAAAMqIES/KGc9vqQNP4JlQ37I54I0YOkw//vijhVY4nA4dOiglJSVs9zp27qRq1aqF7V48szXkpdeooeUrVurYY4+11OyQTpP0ZukTwwAAAAAAAACAMmDEi2LG81vrwIBXL9S3xo4bx4AXhbp1zw7rvcqVKyu7R/ew3oxntoa8Ghk1tHzlCtWvX99Ss0NqJuld4/khf2IYAAAAAAAAAGIBI16UMp7fRdKrkmqE+tbYceM0ZdoVQeds3ryZAS+MKleu7OQbdX1y+4b9ZjyzNeTVrlNHj6x4VLVq1bLU7JDqS3qj9F9AAAAAAAAAAAAcBiNeFDKe31/SBkmpob41dPhwKwPeF59/oVEXXMCAF0btzz1XaVXSwn73lFNPUYOGDcN+N55t3rxZF55/gYqKioLKaeR5WvrII8rIyLDU7JCOlvSK8fzOoTwCAAAAAAAAANGOES/KGM+/SNIqSZVCfWvI0KG68eabgs754vMvNHTwIG0v3G6hFcoq3K/SPCgQCKhPbh8nt+PZ/3z4oS4aeWHQQ17TZk21YMniUH/bsIqkZ4znnxfKIwAAAAAAAAAQzRjxoojx/GmS5isMf91ycvvopltvCTqHAc+N5ORkdejQ0dn9nD65zm7Hs3c3bdL4seO0d+/eoHIyMzM1b+ECpaaG9GHfSpJWGs+/OJRHAAAAAAAAACBaMeJFAeP5AeP5d0qaGY57vXNydMdddwWdw4DnTruz2jl5leZBnu/ppJNPdnY/nr3x+usaPy74Ie/01q31wENzVKlSSB/6TZD0oPH8m43nB0J5CAAAAAAAAACiDSNehDOenyhpoaQp4bjXuUsX3XnP3UpICO6XRkF+gYYPGcKA50h29x6uKyi3X1/XFeLWxpdf0ZTLJ6m4uDionHPat9dds+5RYmKipWZ/6DpJC0v/eQcAAAAAAAAAECNeRDOenyZptaSR4bjXsXMn3T/nQSsD3uCBA7Vt2zZLzVAelSpVUsfOnVzXUHb37qF+iguH8cyGDZo6aXLQQ173Hj10g4VvY5bBSElrS/+5BwAAAAAAAABxjxEvQhnPry7pBUm9w3Gvbbu2evChh5SUlBRUzsEB799bt1pqhvJqd9ZZqlatmusaql69ujp2cj8mxrP169bpxuuuV0lJSVA5g4cM0eWTJ1tqdVg9JL1sPL9mOI4BAAAAAAAAQCRjxItAxvPrS3pLUrtw3DuzTRvNW7iQAS9GdOnaxXWF/8rJ7eO6QtxbuWKFZt42I+ic8ZdeogtGhuWh4DMlvWU8v1E4jgEAAAAAAABApGLEizDG85tKeltSi3DcO+nkk7Vg8SKlpKQElbP1u60aMWwYA55jiUmJ6ty1q+sa/9X+3HNVI6OG6xpxb9GCBbr/vtlB51xz/XXq0zfXQqMjOl7SO8bzW4bjGAAAAAAAAABEIka8CGI8/zQdGPC8cNw7MfNELXl4mZUBb/DAgfrXP/9pqRkqqk2btkpPT3dd47+SkpLUo2dP1zUg6b5Zs7Rk8eKgc2becYc6dOpoodER1deBJ/LODscxAAAAAAAAAIg0jHgRwnh+V0mvSjo6HPf8Y30tWrJUVatWDSqnsLBQI4YN09cFBXaKIShZ3bq5rvA7OblheXILZTD95lv0+KrHgspITEzU7Ace0Gmnn26p1WEdJekl4/n9w3EMAAAAAAAAACIJI14EMJ4/WNLTkqqE417NmjW1ZNmyoF9zWFhYqKGDBinvq68sNUMwEhIS1KlLZ9c1ficzM1PGGNc1UOraq6/WhqefDiojJSVFCxYvUrPjm1lqdVjJkh43nj85HMcAAAAAAAAAIFIw4jlW+hvTj0qqFI57aVXStHjZUjVs1CionF27dumC4SP05RdfWmqGYLU+4wzVrFnTdY1Dysnt47oCSu3fv19TLp+kja9sDCqnatWqWrJsmerXr2+p2RHdZTz/PuP5ieE6CAAAAAAAAAAuMeI5Yjw/wXj+vZLuCtfNSpUqac7cuWreokVQObt27dL5Q4fpk7/+1VIz2NCte7brCn8oJzdXgUDAdQ2U2rdvnyaMH6/333s/qJxatWtrySMPB/1UbzlM0IGn8tLCdRAAAAAAAAAAXGHEc8B4fmVJj0m6LFw3A4GAps+coXZnnRVUTlFRkS4aOVKbN2+21Aw2BAIBde7SxXWNP1S3bl21PuMM1zXwK7t379ZFI0fqs08/DSqncePGWrh4sVJTUy01O6JcHfhOXli+HwoAAAAAAAAArjDihZnx/HRJL0nqF867k6dOUW7fvkFlHBjwLtQH739gqRVsOeXUU3TMMce4rnFYffrmuq6A3/jxxx81YugwFeQXBJWT2aqVHnhojhKTwvamyzaS3jae3zhcBwEAAAAAAAAg3Bjxwsh4fgNJb0kK7nG4cuo/YIDGXnxxUBl79+7VxWPG6t1Nmyy1gk3Z3Xu4rnBEWd26KSUlxXUN/EZhYaFGDB2qrd9tDSrnnPbtNeP228P52tSmkjYZzz81XAcBAAAAAAAAIJwY8cLEeH4LSe9Kah7Ou23attUt028NKmPv3r0aP26c3nzjDUutYFMgEFBWtyzXNY6oSpUq6tK1q+saOIR//etfGnn+CO3YsSOonNy+fTV56hRLrcqklqQ3jOf3CudRAAAAAAAAAAgHRrwwMJ5/jqS3JdUP690mTfTg3IeUlJRU4Yzi4mJdPuEybXz5FYvNYFNmq1aqVbu26xplwis1I9eXX3ypC0ecr6KioqByxl58sXJy+1hqVSapkp4ynh+2b4wCAAAAAAAAQDgw4oWY8fxBOvANvKPCebdmzZpatHSJqlWrFlTOjdddr+efe85SK4RCt+xuriuUWZu2bVWrVi3XNfAHNm/erHGjx2jv3r1B5cy4/XaddPLJllqVSYKke43n3288P2wf5gMAAAAAAACAUGLECyHj+VdJWiGpUjjvpqSkaN7CBWrQoEFQOQ/Mvl8rV6yw1Aqh0q17d9cVyiwxMVG9cnq7roHDeOvNNzVtylSVlJRUOKNSpUp6aP481atXz2KzMrlEB57KqxLuwwAAAAAAAABgGyNeCBjPTzSeP1/SbeG+HQgENPPOO9TqpJOCynni8cd17z33WGqFUMls1crFUBKUnFxeqRnp1q9bp9tunR5UxtFHH615CxcoNTXVUqsy6ynpTeP5dcN9GAAAAAAAAABsYsSzzHh+NUkbJF3k4v648ePVo2fPoDJef+01XXvV1ZYaIZQ6d+3iukK5HX/88TrhhBNc18ARLFm0SAvnLwgq44Q//Ul33nO3AoGApVZldpKkPxvPbxnuwwAAAAAAAABgCyOeRcbz60l6Q1KWi/udOnfWpCmTg8r4ePPHGj92nIqLiy21QihlZ2e7rlAhffryNF40mHnbbXpq9ZqgMrK6ddOEiRMtNSqXhpLeMp7f1cVxAAAAAAAAAAgWI54lpU98vCuplYv7zY5vpln33RtUxj+//loXXnC+du/ebakVQql5ixZq5Hmua1RIz969lZDAP36iwVXTpumN118PKuPSyyaoe48elhqVy1GSnjGeP9bFcQAAAAAAAAAIBr+LboHx/E6S3tKBJz/CrkZGDc1ftEipaWkVzti5c6cuPP8CbS/cbrEZQqlbdjfXFSrsmGOO0Vlnn+26Bspg3759Gj92nDZv3hxUzu133akWLZ283TJR0kPG82cZz090UQAAAAAAAAAAKoIRL0jG88+X9KwOPPERdpUqVdKDDz2k+vXrVzhj7969unjMWP3973+32Ayh1rlrdL8lMCe3j+sKKKOioiKNHnmhvvnmmwpnpKSkaN6C+apVq5bFZuUyUdK60u+WAgAAAAAAAEDEY8SrIOP5AeP5MyQtkVTJVY9rrrtWp7duHVzGlVfpz+++a6kRwqFps6YyxriuEZTOXbqoSpUqrmugjLZt26YxF47Szz/9XOGM2nXq6KEF81W5cmWLzcqlu6S3jedH53toAQAAAAAAAMQVRrwKMJ6fKukxSVe67JHbt6+GDh8eVMbcOXO0ZvVqS40QLtndnXxfzKqUlBRld+/uugbK4fPPP9ekiRNVUlJS4YzMzEzNuON2BQIBi83KpaWkPxvPD+7ffgAAAAAAAACAEGPEKyfj+bUlvSqpv8sezVu00C23TQ8q49kNz+iuO+601AjhFM3fw/s1XqkZfV5+6SXdfeddQWX06t1bY8aNs9SoQmpLes14/kCXJQAAAAAAAADgcBjxysF4/p8k/VmS0yc40mvU0Jx5c4N6Jd2Wj7do6uTJFlshXBo3bizTpInrGlac3rp1UN9zhBtz58zR+nXrgsqYPHWKOnXubKlRhaRIWmk8/3rj+c4eCwQAAAAAAACAP8KIV0bG87tI2iTJ6beUEhMTde/s2UENH99//73Gjh6tPXv2WGyGcOnWPdt1BWsCgYB65eS4roEKuOqKadq8eXOFfz4QCGjWfffqT82bW2xVITdJerT0NckAAAAAAAAAEDEY8crAeP4YSc9KOsp1l8unTFa7s9pV+Of37NmjcaPH6N9bt1pshXCKhe/h/Vpuv76uK6AC9uzZo7GjLtL3//53hTNS09I0b+EC1apVy2KzChkk6XXj+fVcFwEAAAAAAACAgxjxDsN4fqLx/DslzZWU6LpPz169NDbI70hdc9VV2vyXv1hqhHDzj/XV7PhmrmtYdeyxxyozM9N1DVTAf/7zH40edZGKiooqnFG3bl3NXbBAqanOH4Q7TdIHxvNPdV0EAAAAAAAAACRGvD9kPL+apLWSprjuIkktWrbUjDtuDypjwbz5WrvmKUuN4ELXrCzXFUKCp/Gi11+3bNGVU69QSUlJhTNOzDxRt995pwIB55+mqyvpTeP5g1wXAQAAAAAAAABGvEMwnu9LekdSRLy38JhjjtG8BfOVkpJS4YzXX3tNd94e3AgI97plx8738H6te48eSkpKcl0DFfTMhg168P4HgsrI7tFdEydNstQoKCmSVhjPn2483/mqCAAAAAAAACB+MeL9hvH8NpLek9TCdRdJSk5O1kPz56l2nToVzvjn119r0mUTtX//fovNEG4NGzVSi5YtXdcIifQaNdT+3HNd10AQ7r3nHj3/3HNBZYy/9BL1zsmx1ChoV0taYzy/qusiAAAAAAAAAOITI96vGM8fJulVSce47nLQLbdNV6uTTqrwzxcVFWnc6DHauXOnxVZwoWtWV9cVQopXaka/qZMm69NPPgkqY8Ydt+vkU06x1ChoOZLeNp7vuS4CAAAAAAAAIP4w4kkynp9gPH+mpIclJbvuc9DIUaPUt1+/oDKuvfpqff7555YawaWsbt1cVwip9ueeq/T0dNc1EISioiKNGXWR/vOf/1Q4Izk5WXMXzFeDBg0sNgvKiZLeN55/jusiAAAAAAAAAOJL3H+Eynh+FUkrJPVy3eXXOnTqqCuvviqojGVLlmrdU2stNYJLlStX1ldffaW8vLygs9Krp6tj505B5xTkF+iDD94POufXPM/Tjh07rGYivL777juNGz1Gj65aqcqVK1coIyMjQwsWL1L/3L768ccfLTeskGMkvWQ8f2JeQf4c12UAAAAAAAAAxIe4HvFKX5G2VlIr111+7U/Nm+u+2bOVkFDxByXff+993Tb9Vout4NKePXt05dQrrGRlZmZaGfE+/eQTTZsy1UIjxJq/fPSRrpx6he65714FAoEKZRzXtKnue+B+jb5wlIqLiy03rJBKkh40nt9K0iV5Bfm/uC4EAAAAAAAAILbF7es0jee3k/SeImzAq1W7thYuXqTUtLQKZ2z9bqsuvfhiFe+LiN/4RoSpdlQ1KzmVU1Ks5CA2Pb1+vR6YfX9QGee0b6+rr73WUiNrLpL0qvH8Oq6LAAAAAAAAAIhtcTniGc8fJWmjpFquu/xaalqaFi5epFq1a1c4o6ioSGNHj9YPP/xgsRliSbWjjrKSU6VKxYdmxIf7Zs3SMxs2BJUx4oLzNXjIEEuNrGkj6UPj+ae5LgIAAAAAAAAgdsXViGc8P8l4/mxJC3Tg1WgRIzExUffNnq0/NW9e4YySkhJddcU0/XXLFovNEGuqVbPzJF6VKlWs5CC2XTF5ijZv3hxUxg0336Q2bdtaamRNPUlvGs8f7roIAAAAAAAAgNgUNyOe8fwMSS9IutR1l0O56ppr1KFTx6Ay5s6Zow1PP22pEWJVtWp2nsRL4XWaKIM9e/ZozIWj9O2331Y4IzExUbMfuF/16tWz2MyKypKWGc+fZTw/0XUZAAAAAAAAALElLkY84/nNJb0vqYPrLody4UUX/T/27js8qmprA/ibTHomIQkCgYucwQEBAeldRVCkiBRBQHqV3nsRqSo9dERA6UWBKE2lI0oHKQICB8+REnowIQGSTOb7I+Kn96IwZ86ZPeX9Pc99rnKz1n4JgvfJytobbdu3c6rH9q3bMHXyFJ0SkTeL1Ok6zZDQUF36kPe7desWOnfoiNSUVM09oqKjMWvuXAQFBemYTDd9AHxnlSw5RAchIiIiIiIiIiIi7+H1QzyrZKkHYD+A50RneZy6b72FocOHOdXj/Llz6NunN+x2u06pyJvpdZ2m2WzWpQ/5hjNnzqBP716w2Wyae7xY4kV8MHq0jql0VR3AYatkKSM6CBEREREREREREXkHrx3iWSWLn1WyDAcQD8Atpw3lK1TA5GlTnepx+/ZtdGrfwakNF/Iteg3xeJ0mOWrHtu2YNGGCUz2avtsMjd95R6dEussH4AerZGkrOggRERERERERERF5Pq8c4lklixnAFwDGAfATHOexni/0POYvXICAgADNPR4+fIjOHTvh8uXLOiYjbxcRySEeibNg/qdYs2q1Uz1GjxuLosWK6ZRId8EAPrNKltlWyeKWd38SERERERERERGRZ/C6IZ5VshRA1vWZjURn+SexuWPx2eLFTl1HaLfbMaj/APx07JiOycgX6PUmHqDfVh/5lpEjRmD/vn2a64ODgzF73lxERUXpmEp33QDstEqW3KKDEBERERERERERkWfyqiGeVbLUBnAIQFHRWf5JTEwMFi9dilyxsU71mTZlKjZt3KhTKvIleg7euI1HWmRkZKB7l6749ddfNffImzcvpk6Pg7+/W/9rrDKAo1bJUll0ECIiIiIiIiIiIvI8bv3Vz6f1x/t3wwBsBOC2qxmhYWH49LNFsBYo4FSf9WvXYc6sWTqlIl8ToeMmXnBwsG69yLf8/vvveK99B/z++++ae7xStSp69u6tYypDxALYZZUs3UUHISIiIiIiIiIiIs/i8UM8q2QJB7AKwHi48c8nMDAQ8+bPR4kSJZzqc+jgQQwdPFinVOSL9NzE43Wa5Ixff/0Vvbp3h81m09yjR6+eqPrqq/qFMkYggFlWybLEKlnCRIchIiIiIiIiIiIiz+C2Q6+nYZUszwHYB6CJ6Cz/xmQyYWpcHKq8VMWpPhfOn0fnjp2QkZGhUzLyRbpepxkaqlsv8k0/7P0B06fFaa738/PDlGlTnb6i2EVaAdj/x9utRERERERERERERP/KY4d4VslSE8BhAMVFZ3mSUWPHoPabdZzqceP6dbRr3QZJSUk6pSJfFB4erusbYnwTj/QwZ9YsbNu6VXN9VHQ04mZMh8lk0jGVYYoDOGKVLA1EByEiIiIiIiIiIiL35nFDvD/evxsBYDOAaNF5nqRd+/Z4t3lzp3rcu3cPHdq2Q0JCgk6pyFdFROp7/WV4eLiu/ch3DezXH6qiaq4vV748evfto2MiQ0UCWG+VLB9bJYtHTB6JiIiIiIiIiIjI9TxqiGeVLNkAxAMYCw/IXrJUKQweNtSpHunp6ejRtSvOnDmjUypyREREBMqVL+/0VajuIiIiUtd+YWF83ov0kZycjG5dOuN+aqrmHl27d/e036uDAWyzSpZcooMQERERERERERGR+3H7QdgjVslSDFnXZ9YTneVpREVFYeac2QgICNDcw263Y9iQIdj7/V4dk9E/CQoKQtlyZdG5axd88umn+H7fjzh28gRWrlmNxcuWYcLkSQj18KGVnu/hAUAwr9MkHf1y9heMGDZcc72fnx+mxMUhR44cOqYy3KsAjlolS2XRQYiIiIiI9gHztgAAIABJREFUiIiIiMi9aJ8wuZBVsjQDsBCAx0xQPp40Eblz53aqx+SJE7F+7TqdEtHjFHnhBVStWhVVq72KkqVKITAw8B8/tlHjxihdpgx6de+BM6dPuzClfiIj9d3ECw/3mN+S5CG+io9HyVKl0KpNa031zzzzDKZOj0PbVq1hs9l0TmeYPAB2WSXLQFlVposOQ0RERERERERERO7BrTfxrJIlwCpZpgFYCQ8a4LVo2RKv16jhVI9FCxbgk7nzdEpEj/j7+6NS5coYM34c9h06iA2bN2HA4EEoV778vw7wHsmfPz/Wxq9Hm3ZtjQ9rAL038US/iVeseHG806QJrFar0Bykr/Fjx+LY0aOa6ytVroyu3bvpmMglAgHEWSXLl39cHU1EREREREREREQ+zm038aySJRbAGgAvi87iiAIFC2LY+yOc6rFu7Vp8OG68TokIyNq4e6dJE7z5Vl1kz57dqV5BQUF4/4MPUOWllzFowADcTUzUKaXx9B7ihQi+TvP8uXOYv3ABcubMibuJiTh27BiOHD6CI4cP4+SJE3jw4IHQfKRNRkYGunfthg2bN2n+/dqrTx8cPHAQBw8c0Dmd4RoBKGGVLO/IqvKT6DBEREREREREREQkjltu4lklSxUAR+FhA7yAgABMmx6H4OBgzT12bNuOoYMG65jKd4WFh6F5ixaI3/A1NmzehNZt2zg9wPur6q9Vx6Ytm1GhYkXdehpN7+s0Q0JDde3nqIcPH2L2jJkAgKjoaFSrXh0DBg3EyjWrcfzUKaz9Kh4jRo5E7TfrIGeuXEKzkmNuXL+Ogf36w263a6r39/dH3IzpiIqO1jmZSxQAsN8qWTqJDkJERERERERERETiuNUmnlWy+AHoC2AC3Czb0+jVpzeKvPCC5vpDBw+hV48envSOk1uKzR2LNm3boVnzd3XfPPtvuWJjsWT5MsydPQczp093+187c6S+nw+z2axrPy1Wr1qF9h07QrJIf/txU4AJJUqUQIkSJdC2fTsAwNWrV3Hk8GEcOXwER48cwS9nz7r9r5kv27N7Nz6ZNw9dunbVVJ8zVy58+PFH6Na5i87JXCIYwHyrZKkKoLOsKimiAxERkSG6WiXLfdEhiBwlq0qc6AxEBnrLKlksokMQabBcVpWbokMQGaiqVbKIzkCkxQZZVWStxW4zKLNKlkgAnwF4W3QWLUqWKoUu3bS/wXT+3Dl0at+e1/85wVqgALr16I66dd+CKcDksnNNJhN69OqJSpUroU/PXkhISHDZ2Y7ytus0gayrF2fExWFK3LQnfmyePHmQp149vFWvHgAgNSUVP/10DEePHMXRI0dw7OhRJCcnGx2ZHDBt8hSUK1cOZcqW1VT/Rs2aaNKsKdasWq1zMpdpAaCUVbI0kVXlZ9FhiIhIdx+KDkCkEYd45M3aiw5ApNEuABzikTdr8Md/iDyNAkDzEM8trtO0SpbiAI7AQwd4wcHBmDhlMvz9tX0676emokfXbrh3757OyXxDPknChMmTsPmbb1C/QQOXDvD+qkzZstj4zRbUrFVLyPlPwxuHeADw9Vdf4ZezvzhcFxYehspVqqBHr55YtPhzHDn+E7Z89y3GfjgeDRu9DUt+i+5ZyTE2mw19evbC3bt3Nfd4f+RIT/+1fAHAQatkaSk6CBEREREREREREbmO8CGeVbK0BXAAWW8AeaSevXvhueee01w/ZtRoyLLmQazPio6JxuhxY7F1+3Y0atxY2PDur7Jly4bZ8+Zi9LixTr2NaBS938TTu59WdrsdU6dMdrqPv78/Cj7/PN5t3hyTpkzBtp07ceDIYcyd/wk6dX4PpcuUQVBQkA6JyREJCQkY1F/7+3ihYWGYGjcdAQFus3yuRRiApVbJssAqWcQ+RklEREREREREREQuIWyIZ5UsIVbJ8imyrtD02C9IFiteHJ06d9Zcv+Hrr/HFmjU6JvJ+AQEBaNehA7bv2oUWLVu6xfDuv7Vo2RLrvvoKBQoWFB3lb7x1Ew8Atm/dhmNHj+reN3v27KjxxhsYPHQo1qz9Ej+dOokv1q3FkGHD8EbNmnjmmWd0P5P+147tO7BowQLN9S+WeBG9+/bRMZEwHQActkqWoqKDEBERERERERERkbGEDPGskuU5AD8C6CjifL34+/tj7PjxMJm0DZF+U1WMGDpM51TerXSZMtj0zRYMf3+E22yB/ZNChQshfsPXaPpuM9FR/hQRoe/nLMjNtg0nTZho+BlBQUEoVbo0Or7XCXM+mYf9hw9hx+5dmDx1Kpq3aIFChQvBz8/P8By+aNKEiTh+/Ljm+s5du6Jc+XI6JhLm0fWafKuDiIiIiIiIiIjIi7l8iGeVLA2R9f5dKVefrbd3W7RA8ReLa6rNyMhA7549kZKSonMq7xQeHo7R48Zi1RdrYC3gOTevhoSEYPxHH2Hm7NluMXSMiNR3E0/vzT5nHTxwAN/v2ePyc/NJEhq83RBjxo/Dpm++wbGTJ/DZksXo2bsXqrxUBWHhYS7P5I0yMjLQu3sPJCUlaar39/fH5GnT3O6fW43CACy0SpZlVsliFh2GiIiIiIiIiIiI9OeyIZ5VsgRZJUscgHUAolx1rlGeeeYZ9B84QHP9nFmzcPLESR0Tea+KlSrh223b0KJlS/j7C3/GUZPab9bB15s3oVTp0kJz6D1IDA11v5twJ0+cpPntNL2YzWa8/Mor6N23LxYvW4ZjJ05gw+ZNGD12DEqUKCE0m6e7fPky3h82XHP9f/7zH4wZP07HRMK1AHDUKllKig5CRERERERERERE+nLJRMQqWfID2AugtyvOc4Whw4drHoicOX0as2fN0jmR9wkMDMTgoUOxZPkyxOaOFR3HaXnz5sWqNWvQpVs3Idct+vn5ITw8XNee7vQm3iM/nzqFb7d8IzrG35hMJlgsFly5cgWnfj4lOo7H27RxI9avXae5/q169VD3rbd0TCRcQQD7rZKlm+ggREREREREREREpB/Dh3hWydIAwFEAXvEQEQBUqFgR9Rs20FSbkZGBQf0HwJZh0zmVd3k2Xz6sjV+PTp3f89jtu8cxBZgwYNBALF62FDlz5nTp2UZcIaj3UFAvUydPdqvfY999+y3eeO11zJ/3iVvl8mSjRo7Epd9+014/dgxy5MihYyLhggHMtkqWL62SxeO33YmIiIiIiIiIiMjAIZ5VsgRaJctkAOvhBddnPhIQEIAx48Zqrp81YwbOnDmjYyLv82q1aojf8DVeKFpUdBTDVK5SBRu/2YJXqlZ12ZlGvQPmjldqXrx4EevWrRUdA5cvXULHdu3RrXMXJCQkiI7jVVJSUtCvT1/YbNqGolFRURj/0Uc6p3ILjQD8ZJUslUUHISIiIiIiIiIiIucYMsSzSpZ8APYA6G9Ef5Gat2wBa4ECmmpPnjiJubPn6JzIu/Tu2xefLlqIbNmyiY5iiPT0dBw6eBAz4qajb69eOHTokMvO1vs9vEeC3fBKTQCYMS0OaWlpQs5OS0vDnFmzUPP1Gti1c6eQDL7g2NGjmD1T+9XE1V9/DY0aN9YxkduQAOyxSpbhVsliEh2GiIiIiIiIiIiItAnQu6FVsrwFYDGAaL17ixYREYFevbU962ez2TBsyBDNWyPeLigoCJOmTsGbdeuKjqK7W7duYfvWbdi+bSv27duP+6mpQnJEGDTECw8Lw93EREN6OyMhIQHLly1Du/btXX726Z9/xuaNm/Dw4UOXn+1rZs+ciZdefgmly5TRVD/ig5HYu3cvrl+7pnMy4UwAxgGoYZUsLWVVuSw6EBERERERERERETlGt008q2QJtkqWaQC+hhcO8ACgS7duiIrW9lNbtmQpzpw+rXMi7xAVHY2lK5Z71QAv8U4ili9dimbvvINK5cpj+NCh2LF9h7ABHgBERBpznWa42T3fxQOAObNmITXF9Z/zkqVK4evNmxA3cwby58/v8vN9ic1mQ/++/ZCSkqKpPiIiAhMmTYKfn5/OydxGVQDHrZKlvuggRERERERERERE5BhdNvGskqUAgNUASuvRzx3lyZMHbdu301R748YNTJsyRedE3iFXbCyWr1wJS36L6ChOs9ls+H7PHqxasRI7d+6ALcO9ti6NehMvxE2v0wSyhqnDhgxBiVIlne713HPPoeqrrz71x/v7+6PuW2+hdu06iI9fjxnT4nDlyhWnc9D/uvTbbxg1ciQmafxz9qWXX0KTZk2xeuUqnZO5jRgA8VbJMgdAf1lVHogORERERERERERERE/m9BDPKlmaA/gEgNn5OO6r/8CBCA4O1lT70bjxuHfvns6JPF8+ScKKVasQmztWdBSn3L17F6tXrsLSJYtxLcF9r+Qz6k28kJBQQ/rqZeOGDdi4YYMuvZq+2wwj3n8foWFhT11jCjChUePGqFe/PtasXo1Z02fg5s2buuSh/7d+7Tq89trrqFWntqb64SPexw97f8DlS5d0TuZWugF42SpZ3pVV5WfRYYiIiIiIiIiIiOjfab5O0ypZwq2SZRGA5fDyAV6x4sVRr4G2m8j2/fgjNnz9tc6JPN/zhZ7H6i+/8OgB3tWrV/HB+yPxcqXKmDRhglsP8ADjNvHMEV792/9vVq9chXpv1sXPp045XBsYGIgWLVti5/d7MHzk+8iRI4cBCX3b+yOG49atW5pqw8LDMGHSRG++VvOR4gAOWyVLN6tk8fqfLBERERERERERkSfTNMSzSpbiAA4D0Ha/pIfp1aePpi/s2jJs+GDE+wYk8mz58+fHspUrPXaIceXKFQwbMgTVX6mK5UuX4v79+6IjPZWICKM28dz3Ok0j/Prrr2jUoCHmz/sEmZmZDteHhISgXfv22LX3ewwf+T6yZctmQErflHgnESOGDtNcX6FiRTRp1lTHRG4rBMBsAF9bJUtO0WGIiIiIiIiIiIjo8Rwe4lklS1cAhwAU1j+O+7EWKIBq1atpql2xfDkuXryocyLP9my+fFi6YgViYmJER3FY4p1EjBszBq9VfRVrVq1GRkaG6EgOMexNvGDfGuIBQEZGBiZ+/DHatGyF69e0bWAGBwejXfv22LpzB96qV0/nhL5r29atiF+3XnN9j169EBgYqGMit1YXwEmrZNF2BykREREREREREREZ6qmHeFbJEmOVLGsBzAGg7XE4D9S6TWtNW3j37t3DzOnTDUjkuXLmzInPlyzxuCs0b9y4gQ/HjccrL72Ezxd95nHDu0eMehMvMpsxfT3Bvh9/xJu16+D7PXs094iJicG0GdMxYfIkze9u0t+N/uADzcPV3Llzo159bdcne6icADZbJctMq2TxvYk8ERERERERERGRG3uqIZ5VslQFcBzA28bGcS8hISGo16CBptp5c+bizp07OifyXKFhYVjw2SJIFkl0lKeWlJSEyRMmotrLr2DRggW4n5oqOpJTIiK5iWeEu4mJ6NC2HWbETdd0veYjjRo3xorVqxAdE61jOt+UnJyMYUOGwm63a6pv066tvoE8Qw9kvZVXQnQQIiIiIiIiIiIiyvKvQzyrZAmwSpZxAHYAyOuaSO7j9Ro1NF1BeC3hGj5buNCARJ7J398fM2fPwgtFi4qO8lTsdjvi163H669Ww7y5c/Hw4UPRkXRh1HWaQdweQ2ZmJmbExaFD23a4m5iouU+JkiWxYhUHeXrYvWsX1qxaran2haJFUbJUKZ0TeYSiAA5aJUtfq2RxfAWdiIiIiIiIiIiIdPWPQzyrZHkOwPcAhv/bx3mzWrW1PRM0ZfIkrxn86GHkqA/wajVt7wq62tWrV9GmZSsM6NfP6zYpzQYN8Yza8PNE3+/Zg7fqvInjx49r7lHw+eexZPlyhIeH65jMN304bhwuX76sqbZhI59aPP+rIABTkXXFJif0REREREREREREAj12OGeVLM0B/ASgomvjuI/AwEBUfbWqw3WXL19G/Lr1BiTyTI0aN0bL1q1Fx3gqGzdswJs1a+HHH34QHcUQRr2JFxoSakhfT5WQkICmjRpj+bJlmnsUKVIEcTNn6JjKN6WkpGDwgIGartWsXacOTAEmA1J5jFoAPhUdgoiIiIiIiIiIyJf9bYhnlSwRVsmyFMByAD69XlO6TBmEhoU5XLdy+XLN7zB5m6LFimHM+HGiYzxReno6xowahT49eyE5OVl0HMMYdZ1mSIhvv4n3OBkZGfhgxPuYN2eO5h7VqlfHe10665jKNx3Yvx+bNm50uC4mJgalS5cxIJFHaWWVLG1FhyAiIiIiIiIiIvJVfw7xrJKlFLK271qKi+M+Klaq5HBNWloa1qzW9gaTtzGbzZg9by6C3fy9tKSkJLRv0xZLPl8sOoqhAgICDBu2hZt57eM/mTxxElauWKG5vk+/fnjuued0TOSbFn6qbaGsarVX9Q3imeKskiWX6BBERERERERERES+yB8ArJLFH8BiAPxq8R9KlirpcM3BAweQeCfRgDSep3nLFsibN6/oGP/qWsI1NG7QEPt+/FF0FMMZ+W5daKjjG6u+ZNT7I3HyxElNtUFBQfhgzBidE/mekydO4tRJx38NKlWubEAaj5MNwCjRIYiIiIiIiIiIiHzRo028JgCKiwzibooVc/zTsWvnTgOSeB5TgAlt2rYVHeNfqYqK5s2a4eLFi6KjuIRR7+EBvE7zSWw2Gwb06wdbhk1TfZWXquCll1/WOZXv2bxpk8M1L7zwAoKCggxI43E6WCXLf0SHICIiIiIiIiIi8jWPhni9hKZwMzExMYiOiXa4bs+u3Qak8TyVKlVCrthY0TH+0bWEa2jTsiV+U1XRUVwmIsK4IV54ODfxnkS+cAGrV6/SXN+1ezcd0/im7du2O1wTGBiIIkWKGJDG4wQC6CI6BBERERERERERka/xt0qW/AAcfwDOi+XX8AZVakqqz2x1PUmNN94QHeEfpaSkoHWLFrh8+bLoKC4VEWHcdZrh4XwT72nMn/cJMjMzNdVWqFgRBZ9/XudEvkW+cAGXL11yuM5aoIABaTxSc9EBiIiIiIiIiIiIfI0/gLqiQ7ib3LlzO1xz4cIFA5J4pgoVK4qO8I8mfvSxTw5beZ2meJcvXcIPe/dqrm/UuLGOaXyTlrcJ8z+X34AkHuk5q2R5UXQIIiIiIiIiIiIiX+IPwH0nLoLEZI9xuObcuV8MSOJ5goODNW0yuoJ84QJWrVwpOoYQRm7ihYSGGtbb22zbuk1zbc1aNXVM4pvOnj3jcE2ePHwK7i/4OCMREREREREREZEL+QMoKTqEu4mKcvw9vN/v3jUgiefJJ0kwmUyiYzzWooULYbPZRMcQwsghntlsNqy3t9m/b5/m2mfz5cOz+fLpmMb3yBdkh2uyP/OMAUk8VhnRAYiIiIiIiIiIiHyJP4CcokO4m1ANm0XJyckGJPE8UVFRoiM8Vnp6OjZ+vUF0DGEiIo0b4vn7+yMwMNCw/t7k14sXkZaWprm+TFnOUJxx584dh2uya9jM9mJW0QGIiIiIiIiIiIh8iT8Ax9fOvJyWgcS9e/cMSOJ5IrMZ9/aaM34+dQopKSmiYwgTYeCbeADfxXtamZmZuHH9uub6woWL6JjG9yQnJTlc4+fvb0ASj8Vv+iEiIiIiIiIiInIhfwCZokN4g5BgDjEA4H7qfdERHuvQwUOiIwgVafAQz+j+3iQlJVVzrWSRdEzie7RsTBt5Fa0H4gOYRERERERERERELuQPIFF0CHeTpGFbwxzBd8EAIDnZ8c+dK1y+fFl0BKGMHkRwE+/pPfvss5prc+TIoWMS3xNuDne4JuWe727wEhERERERERERkVj+AK6JDuFuHjxwfJvMbOYQDwBURRUd4bHuJvr2rNroIV5QcLCh/b1F7ty5ERYeprn+5s2bOqbxPeHhjv85bbNlGJDEYzn+qCARERERERERERFp5g/At+8ZfIxbN285XGPJ/5wBSTxPUlISriVwLuxujB7i8crBp1OxciWn6n39WlhnxcTEOFyT6OPfAPBffHulmYiIiIiIiIiIyMX8ARwUHcLd3Lhx3eGaQoULGZDEMx065H7/SEVr+OK9NzH6zbrQUD6V9TSqVavuVP3uXbv0CeKjrAWsDtdwiPc3v4gOQERERERERERE5Ev8AXwNIFN0EHeiaLgSMkeOHIiKjjYgjefZ9t1W0RH+R968eUVHECoiwtghHt/Ee7KoqChUe037EE/5VYF84YKOiXzPc1bHh3hXLl8xIInH2ic6ABERERERERERkS/xl1XlGoBtooO4k4SrV/Hw4UOH6ypXqWxAGs+zY8cOpKakio7xN2XLlRUdQaiISGOvuwwPDze0vzd4t0ULpzYW49ev0zGNbypbtpzDNaqq6B/EM2UA2CU6BBERERERERERkS/x/+O/ZwtN4WZsNhvOnjnjcJ2zV+V5i/upqfhizRrRMf6mePEXffbdtpCQEAQEBBh6RmhYmKH9PV22bNnQvkMHzfU2mw3rvlyrYyLfkydPHkgWyeG6c7+cMyCNR9ouq8od0SGIiIiIiIiIiIh8yaMh3gYAB0QGcTcnT5xwuKZqtVdhCjAZkMbzfDr/Ezx48EB0jD+ZAkx4q1490TGEMPo9PIDXaT5J/0EDER2j/brdb7d8g6tXr+qYyPe8Wq2awzWZmZk4e/asAWk80kLRAYiIiIiIiIiIiHyNPwDIqmIH0ATAHrFx3Mf+/fsdromJiUGNN94wII3nuZZwDZ9+Ml90jL/p0KkTTCbfG7K6YgMxPJybeP+k+uuv4d3mzTXX2+12zJs7V8dEvuntxo0crvnl7FncT3Wvq4EFUQCsFx2CiIiIiIiIiIjI1zzaxIOsKr8BqAZgCIA0YYncxIH9+2G32x2ua9mqlQFpPNOcWbPcaotFskho2dr3fn3MLhni8U28x8mfPz+mTJsGPz8/zT2+2bwFp3/+WcdUvsdaoABKlirlcN2B/VxQ/8NwWVUyRIcgIiIiIiIiIiLyNf5//RtZVTJlVZkAoAKA02IiuYfEO4k4euSIw3UVKlZE4cKFDUjkedLT09G7ew8kJyeLjvKn/gMGosgLL4iO4VK8TlOMfJKEpStWOLUJ+eDBA0ycMEHHVL6p34D+mup27dypcxKPtBvAStEhiIiIiIiIiIiIfJH/435QVpWfAJQBMN21cdzLd99+53CNn58fevfra0AazyTLMnp07YrUFPe4ki4sPAyrv/hC0/tYnioi0vhNvJDQUMPP8CTlypfHF+vWIjZ3rFN9Zk2fgUu//aZTKt9UvkIF1KxVy+G6e/fu4YCGa5W9TBKAdn9cuU1EREREREREREQu9tghHgDIqvJAVpU+AGoAuOq6SO5j44YNyMzMdLju9Ro1fG7b69/8sPcHNGrYEKqiio4CIGuQ98mCT9HxvU6io7iEK97EM5vNhp/hCQICAtCrTx8sW7kC2bNnd6rX0SNH8Ol893pX0tP4+/tj5OhRmmq/+/ZbpKen6xvIs2QCaCaryq+igxAREREREREREfmqfxziPSKryjYAxQGsMT6Oe7l+7Rr27N7tcJ2fnx969eltQCLPdf7cOTSsVw+7d+0SHQUAYDKZMGTYMMyaM8frB1CuGOLxOk2g9pt1sHXHdvTq0xsmk8mpXnfv3kW/Pn1hs9l0SuebmjRrqvl643VfrtU5jUe5CuAtWVW2iA5CRERERERERETky544xAMAWVXuyKrSFEBrAO7zwJkLLF+6TFPd6zVq4IWiRXVO49mSkpLQsV17TJ08xW2GE7Xq1MaGzZtQqnRp0VEMwzfxjFXw+eexYvUqzJw9G8/my+d0P5vNht49euDypUs6pPNdZrMZfftrewvv119/9eWrNFcCeFFWlc2igxAREREREREREfm6pxriPSKrylIApQAcMCaO+9m1cydkWXa4zs/PD4OHDjUgkWez2+2YM2sWmjdthmsJ10THAQA8my8fVq1Zg4GDByMoKEh0HN1FRBg/xHPFoNDdZM+eHaPHjsHGzZtRvkIFXXra7XYMHzIUP+z9QZd+vqxv//6arzRd8vnnsNt97hm4OwCayKrSXFaV26LDEBERERERERERkYNDPACQVUUG8BKA8ch6M8er2e12zJ87T1NtlZeq4KWXX9Y5kXc4cvgw6taujc0bN4mOAgAwBZjQuWsXbPr2G1SuUkV0HF254jrNYB/axAsNC0PP3r2wY89utGjVCqYA567OfMRut2P0B6Pw5Rdf6NLPlxUuXBgtW7XSVPubqmLVipU6J3J7GwEUlVWF//ARERERERERERG5EYeHeAAgq0qGrCojAFQDcFnfSO4nPn49flNVTbWDhw2Fn5+fzom8w927d9GrRw/079MXSUlJouMAAPLnz48ly5dh1tw5ulyN6A5cMsQLDjb8DNFCw8LQuWsX7Nm7F7379kV4eLhuvW02G0YMG4ZlS5bo1tOXjRo7VvNw9aPxHyI9PV3nRG4rGUB7WVXeklXFPVajiYiIiIiIiIiI6E+ahniPyKqyB8CLALz6u/dtGTbMnjlLU22RIkXwTtMmOifyLl/Fx6NWjTewbetW0VH+VKt2bXy3fRtGjRmNHDlyiI7jlMhsxl916YpBoSjRMdHo068f9u77EQMHD0Z0TLSu/ZOSktChbVusXrlK176+qsHbDVG2XFlNtfv37cPW777TOZHb2gWgmKwqn4kOQkRERERERERERI/n1BAPAGRVSZRVpQmAjgBSnI/knpzZxhswaJBPvhnmiBvXr6NLp/fQo1s33Lx5U3QcAEBgYCBatm6NXXu/x5jx4zx2M8/sggFbaGio4We4WomSJTFpyhT8sH8/evTqiWzZsul+xonjJ1C/7lvY+/1e3Xv7osjISAwZNkxTrd1ux/gxY3VO5JYeAugLoLqsKr+JDkNERERERERERET/zOkh3iOyqiwEUBrAUb16uhNbhg2zZszUVBsTE4O+/fvrnMg7fbN5C2pUq47Fn30OW4ZNdBwAWVdFNm/RAtt37cT8hQvxStUxA1eGAAAgAElEQVSqoiM5xBVbcoGBgfD31+2PE2FCQkLwTtOm+HrTRqyNX4+Gjd5GUFCQ7uekpaUhbupUvNPobVz6jXMUvQweOhTPPPOMptovVq/BmTNndE7kdo4DKCOrSpysKnbRYYiIiIiIiIiIiOjfBejZTFaVc1bJUgnAx8j6Tn+vEr9+PTp06oRChQs5XNu8RQusXrkSZ8+eNSCZd7l37x7Gjh6NVStXYtSY0ahQsaLoSAAAf39/VH+tOqq/Vh2HDx3GuDFjcOrkSdGxnujI4cM4c/q04ecEBwfj/v37hp+jt4CAALxS9RXUebMu3qhZE2HhYYae9+0332Dixx9DVbRt9tLjlS1XFk2aNdVUm5SUhCmTJumcyK3YAUwCMFJWlYeiwxAREREREREREdHT0XWIBwCyqqQB6GeVLNsBLAaQXe8zRMnMzMTEjz/Gws8df0LIFGDC+Akf452GbyMzM9OAdN7n/LlzaNHsXVR//TUMHjIE1gIFREf6U9lyZbHuq3isX7cOcVOmIiEhQXSkf9S/j9fN053m5+eHipUqoV79eqhRsyaioqIMPS8zMxNbv/sO8+fOw/Hjxw09yxcFBgZi3Icfws/PT1P91MlTcPv2bZ1TuY3fALSWVWW36CBERERERERERETkGMPuv5NVZROAEgC86guHu3ftwr4ff9RUW6JECbRq01rnRN5vx7btqFOzFoYNGYKrV6+KjvMnf39/NGrcGDv27Ma4Dz9EPkkSHYmeIE+ePOjZuxd2fr8HS1csxztNmxo6wLt+7RpmTp+BV196Gd27dOUAzyCdu3ZBgYIFNdWeOX0aK5cv1zmR21gG4EUO8IiIiIiIiIiIiDyTtrUFB1gliwnAcAAfwMChoSsVLVYM8Ru+1rT1kZqSipqvv+7Wm1vuLCAgAO80aYKuPbojT548ouP8jS3Dho0bN2DFsuU4cviw6Dj0h+zZs6NO3TdR5826KFO2jEve7juwfz+WLl6Crd99B5vNPd529FZWqxUbtmzW/HbhO283wrGjXveUayKArrKqrBYdxNtYJUsUsj6/5HlUWVUsokMYzSpZFAD8riIiMpysKoZ/LcFbWCVLPID6onMQkU8oJavKT6JDeAqrZIkD0Ft0DiLyCQ1lVYnXWqz7dZr/TVYVG4AxVsmyC8AKAP8x+kyj/XzqFFavXIVmzd91uDYsPAwfTZyAtq24kadFRkYGVq5YgS/WrMHbjRuhQ6dOsFqtomMByLoytX6DBqjfoAF+OfsLVq1cga/jv8Lvv/8uOprPKVS4EF6tVg2vVquG0mXKwGQyGX5makoq1q9fh6WLl+DC+fOGn0dZ27ATJk/SPMD78osvvHGAtwNZ12deER2EiIiIiIiIiIiInOPS756zSpbsAD4D8JYrzzVCdEw0tu/ahcjISE31I4ePwArvvcLNZfz8/FDttero0LEjyleooPlNLKNkZGTg4IED2LJpM7779ltvfndLKKvVivIVKqBsuXKoWKkicsXGuuzs48ePY90XXyJ+/XqkpKS47FwC2nfsiGEjhmuqvXv3Lt6o/hru3LmjcyphMpC19T5ZVhU+vGoQbuJ5NG7iERHpiJt4T4+beETkQtzEcwA38YjIhZzaxHP5//G2ShY/ZP0BORFAoKvP11PL1q0xasxoTbWpKal46806UBVV51S+K3/+/GjeqiUavv22oe+caWW323H2zBns378f+/ftw5FDh3H37l3RsTyK2WyGZLGgQIECeKHoC3ihaFEULVZM8zBdqxs3biB+3Xqs/fJLyBcuuPRsyiJZJGzcsgWhoaGa6ocOGowv1qzROZUw5wE0l1WF9/gajEM8j8YhHhGRjjjEe3oc4hGRC3GI5wAO8YjIhTxriPeIVbKUB/AlgGdFZXCWKcCE+A0bUKRIEU31x44eRdPG7yAzk0sTegoKCkLtN+ugabNmKFuunEveQNPqWsI1nD59GmfPnMZv6m+4evUqEq5exZUrV5CWliY6nqH8/f1hNpsREREBc4QZ4eFmmM1mmCOyfiwqKgo5c+ZCjhw5kDtPbuR99lnkyJFDWN4HDx5gx7btWPvll/h+zx7+vhXIz88PK1avRrny5TTVHzxwAC2avQu73a5zMiEWAegtq8o90UF8AYd4Ho1DPCIiHXGI9/Q4xCMiF+IQzwEc4hGRC7n3m3j/RFaVg1bJUhLAYgB1ReVwhi3DhmGDB2NtfLymQVGp0qXRu29fTJsyxYB0vistLQ1frY/HV+vjkTt3btRrUB8NGjZEweefFx3tf8TmjkVs7lhUf636//xvtgwbUlJTkJSUhPupqcjIyEBycjIyMjKQkpKC9LR03H9wHw/u30daejruJd9DZqYNycnJSE/PwP3U1L/3s9kee91jcnLy/wwzTCYTwsPD/+djA4MCERqStfkUGhqKwKCsZdrw8HCYTCaEhoYhIDAAkZGRCAwMRGhoKMLCwhEYGICIiAiEhYUj3ByO8PBwzRtUrpSakoo9u3djy+bN2LFjx/98TkmMdh06aB7gpaenY8TQYd4wwLsLoLOsKl6zTkhERERERERERER/J2yIBwCyqtyxSpZ6APoD+Eh0Hi1OnjiJxZ99hnYdOmiq79KtK/bv24d9P/6oczICgISEBHwydx4+mTsPRYoUQd169VC7Tm3kk9z/m9RNASZERka6/KpIX5eSkoKdO3Zgy6bN2LVzJx4+fCg6Ev1FgYIF0X/gAM31c2fPwcWLF3VMJMT3AFrIqnJJdBAiIiIiIiIiIiIyjvChmawqdgCTrZLlBwCr4YHXa06dMhVv1KqF//znPw7XmkwmTJ0ehzdr1sKdO3cMSEePnDlzBmfOnMGkCRPwfKHn8UbNmqhZqxaKvPCC6Ggk2MWLF7Frxw7s2rkLhw4eRHp6uuhI9BimABOmTJuK4OBgTfXnz53DvDlzdE7lUjYAowF8KKuKTXQYIiIiIiIiIiIiMpbwId4jsqrs89TrNe+npmL4kKH4fOkSTfU5cuRA3MwZaNuqNd/ZcpFzv5zDuV/OYdaMmcibNy9eqVoVL1d9BZUqV4bZbBYdjwyWmpKKgwcPYM/u3dixfQcuX+JCkyfo2as3ihYrpqk2MzMTQwYO8uS3Ji8DeFdWlb2igxAREREREREREZFruM0QD/jb9ZoDkHW9pklwpKe29/vvsXLFCrzbvLmm+spVqmDQkCH4+MMPdU5GT3L58mWsWL4cK5YvhynAhNKlS+Oll19BxUoV8WKJEggMDBQdkZyUmpKKw4cP4cD+/di/bz9OnTwJm42LTJ6kVOnS6Nqtm+b6RQsW4vjx4zomcqmvALSXVYXr2kRERERERERERD7ErYZ4wJ/Xa06ySpYDyLpeM1ZwpKf20fjxqFKliub31jp06ogTJ45j88ZNOiejp2XLsOHQwUM4dPAQACAoKAglSpZA2XLlUa58OZQqXRoRERGCU9KT/KaqOHHiBE4cP4Ejhw9zaOfhzGYzps2YDlOAtu/rUBUV06ZM0TmVS6Qh65taZv3x70YiIiIiIiIiIiLyIW43xHtEVpU9VslSCsAqAFVF53kaqSmpGNh/AFauWQ1/f3+H6/38/DBh4kRcvCDj7NmzBiQkR6Wlpf051Js7O+vHJIuEF4oWRdFixVCsWHEUK1YUUdHRYoP6sKtXr+LMz6dx4sRxnDh+AidPnMDdu3dFxyIdjRk/Dnnz5tVUa7fbMWTQQDx8+FDnVIY7D6CJrCo/iQ5CREREREREREREYrjtEA8AZFW5ZpUsrwP4EMBA0XmexpHDhzF/3jx00XjtW2hYGOYvWohG9Rvg5s2bOqcjPaiKClVRsWXT5j9/LHv27LAWKICCBQviOasVBQoWxLPP5kXuPHl4HacO7HY7EhIScOH8eVw4fx7nfjmH83/8dUpKiuh4ZKCGjd5Gvfr1Ndd/tnDhn5u1HmQpgG6yqtwTHYSIiIiIiIiIiIjEceshHgDIqpIBYJBVsvwI4HMA2cQmerJpU6eifIUKKF2mjKb6PHny4NNFC9HsnSZ48OCBzunICLdv38bt27dx8MCBv/24n58fcubKhbx58yJv3ryIzR2LnDlzIVeuXMgVmws5cuZEzpw5ERQUJCi5e0hLS8Pt27dx4/p1XL1yFZcuXcLlS5dw6dIlXLr0G65cvoL09HTRMcnFns2XD6PGjNFcf+H8eUyZNFnHRIZLQdbwbonoIERERERERERERCSe2w/xHpFVJd4qWcoAWAughOg8/8aWYUOfnr2wYctmZMumbeZYrHhxTJsxHd06d4HdzqeQPJXdbsf1a9dw/do1HDl8+B8/Lio6Gjlz5kCuXLHIkSMHomNiEB0dhWxRUYjKFoVsUdkQHR2NqOhoRGXLhtCwMBf+LByXnJyM3+/exe+//46kpKSs//49CXcS7+DWzZu4eeMmbt26lfXXN28iKSlJdGRyM4GBgZg5exbCw8M11dsybBjQr78nXaN5CsA7sqrwLmUiIiIiIiIiIiIC4EFDPACQVUW2SpZKAOYAaCs4zr+6evUqhg4ajDmfzNPco8Ybb6B3376ImzpVx2Tkju4mJuJuYiLO/XLuqT4+MDAQ5ggzwkLDYI4wIyQ4BMEhIYiMjERwcDBCQkIQERmBkJBQBAX9/3WeQcHBCA4O/vPv/f38YY4wAwCSk5Jhx/8PjDNttr9dVZmSkor09DTcS76HBw8fIO1hGpKSkpCWloaHDx7gXkoKkv8Y2HHwTM4aNmIEihUvrrl+1swZOHXypI6JDLUIQA9ZVe6LDkJERERERERERETuw6OGeADwxxc521klyw8AZgNw23sIv/v2WyxasADtO3bU3KN7zx44dfIktm3dqmMy8nTp6elIvJOIRCSKjkKku1q1a6NVm9aa608cP4E5s2frmMgwqQC6y6ryueggRERERERERERE5H48boj3iKwqC6yS5TiAdQDyis7zTyZ8/DGKFiuGChUraqr38/PD5GlT8Xa9+rh48aLO6YiI3Muz+fLho4kTNNenpqSib+9esGXYdExliNMAmsiq8rPoIEREJNRWZH1TBxERuY9jAH4THYJIg99FByAy2CkAsugQRBokOFPssUM8AJBV5ZBVspQGsAbAq4LjPJYtw4ae3brjq00bkTt3bk09zGYz5n46H2/Xq/+36w2JiLxJSEgI5nwyDxEREZp7jBo5Eqqi6pjKEIuRtYHHP9CJiOg9WVUU0SGIiOhvZvC2DCIit7RQVpU40SGIXM1fdABnyapyE8DrAKaIzvJP7ty5g+5duiAtLU1zD6vViklT3fanSETktLHjx6NIkSKa6zdt3Ih1a9fqmEh3DwB0lFWlLQd4RERERERERERE9CQeP8QDAFlVbLKqDADQFIBbfmH0xPETGNR/gFM93qhZE9179tApERGR+2jZujUaNnpbc/2VK1cwYugwHRPp7jyA8rKqLBQdhIiIiIiIiIiIiDyDR1+n+d9kVVljlSynkfVOXkHRef7bxg0bkP+5/Ojdt6/mHn369cPZs2exfes2HZORt1qz9kuULlPGZecVsOR32VnkPUqWKoXh74/QXG+z2dCvdx8kJyfrmEpX6wC0lVXFbQMSERERERERERGR+/GKTby/klXlFIDyADaIzvI4s2bMxFfx8Zrr/fz8MC1uOp4v9LyOqchbhYaFefV55Ply5MiB2XPnIDAwUHOPaZOn4Mjhwzqm0o0NQH8AjTnAIyIiIiIiIiIiIkd53RAPAGRVuQugPoDRorP8N7vdjqGDBuOnY8c09wgLD8P8hQsRFR2tYzLyRkFODEa0CAzwquVeMlhQUBDmfTofuWJjNffYs3s3Ppk3T8dUurkGoJqsKlNlVbGLDkNERERERERERESexyuHeAAgq4pdVpVRABoCuCc4zt+kpaWhW+cuuHXrluYeefPmxZx5cxHAoQn9i5DQUJeeFxER4dLzyLN9NGECSpQsqbn++rVr6N+3L+x2t5uR7QZQSlaV70UHISIiIiIiIiIiIs/ltUO8R2RViQdQAYAsOstf3bhxAz26dkVGRobmHuUrVMAHY9xu2ZDciDNXFGoREMihMj2dzl27oH7DBprrbTYbevfsicQ7iTqm0sUkAK/LqnJNdBAiIiIiIiIiIiLybF4/xAMAWVVOAygH4BvRWf7q8KHDGDt6jFM93m3eHK3atNYpEXmbUBdv4oWFhbv0PPJM1V+rjn4DBjjVY8JHH+PwIbd6By8JQENZVQbJqqL9uzOIiIiIiIiIiIiI/uATQzwAkFUlEUBdZG1JuI3lS5fiizVrnOoxYuRIVH31VX0CkVcJCgpy6XnBwcEuPY88T+HChTFtxgyYTCbNPbZs2ozPFi7UMZXTfgZQ7o/NbyIiIiIiIiIiIiJd+MwQDwBkVbHJqjIIQHMA90XneWTU+yNx8sRJzfUmkwnTZ81EocKFdExF3sDVQzUO8ejfPPPMM5i/aCHCw7VvbF44fx6DBw10p3fwvgRQUVaVc6KDEBERERERERERkXfxqSHeI7KqrARQGYAqOgsAPHz4EN06d8atW7c09zCbzfh00SI888wzOiYjTyZioBZu5nWa9HghISH4ZOEC5MmTR3OPlJQUdOvcBakpqTom0ywTwGAATWRVuSc6DBEREREREREREXkfnxziAYCsKj8BKA9gr+gsAJCQkICu73VGenq65h558uTB/IULERISomMy8lQihngBpgCXn0meYeLkyShRooRTPQb264+LFy/qlMgptwG8IavKRFlV3GYlkIiIiIiIiIiIiLyLzw7xAEBWlRsAXgOwSHQWADh29CiGDxnqVI8XS7yIydOm6pSIPJmIIV5ERITLzyT3N2DQQNSp+6ZTPWbExeG7b7/VKZFTjgIoI6vKdtFBiIiIiIiIiIiIyLv59BAPAGRVSZNVpQOAvsi6Hk2odWvXYuGnnzrVo1bt2hgybJhOichTiRjiBQYFuvxMcm9N322GLt26OdXjm81bMHP6DJ0SOWUxgCqyqrjFVcxERERERERERETk3Xx+iPeIrCpxAOoA+F10lokfT8DuXbuc6tHxvU5o1aa1PoHIIwULuFY1NCTU5WeS+3r5lVcwZuw4p3qcOX0aA/v3h90u9NbKdAA9ZFVpK6vKA5FBiIiIiIiIiIiIyHdwiPcXsqp8C6AigHMic9hsNvTp2QuyLDvVZ8TIkXijZk2dUpGnCQoKcvmZIaEc4lGWIkWKYNbcOTAFmDT3uH37Njp37IT79+/rmMxhNwHUkFVltsgQRERERERERERE5Hs4xPsvsqqcRdYgb5vIHMnJyXivQwfcvXtXcw+TyYQpcdNQqnRpHZORpwgRsIkXGMjrNAmIzR2LBZ8tQnh4uOYe6enp6PpeZ1y9elXHZA47BqCcrCq7RYYgIiIiIiIiIiIi38Qh3mPIqpIIoBaAWSJzqIqKru+9h4yMDM09QkNDMX/BAljyW3TLRZ5BxCZeRGSEy88k9xIZGYnPlyxBrthYp/oMGTgIR48c0SmVJisBvMT374iIiIiIiIiIiEgUDvH+gawqNllVegLoBsAmKsehg4cweOBAp3pEx0Tjs8WLERMTo1Mq8gShAq62DDAFuPxMch/BwcH4ZMECFChY0Kk+s2bMxFfx8TqlclgmgCEAWsiqkioqBBERERERERERERGHeE8gq8pcAHUAJInK8NX6eMye6dxS4LP58mHJiuUwm806pSJ3J+Jqy3Cz9usTybP5+/tjStw0lCtfzqk+mzZuxPRp03RK5bDfAdSVVWWCrCp2USGIiIiIiIiIiIiIAA7xnoqsKt8h6528X0VliJs6FRu+/tqpHoULF8bnS5cIeSuNXE/EJl5wcLDLzyT3MHLUB6hVu7ZTPX46dgyDBwyE3S5kfnYWQHlZVbaIOJyIiIiIiIiIiIjov3GI95RkVTkDoDyAH0Scb7fbdXkjqmSpUpi/cAECAnjtobcTsYnHIZ5v6tm7F1q2bu1Uj8uXLuG9Dh3x4MEDnVI5ZDOACrKqnBNxOBEREREREREREdHjcIjnAFlVbgGoDmCZiPMfPnyILp3eg6qoTvWpXKUKZs2dA39//vJ7s9CwMJefGSbgTBKrRcuW6N23r1M97t69i/Zt2uLOnTs6pXLIZAD1ZFURdmUyERERERERERER0eNwiuMgWVXSALQGMELE+Xfu3EG7Nm2QeCfRqT6v16iBSVOm6JSK3FGggG1LEdt/JE7tN+tg5OhRTvVIT09H1/few8WLF/UJ5cDRANrJqjJQVhWbqw8nIiIiIiIiIiIiehIO8TSQVcUuq8p4AE0B3Hf1+b+pKjq2a+f0tXP1GzbA6LFjdEpF7iYs3PVbceaICJefSWK89PJLmBoXB5PJ5FSfgf3649DBQzqlemo3AFSXVeVzVx9MRERERERERERE9LQ4xHOCrCprkHW95k1Xn338+HH06tEDmZmZTvVp0aoVBgwaqFMqcicmk4BNPL616BNKlCyJufPnO715OWnCBGzcsEGnVE/tBIDysqrsdfXBRERERERERERERI7gEM9JsqrsB1ARwC+uPnvHtu0Y9f5Ip/t06dYNnbt20SERuZNwAZt4It7hI9cqVLgQPl+6BKGhoU71WfzZ5/hk7jydUj21rwFUkZ19WJSIiIiIiIiIiIjIBTjE04GsKhcBVAKwx9Vnr1i+HLNnznK6z4BBg9C8RQsdEpG7ELGJ5+xgh9ybJb8FS1esQIST16Z+s2ULPhw3Tp9QT+9jAA1lVbnn6oOJiIiIiIiIiIiItOAQTyeyqiQCqAFguavPnjZlClYsd+5YPz8/jB43FvXq19cpFYkWbg53+ZnOXq9I7it37txYtmIlYmJinOpz6OAh9OvdBzabTadkT5QOoLWsKkNlVXHu/mEiIiIiIiIiIiIiF+IQT0eyqqQBaAVgrKvP/mDE+/gqPt6pHn5+fpg0dQqqv/6aTqlIJJPJ5PIzzWazy88k4+WKjcWylSsRmzvWqT7nfjmH9zp0QFpamk7Jnug2gOqyqix11YFEREREREREREREeuEQT2eyqthlVRkJoB2yNkBcwm63Y1D/Adi2datTfUwmE2bPnYuKlSrplIxECQ93/Saen58f/P35x4o3iY6JxuKlSyBZJKf6XL58Ge3atEFycrJOyZ7oFwAVZFXZ66oDiYiIiIiIiIiIiPTEr7YbRFaVzwHUApDkqjNtNht6duuOH/b+4FSfwMBAfLpoIUqUKKFTMhJBxCYewG08bxIdE41lK1aiQMGCTvVJvJOINi1b4vq1azole6IdACrJqiK76kAiIiIiIiIiIiIivXGIZyBZVXYAqAzgsqvOTE9PR5dOnXD0yBGn+oSGhuLzZUvxfKHndUpGriZqmBYUFCTkXNKX2WzGos8Xo1DhQk71uXfvHtq2bg1VUXVK9kQLANT+451SIiIiIiIiIiIiIo/FIZ7BZFX5GUAlACdcdeb9+/fRoW07nP75Z6f6REREYNnKlcgnOXeNHokh6lrLkJAQIeeSfsxmMxYvW4riLxZ3qk/WNxW8h59PndIp2b+yAxgsq0qnP94nJSIiIiIiIiIiIvJoHOK5gKwqlwG8gqwr3lwiOTkZbVu1hnzhglN9YmJisGLVKuSKjdUpGbmKqE280LAwIeeSPh4N8EqULOlUH5vNhh7dumH/vn06JftX9wE0klVloisOIyIiIiIiIiIiInIFDvFcRFaV3wHUBrDcVWfeuXMHbVq1wuVLl5zqE5s7FitWrUJ0TLROycgV/ARt4gUEBAg5l5yn1wDPbrdjUP8B2L51m07J/tV1AK/IqrLeFYcRERERERERERERuQqHeC70xxVvrQC4bFvkWsI1tGnVCtevXXOqj2SRsGzFSmHbXeS4iIgIIedGRkYKOZeco9cADwBGvT8SX8XH65Dqic4CqCirymFXHEZERERERERERETkShziuZisKnZZVQb/X3v3HR5Vmb9//A4JgYSggL2wMzqK4tpX/a6FxbUrSC9pdFYBERARRFxXithALCA2ig0QpIq9rA0BRdeoSJGj5wEERDYBCTXt9we4P5UJJMw588xM3q/r8o+dM/l8bq7deH0v7u9zHkm9JZVGY6dxjbp27qyC/IKI5pxy6il69oXnufMsTiQlJVnZm5KSbGUvDl5aerpnBd6o+x/Qiy+84EGqA/pA0oWOcd1oLAMAAAAAAACAaKPEs8Qx7jhJbbTnLiffrVi+Qt26dFZhYWFEc846+2w9PXGCqlev7lEy+MXWibj09FpW9uLg1KxZU08987QnBd4Tjz+uJ8aP9yDVAb0o6SrHuJujsQwAAAAAAAAAbKDEs2jvHU5XSorsiFwFfZX3lf7RtZt27twZ0ZwLL7pIYx9/XMnJnLjCvjipGT9SUlL01IRndOFFF0U868nxT2jUAw96kOqA7pHUYe/riQEAAAAAAAAgYVHiWeYYd4GkRpJ+jMa+zz79VL1u7KHi4uKI5lx+5RV6YPQoa69sxIHZuhMvNTXVyl5UTkpKisaNH6+LLr444llTXnxRox7w/arPYkndHOPe6Ri3zO9lAAAAAAAAAGAbJV4McIy7VNJfJS2Lxr4PP/hA/fr0UWlpZFfyNW/RQncPH+ZRKnjJZrlaK4PXaca6atWq6eHHHtXlV14R8aypU6boX3f+U2VlvvZqv0hq4hh3op9LAAAAAAAAACCWUOLFCMe4ayVdImlhNPa98drrGnL74Ijn5OTmasCggR4kgpdsncKTpJQU7kuMZdWqVdODD43WNddeG/GseXPn6u5/3uV3gbdO0t8c477l5xIAAAAAAAAAiDWUeDHEMW6+pCskvRqNfTOmT9c9w0dEPKdHz57q0bOnB4ngFZsn8TIyMqztxoGNGDlSzVu0iHjOvLlzdVv/W1VSUuJBqnItk3ShY9w8P5cAAAAAAAAAQCyixIsxjnG3S2ouaXI09k2aMEGPPfJoxHMGDBqonNxcDxLBCzZP4qWmchIvVg0dMVnjuU4AACAASURBVFztMttHPCdKBd4CSZc4xl3t5xIAAAAAAAAAiFWUeDHIMW6JpK6S7ovGvkfGjNGzkyZHPOfu4cPUqnXryAMhYknV7P1q16yZZm03yjfw9ts9KdqjVODNknTl3tPJAAAAAAAAAFAlUeLFKMe4ZY5xB0u6JRr7RgwbplkzZ0Y0IykpSfePelDZOTkepcLBsvlKy/T0dGu7Ed6AQQN1Q48bI54TpQJvrKR2jnF3+LkEAAAAAAAAAGIdJV6Mc4z7sKROkkr93FNWVqbBAwfpzTfeiGhOUlKSho4YrtyOHT1KhoNRzeJJvJTqKdZ2Y1/9B9zqyZ2V7779TjQKvDsc49689zQyAAAAAAAAAFRplHhxwDHuc5JaSvL1ZEpJSYn63dxHH3/0cURzkpKSdPewobqxZw+PkqGybJ7Es3kfH37vxp491Kt374jnvPfOu+rdq5efBV6RpE6Oce/1awEAAAAAAAAAxBtKvDjhGHeepOsk/eLnnqKiIvW84Qb954svIp5126BB6nnTTR6kQmUlJydb252Swkm8WHBjzx66bdCgiOcsWrhQvXv1UlFRkQepwtou6fq9/88KAAAAAAAAAIC9KPHiiGPc9yX9XdImP/fs2LFDXTt11vLlyyOedettAzRg0EAPUqEyatWqVSV3Y48betzoWYH3j67dtHv3bg9ShbVJ0t8d477p1wIAAAAAAAAAiFeUeHHGMe4Xki6WtMbPPVu3blXH7BwZ10Q8q0fPnp4UCqi45BR7J/Fq1KhhbTek7JwcT37f8vLy1OMfN2jHDt/e4rtGUiPHuJ/6tQAAAAAAAAAA4hklXhxyjLtS0kWSIj8qtx/5+fnKycrUTxs2RDzrxp49NHTEcA9SoSJqpds7DZdKiWdNdk6Oho4YrqSkpIjm5OXlqXNuBxUWFnqUbB/fSrrIMa6v/w4DAAAAAAAAgHhGiRenHOOulfQ3SZ/5uWfD+g3KycpSQX5BxLNycnMp8qLE5km8DF6naYVXBd7KFSv1jy5dtXXrVo+S7WOh9pzAW+vXAgAAAAAAAABIBJR4ccwx7s+SrpT0oZ973B9cdczJ8eRUDkVedNg8iZeckmJtd1XVrHlz/WvY0IgLvFXffafcrCzl5+d7lGwfr0u6wjGubwsAAAAAAAAAIFFQ4sU5x7hbJF0r6U0/9yxbtkwdsrM5kRcnUqrbK9Jq165tbXdV1Kx5cz340GglJ0d2+nK1MercsaOfBd5zkpo7xt3u1wIAAAAAAAAASCSUeAlg71+KN5M02889X3/1tXKzebVmPEhLS7e2O4WTeFHjZYGXnZmpDesjv/+yHGMkdXaMW+TXAgAAAAAAAABINJR4CcIx7m5JbSW94OeeFctXKKt9e/20IfK/7KfI8091iyfx0tLSrO2uSrwq8NasXu13gXeXY9z+jnHL/FoAAAAAAAAAAImIEi+BOMYtkdRR0hN+7ln13XfKzsz0rMgbds8IVavG/xS9ZPMk3p79FHl+8qrA+2nDBnXu2NHPAu9mx7g09QAAAAAAAABwEGhOEoxj3DLHuD0l3e/nHuMatW/bTquNiXhWdk6O7rl3pAep8KvqqdXt7q9ud38i87LAy87MlHEj/x0Oo0RSB8e4Y/0YDgAAAAAAAABVASVegnKMe7ukIX7uWLtmjbIzMz0p8tq2b8+rNT1k+yRcRkaG1f2JKk4KvJ2SWjnG9fXVvgAAAAAAAACQ6CjxEphj3JGS+vq5Y8P6Dcps204rV6yMeBZ35HnH9km4FE7iec6rAq8gv0CdOnT0q8D7RVITx7jz/BgOAAAAAAAAAFUJJV6Cc4z7qKRefu7YuHGjcrOyKPJiiO2TeLVq1bK6P9F4WeDlZmdp1XffeZTsdzZJutIx7nt+DAcAAAAAAACAqoYSrwpwjDteUmdJpX7tyM/P97TIu+vuuyMPVYWlpqZW6f2JxOsCb8XyFR4l+50fJf3dMe6nfgwHAAAAAAAAgKqIEq+KcIz7rKSOipMir2PnThowaKAHqaqmmjVrVun9iSJOCjxX0qWOcb/xYzgAAAAAAAAAVFWUeFWIY9wXJbWRVOTXDi+LvB49e1LkHSTbJ+Fq1Uq3uj8RxEmB50hq5Bh3lR/DAQAAAAAAAKAqo8SrYhzjzla8FXkDb/MgVdVSw/JJuOTkFKv7451XBV5hYaE6d+zoV4H3jaSLHOOu9WM4AAAAAAAAAFR1lHhVkGPceZKaSNrh145fi7yv8r6KeFaPXr10Y88eHqSqOmrUqGF1/yGHHGJ1fzzzssDrlNtBS7/x5S2Xn0q6zDHuRj+GAwAAAAAAAAAo8aosx7hvS2oqn4u8Trm5ysvLi3jWbYMGqUu3bh6kqhpsl3gp1TmJdzC8LvDyvvzSo2S/84mkqxzj/uzHcAAAAAAAAADAHpR4VZhj3Pfkc5G3detWdevU2ZNXa95x5xBl5+R4kCrx1bT8Os30NO7Eq6w4KfD+LelKx7hb/BgOAAAAAAAAAPj/KPGquL1F3uWSfvFrx+bNmz25Iy8pKUlDRwxXy9atPEqWuFJTU63ut30nX7xp0aplPBR4r0i6zjHudj+GAwAAAAAAAAB+jxIPcoy7UNJV8rHI+/WOPC+KvPseeEDNmjf3KFlisn0Sz3aJGE+yc3L04OiYL/DmSGrjGHenH8MBAAAAAAAAAPuixIMkyTHuYsVJkZecnKwHR4/WZVdc7lGyxFO9enWr+2vXzrC6P1507d5dQ0cMV1JSUkRzfC7wpmhPgbfbj+EAAAAAAAAAgPAo8fA/0Szyfvjhh4jmJKcka9z48br6mms8SpY40tLSbEdQcnKK7Qgx78aePXTHnUPiocDr6Bi3xI/hAAAAAAAAAIDyUeLhd6JV5HXIztZqYyKaU716dT06bqzaZbb3KFlisH0KT5IyOIm3XwMGDdRtgwZFPMfnAu9ZUeABAAAAAAAAgDWUeNhHNIq8Des3KDszM+IiLzk5Wffce6969OrlUbL4VzMGTuJxJ1757rhziHr07BnxHJ8LvCckdaHAAwAAAAAAAAB7KPEQVjSLvA3rN0Q0JykpSQMG3qY77hziUbL4lhoDJ/Fq1qxpO0JMGjpiuLp27x7xnIL8AmW2aetngdfLMW6ZH8MBAAAAAAAAABVDiYdyRavIy8nK1E8bIivyJKlr9+56YPQoJScne5AsfqWlp9uOoLQ0+xliSbVq1fTg6NHKyc2NeFZBfoFys7O0fPlyD5Lt42FR4AEAAAAAAABATKDEw35Fo8gzrlHH3A4qyC+IeFar1q01/sknq/RJsJSUFNsRVL26/QyxIiUlRaPGPKSWrVtFPOvXAm/F8hUeJNvH/Y5xb6HAAwAAAAAAAIDYQImHA4pGkeesWqXc7CxPirzLrrhck557ThkZGR4kiz/pMXASr3bt2rYjxIQaNWpo3Pjxata8ecSzolDg3e7HYAAAAAAAAADAwaHEQ4XsLfKuk7TDrx0rlq9Q965dVVhYGPGs8y84X1NnTNfhhx/uQbL4Egsn8WIhg20ZGRmaMHmSLr/yiohnUeABAAAAAAAAQNXD37SjwhzjLggFgk0lzZeU5seOvC+/VKfcDnph6hSlpUW2omHDhnrp5ZfVuWNHrVm92qOEsa9WLfsn8dJr1bIdwaq69epqwqTJOvOsMyOe9dOGDeqYkyvHcTxItg8KPAAA7GoTCgQ32Q4BRNkUx7i7bYcA9uOSUCBoOwMQbW84xt1gOwRwABeEAsHOtkMAUTaLEg+V4hj3vWgUeTd0666nJ06I+G67QDCgGbNmqmunzvp26VKPEsa25GT7v9Y1atSwHcGao44+Ws+98LxCJ50U8ax169apQ3a2jGs8SLYPCjwAAOx70HYAwII5kijxEMu67f0HqEr+LokSD7Eua+8/QFXysf2/7UfciUaRt/CTT5STmaUJkyepTp06Ec06/PDDNXX6S7qpRw99/NHHHiWMXW+/9ZZOCp5gO0aV9KdAQM9PeVHHHXdcxLNWG6PszExtWO/L/w1NgQcAAAAAAAAAMY478XBQHOO+J6mlpCK/duR9+aWy2rXXTxsiLzFq1aqlpydOVPOWLTxIBuzr1FNP1cuzZ3lS4K1csZICDwAAAAAAAACqOEo8HDTHuG9KaiMfi7zvVq5Uu9Zt5P7gRjyrevXqGvXQQ/rHjTdEHgz4jb+cd56mzpiuevXqRTxr5YqVys3KosADAAAAAAAAgCqOEg8RcYw7T1JHSaV+7fjxxx/VrnVrLf3mm4hnJSUladDgwbrzrruUlJTkQTpUdX9r3FiTn39OtWvXjnhWXl6e2rdpo/z8fA+S7eMhCjwAAAAAAAAAiB+UeIiYY9xp2lPklfm1Iz8/X7lZ2Vq8aJEn8zp37aJHx45VSgrXQuLgNb3+ej35zNNKS4v8asglny1R59wO2rp1qwfJ9vGEpAF+DAYAAAAAAAAA+IMSD55wjPuipJv83LF161Z16dhJb7/1lifzrm1ynZ578QVlZGR4Mg9VS5euXTXm0UdUvXr1iGctWrhQXTp29LPA6+UY17eSHQAAAAAAAADgPUo8eMYx7nhJffzcsXv3bvXu2Uszpk/3ZN4F//d/mvbyDB119NGezEPVMPD22zXkrn968krWt996S106dtKOHTs8SLaPF0SBBwAAAAAAAABxiRIPnnKM+5ikwX7uKCkp0R2DbtczTz3tybxTTz1VM2bN1Eknn+zJPCSulJQUPTB6lG7ocaMn82bNnKnePXupqKjIk3l/MEVSZwo8AAAAAAAAAIhPlHjwnGPc+yQN83NHWVmZ7hs5UvfeM9KTeccee6xmzJqpiy6+2JN5SDxpaWl6asIzatW6tSfzJk+cpEEDblNJSYkn8/7gJUkdHeP6MhwAAAAAAAAA4D9KPPjCMe6/JD3k954JTz+tW/vdouLi4ohn1a5dWxMmT1LL1q08SIZEUrdeXb04bZr+1rixJ/MeGTNGI4YNU1mZL4fkXhEFHgAAAAAAAADEPUo8+GmAJG/eebkfc+fMUfcuXbRt27aIZ1WvXl0PjBqlPv36epAMieD4+vU1Y+YsnXnWmZ7MG3b33XrskUc9mRXGK5LaOMbd7dcCAAAAAAAAAEB0UOLBN3vv4uopaZrfuz7+6GNlt8/Upk2bIp6VlJSkPv366f5RDyolJcWDdIhXDRs21PSZLyt4QjDiWSUlJbr1llv03ORnI55Vjn9LakeBBwAAAAAAAACJgRIPvtr7Sr9O2nNCyFdLv/lGbVu1lvuD68m81m3aaMLkycrIyPBkHuLLRRdfrCnTX9KRRx4Z8axdu3apV48emjt7jgfJwlokqalj3J1+LQAAAAAAAAAARBclHny392RQpvacFPLVmtWr1a51a+Xl5Xky7+JLLtb0mTN1zDHHeDIP8aFl61aaMHmSateuHfGswsJCdevcRe++/Y4HycL6QtI1jnG3+7UAAAAAAAAAABB9lHiIir0FQwtJn/q9Kz8/X7mZWfrg/fc9mdfglAaaOWe2Tvvznz2Zh9jWu8/NemDUKFWvXj3iWQX5BcrNytaihQs9SBbWN9pT4G3xawEAAAAAAAAAwA5KPESNY9xfJF2rPcWDr3bs2KEbunfXyzNmeDLvyKOO0rTp09X40ks9mYfYk5KSovsefED9+vdXUlJSxPPWrF6tNq1a6puvv/YgXViO9hR4P/u1AAAAAAAAAABgDyUeosoxbr6kK7WngPBVSXGJBg8cpHGPjfVkXnqtdD014Rl17NzJk3mIHRkZGXpm0kS1advWk3nfLl2qtq1ay7jGk3lh/Cjp745xf/RrAQAAAAAAAADALko8RJ1j3A3aU+T5XkCUlZVpzOjRuvOOO1RaWhrxvOTkZN11990aOnyYqlXj1ycRHH3M0Zo6Y7ouadTIk3kLPl6g7PaZ2rRpkyfzwvhJ0qWOcdf4tQAAAAAAAAAAYB8tBKxwjPuD9rxasyAa+6ZNmaruXbpq+7btnszL6dBBz0yaqIyMDE/mwY6GDRtq5uzZatiwoSfzXp0/X927dFFhYaEn88L4r6QrHeOu8msBAAAAAAAAACA2UOLBGse4X0u6TtKOaOz78IMPlNmunTZu3OjJvL81bqwZs2bquOOO82QeouuSRo00dcZ0HXX00Z7Mmzxxkvrd3EdFRUWezAtjm6Qme39vAAAAAAAAAAAJjhIPVjnGXSSplSTfmo/f+nbpUrVu3kIrV6z0ZN7JDRpo1ry5Oufccz2Zh+jIzM7y9CTlA/fdpxHDhqmsrMyTeWEUSWrmGHexXwsAAAAAAAAAALGFEg/WOcZ9Q1JHSZFfWlcB69evV/s2bfTJggWezDvssMP0wtQpanr99Z7Mg39SUlI0YuRIjRg5UikpKRHPKy4u1sBbB+ipJ570IF25SiW1d4z7np9LAAAAAAAAAACxhRIPMcEx7jRJfaK1b+vWrerWuYtmvvyyJ/Nq1KihMY8+opv7Ru2PgEo64ogjNHX6S8rMzvJk3o7t23VDt+6aNXOmJ/P2o5tj3Nl+LwEAAAAAAAAAxBZKPMQMx7jjJN0drX1FRUW6/baBevThhz2Zl5SUpL633KKHHnlY1atX92QmvHH2Oedo7qvzPXvt6c8//6zMdu314QcfeDJvP/o7xp3s9xIAAAAAAAAAQOyhxENMcYw7VNJj0dpXVlamRx9+RANvHaDi4mJPZjZr3lzPvfiCDjnkEE/mITLtszI1dfpLOvLIIz2Zt+q779S6eQst/eYbT+btx3DHuGP8XgIAAAAAAAAAiE2UeIhFfSVNj+bCWTNnqmunztq6dasn886/4AJNn/myjj32WE/mofJ+vf/unnvv9exk5KKFC9W2VWutW7fOk3n7Mc4x7l1+LwEAAAAAAAAAxC5KPMQcx7hlkjpIejeaez9ZsEBtWrTUmtWrPZl30skn6+XZs9TwtNM8mYeK8/r+O0maM2u2unTs5FnRux9TJN3s9xIAAAAAAAAAQGyjxENMcoy7W1JrSV9Gda/jqFWLFlry2RJP5h151FGaOv0lXdKokSfzcGBe338nSWMffUy33XqrioqKPJtZjjclddlbZAMAAAAAAAAAqjBKPMQsx7hbJF0r6Ydo7i3IL1CH7GzNnT3Hk3kZGRmaMGmSsrKzPZmH8nl9/11JcYkGDxykhx96SGVlvvdqn0pqtbfABgAAAAAAAABUcZR4iGmOcTdIulrSpmjuLSoq0oD+/fXQqNGezEtOSdbwkfdo8JA7VK0av3ZeS01N1b333+fp/XeFhYXq1qWLZkyPyvWMKyQ1dYy7PRrLAAAAAAAAAACxjzYBMc8x7neSrpO0LZp7y8rK9PjYserTu7d27drlycxu//iHxj/5pNLS0jyZB+nYY4/VtBkz1LZ9e89mrlu3Tllt2+njjz7ybOZ+/CjpKse4P0djGQAAAAAAAAAgPlDiIS44xv1Me+7I8/1Ssj96bf6rym6fqU2bvDkMePmVV2jajOk65phjPJlXlV18ycWa9+p8nXnWmZ7NXLxokVo0vV7Lli3zbOZ+bJZ0jWPc1dFYBgAAAAAAAACIH5R4iBuOcd+U1M3G7rwvv1Tr5i20YvkKT+b9+fTTNWveXJ1z7rmezKuKevTsqYnPPqs6det6NnPyxEnqmJur/Px8z2buxw7teYXmN9FYBgAAAAAAAACIL5R4iCuOcZ+XNNjG7h9//FHt27TRB++/78m8I444Qi9Om6pWrVt7Mq+qqFWrlsY/9aQGDBqo5ORkT2bu2rVLA/r314hhw1RSXOLJzAMoldTOMe6CaCwDAAAAAAAAAMQfSjzEHce490kab2N3YWGhbujWXS9NnebJvNTUVD0wepTuuHOIqlXj1/FATjr5ZM2Z/4quvOoqz2auW7dO7du01ZxZsz2bWQHdHePOj+ZCAAAAAAAAAEB8oTVAvLpZ0is2FpeUlGjI4MEaM3q0ZzO7du++59WQdep4NjPRXNvkOs2aM0cnnHCCZzN/vf/um6+/9mxmBdzlGHdSNBcCAAAAAAAAAOIPJR7ikmPcEkmZkj6zlWHcY2M18NYBKi4u9mTeJY0u0Zz5r6hhw4aezEsUySnJuuPOIXps3Dil10r3bG6U77/71VOOcYdHcyEAAAAAAAAAID5R4iFuOcbdLqmJpO9tZZg1c6a6d+mqwsJCT+Ydf/zxmjF7lpq3bOHJvHh35JFH6sWp09S1e3fPZlq4/+5Xr0rqFc2FAAAAAAAAAID4RYmHuOYY92dJ10jaZCvDxx99pHatW2vdunWezKtZs6ZGjxmjO++6SykpKZ7MjEd/vfBCzXvtVZ13/nmezbR0/50kfSqp3d4TpAAAAAAAAAAAHBAlHuKeY9zvJDWXtMNWhpUrVqpVs+bKy8vzbGbnrl00dfpLOvqYoz2bGS963nSTnn3heR1++OGezVy0cKGN++8kaZWkpntPjgIAAAAAAAAAUCGUeEgIjnE/kZQjqdRWhk2bNimnfaZef/U1z2aec+65euXV13RJo0aezYxlhx56qJ6eOEG33jZAycnJns196okn1Sm3Q7Tvv5OknyVds/fEKAAAAAAAAAAAFUaJh4ThGHe2pFtsZti5c6f69O6tJx5/3LOZdevV1cRnJ6tPv76qVi1xf2VPP+MMzZ3/iv5+2WWezdy+bbt69+ylB+67TyUlUX+T5XZJ1znGdaK9GAAAAAAAAAAQ/xK3EUCV5Bj3UUljbWYoKyvTqAceVP++/bRr1y5PZlarVk19+vXT5Oef0xFHHOHJzFiSmZ2l6TNf1vH163s201m1Si2bNdMbr7/u2cxKKJXUxjHuEhvLAQAAAAAAAADxjxIPiaifpPm2Q8ybO1eZbdvqpw0bPJt50cUXa/4bryfM6zXT0tL04OjRGjFypFJTUz2b+8Zrr6tV8xZyHGuH4G5yjGulPQQAAAAAAAAAJAZKPCQcx7glkjIl/cd2lq+/+lotmzVX3pdfejbzsMMO06TnntWAQQOVnOLdvXHRduKJJ2rmnDlq2bqVZzNLS0t138iRuvmmm7Rt2zbP5lbSg45xn7C1HAAAAAAAAACQGCjxkJAc426T1FTSWttZNm7cqKx27TVr5kzPZiYlJalHz56aNn26p6+gjJbmLVpoziuvqMEpDTyb+d///lcdc3L1zFNPq6yszLO5lTRD0iBbywEAAAAAAAAAiYMSDwnLMe467SnyttrOsnv3bg28dYCG/utfKi4u9mzuOeeeq/mvv6YWrVp6NtNPNWrU0Mj77tPoh8covVa6Z3Pz8vLUvGlTLVq40LOZB+ETSR0d41prEAEAAAAAAAAAiYMSDwnNMW6epHaSSm1nkaTnn31OOZlZ+vnnnz2bmZGRoVEPPaSHH3tUtWvX9myu10444QTNmjtX7TLbezr3xRdeUGabttqw3ru7Bw/CKknNHePutBkCAAAAAAAAAJA4KPGQ8BzjviHpJts5fvX5kiVq3qSpPl+yxNO5Ta+/Xq+++YbOv+ACT+d6oUnTppoz/xWdcuopns3csX27+vftp3/d+U8VFRV5Nvcg/FdSE8e4m2yGAAAAAAAAAAAkFko8VAmOcZ+QNNp2jl9t3LhRuVnZem7ys57OPfbYY/XitKm6484hSk1N9XT2wUhNTdWwe0bokbGPqVatWp7NdVatUqsWLTVv7lzPZh6kXdpzAm+l7SAAAAAAAAAAgMRCiYeqZJCk+bZD/KqoqEjD7r5bN990k7Zv2+7Z3GrVqqlr9+6a9+p8nX7GGZ7NraxAMKCZc2YrOyfH07nzX3lFLZs313crY6I36+gYd4HtEAAAAAAAAACAxEOJhyrDMW6JpCxJX9nO8luvv/qamjVtohXLV3g696STT9bLs2epT7++Sk5O9nT2gTRp2lTzXn1VDU87zbOZxcXFGvqvf6nfzX08LT0jcKdj3Om2QwAAAAAAAAAAEhMlHqoUx7iFkppJ+sl2lt9yf3DVukULvTxjhqdzU1JS1KdfP33y6WINu2eELrzoIlWr5s+v/Yknnqg+/frqzXff8fz1mevXr1f71m30/LPPeTYzQi9IGmk7BAAAAAAAAAAgcaXYDgBEm2NcEwoEW0j6t6SatvP8aufOnbr9toFavGiRhg0frrT0dM9mH3bYYcrOyVF2To4K8gu0ePEiff7ZEi1Z8pmWfbtMxcXFlZqXlJSkPwX+pL/85Tydd/75Ov//LtAJJ5zgWd7f+vCDD9S/3y3aXFDgy/yDsEBSN8e4ZbaDAAAAAAAAAAASFyUeqiTHuItCgWBXSVNsZ/mj2TNn6T9ffKFHx47VaX/+s+fz69arq2uuvVbXXHutJKmkpETr163T6tWrZYzRtsJt2r59m7ZuLVRZWalq1aqltPR0pael69jjjlUgEFAgGFRqaqrn2X6rtLRUjz3yiMY9NlalpaW+7qqE7yW1cIy723YQAAAAAAAAAEBio8RDleUYd2ooEDxF0r9sZ/kj9wdXbVq20qDBg9WpS2dfdyUnJ+v4+vV1fP36uujii33dVVH5+fnq37evPv7oY9tRfmuLpCaOcTfZDgIAAAAAAAAASHzciYeqbqikl2yHCGf37t0aPnSobujePZZeJem7zz79VE2vvS7WCrxiSW0c4y63HQQAAAAAAAAAUDVQ4qFK23uvWRdJn9nOUp733nlX1119jT768EPbUXxVVlamx8eOVW5Wtjb+9JPtOH/U2zHuO7ZDAAAAAAAAAACqDko8VHmOcXdIai5pne0s5dm4caO6duqsYXffrd27E+86tvz8fHXp2EkPjRqtkpIS23H+aIxj3CdthwAAAAAAAAAAVC2UeIAkx7jrJbWQtNN2lvKUlZXpucnPqlmTplq2bJntOJ75/6/P/Mh2lHBek3Sb7RAAAAAAAAAAgKqHEg/YyzHuZ5K62c5xIKu++06tm7fQE+PHq7S01HaciDw5/olYfX2mJC2XlO0YN+aOBgIAAAAAAAAAEh8lHvAbjnGnSLrPdo4D2b17t0bd/4DazsZlogAAFadJREFUtW6j77//3nacSttcUKBunbvowfvvj8XXZ0pSgaSmjnG32A4CAAAAAAAAAKiaKPGAfQ2RNN92iIr48j//UfMmTTV54iSVlZXZjlMhny9ZoqbXXacP3n/fdpTyFEtq4xjXsR0EAAAAAAAAAFB1UeIBf+AYt1RStqRvbWepiB07dmjEsGHKzcqO6bvyNm3apDGjRys7M1Mb1m+wHWd/+jjGfc92CAAAAAAAAABA1ZZiOwAQixzjbg0FgtdL+kxSPdt5KmLxokW6/trrdNZZZ6l9VpauvvYaHXrooVYzlRSX6MMPP9DsWbP09ptvqaioyGqeChjvGHe87RAAAAAAAAAAAFDiAeVwjPt9KBBsK+lNxdHvSl5envLy8nTXnXfq4ksu0ZVXXaXGf79UxxxzTFT2b9u2TQs+/lj/fvc9vf3WW9q8eXNU9nrg35L62A4BAAAAAAAAAIAUR8UEYINj3PdCgWB/SY/azlJZxcXF+uD99/9391woFNJ5F5yvc//yF51++hk66aSTlJySHPGetWvXavmyZfri88/12aef6Zuvv46HE3d/tEp77sErth2kskKB4PGSgpIOk5Qhqbqk7ZIKJf0saZVj3AJrAQEAAAAAAAAAB4USDzgAx7iPhQLBv0jqZDtLJBzHkeM4emnqNElSSkqKTgydqOPr11f9+vV1xJFHqm6duqpTt46Sk5NVu3ZtJSUladu2bSopKdGWLVtUkF+ggoJ8rVmzRmvXrNH3zvcqLCy0/CeLWKGk5o5x820HOZBQIJgu6TJJl0pqLOk0SekV+LlNkj6X9L6kDyQt3nv3IwAAAAAAAAAgRlHiARVzo6SGki6wHcQrxcXFWrlipVauWGk7im05jnG/tR2iPKFAMEnSNZI6SGomqdZBjDlc0tV7/5GkNaFA8CVJEx3jLvMkKAAAAAAAAADAU9VsBwDigWPcXZJaSfrJdhZ46m7HuPNshwgnFAimhALBbpK+kfSapCwdXIEXTn1JAyR9GwoE54cCwUYezQUAAAAAAAAAeIQSD6ggx7g/SmojKe4ufENYcyQNsx0inFAgeLWkPEnPaM8rM/3URNKHoUBwVigQPNHnXQAAAAAAAACACqLEAyrBMe7HkvrYzoGILZXU0TFume0gvxUKBOuGAsFpkt6Q/+XdH7WUtCwUCN669xWeAAAAAAAAAACLuBMPqCTHuE+EAsFzJf3DdhYclAJJLRzjbrUd5LdCgeDFkqZJOr6iP5OWnq4GDRooeEJQRx11lNLTayk9PU2FhYXa+stWrV27Vq7rylm1SqWlpRUZmSpplKRrQ4FgjmNcXh8LAAAAAAAAAJZQ4gEHp7ekMyT91XYQVEqppEzHuKtsB/mtUCCYK2mipOoH+m6DUxqo6fXX6+JGjXT6n09XckryAedv27ZNny9ZonffeVevv/qq8vPzD/Qjl0taFAoEr3OMu6wifwYAAAAAAAAAgLd4nSZwEBzj7pbUStIG21lQKYMc475lO8RvhQLBQZKe134KvOTkZF3frJlmz5un1958U71699ZZZ51VoQJPkmrVqqW/NW6socOHaeFnn+qxceN05llnHujHgpIWhgLB/6vgHwUAAAAAAAAA4CFKPOAgOcZdL6mNpCLbWVAhUx3jjrId4rdCgWAvSfft7zt/a9xYr735hsY8+ojOOPOMiHcmJyfr2ibXadbcuRr/1JOq/6c/7e/rh0p6KxQInhXxYgAAAAAAAABApfA6TSACjnEXhALBWyU9ajsL9utrxdgdhqFAsL2kceU9r127toaOGK5mzZv7luHKq67S3xo31oP336/JEyeV97VDJL0dCgTPd4xrfAsDxIftkrrYDoGDUmg7QJQMkJRhOwQAHMB22wGi7FFJc2yHAIADWG47gAVTJH1pOwQAHMDGJNsJgEQQCgSfl5RrOwfC2izpPMe4ju0gvwoFgqdLWiSpVrjnDU5poKcmTNDxxx8ftUzvvfue+vW5Wdu3lft3KkskNXKMuzNqoQAAAAAAAACgCuN1moA3btSe016ILWWScmOswKsp6WWVU+D99cIL9dLLL0e1wJOkyy6/TNOmT1fdenXL+8p5kmLqdaQAAAAAAAAAkMg4iQd4JBQIhrTntFId21nwP3c7xh1qO8RvhQLBkZIGh3t23vnnadJzzyktLe1/n+3atUtf/uc/ld6TkZGhGjVqqE7dujrssMOUlFSxf92vWL5CudlZKsgvCPe4THtO4y2odCAAAAAAAAAAQKVQ4gEeCgWCTSS9In63YsF8Sc0c45bZDvKrUCDYUNJXCnMfaSAY0Ox583TIIYf87vO1a9fq0ksaRbS3Zs2aanBKAzW+9FJl5eToyCOP3O/3l3y2RLlZWSouLg73eLmkMxzjhn0IAAAAAAAAAPBGsu0AQCIp2LL5u3p16iRJutR2lipulaRrY+3+tnp16oyVdOYfP69Zs6aef3GKjj3u2H1+5pdfftHkiZMi2ltcXKyffvpJny5erCkvTtHRRx+thqedVu73jz3uWGVk1NaHH3wQ7vHhkn4o2LKZy58BAAAAAAAAwEfciQd4b5ik12yHqMK2SWrpGHez7SC/FQoEz5LUPtyzfv37q8EpDaKSY8f27Rp46wDNmTV7v9/r1KWzLvi//yvv8Z2hQHCf04QAAAAAAAAAAO9Q4gEec4xbKilXkms5SlXVzTHuN7ZDhNEr3IennnqqunTtGu0s+ueQIfppw4ZynyclJWnEvSOVnBz2wHZI0rV+ZQMAAAAAAAAAhLmXCUDkHOMWhALBNpIWSKphO08V8ohj3Jdsh/ijUCCYLikr3LO+/W9Rckrl32x8xBFH6Kyzz97n8+3bt6u4uFilpSXauPFnrTYm7M/v2LFDTz/1lO68665yd5x44olq3qKFZs2cGe5xV+25/xEAAAAAAAAA4IMk2wGARBYKBG+U9ITtHFXEQkmNHeMW2Q7yR6FAsK2k6ft8HgrpjXfeVlJS+f8qXrt2rS69pNE+n19x5ZV64umnDrj7q7yv1K9Pn7Bl3lFHH60Fixbu9+eNa3T5pZeGe1Qs6XDHuFsOGAIAAAAAAAAAUGm8ThPwkWPcJyU9bztHFfCzpHaxWODtdU24D9tltt9vgeeFM886U+PGPx722U8bNmjTpk37/flAMFDe3Xgpki6LOCAAAAAAAAAAICxKPMB/PSUttR0igZVKynaMu9Z2kP24MtyHTZpeH5XlDU87TX8KBMI++3njxgP+fNNm5ea84uBTAQAAAAAAAAD2hxIP8Jlj3G2SWksqtJ0lQd3lGPcd2yHKEwoED5NU/4+fn3TyyTr6mKOjlqNGjfBXM1avXv2AP9uo0b6v89zrLwefCAAAAAAAAACwP5R4QBQ4xl0hqavtHAnoNUkjbYc4gD+H+/Dcv5wbtQBFRUX68cfwBxUPP+KIA/58/T/9SUceeWS4R6dGlgwAAAAAAAAAUB5KPCBKHOPOkPSo7RwJxJXUwTFume0gB3By2A8bNIhagGeeekrbt20Pm6FOnToVmnFiKBTu40NDgWD0jhMCAAAAAAAAQBWSYjsAUMXcJukCSX+1HSTO7ZbU1jFuvu0gFRC2JTvuuOMiGlpcXKxffvlln89LS0pUuG2bdu3apdXG6JW58zRv7tywM9q0bVPhffXr19eihQvDPTpU0oYKDwIAAAAAAAAAVAglHhBFjnF3hwLB9pK+lFTXdp441tcx7hLbISrokLAfHhL24wp7/9//1rlnnnXQP3/iiScqOze3wt/PyMgo71FkfxAAAAAAAAAAQFi8ThOIMse4qyV1sp0jjr3kGPcJ2yEqoUa4D5OTk6Od43/q1auncU+MV1paWoV/pkaNsH8MqZw/HwAAAAAAAAAgMpR4gAWOcV+RNNp2jji0StI/bIeopH3feSlp+/Z976iLhquuvlpzX51f6Tv5thYWlvso4lAAAAAAAAAAgH3wOk3AnsGSLhb341XULu25By/eSqOwefP/G53r/FJSUnT2OWfrvPMvUIuWLXTSyScf1Jz8/P+W92jLQYcDAAAAAAAAAJSLEg+wxDFuEffjVUpfx7hf2g5xENaE+9BxnIiGHnPMMbrwoou0c9dO/bLlFy1d+o0K8gv2+V5xcbFOObWhbrq5d6Ven/lH34fPWypp/UEPBQAAAAAAAACUixIPsMgx7upQINhJ0jzbWWLci45xn7Qd4iAtD/fhsm+/jWjon08/XQ+MHvW//1xSXKJpU6do+NBhKi4u/t13X3z+eX26eLEmPfusjj7m6Erv2rlzp5xVYUu87x3j7qr0QAAAAAAAAADAAXEnHmAZ9+Md0ApJPWyHiMAq7XkV6O98unixioqKPFuSnJKsnA4dNOaRR8I+/27lSmVnZoY9rXcgSz77bJ9icK9vKj0MAAAAAAAAAFAhlHhAbBgsaZHtEDFop/bcg1doO8jBcoxbLGnBHz/fsWOHFi1c6Pm+a5tcp67du4d9ttoY9etzs0pLSys185233ynv0YeVSwcAAAAAAAAAqChKPCAGOMYtktRe0mbbWWLMzY5xv7YdwgNvh/twxvTpviwbMPA2ndygQdhnCz5eoGcnT67wrN27d+uVuXPLe/xWpcMBAAAAAAAAACqEEg+IEY5xV0sKf4SqaprmGPcZ2yE8ErYFe/vNt7R+/XrPl6WmpurB0aOUnJIc9vlDD47S2jVrKjRr3ty52rJlS7hHjmPcpQefEgAAAAAAAACwP5R4QAxxjDtT0hO2c8SA7yXdaDuEVxzjLlOY16UWFRXp8cfG+rLz9DPO0E29e4d9tmPHDg0ZPFhlZWX7nVFSXKLHx44r7/GkyBICAAAAAAAAAPaHEg+IPbdI+sZ2CIuKJGU6xv3FdhCPPR3uw+nTX9KK5St8Wdird281bNgw7LMFHy/Q3Nlz9vvzEydM0Gpjwj0qkTQ50nwAAAAAAAAAgPJR4gExxjHuTu25H2+H7SyW3OEY9zPbIXzwgqR93mFZUlyiwYMGqqSkxPOFKSkpGnn//UpODv9azZEjRmjz5vDXMBrX6JExY8obPcEx7o/epAQAAAAAAAAAhEOJB8Qgx7jfSuprO4cFb0gabTuEHxzj7pY0Mtyzr/K+0v333ufL3jPOPEM39OgR9ll+fr4evP/+fT7fuXOnevfsqZ07d4b7sSJJ93gaEgAAAAAAAACwD0o8IEY5xn1a0nTbOaJovaSOjnH3f1FbfHtG0n/CPZj4zDOaPXOWL0tv7ttHJzdoEPbZS1On6YvPP//ffy4pKdHAAQO0bNmy8saNcoy72vuUAAAAAAAAAIDfosQDYtsNklzbIaKgVFKuY9yfbQfxk2PcYkndtedOuX0Muu02vTb/Vc/3pqam6oFRo8p9reY/hwxRSXGJysrKdOcdQ/aXYaWkYZ4HBAAAAAAAAADsI/zf6AKICQVbNu+qV6fOYkmdldil+0jHuBNsh4iGgi2b19erU6dM0t//+KysrExvvvGG6tatqzPPOkuSVFRUJPeHH3RiKPS7f84+52ydd/75Fd571FFHqXbt2kpNTd1n1qGHHqq69erqwfsf0Lw5c8obUSSpmWNcU/k/NQAAAAAAAACgspJsBwBwYKFA8HZJ99rO4ZNPJDXee0qtSggFgkmS5kq6vrzvtMtsr3/edZfS0tN9z/PDDz+of9+++vqrr/f3tR6OcZ/0PQwAAAAAAAAAQBIn8YC4UK9OnU8kNZYUtBzFa79IutIxbr7tINFUsGWz6tWp85qkqyUdE+47S79Zqjdee10nNzhZ9evX9yVHSXGJnpv8rPr07q0f1/64v68+5hh3hC8hAAAAAAAAAABhcRIPiBOhQPB4SV9Jqms7i4dyHONOsR3CllAgeISk9ySdvr/vXXX11erV+yadfsYZnuwtLS3Vm6+/oYfHjJGzatWBvv6kpJ6Occs8WQ4AAAAAAAAAqBBKPCCOhALBNpJm2M7hkecd43a0HcK2vUXePEl/PdB3/3rhhWrdpo2uuOpK1a5du9K71q5Zo/nz5+ulqdO0ZvXqivzII5JudYxbUullAAAAAAAAAICIUOIBcSYUCD4jqZvtHBH6XtLZjnG32g4SC0KBYLqkyZLaVuT7qampOvucc3T+Beer4WmnKRAM6phjjlF6erpSU1O1fdt2bd+xXcZ1ZYzRV3lfafGiRfpu5cqKRiqR1Ncx7riD+xMBAAAAAAAAACJFiQfEmVAgmCHpC0kn285ykEokXeIYd5HtILEkFAgmSeohabSkNItRHO15zeliixkAAAAAAAAAoMqjxAPiUCgQPE/SQkkptrMchH86xh1hO0SsCgWCp0oaK+nyKK8uljRO0p2OcQujvBsAAAAAAAAA8AfJtgMAqLyCLZvX1atTp0jSFbazVNLHkroXbNlcZjtIrCrYsnlTwZbNz9WrUydP0pmSjojC2nmSWjvGfaFgy+bdUdgHAAAAAAAAADgATuIBcSoUCFaT9K6kSy1HqajN2nMPnrEdJF7sfcVmE0n9tee/Zy//nb1d0jRJDznGXerhXAAAAAAAAACAByjxgDgWCgSPl/S1pDq2s1RAlmPcabZDxKtQIFhfUjtJzSVdIKnGQYzJl/ShpJckzee1mQAAAAAAAAAQuyjxgDgXCgSzJE2xneMApjjGzbEdIlGEAsGa2lPknSGpgaQTJR0i6VBJ1SXtkFQo6SdJqyStlPS5pKWOcXmVKQAAAAAAAADEAUo8IAGEAsGpkjJt5yjHGklnOsbdbDsIAAAAAAAAAADxoprtAAA80VPSWtshwiiT1IkCDwAAAAAAAACAyqHEAxLA3pKss+0cYYxxjPtv2yEAAAAAAAAAAIg3ybYDAPBGwZbNP9SrU+dQSRfazrLX15IyC7ZsLrEdBAAAAAAAAACAeMNJPCCx3CFpqe0QknZLynWMu8t2EAAAAAAAAAAA4hElHpBAHOPulJSrPSWaTUMc435lOQMAAAAAAAAAAHGL12kCCaZgy+YN9erUKZJ0haUIH0jqUbBlc5ml/QAAAAAAAAAAxD1KPCAB1atTZ6GkcyWdEuXV6yRd4xj3lyjvBQAAAAAAAAAgoSTZDgDAH6FAMEPSR5LOjtLK7ZIaOcb9Ikr7AAAAAAAAAABIWNyJByQox7iF2vNKzU+jsG6zpMso8AAAAAAAAAAA8AYlHpDAHOP+V9Llkmb6uGaFpEsc4y72cQcAAAAAAAAAAFUKd+IBCa5gy+bdBVs2T69Xp85PkhpLquHh+GcktXaM+6OHMwEAAAAAAAAAqPK4Ew+oQkKB4FGShknqLCk1glHvSxrkGDcar+oEAAAAAAAAAKDKocQDqqC9Zd4NktpIOrOCP7Ze0jxJTzrG/Y9f2QAAAAAAAAAAACUeUOWFAsEjJJ0kKSDpcEnp2vOq3W2SfpG0WtIPklzHuGW2cgIAAAAAAAAAUJX8P9Bqfibi/GyOAAAAAElFTkSuQmCC</xsl:text>
|
2129
|
+
</xsl:variable>
|
2130
|
+
|
2016
2131
|
<xsl:variable name="Image-Attention">
|
2017
2132
|
<xsl:text>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</xsl:text>
|
2018
2133
|
</xsl:variable>
|
2019
2134
|
|
2020
|
-
<xsl:param name="svg_images"/><xsl:variable name="images" select="document($svg_images)"/><xsl:param name="basepath"/><xsl:param name="external_index"/><xsl:param name="syntax-highlight">false</xsl:param><xsl:param name="add_math_as_text">true</xsl:param><xsl:param name="table_if">false</xsl:param><xsl:param name="table_widths"/><xsl:variable name="table_widths_from_if" select="xalan:nodeset($table_widths)"/><xsl:
|
2135
|
+
<xsl:param name="svg_images"/><xsl:variable name="images" select="document($svg_images)"/><xsl:param name="basepath"/><xsl:param name="external_index"/><xsl:param name="syntax-highlight">false</xsl:param><xsl:param name="add_math_as_text">true</xsl:param><xsl:param name="table_if">false</xsl:param><xsl:param name="table_widths"/><xsl:variable name="table_widths_from_if" select="xalan:nodeset($table_widths)"/><xsl:variable name="table_widths_from_if_calculated_">
|
2136
|
+
<xsl:for-each select="$table_widths_from_if//table">
|
2137
|
+
<xsl:copy>
|
2138
|
+
<xsl:copy-of select="@*"/>
|
2139
|
+
<xsl:call-template name="calculate-column-widths-autolayout-algorithm"/>
|
2140
|
+
</xsl:copy>
|
2141
|
+
</xsl:for-each>
|
2142
|
+
</xsl:variable><xsl:variable name="table_widths_from_if_calculated" select="xalan:nodeset($table_widths_from_if_calculated_)"/><xsl:param name="table_if_debug">false</xsl:param><xsl:variable name="isGenerateTableIF_">
|
2021
2143
|
|
2022
2144
|
<xsl:value-of select="normalize-space($table_if) = 'true'"/>
|
2023
2145
|
|
2024
2146
|
</xsl:variable><xsl:variable name="isGenerateTableIF" select="normalize-space($isGenerateTableIF_)"/><xsl:variable name="lang">
|
2025
2147
|
<xsl:call-template name="getLang"/>
|
2026
|
-
</xsl:variable><xsl:variable name="
|
2027
|
-
|
2148
|
+
</xsl:variable><xsl:variable name="papersize" select="java:toLowerCase(java:java.lang.String.new(normalize-space(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata']/*[local-name() = 'papersize'])))"/><xsl:variable name="papersize_width_">
|
2149
|
+
<xsl:choose>
|
2150
|
+
<xsl:when test="$papersize = 'letter'">215.9</xsl:when>
|
2151
|
+
<xsl:when test="$papersize = 'a4'">210</xsl:when>
|
2152
|
+
</xsl:choose>
|
2153
|
+
</xsl:variable><xsl:variable name="papersize_width" select="normalize-space($papersize_width_)"/><xsl:variable name="papersize_height_">
|
2154
|
+
<xsl:choose>
|
2155
|
+
<xsl:when test="$papersize = 'letter'">279.4</xsl:when>
|
2156
|
+
<xsl:when test="$papersize = 'a4'">297</xsl:when>
|
2157
|
+
</xsl:choose>
|
2158
|
+
</xsl:variable><xsl:variable name="papersize_height" select="normalize-space($papersize_height_)"/><xsl:variable name="pageWidth_">
|
2159
|
+
<xsl:choose>
|
2160
|
+
<xsl:when test="$papersize_width != ''"><xsl:value-of select="$papersize_width"/></xsl:when>
|
2161
|
+
<xsl:otherwise>
|
2162
|
+
210
|
2163
|
+
</xsl:otherwise>
|
2164
|
+
</xsl:choose>
|
2028
2165
|
</xsl:variable><xsl:variable name="pageWidth" select="normalize-space($pageWidth_)"/><xsl:variable name="pageHeight_">
|
2029
|
-
|
2166
|
+
<xsl:choose>
|
2167
|
+
<xsl:when test="$papersize_height != ''"><xsl:value-of select="$papersize_height"/></xsl:when>
|
2168
|
+
<xsl:otherwise>
|
2169
|
+
297
|
2170
|
+
</xsl:otherwise>
|
2171
|
+
</xsl:choose>
|
2030
2172
|
</xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="marginLeftRight1_">
|
2031
2173
|
25
|
2032
2174
|
</xsl:variable><xsl:variable name="marginLeftRight1" select="normalize-space($marginLeftRight1_)"/><xsl:variable name="marginLeftRight2_">
|
@@ -2144,7 +2286,8 @@
|
|
2144
2286
|
<xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
|
2145
2287
|
</xsl:otherwise>
|
2146
2288
|
</xsl:choose>
|
2147
|
-
</xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:attribute-set name="root-style">
|
2289
|
+
</xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="font_noto_sans">Noto Sans, Noto Sans HK, Noto Sans JP, Noto Sans KR, Noto Sans SC, Noto Sans TC</xsl:variable><xsl:variable name="font_noto_sans_mono">Noto Sans Mono, Noto Sans Mono CJK HK, Noto Sans Mono CJK JP, Noto Sans Mono CJK KR, Noto Sans Mono CJK SC, Noto Sans Mono CJK TC</xsl:variable><xsl:variable name="font_noto_serif">Noto Serif, Noto Serif HK, Noto Serif JP, Noto Serif KR, Noto Serif SC, Noto Serif TC</xsl:variable><xsl:attribute-set name="root-style">
|
2290
|
+
|
2148
2291
|
|
2149
2292
|
|
2150
2293
|
|
@@ -2153,7 +2296,8 @@
|
|
2153
2296
|
|
2154
2297
|
|
2155
2298
|
|
2156
|
-
<xsl:attribute name="font-family">Cambria, Times New Roman, Cambria Math,
|
2299
|
+
<xsl:attribute name="font-family">Cambria, Times New Roman, Cambria Math, <xsl:value-of select="$font_noto_serif"/></xsl:attribute>
|
2300
|
+
<xsl:attribute name="font-family-generic">Serif</xsl:attribute>
|
2157
2301
|
<xsl:attribute name="font-size">11pt</xsl:attribute>
|
2158
2302
|
|
2159
2303
|
|
@@ -2175,17 +2319,60 @@
|
|
2175
2319
|
</xsl:variable>
|
2176
2320
|
<xsl:variable name="additional_fonts" select="normalize-space($additional_fonts_)"/>
|
2177
2321
|
|
2322
|
+
<xsl:variable name="font_family_generic" select="$root-style_/root-style/@font-family-generic"/>
|
2323
|
+
|
2178
2324
|
<xsl:for-each select="$root-style_/root-style/@*">
|
2325
|
+
|
2179
2326
|
<xsl:choose>
|
2180
|
-
<xsl:when test="local-name() = 'font-family'
|
2327
|
+
<xsl:when test="local-name() = 'font-family-generic'"><!-- skip, it's using for determine 'sans' or 'serif' --></xsl:when>
|
2328
|
+
<xsl:when test="local-name() = 'font-family'">
|
2329
|
+
|
2330
|
+
<xsl:variable name="font_regional_prefix">
|
2331
|
+
<xsl:choose>
|
2332
|
+
<xsl:when test="$font_family_generic = 'Sans'">Noto Sans</xsl:when>
|
2333
|
+
<xsl:otherwise>Noto Serif</xsl:otherwise>
|
2334
|
+
</xsl:choose>
|
2335
|
+
</xsl:variable>
|
2336
|
+
|
2181
2337
|
<xsl:attribute name="{local-name()}">
|
2182
|
-
|
2338
|
+
|
2339
|
+
<xsl:variable name="font_extended">
|
2340
|
+
<xsl:choose>
|
2341
|
+
<xsl:when test="$lang = 'zh'"><xsl:value-of select="$font_regional_prefix"/> SC</xsl:when>
|
2342
|
+
<xsl:when test="$lang = 'hk'"><xsl:value-of select="$font_regional_prefix"/> HK</xsl:when>
|
2343
|
+
<xsl:when test="$lang = 'jp'"><xsl:value-of select="$font_regional_prefix"/> JP</xsl:when>
|
2344
|
+
<xsl:when test="$lang = 'kr'"><xsl:value-of select="$font_regional_prefix"/> KR</xsl:when>
|
2345
|
+
<xsl:when test="$lang = 'sc'"><xsl:value-of select="$font_regional_prefix"/> SC</xsl:when>
|
2346
|
+
<xsl:when test="$lang = 'tc'"><xsl:value-of select="$font_regional_prefix"/> TC</xsl:when>
|
2347
|
+
</xsl:choose>
|
2348
|
+
</xsl:variable>
|
2349
|
+
<xsl:if test="normalize-space($font_extended) != ''">
|
2350
|
+
<xsl:value-of select="$font_regional_prefix"/><xsl:text>, </xsl:text>
|
2351
|
+
<xsl:value-of select="$font_extended"/><xsl:text>, </xsl:text>
|
2352
|
+
</xsl:if>
|
2353
|
+
|
2354
|
+
<xsl:value-of select="."/>
|
2355
|
+
|
2356
|
+
<xsl:if test="$additional_fonts != ''">
|
2357
|
+
<xsl:text>, </xsl:text><xsl:value-of select="$additional_fonts"/>
|
2358
|
+
</xsl:if>
|
2183
2359
|
</xsl:attribute>
|
2184
2360
|
</xsl:when>
|
2185
2361
|
<xsl:otherwise>
|
2186
2362
|
<xsl:copy-of select="."/>
|
2187
2363
|
</xsl:otherwise>
|
2188
2364
|
</xsl:choose>
|
2365
|
+
|
2366
|
+
<!-- <xsl:choose>
|
2367
|
+
<xsl:when test="local-name() = 'font-family'">
|
2368
|
+
<xsl:attribute name="{local-name()}">
|
2369
|
+
<xsl:value-of select="."/>, <xsl:value-of select="$additional_fonts"/>
|
2370
|
+
</xsl:attribute>
|
2371
|
+
</xsl:when>
|
2372
|
+
<xsl:otherwise>
|
2373
|
+
<xsl:copy-of select="."/>
|
2374
|
+
</xsl:otherwise>
|
2375
|
+
</xsl:choose> -->
|
2189
2376
|
</xsl:for-each>
|
2190
2377
|
</xsl:template><xsl:attribute-set name="copyright-statement-style">
|
2191
2378
|
|
@@ -2262,7 +2449,8 @@
|
|
2262
2449
|
|
2263
2450
|
|
2264
2451
|
|
2265
|
-
|
2452
|
+
|
2453
|
+
<xsl:attribute name="font-family">Courier New, <xsl:value-of select="$font_noto_sans_mono"/></xsl:attribute>
|
2266
2454
|
<xsl:attribute name="margin-bottom">12pt</xsl:attribute>
|
2267
2455
|
|
2268
2456
|
|
@@ -2281,7 +2469,17 @@
|
|
2281
2469
|
|
2282
2470
|
</xsl:attribute-set><xsl:attribute-set name="requirement-style">
|
2283
2471
|
|
2472
|
+
<xsl:attribute name="margin-top">6pt</xsl:attribute>
|
2473
|
+
<xsl:attribute name="margin-bottom">6pt</xsl:attribute>
|
2474
|
+
|
2475
|
+
|
2284
2476
|
</xsl:attribute-set><xsl:attribute-set name="requirement-name-style">
|
2477
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
2478
|
+
|
2479
|
+
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
2480
|
+
<xsl:attribute name="text-align">center</xsl:attribute>
|
2481
|
+
<xsl:attribute name="margin-bottom">4pt</xsl:attribute>
|
2482
|
+
|
2285
2483
|
|
2286
2484
|
</xsl:attribute-set><xsl:attribute-set name="requirement-label-style">
|
2287
2485
|
|
@@ -2305,6 +2503,7 @@
|
|
2305
2503
|
|
2306
2504
|
|
2307
2505
|
|
2506
|
+
|
2308
2507
|
<xsl:attribute name="font-size">10pt</xsl:attribute>
|
2309
2508
|
<xsl:attribute name="margin-top">8pt</xsl:attribute>
|
2310
2509
|
<xsl:attribute name="margin-bottom">8pt</xsl:attribute>
|
@@ -2317,6 +2516,7 @@
|
|
2317
2516
|
|
2318
2517
|
|
2319
2518
|
|
2519
|
+
|
2320
2520
|
<xsl:attribute name="font-size">10pt</xsl:attribute>
|
2321
2521
|
<xsl:attribute name="margin-top">8pt</xsl:attribute>
|
2322
2522
|
<xsl:attribute name="margin-bottom">8pt</xsl:attribute>
|
@@ -2357,6 +2557,7 @@
|
|
2357
2557
|
|
2358
2558
|
|
2359
2559
|
|
2560
|
+
|
2360
2561
|
|
2361
2562
|
|
2362
2563
|
|
@@ -2391,10 +2592,12 @@
|
|
2391
2592
|
|
2392
2593
|
<xsl:attribute name="padding-right">5mm</xsl:attribute>
|
2393
2594
|
|
2595
|
+
|
2394
2596
|
|
2395
2597
|
|
2396
2598
|
</xsl:attribute-set><xsl:variable name="table-border_">
|
2397
2599
|
|
2600
|
+
|
2398
2601
|
</xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-container-style">
|
2399
2602
|
<xsl:attribute name="margin-left">0mm</xsl:attribute>
|
2400
2603
|
<xsl:attribute name="margin-right">0mm</xsl:attribute>
|
@@ -2407,6 +2610,7 @@
|
|
2407
2610
|
|
2408
2611
|
|
2409
2612
|
|
2613
|
+
|
2410
2614
|
<xsl:attribute name="font-size">10pt</xsl:attribute>
|
2411
2615
|
<xsl:attribute name="margin-top">12pt</xsl:attribute>
|
2412
2616
|
<xsl:attribute name="margin-bottom">8pt</xsl:attribute>
|
@@ -2437,6 +2641,7 @@
|
|
2437
2641
|
|
2438
2642
|
|
2439
2643
|
|
2644
|
+
|
2440
2645
|
<xsl:attribute name="border">1.5pt solid black</xsl:attribute>
|
2441
2646
|
|
2442
2647
|
|
@@ -2456,6 +2661,7 @@
|
|
2456
2661
|
|
2457
2662
|
|
2458
2663
|
|
2664
|
+
|
2459
2665
|
|
2460
2666
|
|
2461
2667
|
<xsl:attribute name="font-size">11pt</xsl:attribute>
|
@@ -2542,6 +2748,7 @@
|
|
2542
2748
|
|
2543
2749
|
|
2544
2750
|
|
2751
|
+
|
2545
2752
|
</xsl:attribute-set><xsl:attribute-set name="table-footer-cell-style">
|
2546
2753
|
<xsl:attribute name="border">solid black 1pt</xsl:attribute>
|
2547
2754
|
<xsl:attribute name="padding-left">1mm</xsl:attribute>
|
@@ -2556,7 +2763,7 @@
|
|
2556
2763
|
<xsl:attribute name="border-top">solid black 0pt</xsl:attribute>
|
2557
2764
|
|
2558
2765
|
|
2559
|
-
|
2766
|
+
|
2560
2767
|
|
2561
2768
|
|
2562
2769
|
|
@@ -2574,6 +2781,7 @@
|
|
2574
2781
|
|
2575
2782
|
|
2576
2783
|
|
2784
|
+
|
2577
2785
|
</xsl:attribute-set><xsl:attribute-set name="table-fn-style">
|
2578
2786
|
<xsl:attribute name="margin-bottom">12pt</xsl:attribute>
|
2579
2787
|
|
@@ -2585,6 +2793,8 @@
|
|
2585
2793
|
|
2586
2794
|
|
2587
2795
|
|
2796
|
+
|
2797
|
+
|
2588
2798
|
</xsl:attribute-set><xsl:attribute-set name="table-fn-number-style">
|
2589
2799
|
<xsl:attribute name="font-size">80%</xsl:attribute>
|
2590
2800
|
<xsl:attribute name="padding-right">5mm</xsl:attribute>
|
@@ -2602,6 +2812,7 @@
|
|
2602
2812
|
|
2603
2813
|
|
2604
2814
|
|
2815
|
+
|
2605
2816
|
</xsl:attribute-set><xsl:attribute-set name="fn-container-body-style">
|
2606
2817
|
<xsl:attribute name="text-indent">0</xsl:attribute>
|
2607
2818
|
<xsl:attribute name="start-indent">0</xsl:attribute>
|
@@ -2630,12 +2841,33 @@
|
|
2630
2841
|
|
2631
2842
|
|
2632
2843
|
|
2844
|
+
|
2633
2845
|
<xsl:attribute name="margin-top">0pt</xsl:attribute>
|
2634
2846
|
|
2635
2847
|
|
2636
2848
|
|
2637
2849
|
|
2638
2850
|
|
2851
|
+
</xsl:attribute-set><xsl:attribute-set name="dl-name-style">
|
2852
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
2853
|
+
<xsl:attribute name="margin-bottom">6pt</xsl:attribute>
|
2854
|
+
|
2855
|
+
|
2856
|
+
|
2857
|
+
|
2858
|
+
|
2859
|
+
|
2860
|
+
|
2861
|
+
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
2862
|
+
|
2863
|
+
|
2864
|
+
|
2865
|
+
|
2866
|
+
|
2867
|
+
|
2868
|
+
|
2869
|
+
|
2870
|
+
|
2639
2871
|
</xsl:attribute-set><xsl:attribute-set name="dd-cell-style">
|
2640
2872
|
<xsl:attribute name="padding-left">2mm</xsl:attribute>
|
2641
2873
|
</xsl:attribute-set><xsl:attribute-set name="appendix-style">
|
@@ -2677,6 +2909,7 @@
|
|
2677
2909
|
|
2678
2910
|
|
2679
2911
|
|
2912
|
+
|
2680
2913
|
|
2681
2914
|
|
2682
2915
|
<xsl:attribute name="font-size">10pt</xsl:attribute>
|
@@ -2719,7 +2952,8 @@
|
|
2719
2952
|
|
2720
2953
|
|
2721
2954
|
|
2722
|
-
|
2955
|
+
|
2956
|
+
|
2723
2957
|
|
2724
2958
|
|
2725
2959
|
<xsl:attribute name="margin-top">8pt</xsl:attribute>
|
@@ -2735,6 +2969,7 @@
|
|
2735
2969
|
</xsl:attribute-set><xsl:attribute-set name="termnote-style">
|
2736
2970
|
|
2737
2971
|
|
2972
|
+
|
2738
2973
|
|
2739
2974
|
|
2740
2975
|
<xsl:attribute name="font-size">10pt</xsl:attribute>
|
@@ -2750,6 +2985,8 @@
|
|
2750
2985
|
|
2751
2986
|
|
2752
2987
|
|
2988
|
+
</xsl:attribute-set><xsl:attribute-set name="termnote-p-style">
|
2989
|
+
|
2753
2990
|
</xsl:attribute-set><xsl:attribute-set name="quote-style">
|
2754
2991
|
<xsl:attribute name="margin-left">12mm</xsl:attribute>
|
2755
2992
|
<xsl:attribute name="margin-right">12mm</xsl:attribute>
|
@@ -2796,6 +3033,7 @@
|
|
2796
3033
|
</xsl:attribute-set><xsl:attribute-set name="figure-name-style">
|
2797
3034
|
|
2798
3035
|
|
3036
|
+
|
2799
3037
|
|
2800
3038
|
|
2801
3039
|
|
@@ -2836,6 +3074,7 @@
|
|
2836
3074
|
|
2837
3075
|
|
2838
3076
|
|
3077
|
+
|
2839
3078
|
<xsl:attribute name="text-align">left</xsl:attribute>
|
2840
3079
|
<xsl:attribute name="margin-left">5mm</xsl:attribute>
|
2841
3080
|
|
@@ -2863,20 +3102,20 @@
|
|
2863
3102
|
</xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
|
2864
3103
|
|
2865
3104
|
</xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
|
3105
|
+
<xsl:attribute name="width">100%</xsl:attribute>
|
3106
|
+
<xsl:attribute name="content-height">100%</xsl:attribute>
|
3107
|
+
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
2866
3108
|
|
2867
3109
|
|
2868
|
-
<xsl:attribute name="width">100%</xsl:attribute>
|
2869
3110
|
<xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
|
2870
|
-
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
2871
3111
|
|
2872
3112
|
|
2873
3113
|
|
2874
|
-
|
2875
|
-
|
3114
|
+
|
2876
3115
|
</xsl:attribute-set><xsl:attribute-set name="tt-style">
|
2877
3116
|
|
2878
3117
|
|
2879
|
-
<xsl:attribute name="font-family">Courier New
|
3118
|
+
<xsl:attribute name="font-family">Courier New, <xsl:value-of select="$font_noto_sans_mono"/></xsl:attribute>
|
2880
3119
|
|
2881
3120
|
|
2882
3121
|
</xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
|
@@ -2949,6 +3188,7 @@
|
|
2949
3188
|
|
2950
3189
|
|
2951
3190
|
|
3191
|
+
|
2952
3192
|
<xsl:attribute name="provisional-distance-between-starts">7mm</xsl:attribute>
|
2953
3193
|
<xsl:attribute name="margin-top">8pt</xsl:attribute>
|
2954
3194
|
|
@@ -2962,6 +3202,25 @@
|
|
2962
3202
|
|
2963
3203
|
|
2964
3204
|
|
3205
|
+
</xsl:attribute-set><xsl:attribute-set name="list-name-style">
|
3206
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
3207
|
+
|
3208
|
+
|
3209
|
+
|
3210
|
+
|
3211
|
+
|
3212
|
+
|
3213
|
+
<xsl:attribute name="margin-top">8pt</xsl:attribute>
|
3214
|
+
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
3215
|
+
|
3216
|
+
|
3217
|
+
|
3218
|
+
|
3219
|
+
|
3220
|
+
|
3221
|
+
|
3222
|
+
|
3223
|
+
|
2965
3224
|
</xsl:attribute-set><xsl:attribute-set name="list-item-style">
|
2966
3225
|
|
2967
3226
|
|
@@ -2998,6 +3257,7 @@
|
|
2998
3257
|
|
2999
3258
|
|
3000
3259
|
|
3260
|
+
|
3001
3261
|
<xsl:attribute name="font-size">80%</xsl:attribute>
|
3002
3262
|
<xsl:attribute name="vertical-align">super</xsl:attribute>
|
3003
3263
|
|
@@ -3022,6 +3282,7 @@
|
|
3022
3282
|
|
3023
3283
|
|
3024
3284
|
|
3285
|
+
|
3025
3286
|
<xsl:attribute name="font-size">10pt</xsl:attribute>
|
3026
3287
|
<xsl:attribute name="margin-bottom">12pt</xsl:attribute>
|
3027
3288
|
|
@@ -3045,6 +3306,7 @@
|
|
3045
3306
|
|
3046
3307
|
|
3047
3308
|
|
3309
|
+
|
3048
3310
|
<xsl:attribute name="padding-right">3mm</xsl:attribute>
|
3049
3311
|
|
3050
3312
|
|
@@ -3064,6 +3326,7 @@
|
|
3064
3326
|
|
3065
3327
|
|
3066
3328
|
|
3329
|
+
|
3067
3330
|
<xsl:attribute name="margin-bottom">12pt</xsl:attribute>
|
3068
3331
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
3069
3332
|
|
@@ -3075,6 +3338,9 @@
|
|
3075
3338
|
|
3076
3339
|
|
3077
3340
|
</xsl:attribute-set><xsl:attribute-set name="admonition-container-style">
|
3341
|
+
<xsl:attribute name="margin-left">0mm</xsl:attribute>
|
3342
|
+
<xsl:attribute name="margin-right">0mm</xsl:attribute>
|
3343
|
+
|
3078
3344
|
|
3079
3345
|
|
3080
3346
|
|
@@ -3112,6 +3378,7 @@
|
|
3112
3378
|
|
3113
3379
|
|
3114
3380
|
|
3381
|
+
|
3115
3382
|
</xsl:attribute-set><xsl:attribute-set name="bibitem-normative-style">
|
3116
3383
|
|
3117
3384
|
|
@@ -3140,6 +3407,10 @@
|
|
3140
3407
|
|
3141
3408
|
|
3142
3409
|
|
3410
|
+
<!-- <xsl:if test="$namespace = 'ieee'">
|
3411
|
+
<xsl:attribute name="margin-bottom">6pt</xsl:attribute>
|
3412
|
+
<xsl:attribute name="provisional-distance-between-starts">9.5mm</xsl:attribute>
|
3413
|
+
</xsl:if> -->
|
3143
3414
|
|
3144
3415
|
|
3145
3416
|
<xsl:attribute name="margin-bottom">6pt</xsl:attribute>
|
@@ -3163,6 +3434,7 @@
|
|
3163
3434
|
|
3164
3435
|
|
3165
3436
|
|
3437
|
+
|
3166
3438
|
<xsl:attribute name="margin-bottom">6pt</xsl:attribute>
|
3167
3439
|
|
3168
3440
|
|
@@ -3188,6 +3460,7 @@
|
|
3188
3460
|
|
3189
3461
|
|
3190
3462
|
|
3463
|
+
|
3191
3464
|
<xsl:attribute name="font-size">8pt</xsl:attribute>
|
3192
3465
|
<xsl:attribute name="baseline-shift">30%</xsl:attribute>
|
3193
3466
|
|
@@ -3209,6 +3482,7 @@
|
|
3209
3482
|
|
3210
3483
|
|
3211
3484
|
|
3485
|
+
|
3212
3486
|
<xsl:attribute name="alignment-baseline">hanging</xsl:attribute>
|
3213
3487
|
<xsl:attribute name="padding-right">3mm</xsl:attribute>
|
3214
3488
|
|
@@ -3230,6 +3504,7 @@
|
|
3230
3504
|
|
3231
3505
|
|
3232
3506
|
|
3507
|
+
|
3233
3508
|
<xsl:attribute name="margin-bottom">4pt</xsl:attribute>
|
3234
3509
|
|
3235
3510
|
|
@@ -3356,13 +3631,13 @@
|
|
3356
3631
|
|
3357
3632
|
</xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:variable name="ace_tag">ace-tag_</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
|
3358
3633
|
<xsl:variable name="nodes_preface_">
|
3359
|
-
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
3634
|
+
<xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
|
3360
3635
|
<node id="{@id}"/>
|
3361
3636
|
</xsl:for-each>
|
3362
3637
|
</xsl:variable>
|
3363
3638
|
<xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
|
3364
3639
|
|
3365
|
-
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
3640
|
+
<xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
|
3366
3641
|
<xsl:sort select="@displayorder" data-type="number"/>
|
3367
3642
|
|
3368
3643
|
<!-- process Section's title -->
|
@@ -3428,7 +3703,7 @@
|
|
3428
3703
|
</xsl:for-each>
|
3429
3704
|
</figures>
|
3430
3705
|
</xsl:template><xsl:template name="processPrefaceSectionsDefault">
|
3431
|
-
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
3706
|
+
<xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
|
3432
3707
|
<xsl:sort select="@displayorder" data-type="number"/>
|
3433
3708
|
<xsl:apply-templates select="."/>
|
3434
3709
|
</xsl:for-each>
|
@@ -3676,6 +3951,8 @@
|
|
3676
3951
|
|
3677
3952
|
|
3678
3953
|
|
3954
|
+
|
3955
|
+
|
3679
3956
|
|
3680
3957
|
|
3681
3958
|
|
@@ -3706,6 +3983,8 @@
|
|
3706
3983
|
|
3707
3984
|
|
3708
3985
|
|
3986
|
+
|
3987
|
+
|
3709
3988
|
<xsl:if test="*[local-name()='thead']">
|
3710
3989
|
<xsl:attribute name="border-top">1pt solid black</xsl:attribute>
|
3711
3990
|
</xsl:if>
|
@@ -3865,25 +4144,31 @@
|
|
3865
4144
|
</xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']">
|
3866
4145
|
<xsl:param name="continued"/>
|
3867
4146
|
<xsl:if test="normalize-space() != ''">
|
3868
|
-
|
3869
|
-
|
3870
|
-
|
3871
|
-
|
3872
|
-
|
4147
|
+
|
4148
|
+
|
3873
4149
|
|
3874
|
-
|
3875
|
-
|
4150
|
+
<fo:block xsl:use-attribute-sets="table-name-style">
|
4151
|
+
|
3876
4152
|
|
3877
|
-
<xsl:apply-templates/>
|
3878
4153
|
|
3879
|
-
|
3880
|
-
|
3881
|
-
<xsl:
|
3882
|
-
|
3883
|
-
|
3884
|
-
|
4154
|
+
|
4155
|
+
|
4156
|
+
<xsl:choose>
|
4157
|
+
<xsl:when test="$continued = 'true'">
|
4158
|
+
|
4159
|
+
<xsl:apply-templates/>
|
4160
|
+
|
4161
|
+
</xsl:when>
|
4162
|
+
<xsl:otherwise>
|
4163
|
+
<xsl:apply-templates/>
|
4164
|
+
</xsl:otherwise>
|
4165
|
+
</xsl:choose>
|
4166
|
+
|
4167
|
+
|
4168
|
+
</fo:block>
|
4169
|
+
|
3885
4170
|
|
3886
|
-
|
4171
|
+
|
3887
4172
|
</xsl:if>
|
3888
4173
|
</xsl:template><xsl:template name="calculate-columns-numbers">
|
3889
4174
|
<xsl:param name="table-row"/>
|
@@ -3895,11 +4180,7 @@
|
|
3895
4180
|
<xsl:param name="table"/>
|
3896
4181
|
<xsl:param name="cols-count"/>
|
3897
4182
|
|
3898
|
-
<xsl:call-template name="
|
3899
|
-
<xsl:with-param name="cols-count" select="$cols-count"/>
|
3900
|
-
<xsl:with-param name="table" select="$table"/>
|
3901
|
-
<xsl:with-param name="if">true</xsl:with-param>
|
3902
|
-
</xsl:call-template>
|
4183
|
+
<xsl:call-template name="get-calculated-column-widths-autolayout-algorithm"/>
|
3903
4184
|
|
3904
4185
|
</xsl:template><xsl:template name="calculate-column-widths-proportional">
|
3905
4186
|
<xsl:param name="table"/>
|
@@ -4047,8 +4328,9 @@
|
|
4047
4328
|
<xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
|
4048
4329
|
</xsl:if>
|
4049
4330
|
</xsl:template><xsl:template name="calculate-column-widths-autolayout-algorithm">
|
4050
|
-
<xsl:param name="
|
4051
|
-
|
4331
|
+
<xsl:param name="parent_table_page-width"/> <!-- for nested tables, in re-calculate step -->
|
4332
|
+
|
4333
|
+
<!-- via intermediate format -->
|
4052
4334
|
|
4053
4335
|
<!-- The algorithm uses two passes through the table data and scales linearly with the size of the table -->
|
4054
4336
|
|
@@ -4059,9 +4341,8 @@
|
|
4059
4341
|
<!-- get current table id -->
|
4060
4342
|
<xsl:variable name="table_id" select="@id"/>
|
4061
4343
|
<!-- find table by id in the file 'table_widths' -->
|
4062
|
-
|
4063
|
-
<xsl:variable name="table-if" select="xalan:nodeset($table-if_)"/>
|
4064
|
-
|
4344
|
+
<!-- <xsl:variable name="table-if_" select="$table_widths_from_if//table[@id = $table_id]"/>
|
4345
|
+
<xsl:variable name="table-if" select="xalan:nodeset($table-if_)"/> -->
|
4065
4346
|
|
4066
4347
|
<!-- table='<xsl:copy-of select="$table"/>' -->
|
4067
4348
|
<!-- table_id='<xsl:value-of select="$table_id"/>\ -->
|
@@ -4069,24 +4350,13 @@
|
|
4069
4350
|
<!-- table_widths_from_if='<xsl:copy-of select="$table_widths_from_if"/>' -->
|
4070
4351
|
|
4071
4352
|
<xsl:variable name="table_with_cell_widths_">
|
4072
|
-
<xsl:
|
4073
|
-
<xsl:when test="$if = 'true' and normalize-space($table-if) != ''"> <!-- if we read column's width from IF and there is table in IF -->
|
4074
|
-
|
4075
|
-
<!-- Example: <column>10</column>
|
4076
|
-
<column>11</column>
|
4077
|
-
-->
|
4078
|
-
<xsl:apply-templates select="$table-if" mode="determine_cell_widths-if"/>
|
4079
|
-
</xsl:when>
|
4080
|
-
<xsl:otherwise>
|
4081
|
-
<xsl:apply-templates select="xalan:nodeset($table)" mode="determine_cell_widths"/>
|
4082
|
-
</xsl:otherwise>
|
4083
|
-
</xsl:choose>
|
4353
|
+
<xsl:apply-templates select="." mode="determine_cell_widths-if"/> <!-- read column's width from IF -->
|
4084
4354
|
</xsl:variable>
|
4085
4355
|
<xsl:variable name="table_with_cell_widths" select="xalan:nodeset($table_with_cell_widths_)"/>
|
4086
4356
|
|
4087
|
-
<xsl:if test="$table_if_debug = 'true'">
|
4357
|
+
<!-- <xsl:if test="$table_if_debug = 'true'">
|
4088
4358
|
<xsl:copy-of select="$table_with_cell_widths"/>
|
4089
|
-
</xsl:if>
|
4359
|
+
</xsl:if> -->
|
4090
4360
|
|
4091
4361
|
|
4092
4362
|
<!-- The minimum and maximum cell widths are then used to determine the corresponding minimum and maximum widths for the columns. -->
|
@@ -4132,8 +4402,12 @@
|
|
4132
4402
|
|
4133
4403
|
<xsl:variable name="page_width">
|
4134
4404
|
<xsl:choose>
|
4135
|
-
<xsl:when test="$
|
4136
|
-
|
4405
|
+
<xsl:when test="$parent_table_page-width != ''">
|
4406
|
+
<xsl:value-of select="$parent_table_page-width"/>
|
4407
|
+
</xsl:when>
|
4408
|
+
<xsl:otherwise>
|
4409
|
+
<xsl:value-of select="@page-width"/>
|
4410
|
+
</xsl:otherwise>
|
4137
4411
|
</xsl:choose>
|
4138
4412
|
</xsl:variable>
|
4139
4413
|
|
@@ -4141,9 +4415,6 @@
|
|
4141
4415
|
<table_width>
|
4142
4416
|
<xsl:copy-of select="$table_widths"/>
|
4143
4417
|
</table_width>
|
4144
|
-
<!-- <debug>$table_widths/@width_min=<xsl:value-of select="$table_widths/table/@width_min"/></debug>
|
4145
|
-
<debug>$table_widths/@width_max=<xsl:value-of select="$table_widths/table/@width_max"/></debug>
|
4146
|
-
-->
|
4147
4418
|
<debug>$page_width=<xsl:value-of select="$page_width"/></debug>
|
4148
4419
|
</xsl:if>
|
4149
4420
|
|
@@ -4154,11 +4425,11 @@
|
|
4154
4425
|
<xsl:when test="$table_widths/table/@width_min >= $page_width and 1 = 2"> <!-- this condition isn't working see case 3 below -->
|
4155
4426
|
<!-- call old algorithm -->
|
4156
4427
|
<case1/>
|
4157
|
-
<xsl:variable name="cols-count" select="count(xalan:nodeset($table)/*/tr[1]/td)"/>
|
4428
|
+
<!-- <xsl:variable name="cols-count" select="count(xalan:nodeset($table)/*/tr[1]/td)"/>
|
4158
4429
|
<xsl:call-template name="calculate-column-widths-proportional">
|
4159
4430
|
<xsl:with-param name="cols-count" select="$cols-count"/>
|
4160
4431
|
<xsl:with-param name="table" select="$table"/>
|
4161
|
-
</xsl:call-template>
|
4432
|
+
</xsl:call-template> -->
|
4162
4433
|
</xsl:when>
|
4163
4434
|
<!-- 2. The maximum table width fits within the available space. In this case, set the columns to their maximum widths. -->
|
4164
4435
|
<xsl:when test="$table_widths/table/@width_max <= $page_width">
|
@@ -4202,95 +4473,49 @@
|
|
4202
4473
|
<xsl:otherwise><unknown_case/></xsl:otherwise>
|
4203
4474
|
</xsl:choose>
|
4204
4475
|
|
4476
|
+
</xsl:template><xsl:template name="get-calculated-column-widths-autolayout-algorithm">
|
4205
4477
|
|
4206
|
-
|
4207
|
-
<xsl:
|
4208
|
-
|
4209
|
-
</xsl:copy>
|
4210
|
-
</xsl:template><xsl:template match="td | th" mode="determine_cell_widths">
|
4211
|
-
<xsl:copy>
|
4212
|
-
<xsl:copy-of select="@*"/>
|
4478
|
+
<!-- if nested 'dl' or 'table' -->
|
4479
|
+
<xsl:variable name="parent_table_id" select="normalize-space(ancestor::*[local-name() = 'table' or local-name() = 'dl'][1]/@id)"/>
|
4480
|
+
<parent_table_id><xsl:value-of select="$parent_table_id"/></parent_table_id>
|
4213
4481
|
|
4214
|
-
|
4215
|
-
<xsl:variable name="widths_max">
|
4216
|
-
<xsl:for-each select=".//*[local-name() = 'p']">
|
4217
|
-
<xsl:call-template name="add_width"/>
|
4218
|
-
</xsl:for-each>
|
4219
|
-
<xsl:if test="not(*[local-name() = 'p'])">
|
4220
|
-
<xsl:call-template name="add_width"/>
|
4221
|
-
</xsl:if>
|
4222
|
-
</xsl:variable>
|
4223
|
-
<xsl:variable name="width_max">
|
4224
|
-
<xsl:for-each select="xalan:nodeset($widths_max)//width">
|
4225
|
-
<xsl:sort select="." data-type="number" order="descending"/>
|
4226
|
-
<xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
|
4227
|
-
</xsl:for-each>
|
4228
|
-
</xsl:variable>
|
4229
|
-
<xsl:attribute name="width_max">
|
4230
|
-
<xsl:value-of select="$width_max"/>
|
4231
|
-
</xsl:attribute>
|
4482
|
+
<parent_element><xsl:value-of select="local-name(..)"/></parent_element>
|
4232
4483
|
|
4233
|
-
|
4234
|
-
|
4235
|
-
|
4236
|
-
<xsl:
|
4237
|
-
|
4238
|
-
|
4239
|
-
|
4240
|
-
|
4241
|
-
|
4242
|
-
</xsl:
|
4484
|
+
<xsl:variable name="parent_table_page-width_">
|
4485
|
+
<xsl:if test="$parent_table_id != ''">
|
4486
|
+
<!-- determine column number in the parent table -->
|
4487
|
+
<xsl:variable name="parent_table_column_number">
|
4488
|
+
<xsl:choose>
|
4489
|
+
<xsl:when test="parent::*[local-name() = 'dd']">2</xsl:when>
|
4490
|
+
<xsl:otherwise> <!-- parent is table -->
|
4491
|
+
<xsl:value-of select="count(ancestor::*[local-name() = 'td'][1]/preceding-sibling::*[local-name() = 'td']) + 1"/>
|
4492
|
+
</xsl:otherwise>
|
4493
|
+
</xsl:choose>
|
4243
4494
|
</xsl:variable>
|
4244
|
-
|
4245
|
-
|
4246
|
-
</xsl:call-template>
|
4247
|
-
</xsl:variable>
|
4248
|
-
|
4249
|
-
<xsl:variable name="max_word_length">
|
4250
|
-
<xsl:call-template name="max_length">
|
4251
|
-
<xsl:with-param name="words" select="xalan:nodeset($words)"/>
|
4252
|
-
</xsl:call-template>
|
4253
|
-
</xsl:variable>
|
4254
|
-
<xsl:variable name="width_min">
|
4255
|
-
<xsl:value-of select="$max_word_length"/>
|
4256
|
-
</xsl:variable>
|
4257
|
-
<xsl:attribute name="width_min">
|
4258
|
-
<xsl:value-of select="$width_min"/>
|
4259
|
-
</xsl:attribute>
|
4260
|
-
<!-- width_max="1" width_min="1.5"> --> <!-- see 'tokenize' template, multiply 1.5 for all latin capitals -->
|
4261
|
-
<xsl:if test="$width_min > $width_max">
|
4262
|
-
<xsl:attribute name="width_max">
|
4263
|
-
<xsl:value-of select="$width_min"/>
|
4264
|
-
</xsl:attribute>
|
4495
|
+
<!-- find table by id in the file 'table_widths' and get all Nth `<column>...</column> -->
|
4496
|
+
<xsl:value-of select="$table_widths_from_if_calculated//table[@id = $parent_table_id]/column[number($parent_table_column_number)]"/>
|
4265
4497
|
</xsl:if>
|
4266
|
-
<xsl:if test="$width_min = 0">
|
4267
|
-
<xsl:attribute name="width_min">1</xsl:attribute>
|
4268
|
-
</xsl:if>
|
4269
|
-
|
4270
|
-
<xsl:apply-templates select="node()" mode="determine_cell_widths"/>
|
4271
|
-
|
4272
|
-
</xsl:copy>
|
4273
|
-
</xsl:template><xsl:template name="add_width">
|
4274
|
-
<xsl:variable name="p_text"><xsl:apply-templates select="." mode="td_text"/></xsl:variable>
|
4275
|
-
<xsl:variable name="p_text_len_" select="string-length(normalize-space($p_text))"/>
|
4276
|
-
|
4277
|
-
<xsl:variable name="p_text_len">
|
4278
|
-
<xsl:choose>
|
4279
|
-
<xsl:when test="normalize-space(translate($p_text, concat($upper,'0123456789'), '')) = ''"> <!-- english word in CAPITAL letters -->
|
4280
|
-
<xsl:value-of select="$p_text_len_ * 1.5"/>
|
4281
|
-
</xsl:when>
|
4282
|
-
<xsl:otherwise><xsl:value-of select="$p_text_len_"/></xsl:otherwise>
|
4283
|
-
</xsl:choose>
|
4284
4498
|
</xsl:variable>
|
4499
|
+
<xsl:variable name="parent_table_page-width" select="normalize-space($parent_table_page-width_)"/>
|
4285
4500
|
|
4286
|
-
|
4287
|
-
|
4288
|
-
|
4289
|
-
|
4290
|
-
|
4291
|
-
|
4501
|
+
<!-- get current table id -->
|
4502
|
+
<xsl:variable name="table_id" select="@id"/>
|
4503
|
+
|
4504
|
+
<xsl:choose>
|
4505
|
+
<xsl:when test="$parent_table_id = '' or $parent_table_page-width = ''">
|
4506
|
+
<!-- find table by id in the file 'table_widths' and get all `<column>...</column> -->
|
4507
|
+
<xsl:copy-of select="$table_widths_from_if_calculated//table[@id = $table_id]/node()"/>
|
4508
|
+
</xsl:when>
|
4509
|
+
<xsl:otherwise>
|
4510
|
+
<!-- recalculate columns width based on parent table width -->
|
4511
|
+
<xsl:for-each select="$table_widths_from_if//table[@id = $table_id]">
|
4512
|
+
<xsl:call-template name="calculate-column-widths-autolayout-algorithm">
|
4513
|
+
<xsl:with-param name="parent_table_page-width" select="$parent_table_page-width"/> <!-- padding-left = 2mm = 50000-->
|
4514
|
+
</xsl:call-template>
|
4515
|
+
</xsl:for-each>
|
4516
|
+
</xsl:otherwise>
|
4517
|
+
</xsl:choose>
|
4292
4518
|
|
4293
|
-
<width><xsl:value-of select="$p_text_len + $math_addon_length"/></width>
|
4294
4519
|
</xsl:template><xsl:template match="@*|node()" mode="determine_cell_widths-if">
|
4295
4520
|
<xsl:copy>
|
4296
4521
|
<xsl:apply-templates select="@*|node()" mode="determine_cell_widths-if"/>
|
@@ -4342,19 +4567,25 @@
|
|
4342
4567
|
<fo:table-row>
|
4343
4568
|
<fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black">
|
4344
4569
|
|
4345
|
-
<xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
|
4346
|
-
<xsl:with-param name="continued">true</xsl:with-param>
|
4347
|
-
</xsl:apply-templates>
|
4348
4570
|
|
4349
4571
|
|
4350
|
-
|
4351
|
-
<xsl:
|
4352
|
-
|
4572
|
+
|
4573
|
+
<xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
|
4574
|
+
<xsl:with-param name="continued">true</xsl:with-param>
|
4575
|
+
</xsl:apply-templates>
|
4576
|
+
|
4577
|
+
|
4578
|
+
<xsl:for-each select="ancestor::*[local-name()='table'][1]">
|
4579
|
+
<xsl:call-template name="table_name_fn_display"/>
|
4580
|
+
</xsl:for-each>
|
4353
4581
|
|
4354
|
-
|
4355
|
-
|
4356
|
-
|
4357
|
-
|
4582
|
+
<fo:block text-align="right" font-style="italic">
|
4583
|
+
<xsl:text> </xsl:text>
|
4584
|
+
<fo:retrieve-table-marker retrieve-class-name="table_continued"/>
|
4585
|
+
</fo:block>
|
4586
|
+
|
4587
|
+
|
4588
|
+
|
4358
4589
|
|
4359
4590
|
|
4360
4591
|
</fo:table-cell>
|
@@ -4396,77 +4627,91 @@
|
|
4396
4627
|
</xsl:choose>
|
4397
4628
|
</xsl:variable>
|
4398
4629
|
|
4399
|
-
|
4400
|
-
|
4401
|
-
|
4630
|
+
|
4631
|
+
<xsl:variable name="tableWithNotesAndFootnotes">
|
4632
|
+
|
4633
|
+
<fo:table keep-with-previous="always">
|
4634
|
+
<xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
|
4635
|
+
<xsl:variable name="name" select="local-name()"/>
|
4636
|
+
<xsl:choose>
|
4637
|
+
<xsl:when test="$name = 'border-top'">
|
4638
|
+
<xsl:attribute name="{$name}">0pt solid black</xsl:attribute>
|
4639
|
+
</xsl:when>
|
4640
|
+
<xsl:when test="$name = 'border'">
|
4641
|
+
<xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
|
4642
|
+
<xsl:attribute name="border-top">0pt solid black</xsl:attribute>
|
4643
|
+
</xsl:when>
|
4644
|
+
<xsl:otherwise>
|
4645
|
+
<xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
|
4646
|
+
</xsl:otherwise>
|
4647
|
+
</xsl:choose>
|
4648
|
+
</xsl:for-each>
|
4649
|
+
|
4650
|
+
|
4651
|
+
|
4402
4652
|
<xsl:choose>
|
4403
|
-
<xsl:when test="$name
|
4404
|
-
<xsl:
|
4405
|
-
|
4406
|
-
|
4407
|
-
<xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
|
4408
|
-
<xsl:attribute name="border-top">0pt solid black</xsl:attribute>
|
4653
|
+
<xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
|
4654
|
+
<xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
|
4655
|
+
<fo:table-column column-width="{@width}"/>
|
4656
|
+
</xsl:for-each>
|
4409
4657
|
</xsl:when>
|
4410
4658
|
<xsl:otherwise>
|
4411
|
-
|
4659
|
+
<!-- $colwidths=<xsl:copy-of select="$colwidths"/> -->
|
4660
|
+
<xsl:call-template name="insertTableColumnWidth">
|
4661
|
+
<xsl:with-param name="colwidths" select="$colwidths"/>
|
4662
|
+
</xsl:call-template>
|
4412
4663
|
</xsl:otherwise>
|
4413
4664
|
</xsl:choose>
|
4414
|
-
|
4415
|
-
|
4416
|
-
|
4417
|
-
|
4418
|
-
|
4419
|
-
|
4420
|
-
<xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
|
4421
|
-
<fo:table-column column-width="{@width}"/>
|
4422
|
-
</xsl:for-each>
|
4423
|
-
</xsl:when>
|
4424
|
-
<xsl:otherwise>
|
4425
|
-
<!-- $colwidths=<xsl:copy-of select="$colwidths"/> -->
|
4426
|
-
<xsl:call-template name="insertTableColumnWidth">
|
4427
|
-
<xsl:with-param name="colwidths" select="$colwidths"/>
|
4428
|
-
</xsl:call-template>
|
4429
|
-
</xsl:otherwise>
|
4430
|
-
</xsl:choose>
|
4431
|
-
|
4432
|
-
<fo:table-body>
|
4433
|
-
<fo:table-row>
|
4434
|
-
<fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
|
4435
|
-
|
4436
|
-
|
4665
|
+
|
4666
|
+
<fo:table-body>
|
4667
|
+
<fo:table-row>
|
4668
|
+
<fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
|
4669
|
+
|
4670
|
+
|
4437
4671
|
|
4438
|
-
|
4439
|
-
|
4440
|
-
<!-- fn will be processed inside 'note' processing -->
|
4441
|
-
|
4442
|
-
|
4443
|
-
|
4444
|
-
|
4445
|
-
|
4446
|
-
|
4447
|
-
<!-- for BSI (not PAS) display Notes before footnotes -->
|
4448
|
-
|
4449
|
-
|
4450
|
-
<!-- except gb and bsi -->
|
4451
|
-
|
4452
|
-
<xsl:apply-templates select="../*[local-name()='note']"/>
|
4453
4672
|
|
4454
|
-
|
4455
|
-
|
4456
|
-
|
4457
|
-
|
4458
|
-
|
4459
|
-
|
4460
|
-
|
4461
|
-
|
4462
|
-
|
4463
|
-
|
4464
|
-
|
4465
|
-
|
4466
|
-
|
4467
|
-
|
4468
|
-
|
4469
|
-
|
4673
|
+
|
4674
|
+
<!-- fn will be processed inside 'note' processing -->
|
4675
|
+
|
4676
|
+
|
4677
|
+
|
4678
|
+
|
4679
|
+
|
4680
|
+
|
4681
|
+
<!-- for BSI (not PAS) display Notes before footnotes -->
|
4682
|
+
|
4683
|
+
|
4684
|
+
<!-- except gb and bsi -->
|
4685
|
+
|
4686
|
+
<xsl:apply-templates select="../*[local-name()='note']"/>
|
4687
|
+
|
4688
|
+
|
4689
|
+
|
4690
|
+
<!-- horizontal row separator -->
|
4691
|
+
|
4692
|
+
|
4693
|
+
<!-- fn processing -->
|
4694
|
+
|
4695
|
+
<xsl:call-template name="table_fn_display"/>
|
4696
|
+
|
4697
|
+
|
4698
|
+
|
4699
|
+
<!-- for PAS display Notes after footnotes -->
|
4700
|
+
|
4701
|
+
|
4702
|
+
</fo:table-cell>
|
4703
|
+
</fo:table-row>
|
4704
|
+
</fo:table-body>
|
4705
|
+
|
4706
|
+
</fo:table>
|
4707
|
+
</xsl:variable>
|
4708
|
+
|
4709
|
+
<xsl:if test="normalize-space($tableWithNotesAndFootnotes) != ''">
|
4710
|
+
<xsl:copy-of select="$tableWithNotesAndFootnotes"/>
|
4711
|
+
</xsl:if>
|
4712
|
+
|
4713
|
+
|
4714
|
+
|
4470
4715
|
</xsl:if>
|
4471
4716
|
</xsl:template><xsl:template match="*[local-name()='tbody']">
|
4472
4717
|
|
@@ -4611,6 +4856,9 @@
|
|
4611
4856
|
</xsl:choose>
|
4612
4857
|
|
4613
4858
|
|
4859
|
+
|
4860
|
+
|
4861
|
+
|
4614
4862
|
|
4615
4863
|
|
4616
4864
|
<xsl:call-template name="setTableRowAttributes"/>
|
@@ -4630,6 +4878,8 @@
|
|
4630
4878
|
|
4631
4879
|
|
4632
4880
|
|
4881
|
+
|
4882
|
+
|
4633
4883
|
<xsl:call-template name="setTableRowAttributes"/>
|
4634
4884
|
<xsl:apply-templates/>
|
4635
4885
|
</fo:table-row>
|
@@ -4709,6 +4959,8 @@
|
|
4709
4959
|
|
4710
4960
|
|
4711
4961
|
|
4962
|
+
|
4963
|
+
|
4712
4964
|
<xsl:if test="ancestor::*[local-name() = 'tfoot']">
|
4713
4965
|
<xsl:attribute name="border">solid black 0</xsl:attribute>
|
4714
4966
|
</xsl:if>
|
@@ -4786,7 +5038,11 @@
|
|
4786
5038
|
|
4787
5039
|
<xsl:variable name="gen_id" select="generate-id(.)"/>
|
4788
5040
|
<xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
|
4789
|
-
<xsl:variable name="
|
5041
|
+
<xsl:variable name="reference_">
|
5042
|
+
<xsl:value-of select="@reference"/>
|
5043
|
+
<xsl:if test="normalize-space(@reference) = ''"><xsl:value-of select="$gen_id"/></xsl:if>
|
5044
|
+
</xsl:variable>
|
5045
|
+
<xsl:variable name="reference" select="normalize-space($reference_)"/>
|
4790
5046
|
<!-- fn sequence number in document -->
|
4791
5047
|
<xsl:variable name="current_fn_number">
|
4792
5048
|
<xsl:choose>
|
@@ -4808,6 +5064,7 @@
|
|
4808
5064
|
<xsl:variable name="footnote_inline">
|
4809
5065
|
<fo:inline xsl:use-attribute-sets="fn-num-style">
|
4810
5066
|
|
5067
|
+
|
4811
5068
|
<fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
|
4812
5069
|
<xsl:value-of select="$current_fn_number_text"/>
|
4813
5070
|
</fo:basic-link>
|
@@ -4829,8 +5086,12 @@
|
|
4829
5086
|
<fo:block xsl:use-attribute-sets="fn-body-style">
|
4830
5087
|
|
4831
5088
|
|
5089
|
+
|
4832
5090
|
<fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style">
|
4833
5091
|
|
5092
|
+
|
5093
|
+
|
5094
|
+
|
4834
5095
|
<xsl:value-of select="$current_fn_number_text"/>
|
4835
5096
|
</fo:inline>
|
4836
5097
|
<xsl:apply-templates/>
|
@@ -4863,7 +5124,7 @@
|
|
4863
5124
|
<xsl:copy-of select="node()"/>
|
4864
5125
|
</fn>
|
4865
5126
|
</xsl:for-each>
|
4866
|
-
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*">
|
5127
|
+
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='boilerplate']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*">
|
4867
5128
|
<xsl:sort select="@displayorder" data-type="number"/>
|
4868
5129
|
<xsl:for-each select=".//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] | .//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
|
4869
5130
|
<!-- copy unique fn -->
|
@@ -5162,11 +5423,19 @@
|
|
5162
5423
|
|
5163
5424
|
|
5164
5425
|
|
5426
|
+
|
5427
|
+
<xsl:if test="ancestor::*[local-name() = 'dd' or local-name() = 'td']">
|
5428
|
+
<xsl:attribute name="margin-top">0</xsl:attribute>
|
5429
|
+
</xsl:if>
|
5430
|
+
|
5165
5431
|
<fo:block>
|
5166
5432
|
|
5167
5433
|
|
5168
5434
|
|
5169
5435
|
|
5436
|
+
<xsl:apply-templates select="*[local-name() = 'name']">
|
5437
|
+
<xsl:with-param name="process">true</xsl:with-param>
|
5438
|
+
</xsl:apply-templates>
|
5170
5439
|
|
5171
5440
|
<xsl:if test="$isGenerateTableIF = 'true'">
|
5172
5441
|
<!-- to determine start of table -->
|
@@ -5189,6 +5458,9 @@
|
|
5189
5458
|
</xsl:choose>
|
5190
5459
|
|
5191
5460
|
|
5461
|
+
<xsl:attribute name="width">100%</xsl:attribute>
|
5462
|
+
|
5463
|
+
|
5192
5464
|
<xsl:choose>
|
5193
5465
|
<xsl:when test="$isGenerateTableIF = 'true'">
|
5194
5466
|
<!-- generate IF for table widths -->
|
@@ -5319,6 +5591,18 @@
|
|
5319
5591
|
</xsl:if> <!-- END: a few components -->
|
5320
5592
|
</fo:block-container>
|
5321
5593
|
</fo:block-container>
|
5594
|
+
|
5595
|
+
<xsl:if test="$isGenerateTableIF = 'true'"> <!-- process nested 'dl' -->
|
5596
|
+
<xsl:apply-templates select="*[local-name() = 'dd']/*[local-name() = 'dl']"/>
|
5597
|
+
</xsl:if>
|
5598
|
+
|
5599
|
+
</xsl:template><xsl:template match="*[local-name() = 'dl']/*[local-name() = 'name']">
|
5600
|
+
<xsl:param name="process">false</xsl:param>
|
5601
|
+
<xsl:if test="$process = 'true'">
|
5602
|
+
<fo:block xsl:use-attribute-sets="dl-name-style">
|
5603
|
+
<xsl:apply-templates/>
|
5604
|
+
</fo:block>
|
5605
|
+
</xsl:if>
|
5322
5606
|
</xsl:template><xsl:template name="setColumnWidth_dl">
|
5323
5607
|
<xsl:param name="colwidths"/>
|
5324
5608
|
<xsl:param name="maxlength_dt"/>
|
@@ -5327,6 +5611,11 @@
|
|
5327
5611
|
<!-- <colwidths><xsl:copy-of select="$colwidths"/></colwidths> -->
|
5328
5612
|
|
5329
5613
|
<xsl:choose>
|
5614
|
+
<xsl:when test="xalan:nodeset($colwidths)/autolayout">
|
5615
|
+
<xsl:call-template name="insertTableColumnWidth">
|
5616
|
+
<xsl:with-param name="colwidths" select="$colwidths"/>
|
5617
|
+
</xsl:call-template>
|
5618
|
+
</xsl:when>
|
5330
5619
|
<xsl:when test="ancestor::*[local-name()='dl']"><!-- second level, i.e. inlined table -->
|
5331
5620
|
<fo:table-column column-width="50%"/>
|
5332
5621
|
<fo:table-column column-width="50%"/>
|
@@ -5579,12 +5868,24 @@
|
|
5579
5868
|
</td>
|
5580
5869
|
<td>
|
5581
5870
|
|
5582
|
-
<xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/node()"/>
|
5871
|
+
<xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/node()[not(local-name() = 'dl')]"/>
|
5872
|
+
|
5873
|
+
<!-- get paragraphs from nested 'dl' -->
|
5874
|
+
<xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]/*[local-name() = 'dl']" mode="dl_if_nested"/>
|
5875
|
+
|
5583
5876
|
|
5584
5877
|
</td>
|
5585
5878
|
</tr>
|
5586
5879
|
|
5587
|
-
</xsl:template><xsl:template match="*[local-name()='dd']" mode="dl_if"/><xsl:template match="*[local-name()='
|
5880
|
+
</xsl:template><xsl:template match="*[local-name()='dd']" mode="dl_if"/><xsl:template match="*[local-name()='dl']" mode="dl_if_nested">
|
5881
|
+
<xsl:for-each select="*[local-name() = 'dt']">
|
5882
|
+
<p>
|
5883
|
+
<xsl:copy-of select="node()"/>
|
5884
|
+
<xsl:text> </xsl:text>
|
5885
|
+
<xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/*[local-name() = 'p']/node()"/>
|
5886
|
+
</p>
|
5887
|
+
</xsl:for-each>
|
5888
|
+
</xsl:template><xsl:template match="*[local-name()='dd']" mode="dl_if_nested"/><xsl:template match="*[local-name()='em']">
|
5588
5889
|
<fo:inline font-style="italic">
|
5589
5890
|
<xsl:apply-templates/>
|
5590
5891
|
</fo:inline>
|
@@ -5615,7 +5916,7 @@
|
|
5615
5916
|
|
5616
5917
|
|
5617
5918
|
|
5618
|
-
10
|
5919
|
+
inherit <!-- 10 -->
|
5619
5920
|
|
5620
5921
|
|
5621
5922
|
|
@@ -6494,6 +6795,13 @@
|
|
6494
6795
|
</xsl:variable>
|
6495
6796
|
<fo:inline xsl:use-attribute-sets="link-style">
|
6496
6797
|
|
6798
|
+
<xsl:if test="starts-with(normalize-space(@target), 'mailto:')">
|
6799
|
+
<xsl:attribute name="keep-together.within-line">always</xsl:attribute>
|
6800
|
+
</xsl:if>
|
6801
|
+
|
6802
|
+
|
6803
|
+
|
6804
|
+
|
6497
6805
|
|
6498
6806
|
|
6499
6807
|
|
@@ -6707,6 +7015,7 @@
|
|
6707
7015
|
|
6708
7016
|
|
6709
7017
|
|
7018
|
+
|
6710
7019
|
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
6711
7020
|
<!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
|
6712
7021
|
<xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
@@ -6729,6 +7038,7 @@
|
|
6729
7038
|
<xsl:otherwise>
|
6730
7039
|
|
6731
7040
|
|
7041
|
+
|
6732
7042
|
</xsl:otherwise>
|
6733
7043
|
</xsl:choose>
|
6734
7044
|
</xsl:variable>
|
@@ -6745,6 +7055,7 @@
|
|
6745
7055
|
</xsl:when>
|
6746
7056
|
<xsl:otherwise>
|
6747
7057
|
|
7058
|
+
|
6748
7059
|
<xsl:text>:</xsl:text>
|
6749
7060
|
|
6750
7061
|
|
@@ -6756,7 +7067,19 @@
|
|
6756
7067
|
<xsl:value-of select="$suffix"/>
|
6757
7068
|
</xsl:if>
|
6758
7069
|
</xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'p']">
|
6759
|
-
<
|
7070
|
+
<xsl:variable name="num"><xsl:number/></xsl:variable>
|
7071
|
+
<xsl:choose>
|
7072
|
+
<xsl:when test="$num = 1"> <!-- first paragraph renders in the same line as titlenote name -->
|
7073
|
+
<fo:inline xsl:use-attribute-sets="termnote-p-style">
|
7074
|
+
<xsl:apply-templates/>
|
7075
|
+
</fo:inline>
|
7076
|
+
</xsl:when>
|
7077
|
+
<xsl:otherwise>
|
7078
|
+
<fo:block xsl:use-attribute-sets="termnote-p-style">
|
7079
|
+
<xsl:apply-templates/>
|
7080
|
+
</fo:block>
|
7081
|
+
</xsl:otherwise>
|
7082
|
+
</xsl:choose>
|
6760
7083
|
</xsl:template><xsl:template match="*[local-name() = 'terms']">
|
6761
7084
|
<!-- <xsl:message>'terms' <xsl:number/> processing...</xsl:message> -->
|
6762
7085
|
<fo:block id="{@id}">
|
@@ -7513,6 +7836,9 @@
|
|
7513
7836
|
<fo:block xsl:use-attribute-sets="figure-name-style">
|
7514
7837
|
|
7515
7838
|
|
7839
|
+
|
7840
|
+
|
7841
|
+
|
7516
7842
|
<xsl:apply-templates/>
|
7517
7843
|
</fo:block>
|
7518
7844
|
</xsl:if>
|
@@ -7573,9 +7899,9 @@
|
|
7573
7899
|
<xsl:apply-templates/>
|
7574
7900
|
</xsl:otherwise>
|
7575
7901
|
</xsl:choose>
|
7576
|
-
</xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="bookmarks"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'xref']" mode="contents">
|
7902
|
+
</xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="bookmarks"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'xref'] | *[local-name() = 'eref']" mode="contents">
|
7577
7903
|
<xsl:value-of select="."/>
|
7578
|
-
</xsl:template><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
|
7904
|
+
</xsl:template><xsl:template match="*[local-name() = 'review']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
|
7579
7905
|
<xsl:text> </xsl:text>
|
7580
7906
|
</xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
|
7581
7907
|
<xsl:copy>
|
@@ -7646,9 +7972,12 @@
|
|
7646
7972
|
|
7647
7973
|
|
7648
7974
|
|
7649
|
-
9
|
7975
|
+
inherit<!-- 9 -->
|
7650
7976
|
|
7651
7977
|
|
7978
|
+
<!-- <xsl:if test="$namespace = 'ieee'">
|
7979
|
+
<xsl:if test="$doctype = 'standard' and $stage = 'published'">8</xsl:if>
|
7980
|
+
</xsl:if> -->
|
7652
7981
|
|
7653
7982
|
|
7654
7983
|
|
@@ -7730,7 +8059,7 @@
|
|
7730
8059
|
<xsl:for-each select="xalan:nodeset($text_step4)/node()">
|
7731
8060
|
<xsl:choose>
|
7732
8061
|
<xsl:when test="local-name() = 'interspers'"> <!-- word with length more than 30 will be interspersed with zero-width space -->
|
7733
|
-
<xsl:call-template name="interspers">
|
8062
|
+
<xsl:call-template name="interspers-java">
|
7734
8063
|
<xsl:with-param name="str" select="."/>
|
7735
8064
|
</xsl:call-template>
|
7736
8065
|
</xsl:when>
|
@@ -7780,6 +8109,10 @@
|
|
7780
8109
|
<xsl:with-param name="char" select="$char"/>
|
7781
8110
|
</xsl:call-template>
|
7782
8111
|
</xsl:if>
|
8112
|
+
</xsl:template><xsl:template name="interspers-java">
|
8113
|
+
<xsl:param name="str"/>
|
8114
|
+
<xsl:param name="char" select="$zero_width_space"/>
|
8115
|
+
<xsl:value-of select="java:replaceAll(java:java.lang.String.new($str),'([^ -.:=_—])',concat('$1', $char))"/> <!-- insert $char after each char excep space, - . : = _ etc. -->
|
7783
8116
|
</xsl:template><xsl:template match="*" mode="syntax_highlight">
|
7784
8117
|
<xsl:apply-templates mode="syntax_highlight"/>
|
7785
8118
|
</xsl:template><xsl:variable name="syntax_highlight_styles_">
|
@@ -7923,6 +8256,8 @@
|
|
7923
8256
|
|
7924
8257
|
<xsl:apply-templates/>
|
7925
8258
|
|
8259
|
+
<xsl:text>:</xsl:text>
|
8260
|
+
|
7926
8261
|
</fo:block>
|
7927
8262
|
</xsl:if>
|
7928
8263
|
</xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']">
|
@@ -8089,10 +8424,14 @@
|
|
8089
8424
|
</xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'p']">
|
8090
8425
|
<xsl:variable name="element">inline
|
8091
8426
|
|
8427
|
+
|
8092
8428
|
</xsl:variable>
|
8093
8429
|
<xsl:choose>
|
8094
8430
|
<xsl:when test="contains($element, 'block')">
|
8095
8431
|
<fo:block xsl:use-attribute-sets="example-p-style">
|
8432
|
+
|
8433
|
+
|
8434
|
+
|
8096
8435
|
<xsl:apply-templates/>
|
8097
8436
|
</fo:block>
|
8098
8437
|
</xsl:when>
|
@@ -8205,6 +8544,7 @@
|
|
8205
8544
|
</xsl:if>
|
8206
8545
|
<fo:block xsl:use-attribute-sets="example-p-style">
|
8207
8546
|
|
8547
|
+
|
8208
8548
|
<xsl:apply-templates/>
|
8209
8549
|
</fo:block>
|
8210
8550
|
</fo:block-container>
|
@@ -8361,6 +8701,8 @@
|
|
8361
8701
|
|
8362
8702
|
|
8363
8703
|
|
8704
|
+
|
8705
|
+
|
8364
8706
|
<fo:basic-link fox:alt-text="{@citeas}">
|
8365
8707
|
<xsl:if test="normalize-space(@citeas) = ''">
|
8366
8708
|
<xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
|
@@ -8414,6 +8756,7 @@
|
|
8414
8756
|
|
8415
8757
|
|
8416
8758
|
|
8759
|
+
|
8417
8760
|
<xsl:choose>
|
8418
8761
|
<xsl:when test="$depth = 2">3</xsl:when>
|
8419
8762
|
<xsl:otherwise>4</xsl:otherwise>
|
@@ -8686,7 +9029,7 @@
|
|
8686
9029
|
<xsl:variable name="format">
|
8687
9030
|
<xsl:choose>
|
8688
9031
|
<xsl:when test="$type = 'arabic'">
|
8689
|
-
1
|
9032
|
+
1)
|
8690
9033
|
</xsl:when>
|
8691
9034
|
<xsl:when test="$type = 'alphabet'">
|
8692
9035
|
a)
|
@@ -8733,6 +9076,11 @@
|
|
8733
9076
|
</xsl:otherwise>
|
8734
9077
|
</xsl:choose>
|
8735
9078
|
</xsl:template><xsl:template match="*[local-name()='ul'] | *[local-name()='ol']" mode="list" name="list">
|
9079
|
+
|
9080
|
+
<xsl:apply-templates select="*[local-name() = 'name']">
|
9081
|
+
<xsl:with-param name="process">true</xsl:with-param>
|
9082
|
+
</xsl:apply-templates>
|
9083
|
+
|
8736
9084
|
<fo:list-block xsl:use-attribute-sets="list-style">
|
8737
9085
|
|
8738
9086
|
|
@@ -8743,12 +9091,23 @@
|
|
8743
9091
|
|
8744
9092
|
|
8745
9093
|
|
9094
|
+
<xsl:if test="*[local-name() = 'name']">
|
9095
|
+
<xsl:attribute name="margin-top">0pt</xsl:attribute>
|
9096
|
+
</xsl:if>
|
9097
|
+
|
8746
9098
|
<xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
|
8747
9099
|
</fo:list-block>
|
8748
9100
|
<!-- <xsl:for-each select="./iho:note">
|
8749
9101
|
<xsl:call-template name="note"/>
|
8750
9102
|
</xsl:for-each> -->
|
8751
9103
|
<xsl:apply-templates select="./*[local-name() = 'note']"/>
|
9104
|
+
</xsl:template><xsl:template match="*[local-name() = 'ol' or local-name() = 'ul']/*[local-name() = 'name']">
|
9105
|
+
<xsl:param name="process">false</xsl:param>
|
9106
|
+
<xsl:if test="$process = 'true'">
|
9107
|
+
<fo:block xsl:use-attribute-sets="list-name-style">
|
9108
|
+
<xsl:apply-templates/>
|
9109
|
+
</fo:block>
|
9110
|
+
</xsl:if>
|
8752
9111
|
</xsl:template><xsl:template match="*[local-name()='li']">
|
8753
9112
|
<fo:list-item xsl:use-attribute-sets="list-item-style">
|
8754
9113
|
<xsl:copy-of select="@id"/>
|
@@ -8760,6 +9119,8 @@
|
|
8760
9119
|
|
8761
9120
|
|
8762
9121
|
|
9122
|
+
|
9123
|
+
|
8763
9124
|
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
8764
9125
|
<xsl:if test="*[1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
8765
9126
|
<xsl:call-template name="append_add-style"/>
|
@@ -9017,9 +9378,9 @@
|
|
9017
9378
|
</fo:block>
|
9018
9379
|
|
9019
9380
|
|
9020
|
-
</xsl:template><xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" priority="2">
|
9381
|
+
</xsl:template><xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" name="bibitem_non_normative" priority="2">
|
9021
9382
|
|
9022
|
-
<!-- $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'iso' or $namespace = 'jcgm' or $namespace = 'm3d' or
|
9383
|
+
<!-- $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'ieee' or $namespace = 'iso' or $namespace = 'jcgm' or $namespace = 'm3d' or
|
9023
9384
|
$namespace = 'mpfd' or $namespace = 'ogc' or $namespace = 'ogc-white-paper' -->
|
9024
9385
|
<!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
|
9025
9386
|
<fo:list-block id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-style">
|
@@ -9030,7 +9391,7 @@
|
|
9030
9391
|
|
9031
9392
|
<xsl:value-of select="*[local-name()='docidentifier'][@type = 'metanorma-ordinal']"/>
|
9032
9393
|
<xsl:if test="not(*[local-name()='docidentifier'][@type = 'metanorma-ordinal'])">
|
9033
|
-
<xsl:number format="[1]"/>
|
9394
|
+
<xsl:number format="[1]" count="*[local-name()='bibitem'][not(@hidden = 'true')]"/>
|
9034
9395
|
</xsl:if>
|
9035
9396
|
|
9036
9397
|
</fo:inline>
|
@@ -9052,26 +9413,23 @@
|
|
9052
9413
|
<xsl:if test=".//*[local-name() = 'fn']">
|
9053
9414
|
<xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
|
9054
9415
|
</xsl:if>
|
9416
|
+
|
9417
|
+
<!-- display document identifier, not number [1] -->
|
9055
9418
|
<xsl:variable name="docidentifier">
|
9056
9419
|
<xsl:choose>
|
9057
9420
|
<xsl:when test="*[local-name() = 'docidentifier']/@type = 'metanorma'"/>
|
9058
9421
|
<xsl:otherwise><xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma-ordinal')]"/></xsl:otherwise>
|
9059
9422
|
</xsl:choose>
|
9060
9423
|
</xsl:variable>
|
9061
|
-
<
|
9424
|
+
<xsl:value-of select="$docidentifier"/>
|
9425
|
+
|
9062
9426
|
<xsl:apply-templates select="*[local-name() = 'note']"/>
|
9063
|
-
|
9064
|
-
<xsl:
|
9065
|
-
<xsl:
|
9066
|
-
|
9067
|
-
|
9068
|
-
|
9069
|
-
<xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = 'en']"/>
|
9070
|
-
</xsl:when>
|
9071
|
-
<xsl:otherwise>
|
9072
|
-
<xsl:apply-templates select="*[local-name() = 'title']"/>
|
9073
|
-
</xsl:otherwise>
|
9074
|
-
</xsl:choose>
|
9427
|
+
|
9428
|
+
<xsl:if test="normalize-space($docidentifier) != '' and *[local-name() = 'formattedref']">
|
9429
|
+
<xsl:text>,</xsl:text>
|
9430
|
+
<xsl:text> </xsl:text>
|
9431
|
+
</xsl:if>
|
9432
|
+
|
9075
9433
|
<xsl:apply-templates select="*[local-name() = 'formattedref']"/>
|
9076
9434
|
<!-- end bibitem processing -->
|
9077
9435
|
|
@@ -9378,36 +9736,60 @@
|
|
9378
9736
|
|
9379
9737
|
|
9380
9738
|
|
9739
|
+
<xsl:if test="@type = 'editorial'">
|
9740
|
+
<xsl:attribute name="color">green</xsl:attribute>
|
9741
|
+
<xsl:attribute name="font-weight">normal</xsl:attribute>
|
9742
|
+
|
9743
|
+
<!-- <xsl:variable name="note-style">
|
9744
|
+
<style xsl:use-attribute-sets="note-style"></style>
|
9745
|
+
</xsl:variable>
|
9746
|
+
<xsl:for-each select="xalan:nodeset($note-style)//style/@*">
|
9747
|
+
<xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
|
9748
|
+
</xsl:for-each> -->
|
9749
|
+
</xsl:if>
|
9750
|
+
|
9751
|
+
|
9381
9752
|
|
9382
9753
|
|
9754
|
+
<xsl:if test="@type != 'editorial'">
|
9755
|
+
<xsl:call-template name="displayAdmonitionName">
|
9756
|
+
<xsl:with-param name="sep"> — </xsl:with-param>
|
9757
|
+
</xsl:call-template>
|
9758
|
+
</xsl:if>
|
9759
|
+
|
9383
9760
|
|
9384
|
-
<xsl:call-template name="displayAdmonitionName"/>
|
9385
|
-
<xsl:text> — </xsl:text>
|
9386
9761
|
|
9387
9762
|
|
9388
9763
|
<xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
|
9389
9764
|
</fo:block>
|
9390
9765
|
|
9391
9766
|
</xsl:template><xsl:template name="displayAdmonitionName">
|
9392
|
-
|
9767
|
+
<xsl:param name="sep"/> <!-- Example: ' - ' -->
|
9768
|
+
<!-- <xsl:choose>
|
9769
|
+
<xsl:when test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
|
9770
|
+
<xsl:choose>
|
9771
|
+
<xsl:when test="@type='important'"><xsl:apply-templates select="@type"/></xsl:when>
|
9772
|
+
<xsl:otherwise>
|
9773
|
+
<xsl:apply-templates select="*[local-name() = 'name']"/>
|
9774
|
+
</xsl:otherwise>
|
9775
|
+
</xsl:choose>
|
9776
|
+
</xsl:when>
|
9777
|
+
<xsl:otherwise>
|
9393
9778
|
<xsl:apply-templates select="*[local-name() = 'name']"/>
|
9394
9779
|
<xsl:if test="not(*[local-name() = 'name'])">
|
9395
9780
|
<xsl:apply-templates select="@type"/>
|
9396
9781
|
</xsl:if>
|
9397
|
-
|
9398
|
-
|
9399
|
-
<xsl:
|
9400
|
-
|
9401
|
-
<xsl:variable name="admonition_type_">
|
9402
|
-
<xsl:call-template name="getLocalizedString">
|
9403
|
-
<xsl:with-param name="key">admonition.<xsl:value-of select="."/></xsl:with-param>
|
9404
|
-
</xsl:call-template>
|
9782
|
+
</xsl:otherwise>
|
9783
|
+
</xsl:choose> -->
|
9784
|
+
<xsl:variable name="name">
|
9785
|
+
<xsl:apply-templates select="*[local-name() = 'name']"/>
|
9405
9786
|
</xsl:variable>
|
9406
|
-
<xsl:
|
9407
|
-
<xsl:
|
9408
|
-
|
9409
|
-
<xsl:value-of select="java:toUpperCase(java:java.lang.String.new(.))"/>
|
9787
|
+
<xsl:copy-of select="$name"/>
|
9788
|
+
<xsl:if test="normalize-space($name) != ''">
|
9789
|
+
<xsl:value-of select="$sep"/>
|
9410
9790
|
</xsl:if>
|
9791
|
+
</xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'name']">
|
9792
|
+
<xsl:apply-templates/>
|
9411
9793
|
</xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'p']">
|
9412
9794
|
<!-- processing for admonition/p found in the template for 'p' -->
|
9413
9795
|
<xsl:call-template name="paragraph"/>
|
@@ -9534,6 +9916,26 @@
|
|
9534
9916
|
</xsl:if>
|
9535
9917
|
</xsl:template>
|
9536
9918
|
|
9919
|
+
<!-- add id for table without id (for autolayout algorithm) -->
|
9920
|
+
<!-- <xsl:template match="*[local-name() = 'table'][not(@id)]" mode="update_xml_step2">
|
9921
|
+
<xsl:copy>
|
9922
|
+
<xsl:apply-templates select="@*" mode="update_xml_step2"/>
|
9923
|
+
<xsl:attribute name="id">_abc<xsl:value-of select="generate-id()"/></xsl:attribute>
|
9924
|
+
|
9925
|
+
<xsl:apply-templates select="node()" mode="update_xml_step2"/>
|
9926
|
+
</xsl:copy>
|
9927
|
+
</xsl:template> -->
|
9928
|
+
|
9929
|
+
<!-- add @reference for fn -->
|
9930
|
+
<xsl:template match="*[local-name() = 'fn'][not(@reference)]" mode="update_xml_step2">
|
9931
|
+
<xsl:copy>
|
9932
|
+
<xsl:apply-templates select="@*" mode="update_xml_step2"/>
|
9933
|
+
<xsl:attribute name="reference"><xsl:value-of select="generate-id(.)"/></xsl:attribute>
|
9934
|
+
<xsl:apply-templates select="node()" mode="update_xml_step2"/>
|
9935
|
+
</xsl:copy>
|
9936
|
+
</xsl:template>
|
9937
|
+
|
9938
|
+
|
9537
9939
|
<!-- add @reference for bibitem/note, similar to fn/reference -->
|
9538
9940
|
<xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" mode="update_xml_step2">
|
9539
9941
|
<xsl:copy>
|
@@ -9548,6 +9950,23 @@
|
|
9548
9950
|
</xsl:template>
|
9549
9951
|
|
9550
9952
|
<!-- END STEP2: add 'fn' after 'eref' and 'origin', if referenced to bibitem with 'note' = Withdrawn.' or 'Cancelled and replaced...' -->
|
9953
|
+
|
9954
|
+
|
9955
|
+
<!-- enclose sequence of 'char x' + 'combining char y' to <lang_none>xy</lang_none> -->
|
9956
|
+
<xsl:variable name="regex_combining_chars">(.[̀-ͯ])</xsl:variable>
|
9957
|
+
<xsl:variable name="element_name_lang_none">lang_none</xsl:variable>
|
9958
|
+
<xsl:variable name="tag_element_name_lang_none_open">###<xsl:value-of select="$element_name_lang_none"/>###</xsl:variable>
|
9959
|
+
<xsl:variable name="tag_element_name_lang_none_close">###/<xsl:value-of select="$element_name_lang_none"/>###</xsl:variable>
|
9960
|
+
|
9961
|
+
<xsl:template match="text()" mode="update_xml_step2">
|
9962
|
+
<xsl:variable name="text_" select="java:replaceAll(java:java.lang.String.new(.), $regex_combining_chars, concat($tag_element_name_lang_none_open,'$1',$tag_element_name_lang_none_close))"/>
|
9963
|
+
<xsl:call-template name="replace_text_tags">
|
9964
|
+
<xsl:with-param name="tag_open" select="$tag_element_name_lang_none_open"/>
|
9965
|
+
<xsl:with-param name="tag_close" select="$tag_element_name_lang_none_close"/>
|
9966
|
+
<xsl:with-param name="text" select="$text_"/>
|
9967
|
+
</xsl:call-template>
|
9968
|
+
</xsl:template>
|
9969
|
+
|
9551
9970
|
<xsl:template match="@*|node()" mode="update_xml_enclose_keep-together_within-line">
|
9552
9971
|
<xsl:copy>
|
9553
9972
|
<xsl:apply-templates select="@*|node()" mode="update_xml_enclose_keep-together_within-line"/>
|
@@ -9643,6 +10062,8 @@
|
|
9643
10062
|
</xsl:when>
|
9644
10063
|
<xsl:otherwise><xsl:value-of select="$text"/></xsl:otherwise>
|
9645
10064
|
</xsl:choose>
|
10065
|
+
</xsl:template><xsl:template match="*[local-name() = 'lang_none']">
|
10066
|
+
<fo:inline xml:lang="none"><xsl:value-of select="."/></fo:inline>
|
9646
10067
|
</xsl:template><xsl:template name="printEdition">
|
9647
10068
|
<xsl:variable name="edition_i18n" select="normalize-space((//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']/*[local-name() = 'edition'][normalize-space(@language) != ''])"/>
|
9648
10069
|
<xsl:text> </xsl:text>
|
@@ -9749,6 +10170,27 @@
|
|
9749
10170
|
</xsl:when>
|
9750
10171
|
<xsl:otherwise><xsl:value-of select="$monthStr_"/></xsl:otherwise>
|
9751
10172
|
</xsl:choose>
|
10173
|
+
</xsl:template><xsl:template name="getMonthLocalizedByNum">
|
10174
|
+
<xsl:param name="num"/>
|
10175
|
+
<xsl:variable name="monthStr">
|
10176
|
+
<xsl:choose>
|
10177
|
+
<xsl:when test="$num = '01'">january</xsl:when>
|
10178
|
+
<xsl:when test="$num = '02'">february</xsl:when>
|
10179
|
+
<xsl:when test="$num = '03'">march</xsl:when>
|
10180
|
+
<xsl:when test="$num = '04'">april</xsl:when>
|
10181
|
+
<xsl:when test="$num = '05'">may</xsl:when>
|
10182
|
+
<xsl:when test="$num = '06'">june</xsl:when>
|
10183
|
+
<xsl:when test="$num = '07'">july</xsl:when>
|
10184
|
+
<xsl:when test="$num = '08'">august</xsl:when>
|
10185
|
+
<xsl:when test="$num = '09'">september</xsl:when>
|
10186
|
+
<xsl:when test="$num = '10'">october</xsl:when>
|
10187
|
+
<xsl:when test="$num = '11'">november</xsl:when>
|
10188
|
+
<xsl:when test="$num = '12'">december</xsl:when>
|
10189
|
+
</xsl:choose>
|
10190
|
+
</xsl:variable>
|
10191
|
+
<xsl:call-template name="getLocalizedString">
|
10192
|
+
<xsl:with-param name="key">month_<xsl:value-of select="$monthStr"/></xsl:with-param>
|
10193
|
+
</xsl:call-template>
|
9752
10194
|
</xsl:template><xsl:template name="insertKeywords">
|
9753
10195
|
<xsl:param name="sorting" select="'true'"/>
|
9754
10196
|
<xsl:param name="charAtEnd" select="'.'"/>
|
@@ -9820,7 +10262,7 @@
|
|
9820
10262
|
<dc:description>
|
9821
10263
|
<xsl:variable name="abstract">
|
9822
10264
|
|
9823
|
-
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
|
10265
|
+
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()[not(ancestor::*[local-name() = 'title'])]"/>
|
9824
10266
|
|
9825
10267
|
</xsl:variable>
|
9826
10268
|
<xsl:value-of select="normalize-space($abstract)"/>
|
@@ -9950,6 +10392,7 @@
|
|
9950
10392
|
|
9951
10393
|
|
9952
10394
|
|
10395
|
+
|
9953
10396
|
|
9954
10397
|
|
9955
10398
|
|