<?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>216098</bug_id>
          
          <creation_ts>2020-09-02 14:18:19 -0700</creation_ts>
          <short_desc>Use unicode macros instead of manual range checks in TextCodecUTF16</short_desc>
          <delta_ts>2020-09-03 08:31:14 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1684986</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-02 14:18:19 -0700</bug_when>
    <thetext>Use unicode macros instead of manual range checks in TextCodecUTF16</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684988</commentid>
    <comment_count>1</comment_count>
      <attachid>407813</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-02 14:19:05 -0700</bug_when>
    <thetext>Created attachment 407813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684993</commentid>
    <comment_count>2</comment_count>
      <attachid>407813</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-02 14:22:16 -0700</bug_when>
    <thetext>Comment on attachment 407813
Patch

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

&gt; Source/WebCore/platform/text/TextCodecSingleByte.cpp:2
&gt; + * Copyright (C) 2020 Apple Inc. All rights reserved.

I assume you didn’t mean to include this in this patch.

&gt; Source/WebCore/platform/text/TextCodecSingleByte.h:32
&gt; +class TextCodecSingleByte : public TextCodec {

I assume you didn’t mean to include this in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684994</commentid>
    <comment_count>3</comment_count>
      <attachid>407813</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-02 14:22:42 -0700</bug_when>
    <thetext>Comment on attachment 407813
Patch

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

&gt;&gt; Source/WebCore/platform/text/TextCodecSingleByte.h:32
&gt;&gt; +class TextCodecSingleByte : public TextCodec {
&gt; 
&gt; I assume you didn’t mean to include this in this patch.

I didn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684995</commentid>
    <comment_count>4</comment_count>
      <attachid>407814</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-02 14:23:46 -0700</bug_when>
    <thetext>Created attachment 407814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685130</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-02 20:28:56 -0700</bug_when>
    <thetext>Found 1 new test failure: fast/encoding/char-decoding.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685136</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-02 20:43:01 -0700</bug_when>
    <thetext>Looks like these two tests are failing on Windows:

fast/encoding/char-decoding.html
fast/encoding/charset-replacement.html

Maybe they both need to be re-based?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685154</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-02 21:21:11 -0700</bug_when>
    <thetext>This change causes tests to fail.  There&apos;s something wrong with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685157</commentid>
    <comment_count>8</comment_count>
      <attachid>407814</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-02 21:24:12 -0700</bug_when>
    <thetext>Comment on attachment 407814
Patch

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

&gt; Source/WebCore/platform/text/TextCodecUTF16.cpp:79
&gt; +            if (U16_IS_LEAD(codeUnit)) {

This needs to be U16_IS_TRAIL, not U16_IS_LEAD.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685184</commentid>
    <comment_count>9</comment_count>
      <attachid>407868</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-02 22:30:47 -0700</bug_when>
    <thetext>Created attachment 407868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685262</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-03 08:30:02 -0700</bug_when>
    <thetext>Committed r266517: &lt;https://trac.webkit.org/changeset/266517&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407868.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685263</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-03 08:31:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/68280790&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407813</attachid>
            <date>2020-09-02 14:19:05 -0700</date>
            <delta_ts>2020-09-02 14:23:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216098-20200902141904.patch</filename>
            <type>text/plain</type>
            <size>21825</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI5YmQ5YTg1NjM4OTMx
ZjgwZjQ4MTcyZTYyOTY5NjMyNDI5OTdhZC4uYzdkYzUwYTQxNGExMTU0YTQ3MTgxOTk2MDI1OGJk
M2QxOTgxNTIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA5LTAyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIHVu
aWNvZGUgbWFjcm9zIGluc3RlYWQgb2YgbWFudWFsIHJhbmdlIGNoZWNrcyBpbiBUZXh0Q29kZWNV
VEYxNgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2
MDk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
Y2hhbmdlIGluIGJlaGF2aW9yLiAgSnVzdCByZXNwb25kaW5nIHRvIGZlZWRiYWNrIGZyb20gYnVn
IDIxNjA1OC4KKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjU2luZ2xlQnl0ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dGFibGVGb3JEZWNvZGluZyk6CisgICAgICAg
IChXZWJDb3JlOjp0YWJsZUZvckVuY29kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2Rl
Y1NpbmdsZUJ5dGU6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNTaW5nbGVC
eXRlOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjU2luZ2xlQnl0ZTo6VGV4
dENvZGVjU2luZ2xlQnl0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNTaW5nbGVCeXRl
OjpyZWdpc3RlckVuY29kaW5nTmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjU2lu
Z2xlQnl0ZTo6cmVnaXN0ZXJDb2RlY3MpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENv
ZGVjU2luZ2xlQnl0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDb2Rl
Y1VURjE2LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1VURjE2OjpkZWNvZGUpOgor
CiAyMDIwLTA5LTAyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgQWxsb3cgZGlyZWN0IGNyZWF0aW9uIG9mIHJlcGxhY2VtZW50IGNvZGVjCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1NpbmdsZUJ5
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNTaW5nbGVCeXRl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lOTI1NGVlOWMyMjA1OWNjMDcwYjM4MDg1ZDlkYWZlZGU4MWEwODRh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29k
ZWNTaW5nbGVCeXRlLmNwcApAQCAtMCwwICsxLDM0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJU
ZXh0Q29kZWNTaW5nbGVCeXRlLmgiCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9Db2RlUG9pbnRJdGVy
YXRvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3
dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8v
IEZyb20gaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvaW5kZXgtaXNvLTg4NTktMy50
eHQgd2l0aCAweEZGRkQgZmlsbGluZyB0aGUgZ2FwcworY29uc3QgVUNoYXIgaXNvODg1OTNbMTI4
XSB7CisgICAgMHgwMDgwLCAweDAwODEsIDB4MDA4MiwgMHgwMDgzLCAweDAwODQsIDB4MDA4NSwg
MHgwMDg2LCAweDAwODcsIDB4MDA4OCwgMHgwMDg5LCAweDAwOEEsIDB4MDA4QiwgMHgwMDhDLCAw
eDAwOEQsIDB4MDA4RSwgMHgwMDhGLAorICAgIDB4MDA5MCwgMHgwMDkxLCAweDAwOTIsIDB4MDA5
MywgMHgwMDk0LCAweDAwOTUsIDB4MDA5NiwgMHgwMDk3LCAweDAwOTgsIDB4MDA5OSwgMHgwMDlB
LCAweDAwOUIsIDB4MDA5QywgMHgwMDlELCAweDAwOUUsIDB4MDA5RiwKKyAgICAweDAwQTAsIDB4
MDEyNiwgMHgwMkQ4LCAweDAwQTMsIDB4MDBBNCwgMHhGRkZELCAweDAxMjQsIDB4MDBBNywgMHgw
MEE4LCAweDAxMzAsIDB4MDE1RSwgMHgwMTFFLCAweDAxMzQsIDB4MDBBRCwgMHhGRkZELCAweDAx
N0IsCisgICAgMHgwMEIwLCAweDAxMjcsIDB4MDBCMiwgMHgwMEIzLCAweDAwQjQsIDB4MDBCNSwg
MHgwMTI1LCAweDAwQjcsIDB4MDBCOCwgMHgwMTMxLCAweDAxNUYsIDB4MDExRiwgMHgwMTM1LCAw
eDAwQkQsIDB4RkZGRCwgMHgwMTdDLAorICAgIDB4MDBDMCwgMHgwMEMxLCAweDAwQzIsIDB4RkZG
RCwgMHgwMEM0LCAweDAxMEEsIDB4MDEwOCwgMHgwMEM3LCAweDAwQzgsIDB4MDBDOSwgMHgwMENB
LCAweDAwQ0IsIDB4MDBDQywgMHgwMENELCAweDAwQ0UsIDB4MDBDRiwKKyAgICAweEZGRkQsIDB4
MDBEMSwgMHgwMEQyLCAweDAwRDMsIDB4MDBENCwgMHgwMTIwLCAweDAwRDYsIDB4MDBENywgMHgw
MTFDLCAweDAwRDksIDB4MDBEQSwgMHgwMERCLCAweDAwREMsIDB4MDE2QywgMHgwMTVDLCAweDAw
REYsCisgICAgMHgwMEUwLCAweDAwRTEsIDB4MDBFMiwgMHhGRkZELCAweDAwRTQsIDB4MDEwQiwg
MHgwMTA5LCAweDAwRTcsIDB4MDBFOCwgMHgwMEU5LCAweDAwRUEsIDB4MDBFQiwgMHgwMEVDLCAw
eDAwRUQsIDB4MDBFRSwgMHgwMEVGLAorICAgIDB4RkZGRCwgMHgwMEYxLCAweDAwRjIsIDB4MDBG
MywgMHgwMEY0LCAweDAxMjEsIDB4MDBGNiwgMHgwMEY3LCAweDAxMUQsIDB4MDBGOSwgMHgwMEZB
LCAweDAwRkIsIDB4MDBGQywgMHgwMTZELCAweDAxNUQsIDB4MDJEOQorfTsKKworLy8gRnJvbSBo
dHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy9pbmRleC1pc28tODg1OS02LnR4dCB3aXRo
IDB4RkZGRCBmaWxsaW5nIHRoZSBnYXBzCitjb25zdGV4cHIgVUNoYXIgaXNvODg1OTZbMTI4XSB7
CisgICAgMHgwMDgwLCAweDAwODEsIDB4MDA4MiwgMHgwMDgzLCAweDAwODQsIDB4MDA4NSwgMHgw
MDg2LCAweDAwODcsIDB4MDA4OCwgMHgwMDg5LCAweDAwOEEsIDB4MDA4QiwgMHgwMDhDLCAweDAw
OEQsIDB4MDA4RSwgMHgwMDhGLAorICAgIDB4MDA5MCwgMHgwMDkxLCAweDAwOTIsIDB4MDA5Mywg
MHgwMDk0LCAweDAwOTUsIDB4MDA5NiwgMHgwMDk3LCAweDAwOTgsIDB4MDA5OSwgMHgwMDlBLCAw
eDAwOUIsIDB4MDA5QywgMHgwMDlELCAweDAwOUUsIDB4MDA5RiwKKyAgICAweDAwQTAsIDB4RkZG
RCwgMHhGRkZELCAweEZGRkQsIDB4MDBBNCwgMHhGRkZELCAweEZGRkQsIDB4RkZGRCwgMHhGRkZE
LCAweEZGRkQsIDB4RkZGRCwgMHhGRkZELCAweDA2MEMsIDB4MDBBRCwgMHhGRkZELCAweEZGRkQs
CisgICAgMHhGRkZELCAweEZGRkQsIDB4RkZGRCwgMHhGRkZELCAweEZGRkQsIDB4RkZGRCwgMHhG
RkZELCAweEZGRkQsIDB4RkZGRCwgMHhGRkZELCAweEZGRkQsIDB4MDYxQiwgMHhGRkZELCAweEZG
RkQsIDB4RkZGRCwgMHgwNjFGLAorICAgIDB4RkZGRCwgMHgwNjIxLCAweDA2MjIsIDB4MDYyMywg
MHgwNjI0LCAweDA2MjUsIDB4MDYyNiwgMHgwNjI3LCAweDA2MjgsIDB4MDYyOSwgMHgwNjJBLCAw
eDA2MkIsIDB4MDYyQywgMHgwNjJELCAweDA2MkUsIDB4MDYyRiwKKyAgICAweDA2MzAsIDB4MDYz
MSwgMHgwNjMyLCAweDA2MzMsIDB4MDYzNCwgMHgwNjM1LCAweDA2MzYsIDB4MDYzNywgMHgwNjM4
LCAweDA2MzksIDB4MDYzQSwgMHhGRkZELCAweEZGRkQsIDB4RkZGRCwgMHhGRkZELCAweEZGRkQs
CisgICAgMHgwNjQwLCAweDA2NDEsIDB4MDY0MiwgMHgwNjQzLCAweDA2NDQsIDB4MDY0NSwgMHgw
NjQ2LCAweDA2NDcsIDB4MDY0OCwgMHgwNjQ5LCAweDA2NEEsIDB4MDY0QiwgMHgwNjRDLCAweDA2
NEQsIDB4MDY0RSwgMHgwNjRGLAorICAgIDB4MDY1MCwgMHgwNjUxLCAweDA2NTIsIDB4RkZGRCwg
MHhGRkZELCAweEZGRkQsIDB4RkZGRCwgMHhGRkZELCAweEZGRkQsIDB4RkZGRCwgMHhGRkZELCAw
eEZGRkQsIDB4RkZGRCwgMHhGRkZELCAweEZGRkQsIDB4RkZGRAorfTsKKworLy8gRnJvbSBodHRw
czovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy9pbmRleC1pc28tODg1OS03LnR4dCB3aXRoIDB4
RkZGRCBmaWxsaW5nIHRoZSBnYXBzCitjb25zdGV4cHIgVUNoYXIgaXNvODg1OTdbMTI4XSB7Cisg
ICAgMHgwMDgwLCAweDAwODEsIDB4MDA4MiwgMHgwMDgzLCAweDAwODQsIDB4MDA4NSwgMHgwMDg2
LCAweDAwODcsIDB4MDA4OCwgMHgwMDg5LCAweDAwOEEsIDB4MDA4QiwgMHgwMDhDLCAweDAwOEQs
IDB4MDA4RSwgMHgwMDhGLAorICAgIDB4MDA5MCwgMHgwMDkxLCAweDAwOTIsIDB4MDA5MywgMHgw
MDk0LCAweDAwOTUsIDB4MDA5NiwgMHgwMDk3LCAweDAwOTgsIDB4MDA5OSwgMHgwMDlBLCAweDAw
OUIsIDB4MDA5QywgMHgwMDlELCAweDAwOUUsIDB4MDA5RiwKKyAgICAweDAwQTAsIDB4MjAxOCwg
MHgyMDE5LCAweDAwQTMsIDB4MjBBQywgMHgyMEFGLCAweDAwQTYsIDB4MDBBNywgMHgwMEE4LCAw
eDAwQTksIDB4MDM3QSwgMHgwMEFCLCAweDAwQUMsIDB4MDBBRCwgMHhGRkZELCAweDIwMTUsCisg
ICAgMHgwMEIwLCAweDAwQjEsIDB4MDBCMiwgMHgwMEIzLCAweDAzODQsIDB4MDM4NSwgMHgwMzg2
LCAweDAwQjcsIDB4MDM4OCwgMHgwMzg5LCAweDAzOEEsIDB4MDBCQiwgMHgwMzhDLCAweDAwQkQs
IDB4MDM4RSwgMHgwMzhGLAorICAgIDB4MDM5MCwgMHgwMzkxLCAweDAzOTIsIDB4MDM5MywgMHgw
Mzk0LCAweDAzOTUsIDB4MDM5NiwgMHgwMzk3LCAweDAzOTgsIDB4MDM5OSwgMHgwMzlBLCAweDAz
OUIsIDB4MDM5QywgMHgwMzlELCAweDAzOUUsIDB4MDM5RiwKKyAgICAweDAzQTAsIDB4MDNBMSwg
MHhGRkZELCAweDAzQTMsIDB4MDNBNCwgMHgwM0E1LCAweDAzQTYsIDB4MDNBNywgMHgwM0E4LCAw
eDAzQTksIDB4MDNBQSwgMHgwM0FCLCAweDAzQUMsIDB4MDNBRCwgMHgwM0FFLCAweDAzQUYsCisg
ICAgMHgwM0IwLCAweDAzQjEsIDB4MDNCMiwgMHgwM0IzLCAweDAzQjQsIDB4MDNCNSwgMHgwM0I2
LCAweDAzQjcsIDB4MDNCOCwgMHgwM0I5LCAweDAzQkEsIDB4MDNCQiwgMHgwM0JDLCAweDAzQkQs
IDB4MDNCRSwgMHgwM0JGLAorICAgIDB4MDNDMCwgMHgwM0MxLCAweDAzQzIsIDB4MDNDMywgMHgw
M0M0LCAweDAzQzUsIDB4MDNDNiwgMHgwM0M3LCAweDAzQzgsIDB4MDNDOSwgMHgwM0NBLCAweDAz
Q0IsIDB4MDNDQywgMHgwM0NELCAweDAzQ0UsIDB4RkZGRAorfTsKKworLy8gRnJvbSBodHRwczov
L2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy9pbmRleC1pc28tODg1OS04LnR4dCB3aXRoIDB4RkZG
RCBmaWxsaW5nIHRoZSBnYXBzCitjb25zdGV4cHIgVUNoYXIgaXNvODg1OThbMTI4XSB7CisgICAg
MHgwMDgwLCAweDAwODEsIDB4MDA4MiwgMHgwMDgzLCAweDAwODQsIDB4MDA4NSwgMHgwMDg2LCAw
eDAwODcsIDB4MDA4OCwgMHgwMDg5LCAweDAwOEEsIDB4MDA4QiwgMHgwMDhDLCAweDAwOEQsIDB4
MDA4RSwgMHgwMDhGLAorICAgIDB4MDA5MCwgMHgwMDkxLCAweDAwOTIsIDB4MDA5MywgMHgwMDk0
LCAweDAwOTUsIDB4MDA5NiwgMHgwMDk3LCAweDAwOTgsIDB4MDA5OSwgMHgwMDlBLCAweDAwOUIs
IDB4MDA5QywgMHgwMDlELCAweDAwOUUsIDB4MDA5RiwKKyAgICAweDAwQTAsIDB4RkZGRCwgMHgw
MEEyLCAweDAwQTMsIDB4MDBBNCwgMHgwMEE1LCAweDAwQTYsIDB4MDBBNywgMHgwMEE4LCAweDAw
QTksIDB4MDBENywgMHgwMEFCLCAweDAwQUMsIDB4MDBBRCwgMHgwMEFFLCAweDAwQUYsCisgICAg
MHgwMEIwLCAweDAwQjEsIDB4MDBCMiwgMHgwMEIzLCAweDAwQjQsIDB4MDBCNSwgMHgwMEI2LCAw
eDAwQjcsIDB4MDBCOCwgMHgwMEI5LCAweDAwRjcsIDB4MDBCQiwgMHgwMEJDLCAweDAwQkQsIDB4
MDBCRSwgMHhGRkZELAorICAgIDB4RkZGRCwgMHhGRkZELCAweEZGRkQsIDB4RkZGRCwgMHhGRkZE
LCAweEZGRkQsIDB4RkZGRCwgMHhGRkZELCAweEZGRkQsIDB4RkZGRCwgMHhGRkZELCAweEZGRkQs
IDB4RkZGRCwgMHhGRkZELCAweEZGRkQsIDB4RkZGRCwKKyAgICAweEZGRkQsIDB4RkZGRCwgMHhG
RkZELCAweEZGRkQsIDB4RkZGRCwgMHhGRkZELCAweEZGRkQsIDB4RkZGRCwgMHhGRkZELCAweEZG
RkQsIDB4RkZGRCwgMHhGRkZELCAweEZGRkQsIDB4RkZGRCwgMHhGRkZELCAweDIwMTcsCisgICAg
MHgwNUQwLCAweDA1RDEsIDB4MDVEMiwgMHgwNUQzLCAweDA1RDQsIDB4MDVENSwgMHgwNUQ2LCAw
eDA1RDcsIDB4MDVEOCwgMHgwNUQ5LCAweDA1REEsIDB4MDVEQiwgMHgwNURDLCAweDA1REQsIDB4
MDVERSwgMHgwNURGLAorICAgIDB4MDVFMCwgMHgwNUUxLCAweDA1RTIsIDB4MDVFMywgMHgwNUU0
LCAweDA1RTUsIDB4MDVFNiwgMHgwNUU3LCAweDA1RTgsIDB4MDVFOSwgMHgwNUVBLCAweEZGRkQs
IDB4RkZGRCwgMHgyMDBFLCAweDIwMEYsIDB4RkZGRAorfTsKKworLy8gRnJvbSBodHRwczovL2Vu
Y29kaW5nLnNwZWMud2hhdHdnLm9yZy9pbmRleC13aW5kb3dzLTg3NC50eHQgd2l0aCAweEZGRkQg
ZmlsbGluZyB0aGUgZ2FwcworY29uc3RleHByIFVDaGFyIHdpbmRvd3M4NzRbMTI4XSB7CisgICAg
MHgyMEFDLCAweDAwODEsIDB4MDA4MiwgMHgwMDgzLCAweDAwODQsIDB4MjAyNiwgMHgwMDg2LCAw
eDAwODcsIDB4MDA4OCwgMHgwMDg5LCAweDAwOEEsIDB4MDA4QiwgMHgwMDhDLCAweDAwOEQsIDB4
MDA4RSwgMHgwMDhGLAorICAgIDB4MDA5MCwgMHgyMDE4LCAweDIwMTksIDB4MjAxQywgMHgyMDFE
LCAweDIwMjIsIDB4MjAxMywgMHgyMDE0LCAweDAwOTgsIDB4MDA5OSwgMHgwMDlBLCAweDAwOUIs
IDB4MDA5QywgMHgwMDlELCAweDAwOUUsIDB4MDA5RiwKKyAgICAweDAwQTAsIDB4MEUwMSwgMHgw
RTAyLCAweDBFMDMsIDB4MEUwNCwgMHgwRTA1LCAweDBFMDYsIDB4MEUwNywgMHgwRTA4LCAweDBF
MDksIDB4MEUwQSwgMHgwRTBCLCAweDBFMEMsIDB4MEUwRCwgMHgwRTBFLCAweDBFMEYsCisgICAg
MHgwRTEwLCAweDBFMTEsIDB4MEUxMiwgMHgwRTEzLCAweDBFMTQsIDB4MEUxNSwgMHgwRTE2LCAw
eDBFMTcsIDB4MEUxOCwgMHgwRTE5LCAweDBFMUEsIDB4MEUxQiwgMHgwRTFDLCAweDBFMUQsIDB4
MEUxRSwgMHgwRTFGLAorICAgIDB4MEUyMCwgMHgwRTIxLCAweDBFMjIsIDB4MEUyMywgMHgwRTI0
LCAweDBFMjUsIDB4MEUyNiwgMHgwRTI3LCAweDBFMjgsIDB4MEUyOSwgMHgwRTJBLCAweDBFMkIs
IDB4MEUyQywgMHgwRTJELCAweDBFMkUsIDB4MEUyRiwKKyAgICAweDBFMzAsIDB4MEUzMSwgMHgw
RTMyLCAweDBFMzMsIDB4MEUzNCwgMHgwRTM1LCAweDBFMzYsIDB4MEUzNywgMHgwRTM4LCAweDBF
MzksIDB4MEUzQSwgMHhGRkZELCAweEZGRkQsIDB4RkZGRCwgMHhGRkZELCAweDBFM0YsCisgICAg
MHgwRTQwLCAweDBFNDEsIDB4MEU0MiwgMHgwRTQzLCAweDBFNDQsIDB4MEU0NSwgMHgwRTQ2LCAw
eDBFNDcsIDB4MEU0OCwgMHgwRTQ5LCAweDBFNEEsIDB4MEU0QiwgMHgwRTRDLCAweDBFNEQsIDB4
MEU0RSwgMHgwRTRGLAorICAgIDB4MEU1MCwgMHgwRTUxLCAweDBFNTIsIDB4MEU1MywgMHgwRTU0
LCAweDBFNTUsIDB4MEU1NiwgMHgwRTU3LCAweDBFNTgsIDB4MEU1OSwgMHgwRTVBLCAweDBFNUIs
IDB4RkZGRCwgMHhGRkZELCAweEZGRkQsIDB4RkZGRAorfTsKKworLy8gRnJvbSBodHRwczovL2Vu
Y29kaW5nLnNwZWMud2hhdHdnLm9yZy9pbmRleC13aW5kb3dzLTEyNTMudHh0IHdpdGggMHhGRkZE
IGZpbGxpbmcgdGhlIGdhcHMKK2NvbnN0ZXhwciBVQ2hhciB3aW5kb3dzMTI1M1sxMjhdIHsKKyAg
ICAweDIwQUMsIDB4MDA4MSwgMHgyMDFBLCAweDAxOTIsIDB4MjAxRSwgMHgyMDI2LCAweDIwMjAs
IDB4MjAyMSwgMHgwMDg4LCAweDIwMzAsIDB4MDA4QSwgMHgyMDM5LCAweDAwOEMsIDB4MDA4RCwg
MHgwMDhFLCAweDAwOEYsCisgICAgMHgwMDkwLCAweDIwMTgsIDB4MjAxOSwgMHgyMDFDLCAweDIw
MUQsIDB4MjAyMiwgMHgyMDEzLCAweDIwMTQsIDB4MDA5OCwgMHgyMTIyLCAweDAwOUEsIDB4MjAz
QSwgMHgwMDlDLCAweDAwOUQsIDB4MDA5RSwgMHgwMDlGLAorICAgIDB4MDBBMCwgMHgwMzg1LCAw
eDAzODYsIDB4MDBBMywgMHgwMEE0LCAweDAwQTUsIDB4MDBBNiwgMHgwMEE3LCAweDAwQTgsIDB4
MDBBOSwgMHhGRkZELCAweDAwQUIsIDB4MDBBQywgMHgwMEFELCAweDAwQUUsIDB4MjAxNSwKKyAg
ICAweDAwQjAsIDB4MDBCMSwgMHgwMEIyLCAweDAwQjMsIDB4MDM4NCwgMHgwMEI1LCAweDAwQjYs
IDB4MDBCNywgMHgwMzg4LCAweDAzODksIDB4MDM4QSwgMHgwMEJCLCAweDAzOEMsIDB4MDBCRCwg
MHgwMzhFLCAweDAzOEYsCisgICAgMHgwMzkwLCAweDAzOTEsIDB4MDM5MiwgMHgwMzkzLCAweDAz
OTQsIDB4MDM5NSwgMHgwMzk2LCAweDAzOTcsIDB4MDM5OCwgMHgwMzk5LCAweDAzOUEsIDB4MDM5
QiwgMHgwMzlDLCAweDAzOUQsIDB4MDM5RSwgMHgwMzlGLAorICAgIDB4MDNBMCwgMHgwM0ExLCAw
eEZGRkQsIDB4MDNBMywgMHgwM0E0LCAweDAzQTUsIDB4MDNBNiwgMHgwM0E3LCAweDAzQTgsIDB4
MDNBOSwgMHgwM0FBLCAweDAzQUIsIDB4MDNBQywgMHgwM0FELCAweDAzQUUsIDB4MDNBRiwKKyAg
ICAweDAzQjAsIDB4MDNCMSwgMHgwM0IyLCAweDAzQjMsIDB4MDNCNCwgMHgwM0I1LCAweDAzQjYs
IDB4MDNCNywgMHgwM0I4LCAweDAzQjksIDB4MDNCQSwgMHgwM0JCLCAweDAzQkMsIDB4MDNCRCwg
MHgwM0JFLCAweDAzQkYsCisgICAgMHgwM0MwLCAweDAzQzEsIDB4MDNDMiwgMHgwM0MzLCAweDAz
QzQsIDB4MDNDNSwgMHgwM0M2LCAweDAzQzcsIDB4MDNDOCwgMHgwM0M5LCAweDAzQ0EsIDB4MDND
QiwgMHgwM0NDLCAweDAzQ0QsIDB4MDNDRSwgMHhGRkZECit9OworCitzdGF0aWMgY29uc3QgVUNo
YXIqIHRhYmxlRm9yRGVjb2RpbmcoVGV4dENvZGVjU2luZ2xlQnl0ZTo6RW5jb2RpbmcgZW5jb2Rp
bmcpCit7CisgICAgc3dpdGNoIChlbmNvZGluZykgeworICAgIGNhc2UgVGV4dENvZGVjU2luZ2xl
Qnl0ZTo6RW5jb2Rpbmc6Oklzb184ODU5XzM6CisgICAgICAgIHJldHVybiBpc284ODU5MzsKKyAg
ICBjYXNlIFRleHRDb2RlY1NpbmdsZUJ5dGU6OkVuY29kaW5nOjpJc29fODg1OV82OgorICAgICAg
ICByZXR1cm4gaXNvODg1OTY7CisgICAgY2FzZSBUZXh0Q29kZWNTaW5nbGVCeXRlOjpFbmNvZGlu
Zzo6SXNvXzg4NTlfNzoKKyAgICAgICAgcmV0dXJuIGlzbzg4NTk3OworICAgIGNhc2UgVGV4dENv
ZGVjU2luZ2xlQnl0ZTo6RW5jb2Rpbmc6Oklzb184ODU5Xzg6CisgICAgICAgIHJldHVybiBpc284
ODU5ODsKKyAgICBjYXNlIFRleHRDb2RlY1NpbmdsZUJ5dGU6OkVuY29kaW5nOjpXaW5kb3dzXzg3
NDoKKyAgICAgICAgcmV0dXJuIHdpbmRvd3M4NzQ7CisgICAgY2FzZSBUZXh0Q29kZWNTaW5nbGVC
eXRlOjpFbmNvZGluZzo6V2luZG93c18xMjUzOgorICAgICAgICByZXR1cm4gd2luZG93czEyNTM7
CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCit0ZW1wbGF0ZTxjb25zdCBVQ2hhciogZGVjb2RlVGFibGU+CitzdGQ6OnBhaXI8Y29uc3Qg
c3RkOjpwYWlyPFVDaGFyLCB1aW50OF90PiosIHNpemVfdD4gdGFibGVGb3JFbmNvZGluZygpCit7
CisgICAgY29uc3RleHByIGF1dG8gdGFibGVTaXplID0gMTI4OworICAgIHN0YXRpYyBzaXplX3Qg
c2l6ZSA9IFtdIHsKKyAgICAgICAgc2l6ZV90IHNpemUgPSAwOworICAgICAgICBmb3IgKHVpbnQ4
X3QgaSA9IDA7IGkgPCB0YWJsZVNpemU7IGkrKykgeworICAgICAgICAgICAgaWYgKGRlY29kZVRh
YmxlW2ldICE9IHJlcGxhY2VtZW50Q2hhcmFjdGVyKQorICAgICAgICAgICAgICAgIHNpemUrKzsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2l6ZTsKKyAgICB9KCk7CisgICAgc3RhdGljIGF1
dG8qIHRhYmxlID0gWyZdIHsKKyAgICAgICAgc3RhdGljIGF1dG8qIHRhYmxlID0gbmV3IHN0ZDo6
cGFpcjxVQ2hhciwgdWludDhfdD5bc2l6ZV07CisgICAgICAgIHNpemVfdCBqID0gMDsKKyAgICAg
ICAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgdGFibGVTaXplOyBpKyspIHsKKyAgICAgICAgICAg
IGlmIChkZWNvZGVUYWJsZVtpXSAhPSByZXBsYWNlbWVudENoYXJhY3RlcikKKyAgICAgICAgICAg
ICAgICB0YWJsZVtqKytdID0geyBkZWNvZGVUYWJsZVtpXSwgaSB9OworICAgICAgICB9CisgICAg
ICAgIHJldHVybiB0YWJsZTsKKyAgICB9KCk7CisgICAgcmV0dXJuIHsgdGFibGUsIHNpemUgfTsK
K30KKworc3RhdGljIHN0ZDo6cGFpcjxjb25zdCBzdGQ6OnBhaXI8VUNoYXIsIHVpbnQ4X3Q+Kiwg
c2l6ZV90PiB0YWJsZUZvckVuY29kaW5nKFRleHRDb2RlY1NpbmdsZUJ5dGU6OkVuY29kaW5nIGVu
Y29kaW5nKQoreworICAgIHN3aXRjaCAoZW5jb2RpbmcpIHsKKyAgICBjYXNlIFRleHRDb2RlY1Np
bmdsZUJ5dGU6OkVuY29kaW5nOjpJc29fODg1OV8zOgorICAgICAgICByZXR1cm4gdGFibGVGb3JF
bmNvZGluZzxpc284ODU5Mz4oKTsKKyAgICBjYXNlIFRleHRDb2RlY1NpbmdsZUJ5dGU6OkVuY29k
aW5nOjpJc29fODg1OV82OgorICAgICAgICByZXR1cm4gdGFibGVGb3JFbmNvZGluZzxpc284ODU5
Nj4oKTsKKyAgICBjYXNlIFRleHRDb2RlY1NpbmdsZUJ5dGU6OkVuY29kaW5nOjpJc29fODg1OV83
OgorICAgICAgICByZXR1cm4gdGFibGVGb3JFbmNvZGluZzxpc284ODU5Nz4oKTsKKyAgICBjYXNl
IFRleHRDb2RlY1NpbmdsZUJ5dGU6OkVuY29kaW5nOjpJc29fODg1OV84OgorICAgICAgICByZXR1
cm4gdGFibGVGb3JFbmNvZGluZzxpc284ODU5OD4oKTsKKyAgICBjYXNlIFRleHRDb2RlY1Npbmds
ZUJ5dGU6OkVuY29kaW5nOjpXaW5kb3dzXzg3NDoKKyAgICAgICAgcmV0dXJuIHRhYmxlRm9yRW5j
b2Rpbmc8d2luZG93czg3ND4oKTsKKyAgICBjYXNlIFRleHRDb2RlY1NpbmdsZUJ5dGU6OkVuY29k
aW5nOjpXaW5kb3dzXzEyNTM6CisgICAgICAgIHJldHVybiB0YWJsZUZvckVuY29kaW5nPHdpbmRv
d3MxMjUzPigpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4g
eyBudWxscHRyLCAwIH07Cit9CisKKy8vIGh0dHBzOi8vZW5jb2Rpbmcuc3BlYy53aGF0d2cub3Jn
LyNzaW5nbGUtYnl0ZS1lbmNvZGVyCitWZWN0b3I8dWludDhfdD4gVGV4dENvZGVjU2luZ2xlQnl0
ZTo6ZW5jb2RlKGNvbnN0IEVuY29kZVRhYmxlJiB0YWJsZSwgU3RyaW5nVmlldyBzdHJpbmcsIEZ1
bmN0aW9uPHZvaWQoVUNoYXIzMiwgVmVjdG9yPHVpbnQ4X3Q+Jik+JiYgdW5lbmNvZGFibGVIYW5k
bGVyKQoreworICAgIFZlY3Rvcjx1aW50OF90PiByZXN1bHQ7CisgICAgcmVzdWx0LnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoc3RyaW5nLmxlbmd0aCgpKTsKKworICAgIGF1dG8gY2hhcmFjdGVycyA9
IHN0cmluZy51cGNvbnZlcnRlZENoYXJhY3RlcnMoKTsKKyAgICBmb3IgKFdURjo6Q29kZVBvaW50
SXRlcmF0b3I8VUNoYXI+IGl0ZXJhdG9yKGNoYXJhY3RlcnMuZ2V0KCksIGNoYXJhY3RlcnMuZ2V0
KCkgKyBzdHJpbmcubGVuZ3RoKCkpOyAhaXRlcmF0b3IuYXRFbmQoKTsgKytpdGVyYXRvcikgewor
ICAgICAgICBhdXRvIGNvZGVQb2ludCA9ICppdGVyYXRvcjsKKyAgICAgICAgaWYgKGlzQVNDSUko
Y29kZVBvaW50KSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjb2RlUG9pbnQpOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIGNvZGVVbml0ID0g
c3RhdGljX2Nhc3Q8VUNoYXI+KGNvZGVQb2ludCk7CisgICAgICAgIGlmIChjb2RlVW5pdCAhPSBj
b2RlUG9pbnQpIHsKKyAgICAgICAgICAgIHVuZW5jb2RhYmxlSGFuZGxlcihjb2RlUG9pbnQsIHJl
c3VsdCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgYXV0byByYW5nZSA9IHN0ZDo6ZXF1YWxfcmFuZ2UodGFibGUuZmlyc3QsIHRhYmxlLmZpcnN0
ICsgdGFibGUuc2Vjb25kLCBzdGQ6OnBhaXI8VUNoYXIsIHVpbnQ4X3Q+KGNvZGVVbml0LCAwKSwg
W10oY29uc3QgYXV0byYgYSwgY29uc3QgYXV0byYgYikgeworICAgICAgICAgICAgcmV0dXJuIGEu
Zmlyc3QgPCBiLmZpcnN0OworICAgICAgICB9KTsKKyAgICAgICAgaWYgKHJhbmdlLmZpcnN0ID09
IHJhbmdlLnNlY29uZCkgeworICAgICAgICAgICAgdW5lbmNvZGFibGVIYW5kbGVyKGNvZGVQb2lu
dCwgcmVzdWx0KTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHJl
c3VsdC5hcHBlbmQocmFuZ2UuZmlyc3QtPnNlY29uZCArIDB4ODApOworICAgIH0KKyAgICByZXR1
cm4gcmVzdWx0OworfQorCisvLyBodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jc2lu
Z2xlLWJ5dGUtZGVjb2RlcgorU3RyaW5nIFRleHRDb2RlY1NpbmdsZUJ5dGU6OmRlY29kZShjb25z
dCBVQ2hhciogdGFibGUsIGNvbnN0IHVpbnQ4X3QqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBib29s
LCBib29sIHN0b3BPbkVycm9yLCBib29sJiBzYXdFcnJvcikKK3sKKyAgICBTdHJpbmdCdWlsZGVy
IHJlc3VsdDsKKyAgICByZXN1bHQucmVzZXJ2ZUNhcGFjaXR5KGxlbmd0aCk7CisgICAgYXV0byBw
YXJzZUJ5dGUgPSBbJl0gKHVpbnQ4X3QgYnl0ZSkgeworICAgICAgICBpZiAoaXNBU0NJSShieXRl
KSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChieXRlKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICBVQ2hhciBjb2RlUG9pbnQgPSB0YWJsZVtieXRlIC0gMHg4
MF07CisgICAgICAgIGlmIChjb2RlUG9pbnQgPT0gcmVwbGFjZW1lbnRDaGFyYWN0ZXIpCisgICAg
ICAgICAgICBzYXdFcnJvciA9IHRydWU7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoY29kZVBvaW50
KTsKKyAgICB9OworCisgICAgaWYgKHN0b3BPbkVycm9yKSB7CisgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHBhcnNlQnl0ZShieXRlc1tp
XSk7CisgICAgICAgICAgICBpZiAoc2F3RXJyb3IpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHBhcnNlQnl0ZShieXRl
c1tpXSk7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworfQorCitWZWN0
b3I8dWludDhfdD4gVGV4dENvZGVjU2luZ2xlQnl0ZTo6ZW5jb2RlKFN0cmluZ1ZpZXcgc3RyaW5n
LCBVbmVuY29kYWJsZUhhbmRsaW5nIGhhbmRsaW5nKQoreworICAgIHJldHVybiBlbmNvZGUodGFi
bGVGb3JFbmNvZGluZyhtX2VuY29kaW5nKSwgc3RyaW5nLCB1bmVuY29kYWJsZUhhbmRsZXIoaGFu
ZGxpbmcpKTsKK30KKworU3RyaW5nIFRleHRDb2RlY1NpbmdsZUJ5dGU6OmRlY29kZShjb25zdCBj
aGFyKiBieXRlcywgc2l6ZV90IGxlbmd0aCwgYm9vbCBmbHVzaCwgYm9vbCBzdG9wT25FcnJvciwg
Ym9vbCYgc2F3RXJyb3IpCit7CisgICAgcmV0dXJuIGRlY29kZSh0YWJsZUZvckRlY29kaW5nKG1f
ZW5jb2RpbmcpLCByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihieXRlcyksIGxlbmd0
aCwgZmx1c2gsIHN0b3BPbkVycm9yLCBzYXdFcnJvcik7Cit9CisKK1RleHRDb2RlY1NpbmdsZUJ5
dGU6OlRleHRDb2RlY1NpbmdsZUJ5dGUoRW5jb2RpbmcgZW5jb2RpbmcpCisgICAgOiBtX2VuY29k
aW5nKGVuY29kaW5nKSB7IH0KKwordm9pZCBUZXh0Q29kZWNTaW5nbGVCeXRlOjpyZWdpc3RlckVu
Y29kaW5nTmFtZXMoRW5jb2RpbmdOYW1lUmVnaXN0cmFyIHJlZ2lzdHJhcikKK3sKKyAgICAvLyBo
dHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jbmFtZXMtYW5kLWxhYmVscworICAgIGF1
dG8gcmVnaXN0ZXJBbGlhc2VzID0gWyZdIChzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Y29uc3QgY2hh
cio+IGxpc3QpIHsKKyAgICAgICAgZm9yIChhdXRvKiBhbGlhcyA6IGxpc3QpCisgICAgICAgICAg
ICByZWdpc3RyYXIoYWxpYXMsICpsaXN0LmJlZ2luKCkpOworICAgIH07CisgICAgcmVnaXN0ZXJB
bGlhc2VzKHsKKyAgICAgICAgIklTTy04ODU5LTMiLAorICAgICAgICAiY3Npc29sYXRpbjMiLAor
ICAgICAgICAiaXNvLWlyLTEwOSIsCisgICAgICAgICJpc284ODU5LTMiLAorICAgICAgICAiaXNv
ODg1OTMiLAorICAgICAgICAiaXNvXzg4NTktMyIsCisgICAgICAgICJpc29fODg1OS0zOjE5ODgi
LAorICAgICAgICAibDMiLAorICAgICAgICAibGF0aW4zIgorICAgIH0pOworCisgICAgcmVnaXN0
ZXJBbGlhc2VzKHsKKyAgICAgICAgIklTTy04ODU5LTYiLAorICAgICAgICAiYXJhYmljIiwKKyAg
ICAgICAgImFzbW8tNzA4IiwKKyAgICAgICAgImNzaXNvODg1OTZlIiwKKyAgICAgICAgImNzaXNv
ODg1OTZpIiwKKyAgICAgICAgImNzaXNvbGF0aW5hcmFiaWMiLAorICAgICAgICAiZWNtYS0xMTQi
LAorICAgICAgICAiaXNvLTg4NTktNi1lIiwKKyAgICAgICAgImlzby04ODU5LTYtaSIsCisgICAg
ICAgICJpc28taXItMTI3IiwKKyAgICAgICAgImlzbzg4NTktNiIsCisgICAgICAgICJpc284ODU5
NiIsCisgICAgICAgICJpc29fODg1OS02IiwKKyAgICAgICAgImlzb184ODU5LTY6MTk4NyIKKyAg
ICB9KTsKKworICAgIHJlZ2lzdGVyQWxpYXNlcyh7CisgICAgICAgICJJU08tODg1OS03IiwKKyAg
ICAgICAgImNzaXNvbGF0aW5ncmVlayIsCisgICAgICAgICJlY21hLTExOCIsCisgICAgICAgICJl
bG90XzkyOCIsCisgICAgICAgICJncmVlayIsCisgICAgICAgICJncmVlazgiLAorICAgICAgICAi
aXNvLWlyLTEyNiIsCisgICAgICAgICJpc284ODU5LTciLAorICAgICAgICAiaXNvODg1OTciLAor
ICAgICAgICAiaXNvXzg4NTktNyIsCisgICAgICAgICJpc29fODg1OS03OjE5ODciLAorICAgICAg
ICAic3VuX2V1X2dyZWVrIgorICAgIH0pOworCisgICAgcmVnaXN0ZXJBbGlhc2VzKHsKKyAgICAg
ICAgIklTTy04ODU5LTgiLAorICAgICAgICAiY3Npc284ODU5OGUiLAorICAgICAgICAiY3Npc29s
YXRpbmhlYnJldyIsCisgICAgICAgICJoZWJyZXciLAorICAgICAgICAiaXNvLTg4NTktOC1lIiwK
KyAgICAgICAgImlzby1pci0xMzgiLAorICAgICAgICAiaXNvODg1OS04IiwKKyAgICAgICAgImlz
bzg4NTk4IiwKKyAgICAgICAgImlzb184ODU5LTgiLAorICAgICAgICAiaXNvXzg4NTktODoxOTg4
IiwKKyAgICAgICAgInZpc3VhbCIKKyAgICB9KTsKKworICAgIHJlZ2lzdGVyQWxpYXNlcyh7Cisg
ICAgICAgICJ3aW5kb3dzLTg3NCIsCisgICAgICAgICJkb3MtODc0IiwKKyAgICAgICAgImlzby04
ODU5LTExIiwKKyAgICAgICAgImlzbzg4NTktMTEiLAorICAgICAgICAiaXNvODg1OTExIiwKKyAg
ICAgICAgInRpcy02MjAiCisgICAgfSk7CisKKyAgICByZWdpc3RlckFsaWFzZXMoeworICAgICAg
ICAid2luZG93cy0xMjUzIiwKKyAgICAgICAgImNwMTI1MyIsCisgICAgICAgICJ4LWNwMTI1MyIK
KyAgICB9KTsKK30KKwordm9pZCBUZXh0Q29kZWNTaW5nbGVCeXRlOjpyZWdpc3RlckNvZGVjcyhU
ZXh0Q29kZWNSZWdpc3RyYXIgcmVnaXN0cmFyKQoreworICAgIHJlZ2lzdHJhcigiSVNPLTg4NTkt
MyIsIFtdIHsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8VGV4dENvZGVjU2luZ2xlQnl0ZT4o
RW5jb2Rpbmc6Oklzb184ODU5XzMpOworICAgIH0pOworICAgIHJlZ2lzdHJhcigiSVNPLTg4NTkt
NiIsIFtdIHsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8VGV4dENvZGVjU2luZ2xlQnl0ZT4o
RW5jb2Rpbmc6Oklzb184ODU5XzYpOworICAgIH0pOworICAgIHJlZ2lzdHJhcigiSVNPLTg4NTkt
NyIsIFtdIHsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8VGV4dENvZGVjU2luZ2xlQnl0ZT4o
RW5jb2Rpbmc6Oklzb184ODU5XzcpOworICAgIH0pOworICAgIHJlZ2lzdHJhcigiSVNPLTg4NTkt
OCIsIFtdIHsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8VGV4dENvZGVjU2luZ2xlQnl0ZT4o
RW5jb2Rpbmc6Oklzb184ODU5XzgpOworICAgIH0pOworICAgIHJlZ2lzdHJhcigid2luZG93cy04
NzQiLCBbXSB7CisgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFRleHRDb2RlY1NpbmdsZUJ5dGU+
KEVuY29kaW5nOjpXaW5kb3dzXzg3NCk7CisgICAgfSk7CisgICAgcmVnaXN0cmFyKCJ3aW5kb3dz
LTEyNTMiLCBbXSB7CisgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFRleHRDb2RlY1NpbmdsZUJ5
dGU+KEVuY29kaW5nOjpXaW5kb3dzXzEyNTMpOworICAgIH0pOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1NpbmdsZUJ5dGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjU2luZ2xlQnl0ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdmZmZhNWJkOTM5N2RmOWJlNmQ3YTYzZWU5NjcyOGZkMGIzYmIxY2MKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1NpbmdsZUJ5dGUu
aApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJUZXh0Q29kZWMuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0Q29kZWNTaW5nbGVCeXRlIDogcHVibGljIFRleHRD
b2RlYyB7CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBFbmNvZGluZyA6IHVpbnQ4X3QgeyBJc29f
ODg1OV8zLCBJc29fODg1OV82LCBJc29fODg1OV83LCBJc29fODg1OV84LCBXaW5kb3dzXzg3NCwg
V2luZG93c18xMjUzIH07CisKKyAgICBleHBsaWNpdCBUZXh0Q29kZWNTaW5nbGVCeXRlKEVuY29k
aW5nKTsKKworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyRW5jb2RpbmdOYW1lcyhFbmNvZGluZ05h
bWVSZWdpc3RyYXIpOworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQ29kZWNzKFRleHRDb2RlY1Jl
Z2lzdHJhcik7CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIGRlY29kZShjb25zdCBjaGFyKiwgc2l6
ZV90IGxlbmd0aCwgYm9vbCBmbHVzaCwgYm9vbCBzdG9wT25FcnJvciwgYm9vbCYgc2F3RXJyb3Ip
IGZpbmFsOworICAgIFZlY3Rvcjx1aW50OF90PiBlbmNvZGUoU3RyaW5nVmlldywgVW5lbmNvZGFi
bGVIYW5kbGluZykgZmluYWw7CisKKyAgICB1c2luZyBFbmNvZGVUYWJsZSA9IHN0ZDo6cGFpcjxj
b25zdCBzdGQ6OnBhaXI8VUNoYXIsIHVpbnQ4X3Q+Kiwgc2l6ZV90PjsKKyAgICBWZWN0b3I8dWlu
dDhfdD4gZW5jb2RlKGNvbnN0IEVuY29kZVRhYmxlJiwgU3RyaW5nVmlldywgRnVuY3Rpb248dm9p
ZChVQ2hhcjMyLCBWZWN0b3I8dWludDhfdD4mKT4mJik7CisgICAgU3RyaW5nIGRlY29kZShjb25z
dCBVQ2hhciogdGFibGUsIGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QgbGVuZ3RoLCBib29sIGZsdXNo
LCBib29sIHN0b3BPbkVycm9yLCBib29sJiBzYXdFcnJvcik7CisgICAgCisgICAgY29uc3QgRW5j
b2RpbmcgbV9lbmNvZGluZzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEYxNi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcAppbmRleCBlZWFh
YzJlY2E4NzRkMDcxNDc4MzUzN2MxYTAxNzkyNDU3NjA5NDdkLi4wMmFlNDk5MTUwYzk0YWJkMWIx
YTYxMWQ5MWNkYzAwNDNkMGU2ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRDb2RlY1VURjE2LmNwcApAQCAtNzYsOCArNzYsOCBAQCBTdHJpbmcgVGV4dENvZGVj
VVRGMTY6OmRlY29kZShjb25zdCBjaGFyKiBieXRlcywgc2l6ZV90IGxlbmd0aCwgYm9vbCBmbHVz
aCwgYm9vbAogICAgIHByb2Nlc3NCeXRlc1NoYXJlZCA9IFsmXSAoVUNoYXIgY29kZVVuaXQpIHsK
ICAgICAgICAgaWYgKG1fbGVhZFN1cnJvZ2F0ZSkgewogICAgICAgICAgICAgYXV0byBsZWFkU3Vy
cm9nYXRlID0gKnN0ZDo6ZXhjaGFuZ2UobV9sZWFkU3Vycm9nYXRlLCBXVEY6Om51bGxvcHQpOwot
ICAgICAgICAgICAgaWYgKGNvZGVVbml0ID49IDB4REMwMCAmJiBjb2RlVW5pdCA8PSAweERGRkYp
IHsKLSAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kQ2hhcmFjdGVyKDB4MTAwMDAgKyAoKGxl
YWRTdXJyb2dhdGUgLSAweEQ4MDApIDw8IDEwKSArIGNvZGVVbml0IC0gMHhEQzAwKTsKKyAgICAg
ICAgICAgIGlmIChVMTZfSVNfTEVBRChjb2RlVW5pdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1
bHQuYXBwZW5kQ2hhcmFjdGVyKFUxNl9HRVRfU1VQUExFTUVOVEFSWShsZWFkU3Vycm9nYXRlLCBj
b2RlVW5pdCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIHNhd0Vycm9yID0gdHJ1ZTsKQEAgLTg1LDExICs4NSwxMSBAQCBTdHJpbmcgVGV4dENv
ZGVjVVRGMTY6OmRlY29kZShjb25zdCBjaGFyKiBieXRlcywgc2l6ZV90IGxlbmd0aCwgYm9vbCBm
bHVzaCwgYm9vbAogICAgICAgICAgICAgcHJvY2Vzc0J5dGVzU2hhcmVkKGNvZGVVbml0KTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBpZiAoY29kZVVuaXQgPj0gMHhE
ODAwICYmIGNvZGVVbml0IDw9IDB4REJGRikgeworICAgICAgICBpZiAoVTE2X0lTX0xFQUQoY29k
ZVVuaXQpKSB7CiAgICAgICAgICAgICBtX2xlYWRTdXJyb2dhdGUgPSBjb2RlVW5pdDsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBpZiAoY29kZVVuaXQgPj0gMHhEQzAw
ICYmIGNvZGVVbml0IDw9MHhERkZGKSB7CisgICAgICAgIGlmIChVMTZfSVNfVFJBSUwoY29kZVVu
aXQpKSB7CiAgICAgICAgICAgICBzYXdFcnJvciA9IHRydWU7CiAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKHJlcGxhY2VtZW50Q2hhcmFjdGVyKTsKICAgICAgICAgICAgIHJldHVybjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407814</attachid>
            <date>2020-09-02 14:23:46 -0700</date>
            <delta_ts>2020-09-02 22:30:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216098-20200902142345.patch</filename>
            <type>text/plain</type>
            <size>2732</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI5YmQ5YTg1NjM4OTMx
ZjgwZjQ4MTcyZTYyOTY5NjMyNDI5OTdhZC4uYzYzNDVjMWFiYzZhMzNjMmNhNGYyMjEwZmM4OTYy
NThhYjk1ZTBhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA5LTAyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIHVu
aWNvZGUgbWFjcm9zIGluc3RlYWQgb2YgbWFudWFsIHJhbmdlIGNoZWNrcyBpbiBUZXh0Q29kZWNV
VEYxNgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2
MDk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTm8gY2hh
bmdlIGluIGJlaGF2aW9yLiAgSnVzdCByZXNwb25kaW5nIHRvIGZlZWRiYWNrIGZyb20gYnVnIDIx
NjA1OC4KKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjU2luZ2xlQnl0ZS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dGFibGVGb3JEZWNvZGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjp0YWJsZUZvckVuY29kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1Np
bmdsZUJ5dGU6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNTaW5nbGVCeXRl
OjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjU2luZ2xlQnl0ZTo6VGV4dENv
ZGVjU2luZ2xlQnl0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNTaW5nbGVCeXRlOjpy
ZWdpc3RlckVuY29kaW5nTmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjU2luZ2xl
Qnl0ZTo6cmVnaXN0ZXJDb2RlY3MpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVj
U2luZ2xlQnl0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VU
RjE2LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1VURjE2OjpkZWNvZGUpOgorCiAy
MDIwLTA5LTAyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQWxsb3cgZGlyZWN0IGNyZWF0aW9uIG9mIHJlcGxhY2VtZW50IGNvZGVjCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjVVRGMTYuY3BwCmluZGV4IGVl
YWFjMmVjYTg3NGQwNzE0NzgzNTM3YzFhMDE3OTI0NTc2MDk0N2QuLjAyYWU0OTkxNTBjOTRhYmQx
YjFhNjExZDkxY2RjMDA0M2QwZTY4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dENvZGVjVVRGMTYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dENvZGVjVVRGMTYuY3BwCkBAIC03Niw4ICs3Niw4IEBAIFN0cmluZyBUZXh0Q29k
ZWNVVEYxNjo6ZGVjb2RlKGNvbnN0IGNoYXIqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBib29sIGZs
dXNoLCBib29sCiAgICAgcHJvY2Vzc0J5dGVzU2hhcmVkID0gWyZdIChVQ2hhciBjb2RlVW5pdCkg
ewogICAgICAgICBpZiAobV9sZWFkU3Vycm9nYXRlKSB7CiAgICAgICAgICAgICBhdXRvIGxlYWRT
dXJyb2dhdGUgPSAqc3RkOjpleGNoYW5nZShtX2xlYWRTdXJyb2dhdGUsIFdURjo6bnVsbG9wdCk7
Ci0gICAgICAgICAgICBpZiAoY29kZVVuaXQgPj0gMHhEQzAwICYmIGNvZGVVbml0IDw9IDB4REZG
RikgewotICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRDaGFyYWN0ZXIoMHgxMDAwMCArICgo
bGVhZFN1cnJvZ2F0ZSAtIDB4RDgwMCkgPDwgMTApICsgY29kZVVuaXQgLSAweERDMDApOworICAg
ICAgICAgICAgaWYgKFUxNl9JU19MRUFEKGNvZGVVbml0KSkgeworICAgICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmRDaGFyYWN0ZXIoVTE2X0dFVF9TVVBQTEVNRU5UQVJZKGxlYWRTdXJyb2dhdGUs
IGNvZGVVbml0KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgc2F3RXJyb3IgPSB0cnVlOwpAQCAtODUsMTEgKzg1LDExIEBAIFN0cmluZyBUZXh0
Q29kZWNVVEYxNjo6ZGVjb2RlKGNvbnN0IGNoYXIqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBib29s
IGZsdXNoLCBib29sCiAgICAgICAgICAgICBwcm9jZXNzQnl0ZXNTaGFyZWQoY29kZVVuaXQpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmIChjb2RlVW5pdCA+PSAw
eEQ4MDAgJiYgY29kZVVuaXQgPD0gMHhEQkZGKSB7CisgICAgICAgIGlmIChVMTZfSVNfTEVBRChj
b2RlVW5pdCkpIHsKICAgICAgICAgICAgIG1fbGVhZFN1cnJvZ2F0ZSA9IGNvZGVVbml0OwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmIChjb2RlVW5pdCA+PSAweERD
MDAgJiYgY29kZVVuaXQgPD0weERGRkYpIHsKKyAgICAgICAgaWYgKFUxNl9JU19UUkFJTChjb2Rl
VW5pdCkpIHsKICAgICAgICAgICAgIHNhd0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQocmVwbGFjZW1lbnRDaGFyYWN0ZXIpOwogICAgICAgICAgICAgcmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407868</attachid>
            <date>2020-09-02 22:30:47 -0700</date>
            <delta_ts>2020-09-03 08:30:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216098-20200902223047.patch</filename>
            <type>text/plain</type>
            <size>2545</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NjUwMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA5LTAyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIHVuaWNv
ZGUgbWFjcm9zIGluc3RlYWQgb2YgbWFudWFsIHJhbmdlIGNoZWNrcyBpbiBUZXh0Q29kZWNVVEYx
NgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2MDk4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTm8gY2hhbmdl
IGluIGJlaGF2aW9yLiAgSnVzdCByZXNwb25kaW5nIHRvIGZlZWRiYWNrIGZyb20gYnVnIDIxNjA1
OC4KKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjU2luZ2xlQnl0ZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6dGFibGVGb3JEZWNvZGluZyk6CisgICAgICAgIChXZWJD
b3JlOjp0YWJsZUZvckVuY29kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1Npbmds
ZUJ5dGU6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNTaW5nbGVCeXRlOjpk
ZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjU2luZ2xlQnl0ZTo6VGV4dENvZGVj
U2luZ2xlQnl0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNTaW5nbGVCeXRlOjpyZWdp
c3RlckVuY29kaW5nTmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjU2luZ2xlQnl0
ZTo6cmVnaXN0ZXJDb2RlY3MpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjU2lu
Z2xlQnl0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1VURjE2OjpkZWNvZGUpOgorCiAyMDIw
LTA5LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hvb3Nl
IGFkZXF1YXRlIG51bWJlciBvZiBjaGFubmVscyBmb3IgQ29udm9sdmVyTm9kZSdzIG91dHB1dApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEYxNi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEYxNi5j
cHAJKHJldmlzaW9uIDI2NjUwMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dENvZGVjVVRGMTYuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Niw4ICs3Niw4IEBAIFN0cmluZyBU
ZXh0Q29kZWNVVEYxNjo6ZGVjb2RlKGNvbnN0IGNoYXIKICAgICBwcm9jZXNzQnl0ZXNTaGFyZWQg
PSBbJl0gKFVDaGFyIGNvZGVVbml0KSB7CiAgICAgICAgIGlmIChtX2xlYWRTdXJyb2dhdGUpIHsK
ICAgICAgICAgICAgIGF1dG8gbGVhZFN1cnJvZ2F0ZSA9ICpzdGQ6OmV4Y2hhbmdlKG1fbGVhZFN1
cnJvZ2F0ZSwgV1RGOjpudWxsb3B0KTsKLSAgICAgICAgICAgIGlmIChjb2RlVW5pdCA+PSAweERD
MDAgJiYgY29kZVVuaXQgPD0gMHhERkZGKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZENoYXJhY3RlcigweDEwMDAwICsgKChsZWFkU3Vycm9nYXRlIC0gMHhEODAwKSA8PCAxMCkgKyBj
b2RlVW5pdCAtIDB4REMwMCk7CisgICAgICAgICAgICBpZiAoVTE2X0lTX1RSQUlMKGNvZGVVbml0
KSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRDaGFyYWN0ZXIoVTE2X0dFVF9TVVBQ
TEVNRU5UQVJZKGxlYWRTdXJyb2dhdGUsIGNvZGVVbml0KSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2F3RXJyb3IgPSB0cnVlOwpAQCAtODUs
MTEgKzg1LDExIEBAIFN0cmluZyBUZXh0Q29kZWNVVEYxNjo6ZGVjb2RlKGNvbnN0IGNoYXIKICAg
ICAgICAgICAgIHByb2Nlc3NCeXRlc1NoYXJlZChjb2RlVW5pdCk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGNvZGVVbml0ID49IDB4RDgwMCAmJiBjb2RlVW5p
dCA8PSAweERCRkYpIHsKKyAgICAgICAgaWYgKFUxNl9JU19MRUFEKGNvZGVVbml0KSkgewogICAg
ICAgICAgICAgbV9sZWFkU3Vycm9nYXRlID0gY29kZVVuaXQ7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGNvZGVVbml0ID49IDB4REMwMCAmJiBjb2RlVW5pdCA8
PTB4REZGRikgeworICAgICAgICBpZiAoVTE2X0lTX1RSQUlMKGNvZGVVbml0KSkgewogICAgICAg
ICAgICAgc2F3RXJyb3IgPSB0cnVlOwogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChyZXBsYWNl
bWVudENoYXJhY3Rlcik7CiAgICAgICAgICAgICByZXR1cm47Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>