<?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>172896</bug_id>
          
          <creation_ts>2017-06-03 08:15:25 -0700</creation_ts>
          <short_desc>Implement DOMPointReadOnly.matrixTransform()</short_desc>
          <delta_ts>2017-06-04 08:49:20 -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>DOM</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, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>163505</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1315422</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-06-03 08:15:25 -0700</bug_when>
    <thetext>DOMPointReadonly.idl has:

    // FIXME: No support for DOMMatrix yet (webkit.org/b/110001)
    // DOMPoint matrixTransform(optional DOMMatrixInit matrix);

but we have DOMMatrix now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315461</commentid>
    <comment_count>1</comment_count>
      <attachid>311938</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-03 12:42:15 -0700</bug_when>
    <thetext>Created attachment 311938
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315462</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-06-03 12:43:23 -0700</bug_when>
    <thetext>I just wrote this same patch. But mine is better :P. Coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315463</commentid>
    <comment_count>3</comment_count>
      <attachid>311939</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-06-03 12:46:10 -0700</bug_when>
    <thetext>Created attachment 311939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315466</commentid>
    <comment_count>4</comment_count>
      <attachid>311940</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-06-03 12:55:10 -0700</bug_when>
    <thetext>Created attachment 311940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315467</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-06-03 12:55:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/32554549&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315468</commentid>
    <comment_count>6</comment_count>
      <attachid>311940</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-03 12:59:31 -0700</bug_when>
    <thetext>Comment on attachment 311940
Patch

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

r=me

&gt; LayoutTests/imported/w3c/ChangeLog:14
&gt; +        * web-platform-tests/css/geometry-1/DOMPoint-002.html:

I don&apos;t think we should be modifying downstream tests unless the same change has landed upstream. Also, there is no behavior change here so this downstream change is not strictly needed.

&gt; LayoutTests/imported/w3c/ChangeLog:16
&gt; +        * web-platform-tests/css/geometry-1/DOMPoint-003.html: Added.

Ditto, I don&apos;t think we should modify this folder unless we are sync&apos;ing with upstream. We should consider landing this upstream first, and/or put this new test in LayoutTests/http/wpt/geometry/ in the mean time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315474</commentid>
    <comment_count>7</comment_count>
      <attachid>311941</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-06-03 13:31:25 -0700</bug_when>
    <thetext>Created attachment 311941
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315476</commentid>
    <comment_count>8</comment_count>
      <attachid>311941</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-03 14:09:04 -0700</bug_when>
    <thetext>Comment on attachment 311941
Patch for landing

Clearing flags on attachment: 311941

Committed r217763: &lt;http://trac.webkit.org/changeset/217763&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315477</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-03 14:09:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315544</commentid>
    <comment_count>10</comment_count>
      <attachid>311941</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-04 08:34:02 -0700</bug_when>
    <thetext>Comment on attachment 311941
Patch for landing

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

&gt; Source/WebCore/dom/DOMPointReadOnly.cpp:52
&gt; +    double x = this-&gt;x();
&gt; +    double y = this-&gt;y();
&gt; +    double z = this-&gt;z();
&gt; +    double w = this-&gt;w();
&gt; +    matrix-&gt;transformationMatrix().map4ComponentPoint(x, y, z, w);
&gt; +    
&gt; +    return { DOMPoint::create(x, y, z, w) };

Is this supposed to return *this if it is an identity transformation?  I noticed the IDL is not annotated with NewObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315547</commentid>
    <comment_count>11</comment_count>
      <attachid>311941</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-04 08:49:20 -0700</bug_when>
    <thetext>Comment on attachment 311941
Patch for landing

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

&gt;&gt; Source/WebCore/dom/DOMPointReadOnly.cpp:52
&gt;&gt; +    return { DOMPoint::create(x, y, z, w) };
&gt; 
&gt; Is this supposed to return *this if it is an identity transformation?  I noticed the IDL is not annotated with NewObject.

They probably forgot [NewObject] in the spec. The spec is clear we&apos;re supposed to return a new DOMPoint, always:
https://drafts.fxtf.org/geometry/#dom-dompointreadonly-matrixtransform</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311938</attachid>
            <date>2017-06-03 12:42:15 -0700</date>
            <delta_ts>2017-06-03 13:31:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172896-20170603124214.patch</filename>
            <type>text/plain</type>
            <size>13204</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZmM2IzMWI3ZjMwYzE1
YzZlZDcwMzJlMjdiMmNiM2YzZjA3MzUwYS4uMzI1ZjY1OTg0NjI3MjFmYmIwNzcxY2Q0ZTk4Y2Zi
OGE0YzZiN2I0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTA2LTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IERPTVBvaW50
UmVhZE9ubHkubWF0cml4VHJhbnNmb3JtKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3Mjg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBET01Qb2ludFJlYWRPbmx5Lm1hdHJpeFRyYW5z
Zm9ybSgpIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRy
eS8jZG9tLWRvbXBvaW50cmVhZG9ubHktbWF0cml4dHJhbnNmb3JtCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBkb20vRE9NUG9pbnRSZWFkT25seS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5LmguCisgICAgICAgIChXZWJDb3JlOjpET01Qb2ludFJl
YWRPbmx5OjptYXRyaXhUcmFuc2Zvcm0pOgorICAgICAgICAqIGRvbS9ET01Qb2ludFJlYWRPbmx5
Lmg6CisgICAgICAgICogZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsOgorCiAyMDE3LTA2LTAyICBG
cmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBbTWFjXSBJbmNsdWRl
IGZyYW1lcyBpbiB0aGUgc2Nyb2xsaW5nIHRyZWUgd2hlbiBTY3JvbGxpbmdUcmVlSW5jbHVkZXNG
cmFtZXM9dHJ1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlZWZlZGU2ODEzMjQ3Zjk1MmUxM2Ji
MzNmMGUzYmYyZmQ3ZGQ2OTQ3Li42ZWRiMDI5ZmZmNWI1MTZkNjJlMzQ5ZDQ2NGQxN2IwOWNjMTBl
Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ1OCw2ICsxNDU4LDcgQEAgc2V0KFdlYkNv
cmVfU09VUkNFUwogICAgIGRvbS9ET01FcnJvci5jcHAKICAgICBkb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwCiAgICAgZG9tL0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCisgICAgZG9tL0RPTVBv
aW50UmVhZE9ubHkuY3BwCiAgICAgZG9tL0RPTVJlY3RMaXN0LmNwcAogICAgIGRvbS9ET01TdHJp
bmdMaXN0LmNwcAogICAgIGRvbS9EYXRhVHJhbnNmZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjEyNjhjY2Y2ODAzNjdk
MTg1ODEwODM1NGJmYWQ5MjljY2VmYzFlNi4uNTY2ZDE0YmMyMzZjOGIxZGYzN2JmM2VjNmIxYjEx
ZjI5NjY5MzVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMzM1OCw2ICszMzU4LDcgQEAKIAkJODMwQTM2QkQxREFDNUZBRDAw
NkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzMEEzNkJCMURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNlRXZl
bnRJbml0LmggKi87IH07CiAJCTgzMTIwQzcwMUM1NkYzRjYwMDFDQjExMiAvKiBIVE1MRGF0YUVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODMxRDFGMjkxQzU2RUNBMDAwRjVGNkMwIC8qIEhUTUxEYXRhRWxlbWVudC5jcHAgKi87IH07CiAJ
CTgzMTIwQzcxMUM1NkYzRkIwMDFDQjExMiAvKiBIVE1MRGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNEI4NkE3MUM1NkU4M0EwMEYz
RjBFMyAvKiBIVE1MRGF0YUVsZW1lbnQuaCAqLzsgfTsKKwkJODMxRUZGMUExRUUzNDEwMTAwNzc5
NjFEIC8qIERPTVBvaW50UmVhZE9ubHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODMxRUZGMTkxRUUzNDBGRDAwNzc5NjFEIC8qIERPTVBvaW50UmVh
ZE9ubHkuY3BwICovOyB9OwogCQk4MzJCODQzNDE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0
ZUVsZW1lbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzJCODQzMzE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmgg
Ki87IH07CiAJCTgzMkI4NDM2MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJh
c2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMy
Qjg0MzUxOUQ4RTU3NDAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgKi87IH07
CiAJCTgzNDA3RkMxMUU4RDlDMTcwMEUwNDhEMyAvKiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzQwN0ZDMDFF
OEQ5QzEyMDBFMDQ4RDMgLyogVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTQ1Myw2ICsxMTQ1NCw3IEBA
CiAJCTgzMEEzNkJBMURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW91c2VFdmVudEluaXQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzBBMzZCQjFEQUM1RkE3MDA2RDdEMDkgLyog
SlNNb3VzZUV2ZW50SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01v
dXNlRXZlbnRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMUQxRjI5MUM1
NkVDQTAwMEY1RjZDMCAvKiBIVE1MRGF0YUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJODMxRUZGMTkxRUUzNDBGRDAwNzc5NjFEIC8qIERPTVBvaW50UmVhZE9ubHku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUG9pbnRSZWFkT25s
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMjlBNDE3MUVDMjVCMkIwMDhF
RDRCRSAvKiBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyOURDQzIxQzdBNkFFMzAwNzMwQjMzIC8qIEhUTUxIeXBl
cmxpbmtFbGVtZW50VXRpbHMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxIeXBlcmxp
bmtFbGVtZW50VXRpbHMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzJCODQz
MzE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjU3MTAsNiArMjU3MTIsNyBAQAogCQkJCTBGNDk2NjlBMURC
NDA4QzEwMEEyNzRCQiAvKiBET01Qb2ludC5pZGwgKi8sCiAJCQkJMEY0OTY2QTIxREI0MDkxMDAw
QTI3NEJCIC8qIERPTVBvaW50SW5pdC5oICovLAogCQkJCTBGNDk2NkExMURCNDA5MDEwMEEyNzRC
QiAvKiBET01Qb2ludEluaXQuaWRsICovLAorCQkJCTgzMUVGRjE5MUVFMzQwRkQwMDc3OTYxRCAv
KiBET01Qb2ludFJlYWRPbmx5LmNwcCAqLywKIAkJCQkwRjQ5NjY5QjFEQjQwOEMxMDBBMjc0QkIg
LyogRE9NUG9pbnRSZWFkT25seS5oICovLAogCQkJCTBGNDk2NjlDMURCNDA4QzEwMEEyNzRCQiAv
KiBET01Qb2ludFJlYWRPbmx5LmlkbCAqLywKIAkJCQkwRjQ3MTBBOTFEQjU2QUZDMDAyRENFQzMg
LyogRE9NUmVjdC5oICovLApAQCAtMzM2MzYsNiArMzM2MzksNyBAQAogCQkJCTFDMThEQTU4MTgx
QUY2QTUwMEM0RUYyMiAvKiBUZXh0UGFpbnRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEM5
MUExMDE4MDIzNDM5MDBBMTdGNkQgLyogVGV4dFBhaW50U3R5bGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTNGMTlBOUQwODI0NUU1OTAwMUU5QUJDIC8qIFRleHRSZXNvdXJjZURlY29kZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJODMxRUZGMUExRUUzNDEwMTAwNzc5NjFEIC8qIERPTVBvaW50
UmVhZE9ubHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc2RENDRTExM0I0Rjk2NjAwMkVCRUZD
IC8qIFRleHRSdW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDM0RBNEEwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc1OUU5M0YxNEVGMUNG
ODAwMjZBMkREIC8qIFRleHRUcmFjay5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01Qb2ludFJlYWRPbmx5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTQ0NGM3MzBjNWE2YTQ1MjcwNTli
NmRlMjhiM2E3NTQxNDdhYmY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RPTVBvaW50UmVhZE9ubHkuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwor
ICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUKKyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikK
KyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKKyAqIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRE9NUG9pbnRSZWFkT25seS5oIgorCisjaW5jbHVkZSAiRE9NTWF0cml4LmgiCisjaW5jbHVk
ZSAiRE9NUG9pbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBodHRwczovL2RyYWZ0
cy5meHRmLm9yZy9nZW9tZXRyeS8jZG9tLWRvbXBvaW50cmVhZG9ubHktbWF0cml4dHJhbnNmb3Jt
CitFeGNlcHRpb25PcjxSZWY8RE9NUG9pbnQ+PiBET01Qb2ludFJlYWRPbmx5OjptYXRyaXhUcmFu
c2Zvcm0oRE9NTWF0cml4SW5pdCYmIG1hdHJpeEluaXQpCit7CisgICAgYXV0byBwb2ludCA9IERP
TVBvaW50OjpjcmVhdGUobV94LCBtX3ksIG1feiwgbV93KTsKKworICAgIGF1dG8gZnJvbU1hdHJp
eFJlc3VsdCA9IERPTU1hdHJpeDo6ZnJvbU1hdHJpeChXVEZNb3ZlKG1hdHJpeEluaXQpKTsKKyAg
ICBpZiAoZnJvbU1hdHJpeFJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGZy
b21NYXRyaXhSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOworCisgICAgYXV0byBtYXRyaXggPSBm
cm9tTWF0cml4UmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIHBvaW50LT5zZXRYKHBv
aW50LT54KCkgKiBtYXRyaXgtPm0xMSgpICsgcG9pbnQtPnkoKSAqIG1hdHJpeC0+bTIxKCkgKyBw
b2ludC0+eigpICogbWF0cml4LT5tMzEoKSArIHBvaW50LT53KCkgKiBtYXRyaXgtPm00MSgpKTsK
KyAgICBwb2ludC0+c2V0WShwb2ludC0+eCgpICogbWF0cml4LT5tMTIoKSArIHBvaW50LT55KCkg
KiBtYXRyaXgtPm0yMigpICsgcG9pbnQtPnooKSAqIG1hdHJpeC0+bTMyKCkgKyBwb2ludC0+dygp
ICogbWF0cml4LT5tNDIoKSk7CisgICAgcG9pbnQtPnNldFoocG9pbnQtPngoKSAqIG1hdHJpeC0+
bTEzKCkgKyBwb2ludC0+eSgpICogbWF0cml4LT5tMjMoKSArIHBvaW50LT56KCkgKiBtYXRyaXgt
Pm0zMygpICsgcG9pbnQtPncoKSAqIG1hdHJpeC0+bTQzKCkpOworICAgIHBvaW50LT5zZXRXKHBv
aW50LT54KCkgKiBtYXRyaXgtPm0xNCgpICsgcG9pbnQtPnkoKSAqIG1hdHJpeC0+bTI0KCkgKyBw
b2ludC0+eigpICogbWF0cml4LT5tMzQoKSArIHBvaW50LT53KCkgKiBtYXRyaXgtPm00NCgpKTsK
KworICAgIHJldHVybiBXVEZNb3ZlKHBvaW50KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Q
b2ludFJlYWRPbmx5LmgKaW5kZXggMWI5ODMwMmFjYTZmNDQxODU5YWI0NWRmMTgyOGFlYTQwYWE2
ZjY4Yi4uNmFhZTJmZDEwYTliZjQ4MmM3NTFhNGZkOTdlMjQ5ODI5OTNlZjQ1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5oCkBAIC0zMSwxMSArMzEsMTUgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiRE9NUG9pbnRJbml0LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uT3Iu
aCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0cnVjdCBET01NYXRyaXhJbml0OworY2xh
c3MgRE9NUG9pbnQ7CisKIGNsYXNzIERPTVBvaW50UmVhZE9ubHkgOiBwdWJsaWMgU2NyaXB0V3Jh
cHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxET01Qb2ludFJlYWRPbmx5PiB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC00OCw2ICs1Miw4IEBAIHB1YmxpYzoKICAg
ICBkb3VibGUgeigpIGNvbnN0IHsgcmV0dXJuIG1fejsgfQogICAgIGRvdWJsZSB3KCkgY29uc3Qg
eyByZXR1cm4gbV93OyB9CiAKKyAgICBFeGNlcHRpb25PcjxSZWY8RE9NUG9pbnQ+PiBtYXRyaXhU
cmFuc2Zvcm0oRE9NTWF0cml4SW5pdCYmKTsKKwogcHJvdGVjdGVkOgogICAgIERPTVBvaW50UmVh
ZE9ubHkoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeiwgZG91YmxlIHcpCiAgICAgICAgIDog
bV94KHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5pZGwKaW5kZXggOWEwMGI5
ZjRmMzc3NDQ2ZDc4YjFlYjI2MWQ2YThmN2RlMmUyOWM4Ni4uM2ZmZDY2ZmQ3MTIxYTlkYzdjYzVm
ODU3M2E3NmE3ODk3NDRmOTY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBv
aW50UmVhZE9ubHkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5
LmlkbApAQCAtNDQsOCArNDQsNyBAQCBpbnRlcmZhY2UgRE9NUG9pbnRSZWFkT25seSB7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgejsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB3OwogCi0gICAgLy8gRklYTUU6IE5vIHN1cHBv
cnQgZm9yIERPTU1hdHJpeCB5ZXQgKHdlYmtpdC5vcmcvYi8xMTAwMDEpCi0gICAgLy8gRE9NUG9p
bnQgbWF0cml4VHJhbnNmb3JtKG9wdGlvbmFsIERPTU1hdHJpeEluaXQgbWF0cml4KTsKKyAgICBb
TWF5VGhyb3dFeGNlcHRpb25dIERPTVBvaW50IG1hdHJpeFRyYW5zZm9ybShvcHRpb25hbCBET01N
YXRyaXhJbml0IG1hdHJpeCk7CiAKICAgICBzZXJpYWxpemVyID0geyBhdHRyaWJ1dGUgfTsKIH07
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA4ZDMzNTgxZTNiN2M2NzY1OTI2YzAx
Y2Y0ZDBmNmE3N2QzNWVlYmY1Li5kY2ZlNGQ0NmU0YzliNzg4OGZiNmY4Njg4ZjkyODk2OTM0Zjcz
MWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
Ny0wNi0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxl
bWVudCBET01Qb2ludFJlYWRPbmx5Lm1hdHJpeFRyYW5zZm9ybSgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI4OTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIHdlYi1wbGF0Zm9ybS10
ZXN0cyBub3cgdGhhdCBtb3JlIGNoZWNrcyBhcmUgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9oaXN0b3JpY2FsLWV4
cGVjdGVkLnR4dDoKKwogMjAxNy0wNi0wMiAgSmF2aWVyIEZlcm5hbmRleiAgPGpmZXJuYW5kZXpA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWdyaWRdIE1hcmdpbiB3cm9uZyBhcHBsaWVkIHdo
ZW4gc3RyZXRjaGluZyBhbiBvcnRob2dvbmFsIGl0ZW0gaW4gZml4ZWQgc2l6ZSB0cmFjawpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Z2VvbWV0cnktMS9ET01Qb2ludC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDItZXhw
ZWN0ZWQudHh0CmluZGV4IDRkZDEwMjhkMjFlODMzMWZhMjZmNzNiYTA2OTJmYWU0ODAwZWYxMTAu
LjE4ZmJmMmU1M2Y5YTRjOGU4MjA5OWRkZDZjNzBmY2YwZmJmY2JmYTkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5LTEv
RE9NUG9pbnQtMDAyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS0xL0RPTVBvaW50LTAwMi1leHBlY3RlZC50
eHQKQEAgLTE4LDcgKzE4LDcgQEAgUEFTUyB0ZXN0IERPTVBvaW50IGZyb21Qb2ludCB3aXRoIHgs
IHksIHosIHcKIFBBU1MgdGVzdCBET01Qb2ludCBmcm9tUG9pbnQgd2l0aCB4LCB5LCB6LCB3LCB2
IAogUEFTUyB0ZXN0IERPTVBvaW50IGZyb21Qb2ludCB3aXRoIHgsIHogCiBQQVNTIHRlc3QgRE9N
UG9pbnQgZnJvbVBvaW50IHdpdGggdW5kZWZpbmVkIHZhbHVlIAotRkFJTCB0ZXN0IERPTVBvaW50
IG1hdHJpeFRyYW5zZm9ybSBwb2ludC5tYXRyaXhUcmFuc2Zvcm0gaXMgbm90IGEgZnVuY3Rpb24u
IChJbiAncG9pbnQubWF0cml4VHJhbnNmb3JtKG1hdHJpeCknLCAncG9pbnQubWF0cml4VHJhbnNm
b3JtJyBpcyB1bmRlZmluZWQpCitQQVNTIHRlc3QgRE9NUG9pbnQgbWF0cml4VHJhbnNmb3JtIAog
UEFTUyB0ZXN0IERPTVBvaW50IEF0dHJpYnV0ZXMgdW5kZWZpbmVkIAogUEFTUyB0ZXN0IERPTVBv
aW50IEF0dHJpYnV0ZXMgTmFOIEluZmluaXR5IAogUEFTUyB0ZXN0IERPTVBvaW50UmVhZE9ubHkg
Q29uc3RydWN0b3Igbm8gYXJncyAKQEAgLTM4LDYgKzM4LDYgQEAgUEFTUyB0ZXN0IERPTVBvaW50
UmVhZE9ubHkgZnJvbVBvaW50IHdpdGggeCwgeSwgeiwgdwogUEFTUyB0ZXN0IERPTVBvaW50UmVh
ZE9ubHkgZnJvbVBvaW50IHdpdGggeCwgeSwgeiwgdywgdiAKIFBBU1MgdGVzdCBET01Qb2ludFJl
YWRPbmx5IGZyb21Qb2ludCB3aXRoIHgsIHogCiBQQVNTIHRlc3QgRE9NUG9pbnRSZWFkT25seSBm
cm9tUG9pbnQgd2l0aCB1bmRlZmluZWQgdmFsdWUgCi1GQUlMIHRlc3QgRE9NUG9pbnRSZWFkT25s
eSBtYXRyaXhUcmFuc2Zvcm0gcG9pbnQubWF0cml4VHJhbnNmb3JtIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoSW4gJ3BvaW50Lm1hdHJpeFRyYW5zZm9ybShtYXRyaXgpJywgJ3BvaW50Lm1hdHJpeFRyYW5z
Zm9ybScgaXMgdW5kZWZpbmVkKQorUEFTUyB0ZXN0IERPTVBvaW50UmVhZE9ubHkgbWF0cml4VHJh
bnNmb3JtIAogUEFTUyB0ZXN0IERPTVBvaW50UmVhZE9ubHkgQXR0cmlidXRlcyB1bmRlZmluZWQg
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2dlb21ldHJ5LTEvaGlzdG9yaWNhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS0xL2hpc3RvcmljYWwt
ZXhwZWN0ZWQudHh0CmluZGV4IDRkNTM2NTBjOGQ2YzM5MDY0ZWFhNmJhZGY5MTU5N2EyYjZjODli
YzQuLjc1ODc4NzU5Yzc1NGU5YjExYjJhMWU4YjBmNzMzZjUyNWFkYmUzYjUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5
LTEvaGlzdG9yaWNhbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9oaXN0b3JpY2FsLWV4cGVjdGVkLnR4
dApAQCAtMjgsNyArMjgsNyBAQCBQQVNTIERPTU1hdHJpeCByb3RhdGVGcm9tVmVjdG9yU2VsZiBu
dW1iZXIgb2YgcmVxdWlyZWQgYXJndW1lbnRzCiBQQVNTIERPTU1hdHJpeCByb3RhdGVBeGlzQW5n
bGVTZWxmIG51bWJlciBvZiByZXF1aXJlZCBhcmd1bWVudHMgCiBQQVNTIERPTU1hdHJpeCBza2V3
WFNlbGYgbnVtYmVyIG9mIHJlcXVpcmVkIGFyZ3VtZW50cyAKIFBBU1MgRE9NTWF0cml4IHNrZXdZ
U2VsZiBudW1iZXIgb2YgcmVxdWlyZWQgYXJndW1lbnRzIAotRkFJTCBET01Qb2ludFJlYWRPbmx5
IG1hdHJpeFRyYW5zZm9ybSBudW1iZXIgb2YgcmVxdWlyZWQgYXJndW1lbnRzIHVuZGVmaW5lZCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzZWxmW2ludGVyZl0ucHJvdG90eXBlW21lbWJl
cl0ubGVuZ3RoJykKK1BBU1MgRE9NUG9pbnRSZWFkT25seSBtYXRyaXhUcmFuc2Zvcm0gbnVtYmVy
IG9mIHJlcXVpcmVkIGFyZ3VtZW50cyAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgbXVsdGlwbHkg
bnVtYmVyIG9mIHJlcXVpcmVkIGFyZ3VtZW50cyAKIFBBU1MgRE9NTWF0cml4IG11bHRpcGx5U2Vs
ZiBudW1iZXIgb2YgcmVxdWlyZWQgYXJndW1lbnRzIAogUEFTUyBET01NYXRyaXggcHJlTXVsdGlw
bHlTZWxmIG51bWJlciBvZiByZXF1aXJlZCBhcmd1bWVudHMgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311939</attachid>
            <date>2017-06-03 12:46:10 -0700</date>
            <delta_ts>2017-06-03 12:55:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172896-20170603124609.patch</filename>
            <type>text/plain</type>
            <size>21431</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZlNWU2ZmM4ZDI4MTQ2
Y2M5ZjgyOWZiMmY4YzJiNzBmODM4MmJlNC4uYTk0NzNhMTE5YWU4YjFiYWQ3NTJlZDJjOTIwZjlk
YTY4M2JiZjk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDE3LTA2LTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEltcGxlbWVudCBE
T01Qb2ludFJlYWRPbmx5Lm1hdHJpeFRyYW5zZm9ybSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI4OTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBET01Qb2ludFJlYWRPbmx5Lm1hdHJpeFRyYW5zZm9y
bSgpIGNyZWF0ZXMgdGhlIG1hdHJpeCBvciB0aHJvd3MsIHRoZW4gdXNlcworICAgICAgICBhIG5l
dyBmdW5jdGlvbiBpbiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0byBtYXAgeCx5LHosdyB0aHJvdWdo
IHRoZSBtYXRyaXguCisKKyAgICAgICAgVGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDMuaHRtbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGNzcy9ET01NYXRyaXhSZWFkT25seS5oOgorICAgICAgICAoV2ViQ29yZTo6RE9N
TWF0cml4UmVhZE9ubHk6OnRyYW5zZm9ybWF0aW9uTWF0cml4KToKKyAgICAgICAgKiBkb20vRE9N
UG9pbnRSZWFkT25seS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2lu
dFJlYWRPbmx5LmlkbC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVBvaW50UmVhZE9ubHk6Om1hdHJp
eFRyYW5zZm9ybSk6CisgICAgICAgICogZG9tL0RPTVBvaW50UmVhZE9ubHkuaDoKKyAgICAgICAg
KiBkb20vRE9NUG9pbnRSZWFkT25seS5pZGw6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeDo6bWFwNENvbXBvbmVudFBvaW50KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4Lmg6CisKKzIwMTct
MDYtMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAg
U29ydCB0aGUgcHJvamVjdCBmaWxlLgogCiAgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxZDNkZGVmNmZkZjk2ZGE2Nzdk
MTE3Mjk1NjMxMTg1NzBiZWU2NjA3Li5mODhlZmU4ZTczNDAzODhjZmY2ZGNjMzNjY2YzMTExMzYy
NTgyZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTM2Nyw2ICsxMzY3LDcgQEAgc2V0KFdl
YkNvcmVfU09VUkNFUwogICAgIGNzcy9ET01DU1NOYW1lc3BhY2UuY3BwCiAgICAgY3NzL0RPTU1h
dHJpeC5jcHAKICAgICBjc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwCisgICAgY3NzL0RPTVBvaW50
UmVhZE9ubHkuY3BwCiAgICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcAog
ICAgIGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKICAgICBjc3MvRGVwcmVjYXRlZENTU09N
VmFsdWVMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGNmNmU0OWY1YmQ2YTJkZWY3YmU0ZTMyNjdmNjM1YTk1OTNiMzFh
NWUuLjNkMDk2MDJhZDBkZTkwMDEwOGQzMjlmZGYxZDBiYmNlZDM3MGRlMWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU2Miw2
ICs1NjIsNyBAQAogCQkwRkY1MDI2QTEwMkJBOTQzMDA2NkYzOUEgLyogSlNTdHlsZU1lZGlhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkY1MDI2ODEw
MkJBOTQzMDA2NkYzOUEgLyogSlNTdHlsZU1lZGlhLmggKi87IH07CiAJCTBGRjUwMjcxMTAyQkE5
NkEwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjUwMjZFMTAyQkE5NjYwMDY2RjM5QSAvKiBTdHlsZU1lZGlh
LmNwcCAqLzsgfTsKIAkJMEZGNTAyNzIxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjUwMjZGMTAy
QkE5NkEwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmggKi87IH07CisJCTBGRjgzNUI4MUVFMzI3NEYw
MDhCNENDNyAvKiBET01Qb2ludFJlYWRPbmx5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjgzNUI3MUVFMzI3NEYwMDhCNENDNyAvKiBET01Qb2lu
dFJlYWRPbmx5LmNwcCAqLzsgfTsKIAkJMEZGRDRENjAxODY1MUZBMzAwNTEyRjZFIC8qIEFzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZGRDRENUUxODY1MUZBMzAwNTEyRjZFIC8qIEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwICovOyB9OwogCQkwRkZENEQ2MTE4NjUxRkEzMDA1MTJGNkUgLyogQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZGRDRENUYxODY1MUZBMzAwNTEyRjZFIC8qIEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxMEZCMDg0QjE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJMTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTBGQjA4NEExNEUx
NUM3RTAwQTNEQjk4IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCAqLzsgfTsKQEAgLTc5OTksNiArODAw
MCw3IEBACiAJCTBGRjUwMjZFMTAyQkE5NjYwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlTWVkaWEuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkY1MDI2RjEwMkJBOTZBMDA2NkYzOUEgLyogU3R5bGVN
ZWRpYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZU1lZGlhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRjUwMjcwMTAyQkE5NkEwMDY2RjM5QSAvKiBT
dHlsZU1lZGlhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdHlsZU1lZGlhLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZGODM1QjcxRUUzMjc0RjAwOEI0Q0M3IC8qIERP
TVBvaW50UmVhZE9ubHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RE9NUG9pbnRSZWFkT25seS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRkQ0
RDVFMTg2NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkZENEQ1RjE4NjUxRkEzMDA1
MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTEwRkIwODRBMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5h
Z2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1YmxpY1VSTE1hbmFnZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1NzE2LDYgKzI1NzE4LDcgQEAKIAkJ
CQkwRjQ5NjY5QTFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnQuaWRsICovLAogCQkJCTBGNDk2
NkEyMURCNDA5MTAwMEEyNzRCQiAvKiBET01Qb2ludEluaXQuaCAqLywKIAkJCQkwRjQ5NjZBMTFE
QjQwOTAxMDBBMjc0QkIgLyogRE9NUG9pbnRJbml0LmlkbCAqLywKKwkJCQkwRkY4MzVCNzFFRTMy
NzRGMDA4QjRDQzcgLyogRE9NUG9pbnRSZWFkT25seS5jcHAgKi8sCiAJCQkJMEY0OTY2OUIxREI0
MDhDMTAwQTI3NEJCIC8qIERPTVBvaW50UmVhZE9ubHkuaCAqLywKIAkJCQkwRjQ5NjY5QzFEQjQw
OEMxMDBBMjc0QkIgLyogRE9NUG9pbnRSZWFkT25seS5pZGwgKi8sCiAJCQkJMEY0NzEwQTkxREI1
NkFGQzAwMkRDRUMzIC8qIERPTVJlY3QuaCAqLywKQEAgLTMxMjA5LDYgKzMxMjEyLDcgQEAKIAkJ
CQkyRDUwMDJGODFCNTZENzgxMDAyMEFBRjcgLyogRE9NUGF0aC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOUM2RTRFQjBENzQ1RTJCMDA2NDQyRTkgLyogRE9NUGx1Z2luLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE5QzZFNEVGMEQ3NDVFMzgwMDY0NDJFOSAvKiBET01QbHVnaW5BcnJheS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkwRkY4MzVCODFFRTMyNzRGMDA4QjRDQzcgLyogRE9NUG9pbnRS
ZWFkT25seS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NjgzNDRERjFFRERGQUFBMDBCNzc5NUIg
LyogRE9NUmVjdExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1QTg2ODQwQzMzNjc2MDAw
RUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTU2MTBGMTEx
QTcwNEVCMDBCODJEMjcgLyogRE9NU3RyaW5nTGlzdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmgKaW5kZXggYTliNGRkZjc0YWRlODdiNWMxOTcy
OTlkYmNjMjYxZDE4NjlhZTEyMS4uZTE3Njk0Y2IzZjNlOWRjNjFiZjNiNGQxM2M2MjE4NWRlNTI5
MWY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmgKQEAgLTEwOCw2ICsx
MDgsOCBAQCBwdWJsaWM6CiAKICAgICBFeGNlcHRpb25PcjxTdHJpbmc+IHRvU3RyaW5nKCkgY29u
c3Q7CiAKKyAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtYXRpb25NYXRy
aXgoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeDsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgRE9NTWF0
cml4UmVhZE9ubHkoKSA9IGRlZmF1bHQ7CiAgICAgRE9NTWF0cml4UmVhZE9ubHkoY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmLCBJczJEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01Qb2ludFJlYWRPbmx5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJlYWRP
bmx5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41NTY0OTY0OTczMTA3ZDUyNTYyYzg4ODBjNWI1NmY1NmY4YWQ1
MzAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9u
bHkuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICog
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKKyAqIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBD
T1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
CisgKiBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
CisgKiBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VECisgKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVBvaW50UmVh
ZE9ubHkuaCIKKworI2luY2x1ZGUgIkRPTU1hdHJpeFJlYWRPbmx5LmgiCisjaW5jbHVkZSAiRE9N
UG9pbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRXhjZXB0aW9uT3I8UmVmPERP
TVBvaW50Pj4gRE9NUG9pbnRSZWFkT25seTo6bWF0cml4VHJhbnNmb3JtKERPTU1hdHJpeEluaXQm
JiBtYXRyaXhJbml0KSBjb25zdAoreworICAgIGF1dG8gbWF0cml4T3JFeGNlcHRpb24gPSBET01N
YXRyaXhSZWFkT25seTo6ZnJvbU1hdHJpeChXVEZNb3ZlKG1hdHJpeEluaXQpKTsKKyAgICBpZiAo
bWF0cml4T3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBtYXRyaXhP
ckV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAgICBhdXRvIG1hdHJpeCA9IG1hdHJp
eE9yRXhjZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIAorICAgIGRvdWJsZSB4ID0g
dGhpcy0+eCgpOworICAgIGRvdWJsZSB5ID0gdGhpcy0+eSgpOworICAgIGRvdWJsZSB6ID0gdGhp
cy0+eigpOworICAgIGRvdWJsZSB3ID0gdGhpcy0+dygpOworICAgIG1hdHJpeC0+dHJhbnNmb3Jt
YXRpb25NYXRyaXgoKS5tYXA0Q29tcG9uZW50UG9pbnQoeCwgeSwgeiwgdyk7CisgICAgCisgICAg
cmV0dXJuIHsgRE9NUG9pbnQ6OmNyZWF0ZSh4LCB5LCB6LCB3KSB9OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJl
YWRPbmx5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5oCmluZGV4IDFi
OTgzMDJhY2E2ZjQ0MTg1OWFiNDVkZjE4MjhhZWE0MGFhNmY2OGIuLmU4YTgwY2I2NTZiZmU1ZGI0
ZGZiOTZjMWMwYTMzMjQ4NmEyOGVjOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01Qb2ludFJlYWRPbmx5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9u
bHkuaApAQCAtMzEsMTEgKzMxLDE1IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRPTVBv
aW50SW5pdC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3Jh
cHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitzdHJ1Y3QgRE9NTWF0cml4SW5pdDsKK2NsYXNzIERPTVBvaW50OworCiBjbGFzcyBE
T01Qb2ludFJlYWRPbmx5IDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50
ZWQ8RE9NUG9pbnRSZWFkT25seT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgpAQCAtNDgsNiArNTIsOCBAQCBwdWJsaWM6CiAgICAgZG91YmxlIHooKSBjb25zdCB7IHJl
dHVybiBtX3o7IH0KICAgICBkb3VibGUgdygpIGNvbnN0IHsgcmV0dXJuIG1fdzsgfQogCisgICAg
RXhjZXB0aW9uT3I8UmVmPERPTVBvaW50Pj4gbWF0cml4VHJhbnNmb3JtKERPTU1hdHJpeEluaXQm
JikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBET01Qb2ludFJlYWRPbmx5KGRvdWJsZSB4LCBk
b3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSB3KQogICAgICAgICA6IG1feCh4KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsCmluZGV4IDlhMDBiOWY0ZjM3NzQ0NmQ3OGIxZWIy
NjFkNmE4ZjdkZTJlMjljODYuLjNmZmQ2NmZkNzEyMWE5ZGM3Y2M1Zjg1NzNhNzZhNzg5NzQ0Zjk2
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5pZGwKQEAgLTQ0LDggKzQ0
LDcgQEAgaW50ZXJmYWNlIERPTVBvaW50UmVhZE9ubHkgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHo7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJp
Y3RlZCBkb3VibGUgdzsKIAotICAgIC8vIEZJWE1FOiBObyBzdXBwb3J0IGZvciBET01NYXRyaXgg
eWV0ICh3ZWJraXQub3JnL2IvMTEwMDAxKQotICAgIC8vIERPTVBvaW50IG1hdHJpeFRyYW5zZm9y
bShvcHRpb25hbCBET01NYXRyaXhJbml0IG1hdHJpeCk7CisgICAgW01heVRocm93RXhjZXB0aW9u
XSBET01Qb2ludCBtYXRyaXhUcmFuc2Zvcm0ob3B0aW9uYWwgRE9NTWF0cml4SW5pdCBtYXRyaXgp
OwogCiAgICAgc2VyaWFsaXplciA9IHsgYXR0cmlidXRlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1h
dHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Ry
YW5zZm9ybWF0aW9uTWF0cml4LmNwcAppbmRleCA3YTc4M2FhNzAxNjhlMzU0Mzc1NGViNDJkOGI0
YmY5ODg2YjNhYTgzLi5mYTgzY2RiNDFkZmUxYzA4YzM3MjQ1YWFiM2VkNDcxMjE2ZmMwMWNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Ry
YW5zZm9ybWF0aW9uTWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcApAQCAtNDQsMTMgKzQ0LDYg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8KLS8vIFN1cHBvcnRpbmcgTWF0aCBGdW5jdGlv
bnMKLS8vCi0vLyBUaGlzIGlzIGEgc2V0IG9mIGZ1bmN0aW9uIGZyb20gdmFyaW91cyBwbGFjZXMg
KGF0dHJpYnV0ZWQgaW5saW5lKSB0byBkbyB0aGluZ3MgbGlrZQotLy8gaW52ZXJzaW9uIGFuZCBk
ZWNvbXBvc2l0aW9uIG9mIGEgNHg0IG1hdHJpeC4gVGhleSBhcmUgdXNlZCB0aHJvdWdob3V0IHRo
ZSBjb2RlCi0vLwotCi0vLwogLy8gQWRhcHRlZCBmcm9tIE1hdHJpeCBJbnZlcnNpb24gYnkgUmlj
aGFyZCBDYXJsaW5nLCBHcmFwaGljcyBHZW1zIDxodHRwOi8vdG9nLmFjbS5vcmcvR3JhcGhpY3NH
ZW1zL2luZGV4Lmh0bWw+LgogCiAvLyBFVUxBOiBUaGUgR3JhcGhpY3MgR2VtcyBjb2RlIGlzIGNv
cHlyaWdodC1wcm90ZWN0ZWQuIEluIG90aGVyIHdvcmRzLCB5b3UgY2Fubm90IGNsYWltIHRoZSB0
ZXh0IG9mIHRoZSBjb2RlCkBAIC03MDYsNiArNjk5LDI1IEBAIExheW91dFJlY3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXg6OmNsYW1wZWRCb3VuZHNPZlByb2plY3RlZFF1YWQoY29uc3QgRmxvYXRRdWFk
JiBxCiAgICAgcmV0dXJuIExheW91dFJlY3QoTGF5b3V0VW5pdDo6Y2xhbXAobGVmdCksIExheW91
dFVuaXQ6OmNsYW1wKHRvcCksICBMYXlvdXRVbml0OjpjbGFtcChyaWdodCAtIGxlZnQpLCBMYXlv
dXRVbml0OjpjbGFtcChib3R0b20gLSB0b3ApKTsKIH0KIAordm9pZCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6bWFwNENvbXBvbmVudFBvaW50KGRvdWJsZSYgeCwgZG91YmxlJiB5LCBkb3VibGUmIHos
IGRvdWJsZSYgdykgY29uc3QKK3sKKyAgICBpZiAoaXNJZGVudGl0eU9yVHJhbnNsYXRpb24oKSkg
eworICAgICAgICB4ICs9IG1fbWF0cml4WzNdWzBdOworICAgICAgICB5ICs9IG1fbWF0cml4WzNd
WzFdOworICAgICAgICB6ICs9IG1fbWF0cml4WzNdWzJdOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgVmVjdG9yNCBpbnB1dCA9IHsgeCwgeSwgeiwgdyB9OworICAgIFZlY3RvcjQgcmVz
dWx0OworICAgIHY0TXVsUG9pbnRCeU1hdHJpeChpbnB1dCwgbV9tYXRyaXgsIHJlc3VsdCk7CisK
KyAgICB4ID0gcmVzdWx0WzBdOworICAgIHkgPSByZXN1bHRbMV07CisgICAgeiA9IHJlc3VsdFsy
XTsKKyAgICB3ID0gcmVzdWx0WzNdOworfQorCiBGbG9hdFBvaW50IFRyYW5zZm9ybWF0aW9uTWF0
cml4OjptYXBQb2ludChjb25zdCBGbG9hdFBvaW50JiBwKSBjb25zdAogewogICAgIGlmIChpc0lk
ZW50aXR5T3JUcmFuc2xhdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5o
CmluZGV4IDU2ZjIyNWEzYTZhZDQ1NjVjODU4NTEwZGY3NTg2Mjk2NDFiNzQ1M2UuLjFiZDgzMzRl
ZDNkNGMzZjRjYTQwMDcyOWU3OGM3NGI1NDMwYzBiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9y
bWF0aW9uTWF0cml4LmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
I2lmbmRlZiBUcmFuc2Zvcm1hdGlvbk1hdHJpeF9oCi0jZGVmaW5lIFRyYW5zZm9ybWF0aW9uTWF0
cml4X2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUg
IkZsb2F0UG9pbnQzRC5oIgpAQCAtMTM1LDYgKzEzNCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRo
aXMgZm9ybSBwcmVzZXJ2ZXMgdGhlIGRvdWJsZSBtYXRoIGZyb20gaW5wdXQgdG8gb3V0cHV0Lgog
ICAgIHZvaWQgbWFwKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlJiB4MiwgZG91YmxlJiB5Mikg
Y29uc3QgeyBtdWx0VmVjTWF0cml4KHgsIHksIHgyLCB5Mik7IH0KKyAgICB2b2lkIG1hcDRDb21w
b25lbnRQb2ludChkb3VibGUmIHgsIGRvdWJsZSYgeSwgZG91YmxlJiB6LCBkb3VibGUmIHcpIGNv
bnN0OwogCiAgICAgLy8gTWFwcyBhIDNEIHBvaW50IHRocm91Z2ggdGhlIHRyYW5zZm9ybSwgcmV0
dXJuaW5nIGEgM0QgcG9pbnQuCiAgICAgRmxvYXRQb2ludDNEIG1hcFBvaW50KGNvbnN0IEZsb2F0
UG9pbnQzRCYpIGNvbnN0OwpAQCAtNDI3LDUgKzQyNywzIEBAIHByaXZhdGU6CiBXRUJDT1JFX0VY
UE9SVCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBUcmFu
c2Zvcm1hdGlvbk1hdHJpeF9oCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA4ZDMz
NTgxZTNiN2M2NzY1OTI2YzAxY2Y0ZDBmNmE3N2QzNWVlYmY1Li5jZGZhNDgxNWUwYmIwNTQ0Yjcw
MTRkY2NlZGYwZTJhODA1MDAxMWQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMSBAQAorMjAxNy0wNi0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRE9NUG9pbnRSZWFkT25seS5tYXRyaXhUcmFu
c2Zvcm0oKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcyODk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBDb3JyZWN0IHZhcmlhYmxlIG5hbWluZyBpbiBET01Qb2ludC0wMDIuaHRtbC4KKyAg
ICAgICAgCisgICAgICAgIERPTVBvaW50LTAwMy5odG1sIGlzIG5ldyB0ZXN0IHdoaWNoIGV4ZXJj
aXNlcyBtYXRyaXhUcmFuc2Zvcm0oKSB3aXRoIG5vbi0yRAorICAgICAgICBwb2ludHMgYW5kIG1h
dHJpY2VzLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS0xL0RP
TVBvaW50LTAwMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9nZW9tZXRyeS0xL0RPTVBvaW50LTAwMi5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5LTEvRE9NUG9pbnQtMDAzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9o
aXN0b3JpY2FsLWV4cGVjdGVkLnR4dDoKKwogMjAxNy0wNi0wMiAgSmF2aWVyIEZlcm5hbmRleiAg
PGpmZXJuYW5kZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWdyaWRdIE1hcmdpbiB3cm9u
ZyBhcHBsaWVkIHdoZW4gc3RyZXRjaGluZyBhbiBvcnRob2dvbmFsIGl0ZW0gaW4gZml4ZWQgc2l6
ZSB0cmFjawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Q
b2ludC0wMDItZXhwZWN0ZWQudHh0CmluZGV4IDRkZDEwMjhkMjFlODMzMWZhMjZmNzNiYTA2OTJm
YWU0ODAwZWYxMTAuLjE4ZmJmMmU1M2Y5YTRjOGU4MjA5OWRkZDZjNzBmY2YwZmJmY2JmYTkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2dlb21ldHJ5LTEvRE9NUG9pbnQtMDAyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS0xL0RPTVBvaW50LTAw
Mi1leHBlY3RlZC50eHQKQEAgLTE4LDcgKzE4LDcgQEAgUEFTUyB0ZXN0IERPTVBvaW50IGZyb21Q
b2ludCB3aXRoIHgsIHksIHosIHcKIFBBU1MgdGVzdCBET01Qb2ludCBmcm9tUG9pbnQgd2l0aCB4
LCB5LCB6LCB3LCB2IAogUEFTUyB0ZXN0IERPTVBvaW50IGZyb21Qb2ludCB3aXRoIHgsIHogCiBQ
QVNTIHRlc3QgRE9NUG9pbnQgZnJvbVBvaW50IHdpdGggdW5kZWZpbmVkIHZhbHVlIAotRkFJTCB0
ZXN0IERPTVBvaW50IG1hdHJpeFRyYW5zZm9ybSBwb2ludC5tYXRyaXhUcmFuc2Zvcm0gaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAncG9pbnQubWF0cml4VHJhbnNmb3JtKG1hdHJpeCknLCAncG9pbnQu
bWF0cml4VHJhbnNmb3JtJyBpcyB1bmRlZmluZWQpCitQQVNTIHRlc3QgRE9NUG9pbnQgbWF0cml4
VHJhbnNmb3JtIAogUEFTUyB0ZXN0IERPTVBvaW50IEF0dHJpYnV0ZXMgdW5kZWZpbmVkIAogUEFT
UyB0ZXN0IERPTVBvaW50IEF0dHJpYnV0ZXMgTmFOIEluZmluaXR5IAogUEFTUyB0ZXN0IERPTVBv
aW50UmVhZE9ubHkgQ29uc3RydWN0b3Igbm8gYXJncyAKQEAgLTM4LDYgKzM4LDYgQEAgUEFTUyB0
ZXN0IERPTVBvaW50UmVhZE9ubHkgZnJvbVBvaW50IHdpdGggeCwgeSwgeiwgdwogUEFTUyB0ZXN0
IERPTVBvaW50UmVhZE9ubHkgZnJvbVBvaW50IHdpdGggeCwgeSwgeiwgdywgdiAKIFBBU1MgdGVz
dCBET01Qb2ludFJlYWRPbmx5IGZyb21Qb2ludCB3aXRoIHgsIHogCiBQQVNTIHRlc3QgRE9NUG9p
bnRSZWFkT25seSBmcm9tUG9pbnQgd2l0aCB1bmRlZmluZWQgdmFsdWUgCi1GQUlMIHRlc3QgRE9N
UG9pbnRSZWFkT25seSBtYXRyaXhUcmFuc2Zvcm0gcG9pbnQubWF0cml4VHJhbnNmb3JtIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ3BvaW50Lm1hdHJpeFRyYW5zZm9ybShtYXRyaXgpJywgJ3BvaW50
Lm1hdHJpeFRyYW5zZm9ybScgaXMgdW5kZWZpbmVkKQorUEFTUyB0ZXN0IERPTVBvaW50UmVhZE9u
bHkgbWF0cml4VHJhbnNmb3JtIAogUEFTUyB0ZXN0IERPTVBvaW50UmVhZE9ubHkgQXR0cmlidXRl
cyB1bmRlZmluZWQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5LTEvRE9NUG9pbnQtMDAyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS0xL0RPTVBv
aW50LTAwMi5odG1sCmluZGV4IGRkNTJmMmI0OWJjODc4Y2RiNTE2NjRiN2JiMTg2NWExYmIwYjI5
MTMuLmNjZWYwMDkzYTMzN2M2ZDkwMjZkMjM0YWEwY2YyYmNmZGNiYmVjNzQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5
LTEvRE9NUG9pbnQtMDAyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDIuaHRtbApAQCAtMTMsOSAr
MTMsOSBAQAogICAgICAgICBmdW5jdGlvbiBnZXRNYXRyaXhUcmFuc2Zvcm0obWF0cml4LCBwb2lu
dCkgewogICAgICAgICAgICAgdmFyIHggPSBwb2ludC54ICogbWF0cml4Lm0xMSArIHBvaW50Lnkg
KiBtYXRyaXgubTIxICsgcG9pbnQueiAqIG1hdHJpeC5tMzEgKyBwb2ludC53ICogbWF0cml4Lm00
MTsKICAgICAgICAgICAgIHZhciB5ID0gcG9pbnQueCAqIG1hdHJpeC5tMTIgKyBwb2ludC55ICog
bWF0cml4Lm0yMiArIHBvaW50LnogKiBtYXRyaXgubTMyICsgcG9pbnQudyAqIG1hdHJpeC5tNDI7
Ci0gICAgICAgICAgICB2YXIgdyA9IHBvaW50LnggKiBtYXRyaXgubTEzICsgcG9pbnQueSAqIG1h
dHJpeC5tMjMgKyBwb2ludC56ICogbWF0cml4Lm0zMyArIHBvaW50LncgKiBtYXRyaXgubTQzOwot
ICAgICAgICAgICAgdmFyIHogPSBwb2ludC54ICogbWF0cml4Lm0xNCArIHBvaW50LnkgKiBtYXRy
aXgubTI0ICsgcG9pbnQueiAqIG1hdHJpeC5tMzQgKyBwb2ludC53ICogbWF0cml4Lm00NDsKLSAg
ICAgICAgICAgIHJldHVybiBuZXcgRE9NUG9pbnQoeCwgeSwgdywgeikKKyAgICAgICAgICAgIHZh
ciB6ID0gcG9pbnQueCAqIG1hdHJpeC5tMTMgKyBwb2ludC55ICogbWF0cml4Lm0yMyArIHBvaW50
LnogKiBtYXRyaXgubTMzICsgcG9pbnQudyAqIG1hdHJpeC5tNDM7CisgICAgICAgICAgICB2YXIg
dyA9IHBvaW50LnggKiBtYXRyaXgubTE0ICsgcG9pbnQueSAqIG1hdHJpeC5tMjQgKyBwb2ludC56
ICogbWF0cml4Lm0zNCArIHBvaW50LncgKiBtYXRyaXgubTQ0OworICAgICAgICAgICAgcmV0dXJu
IG5ldyBET01Qb2ludCh4LCB5LCB6LCB3KQogICAgICAgICB9CiAKICAgICAgICAgdGVzdChmdW5j
dGlvbigpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2dlb21ldHJ5LTEvRE9NUG9pbnQtMDAzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5LTEvRE9N
UG9pbnQtMDAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWU4YzQ3NzdhYzk2Nzg3M2NiMTk3
ZjUwMmU1OTEyYTFkYTU3YzhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCBET01Qb2ludCBhbmQgRE9NUG9pbnRSZWFk
T25seSBpbnRlcmZhY2VzCisKKworUEFTUyB0ZXN0IERPTVBvaW50IG1hdHJpeFRyYW5zZm9ybSB3
aXRoIDNkIG1hdHJpeCAKK1BBU1MgdGVzdCBET01Qb2ludCBtYXRyaXhUcmFuc2Zvcm0gd2l0aCBw
ZXJzcGVjdGl2ZSBwb2ludCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5LTEv
RE9NUG9pbnQtMDAzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM1NDhlNWJmM2NhZTM5MmJlNDJiYzc1ODBm
NzI3YWY5YjgwZjM0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5LTEvRE9NUG9pbnQtMDAzLmh0bWwKQEAg
LTAsMCArMSw0NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD48aGVhZD4KKyAgICA8dGl0bGU+
R2VvbWV0cnkgSW50ZXJmYWNlczogRE9NUG9pbnRSZWFkT25seS5tYXRyaXhUcmFuc2Zvcm08L3Rp
dGxlPgorICAgIDxsaW5rIGhyZWY9Im1haWx0bzpzaW1vbi5mcmFzZXJAYXBwbGUuY29tIiByZWw9
ImF1dGhvciIgdGl0bGU9IlNpbW9uIEZyYXNlciI+CisgICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9k
cmFmdHMuZnh0Zi5vcmcvZ2VvbWV0cnktMS8jRE9NUG9pbnQiIHJlbD0iaGVscCI+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxwPlRlc3QgRE9NUG9pbnQgYW5kIERPTVBvaW50UmVhZE9ubHkgaW50
ZXJmYWNlczwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGZ1bmN0aW9uIGdldE1hdHJpeFRyYW5zZm9ybShtYXRyaXgsIHBvaW50KSB7CisgICAgICAg
ICAgICB2YXIgeCA9IHBvaW50LnggKiBtYXRyaXgubTExICsgcG9pbnQueSAqIG1hdHJpeC5tMjEg
KyBwb2ludC56ICogbWF0cml4Lm0zMSArIHBvaW50LncgKiBtYXRyaXgubTQxOworICAgICAgICAg
ICAgdmFyIHkgPSBwb2ludC54ICogbWF0cml4Lm0xMiArIHBvaW50LnkgKiBtYXRyaXgubTIyICsg
cG9pbnQueiAqIG1hdHJpeC5tMzIgKyBwb2ludC53ICogbWF0cml4Lm00MjsKKyAgICAgICAgICAg
IHZhciB6ID0gcG9pbnQueCAqIG1hdHJpeC5tMTMgKyBwb2ludC55ICogbWF0cml4Lm0yMyArIHBv
aW50LnogKiBtYXRyaXgubTMzICsgcG9pbnQudyAqIG1hdHJpeC5tNDM7CisgICAgICAgICAgICB2
YXIgdyA9IHBvaW50LnggKiBtYXRyaXgubTE0ICsgcG9pbnQueSAqIG1hdHJpeC5tMjQgKyBwb2lu
dC56ICogbWF0cml4Lm0zNCArIHBvaW50LncgKiBtYXRyaXgubTQ0OworICAgICAgICAgICAgcmV0
dXJuIG5ldyBET01Qb2ludCh4LCB5LCB6LCB3KQorICAgICAgICB9CisgICAgICAgIHRlc3QoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgcG9pbnQgPSBuZXcgRE9NUG9pbnQoNSwgNCk7Cisg
ICAgICAgICAgICB2YXIgbWF0cml4ID0gbmV3IERPTU1hdHJpeCgpOworICAgICAgICAgICAgbWF0
cml4LnNldE1hdHJpeFZhbHVlKCdwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMTIzcHgs
IDQ1NnB4LCAxMjBweCknKTsKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSBwb2ludC5tYXRyaXhU
cmFuc2Zvcm0obWF0cml4KTsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IGdldE1hdHJpeFRy
YW5zZm9ybShtYXRyaXgsIHBvaW50KTsKKyAgICAgICAgICAgIGNoZWNrRE9NUG9pbnQocmVzdWx0
LCBleHBlY3RlZCk7CisgICAgICAgIH0sJ3Rlc3QgRE9NUG9pbnQgbWF0cml4VHJhbnNmb3JtIHdp
dGggM2QgbWF0cml4Jyk7CisKKyAgICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IHZhciBwb2ludCA9IERPTVBvaW50UmVhZE9ubHkuZnJvbVBvaW50KHt4OjEsIHk6MiwgejozLCB3
OjAuMDAyMzR9KTsKKyAgICAgICAgICAgIHZhciBtYXRyaXggPSBuZXcgRE9NTWF0cml4KCk7Cisg
ICAgICAgICAgICBtYXRyaXguc2V0TWF0cml4VmFsdWUoJ3BlcnNwZWN0aXZlKDQwMHB4KSB0cmFu
c2xhdGUzZCgxMjNweCwgNDU2cHgsIDEyMHB4KScpOworICAgICAgICAgICAgdmFyIHJlc3VsdCA9
IHBvaW50Lm1hdHJpeFRyYW5zZm9ybShtYXRyaXgpOworICAgICAgICAgICAgdmFyIGV4cGVjdGVk
ID0gZ2V0TWF0cml4VHJhbnNmb3JtKG1hdHJpeCwgcG9pbnQpOworICAgICAgICAgICAgY2hlY2tE
T01Qb2ludChyZXN1bHQsIGV4cGVjdGVkKTsKKyAgICAgICAgfSwndGVzdCBET01Qb2ludCBtYXRy
aXhUcmFuc2Zvcm0gd2l0aCBwZXJzcGVjdGl2ZSBwb2ludCcpOworCisgICAgICAgIGZ1bmN0aW9u
IGNoZWNrRE9NUG9pbnQocCwgZXhwKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHAueCwg
ZXhwLngsICJ4IGlzIG5vdCBtYXRjaGVkIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHAu
eSwgZXhwLnksICJ5IGlzIG5vdCBtYXRjaGVkIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHAueiwgZXhwLnosICJ6IGlzIG5vdCBtYXRjaGVkIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHAudywgZXhwLncsICJ3IGlzIG5vdCBtYXRjaGVkIik7CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS0xL2hpc3RvcmljYWwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2Vv
bWV0cnktMS9oaXN0b3JpY2FsLWV4cGVjdGVkLnR4dAppbmRleCA0ZDUzNjUwYzhkNmMzOTA2NGVh
YTZiYWRmOTE1OTdhMmI2Yzg5YmM0Li43NTg3ODc1OWM3NTRlOWIxMWIyYTFlOGIwZjczM2Y1MjVh
ZGJlM2I1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9nZW9tZXRyeS0xL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5LTEvaGlz
dG9yaWNhbC1leHBlY3RlZC50eHQKQEAgLTI4LDcgKzI4LDcgQEAgUEFTUyBET01NYXRyaXggcm90
YXRlRnJvbVZlY3RvclNlbGYgbnVtYmVyIG9mIHJlcXVpcmVkIGFyZ3VtZW50cwogUEFTUyBET01N
YXRyaXggcm90YXRlQXhpc0FuZ2xlU2VsZiBudW1iZXIgb2YgcmVxdWlyZWQgYXJndW1lbnRzIAog
UEFTUyBET01NYXRyaXggc2tld1hTZWxmIG51bWJlciBvZiByZXF1aXJlZCBhcmd1bWVudHMgCiBQ
QVNTIERPTU1hdHJpeCBza2V3WVNlbGYgbnVtYmVyIG9mIHJlcXVpcmVkIGFyZ3VtZW50cyAKLUZB
SUwgRE9NUG9pbnRSZWFkT25seSBtYXRyaXhUcmFuc2Zvcm0gbnVtYmVyIG9mIHJlcXVpcmVkIGFy
Z3VtZW50cyB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc2VsZltpbnRl
cmZdLnByb3RvdHlwZVttZW1iZXJdLmxlbmd0aCcpCitQQVNTIERPTVBvaW50UmVhZE9ubHkgbWF0
cml4VHJhbnNmb3JtIG51bWJlciBvZiByZXF1aXJlZCBhcmd1bWVudHMgCiBQQVNTIERPTU1hdHJp
eFJlYWRPbmx5IG11bHRpcGx5IG51bWJlciBvZiByZXF1aXJlZCBhcmd1bWVudHMgCiBQQVNTIERP
TU1hdHJpeCBtdWx0aXBseVNlbGYgbnVtYmVyIG9mIHJlcXVpcmVkIGFyZ3VtZW50cyAKIFBBU1Mg
RE9NTWF0cml4IHByZU11bHRpcGx5U2VsZiBudW1iZXIgb2YgcmVxdWlyZWQgYXJndW1lbnRzIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311940</attachid>
            <date>2017-06-03 12:55:10 -0700</date>
            <delta_ts>2017-06-03 13:31:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172896-20170603125509.patch</filename>
            <type>text/plain</type>
            <size>21400</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZlNWU2ZmM4ZDI4MTQ2
Y2M5ZjgyOWZiMmY4YzJiNzBmODM4MmJlNC4uYTk0NzNhMTE5YWU4YjFiYWQ3NTJlZDJjOTIwZjlk
YTY4M2JiZjk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDE3LTA2LTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEltcGxlbWVudCBE
T01Qb2ludFJlYWRPbmx5Lm1hdHJpeFRyYW5zZm9ybSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI4OTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBET01Qb2ludFJlYWRPbmx5Lm1hdHJpeFRyYW5zZm9y
bSgpIGNyZWF0ZXMgdGhlIG1hdHJpeCBvciB0aHJvd3MsIHRoZW4gdXNlcworICAgICAgICBhIG5l
dyBmdW5jdGlvbiBpbiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0byBtYXAgeCx5LHosdyB0aHJvdWdo
IHRoZSBtYXRyaXguCisKKyAgICAgICAgVGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDMuaHRtbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGNzcy9ET01NYXRyaXhSZWFkT25seS5oOgorICAgICAgICAoV2ViQ29yZTo6RE9N
TWF0cml4UmVhZE9ubHk6OnRyYW5zZm9ybWF0aW9uTWF0cml4KToKKyAgICAgICAgKiBkb20vRE9N
UG9pbnRSZWFkT25seS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2lu
dFJlYWRPbmx5LmlkbC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVBvaW50UmVhZE9ubHk6Om1hdHJp
eFRyYW5zZm9ybSk6CisgICAgICAgICogZG9tL0RPTVBvaW50UmVhZE9ubHkuaDoKKyAgICAgICAg
KiBkb20vRE9NUG9pbnRSZWFkT25seS5pZGw6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeDo6bWFwNENvbXBvbmVudFBvaW50KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4Lmg6CisKKzIwMTct
MDYtMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAg
U29ydCB0aGUgcHJvamVjdCBmaWxlLgogCiAgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxZDNkZGVmNmZkZjk2ZGE2Nzdk
MTE3Mjk1NjMxMTg1NzBiZWU2NjA3Li42MDgzZTEzMjZhNTgyN2MyMDBkYTAxOWY5MDdjNmNmYTAx
NzFhNGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ1OCw2ICsxNDU4LDcgQEAgc2V0KFdl
YkNvcmVfU09VUkNFUwogICAgIGRvbS9ET01FcnJvci5jcHAKICAgICBkb20vRE9NSW1wbGVtZW50
YXRpb24uY3BwCiAgICAgZG9tL0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCisgICAgZG9tL0RP
TVBvaW50UmVhZE9ubHkuY3BwCiAgICAgZG9tL0RPTVJlY3RMaXN0LmNwcAogICAgIGRvbS9ET01T
dHJpbmdMaXN0LmNwcAogICAgIGRvbS9EYXRhVHJhbnNmZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2Y2ZTQ5ZjViZDZh
MmRlZjdiZTRlMzI2N2Y2MzVhOTU5M2IzMWE1ZS4uM2QwOTYwMmFkMGRlOTAwMTA4ZDMyOWZkZjFk
MGJiY2VkMzcwZGUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNTYyLDYgKzU2Miw3IEBACiAJCTBGRjUwMjZBMTAyQkE5NDMw
MDY2RjM5QSAvKiBKU1N0eWxlTWVkaWEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGRjUwMjY4MTAyQkE5NDMwMDY2RjM5QSAvKiBKU1N0eWxlTWVkaWEu
aCAqLzsgfTsKIAkJMEZGNTAyNzExMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGNTAyNkUxMDJC
QTk2NjAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuY3BwICovOyB9OwogCQkwRkY1MDI3MjEwMkJBOTZB
MDA2NkYzOUEgLyogU3R5bGVNZWRpYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZGNTAyNkYxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuaCAq
LzsgfTsKKwkJMEZGODM1QjgxRUUzMjc0RjAwOEI0Q0M3IC8qIERPTVBvaW50UmVhZE9ubHkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGODM1Qjcx
RUUzMjc0RjAwOEI0Q0M3IC8qIERPTVBvaW50UmVhZE9ubHkuY3BwICovOyB9OwogCQkwRkZENEQ2
MDE4NjUxRkEzMDA1MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZENEQ1RTE4NjUxRkEz
MDA1MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgKi87IH07CiAJCTBGRkQ0
RDYxMTg2NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZENEQ1RjE4NjUxRkEz
MDA1MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5
OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxMEZCMDg0QTE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJMTWFuYWdl
ci5oICovOyB9OwpAQCAtNzk5OSw2ICs4MDAwLDcgQEAKIAkJMEZGNTAyNkUxMDJCQTk2NjAwNjZG
MzlBIC8qIFN0eWxlTWVkaWEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3R5bGVNZWRpYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRjUwMjZG
MTAyQkE5NkEwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFN0eWxlTWVkaWEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZG
NTAyNzAxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFN0eWxlTWVkaWEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkY4
MzVCNzFFRTMyNzRGMDA4QjRDQzcgLyogRE9NUG9pbnRSZWFkT25seS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01Qb2ludFJlYWRPbmx5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZGRDRENUUxODY1MUZBMzAwNTEyRjZFIC8qIEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGRkQ0RDVGMTg2NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTBGQjA4NEExNEUxNUM3
RTAwQTNEQjk4IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUHVibGljVVJMTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjU3MTYsNiArMjU3MTgsNyBAQAogCQkJCTBGNDk2NjlBMURCNDA4QzEwMEEyNzRCQiAvKiBE
T01Qb2ludC5pZGwgKi8sCiAJCQkJMEY0OTY2QTIxREI0MDkxMDAwQTI3NEJCIC8qIERPTVBvaW50
SW5pdC5oICovLAogCQkJCTBGNDk2NkExMURCNDA5MDEwMEEyNzRCQiAvKiBET01Qb2ludEluaXQu
aWRsICovLAorCQkJCTBGRjgzNUI3MUVFMzI3NEYwMDhCNENDNyAvKiBET01Qb2ludFJlYWRPbmx5
LmNwcCAqLywKIAkJCQkwRjQ5NjY5QjFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnRSZWFkT25s
eS5oICovLAogCQkJCTBGNDk2NjlDMURCNDA4QzEwMEEyNzRCQiAvKiBET01Qb2ludFJlYWRPbmx5
LmlkbCAqLywKIAkJCQkwRjQ3MTBBOTFEQjU2QUZDMDAyRENFQzMgLyogRE9NUmVjdC5oICovLApA
QCAtMzEyMDksNiArMzEyMTIsNyBAQAogCQkJCTJENTAwMkY4MUI1NkQ3ODEwMDIwQUFGNyAvKiBE
T01QYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZFNEVCMEQ3NDVFMkIwMDY0NDJFOSAv
KiBET01QbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlDNkU0RUYwRDc0NUUzODAwNjQ0
MkU5IC8qIERPTVBsdWdpbkFycmF5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRjgzNUI4MUVF
MzI3NEYwMDhCNENDNyAvKiBET01Qb2ludFJlYWRPbmx5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ2ODM0NERGMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzVBODY4NDBDMzM2NzYwMDBFRUE2NDkgLyogRE9NU2VsZWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUM1NTYxMEYxMTFBNzA0RUIwMEI4MkQyNyAvKiBET01TdHJpbmdMaXN0
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1h
dHJpeFJlYWRPbmx5LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4UmVhZE9ubHkuaApp
bmRleCBhOWI0ZGRmNzRhZGU4N2I1YzE5NzI5OWRiY2MyNjFkMTg2OWFlMTIxLi5lMTc2OTRjYjNm
M2U5ZGM2MWJmM2I0ZDEzYzYyMTg1ZGU1MjkxZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRE9NTWF0cml4UmVhZE9ubHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0
cml4UmVhZE9ubHkuaApAQCAtMTA4LDYgKzEwOCw4IEBAIHB1YmxpYzoKIAogICAgIEV4Y2VwdGlv
bk9yPFN0cmluZz4gdG9TdHJpbmcoKSBjb25zdDsKIAorICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiB0cmFuc2Zvcm1hdGlvbk1hdHJpeCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4OyB9
CisKIHByb3RlY3RlZDoKICAgICBET01NYXRyaXhSZWFkT25seSgpID0gZGVmYXVsdDsKICAgICBE
T01NYXRyaXhSZWFkT25seShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIElzMkQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1NjQ5NjQ5NzMx
MDdkNTI1NjJjODg4MGM1YjU2ZjU2ZjhhZDUzMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcK
KyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisg
KiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKKyAqIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRE9NUG9pbnRSZWFkT25seS5oIgorCisjaW5jbHVkZSAiRE9NTWF0cml4
UmVhZE9ubHkuaCIKKyNpbmNsdWRlICJET01Qb2ludC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisgICAgCitFeGNlcHRpb25PcjxSZWY8RE9NUG9pbnQ+PiBET01Qb2ludFJlYWRPbmx5OjptYXRy
aXhUcmFuc2Zvcm0oRE9NTWF0cml4SW5pdCYmIG1hdHJpeEluaXQpIGNvbnN0Cit7CisgICAgYXV0
byBtYXRyaXhPckV4Y2VwdGlvbiA9IERPTU1hdHJpeFJlYWRPbmx5Ojpmcm9tTWF0cml4KFdURk1v
dmUobWF0cml4SW5pdCkpOworICAgIGlmIChtYXRyaXhPckV4Y2VwdGlvbi5oYXNFeGNlcHRpb24o
KSkKKyAgICAgICAgcmV0dXJuIG1hdHJpeE9yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsK
KworICAgIGF1dG8gbWF0cml4ID0gbWF0cml4T3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVl
KCk7CisgICAgCisgICAgZG91YmxlIHggPSB0aGlzLT54KCk7CisgICAgZG91YmxlIHkgPSB0aGlz
LT55KCk7CisgICAgZG91YmxlIHogPSB0aGlzLT56KCk7CisgICAgZG91YmxlIHcgPSB0aGlzLT53
KCk7CisgICAgbWF0cml4LT50cmFuc2Zvcm1hdGlvbk1hdHJpeCgpLm1hcDRDb21wb25lbnRQb2lu
dCh4LCB5LCB6LCB3KTsKKyAgICAKKyAgICByZXR1cm4geyBET01Qb2ludDo6Y3JlYXRlKHgsIHks
IHosIHcpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01Qb2ludFJlYWRPbmx5LmgKaW5kZXggMWI5ODMwMmFjYTZmNDQxODU5YWI0NWRmMTgyOGFlYTQw
YWE2ZjY4Yi4uZThhODBjYjY1NmJmZTVkYjRkZmI5NmMxYzBhMzMyNDg2YTI4ZWM5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5oCkBAIC0zMSwxMSArMzEsMTUgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiRE9NUG9pbnRJbml0LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9u
T3IuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0cnVjdCBET01NYXRyaXhJbml0Owor
Y2xhc3MgRE9NUG9pbnQ7CisKIGNsYXNzIERPTVBvaW50UmVhZE9ubHkgOiBwdWJsaWMgU2NyaXB0
V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxET01Qb2ludFJlYWRPbmx5PiB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC00OCw2ICs1Miw4IEBAIHB1YmxpYzoK
ICAgICBkb3VibGUgeigpIGNvbnN0IHsgcmV0dXJuIG1fejsgfQogICAgIGRvdWJsZSB3KCkgY29u
c3QgeyByZXR1cm4gbV93OyB9CiAKKyAgICBFeGNlcHRpb25PcjxSZWY8RE9NUG9pbnQ+PiBtYXRy
aXhUcmFuc2Zvcm0oRE9NTWF0cml4SW5pdCYmKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIERP
TVBvaW50UmVhZE9ubHkoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeiwgZG91YmxlIHcpCiAg
ICAgICAgIDogbV94KHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRS
ZWFkT25seS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5pZGwKaW5k
ZXggOWEwMGI5ZjRmMzc3NDQ2ZDc4YjFlYjI2MWQ2YThmN2RlMmUyOWM4Ni4uM2ZmZDY2ZmQ3MTIx
YTlkYzdjYzVmODU3M2E3NmE3ODk3NDRmOTY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2lu
dFJlYWRPbmx5LmlkbApAQCAtNDQsOCArNDQsNyBAQCBpbnRlcmZhY2UgRE9NUG9pbnRSZWFkT25s
eSB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgejsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB3OwogCi0gICAgLy8gRklYTUU6
IE5vIHN1cHBvcnQgZm9yIERPTU1hdHJpeCB5ZXQgKHdlYmtpdC5vcmcvYi8xMTAwMDEpCi0gICAg
Ly8gRE9NUG9pbnQgbWF0cml4VHJhbnNmb3JtKG9wdGlvbmFsIERPTU1hdHJpeEluaXQgbWF0cml4
KTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVBvaW50IG1hdHJpeFRyYW5zZm9ybShvcHRp
b25hbCBET01NYXRyaXhJbml0IG1hdHJpeCk7CiAKICAgICBzZXJpYWxpemVyID0geyBhdHRyaWJ1
dGUgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCmluZGV4IDdh
NzgzYWE3MDE2OGUzNTQzNzU0ZWI0MmQ4YjRiZjk4ODZiM2FhODMuLmZhODNjZGI0MWRmZTFjMDhj
MzcyNDVhYWIzZWQ0NzEyMTZmYzAxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25N
YXRyaXguY3BwCkBAIC00NCwxMyArNDQsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLwot
Ly8gU3VwcG9ydGluZyBNYXRoIEZ1bmN0aW9ucwotLy8KLS8vIFRoaXMgaXMgYSBzZXQgb2YgZnVu
Y3Rpb24gZnJvbSB2YXJpb3VzIHBsYWNlcyAoYXR0cmlidXRlZCBpbmxpbmUpIHRvIGRvIHRoaW5n
cyBsaWtlCi0vLyBpbnZlcnNpb24gYW5kIGRlY29tcG9zaXRpb24gb2YgYSA0eDQgbWF0cml4LiBU
aGV5IGFyZSB1c2VkIHRocm91Z2hvdXQgdGhlIGNvZGUKLS8vCi0KLS8vCiAvLyBBZGFwdGVkIGZy
b20gTWF0cml4IEludmVyc2lvbiBieSBSaWNoYXJkIENhcmxpbmcsIEdyYXBoaWNzIEdlbXMgPGh0
dHA6Ly90b2cuYWNtLm9yZy9HcmFwaGljc0dlbXMvaW5kZXguaHRtbD4uCiAKIC8vIEVVTEE6IFRo
ZSBHcmFwaGljcyBHZW1zIGNvZGUgaXMgY29weXJpZ2h0LXByb3RlY3RlZC4gSW4gb3RoZXIgd29y
ZHMsIHlvdSBjYW5ub3QgY2xhaW0gdGhlIHRleHQgb2YgdGhlIGNvZGUKQEAgLTcwNiw2ICs2OTks
MjUgQEAgTGF5b3V0UmVjdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6Y2xhbXBlZEJvdW5kc09mUHJv
amVjdGVkUXVhZChjb25zdCBGbG9hdFF1YWQmIHEKICAgICByZXR1cm4gTGF5b3V0UmVjdChMYXlv
dXRVbml0OjpjbGFtcChsZWZ0KSwgTGF5b3V0VW5pdDo6Y2xhbXAodG9wKSwgIExheW91dFVuaXQ6
OmNsYW1wKHJpZ2h0IC0gbGVmdCksIExheW91dFVuaXQ6OmNsYW1wKGJvdHRvbSAtIHRvcCkpOwog
fQogCit2b2lkIFRyYW5zZm9ybWF0aW9uTWF0cml4OjptYXA0Q29tcG9uZW50UG9pbnQoZG91Ymxl
JiB4LCBkb3VibGUmIHksIGRvdWJsZSYgeiwgZG91YmxlJiB3KSBjb25zdAoreworICAgIGlmIChp
c0lkZW50aXR5T3JUcmFuc2xhdGlvbigpKSB7CisgICAgICAgIHggKz0gbV9tYXRyaXhbM11bMF07
CisgICAgICAgIHkgKz0gbV9tYXRyaXhbM11bMV07CisgICAgICAgIHogKz0gbV9tYXRyaXhbM11b
Ml07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I0IGlucHV0ID0geyB4LCB5
LCB6LCB3IH07CisgICAgVmVjdG9yNCByZXN1bHQ7CisgICAgdjRNdWxQb2ludEJ5TWF0cml4KGlu
cHV0LCBtX21hdHJpeCwgcmVzdWx0KTsKKworICAgIHggPSByZXN1bHRbMF07CisgICAgeSA9IHJl
c3VsdFsxXTsKKyAgICB6ID0gcmVzdWx0WzJdOworICAgIHcgPSByZXN1bHRbM107Cit9CisKIEZs
b2F0UG9pbnQgVHJhbnNmb3JtYXRpb25NYXRyaXg6Om1hcFBvaW50KGNvbnN0IEZsb2F0UG9pbnQm
IHApIGNvbnN0CiB7CiAgICAgaWYgKGlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9y
bWF0aW9uTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKaW5kZXggNTZmMjI1YTNhNmFkNDU2NWM4NTg1MTBk
Zjc1ODYyOTY0MWI3NDUzZS4uMWJkODMzNGVkM2Q0YzNmNGNhNDAwNzI5ZTc4Yzc0YjU0MzBjMGI3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaApAQCAtMjMsOCArMjMsNyBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRyYW5zZm9ybWF0aW9uTWF0cml4X2gK
LSNkZWZpbmUgVHJhbnNmb3JtYXRpb25NYXRyaXhfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiRmxvYXRQb2ludDNELmgiCkBAIC0xMzUsNiArMTM0
LDcgQEAgcHVibGljOgogCiAgICAgLy8gVGhpcyBmb3JtIHByZXNlcnZlcyB0aGUgZG91YmxlIG1h
dGggZnJvbSBpbnB1dCB0byBvdXRwdXQuCiAgICAgdm9pZCBtYXAoZG91YmxlIHgsIGRvdWJsZSB5
LCBkb3VibGUmIHgyLCBkb3VibGUmIHkyKSBjb25zdCB7IG11bHRWZWNNYXRyaXgoeCwgeSwgeDIs
IHkyKTsgfQorICAgIHZvaWQgbWFwNENvbXBvbmVudFBvaW50KGRvdWJsZSYgeCwgZG91YmxlJiB5
LCBkb3VibGUmIHosIGRvdWJsZSYgdykgY29uc3Q7CiAKICAgICAvLyBNYXBzIGEgM0QgcG9pbnQg
dGhyb3VnaCB0aGUgdHJhbnNmb3JtLCByZXR1cm5pbmcgYSAzRCBwb2ludC4KICAgICBGbG9hdFBv
aW50M0QgbWFwUG9pbnQoY29uc3QgRmxvYXRQb2ludDNEJikgY29uc3Q7CkBAIC00MjcsNSArNDI3
LDMgQEAgcHJpdmF0ZToKIFdFQkNPUkVfRVhQT1JUIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIFRyYW5zZm9ybWF0aW9uTWF0cml4X2gKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCmluZGV4IDhkMzM1ODFlM2I3YzY3NjU5MjZjMDFjZjRkMGY2YTc3ZDM1
ZWViZjUuLmNkZmE0ODE1ZTBiYjA1NDRiNzAxNGRjY2VkZjBlMmE4MDUwMDExZDkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA2LTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBE
T01Qb2ludFJlYWRPbmx5Lm1hdHJpeFRyYW5zZm9ybSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI4OTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIENvcnJlY3QgdmFyaWFibGUgbmFtaW5n
IGluIERPTVBvaW50LTAwMi5odG1sLgorICAgICAgICAKKyAgICAgICAgRE9NUG9pbnQtMDAzLmh0
bWwgaXMgbmV3IHRlc3Qgd2hpY2ggZXhlcmNpc2VzIG1hdHJpeFRyYW5zZm9ybSgpIHdpdGggbm9u
LTJECisgICAgICAgIHBvaW50cyBhbmQgbWF0cmljZXMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2dlb21ldHJ5LTEvRE9NUG9pbnQtMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5LTEvRE9NUG9pbnQtMDAyLmh0bWw6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS0xL0RPTVBvaW50LTAw
My1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Z2VvbWV0cnktMS9ET01Qb2ludC0wMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS0xL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0OgorCiAyMDE3
LTA2LTAyICBKYXZpZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtjc3MtZ3JpZF0gTWFyZ2luIHdyb25nIGFwcGxpZWQgd2hlbiBzdHJldGNoaW5nIGFuIG9y
dGhvZ29uYWwgaXRlbSBpbiBmaXhlZCBzaXplIHRyYWNrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS0xL0RPTVBvaW50
LTAwMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9nZW9tZXRyeS0xL0RPTVBvaW50LTAwMi1leHBlY3RlZC50eHQKaW5kZXggNGRk
MTAyOGQyMWU4MzMxZmEyNmY3M2JhMDY5MmZhZTQ4MDBlZjExMC4uMThmYmYyZTUzZjlhNGM4ZTgy
MDk5ZGRkNmM3MGZjZjBmYmZjYmZhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2dlb21ldHJ5LTEvRE9NUG9pbnQtMDAyLWV4cGVjdGVkLnR4dApAQCAtMTgsNyArMTgsNyBA
QCBQQVNTIHRlc3QgRE9NUG9pbnQgZnJvbVBvaW50IHdpdGggeCwgeSwgeiwgdwogUEFTUyB0ZXN0
IERPTVBvaW50IGZyb21Qb2ludCB3aXRoIHgsIHksIHosIHcsIHYgCiBQQVNTIHRlc3QgRE9NUG9p
bnQgZnJvbVBvaW50IHdpdGggeCwgeiAKIFBBU1MgdGVzdCBET01Qb2ludCBmcm9tUG9pbnQgd2l0
aCB1bmRlZmluZWQgdmFsdWUgCi1GQUlMIHRlc3QgRE9NUG9pbnQgbWF0cml4VHJhbnNmb3JtIHBv
aW50Lm1hdHJpeFRyYW5zZm9ybSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwb2ludC5tYXRyaXhU
cmFuc2Zvcm0obWF0cml4KScsICdwb2ludC5tYXRyaXhUcmFuc2Zvcm0nIGlzIHVuZGVmaW5lZCkK
K1BBU1MgdGVzdCBET01Qb2ludCBtYXRyaXhUcmFuc2Zvcm0gCiBQQVNTIHRlc3QgRE9NUG9pbnQg
QXR0cmlidXRlcyB1bmRlZmluZWQgCiBQQVNTIHRlc3QgRE9NUG9pbnQgQXR0cmlidXRlcyBOYU4g
SW5maW5pdHkgCiBQQVNTIHRlc3QgRE9NUG9pbnRSZWFkT25seSBDb25zdHJ1Y3RvciBubyBhcmdz
IApAQCAtMzgsNiArMzgsNiBAQCBQQVNTIHRlc3QgRE9NUG9pbnRSZWFkT25seSBmcm9tUG9pbnQg
d2l0aCB4LCB5LCB6LCB3CiBQQVNTIHRlc3QgRE9NUG9pbnRSZWFkT25seSBmcm9tUG9pbnQgd2l0
aCB4LCB5LCB6LCB3LCB2IAogUEFTUyB0ZXN0IERPTVBvaW50UmVhZE9ubHkgZnJvbVBvaW50IHdp
dGggeCwgeiAKIFBBU1MgdGVzdCBET01Qb2ludFJlYWRPbmx5IGZyb21Qb2ludCB3aXRoIHVuZGVm
aW5lZCB2YWx1ZSAKLUZBSUwgdGVzdCBET01Qb2ludFJlYWRPbmx5IG1hdHJpeFRyYW5zZm9ybSBw
b2ludC5tYXRyaXhUcmFuc2Zvcm0gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncG9pbnQubWF0cml4
VHJhbnNmb3JtKG1hdHJpeCknLCAncG9pbnQubWF0cml4VHJhbnNmb3JtJyBpcyB1bmRlZmluZWQp
CitQQVNTIHRlc3QgRE9NUG9pbnRSZWFkT25seSBtYXRyaXhUcmFuc2Zvcm0gCiBQQVNTIHRlc3Qg
RE9NUG9pbnRSZWFkT25seSBBdHRyaWJ1dGVzIHVuZGVmaW5lZCAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9E
T01Qb2ludC0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2dlb21ldHJ5LTEvRE9NUG9pbnQtMDAyLmh0bWwKaW5kZXggZGQ1MmYyYjQ5YmM4
NzhjZGI1MTY2NGI3YmIxODY1YTFiYjBiMjkxMy4uY2NlZjAwOTNhMzM3YzZkOTAyNmQyMzRhYTBj
ZjJiY2ZkY2JiZWM3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDIuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS0xL0RP
TVBvaW50LTAwMi5odG1sCkBAIC0xMyw5ICsxMyw5IEBACiAgICAgICAgIGZ1bmN0aW9uIGdldE1h
dHJpeFRyYW5zZm9ybShtYXRyaXgsIHBvaW50KSB7CiAgICAgICAgICAgICB2YXIgeCA9IHBvaW50
LnggKiBtYXRyaXgubTExICsgcG9pbnQueSAqIG1hdHJpeC5tMjEgKyBwb2ludC56ICogbWF0cml4
Lm0zMSArIHBvaW50LncgKiBtYXRyaXgubTQxOwogICAgICAgICAgICAgdmFyIHkgPSBwb2ludC54
ICogbWF0cml4Lm0xMiArIHBvaW50LnkgKiBtYXRyaXgubTIyICsgcG9pbnQueiAqIG1hdHJpeC5t
MzIgKyBwb2ludC53ICogbWF0cml4Lm00MjsKLSAgICAgICAgICAgIHZhciB3ID0gcG9pbnQueCAq
IG1hdHJpeC5tMTMgKyBwb2ludC55ICogbWF0cml4Lm0yMyArIHBvaW50LnogKiBtYXRyaXgubTMz
ICsgcG9pbnQudyAqIG1hdHJpeC5tNDM7Ci0gICAgICAgICAgICB2YXIgeiA9IHBvaW50LnggKiBt
YXRyaXgubTE0ICsgcG9pbnQueSAqIG1hdHJpeC5tMjQgKyBwb2ludC56ICogbWF0cml4Lm0zNCAr
IHBvaW50LncgKiBtYXRyaXgubTQ0OwotICAgICAgICAgICAgcmV0dXJuIG5ldyBET01Qb2ludCh4
LCB5LCB3LCB6KQorICAgICAgICAgICAgdmFyIHogPSBwb2ludC54ICogbWF0cml4Lm0xMyArIHBv
aW50LnkgKiBtYXRyaXgubTIzICsgcG9pbnQueiAqIG1hdHJpeC5tMzMgKyBwb2ludC53ICogbWF0
cml4Lm00MzsKKyAgICAgICAgICAgIHZhciB3ID0gcG9pbnQueCAqIG1hdHJpeC5tMTQgKyBwb2lu
dC55ICogbWF0cml4Lm0yNCArIHBvaW50LnogKiBtYXRyaXgubTM0ICsgcG9pbnQudyAqIG1hdHJp
eC5tNDQ7CisgICAgICAgICAgICByZXR1cm4gbmV3IERPTVBvaW50KHgsIHksIHosIHcpCiAgICAg
ICAgIH0KIAogICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2lu
dC0wMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmUxZThjNDc3N2FjOTY3ODczY2IxOTdmNTAyZTU5MTJhMWRhNTdjOGYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9n
ZW9tZXRyeS0xL0RPTVBvaW50LTAwMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0
IERPTVBvaW50IGFuZCBET01Qb2ludFJlYWRPbmx5IGludGVyZmFjZXMKKworCitQQVNTIHRlc3Qg
RE9NUG9pbnQgbWF0cml4VHJhbnNmb3JtIHdpdGggM2QgbWF0cml4IAorUEFTUyB0ZXN0IERPTVBv
aW50IG1hdHJpeFRyYW5zZm9ybSB3aXRoIHBlcnNwZWN0aXZlIHBvaW50IAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRy
eS0xL0RPTVBvaW50LTAwMy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
YzU0OGU1YmYzY2FlMzkyYmU0MmJjNzU4MGY3MjdhZjliODBmMzQxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0
cnktMS9ET01Qb2ludC0wMDMuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPjxoZWFkPgorICAgIDx0aXRsZT5HZW9tZXRyeSBJbnRlcmZhY2VzOiBET01Qb2ludFJl
YWRPbmx5Lm1hdHJpeFRyYW5zZm9ybTwvdGl0bGU+CisgICAgPGxpbmsgaHJlZj0ibWFpbHRvOnNp
bW9uLmZyYXNlckBhcHBsZS5jb20iIHJlbD0iYXV0aG9yIiB0aXRsZT0iU2ltb24gRnJhc2VyIj4K
KyAgICA8bGluayBocmVmPSJodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS0xLyNET01Q
b2ludCIgcmVsPSJoZWxwIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+VGVzdCBET01Qb2lu
dCBhbmQgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2VzPC9wPgorICAgIDxkaXYgaWQ9ImxvZyI+
PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gZ2V0TWF0cml4VHJhbnNmb3Jt
KG1hdHJpeCwgcG9pbnQpIHsKKyAgICAgICAgICAgIHZhciB4ID0gcG9pbnQueCAqIG1hdHJpeC5t
MTEgKyBwb2ludC55ICogbWF0cml4Lm0yMSArIHBvaW50LnogKiBtYXRyaXgubTMxICsgcG9pbnQu
dyAqIG1hdHJpeC5tNDE7CisgICAgICAgICAgICB2YXIgeSA9IHBvaW50LnggKiBtYXRyaXgubTEy
ICsgcG9pbnQueSAqIG1hdHJpeC5tMjIgKyBwb2ludC56ICogbWF0cml4Lm0zMiArIHBvaW50Lncg
KiBtYXRyaXgubTQyOworICAgICAgICAgICAgdmFyIHogPSBwb2ludC54ICogbWF0cml4Lm0xMyAr
IHBvaW50LnkgKiBtYXRyaXgubTIzICsgcG9pbnQueiAqIG1hdHJpeC5tMzMgKyBwb2ludC53ICog
bWF0cml4Lm00MzsKKyAgICAgICAgICAgIHZhciB3ID0gcG9pbnQueCAqIG1hdHJpeC5tMTQgKyBw
b2ludC55ICogbWF0cml4Lm0yNCArIHBvaW50LnogKiBtYXRyaXgubTM0ICsgcG9pbnQudyAqIG1h
dHJpeC5tNDQ7CisgICAgICAgICAgICByZXR1cm4gbmV3IERPTVBvaW50KHgsIHksIHosIHcpCisg
ICAgICAgIH0KKyAgICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBwb2lu
dCA9IG5ldyBET01Qb2ludCg1LCA0KTsKKyAgICAgICAgICAgIHZhciBtYXRyaXggPSBuZXcgRE9N
TWF0cml4KCk7CisgICAgICAgICAgICBtYXRyaXguc2V0TWF0cml4VmFsdWUoJ3BlcnNwZWN0aXZl
KDQwMHB4KSB0cmFuc2xhdGUzZCgxMjNweCwgNDU2cHgsIDEyMHB4KScpOworICAgICAgICAgICAg
dmFyIHJlc3VsdCA9IHBvaW50Lm1hdHJpeFRyYW5zZm9ybShtYXRyaXgpOworICAgICAgICAgICAg
dmFyIGV4cGVjdGVkID0gZ2V0TWF0cml4VHJhbnNmb3JtKG1hdHJpeCwgcG9pbnQpOworICAgICAg
ICAgICAgY2hlY2tET01Qb2ludChyZXN1bHQsIGV4cGVjdGVkKTsKKyAgICAgICAgfSwndGVzdCBE
T01Qb2ludCBtYXRyaXhUcmFuc2Zvcm0gd2l0aCAzZCBtYXRyaXgnKTsKKworICAgICAgICB0ZXN0
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIHBvaW50ID0gRE9NUG9pbnRSZWFkT25seS5m
cm9tUG9pbnQoe3g6MSwgeToyLCB6OjMsIHc6MC4wMDIzNH0pOworICAgICAgICAgICAgdmFyIG1h
dHJpeCA9IG5ldyBET01NYXRyaXgoKTsKKyAgICAgICAgICAgIG1hdHJpeC5zZXRNYXRyaXhWYWx1
ZSgncGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDEyM3B4LCA0NTZweCwgMTIwcHgpJyk7
CisgICAgICAgICAgICB2YXIgcmVzdWx0ID0gcG9pbnQubWF0cml4VHJhbnNmb3JtKG1hdHJpeCk7
CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWQgPSBnZXRNYXRyaXhUcmFuc2Zvcm0obWF0cml4LCBw
b2ludCk7CisgICAgICAgICAgICBjaGVja0RPTVBvaW50KHJlc3VsdCwgZXhwZWN0ZWQpOworICAg
ICAgICB9LCd0ZXN0IERPTVBvaW50IG1hdHJpeFRyYW5zZm9ybSB3aXRoIHBlcnNwZWN0aXZlIHBv
aW50Jyk7CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tET01Qb2ludChwLCBleHApIHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocC54LCBleHAueCwgInggaXMgbm90IG1hdGNoZWQiKTsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocC55LCBleHAueSwgInkgaXMgbm90IG1hdGNoZWQiKTsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocC56LCBleHAueiwgInogaXMgbm90IG1hdGNoZWQi
KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocC53LCBleHAudywgIncgaXMgbm90IG1hdGNo
ZWQiKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21l
dHJ5LTEvaGlzdG9yaWNhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS0xL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0
CmluZGV4IDRkNTM2NTBjOGQ2YzM5MDY0ZWFhNmJhZGY5MTU5N2EyYjZjODliYzQuLjc1ODc4NzU5
Yzc1NGU5YjExYjJhMWU4YjBmNzMzZjUyNWFkYmUzYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5LTEvaGlzdG9yaWNh
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9oaXN0b3JpY2FsLWV4cGVjdGVkLnR4dApAQCAtMjgsNyAr
MjgsNyBAQCBQQVNTIERPTU1hdHJpeCByb3RhdGVGcm9tVmVjdG9yU2VsZiBudW1iZXIgb2YgcmVx
dWlyZWQgYXJndW1lbnRzCiBQQVNTIERPTU1hdHJpeCByb3RhdGVBeGlzQW5nbGVTZWxmIG51bWJl
ciBvZiByZXF1aXJlZCBhcmd1bWVudHMgCiBQQVNTIERPTU1hdHJpeCBza2V3WFNlbGYgbnVtYmVy
IG9mIHJlcXVpcmVkIGFyZ3VtZW50cyAKIFBBU1MgRE9NTWF0cml4IHNrZXdZU2VsZiBudW1iZXIg
b2YgcmVxdWlyZWQgYXJndW1lbnRzIAotRkFJTCBET01Qb2ludFJlYWRPbmx5IG1hdHJpeFRyYW5z
Zm9ybSBudW1iZXIgb2YgcmVxdWlyZWQgYXJndW1lbnRzIHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdzZWxmW2ludGVyZl0ucHJvdG90eXBlW21lbWJlcl0ubGVuZ3RoJykK
K1BBU1MgRE9NUG9pbnRSZWFkT25seSBtYXRyaXhUcmFuc2Zvcm0gbnVtYmVyIG9mIHJlcXVpcmVk
IGFyZ3VtZW50cyAKIFBBU1MgRE9NTWF0cml4UmVhZE9ubHkgbXVsdGlwbHkgbnVtYmVyIG9mIHJl
cXVpcmVkIGFyZ3VtZW50cyAKIFBBU1MgRE9NTWF0cml4IG11bHRpcGx5U2VsZiBudW1iZXIgb2Yg
cmVxdWlyZWQgYXJndW1lbnRzIAogUEFTUyBET01NYXRyaXggcHJlTXVsdGlwbHlTZWxmIG51bWJl
ciBvZiByZXF1aXJlZCBhcmd1bWVudHMgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311941</attachid>
            <date>2017-06-03 13:31:25 -0700</date>
            <delta_ts>2017-06-03 14:09:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-172896-20170603133124.patch</filename>
            <type>text/plain</type>
            <size>20253</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZlNWU2ZmM4ZDI4MTQ2
Y2M5ZjgyOWZiMmY4YzJiNzBmODM4MmJlNC4uMjNkNWU5Y2YwNTNjNzcwM2VhMWZlOGQ5NDVmMzNi
Y2EwYzdhMjE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDE3LTA2LTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEltcGxlbWVudCBE
T01Qb2ludFJlYWRPbmx5Lm1hdHJpeFRyYW5zZm9ybSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI4OTYKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBET01Qb2ludFJlYWRPbmx5Lm1hdHJpeFRyYW5zZm9ybSgp
IGNyZWF0ZXMgdGhlIG1hdHJpeCBvciB0aHJvd3MsIHRoZW4gdXNlcworICAgICAgICBhIG5ldyBm
dW5jdGlvbiBpbiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0byBtYXAgeCx5LHosdyB0aHJvdWdoIHRo
ZSBtYXRyaXguCisKKyAgICAgICAgVGVzdDogaHR0cC93cHQvZ2VvbWV0cnkvRE9NUG9pbnQtMDAz
Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvRE9NTWF0cml4UmVhZE9ubHku
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU1hdHJpeFJlYWRPbmx5Ojp0cmFuc2Zvcm1hdGlvbk1h
dHJpeCk6CisgICAgICAgICogZG9tL0RPTVBvaW50UmVhZE9ubHkuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5pZGwuCisgICAgICAgIChXZWJDb3Jl
OjpET01Qb2ludFJlYWRPbmx5OjptYXRyaXhUcmFuc2Zvcm0pOgorICAgICAgICAqIGRvbS9ET01Q
b2ludFJlYWRPbmx5Lmg6CisgICAgICAgICogZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXgu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6Om1hcDRDb21wb25l
bnRQb2ludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zv
cm1hdGlvbk1hdHJpeC5oOgorCisyMDE3LTA2LTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFNvcnQgdGhlIHByb2plY3QgZmlsZS4KIAogICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggMWQzZGRlZjZmZGY5NmRhNjc3ZDExNzI5NTYzMTE4NTcwYmVlNjYwNy4uNjA4M2UxMzI2
YTU4MjdjMjAwZGEwMTlmOTA3YzZjZmEwMTcxYTRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTE0NTgsNiArMTQ1OCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vRE9NRXJyb3Iu
Y3BwCiAgICAgZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAogICAgIGRvbS9ET01OYW1lZEZsb3dD
b2xsZWN0aW9uLmNwcAorICAgIGRvbS9ET01Qb2ludFJlYWRPbmx5LmNwcAogICAgIGRvbS9ET01S
ZWN0TGlzdC5jcHAKICAgICBkb20vRE9NU3RyaW5nTGlzdC5jcHAKICAgICBkb20vRGF0YVRyYW5z
ZmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGNmNmU0OWY1YmQ2YTJkZWY3YmU0ZTMyNjdmNjM1YTk1OTNiMzFhNWUuLjNk
MDk2MDJhZDBkZTkwMDEwOGQzMjlmZGYxZDBiYmNlZDM3MGRlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU2Miw2ICs1NjIs
NyBAQAogCQkwRkY1MDI2QTEwMkJBOTQzMDA2NkYzOUEgLyogSlNTdHlsZU1lZGlhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkY1MDI2ODEwMkJBOTQz
MDA2NkYzOUEgLyogSlNTdHlsZU1lZGlhLmggKi87IH07CiAJCTBGRjUwMjcxMTAyQkE5NkEwMDY2
RjM5QSAvKiBTdHlsZU1lZGlhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGRjUwMjZFMTAyQkE5NjYwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmNwcCAq
LzsgfTsKIAkJMEZGNTAyNzIxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjUwMjZGMTAyQkE5NkEw
MDY2RjM5QSAvKiBTdHlsZU1lZGlhLmggKi87IH07CisJCTBGRjgzNUI4MUVFMzI3NEYwMDhCNEND
NyAvKiBET01Qb2ludFJlYWRPbmx5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGRjgzNUI3MUVFMzI3NEYwMDhCNENDNyAvKiBET01Qb2ludFJlYWRP
bmx5LmNwcCAqLzsgfTsKIAkJMEZGRDRENjAxODY1MUZBMzAwNTEyRjZFIC8qIEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZGRDRENUUxODY1MUZBMzAwNTEyRjZFIC8qIEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwICovOyB9OwogCQkwRkZENEQ2MTE4NjUxRkEzMDA1MTJGNkUgLyogQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZGRDRENUYxODY1MUZBMzAwNTEyRjZFIC8qIEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkxMEZCMDg0QjE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJMTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTBGQjA4NEExNEUxNUM3RTAw
QTNEQjk4IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCAqLzsgfTsKQEAgLTc5OTksNiArODAwMCw3IEBA
CiAJCTBGRjUwMjZFMTAyQkE5NjYwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlTWVkaWEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkY1MDI2RjEwMkJBOTZBMDA2NkYzOUEgLyogU3R5bGVNZWRpYS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZU1lZGlhLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRjUwMjcwMTAyQkE5NkEwMDY2RjM5QSAvKiBTdHlsZU1l
ZGlhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdHlsZU1lZGlhLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZGODM1QjcxRUUzMjc0RjAwOEI0Q0M3IC8qIERPTVBvaW50
UmVhZE9ubHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUG9p
bnRSZWFkT25seS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRkQ0RDVFMTg2
NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkZENEQ1RjE4NjUxRkEzMDA1MTJGNkUg
LyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTEwRkIwODRBMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1YmxpY1VSTE1hbmFnZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1NzE2LDYgKzI1NzE4LDcgQEAKIAkJCQkwRjQ5
NjY5QTFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnQuaWRsICovLAogCQkJCTBGNDk2NkEyMURC
NDA5MTAwMEEyNzRCQiAvKiBET01Qb2ludEluaXQuaCAqLywKIAkJCQkwRjQ5NjZBMTFEQjQwOTAx
MDBBMjc0QkIgLyogRE9NUG9pbnRJbml0LmlkbCAqLywKKwkJCQkwRkY4MzVCNzFFRTMyNzRGMDA4
QjRDQzcgLyogRE9NUG9pbnRSZWFkT25seS5jcHAgKi8sCiAJCQkJMEY0OTY2OUIxREI0MDhDMTAw
QTI3NEJCIC8qIERPTVBvaW50UmVhZE9ubHkuaCAqLywKIAkJCQkwRjQ5NjY5QzFEQjQwOEMxMDBB
Mjc0QkIgLyogRE9NUG9pbnRSZWFkT25seS5pZGwgKi8sCiAJCQkJMEY0NzEwQTkxREI1NkFGQzAw
MkRDRUMzIC8qIERPTVJlY3QuaCAqLywKQEAgLTMxMjA5LDYgKzMxMjEyLDcgQEAKIAkJCQkyRDUw
MDJGODFCNTZENzgxMDAyMEFBRjcgLyogRE9NUGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OUM2RTRFQjBENzQ1RTJCMDA2NDQyRTkgLyogRE9NUGx1Z2luLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE5QzZFNEVGMEQ3NDVFMzgwMDY0NDJFOSAvKiBET01QbHVnaW5BcnJheS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwRkY4MzVCODFFRTMyNzRGMDA4QjRDQzcgLyogRE9NUG9pbnRSZWFkT25s
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NjgzNDRERjFFRERGQUFBMDBCNzc5NUIgLyogRE9N
UmVjdExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1QTg2ODQwQzMzNjc2MDAwRUVBNjQ5
IC8qIERPTVNlbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTU2MTBGMTExQTcwNEVC
MDBCODJEMjcgLyogRE9NU3RyaW5nTGlzdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0RPTU1hdHJpeFJlYWRPbmx5LmgKaW5kZXggYTliNGRkZjc0YWRlODdiNWMxOTcyOTlkYmNj
MjYxZDE4NjlhZTEyMS4uZTE3Njk0Y2IzZjNlOWRjNjFiZjNiNGQxM2M2MjE4NWRlNTI5MWY3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmgKQEAgLTEwOCw2ICsxMDgsOCBA
QCBwdWJsaWM6CiAKICAgICBFeGNlcHRpb25PcjxTdHJpbmc+IHRvU3RyaW5nKCkgY29uc3Q7CiAK
KyAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtYXRpb25NYXRyaXgoKSBj
b25zdCB7IHJldHVybiBtX21hdHJpeDsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgRE9NTWF0cml4UmVh
ZE9ubHkoKSA9IGRlZmF1bHQ7CiAgICAgRE9NTWF0cml4UmVhZE9ubHkoY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmLCBJczJEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Q
b2ludFJlYWRPbmx5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41NTY0OTY0OTczMTA3ZDUyNTYyYzg4ODBjNWI1NmY1NmY4YWQ1MzAxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuY3Bw
CkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKKyAqIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBDT1BZUklH
SFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsCisgKiBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsCisgKiBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VECisgKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVBvaW50UmVhZE9ubHku
aCIKKworI2luY2x1ZGUgIkRPTU1hdHJpeFJlYWRPbmx5LmgiCisjaW5jbHVkZSAiRE9NUG9pbnQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRXhjZXB0aW9uT3I8UmVmPERPTVBvaW50
Pj4gRE9NUG9pbnRSZWFkT25seTo6bWF0cml4VHJhbnNmb3JtKERPTU1hdHJpeEluaXQmJiBtYXRy
aXhJbml0KSBjb25zdAoreworICAgIGF1dG8gbWF0cml4T3JFeGNlcHRpb24gPSBET01NYXRyaXhS
ZWFkT25seTo6ZnJvbU1hdHJpeChXVEZNb3ZlKG1hdHJpeEluaXQpKTsKKyAgICBpZiAobWF0cml4
T3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBtYXRyaXhPckV4Y2Vw
dGlvbi5yZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAgICBhdXRvIG1hdHJpeCA9IG1hdHJpeE9yRXhj
ZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIAorICAgIGRvdWJsZSB4ID0gdGhpcy0+
eCgpOworICAgIGRvdWJsZSB5ID0gdGhpcy0+eSgpOworICAgIGRvdWJsZSB6ID0gdGhpcy0+eigp
OworICAgIGRvdWJsZSB3ID0gdGhpcy0+dygpOworICAgIG1hdHJpeC0+dHJhbnNmb3JtYXRpb25N
YXRyaXgoKS5tYXA0Q29tcG9uZW50UG9pbnQoeCwgeSwgeiwgdyk7CisgICAgCisgICAgcmV0dXJu
IHsgRE9NUG9pbnQ6OmNyZWF0ZSh4LCB5LCB6LCB3KSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5oCmluZGV4IDFiOTgzMDJh
Y2E2ZjQ0MTg1OWFiNDVkZjE4MjhhZWE0MGFhNmY2OGIuLmU4YTgwY2I2NTZiZmU1ZGI0ZGZiOTZj
MWMwYTMzMjQ4NmEyOGVjOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2lu
dFJlYWRPbmx5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaApA
QCAtMzEsMTEgKzMxLDE1IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRPTVBvaW50SW5p
dC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxl
LmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitzdHJ1Y3QgRE9NTWF0cml4SW5pdDsKK2NsYXNzIERPTVBvaW50OworCiBjbGFzcyBET01Qb2lu
dFJlYWRPbmx5IDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8RE9N
UG9pbnRSZWFkT25seT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpA
QCAtNDgsNiArNTIsOCBAQCBwdWJsaWM6CiAgICAgZG91YmxlIHooKSBjb25zdCB7IHJldHVybiBt
X3o7IH0KICAgICBkb3VibGUgdygpIGNvbnN0IHsgcmV0dXJuIG1fdzsgfQogCisgICAgRXhjZXB0
aW9uT3I8UmVmPERPTVBvaW50Pj4gbWF0cml4VHJhbnNmb3JtKERPTU1hdHJpeEluaXQmJikgY29u
c3Q7CisKIHByb3RlY3RlZDoKICAgICBET01Qb2ludFJlYWRPbmx5KGRvdWJsZSB4LCBkb3VibGUg
eSwgZG91YmxlIHosIGRvdWJsZSB3KQogICAgICAgICA6IG1feCh4KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RPTVBvaW50UmVhZE9ubHkuaWRsCmluZGV4IDlhMDBiOWY0ZjM3NzQ0NmQ3OGIxZWIyNjFkNmE4
ZjdkZTJlMjljODYuLjNmZmQ2NmZkNzEyMWE5ZGM3Y2M1Zjg1NzNhNzZhNzg5NzQ0Zjk2OGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5pZGwKQEAgLTQ0LDggKzQ0LDcgQEAg
aW50ZXJmYWNlIERPTVBvaW50UmVhZE9ubHkgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZG91YmxlIHo7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBk
b3VibGUgdzsKIAotICAgIC8vIEZJWE1FOiBObyBzdXBwb3J0IGZvciBET01NYXRyaXggeWV0ICh3
ZWJraXQub3JnL2IvMTEwMDAxKQotICAgIC8vIERPTVBvaW50IG1hdHJpeFRyYW5zZm9ybShvcHRp
b25hbCBET01NYXRyaXhJbml0IG1hdHJpeCk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBET01Q
b2ludCBtYXRyaXhUcmFuc2Zvcm0ob3B0aW9uYWwgRE9NTWF0cml4SW5pdCBtYXRyaXgpOwogCiAg
ICAgc2VyaWFsaXplciA9IHsgYXR0cmlidXRlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9y
bWF0aW9uTWF0cml4LmNwcAppbmRleCA3YTc4M2FhNzAxNjhlMzU0Mzc1NGViNDJkOGI0YmY5ODg2
YjNhYTgzLi5mYTgzY2RiNDFkZmUxYzA4YzM3MjQ1YWFiM2VkNDcxMjE2ZmMwMWNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9y
bWF0aW9uTWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcApAQCAtNDQsMTMgKzQ0LDYgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogLy8KLS8vIFN1cHBvcnRpbmcgTWF0aCBGdW5jdGlvbnMKLS8v
Ci0vLyBUaGlzIGlzIGEgc2V0IG9mIGZ1bmN0aW9uIGZyb20gdmFyaW91cyBwbGFjZXMgKGF0dHJp
YnV0ZWQgaW5saW5lKSB0byBkbyB0aGluZ3MgbGlrZQotLy8gaW52ZXJzaW9uIGFuZCBkZWNvbXBv
c2l0aW9uIG9mIGEgNHg0IG1hdHJpeC4gVGhleSBhcmUgdXNlZCB0aHJvdWdob3V0IHRoZSBjb2Rl
Ci0vLwotCi0vLwogLy8gQWRhcHRlZCBmcm9tIE1hdHJpeCBJbnZlcnNpb24gYnkgUmljaGFyZCBD
YXJsaW5nLCBHcmFwaGljcyBHZW1zIDxodHRwOi8vdG9nLmFjbS5vcmcvR3JhcGhpY3NHZW1zL2lu
ZGV4Lmh0bWw+LgogCiAvLyBFVUxBOiBUaGUgR3JhcGhpY3MgR2VtcyBjb2RlIGlzIGNvcHlyaWdo
dC1wcm90ZWN0ZWQuIEluIG90aGVyIHdvcmRzLCB5b3UgY2Fubm90IGNsYWltIHRoZSB0ZXh0IG9m
IHRoZSBjb2RlCkBAIC03MDYsNiArNjk5LDI1IEBAIExheW91dFJlY3QgVHJhbnNmb3JtYXRpb25N
YXRyaXg6OmNsYW1wZWRCb3VuZHNPZlByb2plY3RlZFF1YWQoY29uc3QgRmxvYXRRdWFkJiBxCiAg
ICAgcmV0dXJuIExheW91dFJlY3QoTGF5b3V0VW5pdDo6Y2xhbXAobGVmdCksIExheW91dFVuaXQ6
OmNsYW1wKHRvcCksICBMYXlvdXRVbml0OjpjbGFtcChyaWdodCAtIGxlZnQpLCBMYXlvdXRVbml0
OjpjbGFtcChib3R0b20gLSB0b3ApKTsKIH0KIAordm9pZCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
bWFwNENvbXBvbmVudFBvaW50KGRvdWJsZSYgeCwgZG91YmxlJiB5LCBkb3VibGUmIHosIGRvdWJs
ZSYgdykgY29uc3QKK3sKKyAgICBpZiAoaXNJZGVudGl0eU9yVHJhbnNsYXRpb24oKSkgeworICAg
ICAgICB4ICs9IG1fbWF0cml4WzNdWzBdOworICAgICAgICB5ICs9IG1fbWF0cml4WzNdWzFdOwor
ICAgICAgICB6ICs9IG1fbWF0cml4WzNdWzJdOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgVmVjdG9yNCBpbnB1dCA9IHsgeCwgeSwgeiwgdyB9OworICAgIFZlY3RvcjQgcmVzdWx0Owor
ICAgIHY0TXVsUG9pbnRCeU1hdHJpeChpbnB1dCwgbV9tYXRyaXgsIHJlc3VsdCk7CisKKyAgICB4
ID0gcmVzdWx0WzBdOworICAgIHkgPSByZXN1bHRbMV07CisgICAgeiA9IHJlc3VsdFsyXTsKKyAg
ICB3ID0gcmVzdWx0WzNdOworfQorCiBGbG9hdFBvaW50IFRyYW5zZm9ybWF0aW9uTWF0cml4Ojpt
YXBQb2ludChjb25zdCBGbG9hdFBvaW50JiBwKSBjb25zdAogewogICAgIGlmIChpc0lkZW50aXR5
T3JUcmFuc2xhdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oCmluZGV4
IDU2ZjIyNWEzYTZhZDQ1NjVjODU4NTEwZGY3NTg2Mjk2NDFiNzQ1M2UuLjFiZDgzMzRlZDNkNGMz
ZjRjYTQwMDcyOWU3OGM3NGI1NDMwYzBiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9u
TWF0cml4LmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRl
ZiBUcmFuc2Zvcm1hdGlvbk1hdHJpeF9oCi0jZGVmaW5lIFRyYW5zZm9ybWF0aW9uTWF0cml4X2gK
KyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkZsb2F0
UG9pbnQzRC5oIgpAQCAtMTM1LDYgKzEzNCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoaXMgZm9y
bSBwcmVzZXJ2ZXMgdGhlIGRvdWJsZSBtYXRoIGZyb20gaW5wdXQgdG8gb3V0cHV0LgogICAgIHZv
aWQgbWFwKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlJiB4MiwgZG91YmxlJiB5MikgY29uc3Qg
eyBtdWx0VmVjTWF0cml4KHgsIHksIHgyLCB5Mik7IH0KKyAgICB2b2lkIG1hcDRDb21wb25lbnRQ
b2ludChkb3VibGUmIHgsIGRvdWJsZSYgeSwgZG91YmxlJiB6LCBkb3VibGUmIHcpIGNvbnN0Owog
CiAgICAgLy8gTWFwcyBhIDNEIHBvaW50IHRocm91Z2ggdGhlIHRyYW5zZm9ybSwgcmV0dXJuaW5n
IGEgM0QgcG9pbnQuCiAgICAgRmxvYXRQb2ludDNEIG1hcFBvaW50KGNvbnN0IEZsb2F0UG9pbnQz
RCYpIGNvbnN0OwpAQCAtNDI3LDUgKzQyNywzIEBAIHByaXZhdGU6CiBXRUJDT1JFX0VYUE9SVCBU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBUcmFuc2Zvcm1h
dGlvbk1hdHJpeF9oCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDlmMWY3NGVmZmQ5YWEwNTAwZjAxNmJmNzE1YTI3MThiNzZl
OWRmZS4uYzkzMzkxZWQ1MGFhMjk5MWY0ZTU4ZDViMDNmNTNiY2I2ZDU2MzQ0NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDE3LTA2LTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBET01Qb2ludFJlYWRPbmx5Lm1hdHJpeFRyYW5z
Zm9ybSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzI4OTYKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBET01Q
b2ludC0wMDMuaHRtbCBzaG91bGQgYmUgdXBzdHJlYW1lZCBhdCBzb21lIHBvaW50LgorCisgICAg
ICAgICogaHR0cC93cHQvZ2VvbWV0cnkvRE9NUG9pbnQtMDAzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC93cHQvZ2VvbWV0cnkvRE9NUG9pbnQtMDAzLmh0bWw6IEFkZGVkLgor
CiAyMDE3LTA2LTAzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNb3ZlIGNzczMvZmxleGJveC9pbWFnZS1wZXJjZW50LW1heC1oZWlnaHQuaHRtbCBmYWls
dXJlIGV4cGVjdGF0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggOGQzMzU4
MWUzYjdjNjc2NTkyNmMwMWNmNGQwZjZhNzdkMzVlZWJmNS4uN2Q1MGFkNzZjMGY0ZjJlYWNhZDMw
YzZjNGM2MGU1Y2RhNGVmMWIwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTctMDYtMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IERPTVBvaW50UmVhZE9ubHkubWF0cml4VHJhbnNm
b3JtKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
Mjg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIE5ldyBi
YXNlbGluZXMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5LTEv
RE9NUG9pbnQtMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2dlb21ldHJ5LTEvaGlzdG9yaWNhbC1leHBlY3RlZC50eHQ6CisKIDIwMTctMDYtMDIgIEph
dmllciBGZXJuYW5kZXogIDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1n
cmlkXSBNYXJnaW4gd3JvbmcgYXBwbGllZCB3aGVuIHN0cmV0Y2hpbmcgYW4gb3J0aG9nb25hbCBp
dGVtIGluIGZpeGVkIHNpemUgdHJhY2sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L2dlb21ldHJ5L0RPTVBvaW50LTAwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9nZW9tZXRyeS9ET01Qb2ludC0wMDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxZThjNDc3
N2FjOTY3ODczY2IxOTdmNTAyZTU5MTJhMWRhNTdjOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9nZW9tZXRyeS9ET01Qb2ludC0wMDMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNiBAQAorVGVzdCBET01Qb2ludCBhbmQgRE9NUG9pbnRSZWFkT25seSBpbnRlcmZhY2Vz
CisKKworUEFTUyB0ZXN0IERPTVBvaW50IG1hdHJpeFRyYW5zZm9ybSB3aXRoIDNkIG1hdHJpeCAK
K1BBU1MgdGVzdCBET01Qb2ludCBtYXRyaXhUcmFuc2Zvcm0gd2l0aCBwZXJzcGVjdGl2ZSBwb2lu
dCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZ2VvbWV0cnkvRE9NUG9pbnQt
MDAzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9nZW9tZXRyeS9ET01Qb2ludC0wMDMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iYzU0OGU1YmYzY2FlMzkyYmU0MmJjNzU4MGY3MjdhZjliODBmMzQxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZ2VvbWV0cnkvRE9NUG9pbnQt
MDAzLmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD48aGVhZD4K
KyAgICA8dGl0bGU+R2VvbWV0cnkgSW50ZXJmYWNlczogRE9NUG9pbnRSZWFkT25seS5tYXRyaXhU
cmFuc2Zvcm08L3RpdGxlPgorICAgIDxsaW5rIGhyZWY9Im1haWx0bzpzaW1vbi5mcmFzZXJAYXBw
bGUuY29tIiByZWw9ImF1dGhvciIgdGl0bGU9IlNpbW9uIEZyYXNlciI+CisgICAgPGxpbmsgaHJl
Zj0iaHR0cHM6Ly9kcmFmdHMuZnh0Zi5vcmcvZ2VvbWV0cnktMS8jRE9NUG9pbnQiIHJlbD0iaGVs
cCI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxwPlRlc3QgRE9NUG9pbnQgYW5kIERPTVBvaW50
UmVhZE9ubHkgaW50ZXJmYWNlczwvcD4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGdldE1hdHJpeFRyYW5zZm9ybShtYXRyaXgsIHBvaW50
KSB7CisgICAgICAgICAgICB2YXIgeCA9IHBvaW50LnggKiBtYXRyaXgubTExICsgcG9pbnQueSAq
IG1hdHJpeC5tMjEgKyBwb2ludC56ICogbWF0cml4Lm0zMSArIHBvaW50LncgKiBtYXRyaXgubTQx
OworICAgICAgICAgICAgdmFyIHkgPSBwb2ludC54ICogbWF0cml4Lm0xMiArIHBvaW50LnkgKiBt
YXRyaXgubTIyICsgcG9pbnQueiAqIG1hdHJpeC5tMzIgKyBwb2ludC53ICogbWF0cml4Lm00MjsK
KyAgICAgICAgICAgIHZhciB6ID0gcG9pbnQueCAqIG1hdHJpeC5tMTMgKyBwb2ludC55ICogbWF0
cml4Lm0yMyArIHBvaW50LnogKiBtYXRyaXgubTMzICsgcG9pbnQudyAqIG1hdHJpeC5tNDM7Cisg
ICAgICAgICAgICB2YXIgdyA9IHBvaW50LnggKiBtYXRyaXgubTE0ICsgcG9pbnQueSAqIG1hdHJp
eC5tMjQgKyBwb2ludC56ICogbWF0cml4Lm0zNCArIHBvaW50LncgKiBtYXRyaXgubTQ0OworICAg
ICAgICAgICAgcmV0dXJuIG5ldyBET01Qb2ludCh4LCB5LCB6LCB3KQorICAgICAgICB9CisgICAg
ICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgcG9pbnQgPSBuZXcgRE9NUG9p
bnQoNSwgNCk7CisgICAgICAgICAgICB2YXIgbWF0cml4ID0gbmV3IERPTU1hdHJpeCgpOworICAg
ICAgICAgICAgbWF0cml4LnNldE1hdHJpeFZhbHVlKCdwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNs
YXRlM2QoMTIzcHgsIDQ1NnB4LCAxMjBweCknKTsKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSBw
b2ludC5tYXRyaXhUcmFuc2Zvcm0obWF0cml4KTsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZCA9
IGdldE1hdHJpeFRyYW5zZm9ybShtYXRyaXgsIHBvaW50KTsKKyAgICAgICAgICAgIGNoZWNrRE9N
UG9pbnQocmVzdWx0LCBleHBlY3RlZCk7CisgICAgICAgIH0sJ3Rlc3QgRE9NUG9pbnQgbWF0cml4
VHJhbnNmb3JtIHdpdGggM2QgbWF0cml4Jyk7CisKKyAgICAgICAgdGVzdChmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHZhciBwb2ludCA9IERPTVBvaW50UmVhZE9ubHkuZnJvbVBvaW50KHt4OjEs
IHk6MiwgejozLCB3OjAuMDAyMzR9KTsKKyAgICAgICAgICAgIHZhciBtYXRyaXggPSBuZXcgRE9N
TWF0cml4KCk7CisgICAgICAgICAgICBtYXRyaXguc2V0TWF0cml4VmFsdWUoJ3BlcnNwZWN0aXZl
KDQwMHB4KSB0cmFuc2xhdGUzZCgxMjNweCwgNDU2cHgsIDEyMHB4KScpOworICAgICAgICAgICAg
dmFyIHJlc3VsdCA9IHBvaW50Lm1hdHJpeFRyYW5zZm9ybShtYXRyaXgpOworICAgICAgICAgICAg
dmFyIGV4cGVjdGVkID0gZ2V0TWF0cml4VHJhbnNmb3JtKG1hdHJpeCwgcG9pbnQpOworICAgICAg
ICAgICAgY2hlY2tET01Qb2ludChyZXN1bHQsIGV4cGVjdGVkKTsKKyAgICAgICAgfSwndGVzdCBE
T01Qb2ludCBtYXRyaXhUcmFuc2Zvcm0gd2l0aCBwZXJzcGVjdGl2ZSBwb2ludCcpOworCisgICAg
ICAgIGZ1bmN0aW9uIGNoZWNrRE9NUG9pbnQocCwgZXhwKSB7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHAueCwgZXhwLngsICJ4IGlzIG5vdCBtYXRjaGVkIik7CisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHAueSwgZXhwLnksICJ5IGlzIG5vdCBtYXRjaGVkIik7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHAueiwgZXhwLnosICJ6IGlzIG5vdCBtYXRjaGVkIik7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHAudywgZXhwLncsICJ3IGlzIG5vdCBtYXRjaGVkIik7CisgICAgICAg
IH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS0xL0RPTVBvaW50
LTAwMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9nZW9tZXRyeS0xL0RPTVBvaW50LTAwMi1leHBlY3RlZC50eHQKaW5kZXggNGRk
MTAyOGQyMWU4MzMxZmEyNmY3M2JhMDY5MmZhZTQ4MDBlZjExMC4uMThmYmYyZTUzZjlhNGM4ZTgy
MDk5ZGRkNmM3MGZjZjBmYmZjYmZhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9ET01Qb2ludC0wMDItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2dlb21ldHJ5LTEvRE9NUG9pbnQtMDAyLWV4cGVjdGVkLnR4dApAQCAtMTgsNyArMTgsNyBA
QCBQQVNTIHRlc3QgRE9NUG9pbnQgZnJvbVBvaW50IHdpdGggeCwgeSwgeiwgdwogUEFTUyB0ZXN0
IERPTVBvaW50IGZyb21Qb2ludCB3aXRoIHgsIHksIHosIHcsIHYgCiBQQVNTIHRlc3QgRE9NUG9p
bnQgZnJvbVBvaW50IHdpdGggeCwgeiAKIFBBU1MgdGVzdCBET01Qb2ludCBmcm9tUG9pbnQgd2l0
aCB1bmRlZmluZWQgdmFsdWUgCi1GQUlMIHRlc3QgRE9NUG9pbnQgbWF0cml4VHJhbnNmb3JtIHBv
aW50Lm1hdHJpeFRyYW5zZm9ybSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwb2ludC5tYXRyaXhU
cmFuc2Zvcm0obWF0cml4KScsICdwb2ludC5tYXRyaXhUcmFuc2Zvcm0nIGlzIHVuZGVmaW5lZCkK
K1BBU1MgdGVzdCBET01Qb2ludCBtYXRyaXhUcmFuc2Zvcm0gCiBQQVNTIHRlc3QgRE9NUG9pbnQg
QXR0cmlidXRlcyB1bmRlZmluZWQgCiBQQVNTIHRlc3QgRE9NUG9pbnQgQXR0cmlidXRlcyBOYU4g
SW5maW5pdHkgCiBQQVNTIHRlc3QgRE9NUG9pbnRSZWFkT25seSBDb25zdHJ1Y3RvciBubyBhcmdz
IApAQCAtMzgsNiArMzgsNiBAQCBQQVNTIHRlc3QgRE9NUG9pbnRSZWFkT25seSBmcm9tUG9pbnQg
d2l0aCB4LCB5LCB6LCB3CiBQQVNTIHRlc3QgRE9NUG9pbnRSZWFkT25seSBmcm9tUG9pbnQgd2l0
aCB4LCB5LCB6LCB3LCB2IAogUEFTUyB0ZXN0IERPTVBvaW50UmVhZE9ubHkgZnJvbVBvaW50IHdp
dGggeCwgeiAKIFBBU1MgdGVzdCBET01Qb2ludFJlYWRPbmx5IGZyb21Qb2ludCB3aXRoIHVuZGVm
aW5lZCB2YWx1ZSAKLUZBSUwgdGVzdCBET01Qb2ludFJlYWRPbmx5IG1hdHJpeFRyYW5zZm9ybSBw
b2ludC5tYXRyaXhUcmFuc2Zvcm0gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncG9pbnQubWF0cml4
VHJhbnNmb3JtKG1hdHJpeCknLCAncG9pbnQubWF0cml4VHJhbnNmb3JtJyBpcyB1bmRlZmluZWQp
CitQQVNTIHRlc3QgRE9NUG9pbnRSZWFkT25seSBtYXRyaXhUcmFuc2Zvcm0gCiBQQVNTIHRlc3Qg
RE9NUG9pbnRSZWFkT25seSBBdHRyaWJ1dGVzIHVuZGVmaW5lZCAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9o
aXN0b3JpY2FsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2dlb21ldHJ5LTEvaGlzdG9yaWNhbC1leHBlY3RlZC50eHQKaW5kZXgg
NGQ1MzY1MGM4ZDZjMzkwNjRlYWE2YmFkZjkxNTk3YTJiNmM4OWJjNC4uNzU4Nzg3NTljNzU0ZTli
MTFiMmExZThiMGY3MzNmNTI1YWRiZTNiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnktMS9oaXN0b3JpY2FsLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9nZW9tZXRyeS0xL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0CkBAIC0yOCw3ICsyOCw3IEBA
IFBBU1MgRE9NTWF0cml4IHJvdGF0ZUZyb21WZWN0b3JTZWxmIG51bWJlciBvZiByZXF1aXJlZCBh
cmd1bWVudHMKIFBBU1MgRE9NTWF0cml4IHJvdGF0ZUF4aXNBbmdsZVNlbGYgbnVtYmVyIG9mIHJl
cXVpcmVkIGFyZ3VtZW50cyAKIFBBU1MgRE9NTWF0cml4IHNrZXdYU2VsZiBudW1iZXIgb2YgcmVx
dWlyZWQgYXJndW1lbnRzIAogUEFTUyBET01NYXRyaXggc2tld1lTZWxmIG51bWJlciBvZiByZXF1
aXJlZCBhcmd1bWVudHMgCi1GQUlMIERPTVBvaW50UmVhZE9ubHkgbWF0cml4VHJhbnNmb3JtIG51
bWJlciBvZiByZXF1aXJlZCBhcmd1bWVudHMgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2
YWx1YXRpbmcgJ3NlbGZbaW50ZXJmXS5wcm90b3R5cGVbbWVtYmVyXS5sZW5ndGgnKQorUEFTUyBE
T01Qb2ludFJlYWRPbmx5IG1hdHJpeFRyYW5zZm9ybSBudW1iZXIgb2YgcmVxdWlyZWQgYXJndW1l
bnRzIAogUEFTUyBET01NYXRyaXhSZWFkT25seSBtdWx0aXBseSBudW1iZXIgb2YgcmVxdWlyZWQg
YXJndW1lbnRzIAogUEFTUyBET01NYXRyaXggbXVsdGlwbHlTZWxmIG51bWJlciBvZiByZXF1aXJl
ZCBhcmd1bWVudHMgCiBQQVNTIERPTU1hdHJpeCBwcmVNdWx0aXBseVNlbGYgbnVtYmVyIG9mIHJl
cXVpcmVkIGFyZ3VtZW50cyAK
</data>

          </attachment>
      

    </bug>

</bugzilla>