<?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>202262</bug_id>
          
          <creation_ts>2019-09-26 02:40:58 -0700</creation_ts>
          <short_desc>[Cocoa] REGRESSION (r245672): Contenteditable with optical sizing freezes Safari</short_desc>
          <delta_ts>2019-10-14 12:43:09 -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>CSS</component>
          <version>Other</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.14</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=202198</see_also>
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>nilfgard</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>andrea</cc>
    
    <cc>annulen</cc>
    
    <cc>ap</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1574398</commentid>
    <comment_count>0</comment_count>
    <who name="">nilfgard</who>
    <bug_when>2019-09-26 02:40:58 -0700</bug_when>
    <thetext>Hello.

Contenteditable + text-rendering: optimizeLegibility + font-family: -apple-system crashes Safari 13 and 13.0.1.

This codepen shows the problem: https://codepen.io/nilfgard/pen/GRKLgqr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575175</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-09-29 15:22:05 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 202198 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576656</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-10-03 17:37:02 -0700</bug_when>
    <thetext>The fix for the other bug doesn&apos;t fix this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576679</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-10-03 18:31:23 -0700</bug_when>
    <thetext>*** Bug 202556 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576682</commentid>
    <comment_count>4</comment_count>
      <attachid>380179</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-10-03 18:32:43 -0700</bug_when>
    <thetext>Created attachment 380179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576683</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-03 18:33:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/55969922&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576694</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-10-03 19:37:24 -0700</bug_when>
    <thetext>There is some build breakage on EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577008</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-10-04 14:10:09 -0700</bug_when>
    <thetext>*** Bug 202556 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577009</commentid>
    <comment_count>8</comment_count>
      <attachid>380252</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-10-04 14:12:32 -0700</bug_when>
    <thetext>Created attachment 380252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577031</commentid>
    <comment_count>9</comment_count>
      <attachid>380256</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-10-04 15:03:06 -0700</bug_when>
    <thetext>Created attachment 380256
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577098</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-10-04 18:24:28 -0700</bug_when>
    <thetext>fast/forms/contenteditable-font-optical-size.html is failing on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578961</commentid>
    <comment_count>11</comment_count>
      <attachid>380713</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-10-10 19:01:24 -0700</bug_when>
    <thetext>Created attachment 380713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579681</commentid>
    <comment_count>12</comment_count>
      <attachid>380713</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-14 10:24:54 -0700</bug_when>
    <thetext>Comment on attachment 380713
Patch

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

&gt; Source/WebKit/Shared/Cocoa/CoreTextHelpers.mm:2
&gt; + * Copyright (C) 2017 Apple Inc. All rights reserved.

-2019?

&gt; Source/WebKit/Shared/Cocoa/CoreTextHelpers.mm:52
&gt; +    END_BLOCK_OBJC_EXCEPTIONS

I *think* this being post-return is OK, but I don&apos;t recall what it expands to</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579745</commentid>
    <comment_count>13</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-10-14 12:43:09 -0700</bug_when>
    <thetext>Committed r251086: &lt;https://trac.webkit.org/changeset/251086&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380179</attachid>
            <date>2019-10-03 18:32:43 -0700</date>
            <delta_ts>2019-10-04 14:12:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202262-20191003183242.patch</filename>
            <type>text/plain</type>
            <size>19352</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA0MjQxOTZi
ODE5OGVkMGU4MjdlYTBkOTk1YjgwNmU2NjdmNDdhODYyLi40MmQ2YzljZDIxZDY3NjNmNTIwMWY3
NDQ2NzQ1MmE5YzIzNTc1Njg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxOS0xMC0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtDb2NvYV0gUkVHUkVTU0lPTiAocjI0NTY3Mik6IENvbnRlbnRlZGl0YWJsZSB3aXRo
IG9wdGljYWwgc2l6aW5nIGZyZWV6ZXMgU2FmYXJpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIyNjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFBBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHBhbC9QbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBwYWwvY29jb2EvQ29y
ZVRleHRIZWxwZXJzLmg6IEFkZGVkLgorICAgICAgICAqIHBhbC9jb2NvYS9Db3JlVGV4dEhlbHBl
cnMubW06IEFkZGVkLgorICAgICAgICAoZm9udERlc2NyaXB0b3JXaXRoRm9udEF0dHJpYnV0ZXMp
OgorCiAyMDE5LTEwLTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUHJvZ3Jlc3MgdG93YXJkcyBhIGZ1bmN0aW9uaW5nIENNYWtlIGJ1aWxk
IG9uIE1hYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCAxMTk2OGU1ZDFhNGY3ODFhNTgzODFjMzY0M2FmMjE5ZWEzNGFl
MzYxLi5lOTNhNmNkNGUwYzlhOTE1YTA4NjIwYWQwMGVlY2NiZjY0MjYwODA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDE5LTEwLTAzICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVs
ZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBSRUdSRVNTSU9OIChyMjQ1NjcyKTogQ29u
dGVudGVkaXRhYmxlIHdpdGggb3B0aWNhbCBzaXppbmcgZnJlZXplcyBTYWZhcmkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjI2MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHIyNTA2NDAgZGlkbid0IGdv
IGZhciBlbm91Z2guIFdlIG5lZWQgdG8gYXBwbHkgdGhlIHNhbWUgZml4IGV2ZXJ5d2hlcmUgW05T
Rm9udERlc2NyaXB0b3IgZm9udERlc2NyaXB0b3JXaXRoRm9udEF0dHJpYnV0ZXM6XSBpcyBjYWxs
ZWQuCisKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQXJndW1lbnRDb2RlcnNDb2NvYS5tbToKKyAg
ICAgICAgKElQQzo6ZGVjb2RlRm9udEludGVybmFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVG
b250TWFuYWdlcklmTmVlZGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVu
dVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hv
d1BvcHVwTWVudSk6CisKIDIwMTktMTAtMDMgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5n
QHNvbnkuY29tPgogCiAgICAgICAgIFNvY2tldCBSV0kgY2xpZW50IHNob3VsZCBhY3F1aXJlIGJh
Y2tlbmQgY29tbWFuZHMgZnJvbSBzZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZWFiMDFkYjE4NmJiNWYyZjE1YzA0NGVl
ZTRhZTRhNzg3ZDI5NjI1Li4xMGU4ODc3NmM5ZjYyY2U4MmEwNjFkZjMwNjUwOGRkYjIzZTMwMjlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMDgsNiArMTA4LDggQEAKIAkJMUMwOUQwNTgxRTMxQzU3RTAwNzI1RjE4IC8qIGNv
bmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMw
OUQwNTcxRTMxQzU3RTAwNzI1RjE4IC8qIGNvbmZpZy5oICovOyB9OwogCQkxQzQ4NzZEODFGOEQ3
RjRFMDBDQ0VFQkQgLyogTG9nZ2luZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQzQ4NzZENjFGOEQ3RjRFMDBDQ0VFQkQgLyogTG9nZ2luZy5jcHAg
Ki87IH07CiAJCTFDNDg3NkQ5MUY4RDdGNEUwMENDRUVCRCAvKiBMb2dnaW5nLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzQ4NzZENzFGOEQ3RjRFMDBD
Q0VFQkQgLyogTG9nZ2luZy5oICovOyB9OworCQkxQ0E3MjJFQjIzNDZDRTgyMDBFMUYyNUIgLyog
Q29yZVRleHRIZWxwZXJzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNBNzIyRUEyMzQ2Q0U4MjAwRTFGMjVCIC8qIENvcmVUZXh0SGVscGVycy5tbSAq
LzsgfTsKKwkJMUNBNzIyRUQyMzQ2RDIxRjAwRTFGMjVCIC8qIENvcmVUZXh0SGVscGVycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBNzIyRUMyMzQ2
Q0U4RTAwRTFGMjVCIC8qIENvcmVUZXh0SGVscGVycy5oICovOyB9OwogCQkxQ0MzQUNFODIyQkQ3
RUM1MDBGMzYwRjAgLyogTWV0YWxTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDQzNBQ0U3MjJCRDdFQjgwMEYzNjBGMCAvKiBNZXRhbFNQSS5oICov
OyB9OwogCQkxQ0NFRTRGNTIwRDg3MTkzMDA0N0IwOTcgLyogQ29yZVVJU1BJLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0NFRTRGNDIwRDg3MTkzMDA0
N0IwOTcgLyogQ29yZVVJU1BJLmggKi87IH07CiAJCTFDQ0VFNEY3MjBEODc0M0YwMDQ3QjA5NyAv
KiBOU0FwcGVhcmFuY2VTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDQ0VFNEY2MjBEODc0M0YwMDQ3QjA5NyAvKiBOU0FwcGVhcmFuY2VTUEkuaCAq
LzsgfTsKQEAgLTI3Nyw2ICsyNzksOCBAQAogCQkxQzQ4NzZEQzFGOEQ3RkM2MDBDQ0VFQkQgLyog
TG9nTWFjcm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ01hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQzY3Q0VBMTFFMzJFREE4MDBGODBGMkUgLyogRmVhdHVyZURlZmluZXMu
eGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRmVhdHVyZURlZmluZXMu
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNjdDRUEyMUUzMkVFMjYw
MEY4MEYyRSAvKiBWZXJzaW9uLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IFZlcnNpb24ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQTcy
MkVBMjM0NkNFODIwMEUxRjI1QiAvKiBDb3JlVGV4dEhlbHBlcnMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBDb3JlVGV4dEhlbHBlcnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQTcyMkVDMjM0NkNFOEUwMEUxRjI1QiAvKiBDb3JlVGV4dEhlbHBlcnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ29yZVRleHRIZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFD
QzNBQ0U3MjJCRDdFQjgwMEYzNjBGMCAvKiBNZXRhbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXRh
bFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0NFRTRGNDIwRDg3MTkzMDA0
N0IwOTcgLyogQ29yZVVJU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
cmVVSVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0NFRTRGNjIwRDg3NDNG
MDA0N0IwOTcgLyogTlNBcHBlYXJhbmNlU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5TQXBwZWFyYW5jZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NTk4LDYgKzYwMiw4IEBACiAJCQkJNTdGRDMxODkyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1Nv
ZnRMaW5rLm1tICovLAogCQkJCTA3N0U4N0IwMjI2QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5kYXRp
b25Tb2Z0TGluay5oICovLAogCQkJCTA3N0U4N0FGMjI2QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5k
YXRpb25Tb2Z0TGluay5tbSAqLywKKwkJCQkxQ0E3MjJFQzIzNDZDRThFMDBFMUYyNUIgLyogQ29y
ZVRleHRIZWxwZXJzLmggKi8sCisJCQkJMUNBNzIyRUEyMzQ2Q0U4MjAwRTFGMjVCIC8qIENvcmVU
ZXh0SGVscGVycy5tbSAqLywKIAkJCQlGNDQyOTE2NjFGQTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNp
emVGb3JtYXR0ZXJDb2NvYS5tbSAqLywKIAkJCQkxQzAyMkVGQzIyQ0ZFOEUwMDA2REYwMUIgLyog
R3VuemlwLmNwcCAqLywKIAkJCQlBMUY2M0M5RDIxQTREQkY3MDA2RkI0M0IgLyogUGFzc0tpdFNv
ZnRMaW5rLmggKi8sCkBAIC03MTYsNiArNzIyLDcgQEAKIAkJCQkwQzJEQTExRTFGM0JFOUUwMDBE
QkMzMTcgLyogQ29yZUdyYXBoaWNzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQ0Y5OUNBOTFG
NzM4NDM3MDA3RUU3OTMgLyogQ29yZU1lZGlhU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBDMkRBMDcyMUYzM0NBODQwMERCQzMxNyAvKiBDb3JlTWVkaWFTUEkuaCBpbiBIZWFkZXJzICov
LAorCQkJCTFDQTcyMkVEMjM0NkQyMUYwMEUxRjI1QiAvKiBDb3JlVGV4dEhlbHBlcnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBDMkRBMTQwMUYzQkVCNDkwMERCQzMxNyAvKiBDb3JlVGV4dFNQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUNDRUU0RjUyMEQ4NzE5MzAwNDdCMDk3IC8qIENvcmVVSVNQ
SS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MTkxRjQzQTRDNzAwMkVBQzAyIC8qIENvcmVV
SVNQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC05MTEsNiArOTE4LDcgQEAKIAkJCQkwNzdFODdCMTIy
NkE0NjAyMDBBMkFGRjAgLyogQVZGb3VuZGF0aW9uU29mdExpbmsubW0gaW4gU291cmNlcyAqLywK
IAkJCQkwQzVGRkYwRjFGNzhEOURBMDA5RUZGMUEgLyogQ2xvY2tDTS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTBDRjk5Q0E4MUY3Mzg0MzcwMDdFRTc5MyAvKiBDb3JlTWVkaWFTb2Z0TGluay5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkxQ0E3MjJFQjIzNDZDRTgyMDBFMUYyNUIgLyogQ29yZVRleHRI
ZWxwZXJzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwOUQwNTYxRTMxQzQ2NTAwNzI1RjE4IC8q
IENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTE3NUI1
ODFGNkI0NzA1MDBDNEI5RjAgLyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUY0NDI5MTY0MUZBNTI2NzAwMDJDQzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlci5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxh
dGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtTWFjLmNtYWtl
CmluZGV4IDZhNTEyNTAzNTJlMjkxMDlkZGYyMjQ1YWJiZTQ3YTQ1N2Q1MzgzMmIuLjcwY2M4Yjk2
MjExYzBkNjhkNDlhZjUzYjg0Yjg4MWMxYjhmNzkzYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtNSw2ICs1LDcgQEAgbGlzdChBUFBFTkQgUEFMX1BVQkxJ
Q19IRUFERVJTCiAKICAgICBjb2NvYS9BcHBTU09Tb2Z0TGluay5oCiAgICAgY29jb2EvQVZGb3Vu
ZGF0aW9uU29mdExpbmsuaAorICAgIGNvY29hL0NvcmVUZXh0SGVscGVycy5oCiAgICAgY29jb2Ev
UGFzc0tpdFNvZnRMaW5rLmgKIAogICAgIG1hYy9Mb29rdXBTb2Z0TGluay5oCkBAIC0xMTMsNiAr
MTE0LDcgQEAgbGlzdChBUFBFTkQgUEFMX1NPVVJDRVMKIAogICAgIGNvY29hL0FwcFNTT1NvZnRM
aW5rLm1tCiAgICAgY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KKyAgICBjb2NvYS9Db3Jl
VGV4dEhlbHBlcnMubW0KICAgICBjb2NvYS9GaWxlU2l6ZUZvcm1hdHRlckNvY29hLm1tCiAgICAg
Y29jb2EvUGFzc0tpdFNvZnRMaW5rLm1tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY29jb2EvQ29yZVRleHRIZWxwZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0NvcmVUZXh0SGVscGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwOTUzNjgxNjljOTM4NDFiZDRhOTM1
NjI1NDI3YzU4MzZhY2JmYmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0NvcmVUZXh0SGVscGVycy5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEFQUEtJVCkKKyNpbXBvcnQgPEFwcEtpdC9B
cHBLaXQuaD4KKyNlbHNlCisjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgorI2VuZGlmCisKKyNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFVTRShBUFBLSVQpCit1c2luZyBQbGF0Zm9ybUZv
bnREZXNjcmlwdG9yID0gTlNGb250RGVzY3JpcHRvcjsKKyNlbHNlCit1c2luZyBQbGF0Zm9ybUZv
bnREZXNjcmlwdG9yID0gVUlGb250RGVzY3JpcHRvcjsKKyNlbmRpZgorCitQQUxfRVhQT1JUIFBs
YXRmb3JtRm9udERlc2NyaXB0b3IgKmZvbnREZXNjcmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzKE5T
RGljdGlvbmFyeSAqYXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0NvcmVUZXh0SGVscGVycy5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvQ29yZVRleHRIZWxwZXJzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzNjY4ODEyMDRlODJiYjUzNThmYTVk
YzFlMGIwYjdlYzM1NDFiZDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0NvcmVUZXh0SGVscGVycy5tbQpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJDb3JlVGV4dEhlbHBlcnMuaCIKKworI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrT2Jq
Q0V4Y2VwdGlvbnMuaD4KKworUGxhdGZvcm1Gb250RGVzY3JpcHRvciAqZm9udERlc2NyaXB0b3JX
aXRoRm9udEF0dHJpYnV0ZXMoTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzKQoreworICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKworI2lmIEhBVkUoTlNGT05UX1dJVEhfT1BUSUNBTF9T
SVpJTkdfQlVHKQorICAgIGF1dG8gbXV0YWJsZURpY3Rpb25hcnkgPSBhZG9wdE5TKFthdHRyaWJ1
dGVzIG11dGFibGVDb3B5XSk7CisgICAgaWYgKGlkIG9wdGljYWxTaXplQXR0cmlidXRlID0gW211
dGFibGVEaWN0aW9uYXJ5IG9iamVjdEZvcktleTooX19icmlkZ2UgTlNTdHJpbmcgKilrQ1RGb250
T3B0aWNhbFNpemVBdHRyaWJ1dGVdKSB7CisgICAgICAgIGlmIChbb3B0aWNhbFNpemVBdHRyaWJ1
dGUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSkgeworICAgICAgICAgICAgW211dGFi
bGVEaWN0aW9uYXJ5IHJlbW92ZU9iamVjdEZvcktleTooX19icmlkZ2UgTlNTdHJpbmcgKilrQ1RG
b250T3B0aWNhbFNpemVBdHRyaWJ1dGVdOworICAgICAgICAgICAgaWYgKE5TTnVtYmVyICpzaXpl
ID0gW211dGFibGVEaWN0aW9uYXJ5IG9iamVjdEZvcktleTooX19icmlkZ2UgTlNTdHJpbmcgKilr
Q1RGb250U2l6ZUF0dHJpYnV0ZV0pCisgICAgICAgICAgICAgICAgW211dGFibGVEaWN0aW9uYXJ5
IHNldE9iamVjdDpzaXplIGZvcktleTooX19icmlkZ2UgTlNTdHJpbmcgKilrQ1RGb250T3B0aWNh
bFNpemVBdHRyaWJ1dGVdOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBbUGxhdGZvcm1G
b250RGVzY3JpcHRvciBmb250RGVzY3JpcHRvcldpdGhGb250QXR0cmlidXRlczptdXRhYmxlRGlj
dGlvbmFyeS5nZXQoKV07CisjZWxzZQorICAgIHJldHVybiBbUGxhdGZvcm1Gb250RGVzY3JpcHRv
ciBmb250RGVzY3JpcHRvcldpdGhGb250QXR0cmlidXRlczphdHRyaWJ1dGVzXTsKKyNlbmRpZgor
ICAgIAorICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKworICAgIHJldHVybiBuaWw7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Bcmd1bWVudENvZGVyc0Nv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXJndW1lbnRDb2RlcnNDb2NvYS5t
bQppbmRleCBhMWNkODYzYWMzZWY0MDY2OGZhNTVlYWM2ZTg5N2MyNWEwZWEzMWFlLi5jZjBkYTky
ZjdiYjQ2Njc4NmEyNDlmZjJmNDBhYWU0MzNmMzc5NDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9Bcmd1bWVudENvZGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvY29hL0FyZ3VtZW50Q29kZXJzQ29jb2EubW0KQEAgLTMxLDcgKzMxLDkgQEAK
ICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ0YuaCIKICNpbXBvcnQgPENvcmVUZXh0L0NURm9udC5o
PgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250RGVzY3JpcHRvci5oPgorI2ltcG9ydCA8cGFsL2Nv
Y29hL0NvcmVUZXh0SGVscGVycy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0tleWVkQXJj
aGl2ZXJTUEkuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0
IDx3dGYvSGFzaFNldC5oPgogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTMyNyw5ICszMjksMTUgQEAg
c3RhdGljIE9wdGlvbmFsPFJldGFpblB0cjxpZD4+IGRlY29kZUZvbnRJbnRlcm5hbChEZWNvZGVy
JiBkZWNvZGVyKQogICAgIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+IGZvbnRBdHRyaWJ1dGVzOwog
ICAgIGlmICghZGVjb2RlKGRlY29kZXIsIGZvbnRBdHRyaWJ1dGVzKSkKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAK
LSAgICBQbGF0Zm9ybUZvbnREZXNjcmlwdG9yICpmb250RGVzY3JpcHRvciA9IFtQbGF0Zm9ybUZv
bnREZXNjcmlwdG9yIGZvbnREZXNjcmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzOmZvbnRBdHRyaWJ1
dGVzLmdldCgpXTsKKyAgICBQbGF0Zm9ybUZvbnREZXNjcmlwdG9yICpmb250RGVzY3JpcHRvciA9
IGZvbnREZXNjcmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzKGZvbnRBdHRyaWJ1dGVzLmdldCgpKTsK
ICAgICByZXR1cm4geyBbUGxhdGZvcm1Gb250IGZvbnRXaXRoRGVzY3JpcHRvcjpmb250RGVzY3Jp
cHRvciBzaXplOjBdIH07CisgICAgCisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworCisg
ICAgcmV0dXJuIHsgfTsKIH0KIAogI3ByYWdtYSBtYXJrIC0gTlNOdW1iZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggNjQyZjE2Njc1MmU2Yzk4
MzU0NjAwMGZjMDQ2ZWFjZDU0NzAxZTVmMC4uMzQxNzlmYjA2MDZmZmUzOTYwNzc2MzU5MmVmYzFh
MjA4MzUxZTU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KQEAgLTEwMiw2ICsxMDIsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlRnVsbFNj
cmVlbldpbmRvdy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlTlNGb250TWFuYWdlckV4dHJh
cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5oPgorI2lt
cG9ydCA8cGFsL2NvY29hL0NvcmVUZXh0SGVscGVycy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaD4KICNp
bXBvcnQgPHBhbC9zcGkvY29jb2EvTlNUb3VjaEJhclNQSS5oPgpAQCAtMTE2LDYgKzExNyw3IEBA
CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1ZpZXdTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFj
L05TV2luZG93U1BJLmg+CiAjaW1wb3J0IDxzeXMvc3RhdC5oPgorI2ltcG9ydCA8d3RmL0Jsb2Nr
T2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW1wb3J0IDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CkBA
IC0yODExLDExICsyODEzLDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUZvbnRNYW5hZ2Vy
SWZOZWVkZWQoKQogICAgICAgICBpZiAoZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9u
ZSkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisKICAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVEaWN0aW9uYXJ5ID0gKF9f
YnJpZGdlIE5TRGljdGlvbmFyeSAqKWZvbnRJbmZvLmZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5Lmdl
dCgpOwogICAgICAgICBpZiAoIWF0dHJpYnV0ZURpY3Rpb25hcnkpCiAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgTlNGb250RGVzY3JpcHRvciAqZGVzY3JpcHRvciA9IFtOU0ZvbnREZXNj
cmlwdG9yIGZvbnREZXNjcmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzOmF0dHJpYnV0ZURpY3Rpb25h
cnldOworICAgICAgICBQbGF0Zm9ybUZvbnREZXNjcmlwdG9yICpkZXNjcmlwdG9yID0gZm9udERl
c2NyaXB0b3JXaXRoRm9udEF0dHJpYnV0ZXMoYXR0cmlidXRlRGljdGlvbmFyeSk7CiAgICAgICAg
IGlmICghZGVzY3JpcHRvcikKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjgyNCw2ICsyODI4
LDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlRm9udE1hbmFnZXJJZk5lZWRlZCgpCiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgW05TRm9udE1hbmFnZXIuc2hhcmVkRm9udE1hbmFn
ZXIgc2V0U2VsZWN0ZWRGb250OmZvbnQgaXNNdWx0aXBsZTpzZWxlY3Rpb25IYXNNdWx0aXBsZUZv
bnRzXTsKKyAgICAgICAgCisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICB9
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVw
TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVu
dVByb3h5TWFjLm1tCmluZGV4IGZkNjU3MzRkZWMyNjYwYzk1NjdkYTRkMjBkNWM5YTI4MzI3MDBi
NjAuLjFiOTExMzgxMjFhM2U4YzlhNTUyMDA0M2Q5NDkzYzI4MzkzYzgzZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KQEAg
LTMzLDcgKzMzLDcgQEAKICNpbXBvcnQgIlBsYXRmb3JtUG9wdXBNZW51RGF0YS5oIgogI2ltcG9y
dCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXZWJQb3B1cEl0ZW0uaCIKLSNpbXBvcnQg
PHBhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaD4KKyNpbXBvcnQgPHBhbC9jb2NvYS9Db3JlVGV4
dEhlbHBlcnMuaD4KICNpbXBvcnQgPHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oPgogI2ltcG9y
dCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmls
ZWdlLmg+CkBAIC0xMDYsMTcgKzEwNiw3IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNo
b3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAgaWYgKGRhdGEuZm9udEluZm8uZm9u
dEF0dHJpYnV0ZURpY3Rpb25hcnkpIHsKLSAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rp
b25hcnk+IG11dGFibGVEaWN0aW9uYXJ5ID0gYWRvcHROUyhbKF9fYnJpZGdlIE5TRGljdGlvbmFy
eSAqKWRhdGEuZm9udEluZm8uZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkuZ2V0KCkgbXV0YWJsZUNv
cHldKTsKLSNpZiBIQVZFKE5TRk9OVF9XSVRIX09QVElDQUxfU0laSU5HX0JVRykKLSAgICAgICAg
aWYgKGlkIG9wdGljYWxTaXplQXR0cmlidXRlID0gW211dGFibGVEaWN0aW9uYXJ5IG9iamVjdEZv
cktleTooX19icmlkZ2UgTlNTdHJpbmcgKilrQ1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGVdKSB7
Ci0gICAgICAgICAgICBpZiAoW29wdGljYWxTaXplQXR0cmlidXRlIGlzS2luZE9mQ2xhc3M6W05T
U3RyaW5nIGNsYXNzXV0pIHsKLSAgICAgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgcmVt
b3ZlT2JqZWN0Rm9yS2V5OihfX2JyaWRnZSBOU1N0cmluZyAqKWtDVEZvbnRPcHRpY2FsU2l6ZUF0
dHJpYnV0ZV07Ci0gICAgICAgICAgICAgICAgaWYgKE5TTnVtYmVyICpzaXplID0gW211dGFibGVE
aWN0aW9uYXJ5IG9iamVjdEZvcktleTooX19icmlkZ2UgTlNTdHJpbmcgKilrQ1RGb250U2l6ZUF0
dHJpYnV0ZV0pCi0gICAgICAgICAgICAgICAgICAgIFttdXRhYmxlRGljdGlvbmFyeSBzZXRPYmpl
Y3Q6c2l6ZSBmb3JLZXk6KF9fYnJpZGdlIE5TU3RyaW5nICopa0NURm9udE9wdGljYWxTaXplQXR0
cmlidXRlXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotI2VuZGlmCi0gICAgICAgIE5TRm9u
dERlc2NyaXB0b3IgKmZvbnREZXNjcmlwdG9yID0gW05TRm9udERlc2NyaXB0b3IgZm9udERlc2Ny
aXB0b3JXaXRoRm9udEF0dHJpYnV0ZXM6bXV0YWJsZURpY3Rpb25hcnkuZ2V0KCldOworICAgICAg
ICBQbGF0Zm9ybUZvbnREZXNjcmlwdG9yICpmb250RGVzY3JpcHRvciA9IGZvbnREZXNjcmlwdG9y
V2l0aEZvbnRBdHRyaWJ1dGVzKHN0YXRpY19jYXN0PE5TRGljdGlvbmFyeSAqPihkYXRhLmZvbnRJ
bmZvLmZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5LmdldCgpKSk7CiAgICAgICAgIGZvbnQgPSBbTlNG
b250IGZvbnRXaXRoRGVzY3JpcHRvcjpmb250RGVzY3JpcHRvciBzaXplOigocGFnZVNjYWxlRmFj
dG9yICE9IDEpID8gW2ZvbnREZXNjcmlwdG9yIHBvaW50U2l6ZV0gKiBwYWdlU2NhbGVGYWN0b3Ig
OiAwKV07CiAgICAgfSBlbHNlCiAgICAgICAgIGZvbnQgPSBbTlNGb250IG1lbnVGb250T2ZTaXpl
OjBdOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDk4NGQwMTAxOTA4ZGYwNTZjNDk5OWE0ZWYyZDRlZDU3YmMxZjE4ZDEuLmE4
YmQxZGU0ZGFjNzJhNGY0ZjI1YjllZWViMDkxMjdkZWRiMmQ4ZDUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxOS0xMC0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtDb2NvYV0gUkVHUkVTU0lPTiAocjI0NTY3Mik6IENvbnRlbnRlZGl0YWJs
ZSB3aXRoIG9wdGljYWwgc2l6aW5nIGZyZWV6ZXMgU2FmYXJpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIyNjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZm9ybXMvY29udGVudGVkaXRhYmxl
LWZvbnQtb3B0aWNhbC1zaXplLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jb250ZW50ZWRpdGFibGUtZm9udC1vcHRpY2FsLXNpemUuaHRtbDogQWRkZWQuCisKIDIw
MTktMTAtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBQcm92
aXNpb25hbCAvIHNjaGVkdWxlZCBsb2FkcyBpbiBzdWJmcmFtZXMgc2hvdWxkIG5vdCBwcmV2ZW50
IGEgcGFnZSBmcm9tIGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY29udGVudGVkaXRhYmxlLWZvbnQtb3B0aWNhbC1zaXpl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY29udGVudGVkaXRhYmxlLWZv
bnQtb3B0aWNhbC1zaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYWJmN2FmMTU5MGM1N2Vi
ODMyM2ZkNDBjMjI1MWI4Yzk5YzUwYWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9jb250ZW50ZWRpdGFibGUtZm9udC1vcHRpY2FsLXNpemUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMiBAQAorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBjb250ZW50ZWRpdGFi
bGUgd2l0aCBvcHRpY2FsIHNpemUgZG9lc24ndCBoYW5nIHRoZSBicm93c2VyLiBUaGUgdGVzdCBw
YXNzZXMgaWYgdGhlcmUgaXMgbm8gaGFuZy4KK0xvcmVtIGlwc3VtYWJjZGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY29udGVudGVkaXRhYmxlLWZvbnQtb3B0aWNhbC1zaXpl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NvbnRlbnRlZGl0YWJsZS1mb250LW9wdGlj
YWwtc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4YzdhMjg5NWQwYTFmOTQwNjQ5NWI3YjBmZDJkNjBi
MWY4ZDBkMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NvbnRl
bnRlZGl0YWJsZS1mb250LW9wdGljYWwtc2l6ZS5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2RpdnsKKyAgICB0ZXh0LXJlbmRl
cmluZzogb3B0aW1pemVMZWdpYmlsaXR5OworICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVt
LCBzYW5zLXNlcmlmOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0IG1h
a2VzIHN1cmUgdGhhdCBjb250ZW50ZWRpdGFibGUgd2l0aCBvcHRpY2FsIHNpemUgZG9lc24ndCBo
YW5nIHRoZSBicm93c2VyLiBUaGUgdGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMgbm8gaGFuZy4KKzxk
aXYgaWQ9InRhcmdldCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj5Mb3JlbSBpcHN1bTwvZGl2Pgor
PHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBsZXQgdGFyZ2V0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgIGNvbnN0IHggPSB0YXJnZXQub2Zmc2V0
TGVmdCArIHRhcmdldC5vZmZzZXRXaWR0aCAvIDI7CisgICAgY29uc3QgeSA9IHRhcmdldC5vZmZz
ZXRUb3AgKyB0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7CisgICAgZXZlbnRTZW5kZXIua2V5RG93bigiYSIpOworICAgIGV2ZW50U2Vu
ZGVyLmtleURvd24oImIiKTsKKyAgICBldmVudFNlbmRlci5rZXlEb3duKCJjIik7CisgICAgZXZl
bnRTZW5kZXIua2V5RG93bigiZCIpOworICAgIGV2ZW50U2VuZGVyLmtleURvd24oImUiKTsKK30K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380252</attachid>
            <date>2019-10-04 14:12:32 -0700</date>
            <delta_ts>2019-10-04 15:03:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202262-20191004141231.patch</filename>
            <type>text/plain</type>
            <size>16557</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGExNzg4MDBmZWMzMzAzZDY4
YWJmMjMyOWI1N2U3NDMzODI0NTM3OWYuLjAxMGQ1MTlkMGMwMDgwNzM3NmRjZTAwODBkMmQ4MmY5
ODQ5MjY0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTktMTAtMDQgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJFR1JF
U1NJT04gKHIyNDU2NzIpOiBDb250ZW50ZWRpdGFibGUgd2l0aCBvcHRpY2FsIHNpemluZyBmcmVl
emVzIFNhZmFyaQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAyMjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgcjI1MDY0MCBkaWRuJ3QgZ28gZmFyIGVub3VnaC4gV2UgbmVlZCB0byBhcHBseSB0aGUgc2Ft
ZSBmaXggZXZlcnl3aGVyZSBbTlNGb250RGVzY3JpcHRvciBmb250RGVzY3JpcHRvcldpdGhGb250
QXR0cmlidXRlczpdIGlzIGNhbGxlZC4KKworICAgICAgICAqIFNoYXJlZC9Db2NvYS9Bcmd1bWVu
dENvZGVyc0NvY29hLm1tOgorICAgICAgICAoSVBDOjpkZWNvZGVGb250SW50ZXJuYWwpOgorICAg
ICAgICAqIFNoYXJlZC9Db2NvYS9Db3JlVGV4dEhlbHBlcnMuaDogQWRkZWQuCisgICAgICAgICog
U2hhcmVkL0NvY29hL0NvcmVUZXh0SGVscGVycy5tbTogQWRkZWQuCisgICAgICAgIChmb250RGVz
Y3JpcHRvcldpdGhGb250QXR0cmlidXRlcyk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVGb250TWFuYWdlcklmTmVlZGVkKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTktMTAtMDQgIEppZXdlbiBUYW4gIDxqaWV3
ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIEltcGxlbWVudCBfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsIFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvQXJndW1lbnRDb2RlcnNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L0FyZ3VtZW50Q29kZXJzQ29jb2EubW0KaW5kZXggYTFjZDg2M2FjM2VmNDA2NjhmYTU1ZWFjNmU4
OTdjMjVhMGVhMzFhZS4uOGIzMTFhMzJkNDk2YTE2NGU3NTZhOTU4MDY3NzEwZWQ4MTRlYmQzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXJndW1lbnRDb2RlcnNDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Bcmd1bWVudENvZGVyc0NvY29h
Lm1tCkBAIC0yOSw5ICsyOSwxMSBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0ICJB
cmd1bWVudENvZGVyc0NGLmgiCisjaW1wb3J0ICJDb3JlVGV4dEhlbHBlcnMuaCIKICNpbXBvcnQg
PENvcmVUZXh0L0NURm9udC5oPgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250RGVzY3JpcHRvci5o
PgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaD4KKyNpbXBvcnQg
PHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogCiAj
aWYgVVNFKEFQUEtJVCkKQEAgLTMyNyw5ICszMjksMTUgQEAgc3RhdGljIE9wdGlvbmFsPFJldGFp
blB0cjxpZD4+IGRlY29kZUZvbnRJbnRlcm5hbChEZWNvZGVyJiBkZWNvZGVyKQogICAgIFJldGFp
blB0cjxOU0RpY3Rpb25hcnk+IGZvbnRBdHRyaWJ1dGVzOwogICAgIGlmICghZGVjb2RlKGRlY29k
ZXIsIGZvbnRBdHRyaWJ1dGVzKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAK
KyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBQbGF0Zm9ybUZvbnREZXNj
cmlwdG9yICpmb250RGVzY3JpcHRvciA9IFtQbGF0Zm9ybUZvbnREZXNjcmlwdG9yIGZvbnREZXNj
cmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzOmZvbnRBdHRyaWJ1dGVzLmdldCgpXTsKKyAgICBQbGF0
Zm9ybUZvbnREZXNjcmlwdG9yICpmb250RGVzY3JpcHRvciA9IGZvbnREZXNjcmlwdG9yV2l0aEZv
bnRBdHRyaWJ1dGVzKGZvbnRBdHRyaWJ1dGVzLmdldCgpKTsKICAgICByZXR1cm4geyBbUGxhdGZv
cm1Gb250IGZvbnRXaXRoRGVzY3JpcHRvcjpmb250RGVzY3JpcHRvciBzaXplOjBdIH07CisgICAg
CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0dXJuIHsgfTsKIH0KIAog
I3ByYWdtYSBtYXJrIC0gTlNOdW1iZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvY29hL0NvcmVUZXh0SGVscGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29y
ZVRleHRIZWxwZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGY2MTg1NGRiNjkwYWEwMGQ1YTc0MGYzNzMyNDg3
ZGI2Mzc1YjUyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L0NvcmVUZXh0SGVscGVycy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgVVNFKEFQUEtJVCkKKyNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4K
KyNlbHNlCisjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgorI2VuZGlmCisKKyNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBVU0UoQVBQS0lUKQordXNp
bmcgUGxhdGZvcm1Gb250RGVzY3JpcHRvciA9IE5TRm9udERlc2NyaXB0b3I7CisjZWxzZQordXNp
bmcgUGxhdGZvcm1Gb250RGVzY3JpcHRvciA9IFVJRm9udERlc2NyaXB0b3I7CisjZW5kaWYKKwor
UEFMX0VYUE9SVCBQbGF0Zm9ybUZvbnREZXNjcmlwdG9yICpmb250RGVzY3JpcHRvcldpdGhGb250
QXR0cmlidXRlcyhOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMpOworCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db3JlVGV4dEhlbHBlcnMubW0gYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9Db3JlVGV4dEhlbHBlcnMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI0YTY0ZGUy
ODgwZmJiM2NiYTEzM2QwYjI1OGM4NDFiZTBhMjBjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL0NvcmVUZXh0SGVscGVycy5tbQpAQCAtMCwwICsxLDU3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJDb3JlVGV4dEhlbHBl
cnMuaCIKKworI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oPgorI2ltcG9ydCA8
d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BsYXRm
b3JtRm9udERlc2NyaXB0b3IgKmZvbnREZXNjcmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzKE5TRGlj
dGlvbmFyeSAqYXR0cmlidXRlcykKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CisKKyNpZiBIQVZFKE5TRk9OVF9XSVRIX09QVElDQUxfU0laSU5HX0JVRykKKyAgICBhdXRvIG11
dGFibGVEaWN0aW9uYXJ5ID0gYWRvcHROUyhbYXR0cmlidXRlcyBtdXRhYmxlQ29weV0pOworICAg
IGlmIChpZCBvcHRpY2FsU2l6ZUF0dHJpYnV0ZSA9IFttdXRhYmxlRGljdGlvbmFyeSBvYmplY3RG
b3JLZXk6KF9fYnJpZGdlIE5TU3RyaW5nICopa0NURm9udE9wdGljYWxTaXplQXR0cmlidXRlXSkg
eworICAgICAgICBpZiAoW29wdGljYWxTaXplQXR0cmlidXRlIGlzS2luZE9mQ2xhc3M6W05TU3Ry
aW5nIGNsYXNzXV0pIHsKKyAgICAgICAgICAgIFttdXRhYmxlRGljdGlvbmFyeSByZW1vdmVPYmpl
Y3RGb3JLZXk6KF9fYnJpZGdlIE5TU3RyaW5nICopa0NURm9udE9wdGljYWxTaXplQXR0cmlidXRl
XTsKKyAgICAgICAgICAgIGlmIChOU051bWJlciAqc2l6ZSA9IFttdXRhYmxlRGljdGlvbmFyeSBv
YmplY3RGb3JLZXk6KF9fYnJpZGdlIE5TU3RyaW5nICopa0NURm9udFNpemVBdHRyaWJ1dGVdKQor
ICAgICAgICAgICAgICAgIFttdXRhYmxlRGljdGlvbmFyeSBzZXRPYmplY3Q6c2l6ZSBmb3JLZXk6
KF9fYnJpZGdlIE5TU3RyaW5nICopa0NURm9udE9wdGljYWxTaXplQXR0cmlidXRlXTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICByZXR1cm4gW1BsYXRmb3JtRm9udERlc2NyaXB0b3IgZm9udERlc2Ny
aXB0b3JXaXRoRm9udEF0dHJpYnV0ZXM6bXV0YWJsZURpY3Rpb25hcnkuZ2V0KCldOworI2Vsc2UK
KyAgICByZXR1cm4gW1BsYXRmb3JtRm9udERlc2NyaXB0b3IgZm9udERlc2NyaXB0b3JXaXRoRm9u
dEF0dHJpYnV0ZXM6YXR0cmlidXRlc107CisjZW5kaWYKKworICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKKworICAgIHJldHVybiBuaWw7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApp
bmRleCBiM2YxMjIyNGE4NWQ0ODAyMmI4Mjc3MTk2ODM4OWZmNWUwOTYwODhkLi4zMjdlYTRlMjgz
YmU0MDY5NzJiYTMxM2NlYWRjM2MwMTE1MWZhYmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBA
IC0xNDIsNiArMTQyLDcgQEAgU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQogU2hhcmVkL0NvY29h
L0FyZ3VtZW50Q29kZXJzQ29jb2EubW0KIFNoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29j
b2EubW0KIFNoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLm1tCitTaGFy
ZWQvQ29jb2EvQ29yZVRleHRIZWxwZXJzLm1tCiBTaGFyZWQvQ29jb2EvRGF0YURldGVjdGlvblJl
c3VsdC5tbQogU2hhcmVkL0NvY29hL0luc2VydFRleHRPcHRpb25zLmNwcAogU2hhcmVkL0NvY29h
L0xvYWRQYXJhbWV0ZXJzQ29jb2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KaW5kZXggNjQyZjE2Njc1MmU2Yzk4MzU0NjAwMGZjMDQ2ZWFjZDU0NzAx
ZTVmMC4uMzI1ZWYwNzdkNTAxMzZlMTJhNjg0ZTM1MDU5YWY0ZjM3ZjkzNjExYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTM0LDYgKzM0LDcg
QEAKICNpbXBvcnQgIkFwcEtpdFNQSS5oIgogI2ltcG9ydCAiQXR0cmlidXRlZFN0cmluZy5oIgog
I2ltcG9ydCAiQ29sb3JTcGFjZURhdGEuaCIKKyNpbXBvcnQgIkNvcmVUZXh0SGVscGVycy5oIgog
I2ltcG9ydCAiRm9udEluZm8uaCIKICNpbXBvcnQgIkZ1bGxzY3JlZW5DbGllbnQuaCIKICNpbXBv
cnQgIkdlbmVyaWNDYWxsYmFjay5oIgpAQCAtMTE2LDYgKzExNyw3IEBACiAjaW1wb3J0IDxwYWwv
c3BpL21hYy9OU1ZpZXdTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TV2luZG93U1BJLmg+
CiAjaW1wb3J0IDxzeXMvc3RhdC5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMu
aD4KICNpbXBvcnQgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KICNpbXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CkBAIC0yODExLDExICsyODEz
LDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUZvbnRNYW5hZ2VySWZOZWVkZWQoKQogICAg
ICAgICBpZiAoZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkKICAgICAgICAgICAg
IHJldHVybjsKIAorICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKICAgICAg
ICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVEaWN0aW9uYXJ5ID0gKF9fYnJpZGdlIE5TRGljdGlv
bmFyeSAqKWZvbnRJbmZvLmZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5LmdldCgpOwogICAgICAgICBp
ZiAoIWF0dHJpYnV0ZURpY3Rpb25hcnkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
TlNGb250RGVzY3JpcHRvciAqZGVzY3JpcHRvciA9IFtOU0ZvbnREZXNjcmlwdG9yIGZvbnREZXNj
cmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzOmF0dHJpYnV0ZURpY3Rpb25hcnldOworICAgICAgICBQ
bGF0Zm9ybUZvbnREZXNjcmlwdG9yICpkZXNjcmlwdG9yID0gZm9udERlc2NyaXB0b3JXaXRoRm9u
dEF0dHJpYnV0ZXMoYXR0cmlidXRlRGljdGlvbmFyeSk7CiAgICAgICAgIGlmICghZGVzY3JpcHRv
cikKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjgyNCw2ICsyODI4LDggQEAgdm9pZCBXZWJW
aWV3SW1wbDo6dXBkYXRlRm9udE1hbmFnZXJJZk5lZWRlZCgpCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgW05TRm9udE1hbmFnZXIuc2hhcmVkRm9udE1hbmFnZXIgc2V0U2VsZWN0ZWRG
b250OmZvbnQgaXNNdWx0aXBsZTpzZWxlY3Rpb25IYXNNdWx0aXBsZUZvbnRzXTsKKyAgICAgICAg
CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICB9KTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmlu
ZGV4IGZkNjU3MzRkZWMyNjYwYzk1NjdkYTRkMjBkNWM5YTI4MzI3MDBiNjAuLjAzYjM5ODA2MTY4
NDY3YTdiNzA5MzJlY2I5NDE4OTJmMzEzYWEzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KQEAgLTI4LDEyICsyOCwxMiBA
QAogCiAjaWYgVVNFKEFQUEtJVCkKIAorI2ltcG9ydCAiQ29yZVRleHRIZWxwZXJzLmgiCiAjaW1w
b3J0ICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbE1hYy5o
IgogI2ltcG9ydCAiUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmgiCiAjaW1wb3J0ICJTdHJpbmdVdGls
aXRpZXMuaCIKICNpbXBvcnQgIldlYlBvcHVwSXRlbS5oIgotI2ltcG9ydCA8cGFsL3NwaS9jb2Nv
YS9Db3JlVGV4dFNQSS5oPgogI2ltcG9ydCA8cGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lmg+CiAj
aW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL1Byb2Nlc3NQ
cml2aWxlZ2UuaD4KQEAgLTEwNiwxNyArMTA2LDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1h
Yzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQK
ICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICBpZiAoZGF0YS5mb250SW5m
by5mb250QXR0cmlidXRlRGljdGlvbmFyeSkgewotICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxl
RGljdGlvbmFyeT4gbXV0YWJsZURpY3Rpb25hcnkgPSBhZG9wdE5TKFsoX19icmlkZ2UgTlNEaWN0
aW9uYXJ5ICopZGF0YS5mb250SW5mby5mb250QXR0cmlidXRlRGljdGlvbmFyeS5nZXQoKSBtdXRh
YmxlQ29weV0pOwotI2lmIEhBVkUoTlNGT05UX1dJVEhfT1BUSUNBTF9TSVpJTkdfQlVHKQotICAg
ICAgICBpZiAoaWQgb3B0aWNhbFNpemVBdHRyaWJ1dGUgPSBbbXV0YWJsZURpY3Rpb25hcnkgb2Jq
ZWN0Rm9yS2V5OihfX2JyaWRnZSBOU1N0cmluZyAqKWtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0
ZV0pIHsKLSAgICAgICAgICAgIGlmIChbb3B0aWNhbFNpemVBdHRyaWJ1dGUgaXNLaW5kT2ZDbGFz
czpbTlNTdHJpbmcgY2xhc3NdXSkgewotICAgICAgICAgICAgICAgIFttdXRhYmxlRGljdGlvbmFy
eSByZW1vdmVPYmplY3RGb3JLZXk6KF9fYnJpZGdlIE5TU3RyaW5nICopa0NURm9udE9wdGljYWxT
aXplQXR0cmlidXRlXTsKLSAgICAgICAgICAgICAgICBpZiAoTlNOdW1iZXIgKnNpemUgPSBbbXV0
YWJsZURpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OihfX2JyaWRnZSBOU1N0cmluZyAqKWtDVEZvbnRT
aXplQXR0cmlidXRlXSkKLSAgICAgICAgICAgICAgICAgICAgW211dGFibGVEaWN0aW9uYXJ5IHNl
dE9iamVjdDpzaXplIGZvcktleTooX19icmlkZ2UgTlNTdHJpbmcgKilrQ1RGb250T3B0aWNhbFNp
emVBdHRyaWJ1dGVdOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAg
TlNGb250RGVzY3JpcHRvciAqZm9udERlc2NyaXB0b3IgPSBbTlNGb250RGVzY3JpcHRvciBmb250
RGVzY3JpcHRvcldpdGhGb250QXR0cmlidXRlczptdXRhYmxlRGljdGlvbmFyeS5nZXQoKV07Cisg
ICAgICAgIFBsYXRmb3JtRm9udERlc2NyaXB0b3IgKmZvbnREZXNjcmlwdG9yID0gZm9udERlc2Ny
aXB0b3JXaXRoRm9udEF0dHJpYnV0ZXMoc3RhdGljX2Nhc3Q8TlNEaWN0aW9uYXJ5ICo+KGRhdGEu
Zm9udEluZm8uZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkuZ2V0KCkpKTsKICAgICAgICAgZm9udCA9
IFtOU0ZvbnQgZm9udFdpdGhEZXNjcmlwdG9yOmZvbnREZXNjcmlwdG9yIHNpemU6KChwYWdlU2Nh
bGVGYWN0b3IgIT0gMSkgPyBbZm9udERlc2NyaXB0b3IgcG9pbnRTaXplXSAqIHBhZ2VTY2FsZUZh
Y3RvciA6IDApXTsKICAgICB9IGVsc2UKICAgICAgICAgZm9udCA9IFtOU0ZvbnQgbWVudUZvbnRP
ZlNpemU6MF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBkYWFhMTdlYjZiY2IyNjY0ODY0NDg0NTVjYTYxZWJiNGUyZGM4ZDdlLi5mZWQw
ZjEwZGI0NzVjOWRlNzljNDU1NTU4Yzk2NmJjOWJiNTBiZGVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI0NzUsNiArMjQ3NSw4IEBA
CiAJCTFDMjA5MzVFMjIzMThDQjAwMDAyNkEzOSAvKiBOU0F0dHJpYnV0ZWRTdHJpbmcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTlNBdHRyaWJ1dGVkU3RyaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDMjA5MzVGMjIzMThDQjAwMDAyNkEzOSAvKiBOU0F0dHJpYnV0ZWRTdHJpbmcubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOU0F0dHJpYnV0ZWRTdHJpbmcubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDMjE4NDAxMjIzMzg3MjgwMEJBQzcwMCAvKiBOU0F0dHJpYnV0
ZWRTdHJpbmdQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TQXR0
cmlidXRlZFN0cmluZ1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM3
MzlFODUyMzQ3QkNGNjAwQzYyMUVDIC8qIENvcmVUZXh0SGVscGVycy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IENvcmVUZXh0SGVscGVycy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUM3MzlFODcyMzQ3QkQwRjAwQzYyMUVDIC8qIENvcmVUZXh0SGVscGVycy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDb3JlVGV4dEhlbHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUM3N0MxOTUxMjg4QTg3MjAwNkE3NDJGIC8qIFdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzg5MUQ2MjE5QjEyNEZGMDBCQTc5REQgLyog
V2ViSW5zcGVjdG9yVUkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViSW5zcGVjdG9yVUkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzg5MUQ2
MzE5QjEyNEZGMDBCQTc5REQgLyogV2ViSW5zcGVjdG9yVUkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViSW5zcGVjdG9yVUkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTY1MTgsNiArNjUyMCw4IEBACiAJCQkJMUE2OThGMTcxRTQ5MTAyMjAwNjRFODgxIC8q
IEF1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbSAqLywKIAkJCQkzN0JFQzRERjE5NDkxNDg2MDA4QjQy
ODYgLyogQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oICovLAogCQkJCTM3QkVDNERFMTk0
OTE0ODYwMDhCNDI4NiAvKiBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLm1tICovLAorCQkJ
CTFDNzM5RTg3MjM0N0JEMEYwMEM2MjFFQyAvKiBDb3JlVGV4dEhlbHBlcnMuaCAqLywKKwkJCQkx
QzczOUU4NTIzNDdCQ0Y2MDBDNjIxRUMgLyogQ29yZVRleHRIZWxwZXJzLm1tICovLAogCQkJCUM1
NUY5MTZDMUM1OTVFNDQwMDI5RTkyRCAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0LmggKi8sCiAJCQkJ
QzU1RjkxNkQxQzU5NUU0NDAwMjlFOTJEIC8qIERhdGFEZXRlY3Rpb25SZXN1bHQubW0gKi8sCiAJ
CQkJQ0U1NTBFMTMyMjgzNzQ0NDAwRDI4NzkxIC8qIEluc2VydFRleHRPcHRpb25zLmNwcCAqLywK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNmIzMzFlOWVkM2JiMDNjNDExMjdmMTM4OTNjOGE2M2UzNGI4OGEzLi5lY2NiMzEz
NzkwYWI3OWM5MmIxYjlkNzRjOTg5Y2I4MWEyMjNlZjcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTktMTAtMDQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29jb2FdIFJFR1JFU1NJT04gKHIyNDU2NzIpOiBDb250ZW50ZWRpdGFibGUgd2l0
aCBvcHRpY2FsIHNpemluZyBmcmVlemVzIFNhZmFyaQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2NvbnRlbnRlZGl0YWJsZS1mb250
LW9wdGljYWwtc2l6ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
Y29udGVudGVkaXRhYmxlLWZvbnQtb3B0aWNhbC1zaXplLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEw
LTA0ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBYm9ydFNp
Z25hbCBkb2VzIG5vdCBhbHdheXMgZW1pdCB0aGUgYWJvcnQgc2lnbmFsCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NvbnRlbnRlZGl0YWJsZS1mb250LW9wdGljYWwtc2l6ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NvbnRlbnRlZGl0YWJsZS1mb250
LW9wdGljYWwtc2l6ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGFiZjdhZjE1OTBjNTdlYjgz
MjNmZDQwYzIyNTFiOGM5OWM1MGFkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvY29udGVudGVkaXRhYmxlLWZvbnQtb3B0aWNhbC1zaXplLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIgQEAKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgY29udGVudGVkaXRhYmxl
IHdpdGggb3B0aWNhbCBzaXplIGRvZXNuJ3QgaGFuZyB0aGUgYnJvd3Nlci4gVGhlIHRlc3QgcGFz
c2VzIGlmIHRoZXJlIGlzIG5vIGhhbmcuCitMb3JlbSBpcHN1bWFiY2RlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NvbnRlbnRlZGl0YWJsZS1mb250LW9wdGljYWwtc2l6ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jb250ZW50ZWRpdGFibGUtZm9udC1vcHRpY2Fs
LXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGM3YTI4OTVkMGExZjk0MDY0OTViN2IwZmQyZDYwYjFm
OGQwZDI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jb250ZW50
ZWRpdGFibGUtZm9udC1vcHRpY2FsLXNpemUuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitkaXZ7CisgICAgdGV4dC1yZW5kZXJp
bmc6IG9wdGltaXplTGVnaWJpbGl0eTsKKyAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwg
c2Fucy1zZXJpZjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KK1RoaXMgdGVzdCBtYWtl
cyBzdXJlIHRoYXQgY29udGVudGVkaXRhYmxlIHdpdGggb3B0aWNhbCBzaXplIGRvZXNuJ3QgaGFu
ZyB0aGUgYnJvd3Nlci4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIG5vIGhhbmcuCis8ZGl2
IGlkPSJ0YXJnZXQiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+TG9yZW0gaXBzdW08L2Rpdj4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgbGV0IHRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKKyAgICBjb25zdCB4ID0gdGFyZ2V0Lm9mZnNldExl
ZnQgKyB0YXJnZXQub2Zmc2V0V2lkdGggLyAyOworICAgIGNvbnN0IHkgPSB0YXJnZXQub2Zmc2V0
VG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDI7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworICAgIGV2ZW50U2VuZGVyLmtleURvd24oImEiKTsKKyAgICBldmVudFNlbmRl
ci5rZXlEb3duKCJiIik7CisgICAgZXZlbnRTZW5kZXIua2V5RG93bigiYyIpOworICAgIGV2ZW50
U2VuZGVyLmtleURvd24oImQiKTsKKyAgICBldmVudFNlbmRlci5rZXlEb3duKCJlIik7Cit9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380256</attachid>
            <date>2019-10-04 15:03:06 -0700</date>
            <delta_ts>2019-10-10 19:01:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202262-20191004150305.patch</filename>
            <type>text/plain</type>
            <size>17050</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGExNzg4MDBmZWMzMzAzZDY4
YWJmMjMyOWI1N2U3NDMzODI0NTM3OWYuLjAxMGQ1MTlkMGMwMDgwNzM3NmRjZTAwODBkMmQ4MmY5
ODQ5MjY0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTktMTAtMDQgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJFR1JF
U1NJT04gKHIyNDU2NzIpOiBDb250ZW50ZWRpdGFibGUgd2l0aCBvcHRpY2FsIHNpemluZyBmcmVl
emVzIFNhZmFyaQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAyMjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgcjI1MDY0MCBkaWRuJ3QgZ28gZmFyIGVub3VnaC4gV2UgbmVlZCB0byBhcHBseSB0aGUgc2Ft
ZSBmaXggZXZlcnl3aGVyZSBbTlNGb250RGVzY3JpcHRvciBmb250RGVzY3JpcHRvcldpdGhGb250
QXR0cmlidXRlczpdIGlzIGNhbGxlZC4KKworICAgICAgICAqIFNoYXJlZC9Db2NvYS9Bcmd1bWVu
dENvZGVyc0NvY29hLm1tOgorICAgICAgICAoSVBDOjpkZWNvZGVGb250SW50ZXJuYWwpOgorICAg
ICAgICAqIFNoYXJlZC9Db2NvYS9Db3JlVGV4dEhlbHBlcnMuaDogQWRkZWQuCisgICAgICAgICog
U2hhcmVkL0NvY29hL0NvcmVUZXh0SGVscGVycy5tbTogQWRkZWQuCisgICAgICAgIChmb250RGVz
Y3JpcHRvcldpdGhGb250QXR0cmlidXRlcyk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVGb250TWFuYWdlcklmTmVlZGVkKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTktMTAtMDQgIEppZXdlbiBUYW4gIDxqaWV3
ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIEltcGxlbWVudCBfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsIFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvQXJndW1lbnRDb2RlcnNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L0FyZ3VtZW50Q29kZXJzQ29jb2EubW0KaW5kZXggYTFjZDg2M2FjM2VmNDA2NjhmYTU1ZWFjNmU4
OTdjMjVhMGVhMzFhZS4uZjc2Y2NkNjdiYWM0YjFjNTcyMzc3ZWU4MjdhZWE5MGE3Mjc1YWEyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXJndW1lbnRDb2RlcnNDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Bcmd1bWVudENvZGVyc0NvY29h
Lm1tCkBAIC0yOSw5ICsyOSwxMSBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0ICJB
cmd1bWVudENvZGVyc0NGLmgiCisjaW1wb3J0ICJDb3JlVGV4dEhlbHBlcnMuaCIKICNpbXBvcnQg
PENvcmVUZXh0L0NURm9udC5oPgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250RGVzY3JpcHRvci5o
PgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaD4KKyNpbXBvcnQg
PHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogCiAj
aWYgVVNFKEFQUEtJVCkKQEAgLTMyNyw5ICszMjksMTUgQEAgc3RhdGljIE9wdGlvbmFsPFJldGFp
blB0cjxpZD4+IGRlY29kZUZvbnRJbnRlcm5hbChEZWNvZGVyJiBkZWNvZGVyKQogICAgIFJldGFp
blB0cjxOU0RpY3Rpb25hcnk+IGZvbnRBdHRyaWJ1dGVzOwogICAgIGlmICghZGVjb2RlKGRlY29k
ZXIsIGZvbnRBdHRyaWJ1dGVzKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAK
KyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBQbGF0Zm9ybUZvbnREZXNj
cmlwdG9yICpmb250RGVzY3JpcHRvciA9IFtQbGF0Zm9ybUZvbnREZXNjcmlwdG9yIGZvbnREZXNj
cmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzOmZvbnRBdHRyaWJ1dGVzLmdldCgpXTsKKyAgICBQbGF0
Zm9ybUZvbnREZXNjcmlwdG9yICpmb250RGVzY3JpcHRvciA9IFdlYktpdDo6Zm9udERlc2NyaXB0
b3JXaXRoRm9udEF0dHJpYnV0ZXMoZm9udEF0dHJpYnV0ZXMuZ2V0KCkpOwogICAgIHJldHVybiB7
IFtQbGF0Zm9ybUZvbnQgZm9udFdpdGhEZXNjcmlwdG9yOmZvbnREZXNjcmlwdG9yIHNpemU6MF0g
fTsKKyAgICAKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisKKyAgICByZXR1cm4geyB9
OwogfQogCiAjcHJhZ21hIG1hcmsgLSBOU051bWJlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvQ29yZVRleHRIZWxwZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9Db3JlVGV4dEhlbHBlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OWU0ZjQ1ZmZmNjg2ZGVkMDJiNzY4
ODAwZWVmOWYxMTgwNTMyZjAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvQ29yZVRleHRIZWxwZXJzLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoQVBQS0lUKQorI2ltcG9ydCA8QXBwS2l0L0Fw
cEtpdC5oPgorI2Vsc2UKKyNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CisjZW5kaWYKKworI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworI2lmIFVTRShBUFBL
SVQpCit1c2luZyBQbGF0Zm9ybUZvbnREZXNjcmlwdG9yID0gTlNGb250RGVzY3JpcHRvcjsKKyNl
bHNlCit1c2luZyBQbGF0Zm9ybUZvbnREZXNjcmlwdG9yID0gVUlGb250RGVzY3JpcHRvcjsKKyNl
bmRpZgorCitQbGF0Zm9ybUZvbnREZXNjcmlwdG9yICpmb250RGVzY3JpcHRvcldpdGhGb250QXR0
cmlidXRlcyhOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMpOworCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db3JlVGV4dEhlbHBlcnMubW0gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9Db3JlVGV4dEhlbHBlcnMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI0YTY0ZGUyODgw
ZmJiM2NiYTEzM2QwYjI1OGM4NDFiZTBhMjBjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0NvcmVUZXh0SGVscGVycy5tbQpAQCAtMCwwICsxLDU3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJDb3JlVGV4dEhlbHBlcnMu
aCIKKworI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oPgorI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BsYXRmb3Jt
Rm9udERlc2NyaXB0b3IgKmZvbnREZXNjcmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzKE5TRGljdGlv
bmFyeSAqYXR0cmlidXRlcykKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisK
KyNpZiBIQVZFKE5TRk9OVF9XSVRIX09QVElDQUxfU0laSU5HX0JVRykKKyAgICBhdXRvIG11dGFi
bGVEaWN0aW9uYXJ5ID0gYWRvcHROUyhbYXR0cmlidXRlcyBtdXRhYmxlQ29weV0pOworICAgIGlm
IChpZCBvcHRpY2FsU2l6ZUF0dHJpYnV0ZSA9IFttdXRhYmxlRGljdGlvbmFyeSBvYmplY3RGb3JL
ZXk6KF9fYnJpZGdlIE5TU3RyaW5nICopa0NURm9udE9wdGljYWxTaXplQXR0cmlidXRlXSkgewor
ICAgICAgICBpZiAoW29wdGljYWxTaXplQXR0cmlidXRlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5n
IGNsYXNzXV0pIHsKKyAgICAgICAgICAgIFttdXRhYmxlRGljdGlvbmFyeSByZW1vdmVPYmplY3RG
b3JLZXk6KF9fYnJpZGdlIE5TU3RyaW5nICopa0NURm9udE9wdGljYWxTaXplQXR0cmlidXRlXTsK
KyAgICAgICAgICAgIGlmIChOU051bWJlciAqc2l6ZSA9IFttdXRhYmxlRGljdGlvbmFyeSBvYmpl
Y3RGb3JLZXk6KF9fYnJpZGdlIE5TU3RyaW5nICopa0NURm9udFNpemVBdHRyaWJ1dGVdKQorICAg
ICAgICAgICAgICAgIFttdXRhYmxlRGljdGlvbmFyeSBzZXRPYmplY3Q6c2l6ZSBmb3JLZXk6KF9f
YnJpZGdlIE5TU3RyaW5nICopa0NURm9udE9wdGljYWxTaXplQXR0cmlidXRlXTsKKyAgICAgICAg
fQorICAgIH0KKyAgICByZXR1cm4gW1BsYXRmb3JtRm9udERlc2NyaXB0b3IgZm9udERlc2NyaXB0
b3JXaXRoRm9udEF0dHJpYnV0ZXM6bXV0YWJsZURpY3Rpb25hcnkuZ2V0KCldOworI2Vsc2UKKyAg
ICByZXR1cm4gW1BsYXRmb3JtRm9udERlc2NyaXB0b3IgZm9udERlc2NyaXB0b3JXaXRoRm9udEF0
dHJpYnV0ZXM6YXR0cmlidXRlc107CisjZW5kaWYKKworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKKworICAgIHJldHVybiBuaWw7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2lvcy9XZWJBdXRvY29ycmVjdGlvbkRhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9pb3MvV2ViQXV0b2NvcnJlY3Rpb25EYXRhLm1tCmluZGV4IDVhN2U1N2FkZDFkM2NhY2Rl
ZTM5YWRhZjA3OWFhYzI1M2UwNGJiNTcuLjUzMjRmNjM4ODM0NjQ4NjVhM2FlMDU4YmE5NDc2OTYw
M2EyMzgzOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJBdXRvY29y
cmVjdGlvbkRhdGEubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYkF1dG9jb3Jy
ZWN0aW9uRGF0YS5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiRGVjb2Rlci5oIgogI2lt
cG9ydCAiRW5jb2Rlci5oIgogI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW1w
b3J0IDxVSUtpdC9VSUtpdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYjNmMTIyMjRhODVkNDgw
MjJiODI3NzE5NjgzODlmZjVlMDk2MDg4ZC4uMzI3ZWE0ZTI4M2JlNDA2OTcyYmEzMTNjZWFkYzNj
MDExNTFmYWJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMTQyLDYgKzE0Miw3IEBAIFNo
YXJlZC9Db2NvYS9BUElPYmplY3QubW0KIFNoYXJlZC9Db2NvYS9Bcmd1bWVudENvZGVyc0NvY29h
Lm1tCiBTaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tCiBTaGFyZWQvQ29jb2Ev
Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbQorU2hhcmVkL0NvY29hL0NvcmVUZXh0SGVs
cGVycy5tbQogU2hhcmVkL0NvY29hL0RhdGFEZXRlY3Rpb25SZXN1bHQubW0KIFNoYXJlZC9Db2Nv
YS9JbnNlcnRUZXh0T3B0aW9ucy5jcHAKIFNoYXJlZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29h
Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4
IDY0MmYxNjY3NTJlNmM5ODM1NDYwMDBmYzA0NmVhY2Q1NDcwMWU1ZjAuLjMyNWVmMDc3ZDUwMTM2
ZTEyYTY4NGUzNTA1OWFmNGYzN2Y5MzYxMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJBcHBLaXRT
UEkuaCIKICNpbXBvcnQgIkF0dHJpYnV0ZWRTdHJpbmcuaCIKICNpbXBvcnQgIkNvbG9yU3BhY2VE
YXRhLmgiCisjaW1wb3J0ICJDb3JlVGV4dEhlbHBlcnMuaCIKICNpbXBvcnQgIkZvbnRJbmZvLmgi
CiAjaW1wb3J0ICJGdWxsc2NyZWVuQ2xpZW50LmgiCiAjaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2su
aCIKQEAgLTExNiw2ICsxMTcsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNWaWV3U1BJLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1dpbmRvd1NQSS5oPgogI2ltcG9ydCA8c3lzL3N0YXQu
aD4KKyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvRmls
ZVN5c3RlbS5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYv
UHJvY2Vzc1ByaXZpbGVnZS5oPgpAQCAtMjgxMSwxMSArMjgxMywxMyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjp1cGRhdGVGb250TWFuYWdlcklmTmVlZGVkKCkKICAgICAgICAgaWYgKGVycm9yICE9IENh
bGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworCiAgICAgICAgIE5TRGljdGlvbmFyeSAqYXR0
cmlidXRlRGljdGlvbmFyeSA9IChfX2JyaWRnZSBOU0RpY3Rpb25hcnkgKilmb250SW5mby5mb250
QXR0cmlidXRlRGljdGlvbmFyeS5nZXQoKTsKICAgICAgICAgaWYgKCFhdHRyaWJ1dGVEaWN0aW9u
YXJ5KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIE5TRm9udERlc2NyaXB0b3IgKmRl
c2NyaXB0b3IgPSBbTlNGb250RGVzY3JpcHRvciBmb250RGVzY3JpcHRvcldpdGhGb250QXR0cmli
dXRlczphdHRyaWJ1dGVEaWN0aW9uYXJ5XTsKKyAgICAgICAgUGxhdGZvcm1Gb250RGVzY3JpcHRv
ciAqZGVzY3JpcHRvciA9IGZvbnREZXNjcmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzKGF0dHJpYnV0
ZURpY3Rpb25hcnkpOwogICAgICAgICBpZiAoIWRlc2NyaXB0b3IpCiAgICAgICAgICAgICByZXR1
cm47CiAKQEAgLTI4MjQsNiArMjgyOCw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUZvbnRN
YW5hZ2VySWZOZWVkZWQoKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIFtOU0ZvbnRN
YW5hZ2VyLnNoYXJlZEZvbnRNYW5hZ2VyIHNldFNlbGVjdGVkRm9udDpmb250IGlzTXVsdGlwbGU6
c2VsZWN0aW9uSGFzTXVsdGlwbGVGb250c107CisgICAgICAgIAorICAgICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQppbmRleCBmZDY1NzM0ZGVjMjY2MGM5
NTY3ZGE0ZDIwZDVjOWEyODMyNzAwYjYwLi4wM2IzOTgwNjE2ODQ2N2E3YjcwOTMyZWNiOTQxODky
ZjMxM2FhM2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9w
dXBNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBv
cHVwTWVudVByb3h5TWFjLm1tCkBAIC0yOCwxMiArMjgsMTIgQEAKIAogI2lmIFVTRShBUFBLSVQp
CiAKKyNpbXBvcnQgIkNvcmVUZXh0SGVscGVycy5oIgogI2ltcG9ydCAiTmF0aXZlV2ViTW91c2VF
dmVudC5oIgogI2ltcG9ydCAiUGFnZUNsaWVudEltcGxNYWMuaCIKICNpbXBvcnQgIlBsYXRmb3Jt
UG9wdXBNZW51RGF0YS5oIgogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJX
ZWJQb3B1cEl0ZW0uaCIKLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaD4KICNp
bXBvcnQgPHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2Jq
Q0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CkBAIC0xMDYs
MTcgKzEwNiw3IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29u
c3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOwogCiAgICAgaWYgKGRhdGEuZm9udEluZm8uZm9udEF0dHJpYnV0ZURpY3Rp
b25hcnkpIHsKLSAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IG11dGFibGVE
aWN0aW9uYXJ5ID0gYWRvcHROUyhbKF9fYnJpZGdlIE5TRGljdGlvbmFyeSAqKWRhdGEuZm9udElu
Zm8uZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkuZ2V0KCkgbXV0YWJsZUNvcHldKTsKLSNpZiBIQVZF
KE5TRk9OVF9XSVRIX09QVElDQUxfU0laSU5HX0JVRykKLSAgICAgICAgaWYgKGlkIG9wdGljYWxT
aXplQXR0cmlidXRlID0gW211dGFibGVEaWN0aW9uYXJ5IG9iamVjdEZvcktleTooX19icmlkZ2Ug
TlNTdHJpbmcgKilrQ1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGVdKSB7Ci0gICAgICAgICAgICBp
ZiAoW29wdGljYWxTaXplQXR0cmlidXRlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0p
IHsKLSAgICAgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgcmVtb3ZlT2JqZWN0Rm9yS2V5
OihfX2JyaWRnZSBOU1N0cmluZyAqKWtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZV07Ci0gICAg
ICAgICAgICAgICAgaWYgKE5TTnVtYmVyICpzaXplID0gW211dGFibGVEaWN0aW9uYXJ5IG9iamVj
dEZvcktleTooX19icmlkZ2UgTlNTdHJpbmcgKilrQ1RGb250U2l6ZUF0dHJpYnV0ZV0pCi0gICAg
ICAgICAgICAgICAgICAgIFttdXRhYmxlRGljdGlvbmFyeSBzZXRPYmplY3Q6c2l6ZSBmb3JLZXk6
KF9fYnJpZGdlIE5TU3RyaW5nICopa0NURm9udE9wdGljYWxTaXplQXR0cmlidXRlXTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotI2VuZGlmCi0gICAgICAgIE5TRm9udERlc2NyaXB0b3IgKmZv
bnREZXNjcmlwdG9yID0gW05TRm9udERlc2NyaXB0b3IgZm9udERlc2NyaXB0b3JXaXRoRm9udEF0
dHJpYnV0ZXM6bXV0YWJsZURpY3Rpb25hcnkuZ2V0KCldOworICAgICAgICBQbGF0Zm9ybUZvbnRE
ZXNjcmlwdG9yICpmb250RGVzY3JpcHRvciA9IGZvbnREZXNjcmlwdG9yV2l0aEZvbnRBdHRyaWJ1
dGVzKHN0YXRpY19jYXN0PE5TRGljdGlvbmFyeSAqPihkYXRhLmZvbnRJbmZvLmZvbnRBdHRyaWJ1
dGVEaWN0aW9uYXJ5LmdldCgpKSk7CiAgICAgICAgIGZvbnQgPSBbTlNGb250IGZvbnRXaXRoRGVz
Y3JpcHRvcjpmb250RGVzY3JpcHRvciBzaXplOigocGFnZVNjYWxlRmFjdG9yICE9IDEpID8gW2Zv
bnREZXNjcmlwdG9yIHBvaW50U2l6ZV0gKiBwYWdlU2NhbGVGYWN0b3IgOiAwKV07CiAgICAgfSBl
bHNlCiAgICAgICAgIGZvbnQgPSBbTlNGb250IG1lbnVGb250T2ZTaXplOjBdOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGFhYTE3ZWI2
YmNiMjY2NDg2NDQ4NDU1Y2E2MWViYjRlMmRjOGQ3ZS4uZmVkMGYxMGRiNDc1YzlkZTc5YzQ1NTU1
OGM5NjZiYzliYjUwYmRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yNDc1LDYgKzI0NzUsOCBAQAogCQkxQzIwOTM1RTIyMzE4Q0Iw
MDAwMjZBMzkgLyogTlNBdHRyaWJ1dGVkU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TQXR0cmli
dXRlZFN0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzIwOTM1RjIyMzE4
Q0IwMDAwMjZBMzkgLyogTlNBdHRyaWJ1dGVkU3RyaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTlNBdHRyaWJ1dGVkU3RyaW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzIxODQwMTIyMzM4NzI4MDBCQUM3MDAgLyogTlNBdHRyaWJ1dGVkU3RyaW5nUHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0F0dHJpYnV0ZWRTdHJpbmdQcml2YXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDNzM5RTg1MjM0N0JDRjYwMEM2MjFF
QyAvKiBDb3JlVGV4dEhlbHBlcnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb3JlVGV4dEhl
bHBlcnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDNzM5RTg3MjM0N0JEMEYw
MEM2MjFFQyAvKiBDb3JlVGV4dEhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29yZVRleHRIZWxw
ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNzdDMTk1MTI4OEE4NzIwMDZB
NzQyRiAvKiBXZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBXZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUM4OTFENjIxOUIxMjRGRjAwQkE3OUREIC8qIFdlYkluc3BlY3RvclVJLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkluc3BlY3RvclVJLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM4OTFENjMxOUIxMjRGRjAwQkE3OUREIC8q
IFdlYkluc3BlY3RvclVJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYklu
c3BlY3RvclVJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTE4LDYgKzY1MjAs
OCBAQAogCQkJCTFBNjk4RjE3MUU0OTEwMjIwMDY0RTg4MSAvKiBBdXhpbGlhcnlQcm9jZXNzQ29j
b2EubW0gKi8sCiAJCQkJMzdCRUM0REYxOTQ5MTQ4NjAwOEI0Mjg2IC8qIENvbXBsZXRpb25IYW5k
bGVyQ2FsbENoZWNrZXIuaCAqLywKIAkJCQkzN0JFQzRERTE5NDkxNDg2MDA4QjQyODYgLyogQ29t
cGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbSAqLywKKwkJCQkxQzczOUU4NzIzNDdCRDBGMDBD
NjIxRUMgLyogQ29yZVRleHRIZWxwZXJzLmggKi8sCisJCQkJMUM3MzlFODUyMzQ3QkNGNjAwQzYy
MUVDIC8qIENvcmVUZXh0SGVscGVycy5tbSAqLywKIAkJCQlDNTVGOTE2QzFDNTk1RTQ0MDAyOUU5
MkQgLyogRGF0YURldGVjdGlvblJlc3VsdC5oICovLAogCQkJCUM1NUY5MTZEMUM1OTVFNDQwMDI5
RTkyRCAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0Lm1tICovLAogCQkJCUNFNTUwRTEzMjI4Mzc0NDQw
MEQyODc5MSAvKiBJbnNlcnRUZXh0T3B0aW9ucy5jcHAgKi8sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjZiMzMxZTllZDNi
YjAzYzQxMTI3ZjEzODkzYzhhNjNlMzRiODhhMy4uZWNjYjMxMzc5MGFiNzljOTJiMWI5ZDc0Yzk4
OWNiODFhMjIzZWY3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTEwLTA0ICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBSRUdS
RVNTSU9OIChyMjQ1NjcyKTogQ29udGVudGVkaXRhYmxlIHdpdGggb3B0aWNhbCBzaXppbmcgZnJl
ZXplcyBTYWZhcmkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjI2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZmFzdC9mb3Jtcy9jb250ZW50ZWRpdGFibGUtZm9udC1vcHRpY2FsLXNpemUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2NvbnRlbnRlZGl0YWJsZS1mb250
LW9wdGljYWwtc2l6ZS5odG1sOiBBZGRlZC4KKwogMjAxOS0xMC0wNCAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWJvcnRTaWduYWwgZG9lcyBub3QgYWx3YXlz
IGVtaXQgdGhlIGFib3J0IHNpZ25hbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9jb250ZW50ZWRpdGFibGUtZm9udC1vcHRpY2FsLXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9jb250ZW50ZWRpdGFibGUtZm9udC1vcHRpY2FsLXNpemUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRhYmY3YWYxNTkwYzU3ZWI4MzIzZmQ0MGMyMjUxYjhjOTljNTBh
ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NvbnRlbnRlZGl0
YWJsZS1mb250LW9wdGljYWwtc2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitUaGlz
IHRlc3QgbWFrZXMgc3VyZSB0aGF0IGNvbnRlbnRlZGl0YWJsZSB3aXRoIG9wdGljYWwgc2l6ZSBk
b2Vzbid0IGhhbmcgdGhlIGJyb3dzZXIuIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBubyBo
YW5nLgorTG9yZW0gaXBzdW1hYmNkZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9jb250ZW50ZWRpdGFibGUtZm9udC1vcHRpY2FsLXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvY29udGVudGVkaXRhYmxlLWZvbnQtb3B0aWNhbC1zaXplLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjhjN2EyODk1ZDBhMWY5NDA2NDk1YjdiMGZkMmQ2MGIxZjhkMGQyNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY29udGVudGVkaXRhYmxlLWZvbnQtb3B0aWNh
bC1zaXplLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlPgorZGl2eworICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxp
dHk7CisgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7Cit9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IGNvbnRlbnRl
ZGl0YWJsZSB3aXRoIG9wdGljYWwgc2l6ZSBkb2Vzbid0IGhhbmcgdGhlIGJyb3dzZXIuIFRoZSB0
ZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBubyBoYW5nLgorPGRpdiBpZD0idGFyZ2V0IiBjb250ZW50
ZWRpdGFibGU9InRydWUiPkxvcmVtIGlwc3VtPC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgeworICAgIGxldCB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0Iik7CisgICAgY29uc3QgeCA9IHRhcmdldC5vZmZzZXRMZWZ0ICsgdGFyZ2V0Lm9mZnNldFdp
ZHRoIC8gMjsKKyAgICBjb25zdCB5ID0gdGFyZ2V0Lm9mZnNldFRvcCArIHRhcmdldC5vZmZzZXRI
ZWlnaHQgLyAyOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBldmVu
dFNlbmRlci5rZXlEb3duKCJhIik7CisgICAgZXZlbnRTZW5kZXIua2V5RG93bigiYiIpOworICAg
IGV2ZW50U2VuZGVyLmtleURvd24oImMiKTsKKyAgICBldmVudFNlbmRlci5rZXlEb3duKCJkIik7
CisgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZSIpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380713</attachid>
            <date>2019-10-10 19:01:24 -0700</date>
            <delta_ts>2019-10-14 10:24:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202262-20191010190124.patch</filename>
            <type>text/plain</type>
            <size>27036</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwOTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVlMWExMWI2NzEwZDZlYTRh
MzE4YWYyZDI3Yzk5OWY1N2M4MzUzOTguLmViOWIzNDhlM2RhNjZmYTBkZjhmYjFmNjRhNDcxNDEy
OGFjMWI2ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTktMTAtMTAgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJFR1JF
U1NJT04gKHIyNDU2NzIpOiBDb250ZW50ZWRpdGFibGUgd2l0aCBvcHRpY2FsIHNpemluZyBmcmVl
emVzIFNhZmFyaQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAyMjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgcjI1MDY0MCBkaWRuJ3QgZ28gZmFyIGVub3VnaC4gV2UgbmVlZCB0byBhcHBseSB0aGUgc2Ft
ZSBmaXggZXZlcnl3aGVyZSBbTlNGb250RGVzY3JpcHRvciBmb250RGVzY3JpcHRvcldpdGhGb250
QXR0cmlidXRlczpdIGlzIGNhbGxlZC4KKworICAgICAgICAqIFNoYXJlZC9Db2NvYS9Bcmd1bWVu
dENvZGVyc0NvY29hLm1tOgorICAgICAgICAoSVBDOjpkZWNvZGVGb250SW50ZXJuYWwpOgorICAg
ICAgICAqIFNoYXJlZC9Db2NvYS9Db3JlVGV4dEhlbHBlcnMuaDogQWRkZWQuCisgICAgICAgICog
U2hhcmVkL0NvY29hL0NvcmVUZXh0SGVscGVycy5tbTogQWRkZWQuCisgICAgICAgIChmb250RGVz
Y3JpcHRvcldpdGhGb250QXR0cmlidXRlcyk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVGb250TWFuYWdlcklmTmVlZGVkKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTktMTAtMTAgIFJvYiBCdWlzICA8cmJ1aXNA
aWdhbGlhLmNvbT4KIAogICAgICAgICBTcGVjdWxhdGl2ZUxvYWQgc2hvdWxkIHVzZSBDb21wbGV0
aW9uSGFuZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXJndW1l
bnRDb2RlcnNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FyZ3VtZW50Q29k
ZXJzQ29jb2EubW0KaW5kZXggYTFjZDg2M2FjM2VmNDA2NjhmYTU1ZWFjNmU4OTdjMjVhMGVhMzFh
ZS4uNTM0YTViYWE4Y2RhZmQxMDkxNGViYTVhMzI3ODcyZjJmZTYyMzg1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXJndW1lbnRDb2RlcnNDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Bcmd1bWVudENvZGVyc0NvY29hLm1tCkBAIC0yOSw5
ICsyOSwxMSBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0ICJBcmd1bWVudENvZGVy
c0NGLmgiCisjaW1wb3J0ICJDb3JlVGV4dEhlbHBlcnMuaCIKICNpbXBvcnQgPENvcmVUZXh0L0NU
Rm9udC5oPgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250RGVzY3JpcHRvci5oPgogI2ltcG9ydCA8
cGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja09i
akNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogCiAjaWYgVVNFKEFQUEtJ
VCkKQEAgLTMyOCw4ICszMzAsMTQgQEAgc3RhdGljIE9wdGlvbmFsPFJldGFpblB0cjxpZD4+IGRl
Y29kZUZvbnRJbnRlcm5hbChEZWNvZGVyJiBkZWNvZGVyKQogICAgIGlmICghZGVjb2RlKGRlY29k
ZXIsIGZvbnRBdHRyaWJ1dGVzKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAg
IFBsYXRmb3JtRm9udERlc2NyaXB0b3IgKmZvbnREZXNjcmlwdG9yID0gW1BsYXRmb3JtRm9udERl
c2NyaXB0b3IgZm9udERlc2NyaXB0b3JXaXRoRm9udEF0dHJpYnV0ZXM6Zm9udEF0dHJpYnV0ZXMu
Z2V0KCldOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKworICAgIFBsYXRmb3Jt
Rm9udERlc2NyaXB0b3IgKmZvbnREZXNjcmlwdG9yID0gV2ViS2l0Ojpmb250RGVzY3JpcHRvcldp
dGhGb250QXR0cmlidXRlcyhmb250QXR0cmlidXRlcy5nZXQoKSk7CiAgICAgcmV0dXJuIHsgW1Bs
YXRmb3JtRm9udCBmb250V2l0aERlc2NyaXB0b3I6Zm9udERlc2NyaXB0b3Igc2l6ZTowXSB9Owor
CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0dXJuIHsgfTsKIH0KIAog
I3ByYWdtYSBtYXJrIC0gTlNOdW1iZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvY29hL0NvcmVUZXh0SGVscGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29y
ZVRleHRIZWxwZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODllNGY0NWZmZjY4NmRlZDAyYjc2ODgwMGVlZjlm
MTE4MDUzMmYwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L0NvcmVUZXh0SGVscGVycy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgVVNFKEFQUEtJVCkKKyNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4K
KyNlbHNlCisjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgorI2VuZGlmCisKKyNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBVU0UoQVBQS0lUKQordXNp
bmcgUGxhdGZvcm1Gb250RGVzY3JpcHRvciA9IE5TRm9udERlc2NyaXB0b3I7CisjZWxzZQordXNp
bmcgUGxhdGZvcm1Gb250RGVzY3JpcHRvciA9IFVJRm9udERlc2NyaXB0b3I7CisjZW5kaWYKKwor
UGxhdGZvcm1Gb250RGVzY3JpcHRvciAqZm9udERlc2NyaXB0b3JXaXRoRm9udEF0dHJpYnV0ZXMo
TlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzKTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvQ29yZVRleHRIZWxwZXJzLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvQ29yZVRleHRIZWxwZXJzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyNGE2NGRlMjg4MGZiYjNjYmEx
MzNkMGIyNThjODQxYmUwYTIwY2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9Db3JlVGV4dEhlbHBlcnMubW0KQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ29yZVRleHRIZWxwZXJzLmgiCisKKyNp
bXBvcnQgPHBhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja09i
akNFeGNlcHRpb25zLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQbGF0Zm9ybUZvbnREZXNj
cmlwdG9yICpmb250RGVzY3JpcHRvcldpdGhGb250QXR0cmlidXRlcyhOU0RpY3Rpb25hcnkgKmF0
dHJpYnV0ZXMpCit7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworCisjaWYgSEFW
RShOU0ZPTlRfV0lUSF9PUFRJQ0FMX1NJWklOR19CVUcpCisgICAgYXV0byBtdXRhYmxlRGljdGlv
bmFyeSA9IGFkb3B0TlMoW2F0dHJpYnV0ZXMgbXV0YWJsZUNvcHldKTsKKyAgICBpZiAoaWQgb3B0
aWNhbFNpemVBdHRyaWJ1dGUgPSBbbXV0YWJsZURpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OihfX2Jy
aWRnZSBOU1N0cmluZyAqKWtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZV0pIHsKKyAgICAgICAg
aWYgKFtvcHRpY2FsU2l6ZUF0dHJpYnV0ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11d
KSB7CisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgcmVtb3ZlT2JqZWN0Rm9yS2V5Oihf
X2JyaWRnZSBOU1N0cmluZyAqKWtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZV07CisgICAgICAg
ICAgICBpZiAoTlNOdW1iZXIgKnNpemUgPSBbbXV0YWJsZURpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5
OihfX2JyaWRnZSBOU1N0cmluZyAqKWtDVEZvbnRTaXplQXR0cmlidXRlXSkKKyAgICAgICAgICAg
ICAgICBbbXV0YWJsZURpY3Rpb25hcnkgc2V0T2JqZWN0OnNpemUgZm9yS2V5OihfX2JyaWRnZSBO
U1N0cmluZyAqKWtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZV07CisgICAgICAgIH0KKyAgICB9
CisgICAgcmV0dXJuIFtQbGF0Zm9ybUZvbnREZXNjcmlwdG9yIGZvbnREZXNjcmlwdG9yV2l0aEZv
bnRBdHRyaWJ1dGVzOm11dGFibGVEaWN0aW9uYXJ5LmdldCgpXTsKKyNlbHNlCisgICAgcmV0dXJu
IFtQbGF0Zm9ybUZvbnREZXNjcmlwdG9yIGZvbnREZXNjcmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVz
OmF0dHJpYnV0ZXNdOworI2VuZGlmCisKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisK
KyAgICByZXR1cm4gbmlsOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9pb3MvV2ViQXV0b2NvcnJlY3Rpb25EYXRhLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L1dlYkF1dG9jb3JyZWN0aW9uRGF0YS5tbQppbmRleCA1YTdlNTdhZGQxZDNjYWNkZWUzOWFkYWYw
NzlhYWMyNTNlMDRiYjU3Li41MzI0ZjYzODgzNDY0ODY1YTNhZTA1OGJhOTQ3Njk2MDNhMjM4Mzk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViQXV0b2NvcnJlY3Rpb25E
YXRhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJBdXRvY29ycmVjdGlvbkRh
dGEubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkRlY29kZXIuaCIKICNpbXBvcnQgIkVu
Y29kZXIuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2ltcG9ydCA8VUlL
aXQvVUlLaXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGIzZjEyMjI0YTg1ZDQ4MDIyYjgyNzcx
OTY4Mzg5ZmY1ZTA5NjA4OGQuLjMyN2VhNGUyODNiZTQwNjk3MmJhMzEzY2VhZGMzYzAxMTUxZmFi
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE0Miw2ICsxNDIsNyBAQCBTaGFyZWQvQ29j
b2EvQVBJT2JqZWN0Lm1tCiBTaGFyZWQvQ29jb2EvQXJndW1lbnRDb2RlcnNDb2NvYS5tbQogU2hh
cmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQogU2hhcmVkL0NvY29hL0NvbXBsZXRp
b25IYW5kbGVyQ2FsbENoZWNrZXIubW0KK1NoYXJlZC9Db2NvYS9Db3JlVGV4dEhlbHBlcnMubW0K
IFNoYXJlZC9Db2NvYS9EYXRhRGV0ZWN0aW9uUmVzdWx0Lm1tCiBTaGFyZWQvQ29jb2EvSW5zZXJ0
VGV4dE9wdGlvbnMuY3BwCiBTaGFyZWQvQ29jb2EvTG9hZFBhcmFtZXRlcnNDb2NvYS5tbQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCAxMjYyNzE3
NTY2ODBmYzgzYjliZTUyMTg2NTJkMmZiNTVmOWFmYmU3Li5lMjc1YjNjMTVkMGY2MDRjMzhhNWNk
ODU5OTNmYWEyY2E1ZGM4MTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiQXBwS2l0U1BJLmgiCiAj
aW1wb3J0ICJBdHRyaWJ1dGVkU3RyaW5nLmgiCiAjaW1wb3J0ICJDb2xvclNwYWNlRGF0YS5oIgor
I2ltcG9ydCAiQ29yZVRleHRIZWxwZXJzLmgiCiAjaW1wb3J0ICJGb250SW5mby5oIgogI2ltcG9y
dCAiRnVsbHNjcmVlbkNsaWVudC5oIgogI2ltcG9ydCAiR2VuZXJpY0NhbGxiYWNrLmgiCkBAIC0x
MTcsNiArMTE4LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TVmlld1NQSS5oPgogI2ltcG9y
dCA8cGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaD4KICNpbXBvcnQgPHN5cy9zdGF0Lmg+CisjaW1w
b3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0u
aD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1Byb2Nlc3NQ
cml2aWxlZ2UuaD4KQEAgLTExMTksNyArMTEyMSw3IEBAIHN0YXRpYyBOU1RleHRBbGlnbm1lbnQg
bnNUZXh0QWxpZ25tZW50RnJvbVRleHRBbGlnbm1lbnQoVGV4dEFsaWdubWVudCB0ZXh0QWxpZ25t
CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQotICAg
IAorCiAgICAgcmV0dXJuIG5zVGV4dEFsaWdubWVudDsKIH0KIApAQCAtMTU5OSw5ICsxNjAxLDkg
QEAgYm9vbCBXZWJWaWV3SW1wbDo6cmVzaWduRmlyc3RSZXNwb25kZXIoKQogICAgICAgICBtX3Bh
Z2UtPmNsZWFyU2VsZWN0aW9uKCk7CiAKICAgICBtX3BhZ2UtPmFjdGl2aXR5U3RhdGVEaWRDaGFu
Z2UoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNGb2N1c2VkKTsKLSAgICAKKwogICAgIG1faW5S
ZXNpZ25GaXJzdFJlc3BvbmRlciA9IGZhbHNlOwotICAgIAorCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKQEAgLTE3NDgsNyArMTc1MCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVdpbmRvd0Fu
ZFZpZXdGcmFtZXMoKQogICAgICAgICBpZiAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlQb3NpdGlvbiA9IFtb
d2Vha1RoaXMtPm1fdmlldyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmls
aXR5UG9zaXRpb25BdHRyaWJ1dGVdIHBvaW50VmFsdWVdOwogICAgICAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0gICAgICAgIAorCiAgICAgICAgIHdlYWtUaGlzLT5t
X3BhZ2UtPndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHZpZXdGcmFtZUluV2luZG93Q29vcmRp
bmF0ZXMsIGFjY2Vzc2liaWxpdHlQb3NpdGlvbik7CiAgICAgfSk7CiB9CkBAIC0yMzIxLDcgKzIz
MjMsNyBAQCBDb2xvclNwYWNlRGF0YSBXZWJWaWV3SW1wbDo6Y29sb3JTcGFjZSgpCiAKICAgICBD
b2xvclNwYWNlRGF0YSBjb2xvclNwYWNlRGF0YTsKICAgICBjb2xvclNwYWNlRGF0YS5jZ0NvbG9y
U3BhY2UgPSBbbV9jb2xvclNwYWNlIENHQ29sb3JTcGFjZV07Ci0gICAgCisKICAgICByZXR1cm4g
Y29sb3JTcGFjZURhdGE7CiB9CiAKQEAgLTI1NjgsNyArMjU3MCw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBwbHVnaW5IYXNGb2N1c0Fu
ZFdpbmRvd0hhCiAgICAgICAgIC8vIFRoZSBpbnB1dCBzb3VyY2UgY2hhbmdlZDsgZGlzY2FyZCBh
bnkgZW50ZXJlZCB0ZXh0LgogICAgICAgICBbW1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlciBz
aGFyZWRUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyXSB1bm1hcmtUZXh0XTsKICAgICB9Ci0gICAg
CisKICAgICAvLyBUaGlzIHdpbGwgZm9yY2UgdGhlIGN1cnJlbnQgaW5wdXQgY29udGV4dCB0byBi
ZSB1cGRhdGVkIHRvIGl0cyBjb3JyZWN0IHZhbHVlLgogICAgIFtOU0FwcCB1cGRhdGVXaW5kb3dz
XTsKIH0KQEAgLTI4MTgsMTggKzI4MjAsMTggQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2hvd1NoYXJl
U2hlZXQoY29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYgZGF0YSwgV1QKIHsK
ICAgICBpZiAoX3NoYXJlU2hlZXQpCiAgICAgICAgIFtfc2hhcmVTaGVldCBkaXNtaXNzXTsKLSAg
ICAKKwogICAgIEFTU0VSVChbdmlldyByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNoYXJl
U2hlZXREaWREaXNtaXNzOildKTsKICAgICBfc2hhcmVTaGVldCA9IGFkb3B0TlMoW1tXS1NoYXJl
U2hlZXQgYWxsb2NdIGluaXRXaXRoVmlldzp2aWV3XSk7CiAgICAgW19zaGFyZVNoZWV0IHNldERl
bGVnYXRlOnZpZXddOwotICAgIAorCiAgICAgW19zaGFyZVNoZWV0IHByZXNlbnRXaXRoUGFyYW1l
dGVyczpkYXRhIGluUmVjdDpXVEY6Om51bGxvcHQgY29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildOwogfQotICAgIAorCiB2b2lkIFdlYlZpZXdJbXBsOjpzaGFyZVNo
ZWV0RGlkRGlzbWlzcyhXS1NoYXJlU2hlZXQgKnNoYXJlU2hlZXQpCiB7CiAgICAgQVNTRVJUKF9z
aGFyZVNoZWV0ID09IHNoYXJlU2hlZXQpOwotICAgIAorCiAgICAgW19zaGFyZVNoZWV0IHNldERl
bGVnYXRlOm5pbF07CiAgICAgX3NoYXJlU2hlZXQgPSBuaWw7CiB9CkBAIC0yODUzLDExICsyODU1
LDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUZvbnRNYW5hZ2VySWZOZWVkZWQoKQogICAg
ICAgICBpZiAoZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkKICAgICAgICAgICAg
IHJldHVybjsKIAorICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKICAgICAg
ICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVEaWN0aW9uYXJ5ID0gKF9fYnJpZGdlIE5TRGljdGlv
bmFyeSAqKWZvbnRJbmZvLmZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5LmdldCgpOwogICAgICAgICBp
ZiAoIWF0dHJpYnV0ZURpY3Rpb25hcnkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
TlNGb250RGVzY3JpcHRvciAqZGVzY3JpcHRvciA9IFtOU0ZvbnREZXNjcmlwdG9yIGZvbnREZXNj
cmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzOmF0dHJpYnV0ZURpY3Rpb25hcnldOworICAgICAgICBQ
bGF0Zm9ybUZvbnREZXNjcmlwdG9yICpkZXNjcmlwdG9yID0gZm9udERlc2NyaXB0b3JXaXRoRm9u
dEF0dHJpYnV0ZXMoYXR0cmlidXRlRGljdGlvbmFyeSk7CiAgICAgICAgIGlmICghZGVzY3JpcHRv
cikKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjg2Niw2ICsyODcwLDggQEAgdm9pZCBXZWJW
aWV3SW1wbDo6dXBkYXRlRm9udE1hbmFnZXJJZk5lZWRlZCgpCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgW05TRm9udE1hbmFnZXIuc2hhcmVkRm9udE1hbmFnZXIgc2V0U2VsZWN0ZWRG
b250OmZvbnQgaXNNdWx0aXBsZTpzZWxlY3Rpb25IYXNNdWx0aXBsZUZvbnRzXTsKKworICAgICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgfSk7CiB9CiAKQEAgLTMyMzgsNyArMzI0
NCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldEF1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJs
ZWQoYm9vbCBmbGFnKQogewogICAgIGlmIChzdGF0aWNfY2FzdDxib29sPihmbGFnKSA9PSBUZXh0
Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQpCiAgICAg
ICAgIHJldHVybjsKLSAgICAKKwogICAgIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNUZXh0UmVw
bGFjZW1lbnRFbmFibGVkKGZsYWcpOwogICAgIG1fcGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRD
aGVja2VyU3RhdGUoKTsKIH0KQEAgLTM2NjEsMTQgKzM2NjcsMTQgQEAgaWQgV2ViVmlld0ltcGw6
OmFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZShOU1N0cmluZyAqYXR0cmlidXRlLCBpZCBwYXJh
bWV0ZXIpCiAgICAgICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0
b3IoW21fdmlldyBzdXBlcnZpZXddKTsKICAgICAgICAgICAgIGlmIChbYXR0cmlidXRlIGlzRXF1
YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlFbmFibGVkQXR0cmlidXRlXSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gQFlFUzsKLSAgICAKKwogICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0
cmluZzpAIkFYQ29udmVydFJlbGF0aXZlRnJhbWUiXSkgewogICAgICAgICBpZiAoW3BhcmFtZXRl
ciBpc0tpbmRPZkNsYXNzOltOU1ZhbHVlIGNsYXNzXV0pIHsKICAgICAgICAgICAgIE5TUmVjdCBy
ZWN0ID0gWyhOU1ZhbHVlICopcGFyYW1ldGVyIHJlY3RWYWx1ZV07CiAgICAgICAgICAgICByZXR1
cm4gW05TVmFsdWUgdmFsdWVXaXRoUmVjdDptX3BhZ2VDbGllbnQtPnJvb3RWaWV3VG9TY3JlZW4o
V2ViQ29yZTo6SW50UmVjdChyZWN0KSldOwogICAgICAgICB9CiAgICAgfQotICAgIAorCiAgICAg
cmV0dXJuIFttX3ZpZXcgX3dlYl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTphdHRy
aWJ1dGVdOwogfQogCkBAIC0zNzgwLDcgKzM3ODYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp0b29s
VGlwQ2hhbmdlZChjb25zdCBTdHJpbmcmIG9sZFRvb2xUaXAsIGNvbnN0IFN0cmluZyYgbmV3VG9v
bAogewogICAgIGlmICghb2xkVG9vbFRpcC5pc051bGwoKSkKICAgICAgICAgc2VuZFRvb2xUaXBN
b3VzZUV4aXRlZCgpOwotICAgIAorCiAgICAgaWYgKCFuZXdUb29sVGlwLmlzRW1wdHkoKSkgewog
ICAgICAgICAvLyBTZWUgcmFkYXIgMzUwMDIxNyBmb3Igd2h5IHdlIHJlbW92ZSBhbGwgdG9vbHRp
cHMgcmF0aGVyIHRoYW4ganVzdCB0aGUgc2luZ2xlIG9uZSB3ZSBjcmVhdGVkLgogICAgICAgICBb
bV92aWV3IHJlbW92ZUFsbFRvb2xUaXBzXTsKQEAgLTM5NzEsNyArMzk3Nyw3IEBAIGJvb2wgV2Vi
Vmlld0ltcGw6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKGlkIDxOU0RyYWdnaW5nSW5mbz4gZHJhZ2dp
bmdJbmZvKQogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IHNhbmRib3hFeHRlbnNp
b25Gb3JVcGxvYWQ7CiAKICAgICBpZiAoIVt0eXBlcyBjb250YWluc09iamVjdDpQYXN0ZWJvYXJk
VHlwZXM6OldlYkFyY2hpdmVQYm9hcmRUeXBlXSAmJiBbdHlwZXMgY29udGFpbnNPYmplY3Q6V2Vi
Q29yZTo6bGVnYWN5RmlsZXNQcm9taXNlUGFzdGVib2FyZFR5cGUoKV0pIHsKLSAgICAgICAgCisK
ICAgICAgICAgLy8gRklYTUU6IGxlZ2FjeUZpbGVzUHJvbWlzZVBhc3RlYm9hcmRUeXBlKCkgY29u
dGFpbnMgVVRJcywgbm90IHBhdGggbmFtZXMuIEFsc28sIGl0J3Mgbm90CiAgICAgICAgIC8vIGd1
YXJhbnRlZWQgdGhhdCB0aGUgY291bnQgb2YgVVRJcyBlcXVhbHMgdGhlIGNvdW50IG9mIGZpbGVz
LCBzaW5jZSBzb21lIGNsaWVudHMgb25seSB3cml0ZQogICAgICAgICAvLyB1bmlxdWUgVVRJcy4K
QEAgLTQwMjUsOSArNDAzMSw5IEBAIGJvb2wgV2ViVmlld0ltcGw6OnBlcmZvcm1EcmFnT3BlcmF0
aW9uKGlkIDxOU0RyYWdnaW5nSW5mbz4gZHJhZ2dpbmdJbmZvKQogICAgICAgICAgICAgZGVsZXRl
IGRyYWdEYXRhOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgICAg
IAorCiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVOYW1lczsKLSAgICAgICAgCisKICAgICAg
ICAgZm9yIChOU1N0cmluZyAqZmlsZSBpbiBmaWxlcykKICAgICAgICAgICAgIGZpbGVOYW1lcy5h
cHBlbmQoZmlsZSk7CiAgICAgICAgIG1fcGFnZS0+Y3JlYXRlU2FuZGJveEV4dGVuc2lvbnNJZk5l
ZWRlZChmaWxlTmFtZXMsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIHNhbmRib3hFeHRlbnNpb25G
b3JVcGxvYWQpOwpAQCAtNDI0OCwxNCArNDI1NCwxNCBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhX
aXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIC8vICJGaXgiIHRo
ZSBmaWxlbmFtZSBvZiB0aGUgcGF0aC4KICAgICBOU1N0cmluZyAqZmlsZW5hbWUgPSBmaWxlbmFt
ZUJ5Rml4aW5nSWxsZWdhbENoYXJhY3RlcnMoW3BhdGggbGFzdFBhdGhDb21wb25lbnRdKTsKICAg
ICBwYXRoID0gW1twYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gc3RyaW5n
QnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OmZpbGVuYW1lXTsKLSAgICAKKwogICAgIGlmIChmaWxl
RXhpc3RzKHBhdGgpKSB7CiAgICAgICAgIC8vIERvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBmaWxl
IGJ5IGFwcGVuZGluZyAiLW4iLCAiLW4uZXh0IiBvciAiLW4uZXh0LmV4dCIgdG8gdGhlIGZpbGVu
YW1lLgogICAgICAgICBOU1N0cmluZyAqZXh0ZW5zaW9ucyA9IG5pbDsKICAgICAgICAgTlNTdHJp
bmcgKnBhdGhXaXRob3V0RXh0ZW5zaW9uczsKICAgICAgICAgTlNTdHJpbmcgKmxhc3RQYXRoQ29t
cG9uZW50ID0gW3BhdGggbGFzdFBhdGhDb21wb25lbnRdOwogICAgICAgICBOU1JhbmdlIHBlcmlv
ZFJhbmdlID0gW2xhc3RQYXRoQ29tcG9uZW50IHJhbmdlT2ZTdHJpbmc6QCIuIl07Ci0gICAgICAg
IAorCiAgICAgICAgIGlmIChwZXJpb2RSYW5nZS5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKSB7CiAg
ICAgICAgICAgICBwYXRoV2l0aG91dEV4dGVuc2lvbnMgPSBwYXRoOwogICAgICAgICB9IGVsc2Ug
ewpAQCAtNDI2Myw3ICs0MjY5LDcgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZp
bGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICAgICAgICAgIGxhc3RQYXRoQ29tcG9u
ZW50ID0gW2xhc3RQYXRoQ29tcG9uZW50IHN1YnN0cmluZ1RvSW5kZXg6cGVyaW9kUmFuZ2UubG9j
YXRpb25dOwogICAgICAgICAgICAgcGF0aFdpdGhvdXRFeHRlbnNpb25zID0gW1twYXRoIHN0cmlu
Z0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9u
ZW50Omxhc3RQYXRoQ29tcG9uZW50XTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAxOyA7IGkrKykgewogICAgICAgICAgICAgTlNTdHJpbmcgKnBhdGhX
aXRoQXBwZW5kZWROdW1iZXIgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVALSVkIiwg
cGF0aFdpdGhvdXRFeHRlbnNpb25zLCBpXTsKICAgICAgICAgICAgIHBhdGggPSBbZXh0ZW5zaW9u
cyBsZW5ndGhdID8gW3BhdGhXaXRoQXBwZW5kZWROdW1iZXIgc3RyaW5nQnlBcHBlbmRpbmdQYXRo
RXh0ZW5zaW9uOmV4dGVuc2lvbnNdIDogcGF0aFdpdGhBcHBlbmRlZE51bWJlcjsKQEAgLTQyNzEs
NyArNDI3Nyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBh
dGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICB9Ci0gICAgCisKICAgICByZXR1cm4gcGF0aDsKIH0KIApAQCAtNDI3OSwyMCArNDI4NSwyMCBA
QCBOU0FycmF5ICpXZWJWaWV3SW1wbDo6bmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0
aW5hdGlvbihOU1VSTCAqZHJvcERlc3RpbgogewogICAgIFJldGFpblB0cjxOU0ZpbGVXcmFwcGVy
PiB3cmFwcGVyOwogICAgIFJldGFpblB0cjxOU0RhdGE+IGRhdGE7Ci0gICAgCisKICAgICBpZiAo
bV9wcm9taXNlZEltYWdlKSB7CiAgICAgICAgIGRhdGEgPSBtX3Byb21pc2VkSW1hZ2UtPmRhdGEo
KS0+Y3JlYXRlTlNEYXRhKCk7CiAgICAgICAgIHdyYXBwZXIgPSBhZG9wdE5TKFtbTlNGaWxlV3Jh
cHBlciBhbGxvY10gaW5pdFJlZ3VsYXJGaWxlV2l0aENvbnRlbnRzOmRhdGEuZ2V0KCldKTsKICAg
ICB9IGVsc2UKICAgICAgICAgd3JhcHBlciA9IGFkb3B0TlMoW1tOU0ZpbGVXcmFwcGVyIGFsbG9j
XSBpbml0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzptX3Byb21pc2VkVVJMXSBvcHRpb25z
Ok5TRmlsZVdyYXBwZXJSZWFkaW5nSW1tZWRpYXRlIGVycm9yOm5pbF0pOwotICAgIAorCiAgICAg
aWYgKHdyYXBwZXIpCiAgICAgICAgIFt3cmFwcGVyIHNldFByZWZlcnJlZEZpbGVuYW1lOm1fcHJv
bWlzZWRGaWxlbmFtZV07CiAgICAgZWxzZSB7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRv
IGNyZWF0ZSBpbWFnZSBmaWxlLiIpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KLSAgICAK
KwogICAgIC8vIEZJWE1FOiBSZXBvcnQgYW4gZXJyb3IgaWYgd2UgZmFpbCB0byBjcmVhdGUgYSBm
aWxlLgogICAgIE5TU3RyaW5nICpwYXRoID0gW1tkcm9wRGVzdGluYXRpb24gcGF0aF0gc3RyaW5n
QnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50Olt3cmFwcGVyIHByZWZlcnJlZEZpbGVuYW1lXV07CiAg
ICAgcGF0aCA9IHBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKHBhdGgpOwpAQCAtNDMwMSw3
ICs0MzA3LDcgQEAgTlNBcnJheSAqV2ViVmlld0ltcGw6Om5hbWVzT2ZQcm9taXNlZEZpbGVzRHJv
cHBlZEF0RGVzdGluYXRpb24oTlNVUkwgKmRyb3BEZXN0aW4KIAogICAgIGlmICghbV9wcm9taXNl
ZFVSTC5pc0VtcHR5KCkpCiAgICAgICAgIEZpbGVTeXN0ZW06OnNldE1ldGFkYXRhVVJMKFN0cmlu
ZyhwYXRoKSwgbV9wcm9taXNlZFVSTCk7Ci0gICAgCisKICAgICByZXR1cm4gW05TQXJyYXkgYXJy
YXlXaXRoT2JqZWN0OltwYXRoIGxhc3RQYXRoQ29tcG9uZW50XV07CiB9CiAKQEAgLTQ0OTgsNyAr
NDUwNCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OnRyeVRvU3dpcGVXaXRoRXZlbnQoTlNFdmVudCAq
ZXZlbnQsIGJvb2wgaWdub3JpbmdQaW5uZWRTdGF0ZSkKICAgICBib29sIGhhbmRsZWRFdmVudCA9
IGdlc3R1cmVDb250cm9sbGVyLmhhbmRsZVNjcm9sbFdoZWVsRXZlbnQoZXZlbnQpOwogCiAgICAg
Z2VzdHVyZUNvbnRyb2xsZXIuc2V0U2hvdWxkSWdub3JlUGlubmVkU3RhdGUod2FzSWdub3JpbmdQ
aW5uZWRTdGF0ZSk7Ci0gICAgCisKICAgICByZXR1cm4gaGFuZGxlZEV2ZW50OwogfQogCkBAIC00
NjQxLDcgKzQ2NDcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkb25lV2l0aEtleUV2ZW50KE5TRXZl
bnQgKmV2ZW50LCBib29sIGV2ZW50V2FzSGFuZGxlZCkKICAgICBtX2tleURvd25FdmVudEJlaW5n
UmVzZW50ID0gZXZlbnQ7CiAgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6ZXZlbnRdOwogICAg
IFtOU0FwcCBzZW5kRXZlbnQ6ZXZlbnRdOwotICAgIAorCiAgICAgbV9rZXlEb3duRXZlbnRCZWlu
Z1Jlc2VudCA9IG51bGxwdHI7CiB9CiAKQEAgLTQ2ODYsNyArNDY5Miw3IEBAIHN0YXRpYyBWZWN0
b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+IGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0
cmlidXRlZFN0cmluCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFdl
YkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lKHJhbmdlLmxvY2F0aW9uLCBOU01heFJhbmdlKHJh
bmdlKSwgY29tcG9zaXRpb25VbmRlcmxpbmVDb2xvciwgY29sb3IsIHN0eWxlLmludFZhbHVlID4g
MSkpOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGkgPSByYW5nZS5sb2NhdGlvbiAr
IHJhbmdlLmxlbmd0aDsKICAgICB9CiAKQEAgLTUxMDYsNyArNTExMiw3IEBAIGJvb2wgV2ViVmll
d0ltcGw6OnBlcmZvcm1LZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICB9KTsK
ICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9Ci0gICAgCisKICAgICByZXR1cm4gW21fdmlldyBf
d2ViX3N1cGVyUGVyZm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRdOwogfQogCkBAIC01MzE2LDcgKzUz
MjIsNyBAQCBib29sIFdlYlZpZXdJbXBsOjp3aW5kb3dJc0Zyb250V2luZG93VW5kZXJNb3VzZShO
U0V2ZW50ICpldmVudCkKIHsKICAgICBOU1JlY3QgZXZlbnRTY3JlZW5Qb3NpdGlvbiA9IFtbbV92
aWV3IHdpbmRvd10gY29udmVydFJlY3RUb1NjcmVlbjpOU01ha2VSZWN0KGV2ZW50LmxvY2F0aW9u
SW5XaW5kb3cueCwgZXZlbnQubG9jYXRpb25JbldpbmRvdy55LCAwLCAwKV07CiAgICAgTlNJbnRl
Z2VyIGV2ZW50V2luZG93TnVtYmVyID0gW05TV2luZG93IHdpbmRvd051bWJlckF0UG9pbnQ6ZXZl
bnRTY3JlZW5Qb3NpdGlvbi5vcmlnaW4gYmVsb3dXaW5kb3dXaXRoV2luZG93TnVtYmVyOjBdOwot
ICAgICAgICAKKwogICAgIHJldHVybiBbbV92aWV3IHdpbmRvd10ud2luZG93TnVtYmVyICE9IGV2
ZW50V2luZG93TnVtYmVyOwogfQogCkBAIC01MzU2LDcgKzUzNjIsNyBAQCBib29sIFdlYlZpZXdJ
bXBsOjpjb21wbGV0ZUJhY2tTd2lwZUZvclRlc3RpbmcoKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgcmV0dXJuIG1fZ2VzdHVyZUNvbnRyb2xsZXItPmNvbXBsZXRlU2ltdWxhdGVkU3dpcGVJ
bkRpcmVjdGlvbkZvclRlc3RpbmcoVmlld0dlc3R1cmVDb250cm9sbGVyOjpTd2lwZURpcmVjdGlv
bjo6QmFjayk7CiB9Ci0gICAgCisKIHZvaWQgV2ViVmlld0ltcGw6OnNldFVzZVN5c3RlbUFwcGVh
cmFuY2UoYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlKQogewogICAgIG1fcGFnZS0+c2V0VXNlU3lz
dGVtQXBwZWFyYW5jZSh1c2VTeXN0ZW1BcHBlYXJhbmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQppbmRleCBmZDY1NzM0ZGVj
MjY2MGM5NTY3ZGE0ZDIwZDVjOWEyODMyNzAwYjYwLi4wM2IzOTgwNjE2ODQ2N2E3YjcwOTMyZWNi
OTQxODkyZjMxM2FhM2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViUG9wdXBNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCkBAIC0yOCwxMiArMjgsMTIgQEAKIAogI2lmIFVTRShB
UFBLSVQpCiAKKyNpbXBvcnQgIkNvcmVUZXh0SGVscGVycy5oIgogI2ltcG9ydCAiTmF0aXZlV2Vi
TW91c2VFdmVudC5oIgogI2ltcG9ydCAiUGFnZUNsaWVudEltcGxNYWMuaCIKICNpbXBvcnQgIlBs
YXRmb3JtUG9wdXBNZW51RGF0YS5oIgogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1w
b3J0ICJXZWJQb3B1cEl0ZW0uaCIKLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQ29yZVRleHRTUEku
aD4KICNpbXBvcnQgPHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5oPgogI2ltcG9ydCA8d3RmL0Js
b2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CkBA
IC0xMDYsMTcgKzEwNiw3IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1l
bnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAgaWYgKGRhdGEuZm9udEluZm8uZm9udEF0dHJpYnV0
ZURpY3Rpb25hcnkpIHsKLSAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IG11
dGFibGVEaWN0aW9uYXJ5ID0gYWRvcHROUyhbKF9fYnJpZGdlIE5TRGljdGlvbmFyeSAqKWRhdGEu
Zm9udEluZm8uZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkuZ2V0KCkgbXV0YWJsZUNvcHldKTsKLSNp
ZiBIQVZFKE5TRk9OVF9XSVRIX09QVElDQUxfU0laSU5HX0JVRykKLSAgICAgICAgaWYgKGlkIG9w
dGljYWxTaXplQXR0cmlidXRlID0gW211dGFibGVEaWN0aW9uYXJ5IG9iamVjdEZvcktleTooX19i
cmlkZ2UgTlNTdHJpbmcgKilrQ1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGVdKSB7Ci0gICAgICAg
ICAgICBpZiAoW29wdGljYWxTaXplQXR0cmlidXRlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNs
YXNzXV0pIHsKLSAgICAgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgcmVtb3ZlT2JqZWN0
Rm9yS2V5OihfX2JyaWRnZSBOU1N0cmluZyAqKWtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZV07
Ci0gICAgICAgICAgICAgICAgaWYgKE5TTnVtYmVyICpzaXplID0gW211dGFibGVEaWN0aW9uYXJ5
IG9iamVjdEZvcktleTooX19icmlkZ2UgTlNTdHJpbmcgKilrQ1RGb250U2l6ZUF0dHJpYnV0ZV0p
Ci0gICAgICAgICAgICAgICAgICAgIFttdXRhYmxlRGljdGlvbmFyeSBzZXRPYmplY3Q6c2l6ZSBm
b3JLZXk6KF9fYnJpZGdlIE5TU3RyaW5nICopa0NURm9udE9wdGljYWxTaXplQXR0cmlidXRlXTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotI2VuZGlmCi0gICAgICAgIE5TRm9udERlc2NyaXB0
b3IgKmZvbnREZXNjcmlwdG9yID0gW05TRm9udERlc2NyaXB0b3IgZm9udERlc2NyaXB0b3JXaXRo
Rm9udEF0dHJpYnV0ZXM6bXV0YWJsZURpY3Rpb25hcnkuZ2V0KCldOworICAgICAgICBQbGF0Zm9y
bUZvbnREZXNjcmlwdG9yICpmb250RGVzY3JpcHRvciA9IGZvbnREZXNjcmlwdG9yV2l0aEZvbnRB
dHRyaWJ1dGVzKHN0YXRpY19jYXN0PE5TRGljdGlvbmFyeSAqPihkYXRhLmZvbnRJbmZvLmZvbnRB
dHRyaWJ1dGVEaWN0aW9uYXJ5LmdldCgpKSk7CiAgICAgICAgIGZvbnQgPSBbTlNGb250IGZvbnRX
aXRoRGVzY3JpcHRvcjpmb250RGVzY3JpcHRvciBzaXplOigocGFnZVNjYWxlRmFjdG9yICE9IDEp
ID8gW2ZvbnREZXNjcmlwdG9yIHBvaW50U2l6ZV0gKiBwYWdlU2NhbGVGYWN0b3IgOiAwKV07CiAg
ICAgfSBlbHNlCiAgICAgICAgIGZvbnQgPSBbTlNGb250IG1lbnVGb250T2ZTaXplOjBdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjM4
ZWJlZDU4NTNmZDdhZDQ3NDk5MzUxM2U2YWZhMDFiMDg3MGI3Yi4uOGYxMWQ0NmU2NDIzOGVmODRm
MTIxZGI4ODMwNGJlN2U1MmY5NTliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDc0LDYgKzI0NzQsOCBAQAogCQkxQzIwOTM1RTIy
MzE4Q0IwMDAwMjZBMzkgLyogTlNBdHRyaWJ1dGVkU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5T
QXR0cmlidXRlZFN0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzIwOTM1
RjIyMzE4Q0IwMDAwMjZBMzkgLyogTlNBdHRyaWJ1dGVkU3RyaW5nLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTlNBdHRyaWJ1dGVkU3RyaW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQzIxODQwMTIyMzM4NzI4MDBCQUM3MDAgLyogTlNBdHRyaWJ1dGVkU3RyaW5nUHJpdmF0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0F0dHJpYnV0ZWRTdHJpbmdQ
cml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDNzM5RTg1MjM0N0JDRjYw
MEM2MjFFQyAvKiBDb3JlVGV4dEhlbHBlcnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb3Jl
VGV4dEhlbHBlcnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDNzM5RTg3MjM0
N0JEMEYwMEM2MjFFQyAvKiBDb3JlVGV4dEhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29yZVRl
eHRIZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNzdDMTk1MTI4OEE4
NzIwMDZBNzQyRiAvKiBXZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBXZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUM4OTFENjIxOUIxMjRGRjAwQkE3OUREIC8qIFdlYkluc3BlY3RvclVJ
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkluc3BlY3RvclVJ
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM4OTFENjMxOUIxMjRGRjAwQkE3
OUREIC8qIFdlYkluc3BlY3RvclVJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkluc3BlY3RvclVJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTE2LDYg
KzY1MTgsOCBAQAogCQkJCTFBNjk4RjE3MUU0OTEwMjIwMDY0RTg4MSAvKiBBdXhpbGlhcnlQcm9j
ZXNzQ29jb2EubW0gKi8sCiAJCQkJMzdCRUM0REYxOTQ5MTQ4NjAwOEI0Mjg2IC8qIENvbXBsZXRp
b25IYW5kbGVyQ2FsbENoZWNrZXIuaCAqLywKIAkJCQkzN0JFQzRERTE5NDkxNDg2MDA4QjQyODYg
LyogQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbSAqLywKKwkJCQkxQzczOUU4NzIzNDdC
RDBGMDBDNjIxRUMgLyogQ29yZVRleHRIZWxwZXJzLmggKi8sCisJCQkJMUM3MzlFODUyMzQ3QkNG
NjAwQzYyMUVDIC8qIENvcmVUZXh0SGVscGVycy5tbSAqLywKIAkJCQlDNTVGOTE2QzFDNTk1RTQ0
MDAyOUU5MkQgLyogRGF0YURldGVjdGlvblJlc3VsdC5oICovLAogCQkJCUM1NUY5MTZEMUM1OTVF
NDQwMDI5RTkyRCAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0Lm1tICovLAogCQkJCUNFNTUwRTEzMjI4
Mzc0NDQwMEQyODc5MSAvKiBJbnNlcnRUZXh0T3B0aW9ucy5jcHAgKi8sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTUzMjg3
Zjg1MzI1OGYyODA5MjNmN2ZmNWE0MjBhMDUzZTA2NTA1Ny4uODMzNmQ3YTJkNTQwMDkwZTZjMmQ5
ODc2MzA0YmI0ODNlMTllMmY4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTEwLTEwICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29h
XSBSRUdSRVNTSU9OIChyMjQ1NjcyKTogQ29udGVudGVkaXRhYmxlIHdpdGggb3B0aWNhbCBzaXpp
bmcgZnJlZXplcyBTYWZhcmkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMjI2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9mb3Jtcy9jb250ZW50ZWRpdGFibGUtZm9udC1vcHRpY2FsLXNpemUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2NvbnRlbnRlZGl0YWJs
ZS1mb250LW9wdGljYWwtc2l6ZS5odG1sOiBBZGRlZC4KKwogMjAxOS0xMC0xMCAgTXlsZXMgQy4g
TWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIEZvbnRGYWNlU2V0J3Mg
cmVhZHkgcHJvbWlzZSBpcyBub3QgYWx3YXlzIHJlc29sdmVkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2NvbnRlbnRlZGl0YWJsZS1mb250LW9wdGljYWwtc2l6ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NvbnRlbnRlZGl0YWJsZS1mb250LW9wdGlj
YWwtc2l6ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWVlMjU5OTM0OWQxYTNlM2Q4NjgxNmU4
NzA4OWRhY2RmMjA4M2JlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvY29udGVudGVkaXRhYmxlLWZvbnQtb3B0aWNhbC1zaXplLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDkgQEAKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgY29udGVudGVkaXRhYmxlIHdpdGgg
b3B0aWNhbCBzaXplIGRvZXNuJ3QgaGFuZyB0aGUgYnJvd3Nlci4gVGhlIHRlc3QgcGFzc2VzIGlm
IHRoZXJlIGlzIG5vIGhhbmcgd2hlbiB0eXBpbmcgb2NjdXJzIGluIHRoZSBjb250ZW50ZWRpdGFi
bGUgZWxlbWVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorTG9yZW0gaXBzdW1hYmNkZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jb250ZW50ZWRpdGFibGUtZm9udC1v
cHRpY2FsLXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY29udGVudGVkaXRhYmxl
LWZvbnQtb3B0aWNhbC1zaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQyMzRhYTUzMWI1OGQ0NDZlZjVh
MjNjM2Q3YTg2ZTFjNmU0NjQ4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvY29udGVudGVkaXRhYmxlLWZvbnQtb3B0aWNhbC1zaXplLmh0bWwKQEAgLTAsMCArMSw0
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorZGl2eworICAg
IHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7CisgICAgZm9udC1mYW1pbHk6IC1h
cHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9InRhcmdldCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj5Mb3JlbSBpcHN1bTwvZGl2PgorPHNj
cmlwdD4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2Rlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgbWFrZXMgc3VyZSB0aGF0IGNvbnRlbnRlZGl0YWJsZSB3aXRoIG9wdGljYWwgc2l6ZSBkb2Vz
bid0IGhhbmcgdGhlIGJyb3dzZXIuIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBubyBoYW5n
IHdoZW4gdHlwaW5nIG9jY3VycyBpbiB0aGUgY29udGVudGVkaXRhYmxlIGVsZW1lbnQuIik7Cits
ZXQgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworZnVuY3Rpb24g
aGFuZGxlRm9jdXMoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIC8v
IEZvciBzb21lIHJlYXNvbiwgImF3YWl0IiBkb2Vzbid0IHNlZW0gdG8gd29yay4uLgorICAgICAg
ICBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKS50aGVuKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgVUlIZWxwZXIua2V5RG93bigiYSIpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgVUlIZWxwZXIua2V5RG93bigiYiIpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIFVJSGVscGVyLmtleURvd24oImMiKS50aGVuKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgVUlIZWxwZXIua2V5RG93bigiZCIpLnRoZW4oZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUlIZWxwZXIua2V5RG93bigiZSIp
LnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVJSGVs
cGVyLmVuc3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQor
fQordGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgaGFuZGxlRm9jdXMsIHsgb25jZTog
dHJ1ZSB9KTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICBVSUhlbHBlci5hY3RpdmF0ZUZv
cm1Db250cm9sKHRhcmdldCk7CitlbHNlCisgICAgdGFyZ2V0LmZvY3VzKCk7Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="396472"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>