S08: Teilgebiet 01 Iteration B4 fuer DOCX umgesetzt. Heading 1/2/3 in destengsblue (build/build-reference-docx.py Funktion set_heading_colors mit explizitem color val=0B5394, themeColor accent1 entfernt). Heading-Bottom-Borders direkt am Stil verworfen, weil Word die Border bei hanging-Indent linksbuendig statt zentriert rendert und der right-Indent sowohl Text als auch Border begrenzt. 21 Markdown-HRs aus cv.md entfernt - Quelle der wahrgenommenen Doppellinien war Pandocs DOCX-Konvertierung von --- Zeilen zu VML-rect mit o:hr=t (Embossed-Look). Tabellen-Strich-Zeilen blieben unangetastet. Zwischenfall: NTFS-Mount-Stale-Read der cv.md (20043 statt 20201 Bytes) haette fast die Live-Datei truncated, sofortige Wiederherstellung aus git show HEAD und HR-Removal erneut mit git-Version als Input. H2-Trennlinien via Post-Processing eingefuehrt (build/post-process-docx.py um Logik erweitert): nach jedem H2 wird ein leerer Trenn-Absatz mit linksbuendiger Bottom-Border eingefuegt, schwarz (000000), 8,6 cm Linienlaenge (right-Indent 4196 dxa), 1,25 pt Dicke (sz=10). Sandbox-Verifikation 7 H2 zu 7 Trenner. Visuelle Bestaetigung durch Thomas. teilgebiete/01-lebenslauf.md um Iteration-B4-Block ergaenzt (B4.1 Farben, B4.2 Heading-Border-Sackgasse, B4.3 HR-Removal inkl. Zwischenfall, B4.4 H2-Trennlinien) und Naechste-Schritte-Liste auf C/D verkuerzt.

This commit is contained in:
2026-04-26 20:35:41 +02:00
parent 8fa36ac88c
commit 6429ca5f84
12 changed files with 478 additions and 455 deletions
+2 -2
View File
@@ -1,2 +1,2 @@
S07 S08
Iteration B3 und B3.5 fuer Teilgebiet 01 abgeschlossen. B3 in build/build-reference-docx.py ergaenzt: DocDefault widowControl plus keepNext und keepLines auf Heading 1/2/3 und FirstParagraph (Pandoc-Stil fuer ersten Absatz nach einem Heading, deckt die fett formatierten Kenntnisse-Subsection-Labels KI Software-Design Methodik IT etc ab). Erster Versuch Compact-Stil mit keepNext hat Listen komplett unteilbar gemacht (Job-Stationen begannen jedes Mal auf einer neuen Seite, ungenutzte Seitenenden) und wurde verworfen. Auf Wunsch von Thomas auf 3-3-Regel umgestellt: bei Listen mit mindestens 6 Bullets duerfen Trennungen passieren, aber mindestens 3 Bullets bleiben jeweils zusammen vor und nach dem Umbruch. Bei kuerzeren Listen alles zusammen. Da das stilbasiert nicht abbildbar ist (alle Bullets haben pStyle Compact), neues Post-Processing-Skript build/post-process-docx.py: scannt das fertige DOCX, findet Sequenzen aufeinanderfolgender Bullets mit numPr-Eigenschaft ausserhalb von Tabellen-Zellen, setzt keepNext auf den ersten 2 und den N-3 N-2 Bullets jeder Liste mit n groesser gleich 6 (bei n kleiner 6 alle keepNext). build.ps1 erweitert auf 3 Schritte und ruft das Post-Processing-Skript automatisch nach erfolgreichem DOCX-Build auf, mit Console-Output und Log-Statistiken (Anzahl Listen Bullets keepNext-Markierungen). Sandbox-Verifikation 26 Listen 184 Bullets 93 keepNext, Pattern fuer 11-Bullet-Liste KK......KK.. Auf Thomas System visuell bestaetigt: Listen werden an guten Stellen getrennt, keine ungenutzten Seitenenden, keine einzelnen Bullets allein am Seitenrand. teilgebiete/01-lebenslauf.md um B3- und B3.5-Bloecke ergaenzt sowie Naechste-Schritte-Liste auf B4 C D umstrukturiert. agent-prompt.md Aktueller-Stand-Abschnitt fortgeschrieben mit B3 und B3.5, Hinweis auf 3-stufige DOCX-Pipeline und Edit-Tool-Truncation an build.ps1 ergaenzt. Naechste Session startet mit B4 (Heading-Farben oder Trennlinien analog PDF). Teilgebiet 01 Iteration B4 fuer DOCX umgesetzt. Heading 1/2/3 in destengsblue (build/build-reference-docx.py Funktion set_heading_colors mit explizitem color val=0B5394, themeColor accent1 entfernt). Heading-Bottom-Borders direkt am Stil verworfen, weil Word die Border bei hanging-Indent linksbuendig statt zentriert rendert und der right-Indent sowohl Text als auch Border begrenzt. 21 Markdown-HRs aus cv.md entfernt - Quelle der wahrgenommenen Doppellinien war Pandocs DOCX-Konvertierung von --- Zeilen zu VML-rect mit o:hr=t (Embossed-Look). Tabellen-Strich-Zeilen blieben unangetastet. Zwischenfall: NTFS-Mount-Stale-Read der cv.md (20043 statt 20201 Bytes) haette fast die Live-Datei truncated, sofortige Wiederherstellung aus git show HEAD und HR-Removal erneut mit git-Version als Input. H2-Trennlinien via Post-Processing eingefuehrt (build/post-process-docx.py um Logik erweitert): nach jedem H2 wird ein leerer Trenn-Absatz mit linksbuendiger Bottom-Border eingefuegt, schwarz (000000), 8,6 cm Linienlaenge (right-Indent 4196 dxa), 1,25 pt Dicke (sz=10). Sandbox-Verifikation 7 H2 zu 7 Trenner. Visuelle Bestaetigung durch Thomas. teilgebiete/01-lebenslauf.md um Iteration-B4-Block ergaenzt (B4.1 Farben, B4.2 Heading-Border-Sackgasse, B4.3 HR-Removal inkl. Zwischenfall, B4.4 H2-Trennlinien) und Naechste-Schritte-Liste auf C/D verkuerzt.
@@ -6,7 +6,7 @@ build-reference-docx.py
Baut die templates/reference.docx fuer die Pandoc-DOCX-Pipeline aus der Baut die templates/reference.docx fuer die Pandoc-DOCX-Pipeline aus der
Pandoc-Default-Reference, mit gezielten Anpassungen. Pandoc-Default-Reference, mit gezielten Anpassungen.
Iteration B1 + B1.5 + B2 + B3 (aktuell): Iteration B1 + B1.5 + B2 + B3 + B4 (aktuell):
B1 - Theme-Schriften (majorFont und minorFont) beide auf Calibri. B1 - Theme-Schriften (majorFont und minorFont) beide auf Calibri.
B1 - Direkte Schriftnamen-Referenzen in styles.xml auf Calibri B1 - Direkte Schriftnamen-Referenzen in styles.xml auf Calibri
(Code-Schriften wie Consolas bleiben). (Code-Schriften wie Consolas bleiben).
@@ -18,14 +18,20 @@ Iteration B1 + B1.5 + B2 + B3 (aktuell):
analog PDF (top/bottom 2.2 cm, left/right 2.5 cm). analog PDF (top/bottom 2.2 cm, left/right 2.5 cm).
B3 - DocDefault widowControl. Heading 1/2/3 mit keepNext + keepLines. B3 - DocDefault widowControl. Heading 1/2/3 mit keepNext + keepLines.
Zusaetzlich 'FirstParagraph' (Pandoc-Stil fuer den ersten Absatz Zusaetzlich 'FirstParagraph' (Pandoc-Stil fuer den ersten Absatz
nach einem Heading) — deckt die fett formatierten Kenntnisse- nach einem Heading) - deckt die fett formatierten Kenntnisse-
Subsection-Labels ab. Hinweis: Listen-Bullet-Schutz (3-3-Regel) Subsection-Labels ab. Hinweis: Listen-Bullet-Schutz (3-3-Regel)
passiert nicht hier, sondern im Post-Processing passiert nicht hier, sondern im Post-Processing
(build/post-process-docx.py), das auf das fertige DOCX angewendet (build/post-process-docx.py), das auf das fertige DOCX angewendet
wird — ein Stil kann keine Per-Bullet-Logik abbilden. wird - ein Stil kann keine Per-Bullet-Logik abbilden.
B4 - Heading 1/2/3 in destengsblue (0B5394) gefaerbt (themeColor
entfernt, damit die Farbe nicht aus dem Word-Theme kommt).
Hinweis (S08): die zwischenzeitlich eingebauten Heading-
Trennlinien (Bottom-Border + Indent-Trick) wurden zurueck-
gerollt, weil sie in Word linksbuendig statt zentriert
gerendert wurden (Word-Border folgt bei hanging-Indent der
visuellen Absatz-Position, nicht den Indent-Werten).
Geplant in Folge-Iterationen: Geplant in Folge-Iterationen:
B4 - optional Heading-Farben auf DesTEngS-Blau analog PDF
C - Foto-Einbindung C - Foto-Einbindung
D - Hyphenation-Feintuning fuer PDF D - Hyphenation-Feintuning fuer PDF
""" """
@@ -70,10 +76,15 @@ SIZE_HEADING3 = 24
HEADING_SIZES = {"Heading1": SIZE_HEADING1, HEADING_SIZES = {"Heading1": SIZE_HEADING1,
"Heading2": SIZE_HEADING2, "Heading2": SIZE_HEADING2,
"Heading3": SIZE_HEADING3} "Heading3": SIZE_HEADING3}
# Compact NICHT mehr in dieser Liste — Listen-Bullet-Schutz uebernimmt das # Compact NICHT mehr in dieser Liste - Listen-Bullet-Schutz uebernimmt das
# Post-Processing-Skript pro-Bullet. # Post-Processing-Skript pro-Bullet.
KEEP_STYLES = ("Heading1", "Heading2", "Heading3", "FirstParagraph") KEEP_STYLES = ("Heading1", "Heading2", "Heading3", "FirstParagraph")
# B4 - Heading-Farben (Trennlinien wurden in S08 zurueckgerollt, siehe
# Modul-Docstring). Bleibt: Heading 1/2/3 in destengsblue, themeColor entfernt.
HEADING_COLOR = "0B5394" # destengsblue (analog template.tex)
HEADING_COLOR_STYLES = ("Heading1", "Heading2", "Heading3")
PAGE_W = 11906 PAGE_W = 11906
PAGE_H = 16838 PAGE_H = 16838
MARGIN_TOP = 1247 MARGIN_TOP = 1247
@@ -87,19 +98,19 @@ HEADER_RIGHT_TAB = PAGE_W - MARGIN_LEFT - MARGIN_RIGHT
HEADER_LEFT = "Dr.-Ing. Thomas Langer" HEADER_LEFT = "Dr.-Ing. Thomas Langer"
HEADER_RIGHT = "Lebenslauf" HEADER_RIGHT = "Lebenslauf"
def log(msg: str) -> None: def log(msg):
print(f"[build-reference-docx] {msg}", flush=True) print(f"[build-reference-docx] {msg}", flush=True)
XML_DECL = b'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n' XML_DECL = b'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n'
def write_xml(tree: ET.ElementTree, dest: Path) -> None: def write_xml(tree, dest):
body = ET.tostring(tree.getroot(), encoding="utf-8") body = ET.tostring(tree.getroot(), encoding="utf-8")
dest.write_bytes(XML_DECL + body) dest.write_bytes(XML_DECL + body)
def write_xml_bytes(content: bytes, dest: Path) -> None: def write_xml_bytes(content, dest):
dest.write_bytes(XML_DECL + content) dest.write_bytes(XML_DECL + content)
def fetch_pandoc_default(dest: Path) -> None: def fetch_pandoc_default(dest):
log("Pandoc-Default-Reference extrahieren ...") log("Pandoc-Default-Reference extrahieren ...")
result = subprocess.run( result = subprocess.run(
["pandoc", "--print-default-data-file", "reference.docx"], ["pandoc", "--print-default-data-file", "reference.docx"],
@@ -111,11 +122,11 @@ def fetch_pandoc_default(dest: Path) -> None:
dest.write_bytes(result.stdout) dest.write_bytes(result.stdout)
log(f" -> {dest} ({dest.stat().st_size} Bytes)") log(f" -> {dest} ({dest.stat().st_size} Bytes)")
def unpack_docx(src: Path, dest_dir: Path) -> None: def unpack_docx(src, dest_dir):
with zipfile.ZipFile(src, "r") as z: with zipfile.ZipFile(src, "r") as z:
z.extractall(dest_dir) z.extractall(dest_dir)
def repack_docx(src_dir: Path, dest: Path) -> None: def repack_docx(src_dir, dest):
files = [] files = []
for path in src_dir.rglob("*"): for path in src_dir.rglob("*"):
if path.is_file(): if path.is_file():
@@ -126,12 +137,12 @@ def repack_docx(src_dir: Path, dest: Path) -> None:
for path, arcname in files: for path, arcname in files:
z.write(path, arcname) z.write(path, arcname)
def is_code_font(name: str) -> bool: def is_code_font(name):
return (name or "").strip().lower() in CODE_FONTS return (name or "").strip().lower() in CODE_FONTS
# --- B1: Schriften --------------------------------------------------------- # --- B1: Schriften ---------------------------------------------------------
def set_theme_fonts_to_calibri(theme_xml: Path) -> None: def set_theme_fonts_to_calibri(theme_xml):
tree = ET.parse(theme_xml) tree = ET.parse(theme_xml)
root = tree.getroot() root = tree.getroot()
for kind in ("majorFont", "minorFont"): for kind in ("majorFont", "minorFont"):
@@ -146,7 +157,7 @@ def set_theme_fonts_to_calibri(theme_xml: Path) -> None:
log(f" Theme {kind}/latin: {old!r} -> {TARGET_FONT!r}") log(f" Theme {kind}/latin: {old!r} -> {TARGET_FONT!r}")
write_xml(tree, theme_xml) write_xml(tree, theme_xml)
def replace_direct_fonts_in_styles(styles_xml: Path) -> None: def replace_direct_fonts_in_styles(styles_xml):
tree = ET.parse(styles_xml) tree = ET.parse(styles_xml)
root = tree.getroot() root = tree.getroot()
changed = 0 changed = 0
@@ -166,14 +177,16 @@ def replace_direct_fonts_in_styles(styles_xml: Path) -> None:
f" gesetzt (Code-Fonts unangetastet: {skipped})") f" gesetzt (Code-Fonts unangetastet: {skipped})")
write_xml(tree, styles_xml) write_xml(tree, styles_xml)
def set_table_borders_none(styles_xml: Path) -> None: def set_table_borders_none(styles_xml):
tree = ET.parse(styles_xml) tree = ET.parse(styles_xml)
root = tree.getroot() root = tree.getroot()
style = next((s for s in root.findall(f"{W}style") style = next((s for s in root.findall(f"{W}style")
if s.get(f"{W}styleId") == "Table"), None) if s.get(f"{W}styleId") == "Table"), None)
if style is None: if style is None:
raise RuntimeError("Style 'Table' nicht in styles.xml") raise RuntimeError("Style 'Table' nicht in styles.xml")
tbl_pr = style.find(f"{W}tblPr") or ET.SubElement(style, f"{W}tblPr") tbl_pr = style.find(f"{W}tblPr")
if tbl_pr is None:
tbl_pr = ET.SubElement(style, f"{W}tblPr")
existing = tbl_pr.find(f"{W}tblBorders") existing = tbl_pr.find(f"{W}tblBorders")
if existing is not None: if existing is not None:
tbl_pr.remove(existing) tbl_pr.remove(existing)
@@ -187,19 +200,27 @@ def set_table_borders_none(styles_xml: Path) -> None:
log(" Style 'Table': tblBorders=none auf allen Sides") log(" Style 'Table': tblBorders=none auf allen Sides")
write_xml(tree, styles_xml) write_xml(tree, styles_xml)
def set_default_body_size(styles_xml: Path) -> None: def set_default_body_size(styles_xml):
tree = ET.parse(styles_xml) tree = ET.parse(styles_xml)
root = tree.getroot() root = tree.getroot()
docDefaults = root.find(f"{W}docDefaults") or ET.SubElement(root, f"{W}docDefaults") docDefaults = root.find(f"{W}docDefaults")
rPrDefault = docDefaults.find(f"{W}rPrDefault") or ET.SubElement(docDefaults, f"{W}rPrDefault") if docDefaults is None:
rPr = rPrDefault.find(f"{W}rPr") or ET.SubElement(rPrDefault, f"{W}rPr") docDefaults = ET.SubElement(root, f"{W}docDefaults")
rPrDefault = docDefaults.find(f"{W}rPrDefault")
if rPrDefault is None:
rPrDefault = ET.SubElement(docDefaults, f"{W}rPrDefault")
rPr = rPrDefault.find(f"{W}rPr")
if rPr is None:
rPr = ET.SubElement(rPrDefault, f"{W}rPr")
for tag in (f"{W}sz", f"{W}szCs"): for tag in (f"{W}sz", f"{W}szCs"):
elem = rPr.find(tag) or ET.SubElement(rPr, tag) elem = rPr.find(tag)
if elem is None:
elem = ET.SubElement(rPr, tag)
elem.set(f"{W}val", str(SIZE_BODY)) elem.set(f"{W}val", str(SIZE_BODY))
log(f" DocDefault Body-Schriftgroesse: {SIZE_BODY/2} pt") log(f" DocDefault Body-Schriftgroesse: {SIZE_BODY/2} pt")
write_xml(tree, styles_xml) write_xml(tree, styles_xml)
def set_heading_sizes(styles_xml: Path) -> None: def set_heading_sizes(styles_xml):
tree = ET.parse(styles_xml) tree = ET.parse(styles_xml)
root = tree.getroot() root = tree.getroot()
for style in root.findall(f"{W}style"): for style in root.findall(f"{W}style"):
@@ -207,25 +228,35 @@ def set_heading_sizes(styles_xml: Path) -> None:
if sid not in HEADING_SIZES: if sid not in HEADING_SIZES:
continue continue
target = HEADING_SIZES[sid] target = HEADING_SIZES[sid]
rPr = style.find(f"{W}rPr") or ET.SubElement(style, f"{W}rPr") rPr = style.find(f"{W}rPr")
if rPr is None:
rPr = ET.SubElement(style, f"{W}rPr")
for tag in (f"{W}sz", f"{W}szCs"): for tag in (f"{W}sz", f"{W}szCs"):
elem = rPr.find(tag) or ET.SubElement(rPr, tag) elem = rPr.find(tag)
if elem is None:
elem = ET.SubElement(rPr, tag)
elem.set(f"{W}val", str(target)) elem.set(f"{W}val", str(target))
log(f" Stil {sid!r}: Schriftgroesse {target/2} pt") log(f" Stil {sid!r}: Schriftgroesse {target/2} pt")
write_xml(tree, styles_xml) write_xml(tree, styles_xml)
def set_widow_control_default(styles_xml: Path) -> None: def set_widow_control_default(styles_xml):
tree = ET.parse(styles_xml) tree = ET.parse(styles_xml)
root = tree.getroot() root = tree.getroot()
docDefaults = root.find(f"{W}docDefaults") or ET.SubElement(root, f"{W}docDefaults") docDefaults = root.find(f"{W}docDefaults")
pPrDefault = docDefaults.find(f"{W}pPrDefault") or ET.SubElement(docDefaults, f"{W}pPrDefault") if docDefaults is None:
pPr = pPrDefault.find(f"{W}pPr") or ET.SubElement(pPrDefault, f"{W}pPr") docDefaults = ET.SubElement(root, f"{W}docDefaults")
pPrDefault = docDefaults.find(f"{W}pPrDefault")
if pPrDefault is None:
pPrDefault = ET.SubElement(docDefaults, f"{W}pPrDefault")
pPr = pPrDefault.find(f"{W}pPr")
if pPr is None:
pPr = ET.SubElement(pPrDefault, f"{W}pPr")
if pPr.find(f"{W}widowControl") is None: if pPr.find(f"{W}widowControl") is None:
ET.SubElement(pPr, f"{W}widowControl") ET.SubElement(pPr, f"{W}widowControl")
log(" pPrDefault: widowControl aktiviert") log(" pPrDefault: widowControl aktiviert")
write_xml(tree, styles_xml) write_xml(tree, styles_xml)
def set_keep_next_styles(styles_xml: Path) -> None: def set_keep_next_styles(styles_xml):
tree = ET.parse(styles_xml) tree = ET.parse(styles_xml)
root = tree.getroot() root = tree.getroot()
seen = set() seen = set()
@@ -233,7 +264,9 @@ def set_keep_next_styles(styles_xml: Path) -> None:
sid = style.get(f"{W}styleId") sid = style.get(f"{W}styleId")
if sid not in KEEP_STYLES: if sid not in KEEP_STYLES:
continue continue
pPr = style.find(f"{W}pPr") or ET.SubElement(style, f"{W}pPr") pPr = style.find(f"{W}pPr")
if pPr is None:
pPr = ET.SubElement(style, f"{W}pPr")
for tag in (f"{W}keepNext", f"{W}keepLines"): for tag in (f"{W}keepNext", f"{W}keepLines"):
if pPr.find(tag) is None: if pPr.find(tag) is None:
ET.SubElement(pPr, tag) ET.SubElement(pPr, tag)
@@ -244,7 +277,31 @@ def set_keep_next_styles(styles_xml: Path) -> None:
log(f" Hinweis: Stil(e) {sorted(missing)!r} nicht gefunden, uebersprungen") log(f" Hinweis: Stil(e) {sorted(missing)!r} nicht gefunden, uebersprungen")
write_xml(tree, styles_xml) write_xml(tree, styles_xml)
def header_default_xml() -> bytes: # --- B4: Heading-Farben ----------------------------------------------------
def set_heading_colors(styles_xml):
tree = ET.parse(styles_xml)
root = tree.getroot()
for style in root.findall(f"{W}style"):
sid = style.get(f"{W}styleId")
if sid not in HEADING_COLOR_STYLES:
continue
rPr = style.find(f"{W}rPr")
if rPr is None:
rPr = ET.SubElement(style, f"{W}rPr")
color = rPr.find(f"{W}color")
if color is None:
color = ET.SubElement(rPr, f"{W}color")
# Theme-Color-Attribute entfernen, damit die Farbe nicht aus dem
# Word-Theme abgeleitet wird (Pandoc-Default: themeColor accent1).
for attr in (f"{W}themeColor", f"{W}themeTint", f"{W}themeShade"):
if attr in color.attrib:
del color.attrib[attr]
color.set(f"{W}val", HEADING_COLOR)
log(f" Stil {sid!r}: color={HEADING_COLOR} (themeColor entfernt)")
write_xml(tree, styles_xml)
def header_default_xml():
return ( return (
b'<w:hdr xmlns:w="' + NS["w"].encode() + b'">\n' b'<w:hdr xmlns:w="' + NS["w"].encode() + b'">\n'
b' <w:p>\n' b' <w:p>\n'
@@ -259,14 +316,14 @@ def header_default_xml() -> bytes:
b'</w:hdr>\n' b'</w:hdr>\n'
) )
def header_first_blank_xml() -> bytes: def header_first_blank_xml():
return ( return (
b'<w:hdr xmlns:w="' + NS["w"].encode() + b'">\n' b'<w:hdr xmlns:w="' + NS["w"].encode() + b'">\n'
b' <w:p/>\n' b' <w:p/>\n'
b'</w:hdr>\n' b'</w:hdr>\n'
) )
def footer_default_xml() -> bytes: def footer_default_xml():
return ( return (
b'<w:ftr xmlns:w="' + NS["w"].encode() + b'">\n' b'<w:ftr xmlns:w="' + NS["w"].encode() + b'">\n'
b' <w:p>\n' b' <w:p>\n'
@@ -292,12 +349,12 @@ REL_FOOTER = "http://schemas.openxmlformats.org/officeDocument/2006/relationship
CT_HEADER = "application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml" CT_HEADER = "application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml"
CT_FOOTER = "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml" CT_FOOTER = "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml"
def next_free_rel_id(rels_xml: Path) -> int: def next_free_rel_id(rels_xml):
text = rels_xml.read_text(encoding="utf-8") text = rels_xml.read_text(encoding="utf-8")
ids = [int(m.group(1)) for m in re.finditer(r'Id="rId(\d+)"', text)] ids = [int(m.group(1)) for m in re.finditer(r'Id="rId(\d+)"', text)]
return (max(ids) + 1) if ids else 1 return (max(ids) + 1) if ids else 1
def add_relationship(rels_xml: Path, rid: str, rtype: str, target: str) -> None: def add_relationship(rels_xml, rid, rtype, target):
text = rels_xml.read_text(encoding="utf-8") text = rels_xml.read_text(encoding="utf-8")
new_rel = f'<Relationship Type="{rtype}" Id="{rid}" Target="{target}" />' new_rel = f'<Relationship Type="{rtype}" Id="{rid}" Target="{target}" />'
if new_rel in text: if new_rel in text:
@@ -305,7 +362,7 @@ def add_relationship(rels_xml: Path, rid: str, rtype: str, target: str) -> None:
text = text.replace("</Relationships>", new_rel + "</Relationships>") text = text.replace("</Relationships>", new_rel + "</Relationships>")
rels_xml.write_text(text, encoding="utf-8") rels_xml.write_text(text, encoding="utf-8")
def add_content_type_override(ct_xml: Path, part_name: str, ct: str) -> None: def add_content_type_override(ct_xml, part_name, ct):
text = ct_xml.read_text(encoding="utf-8") text = ct_xml.read_text(encoding="utf-8")
new_override = f'<Override PartName="{part_name}" ContentType="{ct}"/>' new_override = f'<Override PartName="{part_name}" ContentType="{ct}"/>'
if part_name in text: if part_name in text:
@@ -313,10 +370,7 @@ def add_content_type_override(ct_xml: Path, part_name: str, ct: str) -> None:
text = text.replace("</Types>", new_override + "</Types>") text = text.replace("</Types>", new_override + "</Types>")
ct_xml.write_text(text, encoding="utf-8") ct_xml.write_text(text, encoding="utf-8")
def update_sectpr_with_headers(document_xml: Path, def update_sectpr_with_headers(document_xml, header_default_rid, header_first_rid, footer_default_rid):
header_default_rid: str,
header_first_rid: str,
footer_default_rid: str) -> None:
text = document_xml.read_text(encoding="utf-8") text = document_xml.read_text(encoding="utf-8")
new_sectpr = ( new_sectpr = (
f'<w:sectPr>' f'<w:sectPr>'
@@ -341,7 +395,7 @@ def update_sectpr_with_headers(document_xml: Path,
log(f" document.xml sectPr: pgSz/pgMar (A4, 2.2/2.5cm Raender), Header" log(f" document.xml sectPr: pgSz/pgMar (A4, 2.2/2.5cm Raender), Header"
f" default+first, Footer default+first auf gleicher rId, titlePg") f" default+first, Footer default+first auf gleicher rId, titlePg")
def add_header_footer(unpacked: Path) -> None: def add_header_footer(unpacked):
word_dir = unpacked / "word" word_dir = unpacked / "word"
rels_xml = word_dir / "_rels" / "document.xml.rels" rels_xml = word_dir / "_rels" / "document.xml.rels"
ct_xml = unpacked / "[Content_Types].xml" ct_xml = unpacked / "[Content_Types].xml"
@@ -368,7 +422,7 @@ def add_header_footer(unpacked: Path) -> None:
update_sectpr_with_headers(doc_xml, rid_h_def, rid_h_first, rid_f_def) update_sectpr_with_headers(doc_xml, rid_h_def, rid_h_first, rid_f_def)
def main() -> int: def main():
log(f"Ziel: {OUTPUT_FILE}") log(f"Ziel: {OUTPUT_FILE}")
TEMPLATES_DIR.mkdir(parents=True, exist_ok=True) TEMPLATES_DIR.mkdir(parents=True, exist_ok=True)
@@ -398,6 +452,8 @@ def main() -> int:
set_widow_control_default(styles_xml) set_widow_control_default(styles_xml)
log("Anpassung: keepNext + keepLines auf Heading 1/2/3 + FirstParagraph (B3)") log("Anpassung: keepNext + keepLines auf Heading 1/2/3 + FirstParagraph (B3)")
set_keep_next_styles(styles_xml) set_keep_next_styles(styles_xml)
log("Anpassung: Heading 1/2/3 in destengsblue (B4)")
set_heading_colors(styles_xml)
log("Anpassung: Header und Footer einbauen (B2)") log("Anpassung: Header und Footer einbauen (B2)")
add_header_footer(unpacked) add_header_footer(unpacked)
@@ -3,23 +3,33 @@
post-process-docx.py post-process-docx.py
==================== ====================
Wird auf das von Pandoc erzeugte DOCX angewendet, NACH `build.ps1`. Setzt Wird auf das von Pandoc erzeugte DOCX angewendet, NACH `build.ps1`. Macht
Per-Bullet-keepNext-Markierungen, die ein Stil nicht abbilden kann: zwei XML-Modifikationen, die ein Stil oder die `reference.docx` nicht
abbilden koennen:
3-3-Regel fuer Listen-Bullets: 1. 3-3-Regel fuer Listen-Bullets (B3.5):
- Eine Liste ist eine Sequenz aufeinanderfolgender Absaetze mit - Eine Liste ist eine Sequenz aufeinanderfolgender Absaetze mit
<w:numPr>-Eigenschaft im Body (nicht innerhalb von Tabellen-Zellen). <w:numPr>-Eigenschaft im Body (nicht innerhalb von Tabellen-Zellen).
- Bei einer Liste mit weniger als 6 Bullets: alle Bullets bekommen - Bei einer Liste mit weniger als 6 Bullets: alle Bullets bekommen
<w:keepNext/> (Liste bleibt unteilbar — bei <6 ist die 3-3-Regel <w:keepNext/> (Liste bleibt unteilbar - bei <6 ist die 3-3-Regel
sowieso nur durch Zusammenhalten aller erfuellbar). sowieso nur durch Zusammenhalten aller erfuellbar).
- Bei einer Liste mit 6 oder mehr Bullets: die ersten 2 und die - Bei einer Liste mit 6 oder mehr Bullets: die ersten 2 und die
drittletzten und vorletzten Bullets bekommen <w:keepNext/>. drittletzten und vorletzten Bullets bekommen <w:keepNext/>.
Damit gilt: nach Bullet 1 darf nicht getrennt werden (1+2+3 zusammen), Damit gilt: nach Bullet 1 darf nicht getrennt werden (1+2+3 zusammen),
und nach Bullet N-3 darf nicht getrennt werden (N-2+N-1+N zusammen). und nach Bullet N-3 darf nicht getrennt werden (N-2+N-1+N zusammen).
Trennen ist erlaubt zwischen den Bullets in der Mitte. Trennen ist erlaubt zwischen den Bullets in der Mitte.
Bullets in Tabellen-Zellen werden uebersprungen.
Bullets in Tabellen-Zellen werden uebersprungen — Compact wird auch fuer 2. H2-Trennlinie (S08):
Tabellen-Zellen-Inhalte verwendet, dort wollen wir kein keepNext. - Nach jedem H2-Absatz wird ein leerer Trenn-Absatz eingefuegt.
- Trenn-Absatz: linksbuendige Bottom-Border, schwarz (000000),
1,25 pt (sz=10), 8,6 cm Linienlaenge (right-Indent 4196 dxa bei
9072 dxa Textbreite).
- Run-Properties auf sz=2 (1 pt), damit der Absatz selbst minimale
Hoehe hat.
- Ein schmaler-als-Heading-Border ist ueber den Heading-Stil selbst
nicht moeglich, weil Words right-Indent sowohl Text als auch
Border begrenzt. Deshalb separater Trenn-Absatz.
Voraussetzungen: nur Python-Stdlib. Voraussetzungen: nur Python-Stdlib.
""" """
@@ -37,52 +47,64 @@ DOCX_FILE = BASE_DIR / "output" / "Lebenslauf_Dr-Ing_Thomas_Langer.docx"
W_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main" W_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"
def log(msg: str) -> None: # H2-Trenn-Absatz: linksbuendige Bottom-Border, schwarz, 8,6 cm lang, 1,25 pt dick.
# Textbreite = PAGE_W - MARGIN_LEFT - MARGIN_RIGHT = 11906 - 1417 - 1417 = 9072 dxa
# 8,6 cm = 8,6 * 567 dxa/cm = 4876 dxa
# right-Indent = 9072 - 4876 = 4196 dxa
# Border sz ist in 1/8 pt: 1,25 pt * 8 = 10
H2_SEP_XML = (
'<w:p>'
'<w:pPr>'
'<w:spacing w:before="0" w:after="80"/>'
'<w:ind w:right="4196"/>'
'<w:pBdr>'
'<w:bottom w:val="single" w:sz="10" w:space="2" w:color="000000"/>'
'</w:pBdr>'
'<w:rPr><w:sz w:val="2"/><w:szCs w:val="2"/></w:rPr>'
'</w:pPr>'
'</w:p>'
)
H2_STYLE_RE = re.compile(r'<w:pStyle\s+w:val="Heading2"\s*/?>')
def log(msg):
print(f"[post-process-docx] {msg}", flush=True) print(f"[post-process-docx] {msg}", flush=True)
def is_bullet_paragraph(p_xml: str) -> bool: def is_bullet_paragraph(p_xml):
"""True wenn Absatz-XML eine numPr-Eigenschaft hat (= Listen-Bullet)."""
return "<w:numPr" in p_xml return "<w:numPr" in p_xml
def has_keep_next(p_xml: str) -> bool: def is_h2_paragraph(p_xml):
return bool(H2_STYLE_RE.search(p_xml))
def has_keep_next(p_xml):
return "<w:keepNext" in p_xml return "<w:keepNext" in p_xml
def add_keep_next(p_xml: str) -> str: def add_keep_next(p_xml):
"""Fuegt <w:keepNext/> in das pPr-Element ein. Falls kein pPr existiert, """Fuegt <w:keepNext/> in das pPr-Element ein. Falls kein pPr existiert,
wird es angelegt. Idempotent (wenn schon vorhanden, unveraendert).""" wird es angelegt. Idempotent."""
if has_keep_next(p_xml): if has_keep_next(p_xml):
return p_xml return p_xml
if "<w:pPr>" in p_xml: if "<w:pPr>" in p_xml:
return p_xml.replace("<w:pPr>", "<w:pPr><w:keepNext/>", 1) return p_xml.replace("<w:pPr>", "<w:pPr><w:keepNext/>", 1)
if "<w:pPr/>" in p_xml: if "<w:pPr/>" in p_xml:
return p_xml.replace("<w:pPr/>", "<w:pPr><w:keepNext/></w:pPr>", 1) return p_xml.replace("<w:pPr/>", "<w:pPr><w:keepNext/></w:pPr>", 1)
# kein pPr: vor <w:r ...> oder vor </w:p>
new_ppr = "<w:pPr><w:keepNext/></w:pPr>" new_ppr = "<w:pPr><w:keepNext/></w:pPr>"
if "<w:r" in p_xml: if "<w:r" in p_xml and p_xml.startswith("<w:p>"):
return p_xml.replace("<w:p>", "<w:p>" + new_ppr, 1) \ return p_xml.replace("<w:p>", "<w:p>" + new_ppr, 1)
if p_xml.startswith("<w:p>") else p_xml
return p_xml.replace("</w:p>", new_ppr + "</w:p>", 1) return p_xml.replace("</w:p>", new_ppr + "</w:p>", 1)
# Regex: ein <w:p ...>...</w:p>, optional gefolgt vom oeffnenden Marker fuer
# Tabelle (<w:tbl>) oder schliessenden Body (</w:body>). Wir splitten nicht,
# sondern iterieren paragraphenweise und tracken Tabellen-Schachtelung.
P_RE = re.compile(r"<w:p\b[^>]*>.*?</w:p>", re.DOTALL) P_RE = re.compile(r"<w:p\b[^>]*>.*?</w:p>", re.DOTALL)
TBL_OPEN = "<w:tbl>" TBL_OPEN = "<w:tbl>"
TBL_CLOSE = "</w:tbl>" TBL_CLOSE = "</w:tbl>"
def process_document_xml(xml: str) -> tuple[str, dict]: def process_document_xml(xml):
"""Findet Listen-Sequenzen ausserhalb von Tabellen, wendet 3-3-Regel an. """Tokenisiert den Body, wendet 3-3-Regel auf Bullet-Listen an und
Gibt das modifizierte XML und Statistiken zurueck.""" fuegt nach jedem H2-Heading einen Trenn-Absatz ein."""
# Tokenize: <w:tbl>...</w:tbl>-Bereiche markieren, damit wir sie ueberspringen.
# Ansatz: wir gehen durch das XML und tracken aktuelle Tabellen-Tiefe.
# Wenn Tiefe > 0: Bullets in Tabellen-Zellen ueberspringen.
out = [] out = []
pos = 0 bullet_run = []
table_depth = 0 table_depth = 0
bullet_run: list[tuple[int, str]] = [] # (out_idx, p_xml) Indizes in out
stats = {"lists": 0, "bullets_in_lists": 0, "bullets_keepnext": 0, stats = {"lists": 0, "bullets_in_lists": 0, "bullets_keepnext": 0,
"skipped_in_tables": 0} "skipped_in_tables": 0, "h2_headings": 0, "separators_added": 0}
def flush_run(): def flush_run():
if not bullet_run: if not bullet_run:
@@ -102,9 +124,6 @@ def process_document_xml(xml: str) -> tuple[str, dict]:
stats["bullets_keepnext"] += 1 stats["bullets_keepnext"] += 1
bullet_run.clear() bullet_run.clear()
# Wir scannen das XML linear nach <w:p ...>...</w:p>, <w:tbl>, </w:tbl>
# und sammeln Bullet-Sequenzen ausserhalb von Tabellen.
# Dafuer iterieren wir mit einem regex der ALLE drei Token findet.
token_re = re.compile( token_re = re.compile(
r"(?P<tblopen>" + re.escape(TBL_OPEN) + r")" r"(?P<tblopen>" + re.escape(TBL_OPEN) + r")"
r"|(?P<tblclose>" + re.escape(TBL_CLOSE) + r")" r"|(?P<tblclose>" + re.escape(TBL_CLOSE) + r")"
@@ -113,49 +132,46 @@ def process_document_xml(xml: str) -> tuple[str, dict]:
) )
last_end = 0 last_end = 0
for m in token_re.finditer(xml): for m in token_re.finditer(xml):
# nicht-tokenisierten Text dazwischen anhaengen
if m.start() > last_end: if m.start() > last_end:
out.append(xml[last_end:m.start()]) out.append(xml[last_end:m.start()])
last_end = m.end() last_end = m.end()
if m.group("tblopen"): if m.group("tblopen"):
flush_run() # Listen vor Tabelle abschliessen flush_run()
table_depth += 1 table_depth += 1
out.append(m.group()) out.append(m.group())
elif m.group("tblclose"): elif m.group("tblclose"):
flush_run() # innerhalb-Tabellen-Listen wir flushen, aber haben flush_run()
# sie eh nicht angesammelt
table_depth -= 1 table_depth -= 1
out.append(m.group()) out.append(m.group())
else: else:
p_xml = m.group("para") p_xml = m.group("para")
out.append(p_xml) out.append(p_xml)
if table_depth > 0: if table_depth > 0:
# Bullets in Tabellen-Zellen ignorieren
if is_bullet_paragraph(p_xml): if is_bullet_paragraph(p_xml):
stats["skipped_in_tables"] += 1 stats["skipped_in_tables"] += 1
# nicht-bullet-paragraph in tabelle: kein effekt
continue continue
if is_bullet_paragraph(p_xml): if is_bullet_paragraph(p_xml):
bullet_run.append((len(out) - 1, p_xml)) bullet_run.append((len(out) - 1, p_xml))
else: continue
# Sequenz-Ende: 3-3-Regel anwenden
flush_run() flush_run()
if is_h2_paragraph(p_xml):
out.append(H2_SEP_XML)
stats["h2_headings"] += 1
stats["separators_added"] += 1
# Rest hinten dranhaengen
if last_end < len(xml): if last_end < len(xml):
out.append(xml[last_end:]) out.append(xml[last_end:])
flush_run() # falls Liste am Body-Ende flush_run()
return "".join(out), stats return "".join(out), stats
def main() -> int: def main():
if not DOCX_FILE.exists(): if not DOCX_FILE.exists():
sys.stderr.write(f"FEHLER: {DOCX_FILE} existiert nicht. " sys.stderr.write(f"FEHLER: {DOCX_FILE} existiert nicht. "
f"Erst build.ps1 laufen lassen.\n") f"Erst build.ps1 laufen lassen.\n")
return 1 return 1
log(f"Verarbeite: {DOCX_FILE}") log(f"Verarbeite: {DOCX_FILE}")
# DOCX in memory einlesen
with zipfile.ZipFile(DOCX_FILE, "r") as z: with zipfile.ZipFile(DOCX_FILE, "r") as z:
members = {name: z.read(name) for name in z.namelist()} members = {name: z.read(name) for name in z.namelist()}
@@ -163,12 +179,10 @@ def main() -> int:
new_xml, stats = process_document_xml(doc_xml) new_xml, stats = process_document_xml(doc_xml)
if new_xml == doc_xml: if new_xml == doc_xml:
log(" keine Aenderung — keine bullet-Listen gefunden oder bereits gesetzt") log(" keine Aenderung")
members["word/document.xml"] = new_xml.encode("utf-8") members["word/document.xml"] = new_xml.encode("utf-8")
# DOCX zurueckschreiben (mode='w' truncatet)
with zipfile.ZipFile(DOCX_FILE, "w", zipfile.ZIP_DEFLATED) as z: with zipfile.ZipFile(DOCX_FILE, "w", zipfile.ZIP_DEFLATED) as z:
# [Content_Types].xml zuerst
order = sorted(members.keys(), order = sorted(members.keys(),
key=lambda n: (0 if n == "[Content_Types].xml" else 1, n)) key=lambda n: (0 if n == "[Content_Types].xml" else 1, n))
for name in order: for name in order:
@@ -178,6 +192,8 @@ def main() -> int:
log(f" Bullets in Listen: {stats['bullets_in_lists']}") log(f" Bullets in Listen: {stats['bullets_in_lists']}")
log(f" keepNext gesetzt: {stats['bullets_keepnext']}") log(f" keepNext gesetzt: {stats['bullets_keepnext']}")
log(f" Bullets in Tabellen uebersprungen: {stats['skipped_in_tables']}") log(f" Bullets in Tabellen uebersprungen: {stats['skipped_in_tables']}")
log(f" H2-Headings gefunden: {stats['h2_headings']}")
log(f" H2-Trenn-Absaetze eingefuegt: {stats['separators_added']}")
log("Fertig.") log("Fertig.")
return 0 return 0
@@ -179,18 +179,20 @@ endobj
<< /S /GoTo /D [ 82 0 R /Fit ] >> << /S /GoTo /D [ 82 0 R /Fit ] >>
endobj endobj
85 0 obj 85 0 obj
<< /Filter /FlateDecode /Length 2849 >> << /Filter /FlateDecode /Length 3132 >>
stream stream
xÚÍ[ÍŽ#¹␍¾÷Søº"Rÿ€a m·Ø[’¾-ö´Aö’9$—¼~$Q¢(UÙ]=Ó�] Œj—%ÅŸ�©uøý ?=©v]¼‰ xÚÍ[ÍŽ#¹␍¾÷Søº"ê_€a m·Ø[’¹-ö” {É’K^?’HQ”ª\vÏLg‚†Qv•¤’øóñ#¥V‡?êðË‹j×%ؤôa¾þû�ýGùåå_/�{«‚Z¢÷‡�üŒ;üíëËo¿çÏŸ_s“âá?µé׃ufqÖäïÿ<üõåÏ}
óõ?¿îýô·Ÿžþýi¶:ÀÁ«%8wðÑ-^ÛÃoßž~ù5ýð�ôù9ÍÐ1þ[†~;«ktúû_‡¿?ýµ‹À¢(£ÁæYhMLW”$ÊöOI”óÛÓ_n:À,Ú8<¼ýs%›sKôöðöíðËQ)Œ'Péª\úhº¤Oþ~KŸüwHWzFíòŒ|ÇžBže_ÒO:ÿ�u¦ <e␍¸ÒK;›òÕEe"NeûQžÊùËËŸn&À.Æz}øò�Õܼ_Rp‡/_¿•Òé*_•σW€ü)¿oùS¾Ç|␍§Wm|éQî¸S,½Ü[þè“)ß5õTñôêë³ÖÔ»çüT×ápLÏã¥Ó«=Ò]ìïiBù5¿ùõµòþeC1Þ-ácjù&5ü %Â’œƒ°¥Ek—¨#k1ž´;’„‹ÊS½£v!œªˆ]¹]ÅÛîT¥ýh)çÉ©+9ë”>KÎt­’ÓájI*ÿ␍’³ D}ÚçñšàÒ×Ný[Ûh²äÃÔVëbìùúF½ ‹¸ËCwä)Å×îzn¤ _;…YI¥ƒŽÜÖ¢6ë 7—Ò–␍z± ¯Û[˜›l2®aÄ�®8µfp]ñ=wÈkÚ«å¯òÌd™+ßÉr´À¿nCëüÌĽ…ù—dõs
§gW~k3t¾{N¿bYŽÖt¼^<=›c½Kó](=æ×·Ÿ¿Ó*¯o†qvñ3Ëw™á“ŒK´ü–�YbtlÅpB{¬Îzô¤OõJÖ**¶ùvQo»SŒöÙZNÂaÚÒ¬gŒñ«ô\¯Esè –¨Ò¿Asf�€�nÑ>4ÍÅ+m¾.Ð�TïçÁˆÙÝÓõ¥ª÷BAb/︺­±’£íž«§PMäÊ$?›)OËÕÀ5dÏòÀͽ´�.wlܘëä4¶¡Ä­^I´ær]á5MH£Ûƒò[þM'é+ßIz4ÀßnÃèô›�6æb\ÐÇ}�£>a {âýIäV°r42é½\›¡ú¾‹Ýý))þ@ŠÚ´ïNPfùlÈ—ö!àÌ–,÷?"G^ù#»)£ÊsóL}ÍZ&»]¿Ÿ ¸?—A¨º¸šnå1␍lxZ*$øÕïÊ$ÇjSuTÓTIO—!>>jˆ¸ãWƛ󘮰Ó-ÇÁëö*†û¶uÛóìg8^õ�;Oj÷7·NK¶!ey¿‰}ejFÍÁ␍‡$�<D“û¨0q¡)úòPÓ6,NãNM�ƒá–dÔ2€ÙíEieçnv5¨êcê”6£�óþ”©j {ª„l(ÝpRר»Jä$¤�A^ŒS}÷XK(0õï +\*¥]‡ô␍!åm›ô‰qQ`VùÛž„)3z�?˜¿w0Cz0¶öd§P­´Ûâo-h=ûž?v´’Zø4ªc£_|RÙŸ’êX–{Q‘f…)çÑÁì°Z³L‰ 0\O³MKÉÏ.Ù%¯5 †ß…‹&ÿ5%G½f(Ëßà~z1ëôÒ¦7‹ö5GVC ÀSÈ_ã(“&™ôJ&QÂ8™ÚÜ0l@q �ksÒÕ=܉×'qXÀÊcË,÷zmŠêë®z§tDïƒêò‚?AíŠ"ßÚa³h²¾<|Ï<ÊÈYMmUß[zšk‘2êÅú}®ÐþZi%°ÅSD¸Õ×4¨AØÙÕTtjÍcMÙŒ!SccIJ¦jxº òQUœÀ?Óã|€%Ú'‘fj¬-�0<´¥»g„é‘uÜyS»¿¹t²5©Ã‡Mô«] n†8yÍM  Š v1—]I»˜c˳’Ã-ÏѰӀ&lwƒåeÔ•ûÙÔ€ÄÇÔ)/Æçõ50S¤ w"Â.VŸnHiÈï®;ñc5Æ¡¾[¬CÔXú~a�c�ÿ–0ûˆ�x–»³”e$‰ΨÚDs¬ÀöŽS†™þ(:Rf—eöÿIG¼
¢M@P·F©•јù¹ãqð6»âÔ0xpãº8…w±ì„sÖ™ÅY�ÔµU9”=eŒx%`–KCÖLÇ Iþzšl(íÐQîBvX'UÅeŸ[á— ‹Çvs¿8Åæ©C¦º–1È3dW „ë @X mP�íáRLçJ†;<¦”íÌÖhò^ §ü‚û�À®AëÞ´Ú4ì␍)@Ÿbù™Æ9œ“YÍI¤^¢uë‡(¸ˆêïÂaiiù�AŸ»¿"Wn␍tœ¦Lƒ£VÝNxäR¾z/Ifcð«ëšŠ/¿#€Ê¡¡H¦c…¤i=œ5 ’zèhtA=¬ƒŸâô̯pFE‰alVhü„:nj-$ç&ú²"ß÷ ?»Üb =ùScC8ÄF!˜&qÓ3‡Ö‰•␍Pß2ãEuÜž=5Ù©yvüòÉâ7UµëucÈ“™}‹vŽÒ™f�Eçf—ï8ï3ÜÆ$›´2¶¯Z©âÃY½õàë4b§)ê¸â~�*@ÙI:ñCÚiªT©„]HºfÏqø«´ÒW¢ÒzE 8ab4õ7Íì‚kð‚°_Û ûB›%L^m¹¹nJU(�æ:2’¶UI“dì)Z␍0 wëD,Íà2’�iôl[¸•#¦�4ã–Š‚sxÁK.÷q #»[E>Tˆ‰­­´¹±Ôë'#Û÷`ífs¢½djïÔ1 ¡q˜†¿«ê=¿4i áy·šk˜ð/kÏ›î3:s/ßæ1pêBMã¨ÕZæWvèýК¶lÃ`A§¦S€:�†É³™! 8K¢Anâk§k�ˆ‘¨U|ú»$RcO�é"ç•°Ç»&ϯHë¡;Õí×°Ø'>YÂìªÚ/š‹-Ëã`û>zÿDÑUPÛ¦åi5ù ]Q~'*
Ù­È/ø�‘l:ÜD¼”kžÕÙ�¯�RI¡%yþ¾T2␍ÖƒØ)­Œ÷Ì){âzC zªDàqÏ6A/9õ½Æ—BŒí«ZG¢�aÄuàÆèòjC£—(ð3¶'ÄÕò¯P˜® œmb¡ÛJÆ+èê/Ve} á“òª>²a|«4œU©îXáUÀ"ŒôrE[†šf¤Ä4>‹sk…þ>¦ŽŸxækÍŠÙW7ìΦ´@7¼‘? ¶w ¡†cz<ŽÑ–,× à!t*uSßo9ÿ ç¢DOd¯n›ïxƒ�nqÁ܇êd'�†]€�L
iwÏÎŒæC>ÙÏÉšîÔ,?|òøMS= ‹²�1•ÊŽAË¢¶IͳÍõCeµ_¬Õpl²Ê8¾X¥¨�¤zéIÝVÐ�þ¨ãŠSB,e&íXÂé§±P°œÎ!b©Ê âè[…×JÐqE58abJå{•ìB{p¢ ¸6 ûF›'LQmx86£*Ò@ ™EÛ®¤K2öd«z–»u‚¦JpIÔ´zr‡-ÜB³¤}̸¥‚à2Nð�Ë}Ü¢ ÀáV��LB°µ—¶�¨ì÷úÅÈö#X»9¼Òéêj¯u¢Rã †»kêGq™˜‡±f\Žã&LösºG␍ÆZä˜�ï‹8 ë4@~¬M\É¡(Y“�“7\¢ðr±ç°1´?¶x‰ÊÇöpœw›šYR‚ÉìZs­ÇM+éqØ=ÛE²�€®TS8Y'‘$ Õ+|“E}Ç¥ÝI’f
ƒ‘­iÕâ­¦, [ŠhC[£©UI¢)Ë$ ˆÑP¹ãbr4¢gI5j ¸2éZ1#µNR–Äjš‰TˆrÅ /¼DA`¸îµéAghãÔŽž�ëÖÅÅût`ŸÚkv†bg‘ÞܺW@`v⺴N(,yLö–ÞZ¿æz5b"ŽY±HC¼¶éotN™øcç2~MÐ"÷Ö'ƒ°:OR #È0âqöl?i�wx°3Q¢Hñ<…æ0—7úŠ ¬Œ Zk×&PØY¡WbpÖŸX´³:.ÙìØºws!ô:ƒ5ùg¥B»?%_þ±…B«ÃbáY(ä�Þ­!MJ…%y»_¼Ð¡ç’ê²_ÒpaU/h5c³
�˜×ûeé?õN ü50vÁ'_˜‚ÕD—Ø'7“[Éùöu€‰R´�¹u+K]S�UKGÑ‚PЫ°ŠwÜÓ$µu÷2ù’¹ý°•q|£aÅìÄ¡‘Œ°ÎÝ”`ž�oÌㄆöK¥ké[Ë)ÌX³ Q98)13n%Stûg·2.ŠÚ²Bóòb¿êÄôTé$UnEÁ"“ôNHÇ[F›æ¥Ê4JK²µ3„.3 †›EœÇe‚ŸrT Ž‘ŸSŒó�=¾Qñ&ëà ¡�J·&úœ)¥çjPSã™PÁA¦O-ôÔëV¥¶¨­ù—ò¤ò2·\­qþ^´åòBÝÜa¨zô K›Y9JóTkÜÉKnUʷ׋à¢ÃæÇ&á'›Pð\ضû™Ø‘2!•!�ZgŒ3C¿Mq4n–îpæº␍o»¯BlOz´c1Z‘câ(’„␍Ù¬ã2Ü¥®¡3ÖÀ»3ê³(ÍŸ¬=µ�K¹ÞvMÇæ«MwLf»[Õ5]6usÛ0�ýÇêuÔ;Õ¦ôE0.kÍIF=Á ¥tZÊÒ‡|ë$d7!ÐÆ oñ?/êI9¦kˆOBÒØx†$è$PÖÃ6-uwN`ïÓS<Õ«8·¯’„UñCæ¥ì™[Œ¿Þl^�Iºô˜zgu~Jîž™õ�©æ™©WÍPmt²Úê› ¤ˆàX uc�ÔF…W»W!…©Øh>^lœj#Á1
Ë¿8¦lÍ�9X·ÏÅ%(/­µ›ÿI¼½ƒŽ„5œÖÃqL¸Õs­@‘E§¾TwõÇø-å÷R%f�µÛ ùQ4X—Jûp¬£™<N>"µ€ Æ1ê°ÒC62V¯Ñp "ÊÅqÆÆÒî8øâ%t,÷œÞýq>ÈjnYkL&@І#Žça2âhzò ?"žB©Tq²#y@kW¸¦‹òŒK»%ÓQx ‚ÃpKm30 .^±ÝÆ|´7µŒ ظ;µO㑃á™ÂYT8·à™ Ø®m†“š—Õ{␍Kom^ ½’2 njؤ®Ô¶Ùo NYûÓä¼~©Ñ/÷Ò…!X�…Ë>Lxœ"ÛMVç£#šL}” ª<Ws³Ÿ;}Ǭ´L(¸µm”vJèÍ’z?PǸXŽ~ Nȯ°#Gîß^çDPã�‹^á9H9þ¹=Hí‚áÿØ‚d+mµ«L&ÈóéíÖú^©ªËㆉõ«nDëtëUžÝl½ß„øC^p#©àòå<Ô¦/µµ“óÑ9�Œä÷šÂý÷ž–Nƒg®þãí Yšµ¬V®[Å™Ú.ζä�I~•ÜpAÃÙк{‰ ”Mðeç CO¥×ïÔ8MÆQX¡ž�ÍÚà΋Ҩܾ^ÍŽl6k‰ê ræ/}ø3wšž+·>ªEér2␍ÏùÎÔxö)$~?òŽ€}Å¥5% žãF�#½îñ¶,´gòÌ�Hˆä~±[xöš£öÊÑÔüš%¼6N /ÙÌ
ö1ó8××…â¥tM¾JWŒZW£3ù¿M):l6IrlË›«Ú/=‘²�¨_iÉo²…L² ư8qt¦{F<‹ÆÿÉØ1R¸äëí‘ë`°‰ÓÜñ˜Üf¬+¨nç|˜‰-hýPE¼o\ûŽq§¾^åá–Ù\½”w.Pê¦ÕB}É—þJ‡œ&ÔÙh‡æ—ö+º¦„n`' Mƒg@‚Î.e¯mÓOÊdíü.þëÙ‡=ª©"Ë]ŽÊ­B¢Ül½c¤Ú_FK¹³zãKžËéõ+^-*cïcê¡�ieÔw·^ ½©õjÇÖ+¨�Þ+íöQï¦6¦þxsB§�º Sݤdå!Ö¾Nî{=.ÄPH÷¾ÐÏ¡#µÄÏ'Òá)�¯x4ÖâƒssØ8BØ(Û{¥½­ tLœ9 •Üï£oöÃÂb®[?ö¢Ã&ùíÝÄÊ!W): �&êÍŒ“e£¥tSÿB}ÒÀ/>'¢ÙzšmÏö<ûÇêEœhÊ�,z¾™ W¼G­‹—­u#ϯyå™�Û,¼òmÓÝ*¹‚¡®d x~Ã¥Šâ×1ÞŒ’`Ú„8Åx”M†Å8�rër#Ή^Mh¼¦Wü¬[}Û"«¶¿y­©úúõh³˜½2␍1ä#ÄýóH@e`'õG—wVdéÎ=§‹ í÷pÇL‰ÃöÚe¤3wƒMÚ1t�7Î<é íâ]t¼a5Œ¦†j‘èÌ�Æ8Ñ¥–=AË�¥X␍š^û鯿„ÒéÌ/Åãzß[�<áç´Ÿañrüøz4vÀÃN=ÚÀÑ5C­¿ÉpŒ8‡Î§£ñûÎjqU–dýGXœAy¸©`ý:©8e°’ÀL‰uýž¿q¾=Ñeèÿ‘ÄQÑe™mÇÿ?öaQQï åqðwÞÛçýãN³>î|ÔLúbzÈä¿¿éù '¢.1\·èsE3ŽÝäm-ò#µçéç«�­¿_šÑŠâø¡Ã‰9=Û¼„³ë”—èЙÑlò#␍á�’TREïä–¸£w¾·¶lS1§iFßã‘ÿWëŽ &‡A�¾åäÜŸôAꂽÍÔÛ*î¸÷ö§ët,¨wÊÔËÍ’êk5&¼î ­‹baU«ïŒ\²à‘o›&A†|’xÈrê|¤ƒ¦ÖnØ”bÃb"L~˜dÂþ!?´.nø"²  0×,ˆßu£c E´ý à•âéõh»Ö~�äŸôó±ñèçá×{)»þb½{’ �­ëá™bsýæ"Øõ=l°¶»žbŒñ}&X°É␍†JìÆþÁŽ ²�—Ô�µÌ2èxÓÄ0u˜Š“uFg®Ú¥‰Ó´Fº,új4x~¦Ÿ#‰µjXNؤãzÝ[U1aç8oñpüzÚeºàá¦zgdïš¡ Çß$!Vlè–mÆôm›žz•=Tùg1âÜ
´ÞãJQ²w’dLÑo}â�OY¯POTú¿.€Øw¹Ì(³mùŸdÈ>-±6yàÌSëïØ<¼·Òû›‡v½y¸WöùdǽŸnüŒàÊ¿"<ö%ó˜o��_Öh¬wãhš­`^«»
�y×脟œ^]»];3q1ÎÝÌŒ�“­�=ä¶l2VÏe•Í”/¯X‹d}ÄÅòøl«™vÿF^ÛJÝm@'�ÎÜUD´;^m½nE[§ŒòÙm»ß«aL„øôsŽóœçQœ"§T–GH�aÞCMm—¨ØÄ²DÛ–ÿs…9ùÊ1²7«Ò5ó|l‹vOãÐØú§å3¼�àV‡§+PÒi@”tîÄ™y/’ˆ¨î‰ø�ƒ†$Æ– â“R×Ú‘ɲz"©ÞÇò–U‘”ÛÎäwñ#b„%}à8ÐØ|»²Pv³@ÂGß ÈOªg ¹Lÿ"üT�Ûkâàµ�lŒî¼?®‚×IM± oêé”<§n}7Ø}Ðò.çú&Pr-P¥ñĦ›Olöy<À/jEg»ïà×FýÅÇÅŠÿ\oí‰x#�20ó\gTiI^—}¨žP¹löâÁØm¸Ž\æíñl¶ ÑAž�ÑS7«GK¤ëû——ÿ7(Š
endstream endstream
endobj endobj
82 0 obj 82 0 obj
@@ -200,7 +202,7 @@ endobj
[ 83 0 R ] [ 83 0 R ]
endobj endobj
83 0 obj 83 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
86 0 obj 86 0 obj
<< /D [ 82 0 R /XYZ 69.866 813.476 null ] >> << /D [ 82 0 R /XYZ 69.866 813.476 null ] >>
@@ -209,27 +211,30 @@ endobj
<< /D [ 82 0 R /XYZ 70.866 779.528 null ] >> << /D [ 82 0 R /XYZ 70.866 779.528 null ] >>
endobj endobj
6 0 obj 6 0 obj
<< /D [ 82 0 R /XYZ 70.866 744.1 null ] >> << /D [ 82 0 R /XYZ 70.866 743.931 null ] >>
endobj endobj
16 0 obj 16 0 obj
<< /D [ 82 0 R /XYZ 70.866 344.932 null ] >> << /D [ 82 0 R /XYZ 70.866 403.899 null ] >>
endobj endobj
84 0 obj 84 0 obj
<< /Font << /F39 87 0 R /F27 88 0 R >> /ProcSet [ /PDF /Text ] >> << /Font << /F39 87 0 R /F27 88 0 R >> /ProcSet [ /PDF /Text ] >>
endobj endobj
95 0 obj 95 0 obj
<< /Filter /FlateDecode /Length 3493 >> << /Filter /FlateDecode /Length 3940 >>
stream stream
xÚ­[Io츾ûWô°ÂâN !Àîe€¹%ñm0§™KÞ!¹äï‡KY¤(Y?<ôë¶ÄMµ~µH\þ¸ˆË//¿ß?^þò”î–`¥Õ—�½@¼!.pqbñÖ^¼‹‘pùøqùí*„!À¬^Äßæ-~äªÒoiãõxOøõT¾¹¾*Ðñ—J—ßãm?ñgúìú*•M^)“Ó%aó¯*ÎuyÈð²Px;¯?qv<¦pë￾ˆÅé äeüþï—½[ûååññòŸñÑ]°‹Sæò�/¿ýoü3~~�“Tð—ÿå¡?.Ú¨Åhÿûò÷—¿VÂŽ±ÿq xÚµ\Ɏ丽×W䔆û$Tå2ÀÜl÷m0'ž‹û`_üû&ƒd�¢TÊ™6Ù™-‘ë‹E-.¿_Äåç7�ߟßÞ~z*‰Ktʙ˷¾ÉtC\äÅ‹%8w B,VÉË·ï—_¯B()„´ké·ýHµêü[¹t=Ýa}—n®ïZšôKçËŸé¶JŸô3ÿ%Ýú®´Ë#^)“ó%áàï:Íõ0d�xYh¼␍k¤ßOœ�¶)üúÛ·_ÞÄâMê2~ÿç÷ËÞ­¿þüöøööïñè>ºÅk{ùû÷·_K7þ‘>¿¤I:†Ëaè÷‹±z±F§ßÿºüíí/•°#�¥X¢H:
¯Åm¬_Œ␍DacËcà°ÄÅ ÌâœgHY蕈␍o«&ZÝ⟮þ ¦�i$4$NÈô—‹;©²”T‰‡y¨EêZºš¶Ët·ÈOâ‡[Õ•æMã%.ø(”Qrä=‰_\”zZÚÞÕQj•õñž¸ƒÂçªûfe– YV! R:  ]îßÒCéºÊ8+ñF³DÑAD‚fê{Ü‘èKRnÝj“š(»ƒ„�÷x7]´¦çø íö¤c<U7Xú¤˜EA�ìÙnפZ@<�¤‡;“—ªžHKñXAàöLGJ9¤³$‘² °Ù¬:À”�€ty5Y % ›Euñ.,ÖE¢p¼—càrÉ…ñA/Ñúq¼ÊdµHÚ[úö@-é u2eˆ1‰ùN\3U�2S9Ït•·5s.ñîûÕ3Í%6§›šX€[0VâsoÓå=ã´Åßvµy¢¥h…ŒM’'&ùz—yˆª’ƒ{rõ<tBXDr’8�'vñ,Ï ›„M‘ìÁBòŽ¢Ê4’,õGY?Ÿ“ˬÎ%Ž ×XæôÅ[›¹ˆ Óº¨ ¬fêö€`6«…ÆãÊGúþ,ÇN®fÊÞWØm'„UÕeÒ„›‚½"ЇêÖÓ:й¬l*ᅦCÛž”e7œ”e•Ìá˾ò3`’¦;ŸÇ·k2Áé&' nH¢�©ÿF釧´?G»Æ1¦™¬žr1¾rM®ŽžX5$}43BŽ¢À6*”eÑQ+“íc�œªóƒ�P~‰Ío␍„0ƒ…è'(EJ›>Œ(�­& a8Y™k`ã…Ð3£.AOMD29C…ë»*\ÍF␍ëe2ŠO2
€˜-Þ4?Ì—{ñ€GD”n ÍŠ}FÅ~´L[«Lºz�»~¦XöÊnV*ÀeÅW:+\ø}Ùx4;¥Ó xyq ¨6 Ü»±ÑÚxî#Œ†KR-´—ƒn=ê¨t'+F’‘[SUb7Þ¨–·^@Úü,c¾^yà>éóD!»1°EË¡ ¬þÊwLå;ÎÔxƒ»Óßd“ºÇË äl’) yo´—­@fQ·Í‚…bÓ÷×&æs!½pÈ?²Ä¥’Ù‰^Íä³R¤˜–ôK9×Þ|X.X/Qi4`—4‹öÕ>H×d¶c‚$Ÿ™ˆl`ÇM©…AaJæ’ä/ûê"—Í’×5î¼Í‘6ÜÊè›Ik<cC%!̹uûúʲ¹¹e+dCÓÆ4<Óê§§Ž�÷L?Cï§]ðÉO7û*p½‚çÈHD‚Pê,h¿ŸùjVcëè—Jû¯â8Ûˆ:Û×Ù¸y4M ýw\ìQL¶¬ƒ�ÏrŒä ·$u+PË%¬pêNÛP†$°Íº…b\�QåyÊ3g�éJKdqu+®é9l:,í4kˆTåH\�6
³¾FŒÈ+smÏÕ/ù™ùÂQÑ|™}óÅÍ rÍ¿XÝ$ñŽ2ù,™Me’Ž:úý,§}‰�õц¹#C�ì[š~¼äjZœM yv:‘€(,tŒ…JTk|ËlªF©9-AsåèePh™L[Þ1Œaðw!aÒɲ�’Mâò I5YÔÕŒ!Ð"ÀIbÑ\4oL “ÉídYˆ…I]”-PoLÆ;[“…g‰5–Yu±2<AŽ)Uœy>àö¶:Y�þé½jefk"m”?¸Ž^]úâ•É<ßdçwY4n¤Ò•y�áÃS÷†OÓûM€Å•s¥=:ótçóøq³¡›œp$9ÜH¾sÈÅŒ ™¡£SjŸÔÝšè€Bc¬ÖlwÁ0ÏFÙø,’\½"üÓÈU-␍ÌdgÏDh½h­÷M„Ѓ�è'HÉÜÀ£Êc« H™‰óA>N�OÖT�L–äAjC…ÌJ␍ë%2Šw2 ÙŽ^ÝHd’uÓl˜oŽ©ê/ƒ s)%ßV0h±äL,™¥Ðó³RÄ2ìVȹöÉãÙvåõKìR1Ö †Ø¶ mÇ8p7Ú’? $—Í–7XØE(Þ:àIjã€C¦r¾z®ÏL›�›6Ŷ1ïÐ~wA"x½H5$ÈÊÂ&JÔ,J”2F’NÖ(1G…*tQ!ƒlÆoQ²b6E°[­Ù/¥²À«$Ä¿Ÿéª+ EÜÑTëp¶u¶«³· CÜq±GñP[WÂŽÌ.L†$z-‘Y}NÜéR3Hгn¾Xî"ó~Ò1O“xVñ!tZpËÃÒI“ö�,�Ä…t£Œž+#ðãFÕ.r Ü £Qºu"´›@;k´_Àí™Ù^gû±²F·VÕýÖ ␍*B·�@Lï1Œ]:;ZµŠ…f]ŒhÈ'šÒ³å~x$ŸEF zfˆÇ’Á␍תÀ´ÊƒÓ&+Q!XÛ@@~E– é¢Lîä±Ö§ppq%­ö²:IÙ=‹:µ ãŒäÍ3hÙãÁD³SuÆao}0T8Z}¸k�Rò*€À`к™ÙRØ~;\¾Bè:ØtE ò:É1+ÇÕ�`=n­Zª†kÙM2b  ²¬Lðñ“‡š¥v øèkjÇpbIðL¯eè’mï÷XìX…°§_Q\Ç7šhF?§¥Æ˜#w&9åH¥a?A)¹$ËÍRM@õ}kêûŽ*œª{\�h ªb–/ŽíP~{/"ÈBc¹"Ú¨Áüp)/ÎÍW„2fëOPÞÇȱ{”Êb.ÞŠWÁк�dÐö°b~²N‘.Ù|Kÿó�¢„]X‹éIѸõ‰�†ö0LÖ~ˆQòãø6§a*¾ 8–ì;äMgš¯È‰ÛLÔœ?-)9FÄG&®�-ˆ"×áÊ€)ë(ZBÁmðóFÛZÜ6Ê«¾²À« lzN.ÂuJ;)]Uã²®%Ò›ûÔ"iç—h,YH2¨šÿ{©Ó)>/®½°Òmõb[h:ñkj<|?ƒª¦˜sªZÍ_8ŠÑC␍çV␍Ìy"ü7׿†èØÍ£cÚ�G*Z $gSTÄ€'„326äùn…I">IU=†|4)ûÒgÓ&ÑÎÐJÑ�…’>†÷r4Gþ°C¶h²L`PÙüÈ6 ´@žÜÅé¬÷Öo2Û¢NÚ–CR±•]å+-¥îÅ4šæ"¢&òëD‡ŒÍÔËNŽNCe#Ó¬ÅÛ;§Õ›ÓòÐTt2 ¸ÂH¾Ý¤~EÖ$·¹h8n�5û
²©èÔ(·˜­#¹j®CwŨðÚ@ÂðYÙò)½Ô‹Ðödùd�R× û¡ �úà�jÅ+\y¹¸xòR ,9çÞr{¶°W¬a°º‘­Ú0K8fœ\§!£ž"×I}Á¸#X2»`©Lí­]•}Õà+(”¨òŽžƒ�)æQ«º C:¸à³H),à*qd㵪­ò PÃÞ› öÓà.÷�^™�/ªlôk=…Ÿ»·˜¸”�’³I�¥%.%u䃳º“¾Kacã8#ûÏÌø%9Ñ­ÌT`郬&ÞÑ�ç‘þÚC XE¢ûônf%©lÿ8\¾ÂsÃhÁB�XÁv‹@À:Ù}jÏŽ 7>Z“3ëõì¦1äWV&Œ÷Å¡¸ãÊŒðÞ^œö‹rUÁªnWí¸®fè9]ïž ÚÈ*T‹æzþ ‰jt(að-z 0\ðgÂ…#YVzñÒïÈ2‹å@”Õfé¦Dýýhúû‰: Õ× (’U3K4Œc;,^ÆÞ‹ 6G• <‚°?p·¿‹sû•‡Ýºø1¼ëŽRYÌå[St)¨v£…:€tp²N‘.`¿UxÁ~c§FiO~IºPÝ i—"&¼(ÃXÖ„!”€ãF¶¯a+ ‹8– ¼„‡6Î4g!#ÕZòz<mò‚àÚ`B4ywI!w$¹ e]#5ˆ‚>¢Dü|Ðc>6É«¹²ø¨a:'á:¥í”®jƒ‚�áSŽª2éí}j’lt‹“-;‚ñ)¬Äa)ËIMaôjÅAô玌�M0D´DÍıéqóý …ÀÙSмƒéê�y<Фc�ºV#™÷D”n¯Í A¬Ÿ±ô@P�’ ¦¨ˆAõ>hD(„p—¶Öá­"Uuô™Ñ$p¦Ï¦M¢í¡3”¢C «„˜ô³lÍ“C,ÛP-¨” »%¶Å0²ÍÅÅÖøƒ¼ÅŽ¥rÛPlã6™iÑ'MË!¥ØÊ%ãõ½XF ¤[␍Qßd2r´S';Ù:É‹&(ÙŒEÅ;»5›ÝòRt"*UÓЩ°v‰¾¦@�\5#a:…bTxoa8(à ߑΕüºÚã.ûÑ(t␍²
ZÑ ìæ’Í5ÌDæÔfºf.µ—ža]˜`¿RÚ„Nè·º8,]ë¦OÍòaNBE¾�ßÎI qec„âZ‰¡}S ošÒ¨UÉIÚÙ1¤pöaT‰ÊÏÃŒFË*Ö7&/†×,o”ï­!]Á¥cAçFµaÈ#šu␍Ö�ÀË�+kvshNt°¥ñ¶ñV´ÛÓ }/ªU0�ó ÃàŸP5þžâì�s"ŸØòÈtÊa�gx•i5dPv–X6]‘Ï@ÙT7Ïö§ÁŒI…#„Ù×ùŠõÞ°'@õA›w`Ž•4Ñ␍œ‹Ç’AîÇó€xëH<¡20–£ò–ÎåõTŽõTZLý tµ0A5ÐY�?iHYäó�Qe;9i`Ù4ú`y„›õaºš^¹2¦Ý§‘´ÜötE®)¶OÁ²½å,X6Ì�QqûŒš°ï…þ+Õc}ÉR•FEj5kdiêÇ2DO*„ôiŽÊ¾³™|ôYò$îF§x=C#ݶ<S{Ц2³ôï—5€w"í,†>šN=xÅ™„ÊgY<"RtúAŸ&R?úOt|ÝnSmæ” �9ÒèE ÿ}�Ó &â)Õ¢\°¹ÖH©çœíÈÝ�£<]M HuY¾„J&3u†«3æÀGO€�Ê >ªúß±ÏN5ÔÃ’©(¯5ö7;¥Úkc[ÎÖ �j‹qûH¼añÒñ"X òÃuŠ´ÄjrÛWò˜OœXj^Ä&—ZsZy—ÏâÑéd«GÞKœÙP_dF«}Þ�÷‹µþtó×0eŒß4Œ� Ù˜çîùÆ*ô›¥þ9]J“&Çã™B³ì5|={m'}4eƒ.”/[rÈxäK¥Ùë=(½-]+,Š‹¤R6¦Èk+¨TÌ'õçýa“Â<8³kØ;nÛ␍zkêñó4!LR¾UšEß9vŸ˜¤ÁZ|j–ÌP‘Ý�=?Ã49^0aQÞŸ¬‹h?N¨- Àôθ׶Mtôœè?ŒtøÓΞˆ¨aù Ѩß(«¾Ê+O¬G+b,÷±Ÿ È&×2 ‰¢ÍtÃ<jÅ-=ú0Á½ ÛÐ ÝV‡åkÝôÎ*o2CzßÊĄЈÏ¹­Ä±M°õ
Ù…š+þB_ç告l³a,k>û*lW¢<W½B2tÐ#„±ÿÈö†ã9J€Ž]ö ÍâUWìå£ ?pÊ0¨¹�Ï�‚ºMç‹;W.›à,Ç,n‹T&UÇž•FB;ÓÞ$E 9¬19€$’8û0òCå¡@;o½ãiUB"Ͻ »z”¬< 7ê'‡,Nß�Wa^î¼M3•˜�ò¢Cž(1·�C¡§½ô›h–ä×ÏýÃàÑŸpy©Ž¼È?Å<tØ1`þcÂ=ZJË-eeËè¡W`�’ÇQÕk7KѶueÛå%ý<mž©T]LK#Ô÷6#ÅF/+ûX�@Â)‚véÀd’>Ús1S¶šÃ5PªÑ`8¢­ ;p…¥F53>8ü†%¯2´äAíj’?™eghÒ)‹|×iÀ™“�Fós8ÐG´#&¬‡éªcåʘž†»Š…u³zÑ€çˆÖ8»hé&­eÎr4'…mx/>_©²’U@«$»�ΦO`µ¢'ú�´bAeßÙô€±rñΟDÃèT€1í±‚gTå�­™ØŠÌ÷K²²náÈŠõàµ[ª²xD$%ÃY"õ£'Ixf¶É؉-7Õ9N ÚŠ4«†hÄH¹Xßε5JâBÚ:*6`Cºš¡ŠîÒe;Lf<ê _gÌ቙À␍¡‡'ºzI�(2’î6aiI”©DÛ�2=k£ÿgknGµ´Šb¸␍C^è/(¥h9^§xHŒA·O%ÇÄÜÄšrˆ!6IÉšÚȤz¯“I§Zýí^"¶†Í3ZååÏ�0íÝŒÞa¬*‡8l�2)mØÄÇB=\hfP,O¿Y�Ó&t¨(4KË×ÓÀnÒ5RÐÅ周ù;e÷jí¥•ƒ®f™U°C][i¢"3ET¦ç·Ì
óY`à:ä.2XMB"ïÝÕÓ°ÀmŒÉ4g×õjR‰ÀMª¡;µ,Priý2µÉÇ7ƒ¥ ðä矕I5-È;ÌDŒ5‘Mø"‰Vù$ýÊU‡8E"»i]~ GÉ>G•¥wbõʼÜâbJ¬ ÑÚéEESY†Ð¦–,Ëý¸ýð±æð¾Î·ÉIî´J³è£à‰I‚HEnÝÿ—fÉÕÍhò#LÓ‘sÔÆ/Ö铯 µD/™ÞÙã¶eLÅðµ|åö½?ì�‰È1ŽWÈ.ÔäRñæ:¯3Tô †±¬ùìë™]±ï\ÉÐÁƒÇ~×^Œº(“è4£µY„4¼ ÖË"þ0pÊ28¸�¸�‚úM§‡?Wwš`!Ï,n‹&&å;¡JÛœ›io–"�Y y2 (³�¨ûFwͺû�1™f¿ºÎDʵûIYq§(”¶½g8n”q{vµÈÑ?+—j†�·T‰.bj2›F–­òÉ
¬:hYâ¨lÛÕ8ùû Cò·VÀÚÕ-3aß ùû4ÅH„v7R;8Ñ£$r“οS#n&_™ý"¶”’ÕÙËï”ÇvÕÂZd߯øøh-[ž@Ù�¸oxz–¡Xí2;vÄÈnw{4—ThLÑká–ØZ *¢TÍ2Wk‘¥Ù�*â’©–æ…‡V§/’ƒ!(a™êÍbW§»õžel¦mýœ'M\lNSÅrõÍp¸ž#ÝѤp¢l¼c¢¼w4ŠgøhÓ0üÞõvÑÝ�¡•!ô-5픳D½JŽM·‚Ò.Ôd¤”'y’“v\úJX|[óqýÕÛÜ«ëÖÚ¶…ãZì³µ7®°%Y>y–—»í.ˆ£•÷‹Óö4ŽÆsH\“½ºK½+¹É K?Zo¸òRkhßÃóŽ²æXnTÔv«RWÖ¢AC² ·¢ü´Bÿ.õ.£PUƒ.9áAŠ#Ê‚,­u«ƒn™d?É·�ä‹ÒO‡Ãº¾Òrå¹í¬¦Cés‚¡•K<l[bì(女@Uë'PyõC¦Å]3tßÊ·Ñkþ÷H ­X¬öç²óÃ`Ö©sí£ý½}x¡ {·›ˆgÈ©$Öu…½â¶ÛK°ÿôÙ”šdû¸ƒˆ#ù%w>=?LxÉÄ7‰6 ×9“ÀÌûï[I¸dfYV¼5At¨ÔlÈl{‡‚r¼·zcè"ÑךŒÿ¢‹çó¦¼[rXÃÑiÁº!ÂQ•å»ÓeÜ´-½B0m˜‘SJ.ʶT½uÍN¸Q.N"kY#ë3)
ðœ2„b´ËìÐ#¸ÝíÁÜé7r üâtÿFQ‘„LÕ$rµ‚Zš/©ŒL³/—´æl-/Ñ-A™êÌBW]¼õŽeì.ný­'-\ìÕ“Åpõ½�¸ž%ÕQ¤o¢';ÇHygiOÒ¡óð{×êFw߆þ ß÷µ§œUÒ7„ÆÝËH)ªòì)�¸4ðй&úú«·¹SW­Óo‹Æ•Øgko[ó‘ |Ò,»=:£}XZ™âSÝ�æh¸f�U—[z•°IKƒ␍w¾ò¥.Ù¾�‡'3Á~÷í'˜¼’7¼ØTm9p¢g (àð•'‰¯<¹É+O8¬k±-WžÛFÀ! ;k'ð9¢ç°éá1p”—úßD³§ñø‰×SxÍr÷õ'Ê)5jËEYy.áß�eï,œÄZû(¯¥À¡}·ù‰çÜ©€×5@ù½Rô¶¸Ûú°¿ûlJMÜý„zá&0y)7wVE�ªt~-”‰u¥º¹Œ¤Ž6­ä0M«½dÛÿh[  mO[¼Ioë!·ªbÿ+ê}t9ÊËöjÙ¦÷ó“”ÖnÝ¿x @¾ô@å†ð‹þÄkÚ*c2Êölò|ý#­1G…Vq4ÀYÎßV˜Þ1¹ÚC9¹ßÃüçLð¶u›»ÝÏîÕ�V dçì6Ú¬O8kvӨʼnx–‘ýè1éyöe°ãbõ´­§ï�ŒùAŸÓFuÑ€ŒÉ¼
áû7)ž¼àÌšå!8‘ Ž…VV9'Ãà×Þ›Úׄ<âQ>,3?}‘ê„É»C>¥®²}çd`°àr(q&.ÒøývÅMßÛ0£´
Î_'òc'çØÃˆ=§}è:4>v™Úƒµ÷IlïbÀ†�ºÖ¡mõØÍÔ¼™^Ñäüã t”3è87@þØåμ‰Ôv±1ð¸ݱžºã€ŒÂ»U%A°¦Çnc]êPB•Z„‰'%47# 3æ±ïÉnï-Ò籊␍¼¶Ø0ŠéÄÉë15¡Ö¿ü­ÒŽœÅ�Vg°]Ÿ‚íôr#¦Œh�í+Ïö+×fà®ì©¼-–õ¹¦^ñMP‡Jm‘–‘®ø:†ß­9‘I¸ EXLŒ<¿±×ï«_ŒÏqè¶Ç¡eß9 `½åÊDV–€ÓS$ÃFL4X–h€lGN4”…Z–bÕaÿÕÌ~Of€ùm)zŸ°&Lª7x¶á5ç- Œ¶s{‡u²fß
4X÷J"‚'´]þ¥Ó£âþk¥Zد_˜gÑ[ D/®ÎËRp§%ys³~P:¬£˜ ÷Gþ³„™r1Bî¶·lB^þz•ûê␍ç—`Ï4+Ã[wÝàÿ{JâLSð1ˆÂ·šñî÷’mwé^ÜöALþ?+r_[.¨.¢µ·•÷d!!9§ž•ɼi5L3ªw]øýøöö?Å C
endstream endstream
endobj endobj
94 0 obj 94 0 obj
@@ -239,7 +244,7 @@ endobj
[ 92 0 R ] [ 92 0 R ]
endobj endobj
92 0 obj 92 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
96 0 obj 96 0 obj
<< /D [ 94 0 R /XYZ 69.866 813.476 null ] >> << /D [ 94 0 R /XYZ 69.866 813.476 null ] >>
@@ -248,26 +253,33 @@ endobj
<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> << /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >>
endobj endobj
101 0 obj 101 0 obj
<< /Filter /FlateDecode /Length 3441 >> << /Filter /FlateDecode /Length 3596 >>
stream stream
xÚ­[K�#·¾Ï¯Ð˜ßdB#ÍÈ€oIöfø” ¾dö%?$«HV‘ìVk±0äÑvóYϯ—?.âòË›À¿·oo{(Y—Õ)g.ßþó&ã q‘/–àÜ%±X%/ß¾_~» xÚÍ\K�㸾÷¯ð-«øÐ0Ðm·Ø[’¹-ö” {É’Kþ~HV‘,R”, xÚ-’Yϯjuùý¢.?¿)þùùýí§ú˺¬�¹|ÿûÄu�‹WKpî”Z,Âåû—_ß•BP
¡¤ÒnAÄïö#~Ô¦ÓwåâóøN„í]êür{×ÒÄo:=¾Å×*~â×ô?é¶w¥]š¸â˜œ —÷x×q®ÏC¶ �¯óñûgÇc ì5¨øÝ~Ä^uúŽ.^�c*\¿�΃×oLü¦ÓåÏ8Œñ¿¦ÿÀ]¿¡viáÊWhqº¤\~Æ7×ú<åºòe¥y8ß#~ðê¸M寿}ÿåM-Þ¬
¿ýþí×7±x³ /ãÏý~ÙúóÏo_ßßþ9ݯnñÚ^þúÇÛ¯¿Å�¿ÅÏ/q‘^Ãåßyêcõb�ŽßÿqùËÛŸ*aGƒZVÿI
uéÿþõÇeïÕ?~yûúöögu¿ºÅk{ù×÷·ß~�/þ?¿ÆIz␍—ÿå¡ß/ÆêÅ¿ÿ÷òÏ·¿WÂö–bYEü�RxÕñYÜÆ…źµPØ:¸. —tÐ<^ ¯:^‹�qa±n-¶ŽŽÁ7€%m4Ïeïí¸]müܯ 
»xoû J!=|üD–ˆ{ü˜øùú$ÚÖ(“,×-Ñ53D¦‡6³is¦PßÁ€´¢Ḭ̂y<üùܤ(ü°¸>ŒÖÔmÊÆ¶<QaS°¬t¯/>7%(믙ŸºœÒÑI_ ùB¦f"úZ8ƒ.È+6]I¤…/¾’>�Lm¸ÑêDdWW®×Ä�ÌI(óó=ñ˜XÇ7Kß}™¥áêLÙ�£ÛxñTÃB«›øÝ_ëª8ÍÞêSi›
J�_ÄÏ’ûgšð5\¹m¼Y<MÚ'Ç�Ï'Ïÿ¬×*wyTÊ8¤LÚ'o©PîÖÕôœ²6±•3fh;a<üQWpÄÈ/¯EoÒe𦑤W¸lžqÏ—.ƒõVH‹»»2jà(¥€#¨[ºÜ>�jj[VôH­�­ ®IÚàãµÝ ¾B>¥¥Û‹¦cÑÌ“Ò>@á�¤‰?02ÅÚĩ“õ
OâÁ×&ñrk÷Øѹ!}óIó¹e=Ñ@mét‘êMJzèÌñÈb… ‘=3Œ\Œ¯Ìp¸Þ­l^Å—©_§«Ê/k³†½®ö;òѪI!hW%™x€úôÚªQ[�Lÿ�¦␍‰Cå ´;K´´B®Iðu¼Ÿ½×ß�t ³rµ!¸bV15V´7ü Ã{GÚˆuFÇï|¥žŒÆ¿ø.é÷üÀ¢œÏˆI³ôËù²BZRÔü\7΂"®Åø^Þå0°¿£Q§ÂȆn><6GGç�P�8F„€ÓÅgTàYPÏ£…ÄJ óM €XÈK5qx#�qB’=ÌìÑM‚LÑKÏ‚‰¶çSgS Í~
–q<Úâl¨N¸£†X´œ��Õ¦6Å/ª-ˆÉmGnGÈYÅ'™;1%u»¼æ�Ê Ò›²D2Ä£U¯@îÉÚlO`<b¤4‹öê,#ùèdÆleI<“ÊÛ™kµæZì™1/ÓßQŠ©âu³«eQË• mt«o o5!ïW˜Å´š:‹bÖ³Þá`O&ôŒ2Þ,2¨‹[ÃâL•ðõs:8Dš[ß~ÉohBñûYŸ&›toºÀçX¼ÏŒ7ê*àê(¥: ª!Gç‚ZÖ=Ë‘œG脎OÈ|L‚î…¹I´Ùd5'w®ªñ–k#_y”oôAü6qçŒì\\Á~£.Ƴi#œ*vÝÊÜlû�NP?²#‰ˆÁã�‚ÜÀ‚ð$€"‰E¨°rn~ü±¿�¹çÖE»&ÉÍë©/v§}1³ƒ¤›î½/à“ÊW’Ô ¢yî�¸¸çò±J�꤀5̘Ð00�•°Z›ôÆÅ‹ËxònÈž’Õ*ÙJ^”nÀuQ”Ó®¸Š{Y=/8 ;úc°¸A|Ýi¥�#Þ÷ã
�avLd3ðÄá /�;n€#›}æ¸Ã ÙÁ™¶%}ŽtÉ'Vw \V‡Jm‘–kyâëú6×,¥c¨àŒZ”kŽë`‡ã×ÈŠà"âY3�ô»òJTrÆ;kÀ² 0<™ÈŠ[¯e„ɰ鉎j^fDsü.W`5.”âѼкeeœ ŸœÉt¿-•ÇF¹+!Ô�¨a2Þ­Ç=¨°x©™Û;°Z;`öí@ƒu7´7•e\ï;Ä‹°␍ÿÒq«_›A·´°�µfö˜Çƒ55ðYW'ae>Ø£,Y)—x.ü 0¬£ˆ †Y‹ºŽÎ™£¯©%—v‘)ñ�Ìéþñàê?�lª�KÜáÊ4víGOQtAÃð—8sÊÀ1 v”ŸàòCo·fÁùY’OvNɆ°çÎç?º Õ:S.ŽÈ‹]v¡G`vž!�2³³è.œqì.¤Wä ú‹¾␍v…cÆ�W M§ÛöÖFI¾ÅŒÃÞ,ðâ1rNWk¶Þ§“CëÇÉ™3|: áË–ï6=R÷žÇ¬EšüX–aSí káâää ”d~ô×kú3XßlÄ;ó;zÆ4r ƒq<Ô¢è~â=^P£~Á“sdáMH‘äæXd•/ÆžO)Ù[¦ ¥›-zak¼jëtŸ™—Ä­èù � X(7ëÌ]¶ò›ù�4Ÿ�(m@Ò¬ž␍ƒ_µui"ÒÆ<kc·åþ„YFnÌu[³nñ}°Ýù1ySwºjïSÏã"L1¶é„«Ö*‰|¦eÝl"z‹S} ìûø"«’<V=ûÆü܇”kL¤¶ì[Ö#u—öEtuã¹»i  3Õ¥™?6ÙS9饲.UÝÀe›GÀéÎ,Ì-Ã¥½ uðÆme�Ò|€¶­;ϳŠ(…5¯zHæ¥+høiáŠÅDj!‡4éœ�ŸŸ1*ýT$ݺhWyÓû@²
zé4ѼdCÚ!Ù¢Ž0…FÅI©9$²1"°²1eÝäµF䑘öÚÇ<úN»FÃ�5°˜�N‚›ó×—}IãØõ¹÷ëÕàý¹ülÐVF␍ -¨.B/ç÷aY6tH*Åw‰«>ß�A<|F%YÖ­f␍¨EfñFb"NÕhÑz�Œ’ø©Ì ÝdÈ´è¿bî^áÁUê1…¦ÑòÆ@t#ˆ'öiC ÏýhaWõ “xKEÑÖØ%Êȹ(ºœ9ƒ·“␍‰î�–ƒ@:â-öqO úrô:C½¤A�L-p_Hoî¡Ç7Gz¤ÖÅ ‡¢±T<o®†ùHâa¶Ùõh›A�¨€M-èjò«_µ…�kͤ…º:¢l¡4iÚGµÜãÃ6ä�rÇ*–ùøœIÙÊ=1Àº7ÀÍ¢Bo€íÔ³5Ê=i™«ÓU ò~…ÙÈò�‰<3™lpAWy6W¼ªt…¸0ÂèYVÂêʾì"ï‚}�rlØVÜáš
û‚ñ OîQܲ–™ÐÜ@² í}‹Ie¶ÈHcÜl³Q/l­H<␍Ïá¾,¦à*t2a¡,Æ ^6ôÃøB4£p€á!ˆWÎ *BJׂ<=2¿!2Œ†Ý¦D6³ÞÒ_IZÆåãN�ODq«m:ñs’9»Þã\ WäšGk‡2*ÔbÄ�­_]q>#Bê¡Bql ('ÚPX5�ßör¾;¶¿çºÂÅ8rV©”.ëA7%xŒ†²Ž–R~b¡dçŽ;õaj°¡:bæ13{ ÆÛE‹õ¼Áê&´ô*lf›eO®è¡1$ôVü÷¬–4£dËDÍcmYÌœ.I:7cüN,Ù;šu”ê9“²�{b‚57ÁͦJn‚íÔ£=SÂ4·ÑpÖSÜp`j ºžB3N.Þ®4…6*Íó±RUƒ³™UÂêʾì$? û˜r l#ÕRRŒŠ4¯+?÷cÇá¼␍p릮ªùÚ§s»t\¯Õª‹®ÆU²6™Œ�òò“‚p3-M…¡$‡ëΕۄ¥UöæåŠ}~Õ <´bK."}m5_¶WnËb¡›2§\€íà›´Äzb9òúç!ài¤kz–D”T´ïбÑÑÇùõ:îÿ:βµU³>bbm4ÑÄ‚¾âód3½5®ðxÀ[ãh mèi~RqažQ"šÍ< þe�12˜EÙÈí–[‡ÖCZc”rQUTm�É­0ze­0´¬€]7:þµ­¶RMbd�þ"Ì�ßÂêxg£ÊS[ËGÊ+�¨5̺#`†Y¾æúiÒU;RÂM¢š¥Vt±nQjóU»%-$½ýªvP*.V­ ¦ë±É5-ý•²À¤Ô‘­¡®™×bѲ’£bJZ-l=­­y9ðÂ3ë!i™Сì P9ƒE¥l·9 h;*:‰ìÀ–Æ}¾ß¶uÓWÕ|%I±¿:m“Z�az¼'Ô-0ØÎE›Àƒw Àg˜#8$ÈÁÎoO¹1,ta\]ƒeÝeM(kâ÷fÍ´ï-Ðcë€nÚw˜c
•_k»åÏ)78•Fr(!7ðÇ š3½Ö,wIJæƒGyÛbL°ˆÕ�l,èFç¨%^#€cËÅ_Ý—è™îRwÄŸØ}èÌkΰ$é0]¥˜ý™»I;¸Ó�¶␍CÙnXHIákNS’�þqí¶hH’婾{ðœ’h“}š‡0SÒUP™Yu[Ò ‰ÞrYL¡¦snùíkð4P¡{6Ä_MC‘íÆüpì ú¸€çÀñ0ù‡Àq®†TKÛtS±dõB1ºnÄ5¾�¶·†ž7øÙ8Ú"¹v`zêÀ΃ì”°£ôKÕN„ýéc ™ªI¸#ôY!Ü¢ÍÖnE:Î{¡à'”©ã¾ –«6“'§µ|QÕt¢ÍªcZZåË·Ê–!Vö
\ñÌ $�Õúy#ÎÝÕª¢Uöûùx¹v´ïf¼�rT„hÀ¨¥»8ƒÊÜ8ÊAT`·*Š!ª•„çó\ä$ûä4¼Á␍8¿eÍ¡$kTž<iš�Qå×%Rj÷º6¡#v»h4×õ¤šu£jKía2␍¨Q/ÄzÑŽ#ëªß¹ÎÇp ³N�àjs»i/»Û£W‹2½HÎyµnp-#„æ`çmf9ô1�?nG”à½<橽Ðf1ÚŸ¯ßuún:–l,ɬ¦Ì¯H›É¥"jË#p[ ú¦&(,úL�ŒP{U¿²ÄÓüi±l0Üù§Œsã WoMtŸØÚŽ¿Ó¼| !<ƒTZÖ Ý€Žá…H…ûµ³‚²Gª(˜.ãPšaÌÓ¾ ð†´­#=‰Æ:âžëË[˾àCîH"ì4‡H1Ö‹áZ4± W+í\0É$Àw/ ‘}šO ¿h]-p5ôБԹ©‚,hÎAö.Pa,�I!Ìøcp´“�$ÁÀ�áˆâª<…® õáÇ”¸±="Ù
FX¯,èW�³^ªš°Ã+eþ9’qt;ê#pÂV#˯P+%Äãié®nÙûáÔÀ!£Eôa�6pãÓ•Ùï'ö B¡Ž`ÓÒ�j¬Ê3 ë¡�+6©ñ½.Z�&xÕÈÄ­
‚öÎׯ¯Ãç/Êœi>‰Ø�æÉ¤j([Щ?ïÜ?i¹gh;'ì$òø‘1ÖØ¡ÝŸü¦°}û�/(U:¼÷7¬µGɧ®¬œ16!Ë!¯Y‚C,�[ÜnsñĬó ?huNhP× 6Ž
O^öPi¢/²P´ä1çÍn+ž´­mïh_à´ŽÊvxâæäux;Ïèûf·z‘fÚ‰I ï ³“‘•§‘hf�­ÐzŒ\xæqñk5Y‘á`ðé”a’*¶›¼cµ§ü9&§ÔgFûp%§Ù¡çN÷t¥žé ÌÖì?ÃVVG¨ä÷2*£­f§|JÉЕ,Cò>:ó\æ²6Dú"þÄ6Sæ¸y¬’Eã|v6bîËìÆçU ü)ƒ@¤G‘÷!%�§)ÙÏþqíù/‘ˆ©þuãÝ@h“}š*Ù›¤«¤2ÝJ␍¬r
š mÊÞ³$è/fò{¯æ÷OÚú”틾ù8ô'#}š¶ËO²¤¼Ýíqbpj¸^>bV¡ÝóÀuH/®2ÈËjëXž…NR¯‹]5«×Y–]}wiªr‹0ú\UÏF)ê&¼ŽÜß•:Û$NŸÕ4†Rþˆð iw†: ¬Ö‡Fy×'º«ˆ?|ØÏ—Ã:Ò¾_ñBVшQIwu:7Hp”&4¬Àn'žS›Ð60‹¯ÎÓ…”�ƒi Âèù␍5Í‘¬Q¹‚¥ŒSüŠ€�"F³Úq•v¯l:ïáóˆÝ&D£NjY?¹VF6þ^�ød‚PÆ•Y·Þ)ÁOœ3Ø2®êð­÷Îy®C•S(#!2^Ýn^Êî‡ßìÓŒ³ËjNfd‡É5Ëš{íb=kºò1�>�(Ñé,#‘#ñ±jAç«kà ¢lC6°ä›š*¿"m&Wr¤%7
j+Éy¨Wr!Š6¥ÂÓÚ¼�ß&ÁÂnD•éG%Õ€S²ÑZgþíÓQ×YtËzvQœÈ)ÉuX6¸fsx¢Wt©d×uvšöS/,ŒM‡k�Ec3)[ðOV”&਻#›R¨CïñÇSS‚wd�j¬Ý-›µ»l¶¢íŠ]ûFgSÛdPCYãô%ýÒ×é9ú™—çNþ°kuߟ"lo:]“‰.]XýRIæÄÏÀm´C:!1f­½S§Æ=çr¿ÎTE¬ 1ÆWÝ4£÷®óÆ␍™ñ DÈvˆRÍqŒH7}&HFá^M®Üâi‚³Ø5šîüSƹ␍ãâ²vj¡#|ÅÖb1'6¼Ònqn}¨4ÔÝ~n•êÍë`5%x,•98S[æ±4ÓœgAmA¦ñò•hª#êyÙ\k+2âŒB ÂÜ»óò¾šKÇ’¹G:mº,2 îÝ
C`ÌÄÔ @åH5óÌéÚ°à
™€Ñ"Gœ·á¤l1·JŠ!OE^Œg �ïÚ縱 ’�L¡Ê›;À¤.®kN��”ùçDòÂÉÇI‡aÓú> Y�©�àõ™ã¡°8záT0j]l Ò‰¨.o¹Ú.°{ZP�DŽÙe½º¨Ïp¯ÆÙ}¾§ZÊ–ê pêÏ{÷»,ÈŒõ>iʃˆ€|6(³Pc‡z›ðä‡@…Û|©Ù¼ܽÿ0"ÀZÐAòøÞ•6 .†Ts±ë€‹ñxÞ÷ ~ÏêœÏ�¾•®¼ì¢ÒB_d¡èÉcΛ½`Š7sc;»·µ/òZG…5Þ‹ðsð¾�'tÃ}3Š»°¬(3$³¼Â7´¹žªzhS®ô-EJœ–Æ»p5�GÆõ ÝjDzlÞŽ)ï1“:¤»Ä¹ÝmAêðÔæxy‹Y…v÷CÇI™ÊÜÃS‰4�ÇËÝÖm¥v9ikíuWÛÅêådôày¤©–€æ\åÍF)¼Ý¿!v(ª4¦ˆ<EëÓ%–Æi…þˆðHõ�ä<ð•T:)Ïè÷ê;4’S¦e[^±î␍…%ÿÇû¹T␍¸$›¬G†üÔƒ0Ncô™-é9„q)³íûPnXÐ%ƒk2§Ïóª!“ìD´×LkñJ¡J¯X-…(al&•…¾ Öç*,kGÔ]àЦÓ·±·ÁL®z|pÜ*AA­˜ÚÝÊV;[àv(ÙM84X 6µ-¡�4‘5N_4àb�™ÃŸy msOª^{¸ûöúpÒ´n"< §à1Ø8\�@”�ÈÕ„Ò1lÔP9Ñ_é*p儯ÇÊ ��õš›*'4þBå„–ÊÊ ?˜�ýMJ$6»NJ6½Tÿû"ó˜à»)[ö;D -©'Í»ó!ÈÙ6bD�&�°$JM›¹j#èq‰næPA ¸“y¤aò\.˜O€ì�û-q›Äþ¡G”Ýž·`û‘ˆë"�m Õ¶†O÷¾i_šœµÍ3”íÐbôÉLYêàì´1ê÷¡û¬£U¶5vëG­H}ZÕ•Z5’ƒtC¶ÈŒ¹tÚ@�·…Zºa å±Ñ'8,�„@ÛÈ8Τ—?©×í^Þ™ÎažÕDM?kØéã:z¼—ãï)”DŒH-t
V³·IoI�Ì~Κö<Nx"‰ŸÆ1ÈÚò|Nñ‰¬
‹6û«ÆôT¿àÕ>1‚�Sÿ�œðḬxT�Ãò¤¼__¹Çݶ"lÍáT³o‹KªœÎõLâ[½gë„+·4K¯Àœ<³°;Àjß:8ů?GåîIk”9€þS˜ÕP[ÿ^B˽t¨—�~E›!‚Íþ'·;»-‹·õŸÙ-ϵê—[vàÎ4_ÂÝ�¯vÍŒXP4¿l“€ƒõ-¸ªà·.„•L؆æp ¾Ý«ÝNS �ÍRs­Mx#VÆ œ_ÜzÔÅ:Z§aÅù`±ôïÌɳ¾Ëäóµ¨AåËXn.6 È–«*XAÌ¢óò¬{iÝloQ�Mœuo{õ�Zè!°è‡ÊÄÀj¸y%! ŠàÕ´X%ÑëƒkÐ#_l´FËØ¥ë.ì› D–wÒ�£:FÕÝÜg6…x^Á5­Ï.
o^€«\�´CÔÑȸî�" &`èÙ+/àÑ=ðµŒ�^ÇЛN*[5EFéÍW7éX
æ¯â�Q‹][NjÈYxÙº»} B®‡ÌaÔÑö>óf•«R„ã5UWߪÝÁ¿‡6ý¢Œ=Ù1Ìæ‚¨Ù)ˆöš†$Ùq“¡œ¨Âj%zº(Í#G/¹™Ã—ÜÜû äMúÇ®ÓÃ7Ñ`Ñ`fCÌ:,x=
ôÚ«,öÜ«,ÝëÚo€@) Tx¢eÛ¸ˆãï#ßkóím|7°`,~¦ß ¤O}¾!t Õ¯�N@<;^%_¾€î$üéMÀGW¿xgÏ% ú¹Ô«vô†ëëYËù‹<²ÔÒ¹ãÙ|nuA€Óm¦ïÿ%·ÀŒfA8Ɉ~ëC°èQ_ÓÁá=‰;¿÷çÅß-8¨{£ëý <»ÅËïâm’n“?×`£�×.Ú,‘VÕ$¥wŒ�˯Nin!,Fã°Ì`oúøç×÷·ÿ—ÐUm
endstream endstream
endobj endobj
100 0 obj 100 0 obj
@@ -277,7 +289,7 @@ endobj
[ 98 0 R ] [ 98 0 R ]
endobj endobj
98 0 obj 98 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
102 0 obj 102 0 obj
<< /D [ 100 0 R /XYZ 69.866 813.476 null ] >> << /D [ 100 0 R /XYZ 69.866 813.476 null ] >>
@@ -286,23 +298,17 @@ endobj
<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> << /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >>
endobj endobj
107 0 obj 107 0 obj
<< /Filter /FlateDecode /Length 3477 >> << /Filter /FlateDecode /Length 3841 >>
stream stream
xÚÍ[K¯ì¶␍ÞŸ_1àºzËæ »¶gdÕ¢Ùô.ÚMÿ~%Ф(Yö™¹I�"˜œ¹¶ž|ó#G�~;©ÓO xÚ½\ÉŽ$·½÷WÔLšdpK P@uV·Ý,ÏMÐɆuñì‹ßÜ"\2+k42„V·ª¸e¬/#%.¿_Äå§7Q~¿}û˧r—uY­²úòõŸo2|!.òâÄâ­½x!£äåë·Ë¯W!”Bš›áos?êñoeÃçá;áo_$¤/o_@êðÄ�ßÃ×*ü„?㿤½}Q`ãĵ|’'Ç�„M{|�0×¥!·µ|, |�Ö–Ùá˜ÂÝ~ûúó›Xœ^…ºô¿ÿóûeï«_~zûøúöïþÑÝjæò÷oo¿þ¾øGøù9L‚Õ_þ›†~»h‹Ñþþ×åoom ëEŠe៉d�õ‹±+JV~„àÒEVã³”m3¶ð¾� hø¤™ŽÄ,ŠŠàÒ*Ÿ7uU’& ¤ÅFKø›Œ2i)M{Oç5¨�-¯␍#éÓæaá˜J§)7�Cuœ�KÇ¥@•MÃ"„Á.,* $ Pïù¬yzÒyZXSྌgy�ˆÊ 8ÝlÙVж’LU¥éUøåð€ªZÍlìaY�ë“g@H<\zÎbÒé{t‘žY¥G¦Ã«¨»â²<‡¯‹Ä㣠sÁO -…
ÿ^??þô4ñ´LK0Á�>ÿñ¡Ó uÒ§¨¦9„Ó¬Ôä�>}~?ýrVÊh¥´_g•¾ûKú˜Õæï&¤çé�š×oÚÂËõ›Õ.}³ùñ5½6链æÿé°~36ä‰ >)“ó#`�o6Í�0d]ð±²øÖHߟ8;SÅõ×ÏŸ?Ôݢ̩ÿûïßN{¯þòÓÇãóã_ýÕã¦hýéoß?~ù5½ø{úüœ&Ùe>ý†~?9o'ïlúþÏÓ_?þÜÖ.'­¦E¥ÿ€²SÞ³Ù!Ì“ ¨´Îé«^V7]¦°½¥Oº¦Mƒì#?Õù} ÷&"2Inô^Îr†ÆúHï�BÆ AË U[Ùïx™õæ¯h>$MyÓÉzLÖ©dN©I iƒ<½ºä^´fÐѱ§¢E=,ôs=XáûÁè;²š E#…ý.Q¨0TAŠ…FdÑXt‰è\v�y(òêmQt’ÓèõÙ…³9?�8Â-r%‰€(g„›4ûÑä}ŒCÊ1­mÓYJ ŠJL›j‡jPù¼ÕH±æ…}²GRG‘qu¬´" +mÕÇZ ˆšqƒ¸¢³Ù1YŒô8ÅÖèéüM¡Ÿ5êòñ‹�Èz»„¥Î¢n°zd销�¼ïQ÷£|åš´…àKTªß|bÈÞ› YUq†hmÚ?ÒSrqÓnc€hS�l”"%K+²hX B�@#raUà±'ÚiLQ5O*�½XÖx»Þœ(àE©©”× ea/68—r$åà$Íà S&HaçL?#ú2¤Ãé¤%‘ó!ù». 2ª$æ¿ôÀ6=l6¼4␍3çç­Ë´OH Ã¥oÄ$g‘¹ùd4Œ­z.ð¤ASFn¾l“ã”pÜ¥ÒàlKKŠ=Ü®␍}hOqéxð”à7”ÀM­,ýÇÕ6•ìÍ\»HOaè&Óó/ÚuÊ2*R–ô˜Éøl#,³T“"`ðy•Â�6(]áXРx“†árU”nH�¡óêâ6<æeñ)­F¶º©câ«;¢ ¸W‚W2‘EÊG<>+ú˜[¹;m YÇ›gð␍½ÚÔÈ‹ÆØ‰¢!Ù«GÃ"]ÑMbó&©¡ª¯hÅŒå‘%‹Ÿ¦2ð`€� õ µ.öc…꯿‡@C>ïÚ…wßœ8F{y™¬ÇR�i]p©»hg:]e„ä˜"ÊÑd†ß¥3ZÚ�©¨Œ½“ŠLš|º)␍ã©6?$‡¥ò)âFº‡`´gE‚°ƒÑÚ&‘!©zª‡� c®ƒcäÔŸå-éHtH�Ã
k曎•3:ÒTâ@ÙB²þ†Ëð»¿ÓFú‘箆õË*åÀy[\5ý˘¼@¯Æá‘Í�ÇÝñÏUçÅ}}ã@Œà*& –ö3<©$©Ñ Ò÷ç�~�88‹0ñÁ L…â�¶nVž[ÞË.º›ŒñH»®Î£¸”¾‘%Ö Ç+úÖ¹·Þ÷é UÐ(ÙâÂ�Š¢ij1 8¨•ÐÃ&7Ñ#Œ²]¹eÿ¶” «»³¸0ਹ£®ð©ŠÓ5ÅZM±6ý³¨G1um=TݯC"”ñ>$Aµ¢& ²›P-*ŸÙ°zÕÁ�J˜™Qü&%X @<9• Ì•³A¨÷ÚÛhA™UâÜXÓÚÝšÖÔ´i:%æü_DSÕr[2Šã³fýÊŠ¡”ÉùÔ(=K�gø®ÉßѦXìÎÒÝ aÆ™Ee•aè6\—O(Õ1TôVƲ#Üúlñ׋þÖ'¤²7O¿¹Žöך[½Ô2VÄ%lG(@¸¶ÈšFö1»`í'[’ÄÒ'’€Òžr¬\¼¯¬… æ¯á¡ù ðî³â\�Žšl�“@Þ—M#þ�#ÃNÊ�x ¯?MÏm¼Ìç°u+Œ␍Lꂬlm$ ¨±ˆ"ß%vrÍP-dO1Ú/†­H�•@³�Þg½$å 1J ¼"øúdp©ÔIûR‡Ãº¤´,ûG%Î7vžIYÝÇ5Æ?*ׇÕ{DeƒéL“žòÓ¥ýß™| ãªß•YMI$†”¯Íz1 ç-¥ü?FEf‘Pjµ“tT1ƒÁ?£.yzÞ£z'…÷“Œ¬äÖ= zHÔÍ8Œ`fÁv“r®ì}k’•íÐ*`(´@¬1,ÍjvÖSʆ'8 œ /Rõ3jvȯÐdõ þvËm=”Û¦-·ñcŠb�p‹õŽrr[–³Òç€׫\VcÏ‘ƒÝà×ÈÁ;·ï2�P§ÎzÈŒTÃûg¬>Iex_s§ý7Æ×Ö[¨Â¹æü4R␍‰zFj¯!®EBx…°�&çl¾µÌ´|ÁýárâÈ?µ³‹RfÏ?yìRÃhºÑs%òIdQöo^D–Bú½ÜÜ‹´î|ÜKI•¡K0ï>r_ŒÔÉè¯zûW9(5«ëì©iß�éÄ«LßëäÝ�½1“ùš%‘Íb_oÇÅ]Q…šÀÁiH,‚Xh:Ôˆ^©Ü �Ä€Õ�¦”Çnƒp;{©(XI0R$m5W¹»Yyr—ûìÇìS­Œ$|º�¶ÇѬRöü^‹gSÔÝ`‰‡³˜£«Õ»E;áe·O°ÅʪÙýU¯-ѦªÆJ´hçöeÍ©Nûœt�àpá÷�@b,␍kÉ— •bê®Ø3sdnëRV�–òø<pe«#Y°bmN—Ì'‡UÿÁ
¤¦g½÷™YÄ—K¢�ź"Í$…þV¤ùÚÔ0�v“žÍ)Z7Åê´Ü›Ù4x¶Óâc?8SFÄÒÀ+R¤À¬bêÂ}ˤÌM}£ÁLoÏÓï«Q…TÀ£ ü!Uü�-è´pÐY¨jÄçR\4l)âoäü¯Qâ¤Z!��rÔ΀„£»’ÌÀ¸–Ä•ä@Ï“‹Ìß␍® 6h¹¨•ñõÛ4›k¥‚²üÈIå…§"V‡)‡8ìÁQ^1ü‘@×0ã]Ä!¹8ò^®!Èõõt}udîÂ/ºr÷Ï©¦nÂë¸6•2}äIF`èFÂ8ÉIB{¾-¤jAçú›ý<w¯6Ïתò,ÒQd␍dhՕ᣸Æ;]§ÙÉý‚Øõ!!לm(œÙ=¬zY¡1{•ãc{á¾�xæE‡½ÎÑÇ™‚Â>+(þûÇZ€:¸�;×õ\K78&Ï8ÄŠ�%KŒå†–Å�¡ç$µè†?ÓDF-ÆT'|Þ
­•ŸœÙLÈR/XçN$ÊÌÝÝ��‹(fù ®H”-T)Ü ©4�R {+ÀdGÂ;¥+ú␍ ipÃB+CwÚ6Yå`òö¶(k>FV¾²¨oþ¤eìß”yeà*.DryT5+]B!ò¾ŠhXI÷q{+.ßàÚhyæVŒ>i»›Ó(˜¶Â2I]¯Ò3¯ÆŸ«?#'Ú yìeX1Eü¬9SU(»�ã KŽD6,z²Ñ심š;*t3ŒiµÜ#AŠªæÚX#Œ9s2ЛÄO`G¾�á·Ò’ñH[ k]…€z¹žt@;{+^ÑTÁÕU¦akZ˜¯‚Dz…]ª:)P8Çkú"•�Ÿ�{òè1y@7¼à†Oö$Ä8ÍÆ²iUŸ –Ž�ê†T «;ïQ�h ò>iÉûf¥HV Ÿè¶©ÖP¯ðù¬W±ë¢{ÒªX.ç튵•�mÀÑ“§Ë_´JtÕ¶c�·…1“£>¶rg-4Hû•Ñkøm|�}îwœõËOE˱4ÒÍ´ ÁœásÞÏþBgÒÛ÷sÓ³ÙOOد”6NT
¢|ÇC{zÒ¹‡7̺©/ˆ›ÙÄÄEø*nîwNK“[2í-©‹ÐöÒ…Œ=奸–«¹êMt^„²Éò’� ÍHÉOGÇ,Ûhro¿U]¾"c¯ÂÐÒlÌxõ�cå ç7ï6T€r2^£¬rò]±:2O>EÝÆï˜§8ÍóÔΨæ)G)ÂP?¶¡¤±ó.yTŸbðWRæË³üS„zw^Q Môüô¹uàÑÊ^ c<–"#+öP"¹‰’K‚ç‚îš10=QH Æ�a(B yªñp~î½&UËl{¾Ø8éèeòR|8ÞUF�Âj0ñ›p§äÌ(>-E~ðžôˆŠ3V��²¾ÒUꦪr¹ØÊXMØ­ Êf#¢•TB†º\&ž›$€Ö0¬âhŸ(#kd¢š½åÜq´Üô)ˆé…TÚÍœÀ‡ (al¤Œ�RŽÏFªRKâZcŠCÂA×îÂo5G&%4¯V™•bÞ1^cQ␍Œ5ìDÀ‡6&%`*ƽ¨'L;‚À[I·6Wµš3K³ýeÁœF‰}”Ü–P�>˜Æ7Î#L�«¼s5ëqçÞ�cx ”¼J¿ë%xHÌXýâ&ëÂNÆš ÃÒe­Ý„÷óÀ¸ñ¡`ÒòXê’;n:œûÛ@ ’äQx’ D"‘¦÷<0¦ˆxVâ[Ý2²NÇ"±€ü/§ó‡÷w%:ÖìWH@t# /'½ž½3½½à§5{�“C]âkD78Û7sa±•û³œŒÆ÷òþ&␍x'° ¾sÈMlsÝjƒO…û?È!NÆÍ/²¢Ì®f”àSìÒFCû¸&=)À)ˆ�HZ3“n5}ïH»¥Ch}Œþj "½˜T&æ.%Ü»E(WÏ)4÷‰Ðvž½l°\'°\cBr†±Ü!†Ûâ„>ûŽ¥…{¬DÈéf>H'z‘8š1␍ÂËbîcƒl±Z?ÀjÑ-7©2f(Û!|AHs‘° Ó¸NÌš /e␍nzC[ r¹j]¯B·®€Û;bös“ÑÅ6±8Äì=äÕÍKJÒìkªÖ␍æê†Ý ËÌw% ݨÏ[‰æ¾Vw^s„GZoõêü¹Õ/ÌÜÚd–2üYh¶ô_Æ.¦°Ë¸¯ùÔÜ&ÝÑUd¸¢D¤?DŠŠR­‹␍A ‹±‚©´ŠÌEŽlè>‰ÿÔÜ^·fÎÅÉ.þ�¶fNçrÔÜDn�!ciel©®[××¢³ÿû¦ÛB6NúÅj…–²ðÜÉÈ¿ª´X· Ѿ#•R«j8ûÝeBãЪ‚·îö‡~—¶»J—ðdÝÁÂ÷®VK£‹wQ5ˆŸæ/`³²å³È±596¶„îð*…¯J³5|"©¢ùUI½d.9« ÃQ8PC�\�Ióˆœynš7žcTž2ÅU_JËYaqîøqüˆõW÷¶+fìñ¨×è™M*-*T« ¶Uù yÐ6õrËÔ¤(º33 7€�ÜñFÀŸsÆ%íUo<tú!ȽڀÇb=G
_×­ª¤°␍@´ŠÒ û¥ø:(Ç|»y5ç×Q˜ÿ¦‘³KœjJ~lãÚ±#×{₩h‹�OE9Â(N…¬3ùß~¡ì™‰ÝÇoÂô´NTwå0®|0~YLéZÍk+ÁRš�_õÀmœŽéZTXÚ6æ(µ³™ÒÐxߥ£Ý ( Tìò.Rq~šd–@ýøtrìyá7QÙ­TK‘Šæ±V¢Åj`ÝkE¦ÃÃÉ$·ª·ìrÎ#!yRœÖ©¸IbM ¼èi¢û�hVÎï”ç2v7ø Å3ò6kåPæ}AO€Ïé@•Ç.@�³Þ»?arõ¦ÿñ‰…7ÕÈa?¯²jÑ«Úk¬lËZv^¯´è±­V/õA°+ib>sQǘ¯®»ÈâÆ ìaÃÍ3N¾Ù+»µ¾CW‹jE�xZ^™z–9ËÕ†rm`—Ϫöñ#Õ뺆š|ò±+§4î�m9铎æFõi¿¬š
C¦vcT=gPÅ–D}LßJÉú \“÷3 ‚õÌ „Ц»n÷'5‚é›E£Ë\ëýº¬fÑö_€ ¶iß1F†´o–âOðN„ÖØ¸à•¶iw-% 4~Öéß¡æª;ÍEIÈyË7µ¾¹¦ÇÔ©eùØÁ,°ês7ÝàS7]Ë\‡‘[ÃÝo–‡›¢-xO‰í«;ᚬa†·Uˆ£<ÁŽ$‘û¬Æ�liv–<H´÷œÑq …¼,TµÖŽ]bÃD•dfüÏߢPJ.^ïjy bë4ÝNøŽûDM¤ªnL¥t¸Ùø¡úÓ-•¦¿‡Jƒþ¤U…–¤Ã±‘ÔîO á¼+YOYexÞòׇ>Ø}1†d2´C—ëÉ®i'|¨F¨Š;n§s˜u~ö%àtj¸oÛ@ÚÄßø;†³¼êù~Cùü4™.êÓ1 Ä^ÏÚ‡DDvðIY® ,VœêÐLÃ^A EdUm]VŒxQ®:š–ãE¼ãSâ˜Ý9 ´¤—‹\ÝÐbG‚~x¼W�×±��YïÂYÕòó»ý¦°’Ma•*Í„žzô7\è¢]ßQ.;%ŠTÀJ0¬‡uÓùÆ8‹ÞP™Ù›2z)t¡}mbïì¬Ïì�½'8A[ÒºÅjß„íÿû+„µ úOº´xrgÈûzDìZVŽ..¤‘Ë*ÏÞ”v£÷Ô0»œ£ûà‰s1€R`hg|Ãé�Á"1:�¿Ò E#TNl¿nªÇÑvpêµ�aÏ:œ$øìiy¶£Õ}|“pkÈx‚›¦âŸú.ëñÝÃ$s†—$5 ³×´‚4ï·M®·û*]ÏÞŠ;J-J…”q¢ëÈjÙæ·'M»€b×è,FQÄÏ/…°*9÷_<Š-~NÌ=vbšIŠÃȆê¶Eh¯{x^Iéßn€˜¹Î8“}wÓµŸ²$•g8†b]„wçj»n0J' TÕ,þžÞ^;z?÷eø¶Gd…Ú*½‚ô>i"¬Aúr[L5…]ä
¹ÜÇîImÀùaJšV|`9¡Ï-ÝËe³Áijµ…Ù�!|„ $¬R�k-C6 „q$Z.�péü´¨b.m/µôSX|›·v²,v6Ô#;Öçòsç‹le¿´2¨„cµ\¢2"Že�ŸlES‡¦Âå2Ü‹µf¸^;a/þ°Î–/¯eV;ÁSYFæéÖ9ÂËDÙiÞ›n¶¨M—À>Ç\ˆ×Òn‚I8öÒT|ÓŸåÜ79ÂeZçP:C w®îxÏcÚ�“ÄmÀ“‹wUä‚ÑÒ%ëPaG»;Ò°·*š- ¿ÀØóïsµã•¢÷‰¿€‡6=Âäø=k�'%Viçò|ym␍8BË{Í›°ÓKT®ßµ&Ýv³val»`Õ@S¯v/Cpþ¤,Êúˆ€¹Qñ;oYÃvà7*Å­‹ì2Ãlù!jtë8ßgô #™·º7¤Æ¬Å"<¤¾Ž$dC5â?ø^¢]”ñ'p;x¤«[σæÅâul&jøª#Ja§ÔÙûؘp\�þz ë’zã{é¶4yÍžÒH¿hPÝ4ݾŽ¿?¾¾ýF¾\Ó
ó¿(ñ3†U7{µÔââ^©Å1 §ª÷b#ïÛ ªQ~>È›v·RlpÀ1êmµ“‰\Sá—uLÏÝ@]„Ñun8âªn³ÿ>„!›ZýÕì†�­;˲!D]0eÉßN†sd£”’ùØ z×Ó¿�ðno�ò#¡òô†êwº­Ésà)A
åϲWp[/ŠûU6˜›³å°›-ǃl¦³g.ÿâ&ÆšÈkž<«Û¿Í"'ÁÉåÔD½Àד·
ÔR8‹ª\WÉÞš03ç²s¬␍1\k®©ÆÎ…!#›>¶…A×½ ç;úf7À±kKp”¡ÏçêÛ(Ê[¬�VMÓ¶␍Ü7›uYlš>Í‘Òsb.âqÒ–…*#W‹;“ï>.¡Þ‰ ਰ`:Q³¦ÓÙ“¡aG3ª$°þÐ=·öÒPõ¾i|ë{Û˜¡±6²¾M«÷ÈÈ,­„ì1&ä"b­®Ú–¤}•¿7é½×âäöéØÒiy8Hu`â¦a¦ï7)´¿×¶ê›8Ï ­ÞôVdÓÄÞ¬^`ç␍¾M¾�-·w{2Ãz‡³šœHm\¾óË)… “7µžûû@ÎÚ� “‚m»Y8ãº]øß¶„ÃÚ>^¼K¼�=rÊŸ¦%ÎCu3~ Œ´ë”©uLK¯À­%‚›D[ˆ¢wÀ;º6��œì‹�Ó°ýìôÝøWÛxu®‡Žóm·É·}›oS}dŽLÎ0˺¼\¤>¸»QÉu¼Zõí¿^¤|ãŽ:]áCA¤Ü•ÑÉk87ÝlÜ£.M•␍"®åCO3ÖÀ3A{␍l­ ÂC¸6‹\ å7-%Åm­´ÆŽôS§pj á…^”Ü>Þ�æZaD˧ FÙ¯é¨Bø{ÔïOí9îí~A¨_¶à—@u°ÁH«ã¦¢ZZ§_éàqnîG'÷gÕ»HßûèÝ[‹Ó�Rd°Yíóí8¹«­›p°‹44%A²%ëˆ#!׈æ{ªºÑìòº&$ Ü^-W~Ù™%²9Ñ]ì“pîzýï�}Ε „‡Jw8¶f²—U-éM‰wzÜl¹Ã�\ô;*%˜^-Ú o«EºÁ²IV'ê?µ³²ÚLåxŠ"wÖo¥õºüÂ-9ݨd¸ð }s ±M␍kÊ'{2¶Š,e�Ä6íÄ«X°Pn—N§›Uÿ [ד¶4?†ysmíÔõn{�¿0X]H¹1vzÈ å~‹
ô ^º‹½iL�²Wlrw~9½:’v£&c^šÚñïµ&Ì<ÌQaÜ¢Åå%5ÄԹ͢j6û†�ó’žIžšY˜9Î�¼À€<¯ºˆà(¯qåŒëõîªÝl8öö $œ­
½
SˆíO­L±Žm±}?Þ§á<Ž=^I'ÂWéÄïÂaßCX1L_’l¿ØÓ “4ËÖvÙF=þÑÕ¸�…~O(0ñ—S‚™‚Öoõ¥¼ðStŸdÈêùdÝ”nÁ"”{:ä™|þ-¦5Ý4g÷®ó_Ìs³þ
endstream endstream
endobj endobj
106 0 obj 106 0 obj
@@ -312,28 +318,41 @@ endobj
[ 104 0 R ] [ 104 0 R ]
endobj endobj
104 0 obj 104 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
108 0 obj 108 0 obj
<< /D [ 106 0 R /XYZ 69.866 813.476 null ] >> << /D [ 106 0 R /XYZ 69.866 813.476 null ] >>
endobj endobj
50 0 obj
<< /D [ 106 0 R /XYZ 70.866 293.162 null ] >>
endobj
105 0 obj 105 0 obj
<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> << /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >>
endobj endobj
113 0 obj 113 0 obj
<< /Filter /FlateDecode /Length 3190 >> << /Filter /FlateDecode /Length 3599 >>
stream stream
xÚµ[ÉŽ$·½÷WÔ4Å} xÚ½\Ë®$·␍Ý߯蘲Þà¢�Û�kÀ»$³3¼JoâE²ÉïG¢(ŠT©º{<v`´»o•T’(òð�b�:ýzR§ß~_¾¾ýðiâ)o9˜àN_ÿù¦Ë␍uÒ§¨¶Â))µy£O_;ýü®”ÑJiNªüöåcζþ6¡\/÷T:Ñnž¿XíÊ/[/_ÊmS>ågýŸç/ƆÚ1ã•Ö¹^RÆøbKßMÎ/+‹·áå÷'ö.ÓTñüËןÞÔ]Væ4ÿç×ÓÑ­¿þøvÿúöïyé1‡-Zúûoo?ÿRnü£|~*�lN§ÿBÓßNÎÛÍ;[~ÿëô··¿�`gkµeUþãζ\+Ä´ù�»„}hËÀôÆZùÍù<·¶úü;
tgu ÐÍòÜ�lXÏAºø÷Í-È’™UÕC(UM&×X^¼²ùå� ¿üüÂë÷û·—Ÿ>¥»¬´úòí_/"¾àqqœyk/žsf¤¸|û~ùíʹœ ³y›·ø‘›J¿¥�Ïã;î·W¡òËíU ©ôø=¾–ñ¦ÿ »½JeSÇPŸ”Îé·yŽWûºÜd õ1Wõu#þþ¬½ã2¹Û~ÿöË gN./ã÷_\Ž^ýúóËÇ·—?Ç­»`™Sæò�ï/¿ý_ü3~~‰�Tð—ÿä¦ß/Ú(f´Š¿ÿ}ùûËߨ`U¸Î�ÿ-$ë¬gƆ&YW·‘¶´ƒxÔ?ñ©zOxj\ŸN²Š²PU„¦Œº(­DØüµj@´®¢ÊÒnÖT=I ]“¨qË{J·UçuÙwt¾½&Ë8Ð{iÅ�'h␍Ò?÷úÛçͧ¥˜ÍÔmºØÌÜÚþE™,-‰·e(Y¤-x1œÁ7ˆI¯™4òâ´cVÉÉ&4² )£Ý8Ùm‚q­„I–#�ñÛø¨Ôb‘ëW¿" ,#ÜÊ‚„eQF`AâdÖ?zÚ=/ÂJ�Doþ¹ƒ™€¸W6Ô””Ì�ª-9(ÏTY뾎½ûn£yMi�›tàÜiîîÄÂ0é¤0±Ia§®ÏâÎèÂl0ÌGè=t…Ýß'␍ÂScáô*^1õj ¡hä^UkÙ% <2ÏÍdj—"t_ŒR °ì›ÈÝD7§CM `-QÖ§{ŬlZ¸Ü`ÓÍFkP¨ÿλV[Ž0ÅÑóªt^É«à␍ŽÒãôTù¶ý7°5¯�ì°¡Þ-›å`[ÖËh[T˜Åù±å¹›Š×t·MŒAÚìoQj›oE®MnŸÅÇ›|l*éÀÈŠ$÷ì†ÉÍ�7ž:ý iÚÚ¡-1GøÞGxjÏ rÜfPŽOwÌ™©,ªfÂË‹µÑÍ‚u„é␍�½b–û±qV `¦RѶß� …°¬çn3+1´·b„É·«—2Þ,FRM�Ðæ†W˜]ÝcK¹cáÍøL6º•¤@¬1ä%t\‹5ªÃÛ.Ú`ÜØ!Û‚é&ˆìç³ ÎhBšãÐ’v¬%2ª,ë7×>Æ1ŠÝ L Ê×­k-Ñžku�6␍âÁ‹IH“g›�[õ̺†ÂKE›&jP 74A«+
0g-®È= Jw!Çò‡©Ÿ²cæZo’øÕè£-]ý<k"?§úðŒ␍gëãlÞaë_þF½B}ÞÙ€n˜¢õ¶q¸se�kj;І®?uÄ™¨>`Õì„ÚeêS£^
‹¶jØNPÐ\[õÐ�=ÓAø.ãt”É8¨½ìÅg/»%ô*Mµ—'‘ÇaTõ©øtó XÝ&ùuÄ„c—!êk.(©€H´Å"àu\U° ©KÔû­lës�Æè§ÆÆž�:êèqRšiª¯K,¿?¡YUó®†õölET‘//bÓ(6ȵ-‰ß…�XÔtÜ$-%¼ÞÂT
š�&�ýY£¨]¢–e@\ �ãrûê�˜éônI¬ŸÖ7ä~†ÁëBG+Ç{Äö%ðdÜÞ\|ÅÌÜ$µ6©cÒ…iRŸ,µVŸ Æ _E3‚.Á ÜíÒé*1ô¿O¥*5ìÓÛtMÃø!J9OV
<³fÙ‰ØÂSºØE�83HB ­áqÔÔC¶ŸVåÎýQFº©õ}˜Ëʤ�euÄ”ù­›D®FÙAÈ‚¨áV$²MC{l(oÃQà o¢òZàëD?³È}Qc7<³À QWEÇQ”ò"¨¢Ö \ÏGb£²OB•¥*>¨�ñ×1δÌ-óÁi™E±␍š¦žGÝÌòœm|¯™Já!Ü­ÚO™¥.MW‡I"Ú‹)ÐÀaº¡&ú“G½•°)oyqðTßU¢,W5–Lƒ¶.äxËtåÔu%¬bîúfb‘ö&9:±©„;:D[–r¬8Sºeq²±»Ê}Q¨nd4âDX®#¾±À¹€}ƒø‰¿œ•Q޳ÍM³ÞrçBw`ªbo�ÈY휂È?©Ã`)Cž« š=Ã@«ÈºÚ†¨˜ø¢q�¹à0_TµB!ù\Rénç~÷\ÞXˤö'D -I�͕ڔ a¾á\!+EAH£h},˜:I¬I¬r¦ùÔS²‚!ßi.ŠI²˜„XDª'â«*˜äú’éÔÎUÑ›–fަ †^]%ˆ[­ÝÜÆ$¸a¸ëÖümf␍>lËÉlð¶Cã•àn­âµ.ïÍéÉž³c’àñãaJÅ–ä`cŽŠCI5‡¸Ð�°\�V;mYö‚{jδ¾°ò¦§�Û‹Q–ÛÖØecÁ␍sÎŒ­�Ô V[y~Fâ’ €Û™Òùó$‰Éé<ØæŠ*§î¹¡=1^bE2‹^Ö¥–‡?“§TL ÿ¨<ikùÖ©5‹êtÓ Bì%åM›ëŒmÉFôF²mœ1LÅ“)d¯µóƒ‹9¤–žh•=¼ÂDÄíX‘ oöõ£€ÌˆJ¯³Ð³Þ=PÑblo†,€×o„Q␍ñmö”%gòy~(q«¶ø¹0wéKN1†8@6P—…’XA¢/4ƒ),•Ð3×UÍäØÝt•Ä{KHz�á”è¿•,·ƒt²@%0ðôœÛÙÜ\ÙúWèÛQ!+æV)Ê‹÷…HÇAÅ_(SN5 Æœp
äÒÎ3Í#A'ä^C )FDNå␍�j±�±nP:åºÒ’ ¦º2ÌÑÊ\Ñýt¯Y�5'›-␍¾0f-v”=áŽQ>@2Ö�Ö6p¥3~��orÖô—VèŠn�„xÓŠÕÌ›Îw‘mÒQZæî粋§µ³¶“™� И0H j&Yw©¯s’T�k É&òDíLÙ¦xx0­çš5u?…ÎÓ]ÁnŠ“¤huVW¸“ïÀf”cÎ>°mÂÐbR«ó½£º© GÈKꓞ¶œXÍUÄZy„ V,ím“וE”P‚1ç!ŽCÀ)ú#Æ!5ë75îÙi<Xu#ñ;ùJÎàt ‡•ºÎñ^¦wøŒÄÍ$·¹‚‡zMÂk¾õè´²U/O*�ÿ'fqGa‚3kј–Së»ÜóiE¤H÷>•dÅt:Ø.Ÿ´“�ê3Ç,ÉtaÒ>�¼“C´¥") šÚ­¤ݦ“9ES´ÛLä›hüçsKHJÍrœ{ƒúÜë¹Í’.Ćö8Õ
G‡U?}j½<AŒŒÊ7tv¼|"ŸÅIºð‚ê” ,­£vÒ`·�_’c¨;N‚2+±Ûí7/%�Ò˜ŒŸ't­›÷èÖèrzFÅ`,Ÿ»³º‘ŠZý¥‹Å÷"~Џý nuƒ§å^DXÞ‹ðËÛ¡Ý‹ð_8`D5Dsx=)␍î¦0TåÙÓ æê¢ÀG?3ýHKôuè„NÂÓ†¥ /zð:mR_Ý{P"0mûo€:­ƒ’Ã8ü„ÖçH=Ð|å&Šíi²!’·¨I?Ü�@G´¦SæP�|Ÿ¼� ƒÇ—CÎS¹¡ñç÷ °�”Ì”A½£“ÖCz�ÏŠ Ö“.Ã`f=êÝßj›[6Œ“((½dF?˜ž%*8t¸Ç•vµ|¤¿R>*Ý¡Î_þ…ËEJûA$µ¯™£…6�|4·ÅÓ­V\»ÃÅÀÂδŒÃʼO5g$8�[%&59Â,†„rÍ M6ÜCN³²v´¿HëYè%pMIP©W2<r /©}\™·¿RŸ¶çöäºÞ¢†~rý…eª•h´�mzÛqvÆ1IÕ‰ºÖX<Œç¾Á°Æ(Ñå‡Ï".¥ò3Eé#BÎ[,ß>âÀˆ&“4ÉÄÞúUf˜±)ÆuÕË©ÞÖÇ~ß0ëÖ}©u_š6ÐDĽˆzf)„³© „e»–÷�«„ÃCOqRÝ”êd*t4êóløÖ;áðÔÆoØ,ìaÃ.uØ·É�‡6£ 0*á¨}Ì€WÝÆåÌàñr‹>ha ¤áð)�Ù ™“¼Ã€Ü¶“zò®ºHŒÁm³À1mû€)E°;iñ$ñ"¿…ð‚ÁCöqnl>†[‘x®?B`°|úË÷¥Ó;Mô�8ÈvK%É¢‹æXÔÄ>álsÅxં«\9ùªJ%$a›:<#lÖÅÖÊ�†3‡Ú)¯#’ â
×—£ÞIM£Lˆ␍³L„FíC£e \ÓF+~ú”3çËeiŸ½ÂÝ~q•¨Ì†ÃG•%`‘ç.sÏ—¦¨Xc7ÿNdHX´ûµ# œº#ÿŠ:4Í�ûi öPMy«U´6Þ#7Û8l®oOèÝ5òðŽ?Ú2n®{ËòXëdxîu°ïDSÜûnÃÃûL5ÞãlûÖ[:Š]¡ô;.�‚␍›à`/õSº›Ô¹kyD MôÕ—Y“»÷¸ÂŒ÷ŒxbL<÷'#W&Õ>_�+fÈâ-á�·pzÜD¦åÅŒ¨‚pomW²<‡M¯ÂN­ƒzbϹ,�Ÿ'÷�²ì,UÃø…½r¨îd<S0;¹ê?ØÆ�sÔð Z82ø(˜°'’MǸ›á3Bå"f1‰ Ê2½šèÉP˜G0£òfõQPXp<çYt²Çå•#¶fш&Eš7ÒX?)Ò*Ñ33õò¯ª×ðlÉÔˆ
[µ�ÇFVÉ-GpDÜû|�¦ðÃ’ðÇQÇî–ê�› ҹㅦ.‚ÔÍ2Š‚I‰œ¦ýò¹~VrÖï/uä.³ýÕ£º¡{¸w ð;JÒEqXƒ1=†8Ü¿ :hÝãKhÅ­§Mㆿ†38¥G€€×f„n°+Ö+ËcÒôëP°Ml…S>™ÍPÒÅáÅA©‚„ƒ1cŒBsv@US5%#„j,KFça†.Huî ½äƒøÑ‡âS~�N�õç>°š™Œ1z,\“U÷Ž‚ªŸä¦"Üʼ ÓžÄF„ý¢ìJKYI,ï3�ä4
‹j>ºw°(O­ê èðÃæÓ␍æ f´`>¥ÎÇã»At´GåùZ␍­c£*7•œYŽ PY#32/ó¨yõÈV“¤\Ǽ®­,N»àž.9½*Gν4n –µ®81ê¨9šPçø2­gw„hæ¦E©7„ÛqhÓ—ôL\í¸R¼‡Ìò¯ùRåXím¾é(éÂ%÷4œ©¹¹Ú^Ì¡›Jh…½§,ãÃ_Á™º¤3À³ À++Êó�l�ž²¬rL1ƒ6å Í<oÙí�CT†ðu6ä�Ž˜Î\Õæ­–0•˜IæoGì¢wÅŠNh˜<ÉLEŒ»Çø mÛ/ö/ë æø”©Ÿgœ‰c¸¬ úM¦©¢3Ì’‚0*‘òëözÿ†óꮺ½’§5(ѲOßO¶�©ÊüGOwtEÿ |¸‹ðµS4CâðSim«™?rÛõL†N°à•!mÜŽ4  îJö‘íÂÕ± …L¹¡Éd†ãñ¥(L†È•Íÿ±òëøƒ÷¹�‚"Mcê>øÂâ*Ù콫§Âx¦¥übumè=—×ÄG¿�YU¾(¯¥}ôòšâ´ðBÿ>é^õà™’—�Ž9ñäŸ~Ýÿ;K þ¢4‹hñ/n]äê�[{™Q˜JÝ´:ÚÏÉØ­M 'ǹWggŒÒÎqyÞƒéYÁ¯;í¯m–7[v/î•h Ö†éU=FÿVo
™�FÓrKwÐ/<螬”oúA½Õ"+œÅ=ž4ƒP=’ -Î3ëE(=,Yi�Ë�H²‹¾K1E&4Ù)!‡x–€\Èñœ×wfg£ZyÀêßuþð�O”QìK�º÷µùTô &ûž¿%g~g
lê½O�é{wô´å‹X]ÇH�Y%ó.=h-yð -•½Ìy¸œ9�Æ GcfÝŸ¬ÓS‰M#=¥YØÐ2 ­sž;Sîªe©òÿ?K.=9ì|ƒ8z‹$úÂ1¥5'␍µÙŸ
{î½û‹L|t<^O”2õ4<@¡â9�ô0&í{—Ü–üˆ�È>ª<ì­ÍÔ&áßg_,wR%Ž¡t�!ÀR ß5óõ"Ý|ýa.¥³*â~aíE=b6”0%÷ä±�7ìÿ(£ §Z­¹¬kûÂ/IßT@â|[å]Ô›U ö#ÕîrΫ-¾È¿d[aq·±›ÚËd™'_@œilíáy!ÍÓ‰<ü)3fб³¼ø¢óösí^vr�âhgý¦|~ñ,pj͈ìêlaÁŒ–ü¦èå¬Íû …ûä»9?va˜J¦4(§6ÎP¢bLPÝ¿OØAËx´�Fo^¿–n…-ígïÓ݇ÃÃ#ÛRœrÛÚE…'y°"Kø8ç\¡}Ø›]>²:Þ‡Ÿ¿¶QŸFÖsdV5�!—X†Â‰~ðÄ-ÂãG[€f‡Üc␍ NM3»­Ó8­#S¸UÈìTÜr˜I3†efˆ�ÆÓr,×¼Á�� ¿<màS{ôœI”ÄšS�§xUKµíQh¡‘ï`P×Óèä¹/#Y¢†*6×Ôà ž!ع-jz’»ÚÜ÷ç½ÊF9©°Èž>ñã/Å3´·1l.§Ñ~jMh/Otzé±x®®“ÆGù|ªšOÌ€ý}°¢’;M]å!DBš•F<_¨¹�W�åÔúéö}ë‘w®'ì‹j³ ™ÀÝå°)äÐ(Ûåa]â·…æË|Çïbk�°ÂÅÍèt€5nL’INj´ìëBÀÎüëUgªe¶ö-ì…I²âÌót‰ZFjD$BcK•5Ù'Bð4dÕ�:E}>Èp Žõ˜&À`-rG‡9ê <KAb�‘OäŽ×=§ãÜ*6ï,«�¦Ó´¾™¶8���¸Ðq$¾N3ì#U[\zÈž€Ó{¬<Ã!2ä |FßSë�àcúUH2õ´óœ¡ðT
ãÿÌ$ƒŸÏ2q:¼Î€×o4␍€}õi‘ ljš| 0²ó»–~³{ŸdõÉ"*5¹@€|K�\�’}:#QYyFÌ�¡Š@Ø;V¯ò�©§Œä·ÇÂ&E6‡Å)[¹$hÏÔÞÚfÁ³+&…<…åq(wÛ7«'+æôEàu-U½¢&¨9�Ôù�DJyº¥g°#ÿÎë6…•7Jæ–)–õüŽ␍õN4Úîç‰dξ�S+ÎŒGÖ„!ë]i-"¢bÑô˜ò»ŠQl*’#R·½_*æ¸\wQÒ`¬ažèÊ©ÔÎÌŽAØÎ P—Ø‘?Íá JÒd!ú�<EKdêóѹî00¬}žÝù<Ceúmó®CI%þǸ°y“¿ï¬iɳÇa9 3ÄÔi)Ìg™*MKcÔŽ �U¿SÅø‘v^¥eùp7ØV]¼óÂÄ®lÊ–_MN�Í}"ƒ Ü~GÍŸ¶xNªÙYÈ”aé@ØÐP¤Q�@šë3¶ltÞœ=ö2f«hN:ÙmÄ )vw^1³³SªsÑÔÇ4ßéqùyæ
žØöö×ÌØñª§èÕ»aOÅ
jÎÞõ1šµ¿Šâ¡þÄeÚŸÏKÔ!¶>Å3ç‡iœ6X!N MSÒ/‡¤ø”Õ�¹®Ž¹Üõ:ÇðŒè¶ÌH§iqôÌ¢£_1äÖ1R‰¥ÊèÔ[¼
Åa?®8̲2äÕ“#‘ýR´˜²�f¢VÏ_—Ñ/¼/“¾/ÃTiÁ}u›'hE×µý`fÔyPP,ÊîÙÃ>�›té;;¯ü1?Ú>|s£’Y©ôS* âÉ„tPß–÷y‹üJE�âF¨²])_E½¼é“ÜËÚT’¹Ñ›¢6šÓ¨4T‰±ÝŸÏƾ;�ujåS`E½EDt‘6D§ñZÄscI†êóY®ƒs]œòàF*jäë´.ëøpkªv6»Ãõ”5dÃŒWÈåî ½‹âþlE^\:²¾`@­AM/‹ãiLŽe½ˆ�ã™OoÓ×ý/;³v¸R_Eµ†–sd°7zž•tà‚Àì‹¡yÕéÑIˆVvS䤨”˜è2“ûœNëæD¤È�\©K*|%<¨(Ó<E{V—_*DÇ
�%K£H¶Ê òr77´À8Å4ÈÌ ¾ïààGoi‚ä¬ö垎ª‰hÂ"€†<Ë¥­øzXNÔu*é£�µTÚõ+-$Œ�룮ô:Ên÷þê–5iÓž¢“°þg§@¦G›–‘¶é­¤ã¸ òp.Ì´}J°±´Á•ãùu®OŸŠÆÄkC…àU•ÜÇõÖôV?)—/õ$Ï0ÖÀȸÖ9xwa³�
Æ^uÚ•±>‹í¿±Æq÷¯G'ýâ˜éÞ´Ôª=WYüÛ¾,Ùêt²®Ùxµ©Ä
ªâ:Îò:•ˆÉLÝœ‘H„ß÷¯oÿ´� ð
endstream endstream
endobj endobj
112 0 obj 112 0 obj
@@ -343,35 +362,30 @@ endobj
[ 110 0 R ] [ 110 0 R ]
endobj endobj
110 0 obj 110 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
114 0 obj 114 0 obj
<< /D [ 112 0 R /XYZ 69.866 813.476 null ] >> << /D [ 112 0 R /XYZ 69.866 813.476 null ] >>
endobj endobj
50 0 obj
<< /D [ 112 0 R /XYZ 70.866 678.213 null ] >>
endobj
111 0 obj 111 0 obj
<< /Font << /F27 88 0 R /F39 87 0 R /F44 115 0 R >> /ProcSet [ /PDF /Text ] >> << /Font << /F27 88 0 R /F44 115 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >>
endobj endobj
120 0 obj 120 0 obj
<< /Filter /FlateDecode /Length 2930 >> << /Filter /FlateDecode /Length 3048 >>
stream stream
xÚµ[ÉŽ$·½÷WÔLšû4 xÚ½[ÉŽ$¹␍½×WäTŒ¨=€BY‘•␍ÌÍã¾␍ædÃsqì‹ßZH‰T,Õè j2;B+E>>’Juùó¢._^~¾}ùå¡Ãežf¯½½|ý× ¤ê— ¦èý%*59␍—¯ß.¿¿)¥A)pרÒwwKújòwíÓóôNÅë+˜òòújÀ¦o&?~O¯uúK_óÿÀ__µñ¹ãŒOjçüHù2Ç«I}Cir�ñ±2øºŒ‘¾?°wZ¦
èʪ ›í¹ :Ù°.žƒ}ñï› FƒÌ¥jF„Te3¹Æú"‚£.¿]Ôå§7…¿·¯où4ñ’—Lp—¯ÿzÓ僺èKTK ×?¾þú¢¦`g¥/ãçÿ¼ì½úíËËÇ×—ÿŒ[³Ÿ‚q—|{ùý�ôâŸéï×ÔÉÌñò¿ÒôÛÅ:39kÒ÷_þþò·&ØQÀ ¦Y¥ÿ¸„g“ž¥i|œœŸIÂÎ×màÔ”›Bpck}«‚Uô¸º7”ËB¢¬ò‘Çs§ÈÍMóÛ"FiÀçºví=Òy@žÊT°Ô�³jÖæt­ã␍WäË9çä Ãnó5ÒxÐzÚ2ßkyó!ôç†i°,ØÉÚ¹)øŽ¨'µ’¶h¯QY4pC ç•}T±É͸º™ 6cWK¦¦†L#˜~„rÀÒÊVƒ*M×<dYQ\[Q>·…æ5pµ¥±+}ÈêŠ-Ì®B}íùšËÄ >¯ÄBÛ¤)ÏmS«²I‡38ÜÊ®Â6ÑdSäSáGam¼ “␍t&u5Iì&rÉ“ÂýPt˜ægk␍УÈú~UeHZ¯¢)Ìžùy׊á-ý«HáŽÆüQ€¤´uãYñ‰dÖæ†¡h�¯¬ó#ÿÑS¥¢E �®@ mùtpmw܆ÊOftù}‘‡ÓhªƒtÁ$'µxk÷ãi±ƒ�Lh–gŸÏ×É_6Íô×µ F}v‚¨/~Ž“·íxçmå‰Iy\çý+­GUõ"Ý §H<Ö•56WíÈÛ=ªÉBŸAt7ÙiIMʆõ‚ራžtlW4ý2 ƒîz€¡ë·�@”Ã÷5 )îç½}ƒC¦‹ ‘g½w`Ý€éÌdûÏ@¸Q3—4畈�ÂÍ�þ1qUË"߇SpL¦‘‘× &ã³]Áµoœ Eós0o^„ì�Þß›‡mÒÏr‰1¨:rÊ␍'<ÓŠ×^˜ÄÒ?ª ¸�§ÓñæâöÄA=
á’”Z¼Ñ—¯ß.¿¼+e´RÚ_“*ïþ£<æjë» ¥½|SéúE[øxýbµ+o¶6ßÊgSžòZÿ§Ãõ‹±¡ÌØÒ×&`�/¶Œ�Ðåš±YYü s”÷O]¶©âõׯ?¿©%º¬Ìeþýïo—£Oûéíñõí?óÑcK´þò�oo¿üZ>ü³<?—A6§Ëÿ ë·‹óvñΖ÷_þþöב°6_´Z²*ÿUÊ–×ì§%BZ|È’º*\}yÕ÷BH…„46UB®åIôÔÖJè␍G;�ypž¯4¥�<Ø Ucy P¿5�À'‰pâ7«v ÿ—‡™áJ_g-¹�·në;¾àfͲW]Èg^“5õÏW«ßÀoEÁ­õŒcÏ;�çB{¯„ë&Ça}␍�\ë‚°ÕG1�.TH§iâ1F÷Ó-]8L3ÝÍg 94™H¦þÀ¨:óøÆÖ8! Rh%.IüÖ÷؆¸"Ø �¡£3IiæÆT�XcQœž)|÷m&¤"Yn�Ù£›ç_‰Cq”Ùeô„Qé�wî¤S‘�¿ƒÐãÚM ­ˆ\—åscoÃ<Ws›œúUüa”º§éŠºÏô3:¹t"ÈaÄfË[ôÈîi`l'j“¬`aÐ+í¤]�¬B_w5j?u“½á¡h­5ˆø5«@ÿ)(ðŸ†/ À3–N&AX.Ü?tQŽáþ®Íÿ«rÞLÂŽU¥~QÖÐ~ôüÈQ^‹˜ŠxæQ•­âÏ]{líÇ/¾GëèNFPÙéÆüç™C�Õ˜
cUé¯\y�Ê•Â�GHù•yæß;S`XÀî¾N^9HlS+/÷�Lûlû�8ôSÌüàƒëk Á€=Ýp¯÷fšàÁL¼D„uûô¥ ½O\x”F@�ßIu‹S�ÌÖ␍We¦–ÅË–çÌËâûæ18yê¸ÞHUã!óºZ¿{:D;OÁÇö�Mè[güH¯€îœnÑ>œ�žÄ¯ò±(ÝS³0rbÈ{×Ç ¾µe\Žj#Ú×çÍ tWÑæÊ$�Ë9-�$�>]LºQseÛ¯~û‚@
ÿ†Zê ‚YŽ´(ìyQ­b¥—*0ï*ë=óNßëœut¥‡½·�6><q[�ö"é+[þz¾:6ÿÑÅÿ³Éðè é|\6¯5�B:3ÕÂ$2 ð�ÿ·È¦ËýÇæîÄ´>»ÊÝéyÞÏÝ}—4ÎdúhQJM ›2ëEFMÌË,H„óçãØ{%;ùÇÁOJ}TÀærÝý ËàPÚ™ 0?ÙÝL`Y�þ4ÅM:/Æ`�KîÄáXæR�ø•Ö¤Ç�üùŽ´­
âчnÞiùªŽ•(MÏ` ñÏË␍å<±Ä¿òé`‰‰¾µ î²ŠÂö Ð1.jÁ'E;0pXÛÕ›SÞÁb¨&Mî}¶k¡ò“{sû+Ápè3ªö5ÐX6ñË©E©Î¯ÏNl)v~mfÌ£ÔbžÕ-:™KÔiIÆÑ¬ù>Œ¦ÎÉ.Ùǹó s÷ÎOà¿ïzå¯,�°µ�¹[f:�î*¬­0–ÍN y1mòú½×½wŠÏÄåÕºf`‹½5ã‹ÔÛO0×úÆÐDb¢,Ñ&Ú¨Âe•-ÑÆ‡ÝÎZù%F?÷îÌdª␍†"uï„ôÉM€ iÚ ¢·«64�¯4µ¥“¢Ø"céB,Ô¬ðŠ’)ééå²;ª©ø(°ÃÐÔ«/«¯‘V®>~Ÿ$Ðaž‹À CÊź#vûI<œÌˆ\ì V4·Œk�°;�g²l#�—­óOµØ*^>Ò;9FÀ \éeOè5"–Jê6YÝœ±WC½IÒTì6•LäG;@*؉ïçhÖÐáÖ´0ewCt0ò0B䤥dÎDXe€%(B«ðÿ£ö”óøù<V Stf”HKK,ûûÜà-␍¡ª£ømô“ �=tÛ¤x›hmHÈž’P}]Ï`ƒ4Û`Rh,ÒÆ4…Ô.–¸|/–ŠnÜû0ø:GV3€íZ�$ŸD+˜Â ã$>`ô¡$ê é–5è’␍cn´q–�„U�Pax>C*EæÎÞq‹é?63.ÈûmªÜ h ôz(€læj8mØTX7O¶ÃÅÊiÝÔ£e„0еo»s3¶Å`gw-ì&¦ýÛhÍúN'Q%¦q¾¤ÈU­ºwuÌ÷×ÕÖnÞ]šê¦4­›fÓ|^ÕÌÞR†<3Þ¤5þ
÷4MQ^ßwµëƒùÑ}“Þ�š$¹†-ž$!hUoË-AÒÆá¾omË:1<˜u½Cj\ýÌ;;÷›šömé±å°�ç£ ÅèóÿÆbØ‚AÛRƒŒ[ÍTС­Ü$Ú·Ú‡f
£Û©0ð%gþ¢­xfðƒs‹·¯ü©7ü82?½nìSWh5hÃh¹'$#‚³�1üèhej™ŽŽ¥AòB—ÊZkɨOÉg (I/“oìý”}¼-%Àás’Ü%ò’O´Š˜VíñŠÕÓKe„>ƒmû3…÷y_[¯¨(x `˜š9ŠBÍw¥þ÷¶3[¡ýb¼9°5xL#šœÔ�Ø�£€�ú×Vgªf¶þ-ô9ª4+B/,ƒ!\c,`ªÀÉ>!‚ç%«lÔ-êǰáШ¾’*‡­>Å °X‹„ÆŽÌ—.„òU*|WÞDÞ�Á3Êtĺ…u^Åæž¥JA¤Ï%f*½P{†ŽÃñQJðwHgèä@N|¬Bd7ù 'òÆ„b/ ç3öòÛPØÛ¼ÄÔñd{šÍÍW—(á3ú5gñ1Ô Ì'”þ<›×%€9ÕܺpÆüwGt¸ãóGl¨]þ,eB=]š˜Ï�kç\K,¤ÅµBÞˆ`FO&êΓ[çœç88á}¡�´Ô�rgÏúø3IaÁƒŒÄ±wÓ!i¬–\�¦Y…[ÛXúÓOC²û—å¬Y­ÃŽÓÝj:›¦’¨Y4-éWB
YŒ žžS mp¤·?+‹“YŒ¶%ú*™šé™ñiŒOœ��faxó�␍�¨£åÌFŸLžÌ34Ü‚9âMáh±^ÌÕ3qƒ¦í¬ÔìßMx]L@08"+ÚBó¦/U5ã«¥Iý¡`Ûo¦¼>‚SÞKH5õ·¶Y‡ÙͳÀt $E„L™Y”␍™ó#,Ol{nÍ"ƒ˜³�3¾åç°¥ÌnyŽŠ¡�ˆŽé�ipÏíæpö÷çpm VžW£ÑVdߢ�‰ÇÕY´ºF²ÖpZ&ÊÛ.< £»há󔆒lÊ�vÑe½xÅNNÝ·>»¾G‰ä: ýÞÙ[“P#¼Ü*aÚFÌ�XB'(K$Ü£WàE3(I³†èWÉWÑX?X&Ú�÷Ɔ}j7þÔp¾¾1oíBš8¹ãÛ\Œå× ¾␍�¨îv¹Çr¯cø|Õ4‹-¦N»Ä|–xAP'õOÀÎJ¡U„ Í áæsä9%h7P‚À+¢xNÇ•‘=ò^ ó}þ¤:0xX÷¼ÕÑò’´Áï;x®Ü¤£ᮓ쿬ԯ
z°s"þ•ùM8×^^SšŒ®°\úC?YDÜâ:l8O?N�Íc~ƒ ˆ�Å␍4Q†Ž<!#˯CI·¥›\oX´™“g7–'\šF-+kÖ%=eÍÃÀ™â ¸‹-½kearë5Ù“Eb.ÇÑ(ÓP08R�Å6扢Ò!xp¿Çöþc@ãÂä{åœyxØ'Ö½zÿÃâ@ã|ŠÜ_žŠkF˘yR.žË�±úZ„šðŽU-“çu’žp,Ña␍OJ––Ê5<ÇÀâäø®ñ�%“?/í”ó’'§æç"ðÁŒ�wãÉÖu¤+]_±Œ[g%Dò6¦XËá#È{x‘zÖ~éñqæhš–c[=•ç²üxõ£EªP’ÅGÍFéOÊS´ÝIx³˜Ðê␍qÚæZ Û”¥‹¼èç;o—Èš³öÝ «Qó0f �Yù�,ô' pNCã'ÊéÌ ␍:|ÏO�Eçͯ¶"c ˆ¡Fÿ%>­‰Ã“iÏED¼†S-ƒ=’␍æ‰<£M ªOÈSűqAÃ/nÊTý$™"m·½"ž•‘ì]H­ø¸/gÄ�‰oºv‘©•�;�·€ó”’˜ èsNdhL涭ା%¸1—5»LÂõ/0tbTë¼¥õC&Kø]ƒ�²|zÙn�
ÜŸ2cK¸?íð°¯ÂªŒÉÇ!äí64«àÔ¨NÍú ‰;_\§wÇnÆLtû³T’–¸AKŠfÅ4ÑÆL¶$)*]pòB”dVhûàéò5ÊÄÌHé€ö×`«'65ÿ†#U—ó–Í)_ ìg´è/ àt¤mÀ¥ùSh�¶0iÛ‹¹±_æ`ûY-ÛýÁÌ'éúdçøWgÀ�k¬Z› X�5V–ñÉJ VzÒp’7␍�ë”ä]›!b©áRÑ:X_žJÞ¼RsFü`ðY댅BŒ@Ñ™}d±öyS8
Õ÷àŒ»•¹/é�pLñÍù4)á�“{6ÇÆÅ*ÿrÀ;å6O�´SañÙÿ@zFÒ6úŦȢ´Žþ£ÕóÂ£íƒ ˆqòþ¤Ô†Æ{ëo?µ’à&€ùäJdãa%=ó}Õ¾£Uú†“‹m÷à†r?<OŒ*;ïáâäpk[dZ1òµxÿÎ9Ždaã¤ôÉk’Cc}[׋–~)˜ÒõàƒiÕ$t…Ôù^W—␍Xƒ½ù`·+ЇÃË¡`ìdÃI×:4®L=SŽÊ}�©+Ö kz(Ûö‹+tÓ·êð†Ô8nuKVu¾¡°·a�@WŸÝ°l¬ßDztg6�ÕOÚ¨– Ø~Oç¯o[[^ÈeA²–å%åß—äªÀ““Va2ÁœÜ¸l¬5’?·±Y^ ^0u�÷™yÖS1ƾ§2=x’Sty±¶Õ‹kÕ¢'< IkIðµ9­îÅl»À–‚
m­ûÈ< ô{ø»␍Œôf9ɇIç©â*�JÜCHsüþ]…¯!o§ø0E8ÌÜfï®{®¾b•ZUr"ˆ‘×P¬¦šRì$Ýä␍v�µ␍zI61¯|‘Ò¡¢T£BB‰üå=i÷0lt\º™?¨nUؼ„³lC²£BM ùZ™I;Æž*¬SÆ%Ÿ&\P MY"xÞ·ˆ]¦gŒÌ‹®(F0“!ÇæDiei©‹Ãm»-.␍ñÀ¦€ìԞǂUÏ0Ä[·Q‡¨·,"␍G"óÛ‹Qgik⢻Ëg¬3<K5Z­Ík•g6º_+‡ÈFh¯ ò{î{|8³™¢¶çÎF¶•(r6¯{ôó�„l³9ûSÑX£ãî…€ñŽýFjÿ‡7F Aixq7°f5rtåX\ÁưÃÏ`u²ZµrÆñ˜Z5\äýDØò^©Çp~íi„º_bá—üû)˜Ñå|�®‹ëÉœ�XeÛdÊŸÒ4a¥yo9æñ‡[p°9EÛ+Õ*zeÎ`úÞú\RK“ˆpòSIMh›9â�à´%œ|“Æ=vÓòö~¦@äÿÓ_�
ƒµ/_;¦ÞX üÚSú£—ìÑÆÐäô¶S^Ǽ^Ö;A BH³´íkúËÎA´Ô+/ÖðqŽ4öÎóÙm�½Å#•fÖõÃWqLŽK2�÷$Ê"C*•îs*6ÎIÔ!÷r;“Sýd<ªÖ$T˜·:Ž`ã²qÕxbJ�Ñ5“]ŒF¸ñJ4È+Þ…ÑáCÆ)nBôÏFü¢ç!w‘]ÖÇø0Ø8;é1H‡\έ�xÝ-H@�ãùîJ�´á…õ(¹[ßÎ�$Á(¼NµÎæR0îf>×û†mÀ„À[L)2ÒZ� Õ…QÆŒaŽ␍¦,žÈM¬Ò¬¯“À î`{‡ªU ¨Çõ‘pêUÚTûµ*“˜Iê*d\š¯}‚ì+·/†=2¾7½-¢P¦òYAh?J�<º†¤…#œkitw�€¶ ,†B٣ɩU§fÄÙ%˜ðb…kê½£d8ŽÄ«Ý[¼/ÉD`üüøFÏ,Lý3 -eû%‘Û rNx΋ODk«㱋ß�{ðõ
’ý1^íù̾iY”Ð-;a¥4ôz–òÅA™•¬ÓýÆt›ëPPaÓ|H ín, ù1ÎÐ'Wç6w%Ürébt‰GMn<’"g2 Ì’czýÏ4`'yöÔ8Ž’ÜN&#8ú ÈpŸBQž™un…=­û|Ô‡ZUš«jþpoTöVµE\Å�Š–J :?…°§ß3ý:傲sOmüž;h'i0‹EÍéµÜâÔÙ˜£úú±Ý K'åwyÃèóK?tQa(Ìâô\Ìæ}¾r;ÝT␍ïSi7µ-øí%…�k•ýÂß©ÂZ´Ë/ç-§þßcíÊ€Û6ÙM±SËxí‹iš‹ì¨„Eù\ðV!ã/~ø'ù¹5×2µéÅ÷ûÎíœBú.:ã’;~8¿÷›£“#&òí§—ZíR»°„ñ2Ø|�|Ìs{CoN=1ü§ÙM­ý’òw%7_øç$µkuºXW°Ÿ«îTÃÝþ¸O¼N‹³ff�Žó£§>Û
endstream endstream
endobj endobj
119 0 obj 119 0 obj
@@ -381,49 +395,18 @@ endobj
[ 117 0 R ] [ 117 0 R ]
endobj endobj
117 0 obj 117 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
121 0 obj 121 0 obj
<< /D [ 119 0 R /XYZ 69.866 813.476 null ] >> << /D [ 119 0 R /XYZ 69.866 813.476 null ] >>
endobj endobj
75 0 obj
<< /D [ 119 0 R /XYZ 70.866 510.077 null ] >>
endobj
118 0 obj 118 0 obj
<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> << /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >>
endobj endobj
126 0 obj 126 0 obj
<< /Filter /FlateDecode /Length 2654 >>
stream
xÚÍZÉŽ$7½×Wä”F¤Ö
TeVðm<}3|ò`|™>Œ/þýÑFŠR,Õh†‘®èIA=’�‹B_~»èËOºý}ûòô�†Ë¢�Þ^¾üç Ò}�KÐ*z‰Z+‡pùòõòó‹ÖZƒ»F�®ÝkúáÕäkôé~z¦ãõLyx}6`Ó•É·ßÒcL¿t™ÿþúŒÆç‰K»S'ç[Ú—w<›47”!×¥ÝÖ¦=.k¤ëG›�ÄÔáúË—Ÿ´
vÑx™ÿþþÛeïÑO?<½yúß¼õ°xŒ»üúõéç_Òƒ§ß�i’Yâå�2ôëÅ:£œ5éú¿—=ýsÖ,ÐjÑ鿌lº\pz…�Êù…ÐÍ»+Û3Wp␍D,˜ 5õgnùnÌÏ=]Á{!áïyfœgÞi=ø¹¾f-Ah 8�pº§o␍i[µ¨=-�®>-:mÔ{Q]Ñ{Qv¾hFÑ”¦£¹ìê.SÚ’ÅÈ(\¶²tý—ÎÂæçÙAX`2­ø"doûR„4ÆTk’¸„økß#/q…bçX k¶çT²�¦¹²Qwu´ÛÐ$¡îe9KfL/‚a‚ÍÝÉ%òN+(␍܆ˆ»Uo&VWÚ hD¼cUšG.÷a6␍ŽF-.̃ñµú+Yƒ~Ô­5iH:ÒA¶º&»a/ÿôMü¥ JžÝ\ÛŠ¾›]êŠ~\R2~5 Ã/0pµYl².ÄQÌú^øu…ž„y]Á/$GV_zÎŽÇlfl5™jû¬ï‚ øÓß�x Z….©N[eí²b+˜1±S@fž-Æ™LÖ'Ë01²’CǤò…Ÿù‚õê:a'ӸŶ§ûæ¬ÏbÈ˸O³Œÿ4Ëø�ex>twËT’· ½àèjšÚ.�ü ëS01qÇaÓ´8úì8<{Á ¯MÊä
¤Î2;‰Õ2r„^‹¹óø¥ú’GĶHbä^EÅ`]é•‚9ÇËC§zó�ÞjLåtöòÔnzúý
qt/šüF†›ÿ…±Ú@1Õ²ájÊ4ÒjºŸ½šG–çŠÞ«Z x�Ñ jÜÀ¿lÎA­_GÒ¡YT4E›œº"6lŒYØv“A?âiV ™>;߉3f­hÁâ¶Å=v/ɞÒ÷nŽÌÌžÇÒFüÈÔäiMÙl†r8±¹¤ü×úä�è㧸V«Dtàr.ˆ.ñtJ‘c²¹šcn?úIä„�Tï l0´ É4çƒä›@©/á¨Óï›öf´Ç ¸,ûiï72W!¡Ëù$€ñLv·jº±‚_·ìýíï£@³ÁzåCœ?‰úlÜrò|ìL“MÖyR4䤄ãyTeÍî1i%Sœ+ÍVg4¡;]óIò„6ꂚ‹¥Û";h[TtfF„Ê®"ÒÎ>7’-&˜Û`ª+øóßX·�?Âv"¿�n dO!TWl$úÎ"Înç?dvù÷¶mv9‚»yïÓâ÷fÓ•J™ï�58QÜJ“ò%¨A…æ—øÐ*&=2ê€n‘s%/#4'Cµ‚
«Ê¦Rür&©ÙˆHùÖ¶øc“†1¶ð+²ÉùíüžhªCpêøÉ¸`ÎH6␍–DbŒç:¼•½WûŽ˜µ:·/»á˜ä¼n+7ž"éQ�³ª©†Êfpg¼“**dØV‘"E‘¼Qǧ‡n'‹*m�æÝ54_Ý„S{¥␍½j¥åS 0U—␍þ
Åëó…‚!ðm¬é€·ÄœñZÛ+¤uJY7Sø×:‡ÞDP(ó;KI &¾å£ùwoôpo÷½d¢qùoi±áúX?×¾ÄR'ç>\Ɉ7Á&
³ ¦|æDð”UÜû¹à9­Mt_2St§QØUs;`ô�Æ…�º(ÇÁ␍ƒS ÌW�a—pkK?ü°Ò»eÉ2×Õr2‘®~³å'6DµØÞ£qÍNˆ¾c jTãÔ»uSB Š|VS-É3ó×Þ­¤ðý² ðæÛTUŽÖ â-S{KãÍ¥ójY$4íz›Í­wÊ,8ÔÑn¬+Ф’‚aÌá¦$q¬Ie †6J © §!v;‘;;PÑÙÇa‹º­|K‘{ΗDžs‚7p]UÖ¡“AåÖ2NM™ÛH¸’DãØ9ƒ)ŠBŒcÖý!}|Ä2(±¿Ÿ¯.-D…àþÕ¥‰AÇY½H`?e/Úù¾f–Cëå/¬0OUšµ gü¢’?œk›Oƒ mV>Ï¥�8Ãjj;M=ÒRwÖ§´¶àV“/ùµÄO"ÕJ|Ô[ÿ|%6ïŠ pN¹%| �f¼CFlc­Ù<Ú9õ9+œ»ÂåÉ(2ù¡abü­WÞ9EinoÅi"qòÐ�ó|²†Òß>Ôb²Ñ³€Žƒwºô¢Þ´¸¨å€ÃE4›K½Xè-öLŸÏv9ð¡+èçr²Dš2Sl ÿ ÿ�Ccü�ye4`␍R¿—z•?GmÍq†ÚY(µomxžl×Þ†jÚˆ:�‹;ØKo²Ë|€'Ø”.'ðÔq\8ÇÈ3ýMLõŸ„i« ,ùk5FÙ è ñaì>Î�E¸ÊßL†óØ�¥Üuž2r␍Êž "r(¹Ú¶q‹¹!ë–8óá¹l÷ÞêXN¹ê™wý›0Ônº#~Âq8âØ;º; ²ëßBØ@ò0¡Â�òJþ ZP&trâ(Öp‚•␍
kß;§J>¤¼�¿ºk|àŒhTRFǧæ/Ÿ<E�)‡Žçœi\_Yi¦ý67˜Ê*�‹EƒÈ€ó„ZPˆÄÄ‘|k}cINfêõH‚ónv@@£òþ$jÓà=ù™˜ã§$ N,'%O’ôÒ·�~IéSáN
9ŒÝkÚjXÉîˆ$„¾Ýaê7t÷ÍC$>�üù¼}ã;ް°Qi<ùéÐ4_×g\7:ÆèMŽª¸Éaø¬…Ø0ä^W_^ˆÖ‹xò.>5iQ>Àá®�U6àÉ]�ƒk␍�S™šSS%Æ•�8c÷/„€:Nz’Ák…Xq}Û§³ÉécoØHÏnxŒoó1}ϘýãÎ+¼ ßwÒñÇPEôˆ•#qç~}”3$ÙʲHùsÒ|�ñ�¦uHqÛœÜø8±%•ncã‘hðC‚ä.‡ÔÍXÀØ>Ÿ"‰L]²6tYK-ÈgÜõ ¥·iKÈ�ûµ;­>Ú�Ü8§Xôï±r£"žL�DZ#‹œíFo-ŸÖ]´¿„Äl kÞm�íR¶é¦ÁØw?½˜?f¤O¢§*DŒ0Ãtx0|„Yû%¹js¢^kØ~Uø+Í¢æC�ÖhÍ¥ÕÀÛø!(ì/y¯©’äpù}eK#Æ¥ûG=òkJ'¾ü6Xô{`;•ñx®Ç–âU§È#ìèÞ[�Y»ÝîÐXϯà½Ò K ÍNßû~ß%³4).ör
ž»#à9m�ã *kpžfö*´ÿ>{¾¦
endstream
endobj
125 0 obj
<< /Type /Page /Contents 126 0 R /Resources 124 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 128 0 R >>
endobj
128 0 obj
[ 123 0 R ]
endobj
123 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >>
endobj
127 0 obj
<< /D [ 125 0 R /XYZ 69.866 813.476 null ] >>
endobj
75 0 obj
<< /D [ 125 0 R /XYZ 70.866 570.185 null ] >>
endobj
124 0 obj
<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
132 0 obj
<< /Filter /FlateDecode /Length 2923 >> << /Filter /FlateDecode /Length 2923 >>
stream stream
xÚ­[ÉŽ$7½çW䔬] xÚ­[ÉŽ$7½çW䔬]
@@ -435,58 +418,58 @@ xڭ[Ɏ$7
(Àý´Œ‹ u.,r#ì6FÔšMCþ…XÈ0ó„#žÅcwãÁ (Àý´Œ‹ u.,r#ì6FÔšMCþ…XÈ0ó„#žÅcwãÁ
o†ÞªüˆÙ¬y )…�†I+ÎÕ°r%¬úŠCä…³šòЫx$�\I2è†Æ‚§µbõXä�|Y-Š<n¥ÈÓÑÓÙØd5›Î�“Ûzì€x�T”5°ª¥'Zÿn;àbóäÕ¾·°1åàÆóqÑæ£~x ŸÿÕ|Ç´ËI0ÂEw�NLÑÛy®æ¥�Æ¿^Í3ëúcQ¢  í‘c/·ì±a½HR=¸iNœ‹ƒùçÍ'Ѿé¡:v¯$å òÌǸíQ*L·ê¸È› C÷Zªq,0'ÿ* ²Ú #SžçÞ=t†¨Of7V¦o劔뭬ÊR¯ÓôiYÌP] ‚žõd>�FÈf’Âùƒ Ä%ƒ,H6£×Èb»U q«� tþ¥␍„ Ò7À‰Ë0À9Yõo]w¯©V¥Þ¯$Hã~b;¤ÙÛš7Âúé‹·j$N!„o|×Eúº‡k²5jHös␍�M'ļF¤ý¹6s‘Öîþí$&u°ž;#`4� �V¬m „÷e›ü坯 ªŠÑnijÇæT÷æ­d/‡rÁ§R £µˆú`Ú6¯…Y‹Ú 9Njè/jçGP<!¸ð½š¨kí9ÇÍÅŽ?Ú)ÚÖ´³�8ÛYJXÑ·YR¤îiº�@®‰ª¯-à ´²|a—näæ o†ÞªüˆÙ¬y )…�†I+ÎÕ°r%¬úŠCä…³šòЫx$�\I2è†Æ‚§µbõXä�|Y-Š<n¥ÈÓÑÓÙØd5›Î�“Ûzì€x�T”5°ª¥'Zÿn;àbóäÕ¾·°1åàÆóqÑæ£~x ŸÿÕ|Ç´ËI0ÂEw�NLÑÛy®æ¥�Æ¿^Í3ëúcQ¢  í‘c/·ì±a½HR=¸iNœ‹ƒùçÍ'Ѿé¡:v¯$å òÌǸíQ*L·ê¸È› C÷Zªq,0'ÿ* ²Ú #SžçÞ=t†¨Of7V¦o劔뭬ÊR¯ÓôiYÌP] ‚žõd>�FÈf’Âùƒ Ä%ƒ,H6£×Èb»U q«� tþ¥␍„ Ò7À‰Ë0À9Yõo]w¯©V¥Þ¯$Hã~b;¤ÙÛš7Âúé‹·j$N!„o|×Eúº‡k²5jHös␍�M'ļF¤ý¹6s‘Öîþí$&u°ž;#`4� �V¬m „÷e›ü坯 ªŠÑnijÇæT÷æ­d/‡rÁ§R £µˆú`Ú6¯…Y‹Ú 9Njè/jçGP<!¸ð½š¨kí9ÇÍÅŽ?Ú)ÚÖ´³�8ÛYJXÑ·YR¤îiº�@®‰ª¯-à ´²|a—näæ
w”[5|ÞŒX̱}’µk-¶«Ìgä¢=wZd¿a“Ú{qT'””k¤” 8%K.'øvs†n@V¬[½Ç´3¸ƒi 挫 w”[5|ÞŒX̱}’µk-¶«Ìgä¢=wZd¿a“Ú{qT'””k¤” 8%K.'øvs†n@V¬[½Ç´3¸ƒi 挫
¬'ckYˆI·×”ýB ‰Jz4z¹bq(¬v¯^¬å"\L«�¡åË"¿y5œ)苦<ŽËŽ…´/2k[IgÏÌ$¢Üª*©|Í©;3’·ÂtÆšCò¤éT�ÁDEdê1h7V!eó„,_ç…׈û=AxRºã—‚iqÙ* ņ~AªŠµ{×5Ë1Qd¢Þ@Øu¬ !SÉ–k¯ôÑ=K‘•#ÐwÚÊ–çX4žPíE:¥4çlalè©;éé.  ¬ã5/¸I±�/J‹ f̱¾Ž�Ð~å␍véý­Ô‰9e5)áo'«f¶Þ˜'g˜…‘G[RŸöði&aŒ>ž™‘–5*íØ¤ ␍×1ÔÒ¸¥� #!ŸÒÛTÅPv�D9/B¯�íìVÆ‘¸]0J†i²B Lrª<x�J‘‹¯ë½Ã•nïòŠŽƒ{&²ß#åwor [+(Q1ô/nó îv¥f�ÐG‹Q1¦î˜ “ Ú}òÊ®ü=ªLº»ô]HÑ•„ùú/%°–߯.û[ÛõÄGÕz)ØŒMõ¯UV÷Ô 'á�Vâb-Y÷èfÉ(ì4-ÊAà© ¼"È�¡}¡Fƒ0Ên7qò�ÖIÉܯäúÒ�Wi«~S>—CÛÉklÌÖzØ\dz[‘AÒ¼‡Ü`ðcOîú ÍÝŒ,ÀÅ”Fõ{a7´�Ö„[–oÈö_ô`êÚôÔ'„ËE g+m ¡CNòƒÁ»µ$¿'RÕ/°À‘÷w‹Ký²è“œDIîI~{¯˜êjn<Ç­PBÛ$u]jŠÜ{±qµƒ£È�êÀrÒݦ—ß‘]Ï·þŽ“.�–x6VÈ^Yµùª“‡dg␍NRÔ"¬Ñã0^ÄÇïÇÇéÿE„¡ ¬'ckYˆI·×”ýB ‰Jz4z¹bq(¬v¯^¬å"\L«�¡åË"¿y5œ)苦<ŽËŽ…´/2k[IgÏÌ$¢Üª*©|Í©;3’·ÂtÆšCò¤éT�ÁDEdê1h7V!eó„,_ç…׈û=AxRºã—‚iqÙ* ņ~AªŠµ{×5Ë1Qd¢Þ@Øu¬ !SÉ–k¯ôÑ=K‘•#ÐwÚÊ–çX4žPíE:¥4çlalè©;éé.  ¬ã5/¸I±�/J‹ f̱¾Ž�Ð~å␍véý­Ô‰9e5)áo'«f¶Þ˜'g˜…‘G[RŸöði&aŒ>ž™‘–5*íØ¤ ␍×1ÔÒ¸¥� #!ŸÒÛTÅPv�D9/B¯�íìVÆ‘¸]0J†i²B Lrª<x�J‘‹¯ë½Ã•nïòŠŽƒ{&²ß#åwor [+(Q1ô/nó îv¥f�ÐG‹Q1¦î˜ “ Ú}òÊ®ü=ªLº»ô]HÑ•„ùú/%°–߯.û[ÛõÄGÕz)ØŒMõ¯UV÷Ô 'á�Vâb-Y÷èfÉ(ì4-ÊAà© ¼"È�¡}¡Fƒ0Ên7qò�ÖIÉܯäúÒ�Wi«~S>—CÛÉklÌÖzØ\dz[‘AÒ¼‡Ü`ðcOîú ÍÝŒ,ÀÅ”Fõ{a7´�Ö„[–oÈö_ô`êÚôÔ'„ËE g+m ¡CNòƒÁ»µ$¿'RÕ/°À‘÷w‹Ký²è“œDIîI~{¯˜êjn<Ç­PBÛ$u]jŠÜ{±qµƒ£È�êÀrÒݦ—ß‘]Ï·þŽ“.�–x6VÈ^Yµ*ë’�58IQ‹°F�Ã4?šðýø8ýÜ„Ÿ
endstream endstream
endobj endobj
131 0 obj 125 0 obj
<< /Type /Page /Contents 132 0 R /Resources 130 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 134 0 R >> << /Type /Page /Contents 126 0 R /Resources 124 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 128 0 R >>
endobj endobj
134 0 obj 128 0 obj
[ 129 0 R ] [ 123 0 R ]
endobj endobj
129 0 obj 123 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
133 0 obj 127 0 obj
<< /D [ 131 0 R /XYZ 69.866 813.476 null ] >> << /D [ 125 0 R /XYZ 69.866 813.476 null ] >>
endobj endobj
130 0 obj 124 0 obj
<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> << /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >>
endobj endobj
138 0 obj 132 0 obj
<< /Filter /FlateDecode /Length 847 >> << /Filter /FlateDecode /Length 847 >>
stream stream
xÚ¥VÍnÛ0 ¾û)ôQõGI‰]èm[nEOÖËzØ.{ýQ"eK޳v xÚ¥VÍnÛ0 ¾û)ôQõGI‰]èm[nEOÖËzØ.{ýQ"eK޳v
Õ‚HJÉ�d”xJ<tŠ¿çKw7› zÙ{ã�¸|ë4 Õ‚HJÉ�d”xJ<tŠ¿çKw7› zÙ{ã�¸|ë4
”Ð"(½Q) F‹Ë›x:*e´R†¨p'\f°io<ž£LÅá m«îl:>£ØàÂmú§ýp0Ö'ÞOÈ8)Ÿß8X´␍YeèùXYç;p?³5ÂTax¾<vJ×+#¶ßŸ¯â–èóCwé~l]½—Á‚xyëžžQð×#Ù>Š_YõM8°œÅýwñ¥û´v`­d¯ð¯‰°“:|”àûá~"7ø-Ь­ì!lõ­)<€á5EŠ’äÊVqÐqxMHyÊÂ1 ñ$É͹¨ãšp�*3üÞp¬r–Ö<èD=fÍœ½¼—ód”SWžÎÉ™ ùi{æ0$ È«tL‹h$HÁä´u"Úõ42bXnˆƒ)3à3bŸ(¬S¥­KH3ïFr¡Žt`� C£\êMRR«ŠR� >'±Ô s]¯q-1ª�Æ#ª¦ë�mŽ«}¾÷Äž=H‰>l;­|—=␍E7|vZºpƒÎXq�F݆…(Äʪæ¡)ÇmÅW}n ù(^÷½®&=‡aõVÛ5Á|{fúÄ fÂ4q®‹ºÝ¾Üp>w7;3ß©×U|§“�$ÏLD¿R•½Ð|»ªSlè½þŸpïñ×Ù¯#¡uÉ—2ž–çW—Òew³í÷Û!w]•º®_ÊÃÒ€©;ˆ"ç4S®…ɬ(CƆ~ïõbAÜjÅmZ]*cNWà�2QÕ'iP:BÓZ+‡®ýùSÉù`$ªw«lLayÅú}ðU] d␍q�óÊNªš… ”Ð"(½Q) F‹Ë›x:*e´R†¨p'\f°io<ž£LÅá m«îl:>£ØàÂmú§ýp0Ö'ÞOÈ8)Ÿß8X´␍YeèùXYç;p?³5ÂTax¾<vJ×+#¶ßŸ¯â–èóCwé~l]½—Á‚xyëžžQð×#Ù>Š_YõM8°œÅýwñ¥û´v`­d¯ð¯‰°“:|”àûá~"7ø-Ь­ì!lõ­)<€á5EŠ’äÊVqÐqxMHyÊÂ1 ñ$É͹¨ãšp�*3üÞp¬r–Ö<èD=fÍœ½¼—ód”SWžÎÉ™ ùi{æ0$ È«tL‹h$HÁä´u"Úõ42bXnˆƒ)3à3bŸ(¬S¥­KH3ïFr¡Žt`� C£\êMRR«ŠR� >'±Ô s]¯q-1ª�Æ#ª¦ë�mŽ«}¾÷Äž=H‰>l;­|—=␍E7|vZºpƒÎXq�F݆…(Äʪæ¡)ÇmÅW}n ù(^÷½®&=‡aõVÛ5Á|{fúÄ fÂ4q®‹ºÝ¾Üp>w7;3ß©×U|§“�$ÏLD¿R•½Ð|»ªSlè½þŸpïñ×Ù¯#¡uÉ—2ž–çW—Òew³í÷Û!w]•º®_ÊÃÒ€©;ˆ"ç4S®…ɬ(CƆ~ïõbAÜjÅmZ]*cNWà�2QÕ'iP:BÓZ+‡®ýùSÉù`$ªw«lLayÅú}ðU] d␍q�óÊNªš…
Ø•aw¬«îšÛ¹KesÓS!Û¼GÐè ‰ô’‹ä�cÝ>´=Q?„¥ž¥�Ï›³×IþžY¦—Þ~0C�®ÑK}•æVEóæì) hdÙ‰µãqaíÅæ¿â²¾ë·lhFÌõ {¦M#«H4ÚB�¤q#¿NÙÎ/_P ­ŽÂ:‰×•48‹3Ú'a¿AG鬹6kæñ÷æoÞT; Ø•aw¬«îšÛ¹KesÓS!Û¼GÐè ‰ô’‹ä�cÝ>´=Q?„¥ž¥�Ï›³×IþžY¦—Þ~0C�®ÑK}•æVEóæì) hdÙ‰µãqaíÅæ¿â²¾ë·lhFÌõ {¦M#«H4ÚB�¤q#¿NÙÎ/_P ­ŽÂ:‰×•48ƒ3Ú'a¿AG鬹6kæñ÷æoÝ—T9
endstream endstream
endobj endobj
137 0 obj 131 0 obj
<< /Type /Page /Contents 138 0 R /Resources 136 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 139 0 R >> << /Type /Page /Contents 132 0 R /Resources 130 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 133 0 R >>
endobj endobj
139 0 obj 133 0 obj
[ 135 0 R ] [ 129 0 R ]
endobj endobj
135 0 obj 129 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
91 0 obj 91 0 obj
<< /D [ 137 0 R /XYZ 69.866 813.476 null ] >> << /D [ 131 0 R /XYZ 69.866 813.476 null ] >>
endobj endobj
136 0 obj 130 0 obj
<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> << /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >>
endobj endobj
140 0 obj 134 0 obj
[ 1 [ 583 ] 3 [ 572 488 ] 6 [ 511 307 508 ] 11 [ 565 264 ] 14 [ 519 264 848 565 550 572 ] 21 [ 364 ] 23 [ 320 ] 30 [ 623 ] 34 [ 565 ] 42 [ 784 ] 44 [ 679 588 ] 48 [ 577 557 ] 56 [ 600 ] 60 [ 600 ] 62 [ 600 ] 67 [ 600 ] 90 [ 273 ] 92 [ 293 ] 112 [ 328 328 ] ] [ 1 [ 583 ] 3 [ 572 488 ] 6 [ 511 307 508 ] 11 [ 565 264 ] 14 [ 519 264 848 565 550 572 ] 21 [ 364 ] 23 [ 320 ] 30 [ 623 ] 34 [ 565 ] 42 [ 784 ] 44 [ 679 588 ] 48 [ 577 557 ] 56 [ 600 ] 60 [ 600 ] 62 [ 600 ] 67 [ 600 ] 90 [ 273 ] 92 [ 293 ] 112 [ 328 328 ] ]
endobj endobj
142 0 obj 136 0 obj
<< /Filter /FlateDecode /Length 23 >> << /Filter /FlateDecode /Length 23 >>
stream stream
xÚ‹žý•IAç@—ƒÃ*_| xÚ‹žý•IAç@—ƒÃ*_|
endstream endstream
endobj endobj
143 0 obj 137 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2729 >> << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2729 >>
stream stream
xÚ¥W PS×¾×pŽ€iÒKK®æFPkT\ª¯qC+U±µ¸` ‚ ›‘H#Z«,¢.ˆ¨àV±E­¢Å¥Ê�E¬µO­ÖÚVkç¿ôÀô�¸¼÷úf:Ó™wgnæäžsþÿ»ßÿý_rXÆÎŽaYV<}n@À°ÀI³fë´IÁa±ñ^� aº¨pÛì\Ñ]ôÈ‘*Å~ŒØŸ•RFz‰*‰8ÀNy»ÄûðÒ^ÄY*©“Ú31÷³+úý)êÏ0ìB'Ûg©3`©;IWHÚJ14gÿ„’ãç.^mùËÜ£‡��¯U…è­ÓyªÔɪ°ØdUœ!,<!*<L§Òh#¢b£¢ô±*}„*!R«2ê␍šxOU„^¯‹3èéðX�**6<,.L­ÓÚVi␍½ax€>.Ùµ42A5j¤÷xM­ xÚ¥W PS×¾×pŽ€iÒKK®æFPkT\ª¯qC+U±µ¸` ‚ ›‘H#Z«,¢.ˆ¨àV±E­¢Å¥Ê�E¬µO­ÖÚVkç¿ôÀô�¸¼÷úf:Ó™wgnæäžsþÿ»ßÿý_rXÆÎŽaYV<}n@À°ÀI³fë´IÁa±ñ^� aº¨pÛì\Ñ]ôÈ‘*Å~ŒØŸ•RFz‰*‰8ÀNy»ÄûðÒ^ÄY*©“Ú31÷³+úý)êÏ0ìB'Ûg©3`©;IWHÚJ14gÿ„’ãç.^mùËÜ£‡��¯U…è­ÓyªÔɪ°ØdUœ!,<!*<L§Òh#¢b£¢ô±*}„*!R«2ê␍šxOU„^¯‹3èéðX�**6<,.L­ÓÚVi␍½ax€>.Ùµ42A5j¤÷xM­
@@ -499,10 +482,10 @@ B*
(ˆ:T§è¼xòAÇÙeó+¿ªA—T«x2|Ìp‚¼ÏÍz”$\[…ZVVDÌVŒŸHýfímT+g…¢1'îiŸð2#e[ÙGâv‰ø˜"¡¼wçâ•¢0qîÁ¨ƒsF²RS“ØÖÄÖwÂ-Še3ÅñŠ!<‚~$.$b)&ÑÄãâPp¶4q¾šºÊ6Tl*§êEÐoïÅ?òmGÞóÔg/[Cåéä5”—•æXÅKͬzW"&[9òƒ|8Þo¿ŽŠ'·ZÓÉ3ßX¬´êPû�êm|gI�:m]‚9CÈY<eìT²•h^OöFât,+¥Ü÷¯3Œl…˜+=\Ë ?zh“´'~$f ※ût'¦M@Ѐõ¤?‚>¢Èåâ·»‡!’õ|QÔZYpø޶KÄKb&ý&·9äNX2„8´{åTYÓgÊ\³†Jå5âL& tŒÁ÷>55„(HËù„~Þžg)°lnÕ^øŽo¯^äc2¯¤ÈÇ¥ÏCÛö¼ 8öH%·M\uAÙÞM‚e‹¥ðSÅž¤‚e¡+õqk•æ sÚjÅò++”2RE—Ã!à\ªARyñÿ±M>ûqÄ߉n!ýçØÖzI+,àÈ jbÞ_y␍ϸ½ú€LQa+¨²èÛ½Àÿ^ðê·‰˜¸;ò:YL,Š—ûA]/�½¢ƒBÁ~n‹r:þzl%éCdŠe¶ò+SÞŠ#ü`úçÕ�n­ÜÁ^‡Å@#ØŽ}E^:˜˜‘¶ƒ�ÙÅ”'¢M0 |óÊó0‰Ìwnê­Œtî©CŽ´O½c}Ÿú�RéÅO¶K_[¸9,ÍË (ˆ:T§è¼xòAÇÙeó+¿ªA—T«x2|Ìp‚¼ÏÍz”$\[…ZVVDÌVŒŸHýfímT+g…¢1'îiŸð2#e[ÙGâv‰ø˜"¡¼wçâ•¢0qîÁ¨ƒsF²RS“ØÖÄÖwÂ-Še3ÅñŠ!<‚~$.$b)&ÑÄãâPp¶4q¾šºÊ6Tl*§êEÐoïÅ?òmGÞóÔg/[Cåéä5”—•æXÅKͬzW"&[9òƒ|8Þo¿ŽŠ'·ZÓÉ3ßX¬´êPû�êm|gI�:m]‚9CÈY<eìT²•h^OöFât,+¥Ü÷¯3Œl…˜+=\Ë ?zh“´'~$f ※ût'¦M@Ѐõ¤?‚>¢Èåâ·»‡!’õ|QÔZYpø޶KÄKb&ý&·9äNX2„8´{åTYÓgÊ\³†Jå5âL& tŒÁ÷>55„(HËù„~Þžg)°lnÕ^øŽo¯^äc2¯¤ÈÇ¥ÏCÛö¼ 8öH%·M\uAÙÞM‚e‹¥ðSÅž¤‚e¡+õqk•æ sÚjÅò++”2RE—Ã!à\ªARyñÿ±M>ûqÄ߉n!ýçØÖzI+,àÈ jbÞ_y␍ϸ½ú€LQa+¨²èÛ½Àÿ^ðê·‰˜¸;ò:YL,Š—ûA]/�½¢ƒBÁ~n‹r:þzl%éCdŠe¶ò+SÞŠ#ü`úçÕ�n­ÜÁ^‡Å@#ØŽ}E^:˜˜‘¶ƒ�ÙÅ”'¢M0 |óÊó0‰Ìwnê­Œtî©CŽ´O½c}Ÿú�RéÅO¶K_[¸9,ÍË
endstream endstream
endobj endobj
141 0 obj 135 0 obj
<< /Type /FontDescriptor /FontName /SSHRCC+IBMPlexSans-Italic /Flags 4 /FontBBox [ -245 -245 1180 1120 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle -12 /StemV 91 /XHeight 516 /FontFile3 143 0 R /CIDSet 142 0 R >> << /Type /FontDescriptor /FontName /SSHRCC+IBMPlexSans-Italic /Flags 4 /FontBBox [ -245 -245 1180 1120 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle -12 /StemV 91 /XHeight 516 /FontFile3 137 0 R /CIDSet 136 0 R >>
endobj endobj
144 0 obj 138 0 obj
<< /Filter /FlateDecode /Length 496 >> << /Filter /FlateDecode /Length 496 >>
stream stream
xÚ…“Ñ‹â0ÆßûWä÷¡kÚ´ÛÝE­ÊõawÅÊq¯5½‚¦%­pþ÷—ä«»pœ\ÁÂÏù&óÍd:ú¶)ùjöŠGζÔ5#)Ìߪ6�–�¼œI÷ïDŠÔ-Ú½²�idI=çŲÐuÿ`Å…–§‹¢›êߢký%quØxG?òü¾Íó°X¼mNô»¬t}uªeÈ]Þ®îOVÿ?)³qv7ÎüQ?Ètu£_YôÈ9·¬´Ê›³ë³ &ƒW6¹¹?ÔZ™Á0Û;ûA3UË~ ÿ–g;0—\^»žÎ…>4ÁtÊ&[ìzsõ΂ɇQdj}dã».­ª¼´í‰œ#ƃٌ):ØÃí¬Þ«3±‰B¡l´î¯÷§ñ•µ»¶ÄbÏLËFQ×V’L¥�Lí øŒM×ö™¤Õ_q1¤íòWe¼<²rΟ¢™'ŠA H€ž@)(=�žAhzå Ð xÚ…“Ñ‹â0ÆßûWä÷¡kÚ´ÛÝE­ÊõawÅÊq¯5½‚¦%­pþ÷—ä«»pœ\ÁÂÏù&óÍd:ú¶)ùjöŠGζÔ5#)Ìߪ6�–�¼œI÷ïDŠÔ-Ú½²�idI=çŲÐuÿ`Å…–§‹¢›êߢký%quØxG?òü¾Íó°X¼mNô»¬t}uªeÈ]Þ®îOVÿ?)³qv7ÎüQ?Ètu£_YôÈ9·¬´Ê›³ë³ &ƒW6¹¹?ÔZ™Á0Û;ûA3UË~ ÿ–g;0—\^»žÎ…>4ÁtÊ&[ìzsõ΂ɇQdj}dã».­ª¼´í‰œ#ƃٌ):ØÃí¬Þ«3±‰B¡l´î¯÷§ñ•µ»¶ÄbÏLËFQ×V’L¥�Lí øŒM×ö™¤Õ_q1¤íòWe¼<²rΟ¢™'ŠA H€ž@)(=�žAhzå Ð
@@ -511,21 +494,21 @@ xڅ
endstream endstream
endobj endobj
115 0 obj 115 0 obj
<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SSHRCC+IBMPlexSans-Italic /DescendantFonts [ 145 0 R ] /ToUnicode 144 0 R >> << /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SSHRCC+IBMPlexSans-Italic /DescendantFonts [ 139 0 R ] /ToUnicode 138 0 R >>
endobj endobj
145 0 obj 139 0 obj
<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SSHRCC+IBMPlexSans-Italic /FontDescriptor 141 0 R /W 140 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> << /Type /Font /Subtype /CIDFontType0 /BaseFont /SSHRCC+IBMPlexSans-Italic /FontDescriptor 135 0 R /W 134 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj endobj
146 0 obj 140 0 obj
[ 1 [ 534 ] 3 [ 580 503 580 549 324 528 ] 11 [ 568 250 250 527 272 873 568 560 580 580 367 487 351 568 492 768 507 499 464 641 653 621 671 583 559 695 707 400 510 634 501 812 707 708 606 708 640 581 572 678 609 891 613 593 580 600 ] 59 [ 600 600 600 600 600 600 600 600 600 ] 80 [ 694 891 399 ] 86 [ 588 780 ] 89 [ 565 272 ] 92 [ 292 272 292 ] 101 [ 474 ] 103 [ 475 ] 112 [ 335 335 ] 118 [ 383 ] 122 [ 927 ] 142 [ 600 ] 157 [ 396 ] 194 [ 567 ] 200 [ 534 ] 314 [ 560 ] 344 [ 640 ] 355 [ 568 ] 476 [ 708 ] 515 [ 678 ] ] [ 1 [ 534 ] 3 [ 580 503 580 549 324 528 ] 11 [ 568 250 250 527 272 873 568 560 580 580 367 487 351 568 492 768 507 499 464 641 653 621 671 583 559 695 707 400 510 634 501 812 707 708 606 708 640 581 572 678 609 891 613 593 580 600 ] 59 [ 600 600 600 600 600 600 600 600 600 ] 80 [ 694 891 399 ] 86 [ 588 780 ] 89 [ 565 272 ] 92 [ 292 272 292 ] 101 [ 474 ] 103 [ 475 ] 112 [ 335 335 ] 118 [ 383 ] 122 [ 927 ] 142 [ 600 ] 157 [ 396 ] 194 [ 567 ] 200 [ 534 ] 314 [ 560 ] 344 [ 640 ] 355 [ 568 ] 476 [ 708 ] 515 [ 678 ] ]
endobj endobj
148 0 obj 142 0 obj
<< /Filter /FlateDecode /Length 44 >> << /Filter /FlateDecode /Length 44 >>
stream stream
xÚ‹Ÿÿæ`xœÇÊpH��‰�…��7 1p€is / xÚ‹Ÿÿæ`xœÇÊpH��‰�…��7 1p€is /
endstream endstream
endobj endobj
149 0 obj 143 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 5351 >> << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 5351 >>
stream stream
xÚ­Y \SWº¿1¹÷¢†¨¹ÞTˆÞ±¸�â xÚ­Y \SWº¿1¹÷¢†¨¹ÞTˆÞ±¸�â
@@ -556,10 +539,10 @@ x
KÜ+þKÙ}£²§¹‡¥gÍ¥²fÛ¥³ô„ÿoç]w› KÜ+þKÙ}£²§¹‡¥gÍ¥²fÛ¥³ô„ÿoç]w›
endstream endstream
endobj endobj
147 0 obj 141 0 obj
<< /Type /FontDescriptor /FontName /KKCYEW+IBMPlexSans /Flags 4 /FontBBox [ -260 -245 1241 1119 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle 0 /StemV 91 /XHeight 516 /FontFile3 149 0 R /CIDSet 148 0 R >> << /Type /FontDescriptor /FontName /KKCYEW+IBMPlexSans /Flags 4 /FontBBox [ -260 -245 1241 1119 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle 0 /StemV 91 /XHeight 516 /FontFile3 143 0 R /CIDSet 142 0 R >>
endobj endobj
150 0 obj 144 0 obj
<< /Filter /FlateDecode /Length 736 >> << /Filter /FlateDecode /Length 736 >>
stream stream
xÚu•]kâ@†ïó+f/ xÚu•]kâ@†ïó+f/
@@ -572,22 +555,22 @@ J
endstream endstream
endobj endobj
88 0 obj 88 0 obj
<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /KKCYEW+IBMPlexSans /DescendantFonts [ 151 0 R ] /ToUnicode 150 0 R >> << /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /KKCYEW+IBMPlexSans /DescendantFonts [ 145 0 R ] /ToUnicode 144 0 R >>
endobj endobj
151 0 obj 145 0 obj
<< /Type /Font /Subtype /CIDFontType0 /BaseFont /KKCYEW+IBMPlexSans /FontDescriptor 147 0 R /W 146 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> << /Type /Font /Subtype /CIDFontType0 /BaseFont /KKCYEW+IBMPlexSans /FontDescriptor 141 0 R /W 140 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj endobj
152 0 obj 146 0 obj
[ 1 [ 569 ] 3 [ 608 517 608 562 361 552 ] 11 [ 596 286 286 577 303 894 596 564 608 608 404 504 383 596 538 841 ] 28 [ 534 518 685 667 651 697 607 585 719 724 432 559 696 530 819 724 714 656 ] 47 [ 674 624 584 694 650 973 ] 55 [ 607 600 ] 59 [ 600 600 600 600 600 600 ] 66 [ 600 600 ] 80 [ 721 ] 82 [ 403 ] 86 [ 588 780 ] 90 [ 310 ] 92 [ 330 310 ] 101 [ 535 ] 103 [ 539 ] 112 [ 338 338 ] 118 [ 460 ] 194 [ 647 ] 200 [ 569 ] 314 [ 564 ] 344 [ 692 ] 355 [ 596 ] 515 [ 694 ] ] [ 1 [ 569 ] 3 [ 608 517 608 562 361 552 ] 11 [ 596 286 286 577 303 894 596 564 608 608 404 504 383 596 538 841 ] 28 [ 534 518 685 667 651 697 607 585 719 724 432 559 696 530 819 724 714 656 ] 47 [ 674 624 584 694 650 973 ] 55 [ 607 600 ] 59 [ 600 600 600 600 600 600 ] 66 [ 600 600 ] 80 [ 721 ] 82 [ 403 ] 86 [ 588 780 ] 90 [ 310 ] 92 [ 330 310 ] 101 [ 535 ] 103 [ 539 ] 112 [ 338 338 ] 118 [ 460 ] 194 [ 647 ] 200 [ 569 ] 314 [ 564 ] 344 [ 692 ] 355 [ 596 ] 515 [ 694 ] ]
endobj endobj
154 0 obj 148 0 obj
<< /Filter /FlateDecode /Length 39 >> << /Filter /FlateDecode /Length 39 >>
stream stream
xÚ‹Ÿÿÿýÿ¿?ço`X¬ÃÊpˆ��70`2E xÚ‹Ÿÿÿýÿ¿?ço`X¬ÃÊpˆ��70`2E
' '
endstream endstream
endobj endobj
155 0 obj 149 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 4888 >> << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 4888 >>
stream stream
xÚ�9 TW¶Õ4U´)�¦[é6U␍¸ ;Å€Œ¬j ʾŠì:P“‰ùÎ÷ëG£ƒKFÄ%n ¢¢¢b0¸q4&5.xPÆx‹¹øÿ8?™9Ι8ÝMßzwß xÚ�9 TW¶Õ4U´)�¦[é6U␍¸ ;Å€Œ¬j ʾŠì:P“‰ùÎ÷ëG£ƒKFÄ%n ¢¢¢b0¸q4&5.xPÆx‹¹øÿ8?™9Ι8ÝMßzwß
@@ -614,10 +597,10 @@ ZQG
Íÿ“+ø¢ Íÿ“+ø¢
endstream endstream
endobj endobj
153 0 obj 147 0 obj
<< /Type /FontDescriptor /FontName /OANFAB+IBMPlexSans-Bold /Flags 4 /FontBBox [ -307 -275 1332 1150 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle 0 /StemV 103 /XHeight 525 /FontFile3 155 0 R /CIDSet 154 0 R >> << /Type /FontDescriptor /FontName /OANFAB+IBMPlexSans-Bold /Flags 4 /FontBBox [ -307 -275 1332 1150 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle 0 /StemV 103 /XHeight 525 /FontFile3 149 0 R /CIDSet 148 0 R >>
endobj endobj
156 0 obj 150 0 obj
<< /Filter /FlateDecode /Length 690 >> << /Filter /FlateDecode /Length 690 >>
stream stream
xÚ}•]kâPEßó+î<ÚkîWÒ4ðaÚRË0¯6¹vš„$Âøï'¹+¶0LGPØÞsröÚ1Ç«oÏÛÉ"¯ÞÜD߆âŵթÉÜ$ù¾«ƒ««U•�Ž®ì�Ë]~9mÄsSe[׉ëd³Ú”EwÓoÊìpÊÝ¥êßEK÷^”Ÿ%Ãqýê~Nž�éb9Ù,¿?Üïí®l'Ëê�O¡ëµè}õÿ E*¾8þ2?\ÓUù äm†ýë2Oªã@ØÓÑ¥˜^|ï‹2oF«âm0H%ò"ëFå?³cÕм=·�;nÊ}ÌfbúÒ¶]sö®o‚éS“»¦(ßÅõûší©®nð#Â`>¹Û÷—î3zÜ�˜ø›¼?-ºóW9|ö¼žk'”×ÃY•»¶Þe®Ù•ï.˜õ!„s1Kû×<peþ×yli{Ûg¿v�/—}yFrî•F)”Ai”ET„²¨¡îP1j‰ºC%¨{Ô xÚ}•]kâPEßó+î<ÚkîWÒ4ðaÚRË0¯6¹vš„$Âøï'¹+¶0LGPØÞsröÚ1Ç«oÏÛÉ"¯ÞÜD߆âŵթÉÜ$ù¾«ƒ««U•�Ž®ì�Ë]~9mÄsSe[׉ëd³Ú”EwÓoÊìpÊÝ¥êßEK÷^”Ÿ%Ãqýê~Nž�éb9Ù,¿?Üïí®l'Ëê�O¡ëµè}õÿ E*¾8þ2?\ÓUù äm†ýë2Oªã@ØÓÑ¥˜^|ï‹2oF«âm0H%ò"ëFå?³cÕм=·�;nÊ}ÌfbúÒ¶]sö®o‚éS“»¦(ßÅõûší©®nð#Â`>¹Û÷—î3zÜ�˜ø›¼?-ºóW9|ö¼žk'”×ÃY•»¶Þe®Ù•ï.˜õ!„s1Kû×<peþ×yli{Ûg¿v�/—}yFrî•F)”Ai”ET„²¨¡îP1j‰ºC%¨{Ô
@@ -631,15 +614,15 @@ x
endstream endstream
endobj endobj
87 0 obj 87 0 obj
<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OANFAB+IBMPlexSans-Bold /DescendantFonts [ 157 0 R ] /ToUnicode 156 0 R >> << /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OANFAB+IBMPlexSans-Bold /DescendantFonts [ 151 0 R ] /ToUnicode 150 0 R >>
endobj endobj
157 0 obj 151 0 obj
<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OANFAB+IBMPlexSans-Bold /FontDescriptor 153 0 R /W 152 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> << /Type /Font /Subtype /CIDFontType0 /BaseFont /OANFAB+IBMPlexSans-Bold /FontDescriptor 147 0 R /W 146 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj endobj
89 0 obj 89 0 obj
<< /Type /Pages /Count 9 /Kids [ 82 0 R 94 0 R 100 0 R 106 0 R 112 0 R 119 0 R 125 0 R 131 0 R 137 0 R ] >> << /Type /Pages /Count 8 /Kids [ 82 0 R 94 0 R 100 0 R 106 0 R 112 0 R 119 0 R 125 0 R 131 0 R ] >>
endobj endobj
158 0 obj 152 0 obj
<< /Type /Outlines /First 3 0 R /Last 79 0 R /Count 1 >> << /Type /Outlines /First 3 0 R /Last 79 0 R /Count 1 >>
endobj endobj
79 0 obj 79 0 obj
@@ -715,187 +698,181 @@ endobj
<< /Title 8 0 R /A 5 0 R /Parent 3 0 R /First 10 0 R /Last 10 0 R /Count -1 >> << /Title 8 0 R /A 5 0 R /Parent 3 0 R /First 10 0 R /Last 10 0 R /Count -1 >>
endobj endobj
3 0 obj 3 0 obj
<< /Title 4 0 R /A 1 0 R /Parent 158 0 R /First 7 0 R /Last 7 0 R /Count -1 >> << /Title 4 0 R /A 1 0 R /Parent 152 0 R /First 7 0 R /Last 7 0 R /Count -1 >>
endobj endobj
159 0 obj 153 0 obj
<< /Names [ (Doc-Start) 2 0 R (none.1) 75 0 R (page.1) 86 0 R (page.2) 96 0 R (page.3) 102 0 R (page.4) 108 0 R (page.5) 114 0 R (page.6) 121 0 R (page.7) 127 0 R (page.8) 133 0 R (page.9) 91 0 R (section*.1) 6 0 R (section*.2) 16 0 R (section*.3) 50 0 R ] /Limits [ (Doc-Start) (section*.3) ] >> << /Names [ (Doc-Start) 2 0 R (none.1) 75 0 R (page.1) 86 0 R (page.2) 96 0 R (page.3) 102 0 R (page.4) 108 0 R (page.5) 114 0 R (page.6) 121 0 R (page.7) 127 0 R (page.8) 91 0 R (section*.1) 6 0 R (section*.2) 16 0 R (section*.3) 50 0 R ] /Limits [ (Doc-Start) (section*.3) ] >>
endobj endobj
160 0 obj 154 0 obj
<< /Dests 159 0 R >> << /Dests 153 0 R >>
endobj endobj
161 0 obj 155 0 obj
<< /Type /Catalog /Pages 89 0 R /Outlines 158 0 R /Names 160 0 R /PageMode/UseOutlines /OpenAction 81 0 R >> << /Type /Catalog /Pages 89 0 R /Outlines 152 0 R /Names 154 0 R /PageMode/UseOutlines /OpenAction 81 0 R >>
endobj endobj
162 0 obj 156 0 obj
<< /Author(\376\377\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Title(\376\377\000L\000e\000b\000e\000n\000s\000l\000a\000u\000f\000\040\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Subject()/Creator(\376\377\000P\000a\000n\000d\000o\000c\000\040\000+\000\040\000L\000u\000a\000L\000a\000T\000e\000X)/Keywords() /Producer (LuaTeX-1.24.0) /CreationDate (D:20260426162906+02'00') /ModDate (D:20260426162906+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.24.0 (MiKTeX 26.2)) >> << /Author(\376\377\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Title(\376\377\000L\000e\000b\000e\000n\000s\000l\000a\000u\000f\000\040\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Subject()/Creator(\376\377\000P\000a\000n\000d\000o\000c\000\040\000+\000\040\000L\000u\000a\000L\000a\000T\000e\000X)/Keywords() /Producer (LuaTeX-1.24.0) /CreationDate (D:20260426202917+02'00') /ModDate (D:20260426202917+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.24.0 (MiKTeX 26.2)) >>
endobj endobj
xref xref
0 163 0 157
0000000000 65535 f 0000000000 65535 f
0000000020 00000 n 0000000020 00000 n
0000016167 00000 n 0000016450 00000 n
0000065136 00000 n 0000063710 00000 n
0000000065 00000 n 0000000065 00000 n
0000000266 00000 n 0000000266 00000 n
0000016227 00000 n 0000016510 00000 n
0000065042 00000 n 0000063616 00000 n
0000000312 00000 n 0000000312 00000 n
0000000399 00000 n 0000000399 00000 n
0000064946 00000 n 0000063520 00000 n
0000000445 00000 n 0000000445 00000 n
0000000548 00000 n 0000000548 00000 n
0000064848 00000 n 0000063422 00000 n
0000000595 00000 n 0000000595 00000 n
0000000827 00000 n 0000000827 00000 n
0000016285 00000 n 0000016570 00000 n
0000064750 00000 n 0000063324 00000 n
0000000874 00000 n 0000000874 00000 n
0000001316 00000 n 0000001316 00000 n
0000064652 00000 n 0000063226 00000 n
0000001363 00000 n 0000001363 00000 n
0000002095 00000 n 0000002095 00000 n
0000064554 00000 n 0000063128 00000 n
0000002142 00000 n 0000002142 00000 n
0000002669 00000 n 0000002669 00000 n
0000064456 00000 n 0000063030 00000 n
0000002716 00000 n 0000002716 00000 n
0000003178 00000 n 0000003178 00000 n
0000064358 00000 n 0000062932 00000 n
0000003225 00000 n 0000003225 00000 n
0000003952 00000 n 0000003952 00000 n
0000064260 00000 n 0000062834 00000 n
0000003999 00000 n 0000003999 00000 n
0000004558 00000 n 0000004558 00000 n
0000064162 00000 n 0000062736 00000 n
0000004605 00000 n 0000004605 00000 n
0000005132 00000 n 0000005132 00000 n
0000064064 00000 n 0000062638 00000 n
0000005179 00000 n 0000005179 00000 n
0000005636 00000 n 0000005636 00000 n
0000063966 00000 n 0000062540 00000 n
0000005683 00000 n 0000005683 00000 n
0000006155 00000 n 0000006155 00000 n
0000063868 00000 n 0000062442 00000 n
0000006202 00000 n 0000006202 00000 n
0000006688 00000 n 0000006688 00000 n
0000063757 00000 n 0000062331 00000 n
0000006735 00000 n 0000006735 00000 n
0000006998 00000 n 0000006998 00000 n
0000032099 00000 n 0000029618 00000 n
0000063683 00000 n 0000062257 00000 n
0000007045 00000 n 0000007045 00000 n
0000007969 00000 n 0000007969 00000 n
0000063596 00000 n 0000062170 00000 n
0000008016 00000 n 0000008016 00000 n
0000008794 00000 n 0000008794 00000 n
0000063509 00000 n 0000062083 00000 n
0000008841 00000 n 0000008841 00000 n
0000009856 00000 n 0000009856 00000 n
0000063422 00000 n 0000061996 00000 n
0000009903 00000 n 0000009903 00000 n
0000010557 00000 n 0000010557 00000 n
0000063335 00000 n 0000061909 00000 n
0000010604 00000 n 0000010604 00000 n
0000011265 00000 n 0000011265 00000 n
0000063248 00000 n 0000061822 00000 n
0000011312 00000 n 0000011312 00000 n
0000011938 00000 n 0000011938 00000 n
0000063174 00000 n 0000061748 00000 n
0000011985 00000 n 0000011985 00000 n
0000012457 00000 n 0000012457 00000 n
0000063087 00000 n 0000061661 00000 n
0000012504 00000 n 0000012504 00000 n
0000012582 00000 n 0000012582 00000 n
0000038842 00000 n 0000037424 00000 n
0000063000 00000 n 0000061574 00000 n
0000012625 00000 n 0000012625 00000 n
0000012698 00000 n 0000012698 00000 n
0000062926 00000 n 0000061500 00000 n
0000012741 00000 n 0000012741 00000 n
0000012819 00000 n 0000012819 00000 n
0000015799 00000 n 0000016082 00000 n
0000015958 00000 n 0000016241 00000 n
0000016346 00000 n 0000016631 00000 n
0000012869 00000 n 0000012869 00000 n
0000016106 00000 n 0000016389 00000 n
0000062370 00000 n 0000060952 00000 n
0000055407 00000 n 0000053989 00000 n
0000062727 00000 n 0000061309 00000 n
0000015931 00000 n 0000016214 00000 n
0000043695 00000 n 0000042277 00000 n
0000020161 00000 n 0000020893 00000 n
0000020370 00000 n 0000021102 00000 n
0000020002 00000 n 0000020734 00000 n
0000016428 00000 n 0000016713 00000 n
0000020309 00000 n 0000021041 00000 n
0000020134 00000 n 0000020866 00000 n
0000024138 00000 n 0000025025 00000 n
0000024349 00000 n 0000025236 00000 n
0000023975 00000 n 0000024862 00000 n
0000020452 00000 n 0000021184 00000 n
0000024286 00000 n 0000025173 00000 n
0000024110 00000 n 0000024997 00000 n
0000028155 00000 n 0000029406 00000 n
0000028367 00000 n 0000029680 00000 n
0000027990 00000 n 0000029241 00000 n
0000024431 00000 n 0000025318 00000 n
0000028304 00000 n 0000029555 00000 n
0000028126 00000 n 0000029377 00000 n
0000031887 00000 n 0000033609 00000 n
0000032161 00000 n 0000033821 00000 n
0000031722 00000 n 0000033444 00000 n
0000028450 00000 n 0000029763 00000 n
0000032036 00000 n 0000033758 00000 n
0000047876 00000 n 0000046458 00000 n
0000031858 00000 n 0000033580 00000 n
0000035434 00000 n 0000037212 00000 n
0000035646 00000 n 0000037486 00000 n
0000035269 00000 n 0000037047 00000 n
0000032257 00000 n 0000033917 00000 n
0000035583 00000 n 0000037361 00000 n
0000035405 00000 n 0000037183 00000 n
0000038630 00000 n 0000040739 00000 n
0000038904 00000 n 0000040951 00000 n
0000038465 00000 n 0000040574 00000 n
0000035729 00000 n 0000037569 00000 n
0000038779 00000 n 0000040888 00000 n
0000038601 00000 n 0000040710 00000 n
0000042157 00000 n
0000042369 00000 n
0000041992 00000 n
0000038987 00000 n
0000042306 00000 n
0000042128 00000 n 0000042128 00000 n
0000043546 00000 n 0000042339 00000 n
0000043757 00000 n 0000041963 00000 n
0000043381 00000 n 0000041034 00000 n
0000042452 00000 n 0000042099 00000 n
0000043517 00000 n 0000042422 00000 n
0000043840 00000 n 0000045638 00000 n
0000047056 00000 n 0000042698 00000 n
0000044116 00000 n 0000042803 00000 n
0000044221 00000 n 0000045880 00000 n
0000047298 00000 n 0000046616 00000 n
0000048034 00000 n 0000046820 00000 n
0000048238 00000 n 0000052938 00000 n
0000054356 00000 n 0000047355 00000 n
0000048773 00000 n 0000047481 00000 n
0000048899 00000 n 0000053171 00000 n
0000054589 00000 n 0000054139 00000 n
0000055557 00000 n 0000054336 00000 n
0000055754 00000 n 0000059941 00000 n
0000061359 00000 n 0000054826 00000 n
0000056244 00000 n 0000054947 00000 n
0000056365 00000 n 0000060180 00000 n
0000061598 00000 n 0000061107 00000 n
0000062525 00000 n 0000061426 00000 n
0000062852 00000 n 0000063804 00000 n
0000065230 00000 n 0000064101 00000 n
0000065544 00000 n 0000064139 00000 n
0000065582 00000 n 0000064265 00000 n
0000065708 00000 n
trailer trailer
<< /Size 163 /Root 161 0 R /Info 162 0 R /ID [ <C3C486D3CFB913B76521526AF2983B69> <C3C486D3CFB913B76521526AF2983B69> ] >> << /Size 157 /Root 155 0 R /Info 156 0 R /ID [ <DBE25BAF6621814A2FD60CEF82460B80> <DBE25BAF6621814A2FD60CEF82460B80> ] >>
startxref startxref
66368 64925
%%EOF %%EOF
+6 -4
View File
@@ -1,4 +1,4 @@
===== Build gestartet: 2026-04-26 16:29:03 ===== ===== Build gestartet: 2026-04-26 20:29:14 =====
Source: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md Source: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md
Template-TEX: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\template.tex Template-TEX: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\template.tex
Reference: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\reference.docx Reference: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\reference.docx
@@ -6,15 +6,17 @@ Output-Dir: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslau
--- Pandoc -> PDF (LuaLaTeX) --- --- Pandoc -> PDF (LuaLaTeX) ---
Cmd: pandoc --from=markdown+smart --pdf-engine=lualatex --template=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\template.tex --resource-path=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source --output=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.pdf Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md Cmd: pandoc --from=markdown+smart --pdf-engine=lualatex --template=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\template.tex --resource-path=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source --output=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.pdf Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md
PDF OK: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.pdf (68.2 KB) PDF OK: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.pdf (66.6 KB)
--- Pandoc -> DOCX --- --- Pandoc -> DOCX ---
Cmd: pandoc --from=markdown+smart --reference-doc=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\reference.docx --resource-path=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source --output=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md Cmd: pandoc --from=markdown+smart --reference-doc=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\reference.docx --resource-path=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source --output=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md
DOCX OK: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx (22 KB) DOCX OK: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx (21.9 KB)
--- Post-Process DOCX --- --- Post-Process DOCX ---
[post-process-docx] Verarbeite: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx [post-process-docx] Verarbeite: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx
[post-process-docx] Listen gefunden: 27 [post-process-docx] Listen gefunden: 27
[post-process-docx] Bullets in Listen: 186 [post-process-docx] Bullets in Listen: 186
[post-process-docx] keepNext gesetzt: 95 [post-process-docx] keepNext gesetzt: 95
[post-process-docx] Bullets in Tabellen uebersprungen: 0 [post-process-docx] Bullets in Tabellen uebersprungen: 0
[post-process-docx] H2-Headings gefunden: 7
[post-process-docx] H2-Trenn-Absaetze eingefuegt: 7
[post-process-docx] Fertig. [post-process-docx] Fertig.
===== Build beendet: 2026-04-26 16:29:09, Exit-Code 0 ===== ===== Build beendet: 2026-04-26 20:29:20, Exit-Code 0 =====
-42
View File
@@ -9,8 +9,6 @@
- LinkedIn: https://www.linkedin.com/in/thomas-langer-b9742a2 - LinkedIn: https://www.linkedin.com/in/thomas-langer-b9742a2
- Büroadresse: Biberger Straße 91, 82008 Unterhaching - Büroadresse: Biberger Straße 91, 82008 Unterhaching
---
## Zusammenfassung ## Zusammenfassung
- TÜV-zertifizierter AI Consultant und promovierter Ingenieur mit über 30 Jahren Erfahrung in Entwicklung, Test und System Integration von Elektronik - TÜV-zertifizierter AI Consultant und promovierter Ingenieur mit über 30 Jahren Erfahrung in Entwicklung, Test und System Integration von Elektronik
@@ -21,8 +19,6 @@
- Kommunikations- und Präsentationsstärke auf allen Ebenen, von Fachteams bis Geschäftsführung - Kommunikations- und Präsentationsstärke auf allen Ebenen, von Fachteams bis Geschäftsführung
- Flexibler Arbeitsstil als Gruppenleiter (10 Mitarbeiter), Team-Mitglied und autonomer Experte - Flexibler Arbeitsstil als Gruppenleiter (10 Mitarbeiter), Team-Mitglied und autonomer Experte
---
## Projekte als freiberuflicher Consultant ## Projekte als freiberuflicher Consultant
### Seit Juli 2011 — Inhaber von DesTEngS Dr.-Ing. Thomas Langer, nahe München: ### Seit Juli 2011 — Inhaber von DesTEngS Dr.-Ing. Thomas Langer, nahe München:
@@ -34,8 +30,6 @@
- Anwendung von KI bei Konzepten, System Engineering, Software Design, Automatisierungen, System Integration und Tests - Anwendung von KI bei Konzepten, System Engineering, Software Design, Automatisierungen, System Integration und Tests
- KI-gestützte Dokumentationen und Illustrationen - KI-gestützte Dokumentationen und Illustrationen
---
### Aug. 2024 – Feb. 2026 — Consultant bei ASMPT (Industrielle Bestückungsmaschinen), System Integration Abteilung R&D 38, München: ### Aug. 2024 – Feb. 2026 — Consultant bei ASMPT (Industrielle Bestückungsmaschinen), System Integration Abteilung R&D 38, München:
- KI-Workshop - KI-Workshop
@@ -50,8 +44,6 @@
- Ermittlung von System Integration Standard Use-Cases und Erstellung der zugehörigen Vector CANalyzer Konfigurationen zur Steigerung der Effizienz durch Vereinheitlichung der Testplatz-Umgebungen - Ermittlung von System Integration Standard Use-Cases und Erstellung der zugehörigen Vector CANalyzer Konfigurationen zur Steigerung der Effizienz durch Vereinheitlichung der Testplatz-Umgebungen
- Entwicklung eines Python-Tools mit PyShark zur Konvertierung spezieller Bestückungsmaschinen Trace-Daten für die Nutzung in Vector CANalyzer - Entwicklung eines Python-Tools mit PyShark zur Konvertierung spezieller Bestückungsmaschinen Trace-Daten für die Nutzung in Vector CANalyzer
---
### Sep. 2025 – Feb. 2026 — Projekt „Kischdle", Geschäftskonzept von 2 potenziellen Gründern: ### Sep. 2025 – Feb. 2026 — Projekt „Kischdle", Geschäftskonzept von 2 potenziellen Gründern:
- On-Premise KI-System mit Consumer-GPU und Retrieval Augmented Generation (RAG) - On-Premise KI-System mit Consumer-GPU und Retrieval Augmented Generation (RAG)
@@ -60,8 +52,6 @@
- Erweiterung durch PyTorch-Umgebung für multimodale KI-Modelle (Bild und Text), Evaluierungen des Inference-Modells Qwen3-VL-8B und des Embedding-Modells tomoro-colqwen3-embed-4b - Erweiterung durch PyTorch-Umgebung für multimodale KI-Modelle (Bild und Text), Evaluierungen des Inference-Modells Qwen3-VL-8B und des Embedding-Modells tomoro-colqwen3-embed-4b
- Evaluierung von Langflow für Workflow-Automatisierungen mit AI-Agents - Evaluierung von Langflow für Workflow-Automatisierungen mit AI-Agents
---
### Jan. – Feb. 2026 — Consultant bei Lumiz (Marketing-Dienstleister), Taufkirchen: ### Jan. – Feb. 2026 — Consultant bei Lumiz (Marketing-Dienstleister), Taufkirchen:
- KI-gestützte Automatisierung der Einkäufe auf einer Druckerei-Website mit UI.Vision - KI-gestützte Automatisierung der Einkäufe auf einer Druckerei-Website mit UI.Vision
@@ -69,8 +59,6 @@
- Hochladen der Druckdaten aus der Lumiz-Cloud - Hochladen der Druckdaten aus der Lumiz-Cloud
- Protokollierung der Vorgänge - Protokollierung der Vorgänge
---
### Nov. 2020 – Mai 2024 — Consultant bei ASMPT (Industrielle Bestückungsmaschinen), System Integration Abteilung R&D 38, München: ### Nov. 2020 – Mai 2024 — Consultant bei ASMPT (Industrielle Bestückungsmaschinen), System Integration Abteilung R&D 38, München:
- Maßgebliche Mitwirkung bei Konzepterstellung und Einführung eines neuen Gigabit Ethernet Feldbus für performantere Steuerung von ASMPTs industriellen Bestückungsmaschinen - Maßgebliche Mitwirkung bei Konzepterstellung und Einführung eines neuen Gigabit Ethernet Feldbus für performantere Steuerung von ASMPTs industriellen Bestückungsmaschinen
@@ -92,8 +80,6 @@
- Entdeckung sporadischer Zeitabweichungen der Ethernet-Interface Hardware, Idee und Aufbau einer hochpräzisen Zeit-Referenz mit einem preiswerten GPS-Modul, Feststellung einer signifikanten Spec-Verletzung der Vector Hardware Zeitbasis - Entdeckung sporadischer Zeitabweichungen der Ethernet-Interface Hardware, Idee und Aufbau einer hochpräzisen Zeit-Referenz mit einem preiswerten GPS-Modul, Feststellung einer signifikanten Spec-Verletzung der Vector Hardware Zeitbasis
- Evaluierung GL Communications PacketExpert Gigabit Ethernet Tester - Evaluierung GL Communications PacketExpert Gigabit Ethernet Tester
---
### Aug. 2018 – Juli 2020 — Consultant bei Magna Electronics Europe (Automobil-Zulieferer), München: ### Aug. 2018 – Juli 2020 — Consultant bei Magna Electronics Europe (Automobil-Zulieferer), München:
- LIDAR Compute Module - LIDAR Compute Module
@@ -108,8 +94,6 @@
- xDiagnostics ermöglichte eine Design-Validierung in einem frühen Entwicklungsstadium - xDiagnostics ermöglichte eine Design-Validierung in einem frühen Entwicklungsstadium
- Elektromagnetische Feldsimulationen mit CST für den GMSL Pfad eines Kameramoduls zur Verifikation der Signalintegrität - Elektromagnetische Feldsimulationen mit CST für den GMSL Pfad eines Kameramoduls zur Verifikation der Signalintegrität
---
### Nov. 2014 – Juli 2018 — Consultant bei Infineon, Abteilung DES TCP PCB, Großraum München: ### Nov. 2014 – Juli 2018 — Consultant bei Infineon, Abteilung DES TCP PCB, Großraum München:
- Signal Integrity und Power Integrity Simulationen von IC Packages und PCBs - Signal Integrity und Power Integrity Simulationen von IC Packages und PCBs
@@ -121,15 +105,11 @@
- EM Feldsimulationen zur Modell Extraktion von IC Packages und PCBs - EM Feldsimulationen zur Modell Extraktion von IC Packages und PCBs
- Erstellung von Matlab, Python und IronPython Programmen - Erstellung von Matlab, Python und IronPython Programmen
---
### Apr. – Aug. 2015 — Consultant bei Kathrein.net.tech (Ubidyne-Nachfolger), Ulm: ### Apr. – Aug. 2015 — Consultant bei Kathrein.net.tech (Ubidyne-Nachfolger), Ulm:
- Inbetriebnahme, Evaluierung und Optimierung von Transceiver Modulen - Inbetriebnahme, Evaluierung und Optimierung von Transceiver Modulen
- Automatisierung von HF-Tests mit Matlab und Ruby - Automatisierung von HF-Tests mit Matlab und Ruby
---
### Sep. 2011 – Juli 2014 — Consultant bei Alcatel-Lucent, Abteilung MS/E, Stuttgart: ### Sep. 2011 – Juli 2014 — Consultant bei Alcatel-Lucent, Abteilung MS/E, Stuttgart:
- Projekt Light Radio AAA: Aktives Antennen Array für 2.5 GHz LTE - Projekt Light Radio AAA: Aktives Antennen Array für 2.5 GHz LTE
@@ -145,12 +125,8 @@
- Erstellung von Test Routinen mit Matlab und embedded Linux Programmierung des WiFi SoC, Aufbau einer Messumgebung für automatisierte Tests - Erstellung von Test Routinen mit Matlab und embedded Linux Programmierung des WiFi SoC, Aufbau einer Messumgebung für automatisierte Tests
- Agile Design mit Scrum - Agile Design mit Scrum
---
### Juli 2011 — Gründung von DesTEngS Dr.-Ing. Thomas Langer (Ingenieurbüro), nahe Ulm ### Juli 2011 — Gründung von DesTEngS Dr.-Ing. Thomas Langer (Ingenieurbüro), nahe Ulm
---
## Berufliche Stationen vor der Selbständigkeit ## Berufliche Stationen vor der Selbständigkeit
### Juli 2006 – Juni 2011 — Head of RF Integration bei Ubidyne (Startup, ca. 60 Mitarbeiter, aktive Antennen für Mobilfunk-Basisstationen), Abteilung Engineering, Ulm: ### Juli 2006 – Juni 2011 — Head of RF Integration bei Ubidyne (Startup, ca. 60 Mitarbeiter, aktive Antennen für Mobilfunk-Basisstationen), Abteilung Engineering, Ulm:
@@ -171,8 +147,6 @@
- Antennenhersteller Kathrein, Andrew und Huber & Suhner - Antennenhersteller Kathrein, Andrew und Huber & Suhner
- _(Ab Okt. 2009: Principal Member of Technical Staff)_ - _(Ab Okt. 2009: Principal Member of Technical Staff)_
---
### Jan. 2003 – Juni 2006 — Entwicklungsingenieur bei Toshiba Electronics Europe, European LSI Development and Engineering Centre, Düsseldorf: ### Jan. 2003 – Juni 2006 — Entwicklungsingenieur bei Toshiba Electronics Europe, European LSI Development and Engineering Centre, Düsseldorf:
- Mitarbeit in den Normierungsgremien OIF und MIPI - Mitarbeit in den Normierungsgremien OIF und MIPI
@@ -183,8 +157,6 @@
- Detaillierte Analysen elektrischer IC-Gehäuse (bis zu 11 Gb/s, bis zu 1444 Balls) - Detaillierte Analysen elektrischer IC-Gehäuse (bis zu 11 Gb/s, bis zu 1444 Balls)
- _(Ab April 2004: Senior Engineer)_ - _(Ab April 2004: Senior Engineer)_
---
### Dez. 2000 – Dez. 2002 — Entwicklungsingenieur bei Multilink Technology (Startup mit bis zu 360 Mitarbeitern weltweit, ICs und Module für faseroptische Übertragungssysteme), Berlin: ### Dez. 2000 – Dez. 2002 — Entwicklungsingenieur bei Multilink Technology (Startup mit bis zu 360 Mitarbeitern weltweit, ICs und Module für faseroptische Übertragungssysteme), Berlin:
- Entzerrer-ICs für Backplane-Systeme bis 12,5 Gb/s: - Entzerrer-ICs für Backplane-Systeme bis 12,5 Gb/s:
@@ -195,16 +167,12 @@
- Systemsimulationen zur Bestimmung der Anforderungen für elektrische Entzerrer-ICs - Systemsimulationen zur Bestimmung der Anforderungen für elektrische Entzerrer-ICs
- 3,1 Gb/s 8:32 CMOS Demultiplexer-IC: BGA Gehäuse-Entwurf, Teststrategie, Leiterplatten-Entwicklung - 3,1 Gb/s 8:32 CMOS Demultiplexer-IC: BGA Gehäuse-Entwurf, Teststrategie, Leiterplatten-Entwicklung
---
### Nov. 1998 – Nov. 2000 — Entwicklungsingenieur bei Siemens, Bereich Information and Communication Networks, München: ### Nov. 1998 – Nov. 2000 — Entwicklungsingenieur bei Siemens, Bereich Information and Communication Networks, München:
- Verantwortlich für ein 1,8 GHz RX Frontend Modul für GSM Mobilfunk-Basisstationen: Projektkoordination, Definition der Architektur, Systemsimulation, Schaltungsentwurf, Layout, Evaluierung von Labormustern und Prototypen, Fertigungseinführung - Verantwortlich für ein 1,8 GHz RX Frontend Modul für GSM Mobilfunk-Basisstationen: Projektkoordination, Definition der Architektur, Systemsimulation, Schaltungsentwurf, Layout, Evaluierung von Labormustern und Prototypen, Fertigungseinführung
- Qualifizierung und Fertigungseinführung eines 10 GHz VCOs - Qualifizierung und Fertigungseinführung eines 10 GHz VCOs
- Layout und Aufbautechnik von 40 Gb/s High Speed Digital Modulen für Faseroptische Systeme - Layout und Aufbautechnik von 40 Gb/s High Speed Digital Modulen für Faseroptische Systeme
---
### Okt. 1994 – Okt. 1998 — Wissenschaftlicher Mitarbeiter am Ferdinand-Braun-Institut für Höchstfrequenztechnik, Berlin: ### Okt. 1994 – Okt. 1998 — Wissenschaftlicher Mitarbeiter am Ferdinand-Braun-Institut für Höchstfrequenztechnik, Berlin:
- Erzeugung elektrischer Transienten im Picosekundenbereich mit einer nichtlinearen Diodenleitung - Erzeugung elektrischer Transienten im Picosekundenbereich mit einer nichtlinearen Diodenleitung
@@ -216,20 +184,14 @@
- Elektromagnetische Feldsimulationen koplanarer Leitungsstrukturen bis 1 THz - Elektromagnetische Feldsimulationen koplanarer Leitungsstrukturen bis 1 THz
- Entwicklung eines breitbandigen Low-Power Transimpedanzverstärker GaAs-MMICs für 100 MHz - 6 GHz - Entwicklung eines breitbandigen Low-Power Transimpedanzverstärker GaAs-MMICs für 100 MHz - 6 GHz
---
### Sep. 1992 – Aug. 1993 — Studentische Hilfskraft am Ferdinand-Braun-Institut für Höchstfrequenztechnik, Berlin: ### Sep. 1992 – Aug. 1993 — Studentische Hilfskraft am Ferdinand-Braun-Institut für Höchstfrequenztechnik, Berlin:
- Modellierung passiver Elemente, Dioden und Transistoren auf GaAs Wafern - Modellierung passiver Elemente, Dioden und Transistoren auf GaAs Wafern
---
### Jan. 1990 – März 1992 — Studentische Hilfskraft am Hahn-Meitner-Institut, Berlin: ### Jan. 1990 – März 1992 — Studentische Hilfskraft am Hahn-Meitner-Institut, Berlin:
- Entwurf und Aufbau von ultra-breitbandigen Verstärkern 10 KHz – 16 GHz inklusive Entwicklung und Implementierung eines neuen Verfahrens zur Temperaturkompensation - Entwurf und Aufbau von ultra-breitbandigen Verstärkern 10 KHz – 16 GHz inklusive Entwicklung und Implementierung eines neuen Verfahrens zur Temperaturkompensation
---
## Ausbildung ## Ausbildung
---------- ---------------------------------------------------------------------- ---------- ----------------------------------------------------------------------
@@ -242,8 +204,6 @@ Okt. 1994 **Dipl.-Ing. Elektrotechnik** an der TU Berlin, Vertiefungsfach Hoch
Juni 1986 **Abitur** am Oberstufenzentrum Elektrotechnik in Berlin Juni 1986 **Abitur** am Oberstufenzentrum Elektrotechnik in Berlin
---------- ---------------------------------------------------------------------- ---------- ----------------------------------------------------------------------
---
## Trainings ## Trainings
- Dez. 2016 — Ansys SIwave Training - Dez. 2016 — Ansys SIwave Training
@@ -253,8 +213,6 @@ Juni 1986 **Abitur** am Oberstufenzentrum Elektrotechnik in Berlin
- Apr. 2006 — Die Akademie, „Gedächtnis- und Konzentrationstraining" - Apr. 2006 — Die Akademie, „Gedächtnis- und Konzentrationstraining"
- Mai 2000 — Seminar „Persönlichkeitsentwicklung im Team" - Mai 2000 — Seminar „Persönlichkeitsentwicklung im Team"
---
## Kenntnisse ## Kenntnisse
**KI:** **KI:**
Binary file not shown.
+1
View File
@@ -45,3 +45,4 @@ Chronologisches Log aller Entscheidungen und Prozessereignisse.
2026-04-26 10:58 | S07 | PDF-Build-Fehler endgueltig behoben. S06-Hotfix (array, calc, providecommand real) loeste das Problem nicht; nach Rebuild kam unveraendert "! LaTeX Error: No counter 'none' defined." Eigentliche Ursache: Pandoc 3.x emittiert fuer unnummerierte Tabellen direkt vor begin{longtable} die Zeile def LTcaptype none, ohne den Counter none zu definieren. Pandocs eigene Default-Vorlage definiert ihn (commit d835461 in Pandoc 3.8.2.1), Custom-Templates muessen das selbst tun (siehe Pandoc-Issue 11201). Fix: eine Zeile newcounter none direkt nach providecommand real im Tabellen-Block des Templates. Sandbox-Reproduktion exakter Fehlertext ohne Fix, sauberes PDF mit Fix. Auf Thomas' System: PDF wird erzeugt, Ausbildungs-Layout im PDF visuell bestaetigt. Iteration A fuer Teilgebiet 01 damit inhaltlich abgeschlossen. Build-UX-Fix: build.ps1 ergaenzt um Start-Sleep -Seconds 3 nach jedem fehlschlagenden Build-Schritt (Pflichtdatei-Check, PDF-Build, DOCX-Build), damit die rote Fehlerzeile lesbar bleibt bevor das PowerShell-Fenster zugeht. teilgebiete/01-lebenslauf.md um beide Fixes ergaenzt (zweistufige Hotfix-Geschichte, PDF-Bestaetigung, UX-Fix). agent-prompt.md Aktueller-Stand-Abschnitt fuer S08 fortgeschrieben mit verbleibender Iterationsreihenfolge B-C-D, Hinweise auf Pandoc-Versionsunterschied praeziser formuliert. 2026-04-26 10:58 | S07 | PDF-Build-Fehler endgueltig behoben. S06-Hotfix (array, calc, providecommand real) loeste das Problem nicht; nach Rebuild kam unveraendert "! LaTeX Error: No counter 'none' defined." Eigentliche Ursache: Pandoc 3.x emittiert fuer unnummerierte Tabellen direkt vor begin{longtable} die Zeile def LTcaptype none, ohne den Counter none zu definieren. Pandocs eigene Default-Vorlage definiert ihn (commit d835461 in Pandoc 3.8.2.1), Custom-Templates muessen das selbst tun (siehe Pandoc-Issue 11201). Fix: eine Zeile newcounter none direkt nach providecommand real im Tabellen-Block des Templates. Sandbox-Reproduktion exakter Fehlertext ohne Fix, sauberes PDF mit Fix. Auf Thomas' System: PDF wird erzeugt, Ausbildungs-Layout im PDF visuell bestaetigt. Iteration A fuer Teilgebiet 01 damit inhaltlich abgeschlossen. Build-UX-Fix: build.ps1 ergaenzt um Start-Sleep -Seconds 3 nach jedem fehlschlagenden Build-Schritt (Pflichtdatei-Check, PDF-Build, DOCX-Build), damit die rote Fehlerzeile lesbar bleibt bevor das PowerShell-Fenster zugeht. teilgebiete/01-lebenslauf.md um beide Fixes ergaenzt (zweistufige Hotfix-Geschichte, PDF-Bestaetigung, UX-Fix). agent-prompt.md Aktueller-Stand-Abschnitt fuer S08 fortgeschrieben mit verbleibender Iterationsreihenfolge B-C-D, Hinweise auf Pandoc-Versionsunterschied praeziser formuliert.
2026-04-26 13:29 | S07 | Teilgebiet 01 Iteration B (Iterationen B1, B1.5, B2) durchgezogen. Neue Datei build/build-reference-docx.py baut templates/reference.docx programmatisch aus Pandocs Default-Reference (Python-Stdlib only, kein pip; pandoc --print-default-data-file zur Laufzeit, ZIP entpacken, ElementTree-XML-Anpassungen, repacken). B1: Theme major+minor und alle direkten Schrift-Refs in styles.xml auf Calibri umgestellt (Code-Schriften wie Consolas bleiben), Tabellen-Default-Stil mit tblBorders=none auf allen Sides. B1.5: Body-DocDefault 11 pt, Heading 1/2/3 auf 15/13/12 pt analog PDF. B2: header1.xml (Default ab Seite 2 mit Name links und Lebenslauf rechts), header2.xml (leer fuer Seite 1 via titlePg), footer1.xml (rechts Seite n / m mit PAGE/NUMPAGES-Feldern, doppelt referenziert als default und first damit Seite 1 trotz titlePg den Footer hat). Page-Setup explizit in sectPr: A4 mit 2.2 cm oben/unten und 2.5 cm links/rechts analog PDF, Tab-Stop am rechten Textrand 9072 dxa. Beziehungen mit dynamisch naechster freier rId in document.xml.rels, Content-Types-Overrides in [Content_Types].xml, sectPr regex-ersetzt idempotent. Sandbox-End-to-End mit Pandoc 2.9 verifiziert (sectPr und Header/Footer im generierten DOCX vorhanden). Auf Thomas System: DOCX visuell bestaetigt. teilgebiete/01-lebenslauf.md um vollstaendigen Iteration-B-Block ergaenzt, Naechste-Schritte-Liste auf B3, B4, C, D umstrukturiert. agent-prompt.md Aktueller-Stand-Abschnitt fortgeschrieben mit Hinweisen zur reference-docx-Pipeline (manuell vor build.ps1 aufrufen, nicht von Hand in Word editieren) und zur Edit-Tool-Truncation auf dem NTFS-Mount. Build-UX-Fix in build.ps1 mit 3-Sekunden-Pause pro fehlgeschlagenem Schritt war ebenfalls Teil dieser Session. 2026-04-26 13:29 | S07 | Teilgebiet 01 Iteration B (Iterationen B1, B1.5, B2) durchgezogen. Neue Datei build/build-reference-docx.py baut templates/reference.docx programmatisch aus Pandocs Default-Reference (Python-Stdlib only, kein pip; pandoc --print-default-data-file zur Laufzeit, ZIP entpacken, ElementTree-XML-Anpassungen, repacken). B1: Theme major+minor und alle direkten Schrift-Refs in styles.xml auf Calibri umgestellt (Code-Schriften wie Consolas bleiben), Tabellen-Default-Stil mit tblBorders=none auf allen Sides. B1.5: Body-DocDefault 11 pt, Heading 1/2/3 auf 15/13/12 pt analog PDF. B2: header1.xml (Default ab Seite 2 mit Name links und Lebenslauf rechts), header2.xml (leer fuer Seite 1 via titlePg), footer1.xml (rechts Seite n / m mit PAGE/NUMPAGES-Feldern, doppelt referenziert als default und first damit Seite 1 trotz titlePg den Footer hat). Page-Setup explizit in sectPr: A4 mit 2.2 cm oben/unten und 2.5 cm links/rechts analog PDF, Tab-Stop am rechten Textrand 9072 dxa. Beziehungen mit dynamisch naechster freier rId in document.xml.rels, Content-Types-Overrides in [Content_Types].xml, sectPr regex-ersetzt idempotent. Sandbox-End-to-End mit Pandoc 2.9 verifiziert (sectPr und Header/Footer im generierten DOCX vorhanden). Auf Thomas System: DOCX visuell bestaetigt. teilgebiete/01-lebenslauf.md um vollstaendigen Iteration-B-Block ergaenzt, Naechste-Schritte-Liste auf B3, B4, C, D umstrukturiert. agent-prompt.md Aktueller-Stand-Abschnitt fortgeschrieben mit Hinweisen zur reference-docx-Pipeline (manuell vor build.ps1 aufrufen, nicht von Hand in Word editieren) und zur Edit-Tool-Truncation auf dem NTFS-Mount. Build-UX-Fix in build.ps1 mit 3-Sekunden-Pause pro fehlgeschlagenem Schritt war ebenfalls Teil dieser Session.
2026-04-26 16:40 | S07 | Iteration B3 und B3.5 fuer Teilgebiet 01 abgeschlossen. B3 in build/build-reference-docx.py ergaenzt: DocDefault widowControl plus keepNext und keepLines auf Heading 1/2/3 und FirstParagraph (Pandoc-Stil fuer ersten Absatz nach einem Heading, deckt die fett formatierten Kenntnisse-Subsection-Labels KI Software-Design Methodik IT etc ab). Erster Versuch Compact-Stil mit keepNext hat Listen komplett unteilbar gemacht (Job-Stationen begannen jedes Mal auf einer neuen Seite, ungenutzte Seitenenden) und wurde verworfen. Auf Wunsch von Thomas auf 3-3-Regel umgestellt: bei Listen mit mindestens 6 Bullets duerfen Trennungen passieren, aber mindestens 3 Bullets bleiben jeweils zusammen vor und nach dem Umbruch. Bei kuerzeren Listen alles zusammen. Da das stilbasiert nicht abbildbar ist (alle Bullets haben pStyle Compact), neues Post-Processing-Skript build/post-process-docx.py: scannt das fertige DOCX, findet Sequenzen aufeinanderfolgender Bullets mit numPr-Eigenschaft ausserhalb von Tabellen-Zellen, setzt keepNext auf den ersten 2 und den N-3 N-2 Bullets jeder Liste mit n groesser gleich 6 (bei n kleiner 6 alle keepNext). build.ps1 erweitert auf 3 Schritte und ruft das Post-Processing-Skript automatisch nach erfolgreichem DOCX-Build auf, mit Console-Output und Log-Statistiken (Anzahl Listen Bullets keepNext-Markierungen). Sandbox-Verifikation 26 Listen 184 Bullets 93 keepNext, Pattern fuer 11-Bullet-Liste KK......KK.. Auf Thomas System visuell bestaetigt: Listen werden an guten Stellen getrennt, keine ungenutzten Seitenenden, keine einzelnen Bullets allein am Seitenrand. teilgebiete/01-lebenslauf.md um B3- und B3.5-Bloecke ergaenzt sowie Naechste-Schritte-Liste auf B4 C D umstrukturiert. agent-prompt.md Aktueller-Stand-Abschnitt fortgeschrieben mit B3 und B3.5, Hinweis auf 3-stufige DOCX-Pipeline und Edit-Tool-Truncation an build.ps1 ergaenzt. Naechste Session startet mit B4 (Heading-Farben oder Trennlinien analog PDF). 2026-04-26 16:40 | S07 | Iteration B3 und B3.5 fuer Teilgebiet 01 abgeschlossen. B3 in build/build-reference-docx.py ergaenzt: DocDefault widowControl plus keepNext und keepLines auf Heading 1/2/3 und FirstParagraph (Pandoc-Stil fuer ersten Absatz nach einem Heading, deckt die fett formatierten Kenntnisse-Subsection-Labels KI Software-Design Methodik IT etc ab). Erster Versuch Compact-Stil mit keepNext hat Listen komplett unteilbar gemacht (Job-Stationen begannen jedes Mal auf einer neuen Seite, ungenutzte Seitenenden) und wurde verworfen. Auf Wunsch von Thomas auf 3-3-Regel umgestellt: bei Listen mit mindestens 6 Bullets duerfen Trennungen passieren, aber mindestens 3 Bullets bleiben jeweils zusammen vor und nach dem Umbruch. Bei kuerzeren Listen alles zusammen. Da das stilbasiert nicht abbildbar ist (alle Bullets haben pStyle Compact), neues Post-Processing-Skript build/post-process-docx.py: scannt das fertige DOCX, findet Sequenzen aufeinanderfolgender Bullets mit numPr-Eigenschaft ausserhalb von Tabellen-Zellen, setzt keepNext auf den ersten 2 und den N-3 N-2 Bullets jeder Liste mit n groesser gleich 6 (bei n kleiner 6 alle keepNext). build.ps1 erweitert auf 3 Schritte und ruft das Post-Processing-Skript automatisch nach erfolgreichem DOCX-Build auf, mit Console-Output und Log-Statistiken (Anzahl Listen Bullets keepNext-Markierungen). Sandbox-Verifikation 26 Listen 184 Bullets 93 keepNext, Pattern fuer 11-Bullet-Liste KK......KK.. Auf Thomas System visuell bestaetigt: Listen werden an guten Stellen getrennt, keine ungenutzten Seitenenden, keine einzelnen Bullets allein am Seitenrand. teilgebiete/01-lebenslauf.md um B3- und B3.5-Bloecke ergaenzt sowie Naechste-Schritte-Liste auf B4 C D umstrukturiert. agent-prompt.md Aktueller-Stand-Abschnitt fortgeschrieben mit B3 und B3.5, Hinweis auf 3-stufige DOCX-Pipeline und Edit-Tool-Truncation an build.ps1 ergaenzt. Naechste Session startet mit B4 (Heading-Farben oder Trennlinien analog PDF).
2026-04-26 20:35 | S08 | Teilgebiet 01 Iteration B4 fuer DOCX umgesetzt. Heading 1/2/3 in destengsblue (build/build-reference-docx.py Funktion set_heading_colors mit explizitem color val=0B5394, themeColor accent1 entfernt). Heading-Bottom-Borders direkt am Stil verworfen, weil Word die Border bei hanging-Indent linksbuendig statt zentriert rendert und der right-Indent sowohl Text als auch Border begrenzt. 21 Markdown-HRs aus cv.md entfernt - Quelle der wahrgenommenen Doppellinien war Pandocs DOCX-Konvertierung von --- Zeilen zu VML-rect mit o:hr=t (Embossed-Look). Tabellen-Strich-Zeilen blieben unangetastet. Zwischenfall: NTFS-Mount-Stale-Read der cv.md (20043 statt 20201 Bytes) haette fast die Live-Datei truncated, sofortige Wiederherstellung aus git show HEAD und HR-Removal erneut mit git-Version als Input. H2-Trennlinien via Post-Processing eingefuehrt (build/post-process-docx.py um Logik erweitert): nach jedem H2 wird ein leerer Trenn-Absatz mit linksbuendiger Bottom-Border eingefuegt, schwarz (000000), 8,6 cm Linienlaenge (right-Indent 4196 dxa), 1,25 pt Dicke (sz=10). Sandbox-Verifikation 7 H2 zu 7 Trenner. Visuelle Bestaetigung durch Thomas. teilgebiete/01-lebenslauf.md um Iteration-B4-Block ergaenzt (B4.1 Farben, B4.2 Heading-Border-Sackgasse, B4.3 HR-Removal inkl. Zwischenfall, B4.4 H2-Trennlinien) und Naechste-Schritte-Liste auf C/D verkuerzt.
+19 -6
View File
@@ -184,12 +184,25 @@ Die in S04 mit docx-js erstellte Version hatte strukturelle typographische Mäng
- `build.ps1` ruft das Skript automatisch nach erfolgreichem DOCX-Build auf (Schritt [3/3]), Console-Output und Log enthalten Statistiken (Anzahl Listen, Bullets, gesetzte keepNext-Markierungen). - `build.ps1` ruft das Skript automatisch nach erfolgreichem DOCX-Build auf (Schritt [3/3]), Console-Output und Log enthalten Statistiken (Anzahl Listen, Bullets, gesetzte keepNext-Markierungen).
- Sandbox-Verifikation: 26 Listen, 184 Bullets, 93 keepNext-Markierungen, Pattern für Listen mit n ≥ 6 z.B. `KK......KK.` (Liste mit 11 Bullets: erste 2 + Bullets 9 und 10 keepNext). Auf Thomas' System visuell bestätigt: Stationen-Listen werden jetzt sauber an guter Stelle getrennt, keine ungenutzten Seitenenden mehr, kein einzelner Bullet alleine am Seitenrand. - Sandbox-Verifikation: 26 Listen, 184 Bullets, 93 keepNext-Markierungen, Pattern für Listen mit n ≥ 6 z.B. `KK......KK.` (Liste mit 11 Bullets: erste 2 + Bullets 9 und 10 keepNext). Auf Thomas' System visuell bestätigt: Stationen-Listen werden jetzt sauber an guter Stelle getrennt, keine ungenutzten Seitenenden mehr, kein einzelner Bullet alleine am Seitenrand.
## Iteration B4 (S08) — Heading-Farben und H2-Trennlinien
**B4.1 — Heading-Farben in destengsblue:** Heading 1, 2 und 3 werden in `build/build-reference-docx.py` per Funktion `set_heading_colors` auf `<w:color w:val="0B5394"/>` gesetzt; das `themeColor`-Attribut (Pandoc-Default: `accent1`) wird entfernt, damit die Farbe nicht aus dem Word-Theme kommt. Visuelle Bestätigung im DOCX: alle drei Heading-Levels erscheinen in destengsblue.
**B4.2 — Heading-Trennlinien (Sackgasse):** Erster Versuch war eine Bottom-Border direkt auf den Heading 1/2-Stilen, mit symmetrischem Indent (`left=2268`, `right=2268`, `hanging=2268`) für eine zentrierte Halblinie ca. 50 % der Textbreite. Word hat den `hanging`-Indent jedoch so interpretiert, dass die Border bei der visuellen Position der ersten Zeile (= 0 dxa) beginnt — die Linien erschienen linksbündig statt zentriert. **Verworfen.** Lehre: Words `right`-Indent begrenzt sowohl Text als auch Border, deshalb ist eine Border *schmaler als der Heading-Text* über den Heading-Stil selbst nicht erreichbar. Die Heading-Border-Logik wurde aus dem Skript wieder entfernt; nur die Heading-Farben (B4.1) sind geblieben.
**B4.3 — Markdown-HRs aus cv.md entfernt:** Beim Build der ersten B4-Variante fielen Thomas „Doppellinien über die gesamte Zeilenbreite" auf, die als anklickbare Word-Horizontal-Lines erschienen. Quelle: 21 alleinstehende `---`-Zeilen in `cv.md`. Pandoc rendert Markdown-HRs im PDF als `\begin{center}\rule{0.5\linewidth}{0.5pt}\end{center}` (saubere zentrierte Halblinie 0.5 pt) und im DOCX als VML-`<v:rect ... o:hr="t"/>` (Embossed-Doppellinien-Look). Auf Thomas' Wunsch wurden alle 21 HR-Zeilen aus `cv.md` entfernt — PDF verliert die Trennlinien zwischen Stationen, DOCX verliert die Doppellinien. Die Tabellen-Strich-Zeilen der Multiline-Tabelle für Ausbildung blieben unangetastet (anderes Pattern: `^---------- -----...$`). Sandbox-Verifikation: 21 → 0 `o:hr="t"` Vorkommen im DOCX.
**B4.3-Vorfall — Datei-Verlust und Wiederherstellung:** Beim ersten HR-Removal hat die Sandbox die `cv.md` durch einen NTFS-Mount-Stale-Read truncated gelesen (20043 statt 20201 Bytes — die letzten 5 Zeilen mit „Englisch", „Veröffentlichungen", „Dissertation, fünf Veröffentlichungen, ein Patent, eine Erfindungsmeldung" fehlten). Das Python-Skript hat die HRs aus dieser truncated Version entfernt und die Datei zurückgeschrieben — die echte `cv.md` auf Thomas' System wäre damit ohne den Schluss-Block gewesen. Sofortige Wiederherstellung aus `git show HEAD:artefakte/01-lebenslauf/source/cv.md` (= S06-Commit be4f695, der letzte mit cv.md-Änderung); HR-Removal anschließend erneut auf der git-Version als Input (kein zweiter Sandbox-Read), Output direkt zurückgeschrieben. Live-Datei nach erfolgreichem zweiten Versuch: 20096 Bytes / 288 Zeilen, korrektes Ende. **Lehre für die Pipeline:** Bei jedem Sandbox-write auf NTFS-Mount-Datei mit grösserem Volumen erst die git-Version verifizieren, nicht blind dem Sandbox-Read trauen.
**B4.4 — H2-Trennlinien via Post-Processing:** Thomas wünschte stattdessen Trennlinien unter H2 (für visuelle Trennung der Hauptabschnitte und um H3 wieder klarer abzuheben). Nach einem Demo-Vergleich (linksbündiger Trennstrich vs. Underline-auf-Heading-Text in Text-Breite) Entscheidung für Trennstrich. Finale Parameter: schwarz (`000000`), 8,6 cm Linienlänge (= 4876 dxa, `right`-Indent 4196 dxa bei 9072 dxa Textbreite), 1,25 pt dick (`<w:sz w:val="10"/>` — sz ist in 1/8 pt). Umgesetzt in `build/post-process-docx.py`: Funktion `process_document_xml` ergänzt um eine zweite Logik, die nach jedem H2-Absatz einen leeren Trenn-Absatz mit Bottom-Border einfügt. Trenn-Absatz: `<w:spacing before=0 after=80>`, `<w:ind right=4196>`, `<w:pBdr><w:bottom single sz=10 space=2 color=000000>`, `<w:rPr><w:sz val=2>` (1 pt) für minimale Absatzhöhe. Sandbox-Verifikation: 7 H2 → 7 Trenner. Visuelle Bestätigung durch Thomas: Trennlinien sehen gut aus, Hierarchie zwischen H2 und H3 wieder klar.
**Warum kein Heading-Stil-Border:** Words `right`-Indent gilt sowohl für Text als auch für Border. Eine Border *schmaler als der Heading-Text* ist über den Stil selbst nicht abbildbar, weil Indent den Text mitkürzt. Lösung: separater Trenn-Absatz nach dem Heading. Die Underline-Alternative (Linie genau in Heading-Text-Breite) wurde verworfen, weil sie wie ein unterstrichener Text wirkt und nicht wie ein Trenner.
## Nächste Schritte ## Nächste Schritte
1. **Iteration B4 — Heading-Farben auf DesTEngS-Blau und/oder Trennlinien analog PDF.** Eher Kosmetik bei Vorlage für Consulting-Agenturen, aber für eigene Direktverwendung des DOCX (Website-Download, persönliche Bewerbungen) sinnvoll. 1. **Iteration C — Foto-Einbindung:** Portraitfoto in `source/cv.md` einbetten (Pandoc-Image-Syntax), Position und Größe im Template absichern (z.B. oben rechts neben Name, ca. 3 cm).
2. **Iteration C — Foto-Einbindung:** Portraitfoto in `source/cv.md` einbetten (Pandoc-Image-Syntax), Position und Größe im Template absichern (z.B. oben rechts neben Name, ca. 3 cm). 2. **Iteration D — Hyphenation-Feintuning für PDF:** Kurze Wortteile am Zeilenanfang mit höherer Penalty oder gezielten `\hyphenation`-Ausnahmen reduzieren. Iterativ.
3. **Iteration D — Hyphenation-Feintuning für PDF:** Kurze Wortteile am Zeilenanfang mit höherer Penalty oder gezielten `\hyphenation`-Ausnahmen reduzieren. Iterativ. 3. Teilgebiet nach erfolgreichem Output und Freigabe durch Thomas abschließen (R2-OK von Thomas: Status auf „abgeschlossen" im zentral-index.md).
4. Teilgebiet nach erfolgreichem Output und Freigabe durch Thomas abschließen (R2-OK von Thomas: Status auf „abgeschlossen" im zentral-index.md).
## Artefakte ## Artefakte
@@ -199,8 +212,8 @@ Die in S04 mit docx-js erstellte Version hatte strukturelle typographische Mäng
- `artefakte/01-lebenslauf/source/foto-wrba_2026_6782_1.jpg` — Portraitfoto (umbenannt, noch nicht in cv.md eingebunden). - `artefakte/01-lebenslauf/source/foto-wrba_2026_6782_1.jpg` — Portraitfoto (umbenannt, noch nicht in cv.md eingebunden).
- `artefakte/01-lebenslauf/templates/template.tex` — Pandoc-LaTeX-Template für LuaLaTeX (Iteration A inkl. Pandoc-3.x-Hotfix `\newcounter{none}`). - `artefakte/01-lebenslauf/templates/template.tex` — Pandoc-LaTeX-Template für LuaLaTeX (Iteration A inkl. Pandoc-3.x-Hotfix `\newcounter{none}`).
- `artefakte/01-lebenslauf/templates/reference.docx` — Pandoc-Reference-Doc, **automatisch erzeugt** durch `build/build-reference-docx.py`. Nicht von Hand editieren — Änderungen würden beim nächsten Skript-Lauf überschrieben. - `artefakte/01-lebenslauf/templates/reference.docx` — Pandoc-Reference-Doc, **automatisch erzeugt** durch `build/build-reference-docx.py`. Nicht von Hand editieren — Änderungen würden beim nächsten Skript-Lauf überschrieben.
- `artefakte/01-lebenslauf/build/build-reference-docx.py` — Python-Skript zum Bauen der `reference.docx` (Iterationen B1, B1.5, B2, B3). Manuell aufrufen, wenn Stile geändert werden sollen, danach normalen `build.ps1` laufen. - `artefakte/01-lebenslauf/build/build-reference-docx.py` — Python-Skript zum Bauen der `reference.docx` (Iterationen B1, B1.5, B2, B3, B4.1 Heading-Farben). Manuell aufrufen, wenn Stile geändert werden sollen, danach normalen `build.ps1` laufen.
- `artefakte/01-lebenslauf/build/post-process-docx.py` — Python-Skript für DOCX-Post-Processing (B3.5 Listen-Bullet-Schutz). Wird automatisch von `build.ps1` als Schritt [3/3] aufgerufen. - `artefakte/01-lebenslauf/build/post-process-docx.py` — Python-Skript für DOCX-Post-Processing (B3.5 Listen-Bullet-Schutz und B4.4 H2-Trennlinien). Wird automatisch von `build.ps1` als Schritt [3/3] aufgerufen.
- `artefakte/01-lebenslauf/build/build.ps1` — PowerShell-Build-Skript (PDF + DOCX + Post-Process) mit 3-Sekunden-Pause bei Fehler. - `artefakte/01-lebenslauf/build/build.ps1` — PowerShell-Build-Skript (PDF + DOCX + Post-Process) mit 3-Sekunden-Pause bei Fehler.
- `artefakte/01-lebenslauf/output/` — erzeugte Ausgaben plus `build.log`. - `artefakte/01-lebenslauf/output/` — erzeugte Ausgaben plus `build.log`.