<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>230449</bug_id>
          
          <creation_ts>2021-09-18 14:14:49 -0700</creation_ts>
          <short_desc>[Cocoa] Hook up palettes to CoreText</short_desc>
          <delta_ts>2021-09-22 21:52:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>230394</dependson>
    
    <dependson>230447</dependson>
    
    <dependson>230592</dependson>
          <blocked>230446</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>clopez</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1794803</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-18 14:14:49 -0700</bug_when>
    <thetext>... in preparePlatformFont()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794847</commentid>
    <comment_count>1</comment_count>
      <attachid>438579</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-18 23:15:11 -0700</bug_when>
    <thetext>Created attachment 438579
Needs tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794849</commentid>
    <comment_count>2</comment_count>
      <attachid>438581</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-18 23:24:12 -0700</bug_when>
    <thetext>Created attachment 438581
Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794850</commentid>
    <comment_count>3</comment_count>
      <attachid>438582</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-18 23:24:51 -0700</bug_when>
    <thetext>Created attachment 438582
Test font</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795451</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-21 01:08:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/83343475&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795953</commentid>
    <comment_count>5</comment_count>
      <attachid>438920</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-21 22:19:11 -0700</bug_when>
    <thetext>Created attachment 438920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795954</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-09-21 22:20:21 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796353</commentid>
    <comment_count>7</comment_count>
      <attachid>438920</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-22 21:17:34 -0700</bug_when>
    <thetext>Comment on attachment 438920
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=438920&amp;action=review

&gt; Source/WebCore/css/CSSFontSelector.cpp:350
&gt; +    auto fontPaletteValues = lookupFontPaletteValues(familyName, fontDescription);

auto&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796361</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-22 21:52:16 -0700</bug_when>
    <thetext>Committed r282922 (242036@main): &lt;https://commits.webkit.org/242036@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438579</attachid>
            <date>2021-09-18 23:15:11 -0700</date>
            <delta_ts>2021-09-21 22:19:10 -0700</delta_ts>
            <desc>Needs tests</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>68259</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IDkzMjUwYmU2MWY2OWRhNmM5YjhlZDEwNzg5YmM1NjA5YzhmNWQwMzkKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBTYXQgU2VwIDE4
IDIzOjEzOjUwIDIwMjEgLTA3MDAKCiAgICBbQ29jb2FdIEhvb2sgdXAgcGFsZXR0ZXMgdG8gQ29y
ZVRleHQKICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA0NDkK
ICAgIAogICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAgICAKICAgIFNvdXJjZS9XZWJD
b3JlOgogICAgCiAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KICAgIAogICAgKiBjc3MvQ1NTRm9u
dEZhY2UuY3BwOgogICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpmb250KToKICAgICogY3NzL0NT
U0ZvbnRGYWNlLmg6CiAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5jcHA6CiAgICAoV2ViQ29y
ZTo6Q1NTRm9udEZhY2VTb3VyY2U6OmxvYWQpOgogICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291
cmNlOjpmb250KToKICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmg6CiAgICAqIGNzcy9DU1NG
b250U2VsZWN0b3IuY3BwOgogICAgKFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6bG9va3VwRm9u
dFBhbGV0dGVWYWx1ZXMpOgogICAgKFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6Zm9udFJhbmdl
c0ZvckZhbWlseSk6CiAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuaDoKICAgICogY3NzL0NTU1Nl
Z21lbnRlZEZvbnRGYWNlLmNwcDoKICAgIChXZWJDb3JlOjpDU1NTZWdtZW50ZWRGb250RmFjZTo6
Zm9udFJhbmdlcyk6CiAgICAqIGNzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5oOgogICAgKiBsb2Fk
ZXIvRm9udExvYWRSZXF1ZXN0Lmg6CiAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDoK
ICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpjcmVhdGVGb250KToKICAgIChXZWJDb3JlOjpDYWNo
ZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YSk6CiAgICAqIGxvYWRlci9jYWNoZS9D
YWNoZWRGb250Lmg6CiAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250TG9hZFJlcXVlc3QuaDoK
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3BwOgogICAgKFdlYkNvcmU6OkNhY2hl
ZFNWR0ZvbnQ6OmNyZWF0ZUZvbnQpOgogICAgKFdlYkNvcmU6OkNhY2hlZFNWR0ZvbnQ6OnBsYXRm
b3JtRGF0YUZyb21DdXN0b21EYXRhKToKICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQu
aDoKICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CiAgICAoV2ViQ29yZTo6Rm9udDo6
Y3JlYXRlKToKICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoKICAgIChXZWJD
b3JlOjpvcGVyYXRvcj09KToKICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXlI
YXNoOjpoYXNoKToKICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmNhY2hlZEZvbnRQbGF0Zm9ybURh
dGEpOgogICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Zm9udEZvckZhbWlseSk6CiAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oOgogICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Zm9udEZv
ckZhbWlseSk6CiAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpjYWNoZWRGb250UGxhdGZvcm1EYXRh
KToKICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGFGb3JUZXN0
aW5nKToKICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBhbGV0dGVWYWx1ZXMuaDoKICAgIChX
ZWJDb3JlOjpGb250UGFsZXR0ZVZhbHVlczo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CiAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKICAgIChXZWJDb3Jl
OjphZGRBdHRyaWJ1dGVzRm9yRm9udFBhbGV0dGVzKToKICAgIChXZWJDb3JlOjpwcmVwYXJlUGxh
dGZvcm1Gb250KToKICAgIChXZWJDb3JlOjpmb250V2l0aEZhbWlseSk6CiAgICAoV2ViQ29yZTo6
Rm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKToKICAgIChXZWJDb3JlOjpGb250Q2Fj
aGU6OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVycyk6CiAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0Lmg6CiAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uQ29yZVRleHQuY3BwOgogICAgKFdlYkNvcmU6OkZvbnRG
YW1pbHlTcGVjaWZpY2F0aW9uQ29yZVRleHQ6OmZvbnRSYW5nZXMgY29uc3QpOgogICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CiAgICAoV2ViQ29y
ZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CiAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmg6CiAgICAqIHdvcmtlcnMv
V29ya2VyRm9udExvYWRSZXF1ZXN0LmNwcDoKICAgIChXZWJDb3JlOjpXb3JrZXJGb250TG9hZFJl
cXVlc3Q6OmNyZWF0ZUZvbnQpOgogICAgKiB3b3JrZXJzL1dvcmtlckZvbnRMb2FkUmVxdWVzdC5o
OgogICAgCiAgICBTb3VyY2UvV2ViQ29yZS9QQUw6CiAgICAKICAgICogcGFsL3NwaS9jZi9Db3Jl
VGV4dFNQSS5oOgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YzQxYTI4ZWM0YTEuLjI1ODU0MjNlNWUyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIxLTA5LTE4ICBNeWxlcyBDLiBNYXhmaWVsZCAg
PG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBIb29rIHVwIHBhbGV0dGVz
IHRvIENvcmVUZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzA0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGNzcy9DU1NGb250RmFjZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6Zm9udCk6CisgICAgICAgICogY3Nz
L0NTU0ZvbnRGYWNlLmg6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNlOjpsb2FkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ZvbnRGYWNlU291cmNlOjpmb250KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VT
b3VyY2UuaDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udFNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6bG9va3VwRm9udFBhbGV0dGVWYWx1ZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjpmb250UmFuZ2VzRm9yRmFtaWx5KToKKyAgICAg
ICAgKiBjc3MvQ1NTRm9udFNlbGVjdG9yLmg6CisgICAgICAgICogY3NzL0NTU1NlZ21lbnRlZEZv
bnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjpmb250
UmFuZ2VzKToKKyAgICAgICAgKiBjc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuaDoKKyAgICAgICAg
KiBsb2FkZXIvRm9udExvYWRSZXF1ZXN0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZEZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRm9udDo6Y3JlYXRlRm9udCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YSk6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaDoKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkRm9udExvYWRSZXF1ZXN0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNWR0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU1ZHRm9udDo6Y3JlYXRl
Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTVkdGb250OjpwbGF0Zm9ybURhdGFGcm9t
Q3VzdG9tRGF0YSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBs
YXRmb3JtRGF0YUNhY2hlS2V5SGFzaDo6aGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2Fj
aGU6OmNhY2hlZEZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hl
Ojpmb250Rm9yRmFtaWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Zm9udEZvckZhbWlseSk6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q2FjaGU6OmNhY2hlZEZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhRm9yVGVzdGluZyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBhbGV0dGVWYWx1ZXMuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRQYWxldHRlVmFsdWVzOjpvcGVyYXRvciBib29sIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjphZGRBdHRyaWJ1dGVzRm9yRm9udFBhbGV0dGVzKToKKyAgICAgICAgKFdl
YkNvcmU6OnByZXBhcmVQbGF0Zm9ybUZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Zm9udFdpdGhG
YW1pbHkpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1E
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFy
YWN0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3Jl
VGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRGYW1pbHlTcGVj
aWZpY2F0aW9uQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhbWlseVNwZWNp
ZmljYXRpb25Db3JlVGV4dDo6Zm9udFJhbmdlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaDoKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlckZvbnRMb2FkUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJGb250TG9hZFJlcXVlc3Q6OmNyZWF0ZUZvbnQpOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyRm9udExvYWRSZXF1ZXN0Lmg6CisKIDIwMjEtMDktMTggIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBQdXNoIGZvbnQtcGFsZXR0ZS12YWx1ZXMg
ZGF0YSBpbnRvIENTU0ZvbnRTZWxlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggYzA2M2Q2MzUx
ZWRkLi43ODNmMTg0NTQyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDIxLTA5LTE4ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0NvY29hXSBIb29rIHVwIHBhbGV0dGVzIHRvIENvcmVUZXh0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA0NDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9zcGkvY2YvQ29yZVRleHRT
UEkuaDoKKwogMjAyMS0wOS0xNyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW01hYyBDYXRhbHlzdF0gRml4IGJ1aWxkIGlzc3VlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9Db3JlVGV4dFNQSS5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY2YvQ29yZVRleHRTUEkuaAppbmRleCA1MDM4NzgzMWQ2MjAuLjRmNzYz
N2M3MWUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ29yZVRl
eHRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9Db3JlVGV4dFNQSS5o
CkBAIC04Nyw2ICs4NywxMSBAQCBlbnVtIHsKICAgICBrQ1RGb250VHJhaXRFbXBoYXNpemVkID0g
a0NURm9udFRyYWl0Qm9sZCwKIH07CiAKK3R5cGVkZWYgQ0ZfRU5VTShDRkluZGV4LCBDVEZvbnRQ
YWxldHRlKSB7CisgICAga0NURm9udFBhbGV0dGVMaWdodCA9IC0xLAorICAgIGtDVEZvbnRQYWxl
dHRlRGFyayA9IC0yCit9OworCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX09UU1ZHVGFibGUgKiBP
VFNWR1RhYmxlUmVmOwogCiAjZW5kaWYKQEAgLTE1MCw2ICsxNTUsOSBAQCBleHRlcm4gY29uc3Qg
Q0ZTdHJpbmdSZWYga0NURm9udFVJRm9udERlc2lnblNlcmlmOwogZXh0ZXJuIGNvbnN0IENGU3Ry
aW5nUmVmIGtDVEZvbnRVSUZvbnREZXNpZ25Nb25vc3BhY2VkOwogZXh0ZXJuIGNvbnN0IENGU3Ry
aW5nUmVmIGtDVEZvbnRVSUZvbnREZXNpZ25Sb3VuZGVkOwogCitleHRlcm4gY29uc3QgQ0ZTdHJp
bmdSZWYga0NURm9udFBhbGV0dGVBdHRyaWJ1dGU7CitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYg
a0NURm9udFBhbGV0dGVDb2xvcnNBdHRyaWJ1dGU7CisKIGV4dGVybiBjb25zdCBDRlN0cmluZ1Jl
ZiBrQ1RGcmFtZU1heGltdW1OdW1iZXJPZkxpbmVzQXR0cmlidXRlTmFtZTsKIAogYm9vbCBDVEZv
bnREZXNjcmlwdG9ySXNTeXN0ZW1VSUZvbnQoQ1RGb250RGVzY3JpcHRvclJlZik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlLmNwcAppbmRleCBiMTI1NTY3ODllZmIuLmUzZmM0NWRkMGZlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUg
IkZvbnRDYWNoZS5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkZv
bnRGYWNlLmgiCisjaW5jbHVkZSAiRm9udFBhbGV0dGVWYWx1ZXMuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0eWxlQnVpbGRl
ckNvbnZlcnRlci5oIgpAQCAtNjUxLDcgKzY1Miw3IEBAIHN0YXRpYyBGb250OjpWaXNpYmlsaXR5
IHZpc2liaWxpdHkoQ1NTRm9udEZhY2U6OlN0YXR1cyBzdGF0dXMsIENTU0ZvbnRGYWNlOjpGb250
CiAgICAgfQogfQogCi1SZWZQdHI8Rm9udD4gQ1NTRm9udEZhY2U6OmZvbnQoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50
aGV0aWNJdGFsaWMsIEV4dGVybmFsUmVzb3VyY2VEb3dubG9hZFBvbGljeSBwb2xpY3kpCitSZWZQ
dHI8Rm9udD4gQ1NTRm9udEZhY2U6OmZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVz
Y3JpcHRpb24sIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIEV4dGVy
bmFsUmVzb3VyY2VEb3dubG9hZFBvbGljeSBwb2xpY3ksIGNvbnN0IEZvbnRQYWxldHRlVmFsdWVz
JiBmb250UGFsZXR0ZVZhbHVlcykKIHsKICAgICBpZiAoY29tcHV0ZUZhaWx1cmVTdGF0ZSgpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTY4MCw3ICs2ODEsNyBAQCBSZWZQdHI8Rm9udD4g
Q1NTRm9udEZhY2U6OmZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24s
IGJvb2wgc3ludAogICAgICAgICAgICAgcmV0dXJuIEZvbnQ6OmNyZWF0ZShmb250Q2FjaGUubGFz
dFJlc29ydEZhbGxiYWNrRm9udChmb250RGVzY3JpcHRpb24pLT5wbGF0Zm9ybURhdGEoKSwgRm9u
dDo6T3JpZ2luOjpMb2NhbCwgJmZvbnRDYWNoZSwgRm9udDo6SW50ZXJzdGl0aWFsOjpZZXMsIHZp
c2liaWxpdHkpOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTRm9udEZhY2VTb3VyY2U6OlN0
YXR1czo6U3VjY2VzczoKLSAgICAgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IHNvdXJjZS0+Zm9u
dChmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgbV9mZWF0
dXJlU2V0dGluZ3MsIG1fZm9udFNlbGVjdGlvbkNhcGFiaWxpdGllcykpCisgICAgICAgICAgICBp
ZiAoYXV0byByZXN1bHQgPSBzb3VyY2UtPmZvbnQoZm9udERlc2NyaXB0aW9uLCBzeW50aGV0aWNC
b2xkLCBzeW50aGV0aWNJdGFsaWMsIG1fZmVhdHVyZVNldHRpbmdzLCBtX2ZvbnRTZWxlY3Rpb25D
YXBhYmlsaXRpZXMsIGZvbnRQYWxldHRlVmFsdWVzKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTRm9udEZhY2VTb3Vy
Y2U6OlN0YXR1czo6RmFpbHVyZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmgKaW5kZXggZGY1OGRm
NzBmMWY4Li4zMzZmMTNjZTkzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgLSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNDIsNiArNDIsNyBAQCBjbGFzcyBDYWxsRnJhbWU7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENTU0ZvbnRGYWNlU291cmNlOworY2xhc3MgRm9udFBhbGV0dGVWYWx1ZXM7CiBj
bGFzcyBDU1NGb250U2VsZWN0b3I7CiBjbGFzcyBDU1NTZWdtZW50ZWRGb250RmFjZTsKIGNsYXNz
IENTU1ZhbHVlOwpAQCAtMTE1LDcgKzExNiw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbG9hZCgp
OwogCi0gICAgUmVmUHRyPEZvbnQ+IGZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBz
eW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgRXh0ZXJuYWxSZXNvdXJjZURvd25s
b2FkUG9saWN5KTsKKyAgICBSZWZQdHI8Rm9udD4gZm9udChjb25zdCBGb250RGVzY3JpcHRpb24m
LCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBFeHRlcm5hbFJlc291
cmNlRG93bmxvYWRQb2xpY3ksIGNvbnN0IEZvbnRQYWxldHRlVmFsdWVzJik7CiAKICAgICBzdGF0
aWMgdm9pZCBhcHBlbmRTb3VyY2VzKENTU0ZvbnRGYWNlJiwgQ1NTVmFsdWVMaXN0JiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIGJvb2wgaXNJbml0aWF0aW5nRWxlbWVudEluVXNlckFnZW50U2hh
ZG93VHJlZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCmluZGV4
IGQzYTNiMDA2NjRkNi4uOGQyZmMyODQzMTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
RmFjZVNvdXJjZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3
LCAyMDA4LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNyAtIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVk
ZSAiRm9udENhc2NhZGVEZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJGb250UGFs
ZXR0ZVZhbHVlcy5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZE9ic2VydmVyLmgiCiAjaW5jbHVk
ZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNWR0ZvbnRFbGVtZW50Lmgi
CkBAIC0xODUsNyArMTg2LDcgQEAgdm9pZCBDU1NGb250RmFjZVNvdXJjZTo6bG9hZChEb2N1bWVu
dCogZG9jdW1lbnQpCiAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0T25lRmFtaWx5KG1f
ZmFtaWx5TmFtZU9yVVJJKTsKICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRl
ZFNpemUoMSk7CiAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0U2hvdWxkQWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHMobV9mYWNlLmFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpOwotICAgICAg
ICAgICAgc3VjY2VzcyA9IEZvbnRDYWNoZTo6c2luZ2xldG9uKCkuZm9udEZvckZhbWlseShmb250
RGVzY3JpcHRpb24sIG1fZmFtaWx5TmFtZU9yVVJJLCBudWxscHRyLCBGb250U2VsZWN0aW9uU3Bl
Y2lmaWVkQ2FwYWJpbGl0aWVzKCksIHRydWUpOworICAgICAgICAgICAgc3VjY2VzcyA9IEZvbnRD
YWNoZTo6c2luZ2xldG9uKCkuZm9udEZvckZhbWlseShmb250RGVzY3JpcHRpb24sIG1fZmFtaWx5
TmFtZU9yVVJJLCBudWxscHRyLCB7IH0sIHsgfSwgdHJ1ZSk7CiAgICAgICAgICAgICBpZiAoZG9j
dW1lbnQgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBUElT
dGF0aXN0aWNzRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIFJlc291cmNlTG9hZE9ic2VydmVy
OjpzaGFyZWQoKS5sb2dGb250TG9hZCgqZG9jdW1lbnQsIG1fZmFtaWx5TmFtZU9yVVJJLnN0cmlu
ZygpLCBzdWNjZXNzKTsKICAgICAgICAgfQpAQCAtMTkzLDcgKzE5NCw3IEBAIHZvaWQgQ1NTRm9u
dEZhY2VTb3VyY2U6OmxvYWQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIH0KIH0KIAotUmVmUHRy
PEZvbnQ+IENTU0ZvbnRGYWNlU291cmNlOjpmb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9u
dERlc2NyaXB0aW9uLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBj
b25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBGb250U2VsZWN0aW9u
U3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKQorUmVmUHRyPEZvbnQ+
IENTU0ZvbnRGYWNlU291cmNlOjpmb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2Ny
aXB0aW9uLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBG
b250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBjb25zdCBGb250U2VsZWN0aW9u
U3BlY2lmaWVkQ2FwYWJpbGl0aWVzJiBmb250RmFjZUNhcGFiaWxpdGllcywgY29uc3QgRm9udFBh
bGV0dGVWYWx1ZXMmIGZvbnRQYWxldHRlVmFsdWVzKQogewogICAgIEFTU0VSVChzdGF0dXMoKSA9
PSBTdGF0dXM6OlN1Y2Nlc3MpOwogCkBAIC0yMDMsMTIgKzIwNCwxMiBAQCBSZWZQdHI8Rm9udD4g
Q1NTRm9udEZhY2VTb3VyY2U6OmZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3Jp
cHRpb24sIGJvbwogICAgICAgICBpZiAobV9pbW1lZGlhdGVTb3VyY2UpIHsKICAgICAgICAgICAg
IGlmICghbV9pbW1lZGlhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKQogICAgICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwotICAgICAgICAgICAgcmV0dXJuIEZvbnQ6OmNyZWF0ZShDYWNoZWRG
b250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YSgqbV9pbW1lZGlhdGVGb250Q3VzdG9tUGxh
dGZvcm1EYXRhLCBmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxp
YywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMpLCBGb250OjpPcmlnaW46
OlJlbW90ZSk7CisgICAgICAgICAgICByZXR1cm4gRm9udDo6Y3JlYXRlKENhY2hlZEZvbnQ6OnBs
YXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKCptX2ltbWVkaWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURh
dGEsIGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250
RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcywgZm9udFBhbGV0dGVWYWx1ZXMpLCBG
b250OjpPcmlnaW46OlJlbW90ZSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBXZSdyZSBsb2Nh
bC4gSnVzdCByZXR1cm4gYSBGb250IGZyb20gdGhlIG5vcm1hbCBjYWNoZS4KICAgICAgICAgLy8g
V2UgZG9uJ3Qgd2FudCB0byBjaGVjayBhbHRlcm5hdGUgZm9udCBmYW1pbHkgbmFtZXMgaGVyZSwg
c28gcGFzcyB0cnVlIGFzIHRoZSBjaGVja2luZ0FsdGVybmF0ZU5hbWUgcGFyYW1ldGVyLgotICAg
ICAgICByZXR1cm4gRm9udENhY2hlOjpzaW5nbGV0b24oKS5mb250Rm9yRmFtaWx5KGZvbnREZXNj
cmlwdGlvbiwgbV9mYW1pbHlOYW1lT3JVUkksICZmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNh
cGFiaWxpdGllcywgdHJ1ZSk7CisgICAgICAgIHJldHVybiBGb250Q2FjaGU6OnNpbmdsZXRvbigp
LmZvbnRGb3JGYW1pbHkoZm9udERlc2NyaXB0aW9uLCBtX2ZhbWlseU5hbWVPclVSSSwgJmZvbnRG
YWNlRmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBmb250UGFsZXR0ZVZhbHVlcywgdHJ1
ZSk7CiAgICAgfQogCiAgICAgaWYgKG1fZm9udFJlcXVlc3QpIHsKQEAgLTIxNiw3ICsyMTcsNyBA
QCBSZWZQdHI8Rm9udD4gQ1NTRm9udEZhY2VTb3VyY2U6OmZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBmb250RGVzY3JpcHRpb24sIGJvbwogICAgICAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nlc3Ms
IHN1Y2Nlc3MpOwogCiAgICAgICAgIEFTU0VSVChzdGF0dXMoKSA9PSBTdGF0dXM6OlN1Y2Nlc3Mp
OwotICAgICAgICBhdXRvIHJlc3VsdCA9IG1fZm9udFJlcXVlc3QtPmNyZWF0ZUZvbnQoZm9udERl
c2NyaXB0aW9uLCBtX2ZhbWlseU5hbWVPclVSSSwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRh
bGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyk7CisgICAgICAgIGF1
dG8gcmVzdWx0ID0gbV9mb250UmVxdWVzdC0+Y3JlYXRlRm9udChmb250RGVzY3JpcHRpb24sIG1f
ZmFtaWx5TmFtZU9yVVJJLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRGYWNl
RmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBmb250UGFsZXR0ZVZhbHVlcyk7CiAgICAg
ICAgIEFTU0VSVChyZXN1bHQpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KQEAgLTIy
OCw3ICsyMjksNyBAQCBSZWZQdHI8Rm9udD4gQ1NTRm9udEZhY2VTb3VyY2U6OmZvbnQoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvbwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICBpZiAoIW1faW5Eb2N1bWVudEN1c3RvbVBsYXRmb3JtRGF0YSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIEZvbnQ6OmNyZWF0ZShtX2luRG9jdW1lbnRDdXN0
b21QbGF0Zm9ybURhdGEtPmZvbnRQbGF0Zm9ybURhdGEoZm9udERlc2NyaXB0aW9uLCBzeW50aGV0
aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJp
bGl0aWVzKSwgRm9udDo6T3JpZ2luOjpSZW1vdGUpOworICAgIHJldHVybiBGb250OjpjcmVhdGUo
bV9pbkRvY3VtZW50Q3VzdG9tUGxhdGZvcm1EYXRhLT5mb250UGxhdGZvcm1EYXRhKGZvbnREZXNj
cmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVz
LCBmb250RmFjZUNhcGFiaWxpdGllcywgZm9udFBhbGV0dGVWYWx1ZXMpLCBGb250OjpPcmlnaW46
OlJlbW90ZSk7CiB9CiAKIGJvb2wgQ1NTRm9udEZhY2VTb3VyY2U6OmlzU1ZHRm9udEZhY2VTb3Vy
Y2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuaAppbmRleCAzMGQ3
OTk3ZmYxNzEuLmI4Y2RlYTUzMTg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRGYWNlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291
cmNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
NyAtIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zOCw2ICszOCw3IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3Mg
Rm9udDsKIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOwogY2xhc3MgRm9udERlc2NyaXB0
aW9uOworY2xhc3MgRm9udFBhbGV0dGVWYWx1ZXM7CiBzdHJ1Y3QgRm9udFNlbGVjdGlvblNwZWNp
ZmllZENhcGFiaWxpdGllczsKIHN0cnVjdCBGb250VmFyaWFudFNldHRpbmdzOwogY2xhc3MgU1ZH
Rm9udEZhY2VFbGVtZW50OwpAQCAtNzMsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBvcHBv
cnR1bmlzdGljYWxseVN0YXJ0Rm9udERhdGFVUkxMb2FkaW5nKCk7CiAKICAgICB2b2lkIGxvYWQo
RG9jdW1lbnQqID0gbnVsbHB0cik7Ci0gICAgUmVmUHRyPEZvbnQ+IGZvbnQoY29uc3QgRm9udERl
c2NyaXB0aW9uJiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29u
c3QgRm9udEZlYXR1cmVTZXR0aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRp
ZXMpOworICAgIFJlZlB0cjxGb250PiBmb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wg
c3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0
dGluZ3MmLCBjb25zdCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzJiwgY29uc3Qg
Rm9udFBhbGV0dGVWYWx1ZXMmKTsKIAogICAgIEZvbnRMb2FkUmVxdWVzdCogZm9udExvYWRSZXF1
ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9mb250UmVxdWVzdC5nZXQoKTsgfQogICAgIGJvb2wgcmVx
dWlyZXNFeHRlcm5hbFJlc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9mb250UmVxdWVzdC5nZXQo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAppbmRleCBhN2NlYWQ1ZGZl
OGEuLjU2N2NhYWI0ZjcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRT
ZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAK
QEAgLTMxOCw2ICszMTgsMjUgQEAgc3RkOjpvcHRpb25hbDxBdG9tU3RyaW5nPiBDU1NGb250U2Vs
ZWN0b3I6OnJlc29sdmVHZW5lcmljRmFtaWx5KGNvbnN0IEZvbnREZXNjcmkKICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogfQogCitjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYgQ1NTRm9udFNlbGVj
dG9yOjpsb29rdXBGb250UGFsZXR0ZVZhbHVlcyhjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHlOYW1l
LCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Rm9udFBhbGV0dGVWYWx1ZXM+IGVtcHR5Rm9udFBhbGV0dGVWYWx1ZXM7
CisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPEZvbnRQYWxldHRlQ3VzdG9tPihmb250
RGVzY3JpcHRpb24uZm9udFBhbGV0dGUoKSkpCisgICAgICAgIHJldHVybiBlbXB0eUZvbnRQYWxl
dHRlVmFsdWVzLmdldCgpOworCisgICAgY29uc3QgQXRvbVN0cmluZyBwYWxldHRlTmFtZSA9IFdU
Rjo6Z2V0PEZvbnRQYWxldHRlQ3VzdG9tPihmb250RGVzY3JpcHRpb24uZm9udFBhbGV0dGUoKSku
aWRlbnRpZmllcjsKKworICAgIGF1dG8gZmFtaWx5SXRlcmF0b3IgPSBtX3BhbGV0dGVGYW1pbHlN
YXAuZmluZChmYW1pbHlOYW1lKTsKKyAgICBpZiAoZmFtaWx5SXRlcmF0b3IgPT0gbV9wYWxldHRl
RmFtaWx5TWFwLmVuZCgpKQorICAgICAgICByZXR1cm4gZW1wdHlGb250UGFsZXR0ZVZhbHVlcy5n
ZXQoKTsKKworICAgIGNvbnN0IGF1dG8mIHBhbGV0dGVOYW1lTWFwID0gZmFtaWx5SXRlcmF0b3It
PnZhbHVlOworICAgIGF1dG8gbmFtZUl0ZXJhdG9yID0gcGFsZXR0ZU5hbWVNYXAuZmluZChwYWxl
dHRlTmFtZSk7CisgICAgaWYgKG5hbWVJdGVyYXRvciA9PSBwYWxldHRlTmFtZU1hcC5lbmQoKSkK
KyAgICAgICAgcmV0dXJuIGVtcHR5Rm9udFBhbGV0dGVWYWx1ZXMuZ2V0KCk7CisgICAgcmV0dXJu
IG5hbWVJdGVyYXRvci0+dmFsdWU7Cit9CisKIEZvbnRSYW5nZXMgQ1NTRm9udFNlbGVjdG9yOjpm
b250UmFuZ2VzRm9yRmFtaWx5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
LCBjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHlOYW1lKQogewogICAgIC8vIElmIHRoaXMgQVNTRVJU
KCkgZmlyZXMsIGl0IHVzdWFsbHkgbWVhbnMgeW91IGZvcmdvdCBhIGRvY3VtZW50LnVwZGF0ZVN0
eWxlSWZOZWVkZWQoKSBzb21ld2hlcmUuCkBAIC0zMzQsNiArMzUzLDggQEAgRm9udFJhbmdlcyBD
U1NGb250U2VsZWN0b3I6OmZvbnRSYW5nZXNGb3JGYW1pbHkoY29uc3QgRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3IKICAgICAgICAgICAgIGZhbWlseUZvckxvb2t1cCA9ICpnZW5lcmljRmFtaWx5
T3B0aW9uYWw7CiAgICAgfTsKIAorICAgIGF1dG8gZm9udFBhbGV0dGVWYWx1ZXMgPSBsb29rdXBG
b250UGFsZXR0ZVZhbHVlcyhmYW1pbHlOYW1lLCBmb250RGVzY3JpcHRpb24pOworCiAgICAgaWYg
KHJlc29sdmVHZW5lcmljRmFtaWx5Rmlyc3QpCiAgICAgICAgIHJlc29sdmVBbmRBc3NpZ25HZW5l
cmljRmFtaWx5KCk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gaXM8RG9jdW1lbnQ+KG1fY29u
dGV4dC5nZXQoKSkgPyAmZG93bmNhc3Q8RG9jdW1lbnQ+KCptX2NvbnRleHQpIDogbnVsbHB0cjsK
QEAgLTM0MSwxMiArMzYyLDEyIEBAIEZvbnRSYW5nZXMgQ1NTRm9udFNlbGVjdG9yOjpmb250UmFu
Z2VzRm9yRmFtaWx5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyCiAgICAgaWYgKGZh
Y2UpIHsKICAgICAgICAgaWYgKGRvY3VtZW50ICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkud2ViQVBJU3RhdGlzdGljc0VuYWJsZWQoKSkKICAgICAgICAgICAgIFJl
c291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5sb2dGb250TG9hZCgqZG9jdW1lbnQsIGZhbWls
eUZvckxvb2t1cC5zdHJpbmcoKSwgdHJ1ZSk7Ci0gICAgICAgIHJldHVybiBmYWNlLT5mb250UmFu
Z2VzKCpmb250RGVzY3JpcHRpb25Gb3JMb29rdXApOworICAgICAgICByZXR1cm4gZmFjZS0+Zm9u
dFJhbmdlcygqZm9udERlc2NyaXB0aW9uRm9yTG9va3VwLCBmb250UGFsZXR0ZVZhbHVlcyk7CiAg
ICAgfQogCiAgICAgaWYgKCFyZXNvbHZlR2VuZXJpY0ZhbWlseUZpcnN0KQogICAgICAgICByZXNv
bHZlQW5kQXNzaWduR2VuZXJpY0ZhbWlseSgpOwotICAgIGF1dG8gZm9udCA9IG1fZm9udENhY2hl
LT5mb250Rm9yRmFtaWx5KCpmb250RGVzY3JpcHRpb25Gb3JMb29rdXAsIGZhbWlseUZvckxvb2t1
cCk7CisgICAgYXV0byBmb250ID0gbV9mb250Q2FjaGUtPmZvbnRGb3JGYW1pbHkoKmZvbnREZXNj
cmlwdGlvbkZvckxvb2t1cCwgZmFtaWx5Rm9yTG9va3VwLCBudWxscHRyLCB7IH0sIGZvbnRQYWxl
dHRlVmFsdWVzKTsKICAgICBpZiAoZG9jdW1lbnQgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS53ZWJBUElTdGF0aXN0aWNzRW5hYmxlZCgpKQogICAgICAgICBSZXNv
dXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkubG9nRm9udExvYWQoKmRvY3VtZW50LCBmYW1pbHlG
b3JMb29rdXAuc3RyaW5nKCksICEhZm9udCk7CiAgICAgcmV0dXJuIEZvbnRSYW5nZXMgeyBXVEZN
b3ZlKGZvbnQpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVj
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKaW5kZXggOGZmMjA1
ZmU2ZDAyLi41ZDc1ZTYyNmNjYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgK
QEAgLTEwNSw2ICsxMDUsOCBAQCBwcml2YXRlOgogCiAgICAgc3RkOjpvcHRpb25hbDxBdG9tU3Ry
aW5nPiByZXNvbHZlR2VuZXJpY0ZhbWlseShjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBB
dG9tU3RyaW5nJiBmYW1pbHkpOwogCisgICAgY29uc3QgRm9udFBhbGV0dGVWYWx1ZXMmIGxvb2t1
cEZvbnRQYWxldHRlVmFsdWVzKGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseU5hbWUsIGNvbnN0IEZv
bnREZXNjcmlwdGlvbiYpOworCiAgICAgLy8gQ1NTRm9udEZhY2U6OkNsaWVudAogICAgIHZvaWQg
Zm9udExvYWRlZChDU1NGb250RmFjZSYpIGZpbmFsOwogICAgIHZvaWQgdXBkYXRlU3R5bGVJZk5l
ZWRlZChDU1NGb250RmFjZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50
ZWRGb250RmFjZS5jcHAKaW5kZXggMjExZDIzNWUwOGI1Li45MGJhNzgyNWQ4NmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IC0gMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJGb250LmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAjaW5jbHVk
ZSAiRm9udERlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiRm9udFBhbGV0dGVWYWx1ZXMuaCIKICNp
bmNsdWRlICJGb250U2VsZWN0b3IuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTgsMTYg
KzU5LDE2IEBAIHZvaWQgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmZvbnRMb2FkZWQoQ1NTRm9udEZh
Y2UmKQogCiBjbGFzcyBDU1NGb250QWNjZXNzb3IgZmluYWwgOiBwdWJsaWMgRm9udEFjY2Vzc29y
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENTU0ZvbnRBY2Nlc3Nvcj4gY3JlYXRlKENTU0Zv
bnRGYWNlJiBmb250RmFjZSwgY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24s
IGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMpCisgICAgc3RhdGljIFJl
ZjxDU1NGb250QWNjZXNzb3I+IGNyZWF0ZShDU1NGb250RmFjZSYgZm9udEZhY2UsIGNvbnN0IEZv
bnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYg
Zm9udFBhbGV0dGVWYWx1ZXMsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFs
aWMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NGb250QWNjZXNzb3Io
Zm9udEZhY2UsIGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGlj
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0ZvbnRBY2Nlc3Nvcihmb250RmFj
ZSwgZm9udERlc2NyaXB0aW9uLCBmb250UGFsZXR0ZVZhbHVlcywgc3ludGhldGljQm9sZCwgc3lu
dGhldGljSXRhbGljKSk7CiAgICAgfQogCiAgICAgY29uc3QgRm9udCogZm9udChFeHRlcm5hbFJl
c291cmNlRG93bmxvYWRQb2xpY3kgcG9saWN5KSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAg
aWYgKCFtX3Jlc3VsdCB8fCAocG9saWN5ID09IEV4dGVybmFsUmVzb3VyY2VEb3dubG9hZFBvbGlj
eTo6QWxsb3cKICAgICAgICAgICAgICYmIChtX2ZvbnRGYWNlLT5zdGF0dXMoKSA9PSBDU1NGb250
RmFjZTo6U3RhdHVzOjpQZW5kaW5nIHx8IG1fZm9udEZhY2UtPnN0YXR1cygpID09IENTU0ZvbnRG
YWNlOjpTdGF0dXM6OkxvYWRpbmcgfHwgbV9mb250RmFjZS0+c3RhdHVzKCkgPT0gQ1NTRm9udEZh
Y2U6OlN0YXR1czo6VGltZWRPdXQpKSkgewotICAgICAgICAgICAgY29uc3QgYXV0byByZXN1bHQg
PSBtX2ZvbnRGYWNlLT5mb250KG1fZm9udERlc2NyaXB0aW9uLCBtX3N5bnRoZXRpY0JvbGQsIG1f
c3ludGhldGljSXRhbGljLCBwb2xpY3kpOworICAgICAgICAgICAgY29uc3QgYXV0byByZXN1bHQg
PSBtX2ZvbnRGYWNlLT5mb250KG1fZm9udERlc2NyaXB0aW9uLCBtX3N5bnRoZXRpY0JvbGQsIG1f
c3ludGhldGljSXRhbGljLCBwb2xpY3ksIG1fZm9udFBhbGV0dGVWYWx1ZXMpOwogICAgICAgICAg
ICAgaWYgKCFtX3Jlc3VsdCkKICAgICAgICAgICAgICAgICBtX3Jlc3VsdCA9IHJlc3VsdDsKICAg
ICAgICAgfQpAQCAtNzUsOSArNzYsMTAgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAg
ICBDU1NGb250QWNjZXNzb3IoQ1NTRm9udEZhY2UmIGZvbnRGYWNlLCBjb25zdCBGb250RGVzY3Jp
cHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRp
Y0l0YWxpYykKKyAgICBDU1NGb250QWNjZXNzb3IoQ1NTRm9udEZhY2UmIGZvbnRGYWNlLCBjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgRm9udFBhbGV0dGVWYWx1
ZXMmIGZvbnRQYWxldHRlVmFsdWVzLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGlj
SXRhbGljKQogICAgICAgICA6IG1fZm9udEZhY2UoZm9udEZhY2UpCiAgICAgICAgICwgbV9mb250
RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKQorICAgICAgICAsIG1fZm9udFBhbGV0dGVWYWx1
ZXMoZm9udFBhbGV0dGVWYWx1ZXMpCiAgICAgICAgICwgbV9zeW50aGV0aWNCb2xkKHN5bnRoZXRp
Y0JvbGQpCiAgICAgICAgICwgbV9zeW50aGV0aWNJdGFsaWMoc3ludGhldGljSXRhbGljKQogICAg
IHsKQEAgLTkxLDYgKzkzLDcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8
UmVmUHRyPEZvbnQ+PiBtX3Jlc3VsdDsgLy8gQ2FjaGVzIG51bGxwdHIgdG9vCiAgICAgbXV0YWJs
ZSBSZWY8Q1NTRm9udEZhY2U+IG1fZm9udEZhY2U7CiAgICAgRm9udERlc2NyaXB0aW9uIG1fZm9u
dERlc2NyaXB0aW9uOworICAgIEZvbnRQYWxldHRlVmFsdWVzIG1fZm9udFBhbGV0dGVWYWx1ZXM7
CiAgICAgYm9vbCBtX3N5bnRoZXRpY0JvbGQ7CiAgICAgYm9vbCBtX3N5bnRoZXRpY0l0YWxpYzsK
IH07CkBAIC0xMDYsNyArMTA5LDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kRm9udChGb250UmFuZ2Vz
JiByYW5nZXMsIFJlZjxGb250QWNjZXNzb3I+JiYgZm9udEFjY2Vzc29yLCBjb24KICAgICAgICAg
cmFuZ2VzLmFwcGVuZFJhbmdlKHsgcmFuZ2UuZnJvbSwgcmFuZ2UudG8sIGZvbnRBY2Nlc3Nvci5j
b3B5UmVmKCkgfSk7CiB9CiAKLUZvbnRSYW5nZXMgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmZvbnRS
YW5nZXMoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pCitGb250UmFuZ2Vz
IENTU1NlZ21lbnRlZEZvbnRGYWNlOjpmb250UmFuZ2VzKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uLCBjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYgZm9udFBhbGV0dGVWYWx1
ZXMpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2NhY2hlLmFkZChGb250RGVzY3JpcHRpb25L
ZXkoZm9udERlc2NyaXB0aW9uKSwgRm9udFJhbmdlcygpKTsKICAgICBhdXRvJiByYW5nZXMgPSBh
ZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwpAQCAtMTI2LDcgKzEyOSw3IEBAIEZvbnRSYW5nZXMg
Q1NTU2VnbWVudGVkRm9udEZhY2U6OmZvbnRSYW5nZXMoY29uc3QgRm9udERlc2NyaXB0aW9uJiBm
b250RGVzY3JpcHRpCiAgICAgICAgIGJvb2wgc3ludGhldGljSXRhbGljID0gKGZvbnREZXNjcmlw
dGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzU3R5bGUpICYmICFpc0l0YWxpYyhz
ZWxlY3Rpb25DYXBhYmlsaXRpZXMuc2xvcGUubWF4aW11bSkgJiYgaXNJdGFsaWMoZGVzaXJlZFJl
cXVlc3Quc2xvcGUpOwogCiAgICAgICAgIC8vIE1ldHJpY3MgdXNlZCBmb3IgbGF5b3V0IGNvbWUg
ZnJvbSBGb250UmFuZ2VzOjpmb250Rm9yRmlyc3RSYW5nZSgpLCB3aGljaCBhc3N1bWVzIHRoYXQg
dGhlIGZpcnN0IGZvbnQgaXMgbm9uLW51bGwuCi0gICAgICAgIGF1dG8gZm9udEFjY2Vzc29yID0g
Q1NTRm9udEFjY2Vzc29yOjpjcmVhdGUoZmFjZSwgZm9udERlc2NyaXB0aW9uLCBzeW50aGV0aWNC
b2xkLCBzeW50aGV0aWNJdGFsaWMpOworICAgICAgICBhdXRvIGZvbnRBY2Nlc3NvciA9IENTU0Zv
bnRBY2Nlc3Nvcjo6Y3JlYXRlKGZhY2UsIGZvbnREZXNjcmlwdGlvbiwgZm9udFBhbGV0dGVWYWx1
ZXMsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYyk7CiAgICAgICAgIGlmIChyYW5nZXMu
aXNOdWxsKCkgJiYgIWZvbnRBY2Nlc3Nvci0+Zm9udChFeHRlcm5hbFJlc291cmNlRG93bmxvYWRQ
b2xpY3k6OkZvcmJpZCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5oCmluZGV4IGY2NmU3MzM5MzIwYS4uNTcx
Njg5NTRkYTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVkRm9u
dEZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IC0gMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBhcHBlbmRGb250RmFjZShSZWY8Q1NT
Rm9udEZhY2U+JiYpOwogCi0gICAgRm9udFJhbmdlcyBmb250UmFuZ2VzKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYpOworICAgIEZvbnRSYW5nZXMgZm9udFJhbmdlcyhjb25zdCBGb250RGVzY3JpcHRp
b24mLCBjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYpOwogCiAgICAgVmVjdG9yPFJlZjxDU1NGb250
RmFjZT4sIDE+JiBjb25zdGl0dWVudEZhY2VzKCkgeyByZXR1cm4gbV9mb250RmFjZXM7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZvbnRMb2FkUmVxdWVzdC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZvbnRMb2FkUmVxdWVzdC5oCmluZGV4IDVkZmFjODJjYjU3ZC4u
ZjQ2YjZkYmQ1ZmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9udExvYWRS
ZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZvbnRMb2FkUmVxdWVzdC5oCkBA
IC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAyMSBNZXRyb2xvZ2ljYWwgR3Jv
dXAgQi5WLgogICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zMyw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEZvbnQ7CiBjbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBGb250TG9hZFJlcXVlc3Q7
CitjbGFzcyBGb250UGFsZXR0ZVZhbHVlczsKIHN0cnVjdCBGb250U2VsZWN0aW9uU3BlY2lmaWVk
Q2FwYWJpbGl0aWVzOwogCiBjbGFzcyBGb250TG9hZFJlcXVlc3RDbGllbnQgewpAQCAtNTEsNyAr
NTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGVycm9yT2NjdXJyZWQoKSBjb25zdCA9
IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoY29uc3QgQXRvbVN0
cmluZyYgcmVtb3RlVVJJKSA9IDA7Ci0gICAgdmlydHVhbCBSZWZQdHI8Rm9udD4gY3JlYXRlRm9u
dChjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9tU3RyaW5nJiByZW1vdGVVUkksIGJv
b2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJl
U2V0dGluZ3MmLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzKSA9IDA7CisgICAg
dmlydHVhbCBSZWZQdHI8Rm9udD4gY3JlYXRlRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBj
b25zdCBBdG9tU3RyaW5nJiByZW1vdGVVUkksIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50
aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmLCBjb25zdCBGb250U2VsZWN0
aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzJiwgY29uc3QgRm9udFBhbGV0dGVWYWx1ZXMmKSA9IDA7
CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KEZvbnRMb2FkUmVxdWVzdENsaWVudCopID0g
MDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCmluZGV4IDQ3
Nzg2ZmY2ZjYwNy4uNGFlY2JiOWNmZGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEZvbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYgLSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24u
aCIKKyNpbmNsdWRlICJGb250UGFsZXR0ZVZhbHVlcy5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9y
bURhdGEuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3Vy
Y2VEZWNvZGVyLmgiCkBAIC0xMDksMjAgKzExMCwyMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1
c3RvbVBsYXRmb3JtRGF0YT4gQ2FjaGVkRm9udDo6Y3JlYXRlQ3VzdG9tRm9udERhdGEoU2hhcmVk
QgogICAgIHJldHVybiBidWZmZXIgPyBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKCpidWZm
ZXIsIGl0ZW1JbkNvbGxlY3Rpb24pIDogbnVsbHB0cjsKIH0KIAotUmVmUHRyPEZvbnQ+IENhY2hl
ZEZvbnQ6OmNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24s
IGNvbnN0IEF0b21TdHJpbmcmLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRh
bGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBGb250U2Vs
ZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKQorUmVmUHRy
PEZvbnQ+IENhY2hlZEZvbnQ6OmNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250
RGVzY3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wg
c3ludGhldGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1
cmVzLCBjb25zdCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzJiBmb250RmFjZUNh
cGFiaWxpdGllcywgY29uc3QgRm9udFBhbGV0dGVWYWx1ZXMmIGZvbnRQYWxldHRlVmFsdWVzKQog
ewotICAgIHJldHVybiBGb250OjpjcmVhdGUocGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZm9u
dERlc2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRGYWNlRmVh
dHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKSwgRm9udDo6T3JpZ2luOjpSZW1vdGUpOworICAg
IHJldHVybiBGb250OjpjcmVhdGUocGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoZm9udERlc2Ny
aXB0aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRGYWNlRmVhdHVyZXMs
IGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBmb250UGFsZXR0ZVZhbHVlcyksIEZvbnQ6Ok9yaWdpbjo6
UmVtb3RlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFG
cm9tQ3VzdG9tRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9v
bCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VG
ZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFi
aWxpdGllcykKK0ZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1
c3RvbURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9s
ZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVhdHVy
ZXMsIGNvbnN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMmIGZvbnRGYWNlQ2Fw
YWJpbGl0aWVzLCBjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYgZm9udFBhbGV0dGVWYWx1ZXMpCiB7
CiAgICAgQVNTRVJUKG1fZm9udEN1c3RvbVBsYXRmb3JtRGF0YSk7Ci0gICAgcmV0dXJuIHBsYXRm
b3JtRGF0YUZyb21DdXN0b21EYXRhKCptX2ZvbnRDdXN0b21QbGF0Zm9ybURhdGEsIGZvbnREZXNj
cmlwdGlvbiwgYm9sZCwgaXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxp
dGllcyk7CisgICAgcmV0dXJuIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKCptX2ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEsIGZvbnREZXNjcmlwdGlvbiwgYm9sZCwgaXRhbGljLCBmb250RmFjZUZl
YXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcywgZm9udFBhbGV0dGVWYWx1ZXMpOwogfQogCi1G
b250UGxhdGZvcm1EYXRhIENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKEZv
bnRDdXN0b21QbGF0Zm9ybURhdGEmIGZvbnRDdXN0b21QbGF0Zm9ybURhdGEsIGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25z
dCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3Bl
Y2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKQorRm9udFBsYXRmb3JtRGF0
YSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShGb250Q3VzdG9tUGxhdGZv
cm1EYXRhJiBmb250Q3VzdG9tUGxhdGZvcm1EYXRhLCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZv
bnREZXNjcmlwdGlvbiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVT
ZXR0aW5ncyYgZm9udEZhY2VGZWF0dXJlcywgY29uc3QgRm9udFNlbGVjdGlvblNwZWNpZmllZENh
cGFiaWxpdGllcyYgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGNvbnN0IEZvbnRQYWxldHRlVmFsdWVz
JiBmb250UGFsZXR0ZVZhbHVlcykKIHsKLSAgICByZXR1cm4gZm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5mb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgYm9sZCwgaXRhbGljLCBmb250RmFj
ZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyk7CisgICAgcmV0dXJuIGZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuZm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIGJvbGQsIGl0YWxp
YywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGZvbnRQYWxldHRlVmFs
dWVzKTsKIH0KIAogdm9pZCBDYWNoZWRGb250OjphbGxDbGllbnRzUmVtb3ZlZCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaAppbmRleCAyMzAxM2FmYmI0Y2MuLjFjMjk3
MTA2OTg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZv
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgLSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFJlc291
cmNlTG9hZGVyOwogY2xhc3MgRm9udERlc2NyaXB0aW9uOworY2xhc3MgRm9udFBhbGV0dGVWYWx1
ZXM7CiBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogc3RydWN0IEZvbnRTZWxlY3Rpb25TcGVjaWZp
ZWRDYXBhYmlsaXRpZXM7CiBjbGFzcyBTVkdEb2N1bWVudDsKQEAgLTU0LDEyICs1NSwxMiBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoY29uc3QgQXRv
bVN0cmluZyYgcmVtb3RlVVJJKTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0
b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUN1c3RvbUZvbnREYXRhKFNoYXJlZEJ1ZmZlciYsIGNvbnN0
IFN0cmluZyYgaXRlbUluQ29sbGVjdGlvbiwgYm9vbCYgd3JhcHBpbmcpOwotICAgIHN0YXRpYyBG
b250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKEZvbnRDdXN0b21QbGF0
Zm9ybURhdGEmLCBjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFi
aWxpdGllcyk7CisgICAgc3RhdGljIEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhRnJvbUN1
c3RvbURhdGEoRm9udEN1c3RvbVBsYXRmb3JtRGF0YSYsIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYs
IGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmLCBjb25z
dCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzJiwgY29uc3QgRm9udFBhbGV0dGVW
YWx1ZXMmKTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRp
Y0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiwg
Rm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyk7CisgICAgdmlydHVhbCBSZWZQdHI8
Rm9udD4gY3JlYXRlRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9tU3RyaW5n
JiByZW1vdGVVUkksIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNv
bnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmLCBjb25zdCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2Fw
YWJpbGl0aWVzJiwgY29uc3QgRm9udFBhbGV0dGVWYWx1ZXMmKTsKIAogcHJvdGVjdGVkOgotICAg
IEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoY29uc3QgRm9udERl
c2NyaXB0aW9uJiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0
aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMpOworICAgIEZvbnRQbGF0
Zm9ybURhdGEgcGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9u
JiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYsIGNv
bnN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMmLCBjb25zdCBGb250UGFsZXR0
ZVZhbHVlcyYpOwogCiAgICAgYm9vbCBlbnN1cmVDdXN0b21Gb250RGF0YShTaGFyZWRCdWZmZXIq
IGRhdGEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
Rm9udExvYWRSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9u
dExvYWRSZXF1ZXN0LmgKaW5kZXggYjliMGNmODZlYTljLi4zNjBmZTg0NTFlNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250TG9hZFJlcXVlc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udExvYWRSZXF1ZXN0LmgK
QEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDIxIE1ldHJvbG9naWNhbCBH
cm91cCBCLlYuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzM0LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBGb250UGFsZXR0ZVZhbHVlczsKKwogY2xhc3MgQ2FjaGVkRm9udExvYWRSZXF1
ZXN0IGZpbmFsIDogcHVibGljIEZvbnRMb2FkUmVxdWVzdCwgcHVibGljIENhY2hlZEZvbnRDbGll
bnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNTYsOSArNTks
OSBAQCBwcml2YXRlOgogICAgIGJvb2wgZXJyb3JPY2N1cnJlZCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fZm9udC0+ZXJyb3JPY2N1cnJlZCgpOyB9CiAKICAgICBib29sIGVuc3VyZUN1c3RvbUZv
bnREYXRhKGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSkgZmluYWwgeyByZXR1cm4gbV9mb250
LT5lbnN1cmVDdXN0b21Gb250RGF0YShyZW1vdGVVUkkpOyB9Ci0gICAgUmVmUHRyPEZvbnQ+IGNy
ZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0
cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBzZXR0aW5ncywgRm9udFNlbGVjdGlvblNwZWNp
ZmllZENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpIGZpbmFsCisgICAgUmVmUHRyPEZvbnQ+IGNy
ZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0
cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgRm9udFNlbGVjdGlv
blNwZWNpZmllZENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzLCBjb25zdCBGb250UGFsZXR0ZVZh
bHVlcyYgZm9udFBhbGV0dGVWYWx1ZXMpIGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4gbV9m
b250LT5jcmVhdGVGb250KGRlc2NyaXB0aW9uLCByZW1vdGVVUkksIHN5bnRoZXRpY0JvbGQsIHN5
bnRoZXRpY0l0YWxpYywgc2V0dGluZ3MsIGNhcGFiaWxpdGllcyk7CisgICAgICAgIHJldHVybiBt
X2ZvbnQtPmNyZWF0ZUZvbnQoZGVzY3JpcHRpb24sIHJlbW90ZVVSSSwgc3ludGhldGljQm9sZCwg
c3ludGhldGljSXRhbGljLCBzZXR0aW5ncywgY2FwYWJpbGl0aWVzLCBmb250UGFsZXR0ZVZhbHVl
cyk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRDbGllbnQoRm9udExvYWRSZXF1ZXN0Q2xpZW50KiBj
bGllbnQpIGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkU1ZHRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9u
dC5jcHAKaW5kZXggZTA3YzM3NzRlOGM1Li5hYTEyYjgzNjY0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiAtIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkNhY2hlZFNWR0Zv
bnQuaCIKIAogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIkZvbnRQYWxl
dHRlVmFsdWVzLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIlNW
R0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRm9udEVsZW1lbnQuaCIKQEAgLTUzLDE3ICs1NCwx
NyBAQCBDYWNoZWRTVkdGb250OjpDYWNoZWRTVkdGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIENhY2hlZFNWR0ZvbnQmIHJlcwogewogfQogCi1SZWZQdHI8Rm9udD4gQ2FjaGVk
U1ZHRm9udDo6Y3JlYXRlRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlv
biwgY29uc3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wg
c3ludGhldGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1
cmVzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0
aWVzKQorUmVmUHRyPEZvbnQ+IENhY2hlZFNWR0ZvbnQ6OmNyZWF0ZUZvbnQoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSwg
Ym9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9udEZlYXR1
cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0dXJlcywgY29uc3QgRm9udFNlbGVjdGlvblNwZWNpZmll
ZENhcGFiaWxpdGllcyYgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGNvbnN0IEZvbnRQYWxldHRlVmFs
dWVzJiBmb250UGFsZXR0ZVZhbHVlcykKIHsKICAgICBBU1NFUlQoZmlyc3RGb250RmFjZShyZW1v
dGVVUkkpKTsKLSAgICByZXR1cm4gQ2FjaGVkRm9udDo6Y3JlYXRlRm9udChmb250RGVzY3JpcHRp
b24sIHJlbW90ZVVSSSwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZl
YXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyk7CisgICAgcmV0dXJuIENhY2hlZEZvbnQ6OmNy
ZWF0ZUZvbnQoZm9udERlc2NyaXB0aW9uLCByZW1vdGVVUkksIHN5bnRoZXRpY0JvbGQsIHN5bnRo
ZXRpY0l0YWxpYywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGZvbnRQ
YWxldHRlVmFsdWVzKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRTVkdGb250OjpwbGF0
Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlw
dGlvbiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYg
Zm9udEZhY2VGZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250
RmFjZUNhcGFiaWxpdGllcykKK0ZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkU1ZHRm9udDo6cGxhdGZv
cm1EYXRhRnJvbUN1c3RvbURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24sIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZv
bnRGYWNlRmVhdHVyZXMsIGNvbnN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMm
IGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYgZm9udFBhbGV0
dGVWYWx1ZXMpCiB7CiAgICAgaWYgKG1fZXh0ZXJuYWxTVkdEb2N1bWVudCkKLSAgICAgICAgcmV0
dXJuIEZvbnRQbGF0Zm9ybURhdGEoZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCks
IGJvbGQsIGl0YWxpYyk7Ci0gICAgcmV0dXJuIENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21D
dXN0b21EYXRhKGZvbnREZXNjcmlwdGlvbiwgYm9sZCwgaXRhbGljLCBmb250RmFjZUZlYXR1cmVz
LCBmb250RmFjZUNhcGFiaWxpdGllcyk7CisgICAgICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRh
KGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpLCBib2xkLCBpdGFsaWMpOyAvLyBG
SVhNRTogVGhpcyBkb2Vzbid0IHNlZW0gcmlnaHQuCisgICAgcmV0dXJuIENhY2hlZEZvbnQ6OnBs
YXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGZvbnREZXNjcmlwdGlvbiwgYm9sZCwgaXRhbGljLCBm
b250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcywgZm9udFBhbGV0dGVWYWx1ZXMp
OwogfQogCiBib29sIENhY2hlZFNWR0ZvbnQ6OmVuc3VyZUN1c3RvbUZvbnREYXRhKGNvbnN0IEF0
b21TdHJpbmcmIHJlbW90ZVVSSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRTVkdGb250LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
U1ZHRm9udC5oCmluZGV4IDNmNjA3ODk3MDc0ZS4uNjNjMzY3YWZkMzMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNyAtIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICsyOSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRm9udFBhbGV0dGVWYWx1ZXM7CiBjbGFz
cyBTVkdGb250RmFjZUVsZW1lbnQ7CiBjbGFzcyBTZXR0aW5nczsKIApAQCAtMzksMTAgKzQwLDEw
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoY29uc3QgQXRvbVN0
cmluZyYgcmVtb3RlVVJJKSBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxGb250PiBjcmVhdGVGb250
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSwgYm9v
bCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9udEZlYXR1cmVT
ZXR0aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMpIG92ZXJyaWRlOwor
ICAgIFJlZlB0cjxGb250PiBjcmVhdGVGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0
IEF0b21TdHJpbmcmIHJlbW90ZVVSSSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRp
Y0l0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYsIGNvbnN0IEZvbnRTZWxlY3Rpb25T
cGVjaWZpZWRDYXBhYmlsaXRpZXMmLCBjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYpIG92ZXJyaWRl
OwogCiBwcml2YXRlOgotICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhRnJvbUN1c3Rv
bURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29u
c3QgRm9udEZlYXR1cmVTZXR0aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRp
ZXMpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZl
YXR1cmVTZXR0aW5ncyYsIGNvbnN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMm
LCBjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYpOwogCiAgICAgU1ZHRm9udEVsZW1lbnQqIGdldFNW
R0ZvbnRCeUlkKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuY3BwCmluZGV4IDcwZDEwMGM0ODU4ZS4uMzFkNzM0MzExMzhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcApAQCAtNzQsNyArNzQsOSBA
QCBSZWY8Rm9udD4gRm9udDo6Y3JlYXRlKFJlZjxTaGFyZWRCdWZmZXI+JiYgZm9udEZhY2VEYXRh
LCBGb250OjpPcmlnaW4gb3JpZ2luLCBmbAogICAgIGF1dG8gY3VzdG9tRm9udERhdGEgPSBDYWNo
ZWRGb250OjpjcmVhdGVDdXN0b21Gb250RGF0YShmb250RmFjZURhdGEuZ2V0KCksIHsgfSwgd3Jh
cHBpbmcpOwogICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjcmlwdGlvbjsKICAgICBkZXNjcmlwdGlv
bi5zZXRDb21wdXRlZFNpemUoZm9udFNpemUpOwotICAgIHJldHVybiBGb250OjpjcmVhdGUoQ2Fj
aGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoKmN1c3RvbUZvbnREYXRhLCBkZXNj
cmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCB7IH0sIHsgfSksIG9yaWdp
biwgZm9udENhY2hlRm9yVmVydGljYWxEYXRhKTsKKyAgICAvLyBGSVhNRTogV2h5IGRvZXNuJ3Qg
dGhpcyBwYXNzIGluIGFueSBtZWFuaW5nZnVsIGRhdGEgZm9yIHRoZSBsYXN0IGZldyBhcmd1bWVu
dHM/CisgICAgYXV0byBwbGF0Zm9ybURhdGEgPSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9t
Q3VzdG9tRGF0YSgqY3VzdG9tRm9udERhdGEsIGRlc2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBz
eW50aGV0aWNJdGFsaWMsIHsgfSwgeyB9LCB7IH0pOworICAgIHJldHVybiBGb250OjpjcmVhdGUo
V1RGTW92ZShwbGF0Zm9ybURhdGEpLCBvcmlnaW4sIGZvbnRDYWNoZUZvclZlcnRpY2FsRGF0YSk7
CiB9CiAKIEZvbnQ6OkZvbnQoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhLCBP
cmlnaW4gb3JpZ2luLCBJbnRlcnN0aXRpYWwgaW50ZXJzdGl0aWFsLCBWaXNpYmlsaXR5IHZpc2li
aWxpdHksIE9yaWVudGF0aW9uRmFsbGJhY2sgb3JpZW50YXRpb25GYWxsYmFjaywgc3RkOjpvcHRp
b25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciwgRm9udENhY2hlKiBmb250Q2FjaGVGb3JWZXJ0aWNhbERhdGEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCA2ZGNkNTU2N2EzMmUu
LjFjZDMwOTRhNWFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250Q2FjaGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAK
ICNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUgIkZvbnRQYWxldHRlVmFsdWVzLmgi
CiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTgyLDE1ICs4MywxNiBAQCBzdHJ1Y3QgRm9udFBs
YXRmb3JtRGF0YUNhY2hlS2V5IHsKICAgICBGb250RmFtaWx5TmFtZSBmYW1pbHk7CiAgICAgRm9u
dEZlYXR1cmVTZXR0aW5ncyBmZWF0dXJlczsKICAgICBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2Fw
YWJpbGl0aWVzIGNhcGFiaWxpdGllczsKKyAgICBGb250UGFsZXR0ZVZhbHVlcyBmb250UGFsZXR0
ZVZhbHVlczsKIH07CiAKIHN0YXRpYyBib29sIG9wZXJhdG9yPT0oY29uc3QgRm9udFBsYXRmb3Jt
RGF0YUNhY2hlS2V5JiBhLCBjb25zdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkmIGIpCiB7Ci0g
ICAgcmV0dXJuIGEuZGVzY3JpcHRpb25LZXkgPT0gYi5kZXNjcmlwdGlvbktleSAmJiBhLmZhbWls
eSA9PSBiLmZhbWlseSAmJiBhLmZlYXR1cmVzID09IGIuZmVhdHVyZXMgJiYgYS5jYXBhYmlsaXRp
ZXMgPT0gYi5jYXBhYmlsaXRpZXM7CisgICAgcmV0dXJuIGEuZGVzY3JpcHRpb25LZXkgPT0gYi5k
ZXNjcmlwdGlvbktleSAmJiBhLmZhbWlseSA9PSBiLmZhbWlseSAmJiBhLmZlYXR1cmVzID09IGIu
ZmVhdHVyZXMgJiYgYS5jYXBhYmlsaXRpZXMgPT0gYi5jYXBhYmlsaXRpZXMgJiYgYS5mb250UGFs
ZXR0ZVZhbHVlcyA9PSBiLmZvbnRQYWxldHRlVmFsdWVzOwogfQogCiBzdHJ1Y3QgRm9udFBsYXRm
b3JtRGF0YUNhY2hlS2V5SGFzaCB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgRm9u
dFBsYXRmb3JtRGF0YUNhY2hlS2V5JiBrZXkpIHsgcmV0dXJuIGNvbXB1dGVIYXNoKGtleS5kZXNj
cmlwdGlvbktleSwga2V5LmZhbWlseSwga2V5LmZlYXR1cmVzLCBrZXkuY2FwYWJpbGl0aWVzLnRp
ZWQoKSk7IH0KKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBGb250UGxhdGZvcm1EYXRh
Q2FjaGVLZXkmIGtleSkgeyByZXR1cm4gY29tcHV0ZUhhc2goa2V5LmRlc2NyaXB0aW9uS2V5LCBr
ZXkuZmFtaWx5LCBrZXkuZmVhdHVyZXMsIGtleS5jYXBhYmlsaXRpZXMudGllZCgpLCBrZXkuZm9u
dFBhbGV0dGVWYWx1ZXMpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgRm9udFBsYXRm
b3JtRGF0YUNhY2hlS2V5JiBhLCBjb25zdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkmIGIpIHsg
cmV0dXJuIGEgPT0gYjsgfQogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJl
VG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwpAQCAtMjA3LDcgKzIwOSw3IEBAIHN0ZDo6b3B0
aW9uYWw8QVNDSUlMaXRlcmFsPiBGb250Q2FjaGU6OmFsdGVybmF0ZUZhbWlseU5hbWUoY29uc3Qg
U3RyaW5nJiBmYW1pbHlOCiB9CiAKIEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Y2FjaGVk
Rm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwg
Y29uc3QgU3RyaW5nJiBwYXNzZWRGYW1pbHlOYW1lLAotICAgIGNvbnN0IEZvbnRGZWF0dXJlU2V0
dGluZ3MqIGZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGNhcGFi
aWxpdGllcywgYm9vbCBjaGVja2luZ0FsdGVybmF0ZU5hbWUpCisgICAgY29uc3QgRm9udEZlYXR1
cmVTZXR0aW5ncyogZmVhdHVyZXMsIGNvbnN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmls
aXRpZXMmIGNhcGFiaWxpdGllcywgY29uc3QgRm9udFBhbGV0dGVWYWx1ZXMmIGZvbnRQYWxldHRl
VmFsdWVzLCBib29sIGNoZWNraW5nQWx0ZXJuYXRlTmFtZSkKIHsKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgIExvY2tlciBsb2NrZXIgeyBtX2ZvbnRMb2NrIH07CkBAIC0yMjcsMTcgKzIy
OSwxNyBAQCBGb250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmNhY2hlZEZvbnRQbGF0Zm9ybURh
dGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RAogICAgICAgICBwbGF0Zm9ybUluaXQoKTsK
ICAgICB9KTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSBrZXkgeyBmb250RGVzY3Jp
cHRpb24sIHsgZmFtaWx5TmFtZSB9LCBmZWF0dXJlcyA/ICpmZWF0dXJlcyA6IEZvbnRGZWF0dXJl
U2V0dGluZ3MgeyB9LCBjYXBhYmlsaXRpZXMgfTsKKyAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGVL
ZXkga2V5IHsgZm9udERlc2NyaXB0aW9uLCB7IGZhbWlseU5hbWUgfSwgZmVhdHVyZXMgPyAqZmVh
dHVyZXMgOiBGb250RmVhdHVyZVNldHRpbmdzIHsgfSwgY2FwYWJpbGl0aWVzLCBmb250UGFsZXR0
ZVZhbHVlcyB9OwogCiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2ZvbnREYXRhQ2FjaGVzLT5wbGF0
Zm9ybURhdGEuYWRkKGtleSwgbnVsbHB0cik7CiAgICAgRm9udFBsYXRmb3JtRGF0YUNhY2hlOjpp
dGVyYXRvciBpdCA9IGFkZFJlc3VsdC5pdGVyYXRvcjsKICAgICBpZiAoYWRkUmVzdWx0LmlzTmV3
RW50cnkpIHsKLSAgICAgICAgaXQtPnZhbHVlID0gY3JlYXRlRm9udFBsYXRmb3JtRGF0YShmb250
RGVzY3JpcHRpb24sIGZhbWlseU5hbWUsIGZlYXR1cmVzLCBjYXBhYmlsaXRpZXMpOworICAgICAg
ICBpdC0+dmFsdWUgPSBjcmVhdGVGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgZmFt
aWx5TmFtZSwgZmVhdHVyZXMsIGNhcGFiaWxpdGllcywgZm9udFBhbGV0dGVWYWx1ZXMpOwogICAg
ICAgICBpZiAoIWl0LT52YWx1ZSAmJiAhY2hlY2tpbmdBbHRlcm5hdGVOYW1lKSB7CiAgICAgICAg
ICAgICAvLyBXZSB3ZXJlIHVuYWJsZSB0byBmaW5kIGEgZm9udC4gV2UgaGF2ZSBhIHNtYWxsIHNl
dCBvZiBmb250cyB0aGF0IHdlIGFsaWFzIHRvIG90aGVyIG5hbWVzLAogICAgICAgICAgICAgLy8g
ZS5nLiwgQXJpYWwvSGVsdmV0aWNhLCBDb3VyaWVyL0NvdXJpZXIgTmV3LCBldGMuIFRyeSBsb29r
aW5nIHVwIHRoZSBmb250IHVuZGVyIHRoZSBhbGlhc2VkIG5hbWUuCiAgICAgICAgICAgICBpZiAo
YXV0byBhbHRlcm5hdGVOYW1lID0gYWx0ZXJuYXRlRmFtaWx5TmFtZShmYW1pbHlOYW1lKSkgewot
ICAgICAgICAgICAgICAgIGF1dG8qIGFsdGVybmF0ZURhdGEgPSBjYWNoZWRGb250UGxhdGZvcm1E
YXRhKGZvbnREZXNjcmlwdGlvbiwgKmFsdGVybmF0ZU5hbWUsIGZlYXR1cmVzLCBjYXBhYmlsaXRp
ZXMsIHRydWUpOworICAgICAgICAgICAgICAgIGF1dG8qIGFsdGVybmF0ZURhdGEgPSBjYWNoZWRG
b250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgKmFsdGVybmF0ZU5hbWUsIGZlYXR1cmVz
LCBjYXBhYmlsaXRpZXMsIGZvbnRQYWxldHRlVmFsdWVzLCB0cnVlKTsKICAgICAgICAgICAgICAg
ICAvLyBMb29rIHVwIHRoZSBrZXkgaW4gdGhlIGhhc2ggdGFibGUgYWdhaW4gYXMgdGhlIHByZXZp
b3VzIGl0ZXJhdG9yIG1heSBoYXZlCiAgICAgICAgICAgICAgICAgLy8gYmVlbiBpbnZhbGlkYXRl
ZCBieSB0aGUgcmVjdXJzaXZlIGNhbGwgdG8gY2FjaGVkRm9udFBsYXRmb3JtRGF0YSgpLgogICAg
ICAgICAgICAgICAgIGl0ID0gbV9mb250RGF0YUNhY2hlcy0+cGxhdGZvcm1EYXRhLmZpbmQoa2V5
KTsKQEAgLTI2MiwxMiArMjY0LDEyIEBAIGNvbnN0IHVuc2lnbmVkIGNUYXJnZXRJbmFjdGl2ZUZv
bnREYXRhID0gMjAwOwogY29uc3QgdW5zaWduZWQgY01heFVuZGVyTWVtb3J5UHJlc3N1cmVJbmFj
dGl2ZUZvbnREYXRhID0gNTA7CiBjb25zdCB1bnNpZ25lZCBjVGFyZ2V0VW5kZXJNZW1vcnlQcmVz
c3VyZUluYWN0aXZlRm9udERhdGEgPSAzMDsKIAotUmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6Zm9u
dEZvckZhbWlseShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3Qg
U3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZlYXR1cmVzLCBGb250
U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcywgYm9vbCBjaGVja2lu
Z0FsdGVybmF0ZU5hbWUpCitSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpmb250Rm9yRmFtaWx5KGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIGZhbWls
eSwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZXMsIGNvbnN0IEZvbnRTZWxlY3Rp
b25TcGVjaWZpZWRDYXBhYmlsaXRpZXMmIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBjb25zdCBGb250
UGFsZXR0ZVZhbHVlcyYgZm9udFBhbGV0dGVWYWx1ZXMsIGJvb2wgY2hlY2tpbmdBbHRlcm5hdGVO
YW1lKQogewogICAgIGlmICghbV9wdXJnZVRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fcHVy
Z2VUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKIAotICAgIGlmIChhdXRvKiBwbGF0Zm9ybURhdGEg
PSBjYWNoZWRGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgZmFtaWx5LCBmZWF0dXJl
cywgY2FwYWJpbGl0aWVzLCBjaGVja2luZ0FsdGVybmF0ZU5hbWUpKQorICAgIGlmIChhdXRvKiBw
bGF0Zm9ybURhdGEgPSBjYWNoZWRGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgZmFt
aWx5LCBmZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGZvbnRQYWxldHRlVmFsdWVzLCBj
aGVja2luZ0FsdGVybmF0ZU5hbWUpKQogICAgICAgICByZXR1cm4gZm9udEZvclBsYXRmb3JtRGF0
YSgqcGxhdGZvcm1EYXRhKTsKIAogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAppbmRleCBmNzI1MzUzOWM3YTEuLmZkMzUx
NDc5NGQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
LmgKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkZvbnRDYXNjYWRlRm9udHMuaCIKICNp
bmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJGb250UGFsZXR0ZVZhbHVlcy5o
IgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJGb250U2VsZWN0b3Iu
aCIKICNpbmNsdWRlICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKQEAgLTMwNCw3ICszMDUsNyBAQCBw
dWJsaWM6CiAgICAgLy8gSXQgY29tZXMgaW50byBwbGF5IHdoZW4geW91IGNyZWF0ZSBhbiBAZm9u
dC1mYWNlIHdoaWNoIHNoYXJlcyBhIGZhbWlseSBuYW1lIGFzIGEgcHJlaW5zdGFsbGVkIGZvbnQu
CiAgICAgVmVjdG9yPEZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXM+IGdldEZvbnRTZWxlY3Rpb25D
YXBhYmlsaXRpZXNJbkZhbWlseShjb25zdCBBdG9tU3RyaW5nJiwgQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEZvbnQ+IGZvbnRGb3JGYW1pbHko
Y29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgRm9udEZlYXR1cmVT
ZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcyA9IG51bGxwdHIsIEZvbnRTZWxlY3Rpb25TcGVjaWZp
ZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMgPSB7IH0sIGJvb2wgY2hlY2tpbmdB
bHRlcm5hdGVOYW1lID0gZmFsc2UpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxGb250PiBm
b250Rm9yRmFtaWx5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVyZXMgPSBudWxscHRyLCBjb25zdCBG
b250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzJiBmb250RmFjZUNhcGFiaWxpdGllcyA9
IHsgfSwgY29uc3QgRm9udFBhbGV0dGVWYWx1ZXMmID0geyB9LCBib29sIGNoZWNraW5nQWx0ZXJu
YXRlTmFtZSA9IGZhbHNlKTsKICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8Rm9udD4gbGFzdFJlc29y
dEZhbGxiYWNrRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mKTsKICAgICBXRUJDT1JFX0VYUE9S
VCBSZWY8Rm9udD4gZm9udEZvclBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJik7
CiAgICAgUmVmUHRyPEZvbnQ+IHNpbWlsYXJGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNv
bnN0IFN0cmluZyYgZmFtaWx5KTsKQEAgLTM1OSwxMCArMzYwLDEwIEBAIHByaXZhdGU6CiAgICAg
dm9pZCBwcnVuZVN5c3RlbUZhbGxiYWNrRm9udHMoKTsKICAgICBSZWY8Rm9udENhc2NhZGVGb250
cz4gcmV0cmlldmVPckFkZENhY2hlZEZvbnRzKGNvbnN0IEZvbnRDYXNjYWRlRGVzY3JpcHRpb24m
LCBSZWZQdHI8Rm9udFNlbGVjdG9yPiYmKTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEqIGNhY2hl
ZEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgU3RyaW5nJiBm
YW1pbHksIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqID0gbnVsbHB0ciwgRm9udFNlbGVjdGlv
blNwZWNpZmllZENhcGFiaWxpdGllcyA9IHsgfSwgYm9vbCBjaGVja2luZ0FsdGVybmF0ZU5hbWUg
PSBmYWxzZSk7CisgICAgRm9udFBsYXRmb3JtRGF0YSogY2FjaGVkRm9udFBsYXRmb3JtRGF0YShj
b25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBTdHJpbmcmIGZhbWlseSwgY29uc3QgRm9udEZl
YXR1cmVTZXR0aW5ncyogPSBudWxscHRyLCBjb25zdCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2Fw
YWJpbGl0aWVzJiA9IHsgfSwgY29uc3QgRm9udFBhbGV0dGVWYWx1ZXMmID0geyB9LCBib29sIGNo
ZWNraW5nQWx0ZXJuYXRlTmFtZSA9IGZhbHNlKTsKIAogICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBh
cmUgaW1wbGVtZW50ZWQgYnkgZWFjaCBwbGF0Zm9ybSAodW5jbGVhciB3aGljaCBmdW5jdGlvbnMg
dGhpcyBjb21tZW50IGFwcGxpZXMgdG8pLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6dW5pcXVl
X3B0cjxGb250UGxhdGZvcm1EYXRhPiBjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSwgY29uc3QgRm9udEZlYXR1cmVT
ZXR0aW5ncyosIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBjcmVhdGVGb250UGxh
dGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIGZhbWls
eSwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyosIGNvbnN0IEZvbnRTZWxlY3Rpb25TcGVjaWZp
ZWRDYXBhYmlsaXRpZXMmLCBjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYpOwogICAgIAogICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPEFTQ0lJTGl0ZXJhbD4gYWx0ZXJuYXRlRmFtaWx5TmFtZShjb25z
dCBTdHJpbmcmKTsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxBU0NJSUxpdGVyYWw+IHBsYXRm
b3JtQWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBTdHJpbmcmKTsKQEAgLTM5NSw3ICszOTYsNyBA
QCBwcml2YXRlOgogCiBpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZv
bnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YUZvclRlc3RpbmcoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSkKIHsKLSAg
ICByZXR1cm4gY3JlYXRlRm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIGZhbWlseSwg
bnVsbHB0ciwgeyB9KTsKKyAgICByZXR1cm4gY3JlYXRlRm9udFBsYXRmb3JtRGF0YShmb250RGVz
Y3JpcHRpb24sIGZhbWlseSwgbnVsbHB0ciwgeyB9LCB7IH0pOwogfQogCiAjaWYgIVBMQVRGT1JN
KENPQ09BKSAmJiAhVVNFKEZSRUVUWVBFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udFBhbGV0dGVWYWx1ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRQYWxldHRlVmFsdWVzLmgKaW5kZXggYjM5YjViZDcyOGQwLi4zNGI4
ZTMyNmRkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRQYWxldHRlVmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udFBhbGV0dGVWYWx1ZXMuaApAQCAtNDYsNiArNDYsMTUgQEAgcHVibGljOgogICAgIHsKICAg
ICB9CiAKKyAgICBvcGVyYXRvciBib29sKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBX
VEY6OnN3aXRjaE9uKG1fYmFzZVBhbGV0dGUsIFtdKGludDY0X3QpIHsKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICB9LCBbXShjb25zdCBBdG9tU3RyaW5nJiBzdHJpbmcpIHsKKyAg
ICAgICAgICAgIHJldHVybiAhc3RyaW5nLmlzTnVsbCgpOworICAgICAgICB9KTsKKyAgICB9CisK
ICAgICBjb25zdCBQYWxldHRlSW5kZXgmIGJhc2VQYWxldHRlKCkgY29uc3QKICAgICB7CiAgICAg
ICAgIHJldHVybiBtX2Jhc2VQYWxldHRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCmluZGV4IDE5
NThjYzBlNDZkMS4uNjNkMGI4ZDMyMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjYsOSArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb250Q2FjaGUu
aCIKIAorI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiRm9udC5oIgogI2luY2x1ZGUgIkZv
bnRDYXNjYWRlRGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250RmFtaWx5U3BlY2lmaWNhdGlv
bkNvcmVUZXh0LmgiCisjaW5jbHVkZSAiRm9udFBhbGV0dGVWYWx1ZXMuaCIKICNpbmNsdWRlICJS
ZW5kZXJUaGVtZUNvY29hLmgiCiAjaW5jbHVkZSAiU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQu
aCIKICNpbmNsdWRlICJWZXJzaW9uQ2hlY2tzLmgiCkBAIC00NDAsNyArNDQyLDQ3IEBAIHN0cnVj
dCBGb250VHlwZSB7CiAgICAgYm9vbCBhYXRTaGFwaW5nIHsgZmFsc2UgfTsKIH07CiAKLVJldGFp
blB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9u
dCwgY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEZvbnRGZWF0
dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBh
YmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGJvb2wgYXBwbHlXZWlnaHRXaWR0aFNsb3Bl
VmFyaWF0aW9ucykKK3N0YXRpYyB2b2lkIGFkZEF0dHJpYnV0ZXNGb3JGb250UGFsZXR0ZXMoQ0ZN
dXRhYmxlRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBjb25zdCBGb250UGFsZXR0ZSYgZm9udFBh
bGV0dGUsIGNvbnN0IEZvbnRQYWxldHRlVmFsdWVzJiBmb250UGFsZXR0ZVZhbHVlcykKK3sKKyAg
ICBXVEY6OnN3aXRjaE9uKGZvbnRQYWxldHRlLCBbXShGb250UGFsZXR0ZU5vbmUpIHsKKyAgICAg
ICAgLy8gVGhpcyBpcyB1bmltcGxlbWVudGFibGUgaW4gQ29yZSBUZXh0LgorICAgIH0sIFtdKEZv
bnRQYWxldHRlTm9ybWFsKSB7CisgICAgICAgIC8vIE5vdGhpbmcgdG8gZG8uCisgICAgfSwgWyZd
KEZvbnRQYWxldHRlTGlnaHQpIHsKKyAgICAgICAgYXV0byBsaWdodCA9IGtDVEZvbnRQYWxldHRl
TGlnaHQ7CisgICAgICAgIGF1dG8gbnVtYmVyID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJTSW50NjRUeXBlLCAmbGlnaHQpKTsKKyAgICAgICAg
Q0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcywga0NURm9udFBhbGV0dGVBdHRyaWJ1dGUs
IG51bWJlci5nZXQoKSk7CisgICAgfSwgWyZdKEZvbnRQYWxldHRlRGFyaykgeworICAgICAgICBh
dXRvIGRhcmsgPSBrQ1RGb250UGFsZXR0ZURhcms7CisgICAgICAgIGF1dG8gbnVtYmVyID0gYWRv
cHRDRihDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJDRkluZGV4
VHlwZSwgJmRhcmspKTsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcywg
a0NURm9udFBhbGV0dGVBdHRyaWJ1dGUsIG51bWJlci5nZXQoKSk7CisgICAgfSwgWyZdKEZvbnRQ
YWxldHRlQ3VzdG9tKSB7CisgICAgICAgIFdURjo6c3dpdGNoT24oZm9udFBhbGV0dGVWYWx1ZXMu
YmFzZVBhbGV0dGUoKSwgWyZdKGludDY0X3QgaW5kZXgpIHsKKyAgICAgICAgICAgIGF1dG8gbnVt
YmVyID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1i
ZXJDRkluZGV4VHlwZSwgJmluZGV4KSk7CisgICAgICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1
ZShhdHRyaWJ1dGVzLCBrQ1RGb250UGFsZXR0ZUF0dHJpYnV0ZSwgbnVtYmVyLmdldCgpKTsKKyAg
ICAgICAgfSwgW10oY29uc3QgQXRvbVN0cmluZyYpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMg
dW5pbXBsZW1lbnRhYmxlIGluIENvcmUgVGV4dC4KKyAgICAgICAgfSk7CisgICAgICAgIGlmICgh
Zm9udFBhbGV0dGVWYWx1ZXMub3ZlcnJpZGVDb2xvcigpLmlzRW1wdHkoKSkgeworICAgICAgICAg
ICAgYXV0byBvdmVycmlkZURpY3Rpb25hcnkgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11
dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJh
Y2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAgICAgICAgZm9y
IChjb25zdCBhdXRvJiBwYWlyIDogZm9udFBhbGV0dGVWYWx1ZXMub3ZlcnJpZGVDb2xvcigpKSB7
CisgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgcGFsZXR0ZUNvbG9ySW5kZXggPSBwYWlyLmZp
cnN0OworICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8mIGNvbG9yID0gcGFpci5zZWNvbmQ7Cisg
ICAgICAgICAgICAgICAgV1RGOjpzd2l0Y2hPbihwYWxldHRlQ29sb3JJbmRleCwgW10oY29uc3Qg
QXRvbVN0cmluZyYpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB1bmltcGxlbWVu
dGFibGUgaW4gQ29yZSBUZXh0LgorICAgICAgICAgICAgICAgIH0sIFsmXShpbnQ2NF90IGluZGV4
KSB7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gbnVtYmVyID0gYWRvcHRDRihDRk51bWJlckNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJTSW50NjRUeXBlLCAmaW5kZXgpKTsK
KyAgICAgICAgICAgICAgICAgICAgYXV0byBjb2xvck9iamVjdCA9IGNhY2hlZENHQ29sb3IoY29s
b3IpOworICAgICAgICAgICAgICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShvdmVycmlkZURp
Y3Rpb25hcnkuZ2V0KCksIG51bWJlci5nZXQoKSwgY29sb3JPYmplY3QpOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKENGRGljdGlvbmFyeUdldENv
dW50KG92ZXJyaWRlRGljdGlvbmFyeS5nZXQoKSkpCisgICAgICAgICAgICAgICAgQ0ZEaWN0aW9u
YXJ5QWRkVmFsdWUoYXR0cmlidXRlcywga0NURm9udFBhbGV0dGVDb2xvcnNBdHRyaWJ1dGUsIG92
ZXJyaWRlRGljdGlvbmFyeS5nZXQoKSk7CisgICAgICAgIH0KKyAgICB9KTsKK30KKworUmV0YWlu
UHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250
LCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgRm9udEZlYXR1
cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcywgY29uc3QgRm9udFNlbGVjdGlvblNwZWNpZmll
ZENhcGFiaWxpdGllcyYgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGNvbnN0IEZvbnRQYWxldHRlVmFs
dWVzJiBmb250UGFsZXR0ZVZhbHVlcywgYm9vbCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRp
b25zKQogewogICAgIGlmICghb3JpZ2luYWxGb250KQogICAgICAgICByZXR1cm4gb3JpZ2luYWxG
b250OwpAQCAtNDYzLDYgKzUwNSw4IEBAIFJldGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0
Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9udCwgY29uc3QgRm9udERlc2NyCiAgICAgYXV0
byB0ZXh0UmVuZGVyaW5nTW9kZSA9IGZvbnREZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgp
OwogICAgIGF1dG8gc2hvdWxkRGlzYWJsZUxpZ2F0dXJlc0ZvclNwYWNpbmcgPSBmb250RGVzY3Jp
cHRpb24uc2hvdWxkRGlzYWJsZUxpZ2F0dXJlc0ZvclNwYWNpbmcoKTsKIAorICAgIGJvb2wgZG9u
dE5lZWRUb0FwcGx5Rm9udFBhbGV0dGVzID0gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxGb250UGFs
ZXR0ZU5vcm1hbD4oZm9udERlc2NyaXB0aW9uLmZvbnRQYWxldHRlKCkpOworCiAgICAgLy8gV2Ug
bWlnaHQgd2FudCB0byBjaGVjayBmb250VHlwZS50cmFja2luZ1R5cGUgPT0gRm9udFR5cGU6OlRy
YWNraW5nVHlwZTo6TWFudWFsIGhlcmUsIGJ1dCBpbiBvcmRlciB0byBtYWludGFpbiBjb21wYXRp
YmlsaXR5IHdpdGggdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbSwgd2UgZG9uJ3QuCiAgICAgYm9vbCBu
b0ZvbnRGZWF0dXJlU2V0dGluZ3MgPSBmZWF0dXJlcy5pc0VtcHR5KCk7CiAgICAgYm9vbCBub0Zv
bnRWYXJpYXRpb25TZXR0aW5ncyA9ICFmb3JjZVZhcmlhdGlvbnMgJiYgdmFyaWF0aW9ucy5pc0Vt
cHR5KCk7CkBAIC00NzAsNyArNTE0LDcgQEAgUmV0YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBs
YXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250LCBjb25zdCBGb250RGVzY3IKICAgICBi
b29sIHZhcmlhbnRTZXR0aW5nc0lzTm9ybWFsID0gdmFyaWFudFNldHRpbmdzLmlzQWxsTm9ybWFs
KCk7CiAgICAgYm9vbCBkb250TmVlZFRvQXBwbHlPcHRpY2FsU2l6aW5nID0gZm9udE9wdGljYWxT
aXppbmcgPT0gRm9udE9wdGljYWxTaXppbmc6OkVuYWJsZWQgJiYgIWZvcmNlT3B0aWNhbFNpemlu
Z09uOwogICAgIGJvb2wgZm9udEZhY2VEb2VzbnRTcGVjaWZ5RmVhdHVyZXMgPSAhZm9udEZhY2VG
ZWF0dXJlcyB8fCBmb250RmFjZUZlYXR1cmVzLT5pc0VtcHR5KCk7Ci0gICAgaWYgKG5vRm9udEZl
YXR1cmVTZXR0aW5ncyAmJiBub0ZvbnRWYXJpYXRpb25TZXR0aW5ncyAmJiB0ZXh0UmVuZGVyaW5n
TW9kZUlzQXV0byAmJiB2YXJpYW50U2V0dGluZ3NJc05vcm1hbCAmJiBkb250TmVlZFRvQXBwbHlP
cHRpY2FsU2l6aW5nICYmIGZvbnRGYWNlRG9lc250U3BlY2lmeUZlYXR1cmVzICYmICFzaG91bGRE
aXNhYmxlTGlnYXR1cmVzRm9yU3BhY2luZykgeworICAgIGlmIChub0ZvbnRGZWF0dXJlU2V0dGlu
Z3MgJiYgbm9Gb250VmFyaWF0aW9uU2V0dGluZ3MgJiYgdGV4dFJlbmRlcmluZ01vZGVJc0F1dG8g
JiYgdmFyaWFudFNldHRpbmdzSXNOb3JtYWwgJiYgZG9udE5lZWRUb0FwcGx5T3B0aWNhbFNpemlu
ZyAmJiBmb250RmFjZURvZXNudFNwZWNpZnlGZWF0dXJlcyAmJiAhc2hvdWxkRGlzYWJsZUxpZ2F0
dXJlc0ZvclNwYWNpbmcgJiYgZG9udE5lZWRUb0FwcGx5Rm9udFBhbGV0dGVzKSB7CiAjaWYgSEFW
RShDVEZPTlRDUkVBVEVGT1JDSEFSQUNURVJTV0lUSExBTkdVQUdFQU5ET1BUSU9OKQogICAgICAg
ICByZXR1cm4gb3JpZ2luYWxGb250OwogI2Vsc2UKQEAgLTU3NCw3ICs2MTgsNyBAQCBSZXRhaW5Q
dHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQs
IGNvbnN0IEZvbnREZXNjcgogICAgIGZvciAoYXV0byYgbmV3VmFyaWF0aW9uIDogdmFyaWF0aW9u
cykKICAgICAgICAgYXBwbHlWYXJpYXRpb24obmV3VmFyaWF0aW9uLnRhZygpLCBuZXdWYXJpYXRp
b24udmFsdWUoKSk7CiAKLSAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFy
eUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMiwgJmtDRlR5cGVEaWN0aW9uYXJ5
S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgIGF1
dG8gYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCAwLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBl
RGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAgICAgaWYgKCFmZWF0dXJlc1RvQmVBcHBsaWVk
LmlzRW1wdHkoKSkgewogICAgICAgICBhdXRvIGZlYXR1cmVBcnJheSA9IGFkb3B0Q0YoQ0ZBcnJh
eUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZmVhdHVyZXMuc2l6ZSgpLCAma0NG
VHlwZUFycmF5Q2FsbEJhY2tzKSk7CiAgICAgICAgIGZvciAoYXV0byYgcCA6IGZlYXR1cmVzVG9C
ZUFwcGxpZWQpIHsKQEAgLTYyMCw2ICs2NjQsOCBAQCBSZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVw
YXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQsIGNvbnN0IEZvbnREZXNjcgog
I2VuZGlmCiAgICAgfQogCisgICAgYWRkQXR0cmlidXRlc0ZvckZvbnRQYWxldHRlcyhhdHRyaWJ1
dGVzLmdldCgpLCBmb250RGVzY3JpcHRpb24uZm9udFBhbGV0dGUoKSwgZm9udFBhbGV0dGVWYWx1
ZXMpOworCiAgICAgYWRkQXR0cmlidXRlc0Zvckluc3RhbGxlZEZvbnRzKGF0dHJpYnV0ZXMuZ2V0
KCksIGZvbnREZXNjcmlwdGlvbi5zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKIAog
ICAgIGF1dG8gZGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZVdpdGhB
dHRyaWJ1dGVzKGF0dHJpYnV0ZXMuZ2V0KCkpKTsKQEAgLTEyNDIsNyArMTI4OCw3IEBAIHN0YXRp
YyBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250V2l0aEZhbWlseVNwZWNpYWxDYXNlKGNvbnN0IEF0
b21TdHJpbmcmIGZhbWlseSwKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotc3RhdGljIFJldGFp
blB0cjxDVEZvbnRSZWY+IGZvbnRXaXRoRmFtaWx5KGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSwg
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEZvbnRGZWF0dXJl
U2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmls
aXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGZsb2F0IHNpemUpCitzdGF0aWMgUmV0YWluUHRy
PENURm9udFJlZj4gZm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LCBjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgRm9udEZlYXR1cmVTZXR0
aW5ncyogZm9udEZhY2VGZWF0dXJlcywgY29uc3QgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFi
aWxpdGllcyYgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGNvbnN0IEZvbnRQYWxldHRlVmFsdWVzJiBm
b250UGFsZXR0ZVZhbHVlcywgZmxvYXQgc2l6ZSkKIHsKICAgICBpZiAoZmFtaWx5LmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xMjUxLDcgKzEyOTcsNyBAQCBzdGF0aWMg
UmV0YWluUHRyPENURm9udFJlZj4gZm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbVN0cmluZyYgZmFt
aWx5LCBjb25zdCBGb250RAogICAgIGZvbnRMb29rdXAucmVzdWx0ID0gZm9udFdpdGhGYW1pbHlT
cGVjaWFsQ2FzZShmYW1pbHksIGZvbnREZXNjcmlwdGlvbiwgc2l6ZSwgZm9udERlc2NyaXB0aW9u
LnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpOwogICAgIGlmICghZm9udExvb2t1cC5y
ZXN1bHQpCiAgICAgICAgIGZvbnRMb29rdXAgPSBwbGF0Zm9ybUZvbnRMb29rdXBXaXRoRmFtaWx5
KGZhbWlseSwgZm9udERlc2NyaXB0aW9uLmZvbnRTZWxlY3Rpb25SZXF1ZXN0KCksIHNpemUsIGZv
bnREZXNjcmlwdGlvbi5zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKLSAgICByZXR1
cm4gcHJlcGFyZVBsYXRmb3JtRm9udChmb250TG9va3VwLnJlc3VsdC5nZXQoKSwgZm9udERlc2Ny
aXB0aW9uLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcywgIWZvbnRMb29r
dXAuY3JlYXRlZEZyb21Qb3N0U2NyaXB0TmFtZSk7CisgICAgcmV0dXJuIHByZXBhcmVQbGF0Zm9y
bUZvbnQoZm9udExvb2t1cC5yZXN1bHQuZ2V0KCksIGZvbnREZXNjcmlwdGlvbiwgZm9udEZhY2VG
ZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGZvbnRQYWxldHRlVmFsdWVzLCAhZm9udExv
b2t1cC5jcmVhdGVkRnJvbVBvc3RTY3JpcHROYW1lKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykK
QEAgLTEyODUsMTEgKzEzMzEsMTEgQEAgc3RhdGljIHZvaWQgYXV0b0FjdGl2YXRlRm9udChjb25z
dCBTdHJpbmcmIG5hbWUsIENHRmxvYXQgc2l6ZSkKIH0KICNlbmRpZgogCi1zdGQ6OnVuaXF1ZV9w
dHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9tU3RyaW5nJiBm
YW1pbHksIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRT
ZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMpCitzdGQ6
OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9t
U3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVy
ZXMsIGNvbnN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMmIGZvbnRGYWNlQ2Fw
YWJpbGl0aWVzLCBjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYgZm9udFBhbGV0dGVWYWx1ZXMpCiB7
CiAgICAgZmxvYXQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpOwog
Ci0gICAgYXV0byBmb250ID0gZm9udFdpdGhGYW1pbHkoZmFtaWx5LCBmb250RGVzY3JpcHRpb24s
IGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBzaXplKTsKKyAgICBhdXRv
IGZvbnQgPSBmb250V2l0aEZhbWlseShmYW1pbHksIGZvbnREZXNjcmlwdGlvbiwgZm9udEZhY2VG
ZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGZvbnRQYWxldHRlVmFsdWVzLCBzaXplKTsK
IAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoIWZvbnQpIHsKQEAgLTEzMDAsNyArMTM0Niw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZv
bnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgICAgIC8vIElnbm9yZSB0aGUgcmVzdWx0
IGJlY2F1c2Ugd2Ugd2FudCB0byB1c2Ugb3VyIG93biBhbGdvcml0aG0gdG8gYWN0dWFsbHkgZmlu
ZCB0aGUgZm9udC4KICAgICAgICAgYXV0b0FjdGl2YXRlRm9udChmYW1pbHkuc3RyaW5nKCksIHNp
emUpOwogCi0gICAgICAgIGZvbnQgPSBmb250V2l0aEZhbWlseShmYW1pbHksIGZvbnREZXNjcmlw
dGlvbiwgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMsIHNpemUpOworICAg
ICAgICBmb250ID0gZm9udFdpdGhGYW1pbHkoZmFtaWx5LCBmb250RGVzY3JpcHRpb24sIGZvbnRG
YWNlRmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBmb250UGFsZXR0ZVZhbHVlcywgc2l6
ZSk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTE0MTIsNyArMTQ1OCw3IEBAIFJlZlB0cjxGb250PiBG
b250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBGb250RGVzY3JpcHRp
b24mIGRlc2NyCiAgICAgICAgIG1fZm9udE5hbWVzUmVxdWlyaW5nU3lzdGVtRmFsbGJhY2tGb3JQ
cmV3YXJtaW5nLmFkZChmdWxsTmFtZSk7CiAKICAgICBhdXRvIHJlc3VsdCA9IGxvb2t1cEZhbGxi
YWNrRm9udChwbGF0Zm9ybURhdGEuZm9udCgpLCBkZXNjcmlwdGlvbi53ZWlnaHQoKSwgZGVzY3Jp
cHRpb24uY29tcHV0ZWRMb2NhbGUoKSwgZGVzY3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFs
bGVkRm9udHMoKSwgY2hhcmFjdGVycywgbGVuZ3RoKTsKLSAgICByZXN1bHQgPSBwcmVwYXJlUGxh
dGZvcm1Gb250KHJlc3VsdC5nZXQoKSwgZGVzY3JpcHRpb24sIG51bGxwdHIsIHsgfSk7CisgICAg
cmVzdWx0ID0gcHJlcGFyZVBsYXRmb3JtRm9udChyZXN1bHQuZ2V0KCksIGRlc2NyaXB0aW9uLCBu
dWxscHRyLCB7IH0sIHsgfSk7CiAKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIGxh
c3RSZXNvcnRGYWxsYmFja0ZvbnQoZGVzY3JpcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgKaW5k
ZXggOWFiYTg5ZjIxMzcwLi4zNzdiMzA5MTliMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyAtIDIwMjEgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzQsNiArMzQsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZvbnRQYWxldHRl
VmFsdWVzOworCiBzdHJ1Y3QgU3ludGhlc2lzUGFpciB7CiAgICAgZXhwbGljaXQgU3ludGhlc2lz
UGFpcihib29sIG5lZWRzU3ludGhldGljQm9sZCwgYm9vbCBuZWVkc1N5bnRoZXRpY09ibGlxdWUp
CiAgICAgICAgIDogbmVlZHNTeW50aGV0aWNCb2xkKG5lZWRzU3ludGhldGljQm9sZCkKQEAgLTU5
LDcgKzYxLDcgQEAgc3RydWN0IFZhcmlhdGlvbkRlZmF1bHRzIHsKIAogdHlwZWRlZiBIYXNoTWFw
PEZvbnRUYWcsIFZhcmlhdGlvbkRlZmF1bHRzLCBGb3VyQ2hhcmFjdGVyVGFnSGFzaCwgRm91ckNo
YXJhY3RlclRhZ0hhc2hUcmFpdHM+IFZhcmlhdGlvbkRlZmF1bHRzTWFwOwogCi1SZXRhaW5QdHI8
Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiwgY29uc3QgRm9udERlc2Ny
aXB0aW9uJiwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcywgRm9u
dFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcywgYm9v
bCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zID0gdHJ1ZSk7CitSZXRhaW5QdHI8Q1RG
b250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiwgY29uc3QgRm9udERlc2NyaXB0
aW9uJiwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcywgY29uc3Qg
Rm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyYgZm9udEZhY2VDYXBhYmlsaXRpZXMs
IGNvbnN0IEZvbnRQYWxldHRlVmFsdWVzJiwgYm9vbCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJp
YXRpb25zID0gdHJ1ZSk7CiBlbnVtIGNsYXNzIFNob3VsZENvbXB1dGVQaHlzaWNhbFRyYWl0cyA6
IGJvb2wgeyBObywgWWVzIH07CiBTeW50aGVzaXNQYWlyIGNvbXB1dGVOZWNlc3NhcnlTeW50aGVz
aXMoQ1RGb250UmVmLCBjb25zdCBGb250RGVzY3JpcHRpb24mLCBTaG91bGRDb21wdXRlUGh5c2lj
YWxUcmFpdHMgPSBTaG91bGRDb21wdXRlUGh5c2ljYWxUcmFpdHM6Ok5vLCBib29sIGlzUGxhdGZv
cm1Gb250ID0gZmFsc2UpOwogUmV0YWluUHRyPENURm9udFJlZj4gcGxhdGZvcm1Gb250V2l0aEZh
bWlseShjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHksIEZvbnRTZWxlY3Rpb25SZXF1ZXN0LCBUZXh0
UmVuZGVyaW5nTW9kZSwgZmxvYXQgc2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRGYW1pbHlTcGVj
aWZpY2F0aW9uQ29yZVRleHQuY3BwCmluZGV4IDJiZTM5Yjc5NDM1MS4uNmRiNDEwNmI4OTc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RmFt
aWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmNwcApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IC0gMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTk3
LDcgKzk3LDggQEAgRm9udFJhbmdlcyBGb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0Ojpm
b250UmFuZ2VzKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm8KIAogICAgICAgICBhdXRvIGZvbnQg
PSBhZG9wdENGKENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvcihtX2ZvbnREZXNjcmlwdG9y
LmdldCgpLCBzaXplLCBudWxscHRyKSk7CiAKLSAgICAgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9y
bUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCBudWxscHRyLCB7IH0pOworICAgICAg
ICAvLyBOb25lIG9mIHRoZSBDb3JlIFRleHQgc3lzdGVtIGZvbnRzIHN1cHBvcnQgY29sb3IgcGFs
ZXR0ZXMuCisgICAgICAgIGZvbnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KGZvbnQuZ2V0KCksIGZv
bnREZXNjcmlwdGlvbiwgbnVsbHB0ciwgeyB9LCB7IH0pOwogCiAgICAgICAgIGF1dG8gW3N5bnRo
ZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWVdID0gY29tcHV0ZU5lY2Vzc2FyeVN5bnRoZXNpcyhm
b250LmdldCgpLCBmb250RGVzY3JpcHRpb24sIFNob3VsZENvbXB1dGVQaHlzaWNhbFRyYWl0czo6
WWVzKS5ib2xkT2JsaXF1ZVBhaXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCmlu
ZGV4IGYyNWRjMjFhMjY3OC4uYWE5YTMwNzAxOTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDcgLSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCkgPSBkZWZhdWx0OwogCi1Gb250
UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9vbCBpdGFs
aWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxl
Y3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMpCitGb250UGxh
dGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVhdHVyZXMsIGNvbnN0IEZvbnRT
ZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMmIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBjb25z
dCBGb250UGFsZXR0ZVZhbHVlcyYgZm9udFBhbGV0dGVWYWx1ZXMpCiB7CiAgICAgYXV0byBhdHRy
aWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9u
YXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBhZGRBdHRyaWJ1dGVzRm9yV2ViRm9udHMoYXR0cmli
dXRlcy5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRz
KCkpOwpAQCAtNDYsNyArNDYsNyBAQCBGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJgogICAgIEZvbnRP
cmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlvbigpOwog
ICAgIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50ID0gZm9udERlc2NyaXB0aW9uLndpZHRo
VmFyaWFudCgpOwogICAgIGF1dG8gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnRE
ZXNjcmlwdG9yKG1vZGlmaWVkRm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIpKTsK
LSAgICBmb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChmb250LmdldCgpLCBmb250RGVzY3JpcHRp
b24sICZmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyk7CisgICAgZm9udCA9
IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCAmZm9udEZh
Y2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGZvbnRQYWxldHRlVmFsdWVzKTsKICAg
ICBBU1NFUlQoZm9udCk7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoZm9udC5nZXQoKSwg
c2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50LCBmb250RGVzY3Jp
cHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwgJmNyZWF0aW9uRGF0YSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaAppbmRleCBmZmI5YTk3NDQ0Y2EuLjNkMDJhZjYwNDNmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNyBBcHBsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgLSAyMDIxIEFwcGxlIEluYy4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzQsNiArMzQsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBfX0NURm9udERlc2NyaXB0b3IqIENURm9udERlc2NyaXB0b3JSZWY7CiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKK2NsYXNzIEZvbnRQYWxldHRlVmFsdWVz
Owogc3RydWN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXM7CiBjbGFzcyBTaGFy
ZWRCdWZmZXI7CiAKQEAgLTUxLDcgKzUyLDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBP
UlQgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBGb250U2Vs
ZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKTsKKyAgICBG
b250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwg
Ym9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZh
Y2VGZWF0dXJlcywgY29uc3QgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyYgZm9u
dEZhY2VDYXBhYmlsaXRpZXMsIGNvbnN0IEZvbnRQYWxldHRlVmFsdWVzJik7CiAKICAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuY3BwCmluZGV4IGYxNTdkMzA5N2Rm
Ni4uYTQzZTY4N2ZlMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckZvbnRMb2FkUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJG
b250TG9hZFJlcXVlc3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYgLSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICAqIENvcHlyaWdodCAoQykg
MjAyMSBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgogICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxp
YSBTLkwuCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJGb250LmgiCiAjaW5jbHVkZSAi
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgorI2luY2x1ZGUgIkZvbnRQYWxldHRlVmFsdWVzLmgi
CiAjaW5jbHVkZSAiRm9udFNlbGVjdGlvbkFsZ29yaXRobS5oIgogI2luY2x1ZGUgIlJlc291cmNl
TG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXIuaCIKQEAgLTg4LDExICs4
OSwxMSBAQCBib29sIFdvcmtlckZvbnRMb2FkUmVxdWVzdDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEo
Y29uc3QgQXRvbVN0cmluZyYpCiAgICAgcmV0dXJuIG1fZm9udEN1c3RvbVBsYXRmb3JtRGF0YS5n
ZXQoKTsKIH0KIAotUmVmUHRyPEZvbnQ+IFdvcmtlckZvbnRMb2FkUmVxdWVzdDo6Y3JlYXRlRm9u
dChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmlu
ZyYsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRG
ZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRD
YXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMpCitSZWZQdHI8Rm9udD4gV29ya2VyRm9u
dExvYWRSZXF1ZXN0OjpjcmVhdGVGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2Ny
aXB0aW9uLCBjb25zdCBBdG9tU3RyaW5nJiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRo
ZXRpY0l0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0dXJlcywg
Y29uc3QgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyYgZm9udEZhY2VDYXBhYmls
aXRpZXMsIGNvbnN0IEZvbnRQYWxldHRlVmFsdWVzJiBmb250UGFsZXR0ZVZhbHVlcykKIHsKICAg
ICBBU1NFUlQobV9mb250Q3VzdG9tUGxhdGZvcm1EYXRhKTsKICAgICBBU1NFUlQobV9jb250ZXh0
KTsKLSAgICByZXR1cm4gRm9udDo6Y3JlYXRlKG1fZm9udEN1c3RvbVBsYXRmb3JtRGF0YS0+Zm9u
dFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0
YWxpYywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMpLCBGb250OjpPcmln
aW46OlJlbW90ZSwgJm1fY29udGV4dC0+Zm9udENhY2hlKCkpOworICAgIHJldHVybiBGb250Ojpj
cmVhdGUobV9mb250Q3VzdG9tUGxhdGZvcm1EYXRhLT5mb250UGxhdGZvcm1EYXRhKGZvbnREZXNj
cmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVz
LCBmb250RmFjZUNhcGFiaWxpdGllcywgZm9udFBhbGV0dGVWYWx1ZXMpLCBGb250OjpPcmlnaW46
OlJlbW90ZSwgJm1fY29udGV4dC0+Zm9udENhY2hlKCkpOwogfQogCiB2b2lkIFdvcmtlckZvbnRM
b2FkUmVxdWVzdDo6c2V0Q2xpZW50KEZvbnRMb2FkUmVxdWVzdENsaWVudCogY2xpZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmgKaW5kZXggYWY2
OTIwNjMwMmRjLi4yYjk2M2E2ZjM0MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJGb250TG9hZFJlcXVlc3QuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgTWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KICAqIENvcHlyaWdodCAoQykgMjAyMSBJ
Z2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNiArMzQsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZvbnRQYWxldHRlVmFsdWVzOwogY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFdv
cmtlckdsb2JhbFNjb3BlOwpAQCAtNTQsNyArNTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZXJy
b3JPY2N1cnJlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZXJyb3JPY2N1cnJlZDsgfQogCiAg
ICAgYm9vbCBlbnN1cmVDdXN0b21Gb250RGF0YShjb25zdCBBdG9tU3RyaW5nJiByZW1vdGVVUkkp
IGZpbmFsOwotICAgIFJlZlB0cjxGb250PiBjcmVhdGVGb250KGNvbnN0IEZvbnREZXNjcmlwdGlv
biYsIGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29s
IHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYsIEZvbnRTZWxlY3Rp
b25TcGVjaWZpZWRDYXBhYmlsaXRpZXMpIGZpbmFsOworICAgIFJlZlB0cjxGb250PiBjcmVhdGVG
b250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSwg
Ym9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9udEZlYXR1
cmVTZXR0aW5ncyYsIGNvbnN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMmLCBj
b25zdCBGb250UGFsZXR0ZVZhbHVlcyYpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRDbGllbnQoRm9u
dExvYWRSZXF1ZXN0Q2xpZW50KikgZmluYWw7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>438581</attachid>
            <date>2021-09-18 23:24:12 -0700</date>
            <delta_ts>2021-09-22 01:36:33 -0700</delta_ts>
            <desc>Test</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>1112</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPG1ldGEgY2hhcnNldD0idXRmLTgiPgo8c3R5
bGU+CkBmb250LWZhY2UgewogICAgZm9udC1mYW1pbHk6ICJXZWJGb250IjsKICAgIHNyYzogdXJs
KCJBaGVtLUNPTFIgMi50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cn0KCkBmb250LWZhY2Ugewog
ICAgZm9udC1mYW1pbHk6ICJXZWJGb250MiI7CiAgICBzcmM6IHVybCgiTGFwaXNMZWdpdC50dGYi
KSBmb3JtYXQoInRydWV0eXBlIik7Cn0KCkBmb250LXBhbGV0dGUtdmFsdWVzIE15bGVzIHsKICAg
IGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7CiAgICBiYXNlLXBhbGV0dGU6IDA7Cn0KCkBmb250LXBh
bGV0dGUtdmFsdWVzIE15bGVzMiB7CiAgICBmb250LWZhbWlseTogIldlYkZvbnQiOwogICAgYmFz
ZS1wYWxldHRlOiAxOwp9CgpAZm9udC1wYWxldHRlLXZhbHVlcyBNeWxlczMgewogICAgZm9udC1m
YW1pbHk6ICJXZWJGb250IjsKICAgIGJhc2UtcGFsZXR0ZTogMTsKICAgIG92ZXJyaWRlLWNvbG9y
OiAxICNGRjAwMDA7Cn0KCkBmb250LXBhbGV0dGUtdmFsdWVzIE5lZCB7CiAgICBmb250LWZhbWls
eTogIldlYkZvbnQyIjsKfQoKQGZvbnQtcGFsZXR0ZS12YWx1ZXMgTmVkMiB7CiAgICBmb250LWZh
bWlseTogIldlYkZvbnQyIjsKICAgIG92ZXJyaWRlLWNvbG9yOiAwICNGRjAwRkYsIDEgI0ZGRkYw
MCwgMiAjMDBGRkZGOwp9CgpkaXYgewogICAgbWFyZ2luLXRvcDogMjBweDsKICAgIG1hcmdpbi1i
b3R0b206IDIwcHg7Cn0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KPGRpdiBzdHlsZT0iZm9udDog
NDhweCAnV2ViRm9udCc7IGZvbnQtcGFsZXR0ZTogTXlsZXMiPkE8L2Rpdj4KPGRpdiBzdHlsZT0i
Zm9udDogNDhweCAnV2ViRm9udCc7IGZvbnQtcGFsZXR0ZTogTXlsZXMyIj5BPC9kaXY+CjxkaXYg
c3R5bGU9ImZvbnQ6IDQ4cHggJ1dlYkZvbnQnOyBmb250LXBhbGV0dGU6IE15bGVzMyI+QTwvZGl2
Pgo8ZGl2IHN0eWxlPSJmb250OiA0OHB4ICdXZWJGb250Mic7IGZvbnQtcGFsZXR0ZTogTmVkIj5h
PC9kaXY+CjxkaXYgc3R5bGU9ImZvbnQ6IDQ4cHggJ1dlYkZvbnQyJzsgZm9udC1wYWxldHRlOiBO
ZWQyIj5hPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>438582</attachid>
            <date>2021-09-18 23:24:51 -0700</date>
            <delta_ts>2021-09-22 01:36:28 -0700</delta_ts>
            <desc>Test font</desc>
            <filename>Ahem-COLR 2.ttf.zip</filename>
            <type>application/zip</type>
            <size>5493</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">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
SwUGAAAAAAIAAgDFAAAAmhQAAAAA
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438920</attachid>
            <date>2021-09-21 22:19:11 -0700</date>
            <delta_ts>2021-09-22 21:17:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230449-20210921221910.patch</filename>
            <type>text/plain</type>
            <size>39487</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU0YjdlYTAxYTgzM2Zk
NGI3YTVlM2JlNGI1N2ExOWM0ZjliODM0ZC4uNTAzOWM2ODU0MjE2NTRmODI2NWYxNGYwYWUxNjcz
ZGQzNjY1NWNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTA5LTIxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBI
b29rIHVwIHBhbGV0dGVzIHRvIENvcmVUZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBOb3cgdGhhdCB3ZSBoYXZlIEZvbnRDcmVhdGlvbkNvbnRleHQs
IHdlIGNhbiBqdXN0IGFkZCBGb250UGFsZXR0ZVZhbHVlcyB0byBpdCwgYW5kIHR1cm4KKyAgICAg
ICAgdGhhdCBpbnRvIENvcmUgVGV4dCBhdHRyaWJ1dGVzIGluIHByZXBhcmVQbGF0Zm9ybUZvbnQo
KS4KKworICAgICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtZm9udHMvZm9udC1wYWxldHRlLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6OmZvbnQpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFj
ZS5oOgorICAgICAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTRm9udFNlbGVjdG9yOjpsb29rdXBGb250UGFsZXR0ZVZhbHVlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OmZvbnRSYW5nZXNGb3JGYW1pbHkpOgorICAgICAgICAq
IGNzcy9DU1NGb250U2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvQ1NTU2VnbWVudGVkRm9udEZh
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VnbWVudGVkRm9udEZhY2U6OmZvbnRSYW5n
ZXMpOgorICAgICAgICAqIGNzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDcmVhdGlvbkNvbnRleHQ6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6YWRkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGFsZXR0ZVZhbHVlcy5o
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBhbGV0dGVWYWx1ZXM6Om9wZXJhdG9yPT0gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBhbGV0dGVWYWx1ZXM6Om9wZXJhdG9yIT0gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6YWRkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFkaWVudC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OmFkZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udENhY2hlQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkQXR0cmlidXRlc0Zv
ckZvbnRQYWxldHRlcyk6CisgICAgICAgIChXZWJDb3JlOjpwcmVwYXJlUGxhdGZvcm1Gb250KToK
KwogMjAyMS0wOS0yMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBGb250Q3JlYXRpb25Db250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBj
ODE1ZDFiNmM5NjVlMTllNzI3NzJkYmZlMWY1YzliMzExZjNlZTE4Li5iOGJkN2QwNDllOWIzNTdj
OTY0MGJiYzE4ZTQyMzgwOWQwNWNjZjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAyMS0wOS0yMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtDb2NvYV0gSG9vayB1cCBwYWxldHRlcyB0byBDb3JlVGV4dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNDQ5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NmL0Nv
cmVUZXh0U1BJLmg6CisKIDIwMjEtMDktMjEgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtNYWMgQ2F0YWx5c3RdIEZpeCBidWlsZCBpc3N1ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ29yZVRleHRTUEkuaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmgKaW5kZXggNTAzODc4MzFkNjIw
YWUxMzE0MzJhNzZiODA3M2VmMGI1MzEyMTY0NC4uNmUwNjQwNmExYzE5NjAyNjZlNDQ4MWRlOTg3
YmQzMzlmYzc1ODRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2Yv
Q29yZVRleHRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9Db3JlVGV4
dFNQSS5oCkBAIC04Nyw2ICs4NywxMiBAQCBlbnVtIHsKICAgICBrQ1RGb250VHJhaXRFbXBoYXNp
emVkID0ga0NURm9udFRyYWl0Qm9sZCwKIH07CiAKK3R5cGVkZWYgQ0ZfRU5VTShDRkluZGV4LCBD
VEZvbnRQYWxldHRlKQoreworICAgIGtDVEZvbnRQYWxldHRlTGlnaHQgPSAtMSwKKyAgICBrQ1RG
b250UGFsZXR0ZURhcmsgPSAtMgorfTsKKwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19PVFNWR1Rh
YmxlICogT1RTVkdUYWJsZVJlZjsKIAogI2VuZGlmCkBAIC0xNTAsNiArMTU2LDkgQEAgZXh0ZXJu
IGNvbnN0IENGU3RyaW5nUmVmIGtDVEZvbnRVSUZvbnREZXNpZ25TZXJpZjsKIGV4dGVybiBjb25z
dCBDRlN0cmluZ1JlZiBrQ1RGb250VUlGb250RGVzaWduTW9ub3NwYWNlZDsKIGV4dGVybiBjb25z
dCBDRlN0cmluZ1JlZiBrQ1RGb250VUlGb250RGVzaWduUm91bmRlZDsKIAorZXh0ZXJuIGNvbnN0
IENGU3RyaW5nUmVmIGtDVEZvbnRQYWxldHRlQXR0cmlidXRlOworZXh0ZXJuIGNvbnN0IENGU3Ry
aW5nUmVmIGtDVEZvbnRQYWxldHRlQ29sb3JzQXR0cmlidXRlOworCiBleHRlcm4gY29uc3QgQ0ZT
dHJpbmdSZWYga0NURnJhbWVNYXhpbXVtTnVtYmVyT2ZMaW5lc0F0dHJpYnV0ZU5hbWU7CiAKIGJv
b2wgQ1RGb250RGVzY3JpcHRvcklzU3lzdGVtVUlGb250KENURm9udERlc2NyaXB0b3JSZWYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDA4ZjQ1M2E0MjMxNDk4MDM0ZjgwYTEwYjRkYzliNzRhMzQ5Y2VhNDYuLjBiNGQyYTk5MzY1
NmI5Mzc3ZjNkZjA5ODVlNjc5YTkwZmQxYjU5YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY1NCw3ICs2NTQsNyBAQAogCQkx
QzI2NjcxQjI2RkE5MzJGMDAxMTcwNzMgLyogRm9udENyZWF0aW9uQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMyNjY3MTkyNkZBN0YyRTAw
MTE3MDczIC8qIEZvbnRDcmVhdGlvbkNvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQzQzREU2QjIyQUI0QjhBMDAxNTI3RDkgLyogTG9j
YWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQzQzREU2ODIyQUI0QjhBMDAxNTI3RDkgLyogTG9jYWxDdXJyZW50
VHJhaXRDb2xsZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMUM0RDBERDMyNEQ5RjEwRDAwM0Q3NDk4IC8qIEdseXBoQnVmZmVyTWVtYmVy
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM0RDBE
RDEyNEQ5RjBEQjAwM0Q3NDk4IC8qIEdseXBoQnVmZmVyTWVtYmVycy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTFDNUUxREE4MjZGOTRCOTAwMEUw
N0FGMSAvKiBGb250UGFsZXR0ZVZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUM1RTFEQTYyNkY5NDlCOTAwRTA3QUYxIC8qIEZvbnRQYWxldHRl
VmFsdWVzLmggKi87IH07CisJCTFDNUUxREE4MjZGOTRCOTAwMEUwN0FGMSAvKiBGb250UGFsZXR0
ZVZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUM1RTFEQTYyNkY5NDlCOTAwRTA3QUYxIC8qIEZvbnRQYWxldHRlVmFsdWVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUM2NjI2MTExQzZFN0NB
NjAwQUI1MjdDIC8qIEZvbnRGYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQzY2MjYwRjFDNkU3Q0E2MDBBQjUyN0MgLyogRm9udEZhY2UuaCAqLzsg
fTsKIAkJMUM3M0E3MTMyMTg1NzU3RTAwNENDRUE1IC8qIFRleHRVbmRlcmxpbmVPZmZzZXQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQjZCNEZCMjE3
QjgzOTQwMDkzQjlDRCAvKiBUZXh0VW5kZXJsaW5lT2Zmc2V0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUM3M0E3MTUyMTg1NzU4NzAwNENDRUE1
IC8qIFRleHREZWNvcmF0aW9uVGhpY2tuZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0I2QjRGODIxN0I4MzkzMDA5M0I5Q0QgLyogVGV4dERlY29y
YXRpb25UaGlja25lc3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKaW5kZXggMDk5ZWFjNGQwNDE1NjA0
YmM1NWQ2MDExMGE4ZjEzN2ZhYWFiZDgwZS4uNGE2MjYyZGE5YTUwNWY1ZGFiNDk2MDFiNDAzZWFj
MDUxNTliNzZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCkBAIC00MSw2ICs0MSw3
IEBACiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgi
CiAjaW5jbHVkZSAiRm9udEZhY2UuaCIKKyNpbmNsdWRlICJGb250UGFsZXR0ZVZhbHVlcy5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVk
ZSAiU3R5bGVCdWlsZGVyQ29udmVydGVyLmgiCkBAIC02NTEsNyArNjUyLDcgQEAgc3RhdGljIEZv
bnQ6OlZpc2liaWxpdHkgdmlzaWJpbGl0eShDU1NGb250RmFjZTo6U3RhdHVzIHN0YXR1cywgQ1NT
Rm9udEZhY2U6OkZvbnQKICAgICB9CiB9CiAKLVJlZlB0cjxGb250PiBDU1NGb250RmFjZTo6Zm9u
dChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50aGV0aWNC
b2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgRXh0ZXJuYWxSZXNvdXJjZURvd25sb2FkUG9saWN5
IHBvbGljeSkKK1JlZlB0cjxGb250PiBDU1NGb250RmFjZTo6Zm9udChjb25zdCBGb250RGVzY3Jp
cHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRp
Y0l0YWxpYywgRXh0ZXJuYWxSZXNvdXJjZURvd25sb2FkUG9saWN5IHBvbGljeSwgY29uc3QgRm9u
dFBhbGV0dGVWYWx1ZXMmIGZvbnRQYWxldHRlVmFsdWVzKQogewogICAgIGlmIChjb21wdXRlRmFp
bHVyZVN0YXRlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNjgwLDcgKzY4MSw3IEBA
IFJlZlB0cjxGb250PiBDU1NGb250RmFjZTo6Zm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZv
bnREZXNjcmlwdGlvbiwgYm9vbCBzeW50CiAgICAgICAgICAgICByZXR1cm4gRm9udDo6Y3JlYXRl
KGZvbnRDYWNoZS5sYXN0UmVzb3J0RmFsbGJhY2tGb250KGZvbnREZXNjcmlwdGlvbiktPnBsYXRm
b3JtRGF0YSgpLCBGb250OjpPcmlnaW46OkxvY2FsLCAmZm9udENhY2hlLCBGb250OjpJbnRlcnN0
aXRpYWw6OlllcywgdmlzaWJpbGl0eSk7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NGb250
RmFjZVNvdXJjZTo6U3RhdHVzOjpTdWNjZXNzOiB7Ci0gICAgICAgICAgICBGb250Q3JlYXRpb25D
b250ZXh0IGZvbnRDcmVhdGlvbkNvbnRleHQgeyBtX2ZlYXR1cmVTZXR0aW5ncywgbV9mb250U2Vs
ZWN0aW9uQ2FwYWJpbGl0aWVzIH07CisgICAgICAgICAgICBGb250Q3JlYXRpb25Db250ZXh0IGZv
bnRDcmVhdGlvbkNvbnRleHQgeyBtX2ZlYXR1cmVTZXR0aW5ncywgbV9mb250U2VsZWN0aW9uQ2Fw
YWJpbGl0aWVzLCBmb250UGFsZXR0ZVZhbHVlcyB9OwogICAgICAgICAgICAgaWYgKGF1dG8gcmVz
dWx0ID0gc291cmNlLT5mb250KGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhl
dGljSXRhbGljLCBmb250Q3JlYXRpb25Db250ZXh0KSkKICAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oCmluZGV4
IGRmNThkZjcwZjFmODY3MTFkNmRmYmEzYTY4YmQ0NDRlYzUwODQwZTAuLmQ0NWMwNjIyZTc0NzE5
N2JlZmNhNGMzNjYwM2Q0MGZiZjQxYThmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgQ1NTU2VnbWVudGVkRm9udEZhY2U7CiBjbGFz
cyBDU1NWYWx1ZTsKIGNsYXNzIENTU1ZhbHVlTGlzdDsKIGNsYXNzIEZvbnRDYWNoZTsKK3N0cnVj
dCBGb250Q3JlYXRpb25Db250ZXh0OwogY2xhc3MgRm9udERlc2NyaXB0aW9uOwogY2xhc3MgRm9u
dDsKIGNsYXNzIEZvbnRGYWNlOwpAQCAtMTE1LDcgKzExNiw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgbG9hZCgpOwogCi0gICAgUmVmUHRyPEZvbnQ+IGZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9u
JiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgRXh0ZXJuYWxSZXNv
dXJjZURvd25sb2FkUG9saWN5KTsKKyAgICBSZWZQdHI8Rm9udD4gZm9udChjb25zdCBGb250RGVz
Y3JpcHRpb24mLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBFeHRl
cm5hbFJlc291cmNlRG93bmxvYWRQb2xpY3ksIGNvbnN0IEZvbnRQYWxldHRlVmFsdWVzJik7CiAK
ICAgICBzdGF0aWMgdm9pZCBhcHBlbmRTb3VyY2VzKENTU0ZvbnRGYWNlJiwgQ1NTVmFsdWVMaXN0
JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGJvb2wgaXNJbml0aWF0aW5nRWxlbWVudEluVXNl
ckFnZW50U2hhZG93VHJlZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAK
aW5kZXggMTQ3ZDhkZmU1YTE5OTBiNmU2ZTdmMWNhMjY2MzhiYjcxMWQzZjc5MS4uZDNkYTgwNDUw
YjBjM2Q1MTVjZjQxMjk3YzdhZGY3YzIyY2MyOTJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRTZWxlY3Rvci5jcHAKQEAgLTMxNyw2ICszMTcsMjAgQEAgc3RkOjpvcHRpb25hbDxBdG9tU3Ry
aW5nPiBDU1NGb250U2VsZWN0b3I6OnJlc29sdmVHZW5lcmljRmFtaWx5KGNvbnN0IEZvbnREZXNj
cmkKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCitjb25zdCBGb250UGFsZXR0ZVZhbHVl
cyYgQ1NTRm9udFNlbGVjdG9yOjpsb29rdXBGb250UGFsZXR0ZVZhbHVlcyhjb25zdCBBdG9tU3Ry
aW5nJiBmYW1pbHlOYW1lLCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udFBhbGV0dGVWYWx1ZXM+IGVtcHR5Rm9u
dFBhbGV0dGVWYWx1ZXM7CisgICAgaWYgKGZvbnREZXNjcmlwdGlvbi5mb250UGFsZXR0ZSgpLnR5
cGUgIT0gRm9udFBhbGV0dGU6OlR5cGU6OkN1c3RvbSkKKyAgICAgICAgcmV0dXJuIGVtcHR5Rm9u
dFBhbGV0dGVWYWx1ZXMuZ2V0KCk7CisKKyAgICBjb25zdCBBdG9tU3RyaW5nIHBhbGV0dGVOYW1l
ID0gZm9udERlc2NyaXB0aW9uLmZvbnRQYWxldHRlKCkuaWRlbnRpZmllcjsKKworICAgIGF1dG8g
aXRlcmF0b3IgPSBtX3BhbGV0dGVGYW1pbHlNYXAuZmluZChzdGQ6Om1ha2VfcGFpcihmYW1pbHlO
YW1lLCBwYWxldHRlTmFtZSkpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3BhbGV0dGVGYW1pbHlN
YXAuZW5kKCkpCisgICAgICAgIHJldHVybiBlbXB0eUZvbnRQYWxldHRlVmFsdWVzLmdldCgpOwor
ICAgIHJldHVybiBpdGVyYXRvci0+dmFsdWU7Cit9CisKIEZvbnRSYW5nZXMgQ1NTRm9udFNlbGVj
dG9yOjpmb250UmFuZ2VzRm9yRmFtaWx5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2Ny
aXB0aW9uLCBjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHlOYW1lKQogewogICAgIC8vIElmIHRoaXMg
QVNTRVJUKCkgZmlyZXMsIGl0IHVzdWFsbHkgbWVhbnMgeW91IGZvcmdvdCBhIGRvY3VtZW50LnVw
ZGF0ZVN0eWxlSWZOZWVkZWQoKSBzb21ld2hlcmUuCkBAIC0zMzMsNyArMzQ3LDcgQEAgRm9udFJh
bmdlcyBDU1NGb250U2VsZWN0b3I6OmZvbnRSYW5nZXNGb3JGYW1pbHkoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3IKICAgICAgICAgICAgIGZhbWlseUZvckxvb2t1cCA9ICpnZW5lcmlj
RmFtaWx5T3B0aW9uYWw7CiAgICAgfTsKIAotICAgIC8vIEZJWE1FIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA0NDk6IFF1ZXJ5IGZvciBmb250IHBhbGV0dGUgZGF0
YSBhbmQgcGFzcyBpdCBpbnRvIHRoZSBmb250IGNyZWF0aW9uIHJvdXRpbmVzLgorICAgIGF1dG8g
Zm9udFBhbGV0dGVWYWx1ZXMgPSBsb29rdXBGb250UGFsZXR0ZVZhbHVlcyhmYW1pbHlOYW1lLCBm
b250RGVzY3JpcHRpb24pOwogCiAgICAgaWYgKHJlc29sdmVHZW5lcmljRmFtaWx5Rmlyc3QpCiAg
ICAgICAgIHJlc29sdmVBbmRBc3NpZ25HZW5lcmljRmFtaWx5KCk7CkBAIC0zNDIsMTIgKzM1Niwx
MiBAQCBGb250UmFuZ2VzIENTU0ZvbnRTZWxlY3Rvcjo6Zm9udFJhbmdlc0ZvckZhbWlseShjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcgogICAgIGlmIChmYWNlKSB7CiAgICAgICAgIGlm
IChkb2N1bWVudCAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndl
YkFQSVN0YXRpc3RpY3NFbmFibGVkKCkpCiAgICAgICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6c2hhcmVkKCkubG9nRm9udExvYWQoKmRvY3VtZW50LCBmYW1pbHlGb3JMb29rdXAuc3RyaW5n
KCksIHRydWUpOwotICAgICAgICByZXR1cm4gZmFjZS0+Zm9udFJhbmdlcygqZm9udERlc2NyaXB0
aW9uRm9yTG9va3VwKTsKKyAgICAgICAgcmV0dXJuIGZhY2UtPmZvbnRSYW5nZXMoKmZvbnREZXNj
cmlwdGlvbkZvckxvb2t1cCwgZm9udFBhbGV0dGVWYWx1ZXMpOwogICAgIH0KIAogICAgIGlmICgh
cmVzb2x2ZUdlbmVyaWNGYW1pbHlGaXJzdCkKICAgICAgICAgcmVzb2x2ZUFuZEFzc2lnbkdlbmVy
aWNGYW1pbHkoKTsKLSAgICBhdXRvIGZvbnQgPSBtX2ZvbnRDYWNoZS0+Zm9udEZvckZhbWlseSgq
Zm9udERlc2NyaXB0aW9uRm9yTG9va3VwLCBmYW1pbHlGb3JMb29rdXAsIHsgfSk7CisgICAgYXV0
byBmb250ID0gbV9mb250Q2FjaGUtPmZvbnRGb3JGYW1pbHkoKmZvbnREZXNjcmlwdGlvbkZvckxv
b2t1cCwgZmFtaWx5Rm9yTG9va3VwLCB7IHsgfSwgeyB9LCBmb250UGFsZXR0ZVZhbHVlcyB9KTsK
ICAgICBpZiAoZG9jdW1lbnQgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJBUElTdGF0aXN0aWNzRW5hYmxlZCgpKQogICAgICAgICBSZXNvdXJjZUxvYWRPYnNl
cnZlcjo6c2hhcmVkKCkubG9nRm9udExvYWQoKmRvY3VtZW50LCBmYW1pbHlGb3JMb29rdXAuc3Ry
aW5nKCksICEhZm9udCk7CiAgICAgcmV0dXJuIEZvbnRSYW5nZXMgeyBXVEZNb3ZlKGZvbnQpIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKaW5kZXggY2Q0NTZlNzk2ZGI3MmUwMTNm
YTFkZmVlNDZiMTE1ZmUyMDYzNTM2ZS4uMzY3ZjUxZTFmOTY3ZmZjM2ZlZWZmYmMxYWNhMjIwYmIw
ZDdlZDFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaApAQCAtMTA1LDYgKzEw
NSw4IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6Om9wdGlvbmFsPEF0b21TdHJpbmc+IHJlc29sdmVH
ZW5lcmljRmFtaWx5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIGZh
bWlseSk7CiAKKyAgICBjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYgbG9va3VwRm9udFBhbGV0dGVW
YWx1ZXMoY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5TmFtZSwgY29uc3QgRm9udERlc2NyaXB0aW9u
Jik7CisKICAgICAvLyBDU1NGb250RmFjZTo6Q2xpZW50CiAgICAgdm9pZCBmb250TG9hZGVkKENT
U0ZvbnRGYWNlJikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVTdHlsZUlmTmVlZGVkKENTU0ZvbnRG
YWNlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVk
Rm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNw
cAppbmRleCAyMTFkMjM1ZTA4YjUyOTU2MmRhYmM2ZjA2MWUwN2NjYmZjNjBjNzFmLi4zYmM0OTg5
NjY2YjE0YzU4NjVhNWJmMzRhNjcwMjA1Zjk0NDk4Y2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNyArMjksOSBAQAogI2luY2x1ZGUg
IkNTU0ZvbnRGYWNlLmgiCiAjaW5jbHVkZSAiRm9udC5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5o
IgorI2luY2x1ZGUgIkZvbnRDcmVhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJGb250RGVzY3Jp
cHRpb24uaCIKKyNpbmNsdWRlICJGb250UGFsZXR0ZVZhbHVlcy5oIgogI2luY2x1ZGUgIkZvbnRT
ZWxlY3Rvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01OCwxNiArNjAsMTYgQEAgdm9p
ZCBDU1NTZWdtZW50ZWRGb250RmFjZTo6Zm9udExvYWRlZChDU1NGb250RmFjZSYpCiAKIGNsYXNz
IENTU0ZvbnRBY2Nlc3NvciBmaW5hbCA6IHB1YmxpYyBGb250QWNjZXNzb3IgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8Q1NTRm9udEFjY2Vzc29yPiBjcmVhdGUoQ1NTRm9udEZhY2UmIGZvbnRG
YWNlLCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50aGV0
aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYykKKyAgICBzdGF0aWMgUmVmPENTU0ZvbnRBY2Nl
c3Nvcj4gY3JlYXRlKENTU0ZvbnRGYWNlJiBmb250RmFjZSwgY29uc3QgRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEZvbnRQYWxldHRlVmFsdWVzJiBmb250UGFsZXR0ZVZh
bHVlcywgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYykKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0ZvbnRBY2Nlc3Nvcihmb250RmFjZSwgZm9u
dERlc2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTRm9udEFjY2Vzc29yKGZvbnRGYWNlLCBmb250RGVzY3Jp
cHRpb24sIGZvbnRQYWxldHRlVmFsdWVzLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMp
KTsKICAgICB9CiAKICAgICBjb25zdCBGb250KiBmb250KEV4dGVybmFsUmVzb3VyY2VEb3dubG9h
ZFBvbGljeSBwb2xpY3kpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBpZiAoIW1fcmVzdWx0
IHx8IChwb2xpY3kgPT0gRXh0ZXJuYWxSZXNvdXJjZURvd25sb2FkUG9saWN5OjpBbGxvdwogICAg
ICAgICAgICAgJiYgKG1fZm9udEZhY2UtPnN0YXR1cygpID09IENTU0ZvbnRGYWNlOjpTdGF0dXM6
OlBlbmRpbmcgfHwgbV9mb250RmFjZS0+c3RhdHVzKCkgPT0gQ1NTRm9udEZhY2U6OlN0YXR1czo6
TG9hZGluZyB8fCBtX2ZvbnRGYWNlLT5zdGF0dXMoKSA9PSBDU1NGb250RmFjZTo6U3RhdHVzOjpU
aW1lZE91dCkpKSB7Ci0gICAgICAgICAgICBjb25zdCBhdXRvIHJlc3VsdCA9IG1fZm9udEZhY2Ut
PmZvbnQobV9mb250RGVzY3JpcHRpb24sIG1fc3ludGhldGljQm9sZCwgbV9zeW50aGV0aWNJdGFs
aWMsIHBvbGljeSk7CisgICAgICAgICAgICBjb25zdCBhdXRvIHJlc3VsdCA9IG1fZm9udEZhY2Ut
PmZvbnQobV9mb250RGVzY3JpcHRpb24sIG1fc3ludGhldGljQm9sZCwgbV9zeW50aGV0aWNJdGFs
aWMsIHBvbGljeSwgbV9mb250UGFsZXR0ZVZhbHVlcyk7CiAgICAgICAgICAgICBpZiAoIW1fcmVz
dWx0KQogICAgICAgICAgICAgICAgIG1fcmVzdWx0ID0gcmVzdWx0OwogICAgICAgICB9CkBAIC03
NSw5ICs3NywxMCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIENTU0ZvbnRBY2Nl
c3NvcihDU1NGb250RmFjZSYgZm9udEZhY2UsIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERl
c2NyaXB0aW9uLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljKQorICAg
IENTU0ZvbnRBY2Nlc3NvcihDU1NGb250RmFjZSYgZm9udEZhY2UsIGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYgZm9udFBhbGV0
dGVWYWx1ZXMsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMpCiAgICAg
ICAgIDogbV9mb250RmFjZShmb250RmFjZSkKICAgICAgICAgLCBtX2ZvbnREZXNjcmlwdGlvbihm
b250RGVzY3JpcHRpb24pCisgICAgICAgICwgbV9mb250UGFsZXR0ZVZhbHVlcyhmb250UGFsZXR0
ZVZhbHVlcykKICAgICAgICAgLCBtX3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAgICAg
ICAgLCBtX3N5bnRoZXRpY0l0YWxpYyhzeW50aGV0aWNJdGFsaWMpCiAgICAgewpAQCAtOTEsNiAr
OTQsNyBAQCBwcml2YXRlOgogICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxSZWZQdHI8Rm9udD4+
IG1fcmVzdWx0OyAvLyBDYWNoZXMgbnVsbHB0ciB0b28KICAgICBtdXRhYmxlIFJlZjxDU1NGb250
RmFjZT4gbV9mb250RmFjZTsKICAgICBGb250RGVzY3JpcHRpb24gbV9mb250RGVzY3JpcHRpb247
CisgICAgRm9udFBhbGV0dGVWYWx1ZXMgbV9mb250UGFsZXR0ZVZhbHVlczsKICAgICBib29sIG1f
c3ludGhldGljQm9sZDsKICAgICBib29sIG1fc3ludGhldGljSXRhbGljOwogfTsKQEAgLTEwNiw3
ICsxMTAsNyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRGb250KEZvbnRSYW5nZXMmIHJhbmdlcywgUmVm
PEZvbnRBY2Nlc3Nvcj4mJiBmb250QWNjZXNzb3IsIGNvbgogICAgICAgICByYW5nZXMuYXBwZW5k
UmFuZ2UoeyByYW5nZS5mcm9tLCByYW5nZS50bywgZm9udEFjY2Vzc29yLmNvcHlSZWYoKSB9KTsK
IH0KIAotRm9udFJhbmdlcyBDU1NTZWdtZW50ZWRGb250RmFjZTo6Zm9udFJhbmdlcyhjb25zdCBG
b250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikKK0ZvbnRSYW5nZXMgQ1NTU2VnbWVudGVk
Rm9udEZhY2U6OmZvbnRSYW5nZXMoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24sIGNvbnN0IEZvbnRQYWxldHRlVmFsdWVzJiBmb250UGFsZXR0ZVZhbHVlcykKIHsKICAgICBh
dXRvIGFkZFJlc3VsdCA9IG1fY2FjaGUuYWRkKEZvbnREZXNjcmlwdGlvbktleShmb250RGVzY3Jp
cHRpb24pLCBGb250UmFuZ2VzKCkpOwogICAgIGF1dG8mIHJhbmdlcyA9IGFkZFJlc3VsdC5pdGVy
YXRvci0+dmFsdWU7CkBAIC0xMjYsNyArMTMwLDcgQEAgRm9udFJhbmdlcyBDU1NTZWdtZW50ZWRG
b250RmFjZTo6Zm9udFJhbmdlcyhjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGkK
ICAgICAgICAgYm9vbCBzeW50aGV0aWNJdGFsaWMgPSAoZm9udERlc2NyaXB0aW9uLmZvbnRTeW50
aGVzaXMoKSAmIEZvbnRTeW50aGVzaXNTdHlsZSkgJiYgIWlzSXRhbGljKHNlbGVjdGlvbkNhcGFi
aWxpdGllcy5zbG9wZS5tYXhpbXVtKSAmJiBpc0l0YWxpYyhkZXNpcmVkUmVxdWVzdC5zbG9wZSk7
CiAKICAgICAgICAgLy8gTWV0cmljcyB1c2VkIGZvciBsYXlvdXQgY29tZSBmcm9tIEZvbnRSYW5n
ZXM6OmZvbnRGb3JGaXJzdFJhbmdlKCksIHdoaWNoIGFzc3VtZXMgdGhhdCB0aGUgZmlyc3QgZm9u
dCBpcyBub24tbnVsbC4KLSAgICAgICAgYXV0byBmb250QWNjZXNzb3IgPSBDU1NGb250QWNjZXNz
b3I6OmNyZWF0ZShmYWNlLCBmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRp
Y0l0YWxpYyk7CisgICAgICAgIGF1dG8gZm9udEFjY2Vzc29yID0gQ1NTRm9udEFjY2Vzc29yOjpj
cmVhdGUoZmFjZSwgZm9udERlc2NyaXB0aW9uLCBmb250UGFsZXR0ZVZhbHVlcywgc3ludGhldGlj
Qm9sZCwgc3ludGhldGljSXRhbGljKTsKICAgICAgICAgaWYgKHJhbmdlcy5pc051bGwoKSAmJiAh
Zm9udEFjY2Vzc29yLT5mb250KEV4dGVybmFsUmVzb3VyY2VEb3dubG9hZFBvbGljeTo6Rm9yYmlk
KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlZ21lbnRlZEZvbnRGYWNlLmgKaW5kZXggZjY2ZTczMzkzMjBhYWJhYmMzMDQ4ZWFmMDExNjgw
ZDQyMGY5OTM2Yy4uOTU0ZTNkMmM5ZDFmYzM4M2I5MTc0MDY4OTRkZmFkZWQ1OGY5ZTVmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyArMzQsOSBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NGb250U2VsZWN0b3I7CitzdHJ1Y3QgRm9u
dENyZWF0aW9uQ29udGV4dDsKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKK2NsYXNzIEZvbnRQYWxl
dHRlVmFsdWVzOwogY2xhc3MgRm9udFJhbmdlczsKIAogY2xhc3MgQ1NTU2VnbWVudGVkRm9udEZh
Y2UgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NTZWdtZW50ZWRGb250RmFjZT4sIHB1Ymxp
YyBDU1NGb250RmFjZTo6Q2xpZW50IHsKQEAgLTQ4LDcgKzUwLDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBhcHBlbmRGb250RmFjZShSZWY8Q1NTRm9udEZhY2U+JiYpOwogCi0gICAgRm9udFJhbmdl
cyBmb250UmFuZ2VzKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpOworICAgIEZvbnRSYW5nZXMgZm9u
dFJhbmdlcyhjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYp
OwogCiAgICAgVmVjdG9yPFJlZjxDU1NGb250RmFjZT4sIDE+JiBjb25zdGl0dWVudEZhY2VzKCkg
eyByZXR1cm4gbV9mb250RmFjZXM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENyZWF0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENyZWF0aW9uQ29udGV4dC5oCmluZGV4IGYzZTYxNzRiMWZlNDNj
NTUwNDAxMWRhYjRhYjBiOGU2YzhlNzM1MjQuLmU5MTBiNGQzMGE2ZjIxMzBmYzg1OWJjOTVmNTUy
ODkwMThhNmMwMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDcmVhdGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q3JlYXRpb25Db250ZXh0LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJGb250UGFsZXR0ZVZhbHVlcy5oIgogI2luY2x1ZGUgIkZvbnRTZWxl
Y3Rpb25BbGdvcml0aG0uaCIKICNpbmNsdWRlICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKIApAQCAt
MzQsNyArMzUsOCBAQCBzdHJ1Y3QgRm9udENyZWF0aW9uQ29udGV4dCB7CiAgICAgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIG90aGVyKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIGZvbnRGYWNlRmVhdHVyZXMgPT0gb3RoZXIuZm9udEZhY2VGZWF0dXJlcwot
ICAgICAgICAgICAgJiYgZm9udEZhY2VDYXBhYmlsaXRpZXMgPT0gb3RoZXIuZm9udEZhY2VDYXBh
YmlsaXRpZXM7CisgICAgICAgICAgICAmJiBmb250RmFjZUNhcGFiaWxpdGllcyA9PSBvdGhlci5m
b250RmFjZUNhcGFiaWxpdGllcworICAgICAgICAgICAgJiYgZm9udFBhbGV0dGVWYWx1ZXMgPT0g
b3RoZXIuZm9udFBhbGV0dGVWYWx1ZXM7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIG90aGVyKSBjb25zdApAQCAtNDQsMTMgKzQ2LDE1IEBA
IHN0cnVjdCBGb250Q3JlYXRpb25Db250ZXh0IHsKIAogICAgIEZvbnRGZWF0dXJlU2V0dGluZ3Mg
Zm9udEZhY2VGZWF0dXJlczsKICAgICBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVz
IGZvbnRGYWNlQ2FwYWJpbGl0aWVzOwotICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgZm9u
dC1wYWxldHRlLXZhbHVlcyBhbmQgZm9udC1mZWF0dXJlLXZhbHVlcy4KKyAgICBGb250UGFsZXR0
ZVZhbHVlcyBmb250UGFsZXR0ZVZhbHVlczsKKyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9y
IGZvbnQtZmVhdHVyZS12YWx1ZXMuCiB9OwogCiBpbmxpbmUgdm9pZCBhZGQoSGFzaGVyJiBoYXNo
ZXIsIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRDcmVhdGlvbkNvbnRleHQpCiB7CiAg
ICAgYWRkKGhhc2hlciwgZm9udENyZWF0aW9uQ29udGV4dC5mb250RmFjZUZlYXR1cmVzKTsKICAg
ICBhZGQoaGFzaGVyLCBmb250Q3JlYXRpb25Db250ZXh0LmZvbnRGYWNlQ2FwYWJpbGl0aWVzLnRp
ZWQoKSk7CisgICAgYWRkKGhhc2hlciwgZm9udENyZWF0aW9uQ29udGV4dC5mb250UGFsZXR0ZVZh
bHVlcyk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRQYWxldHRlVmFsdWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250UGFsZXR0ZVZhbHVlcy5oCmluZGV4IDZkZTg0MTcxNDQxMzNiYWM1YjkwOTQ4YmFlZmQz
MjMxNzJhYWZlZGQuLjExYWZhZDllMTQzNzAyNTVlMjM1N2I2YzU2ZWY0ZWJiNTdhNzVkOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQYWxldHRlVmFs
dWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBhbGV0dGVW
YWx1ZXMuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb2xv
ci5oIgorI2luY2x1ZGUgIkdyYWRpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgpA
QCAtNTYsOSArNTcsMjUgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9vdmVycmlkZUNvbG9y
OwogICAgIH0KIAorICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYg
b3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9iYXNlUGFsZXR0ZSA9PSBvdGhl
ci5tX2Jhc2VQYWxldHRlICYmIG1fb3ZlcnJpZGVDb2xvciA9PSBvdGhlci5tX292ZXJyaWRlQ29s
b3I7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZvbnRQYWxldHRlVmFsdWVz
JiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsK
KyAgICB9CisKIHByaXZhdGU6CiAgICAgUGFsZXR0ZUluZGV4IG1fYmFzZVBhbGV0dGU7CiAgICAg
VmVjdG9yPE92ZXJyaWRkZW5Db2xvcj4gbV9vdmVycmlkZUNvbG9yOwogfTsKIAoraW5saW5lIHZv
aWQgYWRkKEhhc2hlciYgaGFzaGVyLCBjb25zdCBGb250UGFsZXR0ZVZhbHVlcyYgZm9udFBhbGV0
dGVWYWx1ZXMpCit7CisgICAgYWRkKGhhc2hlciwgZm9udFBhbGV0dGVWYWx1ZXMuYmFzZVBhbGV0
dGUoKSk7CisgICAgYWRkKGhhc2hlciwgZm9udFBhbGV0dGVWYWx1ZXMub3ZlcnJpZGVDb2xvcigp
KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhZGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQu
Y3BwCmluZGV4IDhlYjMyNmM0OTY0ZWNhOWUwZjNmYmM3ZTBjZjgyYjhkYTM1ZjM4OWIuLjNiMzYw
ZTkwZWVhMWQyMjcwZjQ4OTI3Y2E4MTM5ZjE4NDk5YTNkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CkBAIC0xMjUsMTIgKzEyNSw2IEBAIHZvaWQgR3JhZGllbnQ6OnNldFNwcmVh
ZE1ldGhvZChHcmFkaWVudFNwcmVhZE1ldGhvZCBzcHJlYWRNZXRob2QpCiAKIC8vIEZJWE1FOiBJ
bnN0ZWFkIG9mIHRoZXNlIGFkZChIYXNoZXIpIGZ1bmN0aW9ucywgY29uc2lkZXIgdXNpbmcgZW5j
b2RlIGZ1bmN0aW9ucyB0byBjb21wdXRlIHRoZSBoYXNoLgogCi1zdGF0aWMgdm9pZCBhZGQoSGFz
aGVyJiBoYXNoZXIsIGNvbnN0IENvbG9yJiBjb2xvcikKLXsKLSAgICAvLyBGSVhNRTogV2UgZG9u
J3Qgd2FudCB0byBoYXNoIGEgaGFzaDsgZG8gYmV0dGVyLgotICAgIGFkZChoYXNoZXIsIGNvbG9y
Lmhhc2goKSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGFkZChIYXNoZXImIGhhc2hlciwgY29uc3QgRmxv
YXRQb2ludCYgcG9pbnQpCiB7CiAgICAgYWRkKGhhc2hlciwgcG9pbnQueCgpLCBwb2ludC55KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKaW5kZXggOThj
M2M4OGFmMGQ5OWFiMWJmYmU0MDNkYWFkZGYwZDkwMWI2MTQxMC4uNWE5MmNlMTA2YmNhNzhlYWQz
OTdjYmY0MjMyNzFmMWEwOWYxMjY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhZGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFkaWVudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
Ni0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA4
IFRvcmNoIE1vYmlsZSwgSW5jLgogICoKQEAgLTMwNCw0ICszMDQsMTAgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxSZWY8R3JhZGllbnQ+PiBHcmFkaWVudDo6ZGVj
b2RlKERlY29kZXIKICAgICByZXR1cm4gZ3JhZGllbnQ7CiB9CiAKK2lubGluZSB2b2lkIGFkZChI
YXNoZXImIGhhc2hlciwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIC8vIEZJWE1FOiBXZSBk
b24ndCB3YW50IHRvIGhhc2ggYSBoYXNoOyBkbyBiZXR0ZXIuCisgICAgYWRkKGhhc2hlciwgY29s
b3IuaGFzaCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRl
eHQuY3BwCmluZGV4IDRmZDlhNWRkM2I1ZTg0MzAyMzlkMDliMTM3YzYzMzdhMDNmYTAwZGUuLjFh
NmY3MzI5MDY3NTljOTI5ODQzZTU3ZTU4OTVlMWJjYjUxYWI0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3Jl
VGV4dC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJGb250Q2FzY2FkZURlc2NyaXB0
aW9uLmgiCiAjaW5jbHVkZSAiRm9udENyZWF0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIkZvbnRG
YW1pbHlTcGVjaWZpY2F0aW9uQ29yZVRleHQuaCIKKyNpbmNsdWRlICJGb250UGFsZXR0ZVZhbHVl
cy5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lQ29jb2EuaCIKICNpbmNsdWRlICJTeXN0ZW1Gb250
RGF0YWJhc2VDb3JlVGV4dC5oIgogI2luY2x1ZGUgIlZlcnNpb25DaGVja3MuaCIKQEAgLTQ0Miw2
ICs0NDMsNTMgQEAgc3RydWN0IEZvbnRUeXBlIHsKICAgICBib29sIGFhdFNoYXBpbmcgeyBmYWxz
ZSB9OwogfTsKIAorc3RhdGljIHZvaWQgYWRkQXR0cmlidXRlc0ZvckZvbnRQYWxldHRlcyhDRk11
dGFibGVEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMsIGNvbnN0IEZvbnRQYWxldHRlJiBmb250UGFs
ZXR0ZSwgY29uc3QgRm9udFBhbGV0dGVWYWx1ZXMmIGZvbnRQYWxldHRlVmFsdWVzKQoreworICAg
IHN3aXRjaCAoZm9udFBhbGV0dGUudHlwZSkgeworICAgIGNhc2UgRm9udFBhbGV0dGU6OlR5cGU6
Ok5vbmU6CisgICAgICAgIC8vIFRoaXMgaXMgdW5pbXBsZW1lbnRhYmxlIGluIENvcmUgVGV4dC4K
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb250UGFsZXR0ZTo6VHlwZTo6Tm9ybWFsOgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEZvbnRQYWxldHRlOjpUeXBlOjpMaWdodDogeworICAgICAg
ICBhdXRvIGxpZ2h0ID0ga0NURm9udFBhbGV0dGVMaWdodDsKKyAgICAgICAgYXV0byBudW1iZXIg
PSBhZG9wdENGKENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlclNJ
bnQ2NFR5cGUsICZsaWdodCkpOworICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1
dGVzLCBrQ1RGb250UGFsZXR0ZUF0dHJpYnV0ZSwgbnVtYmVyLmdldCgpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgRm9udFBhbGV0dGU6OlR5cGU6OkRhcms6IHsKKyAgICAgICAg
YXV0byBkYXJrID0ga0NURm9udFBhbGV0dGVEYXJrOworICAgICAgICBhdXRvIG51bWJlciA9IGFk
b3B0Q0YoQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVyQ0ZJbmRl
eFR5cGUsICZkYXJrKSk7CisgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMs
IGtDVEZvbnRQYWxldHRlQXR0cmlidXRlLCBudW1iZXIuZ2V0KCkpOworICAgICAgICBicmVhazsK
KyAgICB9CisgICAgY2FzZSBGb250UGFsZXR0ZTo6VHlwZTo6Q3VzdG9tOiB7CisgICAgICAgIFdU
Rjo6c3dpdGNoT24oZm9udFBhbGV0dGVWYWx1ZXMuYmFzZVBhbGV0dGUoKSwgWyZdKGludDY0X3Qg
aW5kZXgpIHsKKyAgICAgICAgICAgIGF1dG8gbnVtYmVyID0gYWRvcHRDRihDRk51bWJlckNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJDRkluZGV4VHlwZSwgJmluZGV4KSk7Cisg
ICAgICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLCBrQ1RGb250UGFsZXR0
ZUF0dHJpYnV0ZSwgbnVtYmVyLmdldCgpKTsKKyAgICAgICAgfSwgW10oY29uc3QgQXRvbVN0cmlu
ZyYpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgdW5pbXBsZW1lbnRhYmxlIGluIENvcmUgVGV4
dC4KKyAgICAgICAgfSk7CisgICAgICAgIGlmICghZm9udFBhbGV0dGVWYWx1ZXMub3ZlcnJpZGVD
b2xvcigpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgYXV0byBvdmVycmlkZURpY3Rpb25hcnkg
PSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
MCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1
ZUNhbGxCYWNrcykpOworICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwYWlyIDogZm9udFBh
bGV0dGVWYWx1ZXMub3ZlcnJpZGVDb2xvcigpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgYXV0
byYgcGFsZXR0ZUNvbG9ySW5kZXggPSBwYWlyLmZpcnN0OworICAgICAgICAgICAgICAgIGNvbnN0
IGF1dG8mIGNvbG9yID0gcGFpci5zZWNvbmQ7CisgICAgICAgICAgICAgICAgV1RGOjpzd2l0Y2hP
bihwYWxldHRlQ29sb3JJbmRleCwgW10oY29uc3QgQXRvbVN0cmluZyYpIHsKKyAgICAgICAgICAg
ICAgICAgICAgLy8gVGhpcyBpcyB1bmltcGxlbWVudGFibGUgaW4gQ29yZSBUZXh0LgorICAgICAg
ICAgICAgICAgIH0sIFsmXShpbnQ2NF90IGluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIGF1
dG8gbnVtYmVyID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBr
Q0ZOdW1iZXJTSW50NjRUeXBlLCAmaW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBj
b2xvck9iamVjdCA9IGNhY2hlZENHQ29sb3IoY29sb3IpOworICAgICAgICAgICAgICAgICAgICBD
RkRpY3Rpb25hcnlBZGRWYWx1ZShvdmVycmlkZURpY3Rpb25hcnkuZ2V0KCksIG51bWJlci5nZXQo
KSwgY29sb3JPYmplY3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgaWYgKENGRGljdGlvbmFyeUdldENvdW50KG92ZXJyaWRlRGljdGlvbmFyeS5nZXQo
KSkpCisgICAgICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcywga0NU
Rm9udFBhbGV0dGVDb2xvcnNBdHRyaWJ1dGUsIG92ZXJyaWRlRGljdGlvbmFyeS5nZXQoKSk7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgfQorfQorCiBSZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJl
UGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQsIGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRp
b25Db250ZXh0LCBib29sIGFwcGx5V2VpZ2h0V2lkdGhTbG9wZVZhcmlhdGlvbnMpCiB7CiAgICAg
aWYgKCFvcmlnaW5hbEZvbnQpCkBAIC00NjQsNiArNTEyLDcgQEAgUmV0YWluUHRyPENURm9udFJl
Zj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250LCBjb25zdCBGb250
RGVzY3IKICAgICBjb25zdCBhdXRvJiB2YXJpYW50U2V0dGluZ3MgPSBmb250RGVzY3JpcHRpb24u
dmFyaWFudFNldHRpbmdzKCk7CiAgICAgYXV0byB0ZXh0UmVuZGVyaW5nTW9kZSA9IGZvbnREZXNj
cmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpOwogICAgIGF1dG8gc2hvdWxkRGlzYWJsZUxpZ2F0
dXJlc0ZvclNwYWNpbmcgPSBmb250RGVzY3JpcHRpb24uc2hvdWxkRGlzYWJsZUxpZ2F0dXJlc0Zv
clNwYWNpbmcoKTsKKyAgICBib29sIGRvbnROZWVkVG9BcHBseUZvbnRQYWxldHRlcyA9IGZvbnRE
ZXNjcmlwdGlvbi5mb250UGFsZXR0ZSgpLnR5cGUgPT0gRm9udFBhbGV0dGU6OlR5cGU6Ok5vcm1h
bDsKIAogICAgIC8vIFdlIG1pZ2h0IHdhbnQgdG8gY2hlY2sgZm9udFR5cGUudHJhY2tpbmdUeXBl
ID09IEZvbnRUeXBlOjpUcmFja2luZ1R5cGU6Ok1hbnVhbCBoZXJlLCBidXQgaW4gb3JkZXIgdG8g
bWFpbnRhaW4gY29tcGF0aWJpbGl0eSB3aXRoIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0sIHdlIGRv
bid0LgogICAgIGJvb2wgbm9Gb250RmVhdHVyZVNldHRpbmdzID0gZmVhdHVyZXMuaXNFbXB0eSgp
OwpAQCAtNDcyLDcgKzUyMSw3IEBAIFJldGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9y
bUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9udCwgY29uc3QgRm9udERlc2NyCiAgICAgYm9vbCB2
YXJpYW50U2V0dGluZ3NJc05vcm1hbCA9IHZhcmlhbnRTZXR0aW5ncy5pc0FsbE5vcm1hbCgpOwog
ICAgIGJvb2wgZG9udE5lZWRUb0FwcGx5T3B0aWNhbFNpemluZyA9IGZvbnRPcHRpY2FsU2l6aW5n
ID09IEZvbnRPcHRpY2FsU2l6aW5nOjpFbmFibGVkICYmICFmb3JjZU9wdGljYWxTaXppbmdPbjsK
ICAgICBib29sIGZvbnRGYWNlRG9lc250U3BlY2lmeUZlYXR1cmVzID0gZm9udENyZWF0aW9uQ29u
dGV4dC5mb250RmFjZUZlYXR1cmVzLmlzRW1wdHkoKTsKLSAgICBpZiAobm9Gb250RmVhdHVyZVNl
dHRpbmdzICYmIG5vRm9udFZhcmlhdGlvblNldHRpbmdzICYmIHRleHRSZW5kZXJpbmdNb2RlSXNB
dXRvICYmIHZhcmlhbnRTZXR0aW5nc0lzTm9ybWFsICYmIGRvbnROZWVkVG9BcHBseU9wdGljYWxT
aXppbmcgJiYgZm9udEZhY2VEb2VzbnRTcGVjaWZ5RmVhdHVyZXMgJiYgIXNob3VsZERpc2FibGVM
aWdhdHVyZXNGb3JTcGFjaW5nKSB7CisgICAgaWYgKG5vRm9udEZlYXR1cmVTZXR0aW5ncyAmJiBu
b0ZvbnRWYXJpYXRpb25TZXR0aW5ncyAmJiB0ZXh0UmVuZGVyaW5nTW9kZUlzQXV0byAmJiB2YXJp
YW50U2V0dGluZ3NJc05vcm1hbCAmJiBkb250TmVlZFRvQXBwbHlPcHRpY2FsU2l6aW5nICYmIGZv
bnRGYWNlRG9lc250U3BlY2lmeUZlYXR1cmVzICYmICFzaG91bGREaXNhYmxlTGlnYXR1cmVzRm9y
U3BhY2luZyAmJiBkb250TmVlZFRvQXBwbHlGb250UGFsZXR0ZXMpIHsKICNpZiBIQVZFKENURk9O
VENSRUFURUZPUkNIQVJBQ1RFUlNXSVRITEFOR1VBR0VBTkRPUFRJT04pCiAgICAgICAgIHJldHVy
biBvcmlnaW5hbEZvbnQ7CiAjZWxzZQpAQCAtNjIyLDYgKzY3MSw4IEBAIFJldGFpblB0cjxDVEZv
bnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9udCwgY29uc3Qg
Rm9udERlc2NyCiAjZW5kaWYKICAgICB9CiAKKyAgICBhZGRBdHRyaWJ1dGVzRm9yRm9udFBhbGV0
dGVzKGF0dHJpYnV0ZXMuZ2V0KCksIGZvbnREZXNjcmlwdGlvbi5mb250UGFsZXR0ZSgpLCBmb250
Q3JlYXRpb25Db250ZXh0LmZvbnRQYWxldHRlVmFsdWVzKTsKKwogICAgIGFkZEF0dHJpYnV0ZXNG
b3JJbnN0YWxsZWRGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBmb250RGVzY3JpcHRpb24uc2hvdWxk
QWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CiAKICAgICBhdXRvIGRlc2NyaXB0b3IgPSBhZG9w
dENGKENURm9udERlc2NyaXB0b3JDcmVhdGVXaXRoQXR0cmlidXRlcyhhdHRyaWJ1dGVzLmdldCgp
KSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBkNzRmNzI1OWJiZTMzODdkNWU1
ZjUyZjMyMzA5OTY5M2U4ZjlhYTM2Li45ODA3N2RiZWQxODQ1NzM1NTI3Y2ExZmQyNGFlOTU4Y2Zl
MjU3NTQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAyMS0wOS0yMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtDb2NvYV0gSG9vayB1cCBwYWxldHRlcyB0byBDb3JlVGV4dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNDQ5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBiZWluZyB1cHN0cmVh
bWVkIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGwvMzA5
MTAuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXBh
bGV0dGUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtZm9udHMvZm9udC1wYWxldHRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL3Jlc291cmNlcy9BaGVtLUNPTE9SLXBhbGV0dGVz
LnR0ZjogQWRkZWQuCisKIDIwMjEtMDktMjEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxk
QGFwcGxlLmNvbT4KIAogICAgICAgICBQYXJzaW5nIHN1cHBvcnQgZm9yIGZvbnQtcGFsZXR0ZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWZvbnRzL2ZvbnQtcGFsZXR0ZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtcGFsZXR0ZS1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmN2Q0ZDhhZGU5ZTdlM2VkZGY2ZGUzMzRhMzczYTE0
ODA4MjY4YTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvZm9udC1wYWxldHRlLWV4cGVjdGVkLmh0bWwK
QEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVh
ZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PXV0Zi04Ii8+Cis8dGl0bGU+Q1NTIFRlc3Q6IGZvbnQtcGFsZXR0ZSBkcmF3aW5nPC90
aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTXlsZXMgQy4gTWF4ZmllbGQiIGhyZWY9
Im1tYXhmaWVsZEBhcHBsZS5jb20iPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iZm9udC1wYWxl
dHRlLXJlZi5odG1sIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzcy1mb250cy00LyNmb250LXBhbGV0dGUtcHJvcCI+Cis8bWV0YSBuYW1lPSJhc3Nl
cnQiIGNvbnRlbnQ9IkZvbnQgcGFsZXR0ZXMgYXJlIGFwcGxpZWQgYXMgbmVjZXNzYXJ5Ij4KKzwv
aGVhZD4KKzxib2R5PgorPHA+VGVzdCBwYXNzZXMgaWYgeW91IHNlZSBwYXJ0aWN1bGFyIHJlY3Rh
bmdsZXMgb2YgcGFydGljdWxhciBjb2xvcnMuPC9wPgorPGRpdiBzdHlsZT0icG9zaXRpb246IHJl
bGF0aXZlOyI+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDBweDsgdG9w
OiAwcHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3VuZDogI0ZGMDBGRjsi
PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMjBweDsgdG9wOiAw
cHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiAjMDBGRkZGOyI+PC9k
aXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTAwcHg7
IHRvcDogMHB4OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91bmQ6ICMwMDAw
RkY7Ij4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDIwcHg7IHRv
cDogMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3VuZDogIzAwRkYwMDsi
PjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDIw
MHB4OyB0b3A6IDBweDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiAj
MDAwMEZGOyI+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAyMHB4
OyB0b3A6IDBweDsgd2lkdGg6IDIwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91bmQ6ICNGRkZG
MDA7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0
OiAzMDBweDsgdG9wOiAwcHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3Vu
ZDogIzAwRkYwMDsiPgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDog
MjBweDsgdG9wOiAwcHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiAj
MDAwMDAwOyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsg
bGVmdDogNDAwcHg7IHRvcDogMHB4OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tn
cm91bmQ6ICMwMEZGMDA7Ij4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxl
ZnQ6IDIwcHg7IHRvcDogMHB4OyB3aWR0aDogMjBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3Vu
ZDogIzAwMDAwMDsiPjwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1mb250cy9mb250LXBhbGV0dGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXBhbGV0dGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ZDBkZWNmMTQ5MTBkZWRhZTY4ODUyOGJhMjEwNDc0Y2E2NjRhNTJkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWZvbnRzL2ZvbnQtcGFsZXR0ZS5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50
LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIvPgorPHRpdGxlPkNTUyBU
ZXN0OiBmb250LXBhbGV0dGUgZHJhd2luZzwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik15bGVzIEMuIE1heGZpZWxkIiBocmVmPSJtbWF4ZmllbGRAYXBwbGUuY29tIj4KKzxsaW5r
IHJlbD0ibWF0Y2giIGhyZWY9ImZvbnQtcGFsZXR0ZS1yZWYuaHRtbCI+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZm9udHMtNC8jZm9udC1wYWxl
dHRlLXByb3AiPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJGb250IHBhbGV0dGVzIGFy
ZSBhcHBsaWVkIGFzIG5lY2Vzc2FyeSI+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250
LWZhbWlseTogIldlYkZvbnQiOworICAgIHNyYzogdXJsKCJyZXNvdXJjZXMvQWhlbS1DT0xPUi1w
YWxldHRlcy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Cit9CisKK0Bmb250LXBhbGV0dGUtdmFs
dWVzIFBhbGV0dGUxIHsKKyAgICBmb250LWZhbWlseTogIldlYkZvbnQiOworICAgIGJhc2UtcGFs
ZXR0ZTogMDsKK30KKworQGZvbnQtcGFsZXR0ZS12YWx1ZXMgUGFsZXR0ZTIgeworICAgIGZvbnQt
ZmFtaWx5OiAiV2ViRm9udCI7CisgICAgYmFzZS1wYWxldHRlOiAxOworfQorCitAZm9udC1wYWxl
dHRlLXZhbHVlcyBQYWxldHRlMyB7CisgICAgZm9udC1mYW1pbHk6ICJXZWJGb250IjsKKyAgICBi
YXNlLXBhbGV0dGU6IDE7CisgICAgb3ZlcnJpZGUtY29sb3I6IDEgI0ZGRkYwMDsKK30KKworQGZv
bnQtcGFsZXR0ZS12YWx1ZXMgUGFsZXR0ZTQgeworICAgIGZvbnQtZmFtaWx5OiAiV2ViRm9udCI7
CisgICAgYmFzZS1wYWxldHRlOiAxOworICAgIG92ZXJyaWRlLWNvbG9yOiAwICMwMEZGMDAsIDEg
IzAwMDAwMDsKK30KKworQGZvbnQtcGFsZXR0ZS12YWx1ZXMgUGFsZXR0ZTUgeworICAgIGZvbnQt
ZmFtaWx5OiAiV2ViRm9udCI7CisgICAgYmFzZS1wYWxldHRlOiAxOworICAgIG92ZXJyaWRlLWNv
bG9yOiAxICMwMDAwMDAsIDAgIzAwRkYwMDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgcGFydGljdWxhciByZWN0YW5nbGVzIG9mIHBhcnRp
Y3VsYXIgY29sb3JzLjwvcD4KKzxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9u
dDogMTAwcHggJ1dlYkZvbnQnOyBmb250LXBhbGV0dGU6IFBhbGV0dGUxOyI+QTwvZGl2PjxkaXYg
c3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udDogMTAwcHggJ1dlYkZvbnQnOyBmb250
LXBhbGV0dGU6IFBhbGV0dGUyOyI+QTwvZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1i
bG9jazsgZm9udDogMTAwcHggJ1dlYkZvbnQnOyBmb250LXBhbGV0dGU6IFBhbGV0dGUzOyI+QTwv
ZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udDogMTAwcHggJ1dlYkZv
bnQnOyBmb250LXBhbGV0dGU6IFBhbGV0dGU0OyI+QTwvZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6
IGlubGluZS1ibG9jazsgZm9udDogMTAwcHggJ1dlYkZvbnQnOyBmb250LXBhbGV0dGU6IFBhbGV0
dGU1OyI+QTwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL3Jlc291cmNlcy9B
aGVtLUNPTE9SLXBhbGV0dGVzLnR0ZiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9yZXNvdXJjZXMvQWhlbS1DT0xPUi1wYWxldHRlcy50
dGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjE0ZmQ5ZDQzNjA3NDA4MDQzZTljOWZkYTNmYmRkYjBjYmU2NTViOApH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjM4OTYKemNtZUhQMzRCfnR4JlE4K2VKTUBiUH1eRntP
PXdGQ0c/XnV0QiZgYlJxLXBER09YKV83QjF8VGUlKFJvNFZQP3tWCnpPO0h3RVIyRDBXMHhIVFky
dnt4UEwjKyEpcCYtYTZQK0ZRc3RYZEVlU3JtfTt6VzthNXlfdVVkRFNnVSZ6YVFeNgp6R3J6Zktg
Xzh3V0AwfFAxYFIrWlc1WVpVQWZOWm9wZGgoSkwkfjs8KG4mPEpHOGVRSkpMfDFIOyRpSWMzY0pq
KkYKelBAJl9rJmshay1QKEN4PjcwV2VVeVpSTkJkeDskVyZSOEt3QTBpS3ReQ0dsWWJmKFlsYTMx
UyNNdEt2X2xySlJ7Cnp2RygxfEFIQUVYWUM3NUBObVJKSl82QyRjaVNxUGhTRnZ9cFF5cWl5MXd7
Nj4+MTtmOSZyTXMkNlYyRjNxfUZ1Qgp6ZFVNS1QjeWBzcWNyNnBfTi1XKEtwTmpHPHFUdSYpKitN
Yj8/TjF5LXY8fm4jQEpURyk1JV5WLU5+cCZibCQ5ZXoKenleNHxAYnJvRSVsYTNFQU03Wks+dnB1
NitNR2lEPVEhZlhebGA+VmZRJUpFZkJKUnFjM3k4SzxraFZ3XmE1KiZgCnopI3hQQjQoSypiWnYt
RDI/YShYVWJwYkpJUHkqLXBGJHklfFNCV2UwU3hJKkxUaXxYazNORCZVR3dJWHhFJjRXbgp6aHJV
WlUofF4pdHhgbDN+QDZsfl5KS2FJd3IhRGpZYFhTdihjaFRNU0JsPDc4aGtpXnlwYFgkPWBXZ000
ZW5HI2EKemQrOSM8Nj5YO249dDBeKzU3RVEpWWtHdHBxc1FxOWRYaiFpUHQhQj5FYlhNe1hnNVpE
NUIxU3I+WmprKTMtbyoxCnpNfU1Geyh3fUhReS0wdGltKzNGYFM5K0VITXo3SzleYWowMmYyVilJ
RCZENGQ9dl5BMTFFZWNLV3U/LXFUJSRncQp6S0J6dlY/b3hORiYjUVpFbmB9NFJIcnNCc1pMfEdT
YjgwP3FqOD5zbFlMbTRvK0JCX05vMmRufnhtcnRBYj1BeWoKendjMSVkd3Q4SWtgMEJ+a1E+diNg
QTc4endgcG9KP149bVU4NHA2fGdqRiNEIWQ2dTJOPjxofl9vd0RKU3U5ZU1lCnpvP1d5MSlUMjlS
dHZAYlptKXIyXnlSVXhZUnJMVW1CNVFiLShBYGFrKVpOemkpWlA4VmJvWiNDeVFlST0ralU2WQp6
eShEel4kfCQ8fj1iLUxaU2FpMkAxbF81Y05BcDg+NlNQVXQtQmU4enhAJFY1PyVNeEh4K0IofHso
Sm9le2NaZ1gKenk8Wj5EVSEpSnxkcjtvMXw1MU5nZStpfU0kZi1ZfUtUaypNUHdUdCUkTWlxTGE+
d1k7PlUlS0R7SyM/YktLKno0CnpQVz1YYnlNOEAtZWdpZVRrP3opQyhLcVNPPihBKkE+UV5DdTdo
czsmdUs+TSRgZXl3eXtxeT56I2BTaVF6aHY8Rwp6bjlsaSZqcTVHSWMoSHo9ZXZ5N1pEMTJOMHRi
VSVwUnpHcHpGOVVCNXlnYmwxJl9BJHFWOSZ0RTJDQFNpMjlBNjgKenNlI0o9SH5MQGVlfEBqc2Vf
I0tfe1hnczkqOGtKfmQtfUtaWnw9V3dANGI4UD16RjI+ay1sZzhwNj1WKWNVait+CnplR204anl6
bDB8JWxrZ1I9YnlXJEtZcml8YDw9PzJfTzApMXk/eUoodCFIaHlWYXMpUUpvTFQjQDZFcFR3ZD8r
TAp6P1RlZHNVM0pzdiZkaT16QG1KO1ZWZ3wkVCVBYkVwMTIlR0ZKKiolRnYpNnspYEIpa15WNkMp
YUM4WTRVcyZPLV8KeiMjTm9LekF8djdeMlB6Yk8/JFdoZTAzKTRUeU0xUDdqT2lpRCU8e2RDIXVq
dHh1dlh3dkteRz9MVX16WHVaaVhSCnowKTYxX2pxb0F4Jm5RQFJxYDBIKzVkWSlLY2xyO2l3fVpo
dipobEx4YClGayF0P1orZmVZQ1FWUmAkYCNLSDNNKgp6TT1TNVRqTnNMamNiPnwtWns7MXhALUEk
N0MlVXtGfEFFX2VgUVk4cm04KSN+KXdSND1HfHQjN1FyRjdlcUVUQ1IKej0jNk9PJFAhSG1rMl98
Xmp2ZUFwRDBVLThZWjFGb3ErQ0UzN1BjPXhXOSYhWEIjJilCTjRmNklwMFNTOGB9Zj8yCnpyd1dZ
eURZMHxLd2ZHPURXanE1UTtMIV47KXtpbX5iJT1IRzRvVWV9KTxNfEB7eSozTiZ1OFRnSWhNKiY2
eUN2YQp6R2sjY19zMng5aVNXZmZ2S0Zob1ZfP1N8cUB2V2o3bm4jT2hITUxRZSZaRW9kVDBCJHEx
M1ZANEZyTk98aGk3XlkKekNfWko5R0Q4VXxDbmAmbmJ4TWEpUCVjb3VzQy1AN2pQRzVfeX49TnQt
TzdJRE87dUlMcyNEZTNZREE1eSVobDc+CnpePWdsTGskU2F5cWs1WnFrR2ZyYlFyKVkqdGlFaz8r
OXUjeHIjWkh7d3VRRDt3d050ckpKKXVwP0pLc01ZK0xYbwp6Jl9sTG9ZYD9kP1k4JFk3Pj1XKEIq
YVA7RCtDT2VUKSF1R0QlbD5LbTc1MTskWj88bz58SEElPXtXPCN8P1hOcT8KekZ+JXspYWpjYHgo
ZDx+fV89Rj9yPXlyVjBhaSF5VyRFfVZaSWV6N00rX0FeO2xIKHN2eUt8ZyNuKTcmUHFqUTBDCnpo
NFR6JitJaEN+NjZjcWwtKlZwSntFNzJIPVdtX0FiSDN2SXJfMWQrKHBCeE1iJCFJTyp0TnpMY2ph
OD95RG9RcQp6NzJvZj1lKDN0Uz4oe1FHdTBPYjViTG5vc2QkTjBgSk0yRW16MGBmMHlWRzVDZjdi
bWFfY3o/UHhiSnF+PVlHdW4KenkhJUQ+LSNzPUBoMzY+R2FoP1dHaXt9KjJyI3VAeHlgR0NiKkxj
M154IXY8KSZqWCZQSnBHPShjOzR+NHlwYFQ2CnpaO2Z9SmNhZTlzeDZQYU5wNjkqSGQjKDM3LVhD
fj49NiVAdnRhcVJIWns3bndwS3A/SGhBLXFoKFlNNjYmZSEyOQp6XyU4NSQoZjQpVlg1VUBEZHdz
dzA/ZV57V3ozRXJ8V0JwVjh2O0MxI3pmdTJrfExPa3F7dlE4RHs7VH5yYGZ1fiEKejxLT09vKCFi
YUx2ajZRZCZNXzBsWGsrRyNuTEIxN3RPYSlfV3VrWnJnVXhjLWVUdTdTeTdEOEQ7LWI4MjxeYnMp
CnpFVTkjYWYreUktJDQxcXYpNXpQJnQ8RXk/NHd8Rn1qSnktfGk7VFJ0VnkoS3wkb3B2ZV8qO3pw
NXd2M2JCWktfQgp6SERRe09TSUF5RChhNVhocys/bHZaOFdhMyVFO1JSNkVnQStAPmZRVHljNn5G
amw5PT1MUz9Jd190RSZOY19WKVcKeiY3T0xaaypeXjgpSHtzKUlDNCQ+cF4rYnRgZ2BDPkQwViFQ
c0p1RkxufntmM3JybURqcF82SE04Rn1icitJPmJJCnpJKz9jNSRVYFU3VU4tWDMkPGNOcjUxa3pD
SH1jUilaTSVfJlBISGJUQCloSystRFR2KihHaiZUODJSejJmMGI1SQp6a2BrbSp2cS15Oz4lYmIy
cCgxaV5YaTFBd0NseWRHQkZ8VVpCUytuVU5LPWE5c0JLNEU3c1hKQFVeVVYzakEjYmUKel4/PUV2
dTdHeGlFOEAhN0NBSzhzbkdXfldQQDVIe0pnQ056Pz9nP0MmSm87PVBEPXgxNDxIa3VRdmhjdiRe
bG12CnpRa2F8OzFjblpAcT4oR28zNDwrQyowaGtaMmtqWnEpRj11fTNCZyY0SGoySmM7T29OSTxv
cTwkPTIycUtuYiRPKwp6XkZ8TWIoVTh5SyVlckJUYjVXQ29ZKD48fnJDTk5zTTtsc2QoMGVFfm1i
XnIoMkJrYz47dlRITzFoQklfMT1PJSsKem4yUn0ocFlfaFgpPjA1UzE0ejNDM2BeWEoqMGoobGI4
QytDM2VuT25JTFhyKmx2c2FxYlRvbWI5KFlRMlZmR3NoCnoocmlESkp1I209XjJgVHclZUl3NitL
IyQ1SXZkd2pzQSg3RlI9XzV+bE4/I3JYaHpnODEpTG01OXgxbDhyRCpITAp6YyhibjQwIUc+P1RX
SzJqKiQhQV5ZLXY1Zm09YX17Yn5xOypwbXtWKlRqZW9nU3x0b1RWJDd3UzBvfnc8dWB3bz0KekJh
YndKKGJHYE5id095NXpnQ05qMHNCVEY0VWVWPyoqRk1pJTR5Q3IpPlhrNmQ2cXo4NGhfT2ZJT2JZ
dmttdWtBCnpLdUtGUnV9SDI4YlFiSl9aSXZrfXB0VHE8N2E9My0tcjghRnZReENAQVQhSXZze19s
KXZxOT1LanV2VkVqNyE+KQp6JHRQUD43ano+aiNMJG1EajkjUVk9KjFTRDZnWVdxclVpY0hTanNw
V0tSaVFORD48WXJyXz97byYydnMjUSkjNz0KenhIPSM9UXkzfkdiSFVAc0pUUHgxc050aHo+ZGUk
OVlobjFoITdCaTMtSkoyTz4zSElDbmdoUnphfWkrJkdUJiZfCnpNeVBlTHdnTDdjVkg7P3tVflRn
dGhBMUAtKTwhWHBDMlhxJkx5KkcyIVBkcjlmPmFOeDV7bU8tT0d8P1ZTQ0U8agp6WFo4d1ZSei18
bm9OcE0/KHF0Kk0wRWExQzMkK1prZ25fVGxRZmRabTZNR25abW9SZHZnZlVGPkw5WVpFaDImPDUK
el5+bG5oXnRlPV9Bek1xX2FCSzZoelJAOWxPWnclJCk9fWI7UlUySGtqJDhtLTRDUmFFRSVDKU5T
LUd3byFlPys4CnpifW4xN09Ld1gyeGpla1JXSEhRWDVNUHJ6bSNuO1Z4eF5jbnRoe21Bc3QzazQt
QDx6Y29SPSgpVE8mZ3g9Vz9CZQp6Y0VtRXk0QmF8fW13SnFDaTh8e3JWNmxXY2FBS35NWWBkfnR2
UkdMeiokUzhJRWpHdkhNdkxgdSo9bUxMa1RxaEYKelBMQGtIJWQ/e25Gc0EwfjBvYEtaUG5KdkNz
WWhHVEdWPnhSaGItRVBmRVVKUzslazYoUntCbG8tRDA4RkR4XjJwCnozUnd5Ynh6filtPlJERyZi
QiE4bEJgamRRPmNZdy1TNjZ2JjtKYyZyam0ofi11V3N6WVIyI29wIyhFWkAqfX02fgp6MkhickFW
XyVMfShsKUhNZTVWPzFISnZCJDxPRHY2aT90KGhFZyFfZl9ZfVYwdW4pcEg+SDlGPWdZZ2YmTUBz
dzsKelNAMV87M3h+byN3RXN2SHRRO19ZbU5eNjRaeGk9WT5tOWNzRyRIVHBRYVdEMnw4LTU3ejl4
SGxEY3R2QGpAZWZ9CnpUPjduOzN3KU90bkZySX5rYjFXSUNNQFJ5UH5tJGZrRkhmRlVZQkBmSlR5
KW8hISshR05BT19HPj9lKGVJWG52SAp6Z1U5fTAlJlRDOT9CT0laS0dHfGpnWiFiVylyfl5VKUQ3
IWVkViVibDxSUXlRNjE4R1hffXxYcVFtc0VzczsxOC0KemVYRWZ1dUxNYFVoZk96Zm1+YDI5Pm94
M2NXRyVEekhUb0V1YjhoKGhGa0d3YnhwJDA4WEF4fE5idmA8cz1FSWJTCnpefmNfI14hQTNecWRD
dXtQaVc0dyhkPXtuZChoPGhJbnFjaTdNPzVyd2BGZ1VlUU5wZGBDdk5vNCo3bnA5NzgyQwp6U0J+
fUlrakdFe1libVlpMG89SWBKKiE4UFpEYjlPUE4oSHhxX1lzWjxKcjlkOGpjR3N2SmNOSWpmTmxK
PElJXjcKejc1ZTJqe24pM0Z6TmVJcCo5ZDk3TiQ3JDk2UHw7VnR3WkFCZT5QbXA+aiNnY3tPQF9G
SkRRe3Nmc1lmeT98K05SCno7bWZgbnl6Pmx9YCFga3tuQ25oUzJtRF89NH5mfHB8Ml9IbnBVWnJC
WDJhJEdjUFozaHlzWX50Si04ZTh6KDRCMgp6c0skfVhVNlA/TmR7XklTej9jeFZ1PG4payk/JnF4
PElPdU15d2t2VTJ5USlAbWVWQHlVTS1gQTxYeDNhWHdBdCkKem0pNFFaNnQlV1FJLUJWJVh2TTVu
TF9AQi1FdUQmTT9iKXRhRHBSOF4mUz5rcV5RbDY2RHFjKXdHWFA3KmlmR2pgCnoqYGsoRCNJdjI1
KUglYT9ZMXk3a0I0MD9SYSQyXjdrcm9uS009RzV0b0ZGSzRXWWcodlBiJC0/TWV+VlJGfHskRgp6
TVlDTzlqUXE0aktDODdTO158bCg0Y1V3cSVqTUZrTH05TCRFRWFRZllpclo3d245elo9b1hpfllP
P3Z4VEpXNjYKejZjVUJuYkFWel9QWWhVVmdFZktMP219JWsoSFRwfXYrVzYlY30xZUw4YCMlP0tn
Silkc1NnTlVhR1NNfiVSfXxsCno2RHhxVmpuR3l1KFhPP2Z0Knkkb3dgO0FqV0ZFcTV1fXIoUl5s
WnFlTVFnT0J2RUdoVUJIaGs5Tyh4UGd0KFloagp6d1ZyJmMyKGwmO0V0Z05RUiUzMUhnYTliaVhp
VHY/bFBWVXA5Ql5XVVFVeHMtMm4zfCFWKGxBYW5SdFJMOEBZflkKekB7cU1CM0p8YD9eJnRaYHA4
JGhodT8/KGMxXzckVlM+M1RiYT1vIzVGQDNnQ2xxQilPZE07VWpJcG5vMnlpMmFkCnpsaEEpJEZi
a1o4Ujk2bGlWcD8wYVNMO2NwO3o9SU9HQEFtcTNiWWFyRD47YDxXeHpqUGshTGp0cVhKWSVjUkZv
eQp6KDMyYEFmbFhBSUF+OSNvWFVSNzV1fW1pcXtPYVJGZmpQS0RQVCpgS3ZYTkhLSFV5RHZTaXNx
NDI4Y0Z0SHJrQUEKenN7amF3Z0lwNz01MX1lcDl+T2xNMFRwWnRhVlpweXBlWW4+a2NCM1p2QG5U
S09BOG1tTz80dF51OXR9YjNeeG5GCnpAY2dLI2pBOV9yQXJLNjZ6ZCVzKktxfUEjZzNVJjJSSklD
IUxqZnNMQVNCcmM3e1VkQDJDaV9FZkRSai0+bTwmZwp6MFVrOEtma3EkPzEqQzM1MFU+dU42bEIj
UEZgOXp7VGdZR342cUchS0xpMShzSS0hektDP2JpNkI2WHM3TTkzVHAKendNczFZUU5jXyY1RC1l
SlRmbTA0YGdvKjV1fUZuaD5LND1zJkRBWXY2elp2NEFYUWkmajBrY19NU0ZkP1BLLWB7CnpxKCRJ
RUQlJUBeTFdvRjFOVSMtJmhLMkFBMG9sSlAqZHFHMVZwNCFqQiV5OyRQbnN4T1JMS1luKnslZjQ2
fCo2Ywp6IyVncXN4eXs4cGBQSkdpOT5Mamp3UGpmPzdsVjx1YnIqLTI9eyY3RUMhaVZfWUJfQD51
X14/I240RXh2QFd6WTsKentEbEhPK0I2ajJvVXd4KUIhWVJNb1NEO3g8eE5jN0xOMTJjNHlLdzkl
QG5WaWI5eiRrVT8oJFR8SkRWcXRyb0YoCnotMmwmV0hKUFVeJFlfSTx1enJNd0tfK0FBNGh0fEE1
fGI/ZWhiX1AqVk5BQGNsS0RocDR3a1l4eSM4M2EpbWdlUgp6SGB4cU58NVUhY001cn59b2diLWR7
Um14bzNCcWJzPmJ4QDVKNXR9czJ6Pzh3VVM1dCRFVEBMNWdHYkpeMmIweH4KelJFTT9DcUY1P0ZN
Ny10XmBWX0gzVGorPjhvZzZjKFYmKUkpbmFQJHxUaWwrPWNJSU9fdGlVQnxuMl8mbjk5cWRaCnop
Pzt+d3JpNyZqcUtCWW5WUUAmRm1QN1BlaH5lSSMjYmRjdEZfelpTaTZSZTVHP2AqQDtwUFZQVCFs
SFBDQTBhfAp6SWREQXlReisoQkltfTFjZmMxVmJrOSRPI0wjKVdkP2xMMHYpd3gwbnsqQn4tWkFZ
Tm5uOCs3WEAlTnpMdXdlZFMKemNjP01ebGIpV1FueDFmK1RAc0BQRSgyPFdqfWwkRXZYKSkwTFR3
RCpNUSF4dDw/OXdOVGo7ZzhDN2QwTSE8ZXhyCno4SiVEK3A3KEhNZTJNcUVjcHNAMDVuenZnXm1y
bWlKe0g1QEZVS3krdX1pQnhtMUNFfl9jUDJHVXBhUEpqJE17eAp6bSp2PUhJZCY9ST9sTStjaiRN
fFhsUFNrOFcjbk9gJGx9bzBWPnh5P0d8cEkjVTZ4fikqNFJgemJ+KVMmPU1gaCoKeiRsSmomTUgj
ZygkMVY/IVd7PDRGYV9vfSNMRWYoalgqcVQmcFopJG5pZGBaS0V1KSQldW9Lb1BvYDI9JXl2JG04
Cnp4LWVkJCg5Z3dOS3FHdlZpRmppeyNZeDZDOUF4WXVDKGhZKTw3OHpZcFc9JE1UKnUtcCZUJXhK
Q1pQOWBHIWRzZAp6UG9seypnKzVHRT1fcn47TjVnV2VAQz8+NUk4Uyo3UEFXYllRVFcrKDlPQ2RO
OzdPR2wjOUh8JiY1KEZYai1SZ00KekNzTGQ2SmxRPEAyemBgM01rbXJxO0ZiU1h3VFMxSjdVS1Ar
I3FARmQ0X1pQPzV1TjJZP0oyWVp2RHtVTj95c1IhCnpYKVdUbXJfbT9xbFhOPExpcTQ9ajUhWT0p
YmVLSj80cnFXUXtfRkE3S3BLJT1ldWcyM3I9al5OQEZIfXg1c35DeAp6Sk96Q1lvczBMTSZkMGdS
cFRWKXNwUVFgd0JEJENecC1iXmopYTcmcWVVWkxJU0pCbjxXeE9IdlJsMCQwR3xtdl8KejZQV3Fy
VyVKeCtkRGArJUBDTWJkaE1jVllERS1EYlVIUGRZcnpgSW9jRF4jN3NyLV8wc2A0d3Qmc0EzSmli
SV8yCnp7OE9DeWQ8JVYoekNsfVklSmNvPXRtNXRUSWheVklkN0pfTGZIPm9NOC0wUGtNcWo3dmE2
PEdvYlVqXjNvOUhXZQp6Klgra1EteD1wV0ReNX1zbSpRNERpV2wjQWBJUnhzNXoxSmxMSyZ4d1Mw
KlR4JTh8LU08d0pQKVlxQnkkYExIcm8KeklaQnpQOUlhP2RsflMhN3FmRXk7VktiRnVtMDkqPnRD
dVdzaXx9WnVFXks1MWIhTWhzVTlgJjl2UzVofEY8WHdZCnphTE4lQkJNbHBBb3NyZlhYfmFtSWpJ
YE5FPVgxJiVga3EpdkRpc012QjZUaiNnIyRydTtoMzlEOD4yPjlWQnB4OQp6RUg/PkM5QWgpdTFx
VTJebGpWOSomI15aeWIxYVdqaj1eIXRGKlomKTx8YjBhOzVnLSY4PmpWJSYyYnZRUj0jTSoKTns9
ODhabEpSfnl7V3JUdGhkQlRNCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>
<flag name="review"
          id="462437"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>