<?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>209464</bug_id>
          
          <creation_ts>2020-03-23 23:39:13 -0700</creation_ts>
          <short_desc>Several refactorings done in the MemoryPressureMonitor.cpp</short_desc>
          <delta_ts>2020-03-31 07:21:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pablo Saavedra">psaavedra</reporter>
          <assigned_to name="Pablo Saavedra">psaavedra</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>clopez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1633245</commentid>
    <comment_count>0</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-03-23 23:39:13 -0700</bug_when>
    <thetext>strtoull is a feature added in C++ since C11. This parses the C-string str interpreting its content as an `unsigned long long int` which is more appropriate  for the size_t (unsigned integer type) variables used by the `MemoryPressureMonitor.cpp` functions in counterpoint of atoll() what returns a `long long int`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633246</commentid>
    <comment_count>1</comment_count>
      <attachid>394354</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-03-23 23:41:41 -0700</bug_when>
    <thetext>Created attachment 394354
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633250</commentid>
    <comment_count>2</comment_count>
      <attachid>394354</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-03-24 01:33:34 -0700</bug_when>
    <thetext>Comment on attachment 394354
patch

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

&gt; Source/WebKit/UIProcess/linux/MemoryPressureMonitor.cpp:87
&gt; +            low += strtoull(token, nullptr, 10);

This is not doing any error checking to ensure that the parsing was
successful. There are also a generic string-to-integer conversion
function in WTF which you could use here:

  bool ok = true;
  low += WTF::toIntegralType&lt;size_t, UChar&gt;(token, strlen(token), &amp;ok, 10);
  if (!ok) return 0;  // Return early on error.

…and so on for the rest of the conversions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634284</commentid>
    <comment_count>3</comment_count>
      <attachid>394598</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-03-26 05:53:48 -0700</bug_when>
    <thetext>Created attachment 394598
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634292</commentid>
    <comment_count>4</comment_count>
      <attachid>394599</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-03-26 06:13:09 -0700</bug_when>
    <thetext>Created attachment 394599
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634293</commentid>
    <comment_count>5</comment_count>
      <attachid>394600</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-03-26 06:15:01 -0700</bug_when>
    <thetext>Created attachment 394600
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634295</commentid>
    <comment_count>6</comment_count>
      <attachid>394601</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-03-26 06:17:31 -0700</bug_when>
    <thetext>Created attachment 394601
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634298</commentid>
    <comment_count>7</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-03-26 06:25:58 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #2)
&gt; Comment on attachment 394354 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394354&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/linux/MemoryPressureMonitor.cpp:87
&gt; &gt; +            low += strtoull(token, nullptr, 10);
&gt; 
&gt; This is not doing any error checking to ensure that the parsing was
&gt; successful. There are also a generic string-to-integer conversion
&gt; function in WTF which you could use here:
&gt; 
&gt;   bool ok = true;
&gt;   low += WTF::toIntegralType&lt;size_t, UChar&gt;(token, strlen(token), &amp;ok, 10);
&gt;   if (!ok) return 0;  // Return early on error.
&gt; 
&gt; …and so on for the rest of the conversions.

Thanks for your hints. I&apos;ve used those in my new patch. In addition, I decided to clean up some repetitive code and fix some issues that I found running WPE in a cgroup-v2 with unified hierarchy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635990</commentid>
    <comment_count>8</comment_count>
      <attachid>394601</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-03-31 06:21:40 -0700</bug_when>
    <thetext>Comment on attachment 394601
patch

Thanks for the patch, having the checks for parsing numeric values in
places and some of the duplicated code factored out makes me more
confident in this being robust 👍️. Please check the comments before
landing.

It would be still nice to get rid of “strtok()” because often it is a
source of footguns; but I do not have any good suggestion that would
avoid writing a more formal parser… so let&apos;s just leave things as-is.

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

&gt; Source/WebKit/ChangeLog:34
&gt; +        getMemoryUsageWithCgroup() sighly. The name of the controller

Typo: sighly → slightly

&gt; Source/WebKit/UIProcess/linux/MemoryPressureMonitor.cpp:232
&gt; +    CString memoryControllerPath = CString();

You can remove the “= CString()” assignment. The default constructor
will initialize the value to an empty string anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635991</commentid>
    <comment_count>9</comment_count>
      <attachid>395030</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-03-31 06:33:48 -0700</bug_when>
    <thetext>Created attachment 395030
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635993</commentid>
    <comment_count>10</comment_count>
      <attachid>395031</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-03-31 06:41:52 -0700</bug_when>
    <thetext>Created attachment 395031
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636003</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-31 07:20:46 -0700</bug_when>
    <thetext>Committed r259287: &lt;https://trac.webkit.org/changeset/259287&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395031.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636004</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-31 07:21:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/61105994&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394354</attachid>
            <date>2020-03-23 23:41:41 -0700</date>
            <delta_ts>2020-03-26 05:53:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-209464-20200324074140.patch</filename>
            <type>text/plain</type>
            <size>3349</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM2YmRhMzEyYTQ3NmVhYzc1
OGQwYTQ0MjNlNGI5OGExMDNhNzZkYTIuLmUzZjYzNzIwMDFmZWQ3ZTFmOGQ3ZmVkZWZlY2U0MTM4
YTliY2ZhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDMtMjMgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVwbGFjaW5nIGF0b2xs
IHdpdGggc3RydG91bGwgaW4gTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDY0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3RydG91bGwgaXMgYSBmZWF0dXJl
IGFkZGVkIGluIEMrKyBzaW5jZSBDMTEuIFRoaXMgcGFyc2VzIHRoZSBDLXN0cmluZyBzdHIKKyAg
ICAgICAgaW50ZXJwcmV0aW5nIGl0cyBjb250ZW50IGFzIGFuICB1bnNpZ25lZCBsb25nIGxvbmcg
aW50IHdoaWNoIGlzIG1vcmUKKyAgICAgICAgYXBwcm9wcmlhdGUgZm9yIHRoZSBzaXplX3QgKHVu
c2lnbmVkIGludGVnZXIgdHlwZSkgdmFyaWFibGVzIHVzZWQgYnkgdGhlCisgICAgICAgIE1lbW9y
eVByZXNzdXJlTW9uaXRvciBmdW5jdGlvbnMgaW4gY291bnRlcnBvaW50IG9mIGF0b2xsKCkgd2hh
dCByZXR1cm5zIGEKKyAgICAgICAgbG9uZyBsb25nIGludC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwOgorICAgICAgICAoV2ViS2l0Ojpsb3dX
YXRlcm1hcmtQYWdlcyk6CisgICAgICAgIChXZWJLaXQ6OnN5c3RlbU1lbW9yeVVzZWRBc1BlcmNl
bnRhZ2UpOgorCiAyMDIwLTAzLTIzICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgSVBDOjpEZWNvZGVyOjpkZWNvZGVGaXhlZExlbmd0aERhdGEoKSBzaG91bGQg
YmUgbWFya2VkIFdBUk5fVU5VU0VEX1JFVFVSTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHAKaW5kZXggZDY5YTZiOGZh
NDY0ZGEzOTQ2OGRjNjgxNTBkYWE1Yzc5ODJkZDg4NS4uYjllZDAyMjMwM2M5ZDJlNmFjNzQyYWEw
ZmJlMTZlMDU5YjdmNjBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbGlu
dXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwCkBAIC04NCw3ICs4NCw3IEBAIHN0YXRp
YyBzaXplX3QgbG93V2F0ZXJtYXJrUGFnZXMoKQogICAgICAgICAgICAgICAgIGxvdyA9IG5vdFNl
dDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGxv
dyArPSBhdG9sbCh0b2tlbik7CisgICAgICAgICAgICBsb3cgKz0gc3RydG91bGwodG9rZW4sIG51
bGxwdHIsIDEwKTsKICAgICAgICAgICAgIGZvdW5kTG93ID0gdHJ1ZTsKICAgICAgICAgfQogICAg
IH0KQEAgLTI2NiwzMyArMjY2LDMzIEBAIHN0YXRpYyBpbnQgc3lzdGVtTWVtb3J5VXNlZEFzUGVy
Y2VudGFnZSgpCiAKICAgICAgICAgaWYgKCFzdHJjbXAodG9rZW4sICJNZW1BdmFpbGFibGU6Iikp
IHsKICAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpIHsKLSAg
ICAgICAgICAgICAgICBtZW1vcnlBdmFpbGFibGUgPSBhdG9sbCh0b2tlbik7CisgICAgICAgICAg
ICAgICAgbWVtb3J5QXZhaWxhYmxlID0gc3RydG91bGwodG9rZW4sIG51bGxwdHIsIDEwKTsKICAg
ICAgICAgICAgICAgICBpZiAobWVtb3J5VG90YWwgIT0gbm90U2V0KQogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKHRv
a2VuLCAiTWVtVG90YWw6IikpIHsKICAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVs
bHB0ciwgIiAiKSkpCi0gICAgICAgICAgICAgICAgbWVtb3J5VG90YWwgPSBhdG9sbCh0b2tlbik7
CisgICAgICAgICAgICAgICAgbWVtb3J5VG90YWwgPSBzdHJ0b3VsbCh0b2tlbiwgbnVsbHB0ciwg
MTApOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
IGVsc2UgaWYgKCFzdHJjbXAodG9rZW4sICJNZW1GcmVlOiIpKSB7CiAgICAgICAgICAgICBpZiAo
KHRva2VuID0gc3RydG9rKG51bGxwdHIsICIgIikpKQotICAgICAgICAgICAgICAgIG1lbW9yeUZy
ZWUgPSBhdG9sbCh0b2tlbik7CisgICAgICAgICAgICAgICAgbWVtb3J5RnJlZSA9IHN0cnRvdWxs
KHRva2VuLCBudWxscHRyLCAxMCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcCh0b2tlbiwgIkFjdGl2ZShmaWxlKToi
KSkgewogICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRvayhudWxscHRyLCAiICIpKSkKLSAg
ICAgICAgICAgICAgICBhY3RpdmVGaWxlID0gYXRvbGwodG9rZW4pOworICAgICAgICAgICAgICAg
IGFjdGl2ZUZpbGUgPSBzdHJ0b3VsbCh0b2tlbiwgbnVsbHB0ciwgMTApOwogICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAo
dG9rZW4sICJJbmFjdGl2ZShmaWxlKToiKSkgewogICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0
cnRvayhudWxscHRyLCAiICIpKSkKLSAgICAgICAgICAgICAgICBpbmFjdGl2ZUZpbGUgPSBhdG9s
bCh0b2tlbik7CisgICAgICAgICAgICAgICAgaW5hY3RpdmVGaWxlID0gc3RydG91bGwodG9rZW4s
IG51bGxwdHIsIDEwKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKHRva2VuLCAiU1JlY2xhaW1hYmxlOiIpKSB7CiAg
ICAgICAgICAgICBpZiAoKHRva2VuID0gc3RydG9rKG51bGxwdHIsICIgIikpKQotICAgICAgICAg
ICAgICAgIHNsYWJSZWNsYWltYWJsZSA9IGF0b2xsKHRva2VuKTsKKyAgICAgICAgICAgICAgICBz
bGFiUmVjbGFpbWFibGUgPSBzdHJ0b3VsbCh0b2tlbiwgbnVsbHB0ciwgMTApOwogICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394598</attachid>
            <date>2020-03-26 05:53:48 -0700</date>
            <delta_ts>2020-03-26 06:13:02 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-209464-20200326135347.patch</filename>
            <type>text/plain</type>
            <size>13488</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE4MWIxNmZkNDExMmNjN2Nl
NjA0MjU2NGQ3ZjFiMjBmNDlhZjc5YTAuLjI0YzhmZGE3ZWJmNjE0MTQzYWVjZjM3ODg3OWUwMDE5
YmFhMTFmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDMtMjYgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgU2V2ZXJhbCByZWZhY3Rv
cmluZ3MgZG9uZSBpbiB0aGUgTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDY0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMSkgdG9JbnRlZ3JhbFR5cGUoKSBw
YXJzZXMgdGhlIEMtc3RyaW5nIHN0ciBpbnRlcnByZXRpbmcgaXRzIGNvbnRlbnQKKyAgICAgICAg
YXMgYW4gYHVuc2lnbmVkIGxvbmcgbG9uZyBpbnRgIHdoaWNoIGlzIG1vcmUgYXBwcm9wcmlhdGUg
Zm9yCisgICAgICAgIHRoZSBzaXplX3QgKHVuc2lnbmVkIGludGVnZXIgdHlwZSkgdmFyaWFibGVz
IHVzZWQgYnkgdGhlCisgICAgICAgIE1lbW9yeVByZXNzdXJlTW9uaXRvciBmdW5jdGlvbnMgaW4g
Y291bnRlcnBvaW50IG9mIGF0b2xsKCkgd2hhdAorICAgICAgICByZXR1cm5zIGEgYGxvbmcgbG9u
ZyBpbnRgLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFsc28gY29udHJvbHMgaWYgdGhlIHBhcnNp
bmcgd2FzIHN1Y2Nlc2Z1bC4gSW4gbmVnYXRpdmUKKyAgICAgICAgY2FzZSByZXR1cm5zIGBub3RT
ZXRgLgorCisgICAgICAgIDIpIEFkZGVkIHRoZSBnZXRDZ3JvdXBGaWxlVmFsdWUoKSBmdW5jdGlv
biB3aGF0IGVuY2Fwc3VsYXRlcyB0aGUKKyAgICAgICAgbWFuaXB1bGF0aW9uIG9mIHRoZSBvcGVu
ZWQgZmlsZXMgaW4gdGhlIGAvc3lzL2ZzL2Nncm91cGAgaGllcmFyY2h5LgorICAgICAgICBUaGlz
IGNoYW5nZSBzaW1wbGlmeSB0aGUgY29kZSBhdm9kaW5nIHVubmVjZXNzYXJ5IGNvZGUgcmVwZXRp
b24uCisKKyAgICAgICAgMykgZ2V0Q2dyb3VwQ29udHJvbGxlclBhdGgoKSBub3cgY2hlY2tzIGlm
IHRoZXJlIGlzIGEgYG5hbWU9c3lzdGVtZGAKKyAgICAgICAgY29udHJvbGxlciBsaXN0ZWQgaW4g
dGhlIGAvcHJvYy9zZWxmL2Nncm91cGAuIFRoaXMgaW1wb3J0YW50IGZvcgorICAgICAgICBjZ3Jv
dXAgdjIgYWN0aXZhdGVkIHdpdGggYHN5c3RlbWQudW5pZmllZF9jZ3JvdXBfaGllcmFyY2h5PXll
c2AKKyAgICAgICAgdGhyb3VnaCB0aGUgTGludXgga2VybmVsIGNtZGxpbmUuIFRoZSB1bmlmaWVk
IGhpZXJhcmNoeSBzaW1wbGllcworICAgICAgICBwYXRoIG9mIHRoZSBjb250cm9sbGVycyB1bmRl
ciB0aGUgc2FtZSBkaXJlY3RvcnkgKGNoZWNrIHRoZQorICAgICAgICAiRGVwcmVjYXRlZCB2MSBD
b3JlIEZlYXR1cmVzIiBzZWN0aW9uIGluIHRoZSBMaW51eCBLZXJuZWwKKyAgICAgICAgZG9jdW1l
bnRhdGlvbiBmaXIgY2dyb3VwIHYyIFsxXSk6CisKKyAgICAgICAgICAgIE11bHRpcGxlIGhpZXJh
cmNoaWVzIGluY2x1ZGluZyBuYW1lZCBvbmVzIGFyZSBub3Qgc3VwcG9ydGVkCisKKyAgICAgICAg
WzFdIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL0RvY3VtZW50YXRpb24vY2dyb3VwLXYyLnR4
dAorCisgICAgICAgIDQpIEJlY2F1c2UgMykgdGhlIHBhdGNoIGNvbXBvc2l0ZWQgZm9yIGNncm91
cFYyIGNoYW5nZXMKKyAgICAgICAgZ2V0TWVtb3J5VXNhZ2VXaXRoQ2dyb3VwKCkgc2lnaGx5LiBU
aGUgbmFtZSBvZiB0aGUgY29udHJvbGxlcgorICAgICAgICBpcyBub3QgbmVlZGVkIGFueW1vcmUu
CisKKyAgICAgICAgNSkgRm9yIGNncm91cCB2MiwgdGhlIE1lbW9yeVRvdGFsIGlzIGNhbGN1bGF0
ZWQgYXMgdGhlIG1pbmltdW0KKyAgICAgICAgYmV0d2VlbiBtZW1vcnkuaGlnaCBhbmQgbWVtb3J5
Lm1heC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3Iu
Y3BwOgorICAgICAgICAoV2ViS2l0Ojpsb3dXYXRlcm1hcmtQYWdlcyk6CisgICAgICAgIChXZWJL
aXQ6OmdldENncm91cEZpbGVWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6OmdldE1lbW9yeVRvdGFs
V2l0aENncm91cCk6CisgICAgICAgIChXZWJLaXQ6OmdldE1lbW9yeVVzYWdlV2l0aENncm91cCk6
CisgICAgICAgIChXZWJLaXQ6OmdldENncm91cENvbnRyb2xsZXJQYXRoKToKKyAgICAgICAgKFdl
YktpdDo6c3lzdGVtTWVtb3J5VXNlZEFzUGVyY2VudGFnZSk6CisgICAgICAgIChXZWJLaXQ6Omdl
dENncm91cENvbnRyb2xsZXIpOiBEZWxldGVkLgorCiAyMDIwLTAzLTI2ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQgc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdmlkZW9MYXll
cklECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVz
c3VyZU1vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJl
c3N1cmVNb25pdG9yLmNwcAppbmRleCBkNjlhNmI4ZmE0NjRkYTM5NDY4ZGM2ODE1MGRhYTVjNzk4
MmRkODg1Li43YjRkM2EzYzM1MjA1ZDNiYjNmYTgyYjM5NTQzY2QwNGNlNDQ4NmIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9u
aXRvci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC00OSw3ICs1MCw3IEBAIHN0YXRpYyBjb25zdCBpbnQgc19t
ZW1vcnlQcmVzdXJlUGVyY2VudGFnZVRocmVzaG9sZCA9IDkwOwogc3RhdGljIGNvbnN0IGludCBz
X21lbW9yeVByZXN1cmVQZXJjZW50YWdlVGhyZXNob2xkQ3JpdGljYWwgPSA5NTsKIC8vIGNncm91
cHMuNzogVGhlIHVzdWFsIHBsYWNlIGZvciBzdWNoIG1vdW50cyBpcyB1bmRlciBhIHRtcGZzKDUp
CiAvLyBmaWxlc3lzdGVtIG1vdW50ZWQgYXQgL3N5cy9mcy9jZ3JvdXAuCi1zdGF0aWMgY29uc3Qg
Y2hhciogc19jZ3JvdXBNZW1vcnlQYXRoID0gIi9zeXMvZnMvY2dyb3VwL21lbW9yeS8lcy8lcyI7
CitzdGF0aWMgY29uc3QgY2hhciogc19jZ3JvdXBNZW1vcnlQYXRoID0gIi9zeXMvZnMvY2dyb3Vw
LyVzLyVzLyVzIjsKIHN0YXRpYyBjb25zdCBjaGFyKiBzX2Nncm91cENvbnRyb2xsZXIgPSAiL3By
b2Mvc2VsZi9jZ3JvdXAiOwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heENncm91cFBhdGggPSA0
MDk2OyAvLyBQQVRIX01BWCA9IDQwOTYgZnJvbSAoTGludXgpIGluY2x1ZGUvdWFwaS9saW51eC9s
aW1pdHMuaAogCkBAIC04NCw3ICs4NSwxMCBAQCBzdGF0aWMgc2l6ZV90IGxvd1dhdGVybWFya1Bh
Z2VzKCkKICAgICAgICAgICAgICAgICBsb3cgPSBub3RTZXQ7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBsb3cgKz0gYXRvbGwodG9rZW4pOworICAg
ICAgICAgICAgYm9vbCBvayA9IHRydWU7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9JbnRl
Z3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAg
IGlmIChvaykKKyAgICAgICAgICAgICAgICBsb3cgKz0gdmFsdWU7CiAgICAgICAgICAgICBmb3Vu
ZExvdyA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMzIsNzUgKzEzNiw3NSBAQCBzdGF0
aWMgc2l6ZV90IGNhbGN1bGF0ZU1lbW9yeUF2YWlsYWJsZShzaXplX3QgbWVtb3J5RnJlZSwgc2l6
ZV90IGFjdGl2ZUZpbGUsIHNpegogICAgIHJldHVybiBtZW1vcnlBdmFpbGFibGU7CiB9CiAKLXNp
emVfdCBnZXRNZW1vcnlUb3RhbFdpdGhDZ3JvdXAoQ1N0cmluZyBtZW1vcnlDb250cm9sbGVyTmFt
ZSkKKworc2l6ZV90IGdldENncm91cEZpbGVWYWx1ZShDU3RyaW5nIGNncm91cENvbnRyb2xsZXJO
YW1lLCBDU3RyaW5nIGNncm91cENvbnRyb2xsZXJQYXRoLCBDU3RyaW5nIGNncm91cEZpbGVOYW1l
KQogewogICAgIGNoYXIgYnVmZmVyWzEyOF07CiAgICAgY2hhciBjZ3JvdXBQYXRoW21heENncm91
cFBhdGhdOwogICAgIGNoYXIqIHRva2VuOwogICAgIEZJTEUqIGZpbGU7CisgICAgYm9vbCBvayA9
IHRydWU7CiAKLSAgICAvLyBDaGVjayBtZW1vcnkgbGltaXRzIGluIGNncm91cFYyCi0gICAgc25w
cmludGYoY2dyb3VwUGF0aCwgbWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBtZW1v
cnlDb250cm9sbGVyTmFtZS5kYXRhKCksICJtZW1vcnkubWVtc3cubWF4Iik7Ci0gICAgZmlsZSA9
IGZvcGVuKGNncm91cFBhdGgsICJyIik7Ci0gICAgaWYgKGZpbGUpIHsKLSAgICAgICAgdG9rZW4g
PSBmZ2V0cyhidWZmZXIsIDEyOCwgZmlsZSk7Ci0gICAgICAgIGZjbG9zZShmaWxlKTsKLSAgICAg
ICAgcmV0dXJuIGF0b2xsKHRva2VuKTsKLSAgICB9Ci0gICAgc25wcmludGYoY2dyb3VwUGF0aCwg
bWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBtZW1vcnlDb250cm9sbGVyTmFtZS5k
YXRhKCksICJtZW1vcnkubWF4Iik7CisgICAgc25wcmludGYoY2dyb3VwUGF0aCwgbWF4Q2dyb3Vw
UGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBjZ3JvdXBDb250cm9sbGVyTmFtZS5kYXRhKCksIGNn
cm91cENvbnRyb2xsZXJQYXRoLmRhdGEoKSwgY2dyb3VwRmlsZU5hbWUuZGF0YSgpKTsKICAgICBm
aWxlID0gZm9wZW4oY2dyb3VwUGF0aCwgInIiKTsKICAgICBpZiAoZmlsZSkgewogICAgICAgICB0
b2tlbiA9IGZnZXRzKGJ1ZmZlciwgMTI4LCBmaWxlKTsKICAgICAgICAgZmNsb3NlKGZpbGUpOwot
ICAgICAgICByZXR1cm4gYXRvbGwodG9rZW4pOworICAgICAgICBzaXplX3QgdmFsdWUgPSB0b0lu
dGVncmFsVHlwZTxzaXplX3Q+KHRva2VuLCBzdHJsZW4odG9rZW4pLCAmb2spOworICAgICAgICBp
ZiAoIW9rKSB7CisgICAgICAgICAgICB2YWx1ZSA9IG5vdFNldAorICAgICAgICB9OworICAgICAg
ICByZXR1cm4gdmFsdWU7CiAgICAgfQorICAgIHJldHVybiBub3RTZXQ7Cit9CisKK3NpemVfdCBn
ZXRNZW1vcnlUb3RhbFdpdGhDZ3JvdXAoQ1N0cmluZyBtZW1vcnlDb250cm9sbGVyTmFtZSkKK3sK
KyAgICBzaXplX3QgdmFsdWUgPSBub3RTZXQ7CisKKyAgICAvLyBDaGVjayBtZW1vcnkgbGltaXRz
IGluIGNncm91cFYyCisgICAgdmFsdWUgPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIi8iLCBtZW1vcnlD
b250cm9sbGVyTmFtZSwgQ1N0cmluZygibWVtb3J5Lm1lbXN3Lm1heCIpKTsKKyAgICBpZiAodmFs
dWUgIT0gbm90U2V0KQorICAgICAgICByZXR1cm4gdmFsdWU7CisKKyAgICB2YWx1ZSA9IGdldENn
cm91cEZpbGVWYWx1ZSgiLyIsIG1lbW9yeUNvbnRyb2xsZXJOYW1lLCBDU3RyaW5nKCJtZW1vcnku
bWF4IikpOworICAgIHNpemVfdCB2YWx1ZUhpZ2ggPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIi8iLCBt
ZW1vcnlDb250cm9sbGVyTmFtZSwgQ1N0cmluZygibWVtb3J5LmhpZ2giKSk7CisgICAgaWYgKHZh
bHVlICE9IG5vdFNldCAmJiB2YWx1ZUhpZ2ggIT0gbm90U2V0KSB7CisgICAgICAgIHZhbHVlID0g
c3RkOjptaW4odmFsdWUsIHZhbHVlSGlnaCk7CisgICAgICAgIHJldHVybiB2YWx1ZTsgfQorICAg
IGlmICh2YWx1ZUhpZ2ggIT0gbm90U2V0KSB7CisgICAgICAgIHJldHVybiB2YWx1ZUhpZ2g7IH0K
KyAgICBpZiAodmFsdWUgIT0gbm90U2V0KSB7CisgICAgICAgIHJldHVybiB2YWx1ZTsgfQogCiAg
ICAgLy8gQ2hlY2sgbWVtb3J5IGxpbWl0cyBpbiBjZ3JvdXBWMQotICAgIHNucHJpbnRmKGNncm91
cFBhdGgsIG1heENncm91cFBhdGgsIHNfY2dyb3VwTWVtb3J5UGF0aCwgbWVtb3J5Q29udHJvbGxl
ck5hbWUuZGF0YSgpLCAibWVtb3J5Lm1lbXN3LmxpbWl0X2luX2J5dGVzIik7Ci0gICAgZmlsZSA9
IGZvcGVuKGNncm91cFBhdGgsICJyIik7Ci0gICAgaWYgKGZpbGUpIHsKLSAgICAgICAgdG9rZW4g
PSBmZ2V0cyhidWZmZXIsIDEyOCwgZmlsZSk7Ci0gICAgICAgIGZjbG9zZShmaWxlKTsKLSAgICAg
ICAgcmV0dXJuIGF0b2xsKHRva2VuKTsKLSAgICB9Ci0gICAgc25wcmludGYoY2dyb3VwUGF0aCwg
bWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBtZW1vcnlDb250cm9sbGVyTmFtZS5k
YXRhKCksICJtZW1vcnkubGltaXRfaW5fYnl0ZXMiKTsKLSAgICBmaWxlID0gZm9wZW4oY2dyb3Vw
UGF0aCwgInIiKTsKLSAgICBpZiAoZmlsZSkgewotICAgICAgICB0b2tlbiA9IGZnZXRzKGJ1ZmZl
ciwgMTI4LCBmaWxlKTsKLSAgICAgICAgZmNsb3NlKGZpbGUpOwotICAgICAgICByZXR1cm4gYXRv
bGwodG9rZW4pOwotICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICB2YWx1ZSA9IGdldENncm91cEZp
bGVWYWx1ZSgibWVtb3J5IiwgbWVtb3J5Q29udHJvbGxlck5hbWUsIENTdHJpbmcoIm1lbW9yeS5t
ZW1zdy5saW1pdF9pbl9ieXRlcyIpKTsKKyAgICBpZiAodmFsdWUgIT0gbm90U2V0KQorICAgICAg
ICByZXR1cm4gdmFsdWU7CisKKyAgICB2YWx1ZSA9IGdldENncm91cEZpbGVWYWx1ZSgibWVtb3J5
IiwgbWVtb3J5Q29udHJvbGxlck5hbWUsIENTdHJpbmcoIm1lbW9yeS5saW1pdF9pbl9ieXRlcyIp
KTsKKyAgICBpZiAodmFsdWUgIT0gbm90U2V0KQorICAgICAgICByZXR1cm4gdmFsdWU7CisKKyAg
ICByZXR1cm4gdmFsdWU7CiB9CiAKIHN0YXRpYyBzaXplX3QgZ2V0TWVtb3J5VXNhZ2VXaXRoQ2dy
b3VwKENTdHJpbmcgbWVtb3J5Q29udHJvbGxlck5hbWUpCiB7Ci0gICAgY2hhciBidWZmZXJbMTI4
XTsKLSAgICBjaGFyIGNncm91cFBhdGhbbWF4Q2dyb3VwUGF0aF07Ci0gICAgY2hhciogdG9rZW47
Ci0gICAgY2hhciogbGluZTsKLSAgICBGSUxFKiBmaWxlQ2dyb3VwUGF0aFVzYWdlQnl0ZXM7Cisg
ICAgc2l6ZV90IHZhbHVlID0gbm90U2V0OwogCiAgICAgLy8gQ2hlY2sgbWVtb3J5IGxpbWl0cyBp
biBjZ3JvdXBWMgotICAgIHNucHJpbnRmKGNncm91cFBhdGgsIG1heENncm91cFBhdGgsIHNfY2dy
b3VwTWVtb3J5UGF0aCwgbWVtb3J5Q29udHJvbGxlck5hbWUuZGF0YSgpLCAibWVtb3J5LmN1cnJl
bnQiKTsKLSAgICBmaWxlQ2dyb3VwUGF0aFVzYWdlQnl0ZXMgPSBmb3BlbihjZ3JvdXBQYXRoLCAi
ciIpOwotICAgIGlmIChmaWxlQ2dyb3VwUGF0aFVzYWdlQnl0ZXMpIHsKLSAgICAgICAgbGluZSA9
IGZnZXRzKGJ1ZmZlciwgMTI4LCBmaWxlQ2dyb3VwUGF0aFVzYWdlQnl0ZXMpOwotICAgICAgICB0
b2tlbiA9IHN0cnRvayhsaW5lLCAiICIpOwotICAgICAgICBmY2xvc2UoZmlsZUNncm91cFBhdGhV
c2FnZUJ5dGVzKTsKLSAgICAgICAgcmV0dXJuIGF0b2xsKHRva2VuKTsKLSAgICB9CisgICAgdmFs
dWUgPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIi8iLCBtZW1vcnlDb250cm9sbGVyTmFtZSwgQ1N0cmlu
ZygibWVtb3J5LmN1cnJlbnQiKSk7CisgICAgaWYgKHZhbHVlICE9IG5vdFNldCkKKyAgICAgICAg
cmV0dXJuIHZhbHVlOwogCiAgICAgLy8gQ2hlY2sgbWVtb3J5IGxpbWl0cyBpbiBjZ3JvdXBWMQot
ICAgIHNucHJpbnRmKGNncm91cFBhdGgsIG1heENncm91cFBhdGgsIHNfY2dyb3VwTWVtb3J5UGF0
aCwgbWVtb3J5Q29udHJvbGxlck5hbWUuZGF0YSgpLCAibWVtb3J5LnVzYWdlX2luX2J5dGVzIik7
Ci0gICAgZmlsZUNncm91cFBhdGhVc2FnZUJ5dGVzID0gZm9wZW4oY2dyb3VwUGF0aCwgInIiKTsK
LSAgICBpZiAoZmlsZUNncm91cFBhdGhVc2FnZUJ5dGVzKSB7Ci0gICAgICAgIGxpbmUgPSBmZ2V0
cyhidWZmZXIsIDEyOCwgZmlsZUNncm91cFBhdGhVc2FnZUJ5dGVzKTsKLSAgICAgICAgdG9rZW4g
PSBzdHJ0b2sobGluZSwgIiAiKTsKLSAgICAgICAgZmNsb3NlKGZpbGVDZ3JvdXBQYXRoVXNhZ2VC
eXRlcyk7Ci0gICAgICAgIHJldHVybiBhdG9sbCh0b2tlbik7Ci0gICAgfQotICAgIHJldHVybiAw
OworICAgIHZhbHVlID0gZ2V0Q2dyb3VwRmlsZVZhbHVlKCJtZW1vcnkiLCBtZW1vcnlDb250cm9s
bGVyTmFtZSwgQ1N0cmluZygibWVtb3J5LnVzYWdlX2luX2J5dGVzIikpOworICAgIGlmICh2YWx1
ZSAhPSBub3RTZXQpCisgICAgICAgIHJldHVybiB2YWx1ZTsKKworICAgIHJldHVybiBub3RTZXQ7
CiB9CiAKIC8vIFRoaXMgZmlsZSBkZXNjcmliZXMgY29udHJvbCBncm91cHMgdG8gd2hpY2ggdGhl
IHByb2Nlc3Mgd2l0aApAQCAtMjIzLDkgKzIyNyw5IEBAIHN0YXRpYyBzaXplX3QgZ2V0TWVtb3J5
VXNhZ2VXaXRoQ2dyb3VwKENTdHJpbmcgbWVtb3J5Q29udHJvbGxlck5hbWUpCiAvLyAyOmNwdXNl
dDovCiAvLyAxOm5hbWU9c3lzdGVtZDovdXNlci5zbGljZS91c2VyLTEwMDAuc2xpY2UvdXNlckAx
MDAwLnNlcnZpY2UvZ25vbWUtdGVybWluYWwtc2VydmVyLnNlcnZpY2UKIC8vIDA6Oi91c2VyLnNs
aWNlL3VzZXItMTAwMC5zbGljZS91c2VyQDEwMDAuc2VydmljZS9nbm9tZS10ZXJtaW5hbC1zZXJ2
ZXIuc2VydmljZQotc3RhdGljIENTdHJpbmcgZ2V0Q2dyb3VwQ29udHJvbGxlcihjb25zdCBjaGFy
KiBjb250cm9sbGVyTmFtZSkKK3N0YXRpYyBDU3RyaW5nIGdldENncm91cENvbnRyb2xsZXJQYXRo
KGNvbnN0IGNoYXIqIGNvbnRyb2xsZXJOYW1lKQogewotICAgIENTdHJpbmcgbWVtb3J5Q29udHJv
bGxlck5hbWU7CisgICAgQ1N0cmluZyBtZW1vcnlDb250cm9sbGVyUGF0aCA9IENTdHJpbmcoKTsK
ICAgICBGSUxFKiBmaWxlID0gZm9wZW4oc19jZ3JvdXBDb250cm9sbGVyLCAiciIpOwogICAgIGlm
ICghZmlsZSkKICAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKQEAgLTI0MCwxMyArMjQ0LDE3IEBA
IHN0YXRpYyBDU3RyaW5nIGdldENncm91cENvbnRyb2xsZXIoY29uc3QgY2hhciogY29udHJvbGxl
ck5hbWUpCiAgICAgICAgIHRva2VuID0gc3RydG9rKG51bGxwdHIsICI6Iik7CiAgICAgICAgIGlm
ICghc3RyY21wKHRva2VuLCBjb250cm9sbGVyTmFtZSkpIHsKICAgICAgICAgICAgIHRva2VuID0g
c3RydG9rKG51bGxwdHIsICI6Iik7Ci0gICAgICAgICAgICBtZW1vcnlDb250cm9sbGVyTmFtZSA9
IENTdHJpbmcodG9rZW4pOworICAgICAgICAgICAgbWVtb3J5Q29udHJvbGxlclBhdGggPSBDU3Ry
aW5nKHRva2VuKTsKICAgICAgICAgICAgIGZjbG9zZShmaWxlKTsKLSAgICAgICAgICAgIHJldHVy
biBtZW1vcnlDb250cm9sbGVyTmFtZTsKKyAgICAgICAgICAgIHJldHVybiBtZW1vcnlDb250cm9s
bGVyUGF0aDsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXN0cm5jbXAodG9rZW4sICJuYW1lPXN5
c3RlbWQiLCAxMikpIHsKKyAgICAgICAgICAgIHRva2VuID0gc3RydG9rKG51bGxwdHIsICI6Iik7
CisgICAgICAgICAgICBtZW1vcnlDb250cm9sbGVyUGF0aCA9IENTdHJpbmcodG9rZW4pOwogICAg
ICAgICB9CiAgICAgfQogICAgIGZjbG9zZShmaWxlKTsKLSAgICByZXR1cm4gQ1N0cmluZygpOwor
ICAgIHJldHVybiBtZW1vcnlDb250cm9sbGVyUGF0aDsKIH0KIAogCkBAIC0yNjEsMzkgKzI2OSw1
MiBAQCBzdGF0aWMgaW50IHN5c3RlbU1lbW9yeVVzZWRBc1BlcmNlbnRhZ2UoKQogICAgIGNoYXIg
YnVmZmVyWzEyOF07CiAgICAgd2hpbGUgKGNoYXIqIGxpbmUgPSBmZ2V0cyhidWZmZXIsIDEyOCwg
ZmlsZSkpIHsKICAgICAgICAgY2hhciogdG9rZW4gPSBzdHJ0b2sobGluZSwgIiAiKTsKKyAgICAg
ICAgYm9vbCBvayA9IHRydWU7CiAgICAgICAgIGlmICghdG9rZW4pCiAgICAgICAgICAgICBicmVh
azsKIAogICAgICAgICBpZiAoIXN0cmNtcCh0b2tlbiwgIk1lbUF2YWlsYWJsZToiKSkgewogICAg
ICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRvayhudWxscHRyLCAiICIpKSkgewotICAgICAgICAg
ICAgICAgIG1lbW9yeUF2YWlsYWJsZSA9IGF0b2xsKHRva2VuKTsKKyAgICAgICAgICAgICAgICBt
ZW1vcnlBdmFpbGFibGUgPSB0b0ludGVncmFsVHlwZTxzaXplX3Q+KHRva2VuLCBzdHJsZW4odG9r
ZW4pLCAmb2spOworICAgICAgICAgICAgICAgIGlmICghb2spCisgICAgICAgICAgICAgICAgICAg
IG1lbW9yeUF2YWlsYWJsZSA9IG5vdFNldDsKICAgICAgICAgICAgICAgICBpZiAobWVtb3J5VG90
YWwgIT0gbm90U2V0KQogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKHRva2VuLCAiTWVtVG90YWw6IikpIHsKLSAgICAg
ICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpCi0gICAgICAgICAgICAg
ICAgbWVtb3J5VG90YWwgPSBhdG9sbCh0b2tlbik7Ci0gICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICBpZiAoKHRva2VuID0gc3RydG9rKG51bGxwdHIsICIgIikpKSB7CisgICAgICAgICAgICAg
ICAgbWVtb3J5VG90YWwgPSB0b0ludGVncmFsVHlwZTxzaXplX3Q+KHRva2VuLCBzdHJsZW4odG9r
ZW4pLCAmb2spOworICAgICAgICAgICAgICAgIGlmICghb2spCisgICAgICAgICAgICAgICAgICAg
IG1lbW9yeVRvdGFsID0gbm90U2V0OworICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcCh0b2tlbiwgIk1lbUZyZWU6Iikp
IHsKLSAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpCi0gICAg
ICAgICAgICAgICAgbWVtb3J5RnJlZSA9IGF0b2xsKHRva2VuKTsKLSAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpIHsKKyAgICAg
ICAgICAgICAgICBtZW1vcnlGcmVlID0gdG9JbnRlZ3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3Ry
bGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAg
ICAgICAgICBtZW1vcnlGcmVlID0gbm90U2V0OworICAgICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcCh0b2tlbiwgIkFjdGl2
ZShmaWxlKToiKSkgewotICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRvayhudWxscHRyLCAi
ICIpKSkKLSAgICAgICAgICAgICAgICBhY3RpdmVGaWxlID0gYXRvbGwodG9rZW4pOwotICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRvayhudWxscHRyLCAiICIp
KSkgeworICAgICAgICAgICAgICAgIGFjdGl2ZUZpbGUgPSB0b0ludGVncmFsVHlwZTxzaXplX3Q+
KHRva2VuLCBzdHJsZW4odG9rZW4pLCAmb2spOworICAgICAgICAgICAgICAgIGlmICghb2spCisg
ICAgICAgICAgICAgICAgICAgIGFjdGl2ZUZpbGUgPSBub3RTZXQ7CisgICAgICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKHRv
a2VuLCAiSW5hY3RpdmUoZmlsZSk6IikpIHsKLSAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0
b2sobnVsbHB0ciwgIiAiKSkpCi0gICAgICAgICAgICAgICAgaW5hY3RpdmVGaWxlID0gYXRvbGwo
dG9rZW4pOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRv
ayhudWxscHRyLCAiICIpKSkgeworICAgICAgICAgICAgICAgIGluYWN0aXZlRmlsZSA9IHRvSW50
ZWdyYWxUeXBlPHNpemVfdD4odG9rZW4sIHN0cmxlbih0b2tlbiksICZvayk7CisgICAgICAgICAg
ICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgICAgICAgICAgaW5hY3RpdmVGaWxlID0gbm90U2V0
CisgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfSBl
bHNlIGlmICghc3RyY21wKHRva2VuLCAiU1JlY2xhaW1hYmxlOiIpKSB7Ci0gICAgICAgICAgICBp
ZiAoKHRva2VuID0gc3RydG9rKG51bGxwdHIsICIgIikpKQotICAgICAgICAgICAgICAgIHNsYWJS
ZWNsYWltYWJsZSA9IGF0b2xsKHRva2VuKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpIHsKKyAgICAgICAgICAgICAgICBz
bGFiUmVjbGFpbWFibGUgPSB0b0ludGVncmFsVHlwZTxzaXplX3Q+KHRva2VuLCBzdHJsZW4odG9r
ZW4pLCAmb2spOworICAgICAgICAgICAgICAgIGlmICFvaworICAgICAgICAgICAgICAgICAgICBz
bGFiUmVjbGFpbWFibGUgPSBub3RTZXQ7CisgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0zMTUsMTEgKzMzNiwxMSBAQCBzdGF0aWMgaW50
IHN5c3RlbU1lbW9yeVVzZWRBc1BlcmNlbnRhZ2UoKQogICAgICAgICByZXR1cm4gLTE7CiAKICAg
ICBpbnQgbWVtb3J5VXNhZ2VQZXJjZW50YWdlID0gKChtZW1vcnlUb3RhbCAtIG1lbW9yeUF2YWls
YWJsZSkgKiAxMDApIC8gbWVtb3J5VG90YWw7Ci0gICAgQ1N0cmluZyBtZW1vcnlDb250cm9sbGVy
TmFtZSA9IGdldENncm91cENvbnRyb2xsZXIoIm1lbW9yeSIpOwotICAgIGlmICghbWVtb3J5Q29u
dHJvbGxlck5hbWUuaXNOdWxsKCkpIHsKLSAgICAgICAgbWVtb3J5VG90YWwgPSBnZXRNZW1vcnlU
b3RhbFdpdGhDZ3JvdXAobWVtb3J5Q29udHJvbGxlck5hbWUpOwotICAgICAgICBzaXplX3QgbWVt
b3J5VXNhZ2UgPSBnZXRNZW1vcnlVc2FnZVdpdGhDZ3JvdXAobWVtb3J5Q29udHJvbGxlck5hbWUp
OwotICAgICAgICBpZiAobWVtb3J5VG90YWwpIHsKKyAgICBDU3RyaW5nIG1lbW9yeUNvbnRyb2xs
ZXJQYXRoID0gZ2V0Q2dyb3VwQ29udHJvbGxlclBhdGgoIm1lbW9yeSIpOworICAgIGlmICghbWVt
b3J5Q29udHJvbGxlclBhdGguaXNOdWxsKCkpIHsKKyAgICAgICAgbWVtb3J5VG90YWwgPSBnZXRN
ZW1vcnlUb3RhbFdpdGhDZ3JvdXAobWVtb3J5Q29udHJvbGxlclBhdGgpOworICAgICAgICBzaXpl
X3QgbWVtb3J5VXNhZ2UgPSBnZXRNZW1vcnlVc2FnZVdpdGhDZ3JvdXAobWVtb3J5Q29udHJvbGxl
clBhdGgpOworICAgICAgICBpZiAobWVtb3J5VG90YWwgIT0gbm90U2V0ICYmIG1lbW9yeVVzYWdl
ICE9IG5vdFNldCkgewogICAgICAgICAgICAgaW50IG1lbW9yeVVzYWdlUGVyY2VudGFnZVdpdGhD
Z3JvdXAgPSAxMDAgKiAoKGZsb2F0KSBtZW1vcnlVc2FnZSAvIChmbG9hdCkgbWVtb3J5VG90YWwp
OwogICAgICAgICAgICAgaWYgKG1lbW9yeVVzYWdlUGVyY2VudGFnZVdpdGhDZ3JvdXAgPiBtZW1v
cnlVc2FnZVBlcmNlbnRhZ2UpCiAgICAgICAgICAgICAgICAgbWVtb3J5VXNhZ2VQZXJjZW50YWdl
ID0gbWVtb3J5VXNhZ2VQZXJjZW50YWdlV2l0aENncm91cDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394599</attachid>
            <date>2020-03-26 06:13:09 -0700</date>
            <delta_ts>2020-03-26 06:14:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-209464-20200326141306.patch</filename>
            <type>text/plain</type>
            <size>13465</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE4MWIxNmZkNDExMmNjN2Nl
NjA0MjU2NGQ3ZjFiMjBmNDlhZjc5YTAuLjI0YzhmZGE3ZWJmNjE0MTQzYWVjZjM3ODg3OWUwMDE5
YmFhMTFmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDMtMjYgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgU2V2ZXJhbCByZWZhY3Rv
cmluZ3MgZG9uZSBpbiB0aGUgTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDY0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMSkgdG9JbnRlZ3JhbFR5cGUoKSBw
YXJzZXMgdGhlIEMtc3RyaW5nIHN0ciBpbnRlcnByZXRpbmcgaXRzIGNvbnRlbnQKKyAgICAgICAg
YXMgYW4gYHVuc2lnbmVkIGxvbmcgbG9uZyBpbnRgIHdoaWNoIGlzIG1vcmUgYXBwcm9wcmlhdGUg
Zm9yCisgICAgICAgIHRoZSBzaXplX3QgKHVuc2lnbmVkIGludGVnZXIgdHlwZSkgdmFyaWFibGVz
IHVzZWQgYnkgdGhlCisgICAgICAgIE1lbW9yeVByZXNzdXJlTW9uaXRvciBmdW5jdGlvbnMgaW4g
Y291bnRlcnBvaW50IG9mIGF0b2xsKCkgd2hhdAorICAgICAgICByZXR1cm5zIGEgYGxvbmcgbG9u
ZyBpbnRgLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFsc28gY29udHJvbHMgaWYgdGhlIHBhcnNp
bmcgd2FzIHN1Y2Nlc2Z1bC4gSW4gbmVnYXRpdmUKKyAgICAgICAgY2FzZSByZXR1cm5zIGBub3RT
ZXRgLgorCisgICAgICAgIDIpIEFkZGVkIHRoZSBnZXRDZ3JvdXBGaWxlVmFsdWUoKSBmdW5jdGlv
biB3aGF0IGVuY2Fwc3VsYXRlcyB0aGUKKyAgICAgICAgbWFuaXB1bGF0aW9uIG9mIHRoZSBvcGVu
ZWQgZmlsZXMgaW4gdGhlIGAvc3lzL2ZzL2Nncm91cGAgaGllcmFyY2h5LgorICAgICAgICBUaGlz
IGNoYW5nZSBzaW1wbGlmeSB0aGUgY29kZSBhdm9kaW5nIHVubmVjZXNzYXJ5IGNvZGUgcmVwZXRp
b24uCisKKyAgICAgICAgMykgZ2V0Q2dyb3VwQ29udHJvbGxlclBhdGgoKSBub3cgY2hlY2tzIGlm
IHRoZXJlIGlzIGEgYG5hbWU9c3lzdGVtZGAKKyAgICAgICAgY29udHJvbGxlciBsaXN0ZWQgaW4g
dGhlIGAvcHJvYy9zZWxmL2Nncm91cGAuIFRoaXMgaW1wb3J0YW50IGZvcgorICAgICAgICBjZ3Jv
dXAgdjIgYWN0aXZhdGVkIHdpdGggYHN5c3RlbWQudW5pZmllZF9jZ3JvdXBfaGllcmFyY2h5PXll
c2AKKyAgICAgICAgdGhyb3VnaCB0aGUgTGludXgga2VybmVsIGNtZGxpbmUuIFRoZSB1bmlmaWVk
IGhpZXJhcmNoeSBzaW1wbGllcworICAgICAgICBwYXRoIG9mIHRoZSBjb250cm9sbGVycyB1bmRl
ciB0aGUgc2FtZSBkaXJlY3RvcnkgKGNoZWNrIHRoZQorICAgICAgICAiRGVwcmVjYXRlZCB2MSBD
b3JlIEZlYXR1cmVzIiBzZWN0aW9uIGluIHRoZSBMaW51eCBLZXJuZWwKKyAgICAgICAgZG9jdW1l
bnRhdGlvbiBmaXIgY2dyb3VwIHYyIFsxXSk6CisKKyAgICAgICAgICAgIE11bHRpcGxlIGhpZXJh
cmNoaWVzIGluY2x1ZGluZyBuYW1lZCBvbmVzIGFyZSBub3Qgc3VwcG9ydGVkCisKKyAgICAgICAg
WzFdIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL0RvY3VtZW50YXRpb24vY2dyb3VwLXYyLnR4
dAorCisgICAgICAgIDQpIEJlY2F1c2UgMykgdGhlIHBhdGNoIGNvbXBvc2l0ZWQgZm9yIGNncm91
cFYyIGNoYW5nZXMKKyAgICAgICAgZ2V0TWVtb3J5VXNhZ2VXaXRoQ2dyb3VwKCkgc2lnaGx5LiBU
aGUgbmFtZSBvZiB0aGUgY29udHJvbGxlcgorICAgICAgICBpcyBub3QgbmVlZGVkIGFueW1vcmUu
CisKKyAgICAgICAgNSkgRm9yIGNncm91cCB2MiwgdGhlIE1lbW9yeVRvdGFsIGlzIGNhbGN1bGF0
ZWQgYXMgdGhlIG1pbmltdW0KKyAgICAgICAgYmV0d2VlbiBtZW1vcnkuaGlnaCBhbmQgbWVtb3J5
Lm1heC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3Iu
Y3BwOgorICAgICAgICAoV2ViS2l0Ojpsb3dXYXRlcm1hcmtQYWdlcyk6CisgICAgICAgIChXZWJL
aXQ6OmdldENncm91cEZpbGVWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6OmdldE1lbW9yeVRvdGFs
V2l0aENncm91cCk6CisgICAgICAgIChXZWJLaXQ6OmdldE1lbW9yeVVzYWdlV2l0aENncm91cCk6
CisgICAgICAgIChXZWJLaXQ6OmdldENncm91cENvbnRyb2xsZXJQYXRoKToKKyAgICAgICAgKFdl
YktpdDo6c3lzdGVtTWVtb3J5VXNlZEFzUGVyY2VudGFnZSk6CisgICAgICAgIChXZWJLaXQ6Omdl
dENncm91cENvbnRyb2xsZXIpOiBEZWxldGVkLgorCiAyMDIwLTAzLTI2ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQgc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdmlkZW9MYXll
cklECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVz
c3VyZU1vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJl
c3N1cmVNb25pdG9yLmNwcAppbmRleCBkNjlhNmI4ZmE0NjRkYTM5NDY4ZGM2ODE1MGRhYTVjNzk4
MmRkODg1Li41N2FhNTcxMmI5ZmIzMjdkNWNkZjI4YjI1MWQ2YzQ0MjA5YzdjZjcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9u
aXRvci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC00OSw3ICs1MCw3IEBAIHN0YXRpYyBjb25zdCBpbnQgc19t
ZW1vcnlQcmVzdXJlUGVyY2VudGFnZVRocmVzaG9sZCA9IDkwOwogc3RhdGljIGNvbnN0IGludCBz
X21lbW9yeVByZXN1cmVQZXJjZW50YWdlVGhyZXNob2xkQ3JpdGljYWwgPSA5NTsKIC8vIGNncm91
cHMuNzogVGhlIHVzdWFsIHBsYWNlIGZvciBzdWNoIG1vdW50cyBpcyB1bmRlciBhIHRtcGZzKDUp
CiAvLyBmaWxlc3lzdGVtIG1vdW50ZWQgYXQgL3N5cy9mcy9jZ3JvdXAuCi1zdGF0aWMgY29uc3Qg
Y2hhciogc19jZ3JvdXBNZW1vcnlQYXRoID0gIi9zeXMvZnMvY2dyb3VwL21lbW9yeS8lcy8lcyI7
CitzdGF0aWMgY29uc3QgY2hhciogc19jZ3JvdXBNZW1vcnlQYXRoID0gIi9zeXMvZnMvY2dyb3Vw
LyVzLyVzLyVzIjsKIHN0YXRpYyBjb25zdCBjaGFyKiBzX2Nncm91cENvbnRyb2xsZXIgPSAiL3By
b2Mvc2VsZi9jZ3JvdXAiOwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heENncm91cFBhdGggPSA0
MDk2OyAvLyBQQVRIX01BWCA9IDQwOTYgZnJvbSAoTGludXgpIGluY2x1ZGUvdWFwaS9saW51eC9s
aW1pdHMuaAogCkBAIC04NCw3ICs4NSwxMCBAQCBzdGF0aWMgc2l6ZV90IGxvd1dhdGVybWFya1Bh
Z2VzKCkKICAgICAgICAgICAgICAgICBsb3cgPSBub3RTZXQ7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBsb3cgKz0gYXRvbGwodG9rZW4pOworICAg
ICAgICAgICAgYm9vbCBvayA9IHRydWU7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9JbnRl
Z3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAg
IGlmIChvaykKKyAgICAgICAgICAgICAgICBsb3cgKz0gdmFsdWU7CiAgICAgICAgICAgICBmb3Vu
ZExvdyA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMzIsNzUgKzEzNiw3NSBAQCBzdGF0
aWMgc2l6ZV90IGNhbGN1bGF0ZU1lbW9yeUF2YWlsYWJsZShzaXplX3QgbWVtb3J5RnJlZSwgc2l6
ZV90IGFjdGl2ZUZpbGUsIHNpegogICAgIHJldHVybiBtZW1vcnlBdmFpbGFibGU7CiB9CiAKLXNp
emVfdCBnZXRNZW1vcnlUb3RhbFdpdGhDZ3JvdXAoQ1N0cmluZyBtZW1vcnlDb250cm9sbGVyTmFt
ZSkKKworc2l6ZV90IGdldENncm91cEZpbGVWYWx1ZShDU3RyaW5nIGNncm91cENvbnRyb2xsZXJO
YW1lLCBDU3RyaW5nIGNncm91cENvbnRyb2xsZXJQYXRoLCBDU3RyaW5nIGNncm91cEZpbGVOYW1l
KQogewogICAgIGNoYXIgYnVmZmVyWzEyOF07CiAgICAgY2hhciBjZ3JvdXBQYXRoW21heENncm91
cFBhdGhdOwogICAgIGNoYXIqIHRva2VuOwogICAgIEZJTEUqIGZpbGU7CisgICAgYm9vbCBvayA9
IHRydWU7CiAKLSAgICAvLyBDaGVjayBtZW1vcnkgbGltaXRzIGluIGNncm91cFYyCi0gICAgc25w
cmludGYoY2dyb3VwUGF0aCwgbWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBtZW1v
cnlDb250cm9sbGVyTmFtZS5kYXRhKCksICJtZW1vcnkubWVtc3cubWF4Iik7CisgICAgc25wcmlu
dGYoY2dyb3VwUGF0aCwgbWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBjZ3JvdXBD
b250cm9sbGVyTmFtZS5kYXRhKCksIGNncm91cENvbnRyb2xsZXJQYXRoLmRhdGEoKSwgY2dyb3Vw
RmlsZU5hbWUuZGF0YSgpKTsKICAgICBmaWxlID0gZm9wZW4oY2dyb3VwUGF0aCwgInIiKTsKICAg
ICBpZiAoZmlsZSkgewogICAgICAgICB0b2tlbiA9IGZnZXRzKGJ1ZmZlciwgMTI4LCBmaWxlKTsK
ICAgICAgICAgZmNsb3NlKGZpbGUpOwotICAgICAgICByZXR1cm4gYXRvbGwodG9rZW4pOworICAg
ICAgICBzaXplX3QgdmFsdWUgPSB0b0ludGVncmFsVHlwZTxzaXplX3Q+KHRva2VuLCBzdHJsZW4o
dG9rZW4pLCAmb2spOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgdmFsdWUgPSBub3RT
ZXQ7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICB9Ci0gICAgc25wcmludGYoY2dyb3VwUGF0
aCwgbWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBtZW1vcnlDb250cm9sbGVyTmFt
ZS5kYXRhKCksICJtZW1vcnkubWF4Iik7Ci0gICAgZmlsZSA9IGZvcGVuKGNncm91cFBhdGgsICJy
Iik7Ci0gICAgaWYgKGZpbGUpIHsKLSAgICAgICAgdG9rZW4gPSBmZ2V0cyhidWZmZXIsIDEyOCwg
ZmlsZSk7Ci0gICAgICAgIGZjbG9zZShmaWxlKTsKLSAgICAgICAgcmV0dXJuIGF0b2xsKHRva2Vu
KTsKKyAgICByZXR1cm4gbm90U2V0OworfQorCitzaXplX3QgZ2V0TWVtb3J5VG90YWxXaXRoQ2dy
b3VwKENTdHJpbmcgbWVtb3J5Q29udHJvbGxlck5hbWUpCit7CisgICAgc2l6ZV90IHZhbHVlID0g
bm90U2V0OworCisgICAgLy8gQ2hlY2sgbWVtb3J5IGxpbWl0cyBpbiBjZ3JvdXBWMgorICAgIHZh
bHVlID0gZ2V0Q2dyb3VwRmlsZVZhbHVlKCIvIiwgbWVtb3J5Q29udHJvbGxlck5hbWUsIENTdHJp
bmcoIm1lbW9yeS5tZW1zdy5tYXgiKSk7CisgICAgaWYgKHZhbHVlICE9IG5vdFNldCkKKyAgICAg
ICAgcmV0dXJuIHZhbHVlOworCisgICAgdmFsdWUgPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIi8iLCBt
ZW1vcnlDb250cm9sbGVyTmFtZSwgQ1N0cmluZygibWVtb3J5Lm1heCIpKTsKKyAgICBzaXplX3Qg
dmFsdWVIaWdoID0gZ2V0Q2dyb3VwRmlsZVZhbHVlKCIvIiwgbWVtb3J5Q29udHJvbGxlck5hbWUs
IENTdHJpbmcoIm1lbW9yeS5oaWdoIikpOworICAgIGlmICh2YWx1ZSAhPSBub3RTZXQgJiYgdmFs
dWVIaWdoICE9IG5vdFNldCkgeworICAgICAgICB2YWx1ZSA9IHN0ZDo6bWluKHZhbHVlLCB2YWx1
ZUhpZ2gpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgfQorICAgIGlmICh2YWx1ZUhpZ2gg
IT0gbm90U2V0KQorICAgICAgICByZXR1cm4gdmFsdWVIaWdoOworICAgIGlmICh2YWx1ZSAhPSBu
b3RTZXQpCisgICAgICAgIHJldHVybiB2YWx1ZTsKIAogICAgIC8vIENoZWNrIG1lbW9yeSBsaW1p
dHMgaW4gY2dyb3VwVjEKLSAgICBzbnByaW50ZihjZ3JvdXBQYXRoLCBtYXhDZ3JvdXBQYXRoLCBz
X2Nncm91cE1lbW9yeVBhdGgsIG1lbW9yeUNvbnRyb2xsZXJOYW1lLmRhdGEoKSwgIm1lbW9yeS5t
ZW1zdy5saW1pdF9pbl9ieXRlcyIpOwotICAgIGZpbGUgPSBmb3BlbihjZ3JvdXBQYXRoLCAiciIp
OwotICAgIGlmIChmaWxlKSB7Ci0gICAgICAgIHRva2VuID0gZmdldHMoYnVmZmVyLCAxMjgsIGZp
bGUpOwotICAgICAgICBmY2xvc2UoZmlsZSk7Ci0gICAgICAgIHJldHVybiBhdG9sbCh0b2tlbik7
Ci0gICAgfQotICAgIHNucHJpbnRmKGNncm91cFBhdGgsIG1heENncm91cFBhdGgsIHNfY2dyb3Vw
TWVtb3J5UGF0aCwgbWVtb3J5Q29udHJvbGxlck5hbWUuZGF0YSgpLCAibWVtb3J5LmxpbWl0X2lu
X2J5dGVzIik7Ci0gICAgZmlsZSA9IGZvcGVuKGNncm91cFBhdGgsICJyIik7Ci0gICAgaWYgKGZp
bGUpIHsKLSAgICAgICAgdG9rZW4gPSBmZ2V0cyhidWZmZXIsIDEyOCwgZmlsZSk7Ci0gICAgICAg
IGZjbG9zZShmaWxlKTsKLSAgICAgICAgcmV0dXJuIGF0b2xsKHRva2VuKTsKLSAgICB9Ci0gICAg
cmV0dXJuIDA7CisgICAgdmFsdWUgPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIm1lbW9yeSIsIG1lbW9y
eUNvbnRyb2xsZXJOYW1lLCBDU3RyaW5nKCJtZW1vcnkubWVtc3cubGltaXRfaW5fYnl0ZXMiKSk7
CisgICAgaWYgKHZhbHVlICE9IG5vdFNldCkKKyAgICAgICAgcmV0dXJuIHZhbHVlOworCisgICAg
dmFsdWUgPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIm1lbW9yeSIsIG1lbW9yeUNvbnRyb2xsZXJOYW1l
LCBDU3RyaW5nKCJtZW1vcnkubGltaXRfaW5fYnl0ZXMiKSk7CisgICAgaWYgKHZhbHVlICE9IG5v
dFNldCkKKyAgICAgICAgcmV0dXJuIHZhbHVlOworCisgICAgcmV0dXJuIHZhbHVlOwogfQogCiBz
dGF0aWMgc2l6ZV90IGdldE1lbW9yeVVzYWdlV2l0aENncm91cChDU3RyaW5nIG1lbW9yeUNvbnRy
b2xsZXJOYW1lKQogewotICAgIGNoYXIgYnVmZmVyWzEyOF07Ci0gICAgY2hhciBjZ3JvdXBQYXRo
W21heENncm91cFBhdGhdOwotICAgIGNoYXIqIHRva2VuOwotICAgIGNoYXIqIGxpbmU7Ci0gICAg
RklMRSogZmlsZUNncm91cFBhdGhVc2FnZUJ5dGVzOworICAgIHNpemVfdCB2YWx1ZSA9IG5vdFNl
dDsKIAogICAgIC8vIENoZWNrIG1lbW9yeSBsaW1pdHMgaW4gY2dyb3VwVjIKLSAgICBzbnByaW50
ZihjZ3JvdXBQYXRoLCBtYXhDZ3JvdXBQYXRoLCBzX2Nncm91cE1lbW9yeVBhdGgsIG1lbW9yeUNv
bnRyb2xsZXJOYW1lLmRhdGEoKSwgIm1lbW9yeS5jdXJyZW50Iik7Ci0gICAgZmlsZUNncm91cFBh
dGhVc2FnZUJ5dGVzID0gZm9wZW4oY2dyb3VwUGF0aCwgInIiKTsKLSAgICBpZiAoZmlsZUNncm91
cFBhdGhVc2FnZUJ5dGVzKSB7Ci0gICAgICAgIGxpbmUgPSBmZ2V0cyhidWZmZXIsIDEyOCwgZmls
ZUNncm91cFBhdGhVc2FnZUJ5dGVzKTsKLSAgICAgICAgdG9rZW4gPSBzdHJ0b2sobGluZSwgIiAi
KTsKLSAgICAgICAgZmNsb3NlKGZpbGVDZ3JvdXBQYXRoVXNhZ2VCeXRlcyk7Ci0gICAgICAgIHJl
dHVybiBhdG9sbCh0b2tlbik7Ci0gICAgfQorICAgIHZhbHVlID0gZ2V0Q2dyb3VwRmlsZVZhbHVl
KCIvIiwgbWVtb3J5Q29udHJvbGxlck5hbWUsIENTdHJpbmcoIm1lbW9yeS5jdXJyZW50IikpOwor
ICAgIGlmICh2YWx1ZSAhPSBub3RTZXQpCisgICAgICAgIHJldHVybiB2YWx1ZTsKIAogICAgIC8v
IENoZWNrIG1lbW9yeSBsaW1pdHMgaW4gY2dyb3VwVjEKLSAgICBzbnByaW50ZihjZ3JvdXBQYXRo
LCBtYXhDZ3JvdXBQYXRoLCBzX2Nncm91cE1lbW9yeVBhdGgsIG1lbW9yeUNvbnRyb2xsZXJOYW1l
LmRhdGEoKSwgIm1lbW9yeS51c2FnZV9pbl9ieXRlcyIpOwotICAgIGZpbGVDZ3JvdXBQYXRoVXNh
Z2VCeXRlcyA9IGZvcGVuKGNncm91cFBhdGgsICJyIik7Ci0gICAgaWYgKGZpbGVDZ3JvdXBQYXRo
VXNhZ2VCeXRlcykgewotICAgICAgICBsaW5lID0gZmdldHMoYnVmZmVyLCAxMjgsIGZpbGVDZ3Jv
dXBQYXRoVXNhZ2VCeXRlcyk7Ci0gICAgICAgIHRva2VuID0gc3RydG9rKGxpbmUsICIgIik7Ci0g
ICAgICAgIGZjbG9zZShmaWxlQ2dyb3VwUGF0aFVzYWdlQnl0ZXMpOwotICAgICAgICByZXR1cm4g
YXRvbGwodG9rZW4pOwotICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICB2YWx1ZSA9IGdldENncm91
cEZpbGVWYWx1ZSgibWVtb3J5IiwgbWVtb3J5Q29udHJvbGxlck5hbWUsIENTdHJpbmcoIm1lbW9y
eS51c2FnZV9pbl9ieXRlcyIpKTsKKyAgICBpZiAodmFsdWUgIT0gbm90U2V0KQorICAgICAgICBy
ZXR1cm4gdmFsdWU7CisKKyAgICByZXR1cm4gbm90U2V0OwogfQogCiAvLyBUaGlzIGZpbGUgZGVz
Y3JpYmVzIGNvbnRyb2wgZ3JvdXBzIHRvIHdoaWNoIHRoZSBwcm9jZXNzIHdpdGgKQEAgLTIyMyw5
ICsyMjcsOSBAQCBzdGF0aWMgc2l6ZV90IGdldE1lbW9yeVVzYWdlV2l0aENncm91cChDU3RyaW5n
IG1lbW9yeUNvbnRyb2xsZXJOYW1lKQogLy8gMjpjcHVzZXQ6LwogLy8gMTpuYW1lPXN5c3RlbWQ6
L3VzZXIuc2xpY2UvdXNlci0xMDAwLnNsaWNlL3VzZXJAMTAwMC5zZXJ2aWNlL2dub21lLXRlcm1p
bmFsLXNlcnZlci5zZXJ2aWNlCiAvLyAwOjovdXNlci5zbGljZS91c2VyLTEwMDAuc2xpY2UvdXNl
ckAxMDAwLnNlcnZpY2UvZ25vbWUtdGVybWluYWwtc2VydmVyLnNlcnZpY2UKLXN0YXRpYyBDU3Ry
aW5nIGdldENncm91cENvbnRyb2xsZXIoY29uc3QgY2hhciogY29udHJvbGxlck5hbWUpCitzdGF0
aWMgQ1N0cmluZyBnZXRDZ3JvdXBDb250cm9sbGVyUGF0aChjb25zdCBjaGFyKiBjb250cm9sbGVy
TmFtZSkKIHsKLSAgICBDU3RyaW5nIG1lbW9yeUNvbnRyb2xsZXJOYW1lOworICAgIENTdHJpbmcg
bWVtb3J5Q29udHJvbGxlclBhdGggPSBDU3RyaW5nKCk7CiAgICAgRklMRSogZmlsZSA9IGZvcGVu
KHNfY2dyb3VwQ29udHJvbGxlciwgInIiKTsKICAgICBpZiAoIWZpbGUpCiAgICAgICAgIHJldHVy
biBDU3RyaW5nKCk7CkBAIC0yNDAsMTMgKzI0NCwxNyBAQCBzdGF0aWMgQ1N0cmluZyBnZXRDZ3Jv
dXBDb250cm9sbGVyKGNvbnN0IGNoYXIqIGNvbnRyb2xsZXJOYW1lKQogICAgICAgICB0b2tlbiA9
IHN0cnRvayhudWxscHRyLCAiOiIpOwogICAgICAgICBpZiAoIXN0cmNtcCh0b2tlbiwgY29udHJv
bGxlck5hbWUpKSB7CiAgICAgICAgICAgICB0b2tlbiA9IHN0cnRvayhudWxscHRyLCAiOiIpOwot
ICAgICAgICAgICAgbWVtb3J5Q29udHJvbGxlck5hbWUgPSBDU3RyaW5nKHRva2VuKTsKKyAgICAg
ICAgICAgIG1lbW9yeUNvbnRyb2xsZXJQYXRoID0gQ1N0cmluZyh0b2tlbik7CiAgICAgICAgICAg
ICBmY2xvc2UoZmlsZSk7Ci0gICAgICAgICAgICByZXR1cm4gbWVtb3J5Q29udHJvbGxlck5hbWU7
CisgICAgICAgICAgICByZXR1cm4gbWVtb3J5Q29udHJvbGxlclBhdGg7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKCFzdHJuY21wKHRva2VuLCAibmFtZT1zeXN0ZW1kIiwgMTIpKSB7CisgICAgICAg
ICAgICB0b2tlbiA9IHN0cnRvayhudWxscHRyLCAiOiIpOworICAgICAgICAgICAgbWVtb3J5Q29u
dHJvbGxlclBhdGggPSBDU3RyaW5nKHRva2VuKTsKICAgICAgICAgfQogICAgIH0KICAgICBmY2xv
c2UoZmlsZSk7Ci0gICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICByZXR1cm4gbWVtb3J5Q29udHJv
bGxlclBhdGg7CiB9CiAKIApAQCAtMjYxLDM5ICsyNjksNTIgQEAgc3RhdGljIGludCBzeXN0ZW1N
ZW1vcnlVc2VkQXNQZXJjZW50YWdlKCkKICAgICBjaGFyIGJ1ZmZlclsxMjhdOwogICAgIHdoaWxl
IChjaGFyKiBsaW5lID0gZmdldHMoYnVmZmVyLCAxMjgsIGZpbGUpKSB7CiAgICAgICAgIGNoYXIq
IHRva2VuID0gc3RydG9rKGxpbmUsICIgIik7CisgICAgICAgIGJvb2wgb2sgPSB0cnVlOwogICAg
ICAgICBpZiAoIXRva2VuKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKCFzdHJj
bXAodG9rZW4sICJNZW1BdmFpbGFibGU6IikpIHsKICAgICAgICAgICAgIGlmICgodG9rZW4gPSBz
dHJ0b2sobnVsbHB0ciwgIiAiKSkpIHsKLSAgICAgICAgICAgICAgICBtZW1vcnlBdmFpbGFibGUg
PSBhdG9sbCh0b2tlbik7CisgICAgICAgICAgICAgICAgbWVtb3J5QXZhaWxhYmxlID0gdG9JbnRl
Z3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAg
ICAgICBpZiAoIW9rKQorICAgICAgICAgICAgICAgICAgICBtZW1vcnlBdmFpbGFibGUgPSBub3RT
ZXQ7CiAgICAgICAgICAgICAgICAgaWYgKG1lbW9yeVRvdGFsICE9IG5vdFNldCkKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0
cmNtcCh0b2tlbiwgIk1lbVRvdGFsOiIpKSB7Ci0gICAgICAgICAgICBpZiAoKHRva2VuID0gc3Ry
dG9rKG51bGxwdHIsICIgIikpKQotICAgICAgICAgICAgICAgIG1lbW9yeVRvdGFsID0gYXRvbGwo
dG9rZW4pOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRv
ayhudWxscHRyLCAiICIpKSkgeworICAgICAgICAgICAgICAgIG1lbW9yeVRvdGFsID0gdG9JbnRl
Z3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAg
ICAgICBpZiAoIW9rKQorICAgICAgICAgICAgICAgICAgICBtZW1vcnlUb3RhbCA9IG5vdFNldDsK
KyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9IGVs
c2UgaWYgKCFzdHJjbXAodG9rZW4sICJNZW1GcmVlOiIpKSB7Ci0gICAgICAgICAgICBpZiAoKHRv
a2VuID0gc3RydG9rKG51bGxwdHIsICIgIikpKQotICAgICAgICAgICAgICAgIG1lbW9yeUZyZWUg
PSBhdG9sbCh0b2tlbik7Ci0gICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBpZiAoKHRva2Vu
ID0gc3RydG9rKG51bGxwdHIsICIgIikpKSB7CisgICAgICAgICAgICAgICAgbWVtb3J5RnJlZSA9
IHRvSW50ZWdyYWxUeXBlPHNpemVfdD4odG9rZW4sIHN0cmxlbih0b2tlbiksICZvayk7CisgICAg
ICAgICAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgICAgICAgICAgbWVtb3J5RnJlZSA9IG5v
dFNldDsKKyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9IGVsc2UgaWYgKCFzdHJjbXAodG9rZW4sICJBY3RpdmUoZmlsZSk6IikpIHsKLSAgICAgICAg
ICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpCi0gICAgICAgICAgICAgICAg
YWN0aXZlRmlsZSA9IGF0b2xsKHRva2VuKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpIHsKKyAgICAgICAgICAgICAgICBh
Y3RpdmVGaWxlID0gdG9JbnRlZ3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwg
Jm9rKTsKKyAgICAgICAgICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgICAgICAgICBhY3Rp
dmVGaWxlID0gbm90U2V0OworICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcCh0b2tlbiwgIkluYWN0aXZlKGZpbGUpOiIp
KSB7Ci0gICAgICAgICAgICBpZiAoKHRva2VuID0gc3RydG9rKG51bGxwdHIsICIgIikpKQotICAg
ICAgICAgICAgICAgIGluYWN0aXZlRmlsZSA9IGF0b2xsKHRva2VuKTsKLSAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpIHsKKyAg
ICAgICAgICAgICAgICBpbmFjdGl2ZUZpbGUgPSB0b0ludGVncmFsVHlwZTxzaXplX3Q+KHRva2Vu
LCBzdHJsZW4odG9rZW4pLCAmb2spOworICAgICAgICAgICAgICAgIGlmICghb2spCisgICAgICAg
ICAgICAgICAgICAgIGluYWN0aXZlRmlsZSA9IG5vdFNldAorICAgICAgICAgICAgfSBlbHNlCiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcCh0b2tlbiwg
IlNSZWNsYWltYWJsZToiKSkgewotICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRvayhudWxs
cHRyLCAiICIpKSkKLSAgICAgICAgICAgICAgICBzbGFiUmVjbGFpbWFibGUgPSBhdG9sbCh0b2tl
bik7Ci0gICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBpZiAoKHRva2VuID0gc3RydG9rKG51
bGxwdHIsICIgIikpKSB7CisgICAgICAgICAgICAgICAgc2xhYlJlY2xhaW1hYmxlID0gdG9JbnRl
Z3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAg
ICAgICBpZiAhb2sKKyAgICAgICAgICAgICAgICAgICAgc2xhYlJlY2xhaW1hYmxlID0gbm90U2V0
OworICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
IApAQCAtMzE1LDExICszMzYsMTEgQEAgc3RhdGljIGludCBzeXN0ZW1NZW1vcnlVc2VkQXNQZXJj
ZW50YWdlKCkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaW50IG1lbW9yeVVzYWdlUGVyY2Vu
dGFnZSA9ICgobWVtb3J5VG90YWwgLSBtZW1vcnlBdmFpbGFibGUpICogMTAwKSAvIG1lbW9yeVRv
dGFsOwotICAgIENTdHJpbmcgbWVtb3J5Q29udHJvbGxlck5hbWUgPSBnZXRDZ3JvdXBDb250cm9s
bGVyKCJtZW1vcnkiKTsKLSAgICBpZiAoIW1lbW9yeUNvbnRyb2xsZXJOYW1lLmlzTnVsbCgpKSB7
Ci0gICAgICAgIG1lbW9yeVRvdGFsID0gZ2V0TWVtb3J5VG90YWxXaXRoQ2dyb3VwKG1lbW9yeUNv
bnRyb2xsZXJOYW1lKTsKLSAgICAgICAgc2l6ZV90IG1lbW9yeVVzYWdlID0gZ2V0TWVtb3J5VXNh
Z2VXaXRoQ2dyb3VwKG1lbW9yeUNvbnRyb2xsZXJOYW1lKTsKLSAgICAgICAgaWYgKG1lbW9yeVRv
dGFsKSB7CisgICAgQ1N0cmluZyBtZW1vcnlDb250cm9sbGVyUGF0aCA9IGdldENncm91cENvbnRy
b2xsZXJQYXRoKCJtZW1vcnkiKTsKKyAgICBpZiAoIW1lbW9yeUNvbnRyb2xsZXJQYXRoLmlzTnVs
bCgpKSB7CisgICAgICAgIG1lbW9yeVRvdGFsID0gZ2V0TWVtb3J5VG90YWxXaXRoQ2dyb3VwKG1l
bW9yeUNvbnRyb2xsZXJQYXRoKTsKKyAgICAgICAgc2l6ZV90IG1lbW9yeVVzYWdlID0gZ2V0TWVt
b3J5VXNhZ2VXaXRoQ2dyb3VwKG1lbW9yeUNvbnRyb2xsZXJQYXRoKTsKKyAgICAgICAgaWYgKG1l
bW9yeVRvdGFsICE9IG5vdFNldCAmJiBtZW1vcnlVc2FnZSAhPSBub3RTZXQpIHsKICAgICAgICAg
ICAgIGludCBtZW1vcnlVc2FnZVBlcmNlbnRhZ2VXaXRoQ2dyb3VwID0gMTAwICogKChmbG9hdCkg
bWVtb3J5VXNhZ2UgLyAoZmxvYXQpIG1lbW9yeVRvdGFsKTsKICAgICAgICAgICAgIGlmIChtZW1v
cnlVc2FnZVBlcmNlbnRhZ2VXaXRoQ2dyb3VwID4gbWVtb3J5VXNhZ2VQZXJjZW50YWdlKQogICAg
ICAgICAgICAgICAgIG1lbW9yeVVzYWdlUGVyY2VudGFnZSA9IG1lbW9yeVVzYWdlUGVyY2VudGFn
ZVdpdGhDZ3JvdXA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394600</attachid>
            <date>2020-03-26 06:15:01 -0700</date>
            <delta_ts>2020-03-26 06:17:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-209464-20200326141459.patch</filename>
            <type>text/plain</type>
            <size>13466</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE4MWIxNmZkNDExMmNjN2Nl
NjA0MjU2NGQ3ZjFiMjBmNDlhZjc5YTAuLjI0YzhmZGE3ZWJmNjE0MTQzYWVjZjM3ODg3OWUwMDE5
YmFhMTFmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDMtMjYgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgU2V2ZXJhbCByZWZhY3Rv
cmluZ3MgZG9uZSBpbiB0aGUgTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDY0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMSkgdG9JbnRlZ3JhbFR5cGUoKSBw
YXJzZXMgdGhlIEMtc3RyaW5nIHN0ciBpbnRlcnByZXRpbmcgaXRzIGNvbnRlbnQKKyAgICAgICAg
YXMgYW4gYHVuc2lnbmVkIGxvbmcgbG9uZyBpbnRgIHdoaWNoIGlzIG1vcmUgYXBwcm9wcmlhdGUg
Zm9yCisgICAgICAgIHRoZSBzaXplX3QgKHVuc2lnbmVkIGludGVnZXIgdHlwZSkgdmFyaWFibGVz
IHVzZWQgYnkgdGhlCisgICAgICAgIE1lbW9yeVByZXNzdXJlTW9uaXRvciBmdW5jdGlvbnMgaW4g
Y291bnRlcnBvaW50IG9mIGF0b2xsKCkgd2hhdAorICAgICAgICByZXR1cm5zIGEgYGxvbmcgbG9u
ZyBpbnRgLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFsc28gY29udHJvbHMgaWYgdGhlIHBhcnNp
bmcgd2FzIHN1Y2Nlc2Z1bC4gSW4gbmVnYXRpdmUKKyAgICAgICAgY2FzZSByZXR1cm5zIGBub3RT
ZXRgLgorCisgICAgICAgIDIpIEFkZGVkIHRoZSBnZXRDZ3JvdXBGaWxlVmFsdWUoKSBmdW5jdGlv
biB3aGF0IGVuY2Fwc3VsYXRlcyB0aGUKKyAgICAgICAgbWFuaXB1bGF0aW9uIG9mIHRoZSBvcGVu
ZWQgZmlsZXMgaW4gdGhlIGAvc3lzL2ZzL2Nncm91cGAgaGllcmFyY2h5LgorICAgICAgICBUaGlz
IGNoYW5nZSBzaW1wbGlmeSB0aGUgY29kZSBhdm9kaW5nIHVubmVjZXNzYXJ5IGNvZGUgcmVwZXRp
b24uCisKKyAgICAgICAgMykgZ2V0Q2dyb3VwQ29udHJvbGxlclBhdGgoKSBub3cgY2hlY2tzIGlm
IHRoZXJlIGlzIGEgYG5hbWU9c3lzdGVtZGAKKyAgICAgICAgY29udHJvbGxlciBsaXN0ZWQgaW4g
dGhlIGAvcHJvYy9zZWxmL2Nncm91cGAuIFRoaXMgaW1wb3J0YW50IGZvcgorICAgICAgICBjZ3Jv
dXAgdjIgYWN0aXZhdGVkIHdpdGggYHN5c3RlbWQudW5pZmllZF9jZ3JvdXBfaGllcmFyY2h5PXll
c2AKKyAgICAgICAgdGhyb3VnaCB0aGUgTGludXgga2VybmVsIGNtZGxpbmUuIFRoZSB1bmlmaWVk
IGhpZXJhcmNoeSBzaW1wbGllcworICAgICAgICBwYXRoIG9mIHRoZSBjb250cm9sbGVycyB1bmRl
ciB0aGUgc2FtZSBkaXJlY3RvcnkgKGNoZWNrIHRoZQorICAgICAgICAiRGVwcmVjYXRlZCB2MSBD
b3JlIEZlYXR1cmVzIiBzZWN0aW9uIGluIHRoZSBMaW51eCBLZXJuZWwKKyAgICAgICAgZG9jdW1l
bnRhdGlvbiBmaXIgY2dyb3VwIHYyIFsxXSk6CisKKyAgICAgICAgICAgIE11bHRpcGxlIGhpZXJh
cmNoaWVzIGluY2x1ZGluZyBuYW1lZCBvbmVzIGFyZSBub3Qgc3VwcG9ydGVkCisKKyAgICAgICAg
WzFdIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL0RvY3VtZW50YXRpb24vY2dyb3VwLXYyLnR4
dAorCisgICAgICAgIDQpIEJlY2F1c2UgMykgdGhlIHBhdGNoIGNvbXBvc2l0ZWQgZm9yIGNncm91
cFYyIGNoYW5nZXMKKyAgICAgICAgZ2V0TWVtb3J5VXNhZ2VXaXRoQ2dyb3VwKCkgc2lnaGx5LiBU
aGUgbmFtZSBvZiB0aGUgY29udHJvbGxlcgorICAgICAgICBpcyBub3QgbmVlZGVkIGFueW1vcmUu
CisKKyAgICAgICAgNSkgRm9yIGNncm91cCB2MiwgdGhlIE1lbW9yeVRvdGFsIGlzIGNhbGN1bGF0
ZWQgYXMgdGhlIG1pbmltdW0KKyAgICAgICAgYmV0d2VlbiBtZW1vcnkuaGlnaCBhbmQgbWVtb3J5
Lm1heC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3Iu
Y3BwOgorICAgICAgICAoV2ViS2l0Ojpsb3dXYXRlcm1hcmtQYWdlcyk6CisgICAgICAgIChXZWJL
aXQ6OmdldENncm91cEZpbGVWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6OmdldE1lbW9yeVRvdGFs
V2l0aENncm91cCk6CisgICAgICAgIChXZWJLaXQ6OmdldE1lbW9yeVVzYWdlV2l0aENncm91cCk6
CisgICAgICAgIChXZWJLaXQ6OmdldENncm91cENvbnRyb2xsZXJQYXRoKToKKyAgICAgICAgKFdl
YktpdDo6c3lzdGVtTWVtb3J5VXNlZEFzUGVyY2VudGFnZSk6CisgICAgICAgIChXZWJLaXQ6Omdl
dENncm91cENvbnRyb2xsZXIpOiBEZWxldGVkLgorCiAyMDIwLTAzLTI2ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQgc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdmlkZW9MYXll
cklECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVz
c3VyZU1vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJl
c3N1cmVNb25pdG9yLmNwcAppbmRleCBkNjlhNmI4ZmE0NjRkYTM5NDY4ZGM2ODE1MGRhYTVjNzk4
MmRkODg1Li40ZjdlYzMwZjkyMDNmMTBkNWUyMzZmZmUxMmIyY2Q0ZGU2YWJkNGI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9u
aXRvci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC00OSw3ICs1MCw3IEBAIHN0YXRpYyBjb25zdCBpbnQgc19t
ZW1vcnlQcmVzdXJlUGVyY2VudGFnZVRocmVzaG9sZCA9IDkwOwogc3RhdGljIGNvbnN0IGludCBz
X21lbW9yeVByZXN1cmVQZXJjZW50YWdlVGhyZXNob2xkQ3JpdGljYWwgPSA5NTsKIC8vIGNncm91
cHMuNzogVGhlIHVzdWFsIHBsYWNlIGZvciBzdWNoIG1vdW50cyBpcyB1bmRlciBhIHRtcGZzKDUp
CiAvLyBmaWxlc3lzdGVtIG1vdW50ZWQgYXQgL3N5cy9mcy9jZ3JvdXAuCi1zdGF0aWMgY29uc3Qg
Y2hhciogc19jZ3JvdXBNZW1vcnlQYXRoID0gIi9zeXMvZnMvY2dyb3VwL21lbW9yeS8lcy8lcyI7
CitzdGF0aWMgY29uc3QgY2hhciogc19jZ3JvdXBNZW1vcnlQYXRoID0gIi9zeXMvZnMvY2dyb3Vw
LyVzLyVzLyVzIjsKIHN0YXRpYyBjb25zdCBjaGFyKiBzX2Nncm91cENvbnRyb2xsZXIgPSAiL3By
b2Mvc2VsZi9jZ3JvdXAiOwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heENncm91cFBhdGggPSA0
MDk2OyAvLyBQQVRIX01BWCA9IDQwOTYgZnJvbSAoTGludXgpIGluY2x1ZGUvdWFwaS9saW51eC9s
aW1pdHMuaAogCkBAIC04NCw3ICs4NSwxMCBAQCBzdGF0aWMgc2l6ZV90IGxvd1dhdGVybWFya1Bh
Z2VzKCkKICAgICAgICAgICAgICAgICBsb3cgPSBub3RTZXQ7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBsb3cgKz0gYXRvbGwodG9rZW4pOworICAg
ICAgICAgICAgYm9vbCBvayA9IHRydWU7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9JbnRl
Z3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAg
IGlmIChvaykKKyAgICAgICAgICAgICAgICBsb3cgKz0gdmFsdWU7CiAgICAgICAgICAgICBmb3Vu
ZExvdyA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMzIsNzUgKzEzNiw3NSBAQCBzdGF0
aWMgc2l6ZV90IGNhbGN1bGF0ZU1lbW9yeUF2YWlsYWJsZShzaXplX3QgbWVtb3J5RnJlZSwgc2l6
ZV90IGFjdGl2ZUZpbGUsIHNpegogICAgIHJldHVybiBtZW1vcnlBdmFpbGFibGU7CiB9CiAKLXNp
emVfdCBnZXRNZW1vcnlUb3RhbFdpdGhDZ3JvdXAoQ1N0cmluZyBtZW1vcnlDb250cm9sbGVyTmFt
ZSkKKworc2l6ZV90IGdldENncm91cEZpbGVWYWx1ZShDU3RyaW5nIGNncm91cENvbnRyb2xsZXJO
YW1lLCBDU3RyaW5nIGNncm91cENvbnRyb2xsZXJQYXRoLCBDU3RyaW5nIGNncm91cEZpbGVOYW1l
KQogewogICAgIGNoYXIgYnVmZmVyWzEyOF07CiAgICAgY2hhciBjZ3JvdXBQYXRoW21heENncm91
cFBhdGhdOwogICAgIGNoYXIqIHRva2VuOwogICAgIEZJTEUqIGZpbGU7CisgICAgYm9vbCBvayA9
IHRydWU7CiAKLSAgICAvLyBDaGVjayBtZW1vcnkgbGltaXRzIGluIGNncm91cFYyCi0gICAgc25w
cmludGYoY2dyb3VwUGF0aCwgbWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBtZW1v
cnlDb250cm9sbGVyTmFtZS5kYXRhKCksICJtZW1vcnkubWVtc3cubWF4Iik7CisgICAgc25wcmlu
dGYoY2dyb3VwUGF0aCwgbWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBjZ3JvdXBD
b250cm9sbGVyTmFtZS5kYXRhKCksIGNncm91cENvbnRyb2xsZXJQYXRoLmRhdGEoKSwgY2dyb3Vw
RmlsZU5hbWUuZGF0YSgpKTsKICAgICBmaWxlID0gZm9wZW4oY2dyb3VwUGF0aCwgInIiKTsKICAg
ICBpZiAoZmlsZSkgewogICAgICAgICB0b2tlbiA9IGZnZXRzKGJ1ZmZlciwgMTI4LCBmaWxlKTsK
ICAgICAgICAgZmNsb3NlKGZpbGUpOwotICAgICAgICByZXR1cm4gYXRvbGwodG9rZW4pOworICAg
ICAgICBzaXplX3QgdmFsdWUgPSB0b0ludGVncmFsVHlwZTxzaXplX3Q+KHRva2VuLCBzdHJsZW4o
dG9rZW4pLCAmb2spOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgdmFsdWUgPSBub3RT
ZXQ7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICB9Ci0gICAgc25wcmludGYoY2dyb3VwUGF0
aCwgbWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBtZW1vcnlDb250cm9sbGVyTmFt
ZS5kYXRhKCksICJtZW1vcnkubWF4Iik7Ci0gICAgZmlsZSA9IGZvcGVuKGNncm91cFBhdGgsICJy
Iik7Ci0gICAgaWYgKGZpbGUpIHsKLSAgICAgICAgdG9rZW4gPSBmZ2V0cyhidWZmZXIsIDEyOCwg
ZmlsZSk7Ci0gICAgICAgIGZjbG9zZShmaWxlKTsKLSAgICAgICAgcmV0dXJuIGF0b2xsKHRva2Vu
KTsKKyAgICByZXR1cm4gbm90U2V0OworfQorCitzaXplX3QgZ2V0TWVtb3J5VG90YWxXaXRoQ2dy
b3VwKENTdHJpbmcgbWVtb3J5Q29udHJvbGxlck5hbWUpCit7CisgICAgc2l6ZV90IHZhbHVlID0g
bm90U2V0OworCisgICAgLy8gQ2hlY2sgbWVtb3J5IGxpbWl0cyBpbiBjZ3JvdXBWMgorICAgIHZh
bHVlID0gZ2V0Q2dyb3VwRmlsZVZhbHVlKCIvIiwgbWVtb3J5Q29udHJvbGxlck5hbWUsIENTdHJp
bmcoIm1lbW9yeS5tZW1zdy5tYXgiKSk7CisgICAgaWYgKHZhbHVlICE9IG5vdFNldCkKKyAgICAg
ICAgcmV0dXJuIHZhbHVlOworCisgICAgdmFsdWUgPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIi8iLCBt
ZW1vcnlDb250cm9sbGVyTmFtZSwgQ1N0cmluZygibWVtb3J5Lm1heCIpKTsKKyAgICBzaXplX3Qg
dmFsdWVIaWdoID0gZ2V0Q2dyb3VwRmlsZVZhbHVlKCIvIiwgbWVtb3J5Q29udHJvbGxlck5hbWUs
IENTdHJpbmcoIm1lbW9yeS5oaWdoIikpOworICAgIGlmICh2YWx1ZSAhPSBub3RTZXQgJiYgdmFs
dWVIaWdoICE9IG5vdFNldCkgeworICAgICAgICB2YWx1ZSA9IHN0ZDo6bWluKHZhbHVlLCB2YWx1
ZUhpZ2gpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgfQorICAgIGlmICh2YWx1ZUhpZ2gg
IT0gbm90U2V0KQorICAgICAgICByZXR1cm4gdmFsdWVIaWdoOworICAgIGlmICh2YWx1ZSAhPSBu
b3RTZXQpCisgICAgICAgIHJldHVybiB2YWx1ZTsKIAogICAgIC8vIENoZWNrIG1lbW9yeSBsaW1p
dHMgaW4gY2dyb3VwVjEKLSAgICBzbnByaW50ZihjZ3JvdXBQYXRoLCBtYXhDZ3JvdXBQYXRoLCBz
X2Nncm91cE1lbW9yeVBhdGgsIG1lbW9yeUNvbnRyb2xsZXJOYW1lLmRhdGEoKSwgIm1lbW9yeS5t
ZW1zdy5saW1pdF9pbl9ieXRlcyIpOwotICAgIGZpbGUgPSBmb3BlbihjZ3JvdXBQYXRoLCAiciIp
OwotICAgIGlmIChmaWxlKSB7Ci0gICAgICAgIHRva2VuID0gZmdldHMoYnVmZmVyLCAxMjgsIGZp
bGUpOwotICAgICAgICBmY2xvc2UoZmlsZSk7Ci0gICAgICAgIHJldHVybiBhdG9sbCh0b2tlbik7
Ci0gICAgfQotICAgIHNucHJpbnRmKGNncm91cFBhdGgsIG1heENncm91cFBhdGgsIHNfY2dyb3Vw
TWVtb3J5UGF0aCwgbWVtb3J5Q29udHJvbGxlck5hbWUuZGF0YSgpLCAibWVtb3J5LmxpbWl0X2lu
X2J5dGVzIik7Ci0gICAgZmlsZSA9IGZvcGVuKGNncm91cFBhdGgsICJyIik7Ci0gICAgaWYgKGZp
bGUpIHsKLSAgICAgICAgdG9rZW4gPSBmZ2V0cyhidWZmZXIsIDEyOCwgZmlsZSk7Ci0gICAgICAg
IGZjbG9zZShmaWxlKTsKLSAgICAgICAgcmV0dXJuIGF0b2xsKHRva2VuKTsKLSAgICB9Ci0gICAg
cmV0dXJuIDA7CisgICAgdmFsdWUgPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIm1lbW9yeSIsIG1lbW9y
eUNvbnRyb2xsZXJOYW1lLCBDU3RyaW5nKCJtZW1vcnkubWVtc3cubGltaXRfaW5fYnl0ZXMiKSk7
CisgICAgaWYgKHZhbHVlICE9IG5vdFNldCkKKyAgICAgICAgcmV0dXJuIHZhbHVlOworCisgICAg
dmFsdWUgPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIm1lbW9yeSIsIG1lbW9yeUNvbnRyb2xsZXJOYW1l
LCBDU3RyaW5nKCJtZW1vcnkubGltaXRfaW5fYnl0ZXMiKSk7CisgICAgaWYgKHZhbHVlICE9IG5v
dFNldCkKKyAgICAgICAgcmV0dXJuIHZhbHVlOworCisgICAgcmV0dXJuIHZhbHVlOwogfQogCiBz
dGF0aWMgc2l6ZV90IGdldE1lbW9yeVVzYWdlV2l0aENncm91cChDU3RyaW5nIG1lbW9yeUNvbnRy
b2xsZXJOYW1lKQogewotICAgIGNoYXIgYnVmZmVyWzEyOF07Ci0gICAgY2hhciBjZ3JvdXBQYXRo
W21heENncm91cFBhdGhdOwotICAgIGNoYXIqIHRva2VuOwotICAgIGNoYXIqIGxpbmU7Ci0gICAg
RklMRSogZmlsZUNncm91cFBhdGhVc2FnZUJ5dGVzOworICAgIHNpemVfdCB2YWx1ZSA9IG5vdFNl
dDsKIAogICAgIC8vIENoZWNrIG1lbW9yeSBsaW1pdHMgaW4gY2dyb3VwVjIKLSAgICBzbnByaW50
ZihjZ3JvdXBQYXRoLCBtYXhDZ3JvdXBQYXRoLCBzX2Nncm91cE1lbW9yeVBhdGgsIG1lbW9yeUNv
bnRyb2xsZXJOYW1lLmRhdGEoKSwgIm1lbW9yeS5jdXJyZW50Iik7Ci0gICAgZmlsZUNncm91cFBh
dGhVc2FnZUJ5dGVzID0gZm9wZW4oY2dyb3VwUGF0aCwgInIiKTsKLSAgICBpZiAoZmlsZUNncm91
cFBhdGhVc2FnZUJ5dGVzKSB7Ci0gICAgICAgIGxpbmUgPSBmZ2V0cyhidWZmZXIsIDEyOCwgZmls
ZUNncm91cFBhdGhVc2FnZUJ5dGVzKTsKLSAgICAgICAgdG9rZW4gPSBzdHJ0b2sobGluZSwgIiAi
KTsKLSAgICAgICAgZmNsb3NlKGZpbGVDZ3JvdXBQYXRoVXNhZ2VCeXRlcyk7Ci0gICAgICAgIHJl
dHVybiBhdG9sbCh0b2tlbik7Ci0gICAgfQorICAgIHZhbHVlID0gZ2V0Q2dyb3VwRmlsZVZhbHVl
KCIvIiwgbWVtb3J5Q29udHJvbGxlck5hbWUsIENTdHJpbmcoIm1lbW9yeS5jdXJyZW50IikpOwor
ICAgIGlmICh2YWx1ZSAhPSBub3RTZXQpCisgICAgICAgIHJldHVybiB2YWx1ZTsKIAogICAgIC8v
IENoZWNrIG1lbW9yeSBsaW1pdHMgaW4gY2dyb3VwVjEKLSAgICBzbnByaW50ZihjZ3JvdXBQYXRo
LCBtYXhDZ3JvdXBQYXRoLCBzX2Nncm91cE1lbW9yeVBhdGgsIG1lbW9yeUNvbnRyb2xsZXJOYW1l
LmRhdGEoKSwgIm1lbW9yeS51c2FnZV9pbl9ieXRlcyIpOwotICAgIGZpbGVDZ3JvdXBQYXRoVXNh
Z2VCeXRlcyA9IGZvcGVuKGNncm91cFBhdGgsICJyIik7Ci0gICAgaWYgKGZpbGVDZ3JvdXBQYXRo
VXNhZ2VCeXRlcykgewotICAgICAgICBsaW5lID0gZmdldHMoYnVmZmVyLCAxMjgsIGZpbGVDZ3Jv
dXBQYXRoVXNhZ2VCeXRlcyk7Ci0gICAgICAgIHRva2VuID0gc3RydG9rKGxpbmUsICIgIik7Ci0g
ICAgICAgIGZjbG9zZShmaWxlQ2dyb3VwUGF0aFVzYWdlQnl0ZXMpOwotICAgICAgICByZXR1cm4g
YXRvbGwodG9rZW4pOwotICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICB2YWx1ZSA9IGdldENncm91
cEZpbGVWYWx1ZSgibWVtb3J5IiwgbWVtb3J5Q29udHJvbGxlck5hbWUsIENTdHJpbmcoIm1lbW9y
eS51c2FnZV9pbl9ieXRlcyIpKTsKKyAgICBpZiAodmFsdWUgIT0gbm90U2V0KQorICAgICAgICBy
ZXR1cm4gdmFsdWU7CisKKyAgICByZXR1cm4gbm90U2V0OwogfQogCiAvLyBUaGlzIGZpbGUgZGVz
Y3JpYmVzIGNvbnRyb2wgZ3JvdXBzIHRvIHdoaWNoIHRoZSBwcm9jZXNzIHdpdGgKQEAgLTIyMyw5
ICsyMjcsOSBAQCBzdGF0aWMgc2l6ZV90IGdldE1lbW9yeVVzYWdlV2l0aENncm91cChDU3RyaW5n
IG1lbW9yeUNvbnRyb2xsZXJOYW1lKQogLy8gMjpjcHVzZXQ6LwogLy8gMTpuYW1lPXN5c3RlbWQ6
L3VzZXIuc2xpY2UvdXNlci0xMDAwLnNsaWNlL3VzZXJAMTAwMC5zZXJ2aWNlL2dub21lLXRlcm1p
bmFsLXNlcnZlci5zZXJ2aWNlCiAvLyAwOjovdXNlci5zbGljZS91c2VyLTEwMDAuc2xpY2UvdXNl
ckAxMDAwLnNlcnZpY2UvZ25vbWUtdGVybWluYWwtc2VydmVyLnNlcnZpY2UKLXN0YXRpYyBDU3Ry
aW5nIGdldENncm91cENvbnRyb2xsZXIoY29uc3QgY2hhciogY29udHJvbGxlck5hbWUpCitzdGF0
aWMgQ1N0cmluZyBnZXRDZ3JvdXBDb250cm9sbGVyUGF0aChjb25zdCBjaGFyKiBjb250cm9sbGVy
TmFtZSkKIHsKLSAgICBDU3RyaW5nIG1lbW9yeUNvbnRyb2xsZXJOYW1lOworICAgIENTdHJpbmcg
bWVtb3J5Q29udHJvbGxlclBhdGggPSBDU3RyaW5nKCk7CiAgICAgRklMRSogZmlsZSA9IGZvcGVu
KHNfY2dyb3VwQ29udHJvbGxlciwgInIiKTsKICAgICBpZiAoIWZpbGUpCiAgICAgICAgIHJldHVy
biBDU3RyaW5nKCk7CkBAIC0yNDAsMTMgKzI0NCwxNyBAQCBzdGF0aWMgQ1N0cmluZyBnZXRDZ3Jv
dXBDb250cm9sbGVyKGNvbnN0IGNoYXIqIGNvbnRyb2xsZXJOYW1lKQogICAgICAgICB0b2tlbiA9
IHN0cnRvayhudWxscHRyLCAiOiIpOwogICAgICAgICBpZiAoIXN0cmNtcCh0b2tlbiwgY29udHJv
bGxlck5hbWUpKSB7CiAgICAgICAgICAgICB0b2tlbiA9IHN0cnRvayhudWxscHRyLCAiOiIpOwot
ICAgICAgICAgICAgbWVtb3J5Q29udHJvbGxlck5hbWUgPSBDU3RyaW5nKHRva2VuKTsKKyAgICAg
ICAgICAgIG1lbW9yeUNvbnRyb2xsZXJQYXRoID0gQ1N0cmluZyh0b2tlbik7CiAgICAgICAgICAg
ICBmY2xvc2UoZmlsZSk7Ci0gICAgICAgICAgICByZXR1cm4gbWVtb3J5Q29udHJvbGxlck5hbWU7
CisgICAgICAgICAgICByZXR1cm4gbWVtb3J5Q29udHJvbGxlclBhdGg7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKCFzdHJuY21wKHRva2VuLCAibmFtZT1zeXN0ZW1kIiwgMTIpKSB7CisgICAgICAg
ICAgICB0b2tlbiA9IHN0cnRvayhudWxscHRyLCAiOiIpOworICAgICAgICAgICAgbWVtb3J5Q29u
dHJvbGxlclBhdGggPSBDU3RyaW5nKHRva2VuKTsKICAgICAgICAgfQogICAgIH0KICAgICBmY2xv
c2UoZmlsZSk7Ci0gICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICByZXR1cm4gbWVtb3J5Q29udHJv
bGxlclBhdGg7CiB9CiAKIApAQCAtMjYxLDM5ICsyNjksNTIgQEAgc3RhdGljIGludCBzeXN0ZW1N
ZW1vcnlVc2VkQXNQZXJjZW50YWdlKCkKICAgICBjaGFyIGJ1ZmZlclsxMjhdOwogICAgIHdoaWxl
IChjaGFyKiBsaW5lID0gZmdldHMoYnVmZmVyLCAxMjgsIGZpbGUpKSB7CiAgICAgICAgIGNoYXIq
IHRva2VuID0gc3RydG9rKGxpbmUsICIgIik7CisgICAgICAgIGJvb2wgb2sgPSB0cnVlOwogICAg
ICAgICBpZiAoIXRva2VuKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKCFzdHJj
bXAodG9rZW4sICJNZW1BdmFpbGFibGU6IikpIHsKICAgICAgICAgICAgIGlmICgodG9rZW4gPSBz
dHJ0b2sobnVsbHB0ciwgIiAiKSkpIHsKLSAgICAgICAgICAgICAgICBtZW1vcnlBdmFpbGFibGUg
PSBhdG9sbCh0b2tlbik7CisgICAgICAgICAgICAgICAgbWVtb3J5QXZhaWxhYmxlID0gdG9JbnRl
Z3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAg
ICAgICBpZiAoIW9rKQorICAgICAgICAgICAgICAgICAgICBtZW1vcnlBdmFpbGFibGUgPSBub3RT
ZXQ7CiAgICAgICAgICAgICAgICAgaWYgKG1lbW9yeVRvdGFsICE9IG5vdFNldCkKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0
cmNtcCh0b2tlbiwgIk1lbVRvdGFsOiIpKSB7Ci0gICAgICAgICAgICBpZiAoKHRva2VuID0gc3Ry
dG9rKG51bGxwdHIsICIgIikpKQotICAgICAgICAgICAgICAgIG1lbW9yeVRvdGFsID0gYXRvbGwo
dG9rZW4pOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRv
ayhudWxscHRyLCAiICIpKSkgeworICAgICAgICAgICAgICAgIG1lbW9yeVRvdGFsID0gdG9JbnRl
Z3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAg
ICAgICBpZiAoIW9rKQorICAgICAgICAgICAgICAgICAgICBtZW1vcnlUb3RhbCA9IG5vdFNldDsK
KyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9IGVs
c2UgaWYgKCFzdHJjbXAodG9rZW4sICJNZW1GcmVlOiIpKSB7Ci0gICAgICAgICAgICBpZiAoKHRv
a2VuID0gc3RydG9rKG51bGxwdHIsICIgIikpKQotICAgICAgICAgICAgICAgIG1lbW9yeUZyZWUg
PSBhdG9sbCh0b2tlbik7Ci0gICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBpZiAoKHRva2Vu
ID0gc3RydG9rKG51bGxwdHIsICIgIikpKSB7CisgICAgICAgICAgICAgICAgbWVtb3J5RnJlZSA9
IHRvSW50ZWdyYWxUeXBlPHNpemVfdD4odG9rZW4sIHN0cmxlbih0b2tlbiksICZvayk7CisgICAg
ICAgICAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgICAgICAgICAgbWVtb3J5RnJlZSA9IG5v
dFNldDsKKyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9IGVsc2UgaWYgKCFzdHJjbXAodG9rZW4sICJBY3RpdmUoZmlsZSk6IikpIHsKLSAgICAgICAg
ICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpCi0gICAgICAgICAgICAgICAg
YWN0aXZlRmlsZSA9IGF0b2xsKHRva2VuKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpIHsKKyAgICAgICAgICAgICAgICBh
Y3RpdmVGaWxlID0gdG9JbnRlZ3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwg
Jm9rKTsKKyAgICAgICAgICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgICAgICAgICBhY3Rp
dmVGaWxlID0gbm90U2V0OworICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcCh0b2tlbiwgIkluYWN0aXZlKGZpbGUpOiIp
KSB7Ci0gICAgICAgICAgICBpZiAoKHRva2VuID0gc3RydG9rKG51bGxwdHIsICIgIikpKQotICAg
ICAgICAgICAgICAgIGluYWN0aXZlRmlsZSA9IGF0b2xsKHRva2VuKTsKLSAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpIHsKKyAg
ICAgICAgICAgICAgICBpbmFjdGl2ZUZpbGUgPSB0b0ludGVncmFsVHlwZTxzaXplX3Q+KHRva2Vu
LCBzdHJsZW4odG9rZW4pLCAmb2spOworICAgICAgICAgICAgICAgIGlmICghb2spCisgICAgICAg
ICAgICAgICAgICAgIGluYWN0aXZlRmlsZSA9IG5vdFNldDsKKyAgICAgICAgICAgIH0gZWxzZQog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAodG9rZW4s
ICJTUmVjbGFpbWFibGU6IikpIHsKLSAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVs
bHB0ciwgIiAiKSkpCi0gICAgICAgICAgICAgICAgc2xhYlJlY2xhaW1hYmxlID0gYXRvbGwodG9r
ZW4pOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRvayhu
dWxscHRyLCAiICIpKSkgeworICAgICAgICAgICAgICAgIHNsYWJSZWNsYWltYWJsZSA9IHRvSW50
ZWdyYWxUeXBlPHNpemVfdD4odG9rZW4sIHN0cmxlbih0b2tlbiksICZvayk7CisgICAgICAgICAg
ICAgICAgaWYgIW9rCisgICAgICAgICAgICAgICAgICAgIHNsYWJSZWNsYWltYWJsZSA9IG5vdFNl
dDsKKyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAKQEAgLTMxNSwxMSArMzM2LDExIEBAIHN0YXRpYyBpbnQgc3lzdGVtTWVtb3J5VXNlZEFzUGVy
Y2VudGFnZSgpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGludCBtZW1vcnlVc2FnZVBlcmNl
bnRhZ2UgPSAoKG1lbW9yeVRvdGFsIC0gbWVtb3J5QXZhaWxhYmxlKSAqIDEwMCkgLyBtZW1vcnlU
b3RhbDsKLSAgICBDU3RyaW5nIG1lbW9yeUNvbnRyb2xsZXJOYW1lID0gZ2V0Q2dyb3VwQ29udHJv
bGxlcigibWVtb3J5Iik7Ci0gICAgaWYgKCFtZW1vcnlDb250cm9sbGVyTmFtZS5pc051bGwoKSkg
ewotICAgICAgICBtZW1vcnlUb3RhbCA9IGdldE1lbW9yeVRvdGFsV2l0aENncm91cChtZW1vcnlD
b250cm9sbGVyTmFtZSk7Ci0gICAgICAgIHNpemVfdCBtZW1vcnlVc2FnZSA9IGdldE1lbW9yeVVz
YWdlV2l0aENncm91cChtZW1vcnlDb250cm9sbGVyTmFtZSk7Ci0gICAgICAgIGlmIChtZW1vcnlU
b3RhbCkgeworICAgIENTdHJpbmcgbWVtb3J5Q29udHJvbGxlclBhdGggPSBnZXRDZ3JvdXBDb250
cm9sbGVyUGF0aCgibWVtb3J5Iik7CisgICAgaWYgKCFtZW1vcnlDb250cm9sbGVyUGF0aC5pc051
bGwoKSkgeworICAgICAgICBtZW1vcnlUb3RhbCA9IGdldE1lbW9yeVRvdGFsV2l0aENncm91cCht
ZW1vcnlDb250cm9sbGVyUGF0aCk7CisgICAgICAgIHNpemVfdCBtZW1vcnlVc2FnZSA9IGdldE1l
bW9yeVVzYWdlV2l0aENncm91cChtZW1vcnlDb250cm9sbGVyUGF0aCk7CisgICAgICAgIGlmICht
ZW1vcnlUb3RhbCAhPSBub3RTZXQgJiYgbWVtb3J5VXNhZ2UgIT0gbm90U2V0KSB7CiAgICAgICAg
ICAgICBpbnQgbWVtb3J5VXNhZ2VQZXJjZW50YWdlV2l0aENncm91cCA9IDEwMCAqICgoZmxvYXQp
IG1lbW9yeVVzYWdlIC8gKGZsb2F0KSBtZW1vcnlUb3RhbCk7CiAgICAgICAgICAgICBpZiAobWVt
b3J5VXNhZ2VQZXJjZW50YWdlV2l0aENncm91cCA+IG1lbW9yeVVzYWdlUGVyY2VudGFnZSkKICAg
ICAgICAgICAgICAgICBtZW1vcnlVc2FnZVBlcmNlbnRhZ2UgPSBtZW1vcnlVc2FnZVBlcmNlbnRh
Z2VXaXRoQ2dyb3VwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394601</attachid>
            <date>2020-03-26 06:17:31 -0700</date>
            <delta_ts>2020-03-31 06:33:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-209464-20200326141728.patch</filename>
            <type>text/plain</type>
            <size>13468</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE4MWIxNmZkNDExMmNjN2Nl
NjA0MjU2NGQ3ZjFiMjBmNDlhZjc5YTAuLjI0YzhmZGE3ZWJmNjE0MTQzYWVjZjM3ODg3OWUwMDE5
YmFhMTFmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDMtMjYgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgU2V2ZXJhbCByZWZhY3Rv
cmluZ3MgZG9uZSBpbiB0aGUgTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDY0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMSkgdG9JbnRlZ3JhbFR5cGUoKSBw
YXJzZXMgdGhlIEMtc3RyaW5nIHN0ciBpbnRlcnByZXRpbmcgaXRzIGNvbnRlbnQKKyAgICAgICAg
YXMgYW4gYHVuc2lnbmVkIGxvbmcgbG9uZyBpbnRgIHdoaWNoIGlzIG1vcmUgYXBwcm9wcmlhdGUg
Zm9yCisgICAgICAgIHRoZSBzaXplX3QgKHVuc2lnbmVkIGludGVnZXIgdHlwZSkgdmFyaWFibGVz
IHVzZWQgYnkgdGhlCisgICAgICAgIE1lbW9yeVByZXNzdXJlTW9uaXRvciBmdW5jdGlvbnMgaW4g
Y291bnRlcnBvaW50IG9mIGF0b2xsKCkgd2hhdAorICAgICAgICByZXR1cm5zIGEgYGxvbmcgbG9u
ZyBpbnRgLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFsc28gY29udHJvbHMgaWYgdGhlIHBhcnNp
bmcgd2FzIHN1Y2Nlc2Z1bC4gSW4gbmVnYXRpdmUKKyAgICAgICAgY2FzZSByZXR1cm5zIGBub3RT
ZXRgLgorCisgICAgICAgIDIpIEFkZGVkIHRoZSBnZXRDZ3JvdXBGaWxlVmFsdWUoKSBmdW5jdGlv
biB3aGF0IGVuY2Fwc3VsYXRlcyB0aGUKKyAgICAgICAgbWFuaXB1bGF0aW9uIG9mIHRoZSBvcGVu
ZWQgZmlsZXMgaW4gdGhlIGAvc3lzL2ZzL2Nncm91cGAgaGllcmFyY2h5LgorICAgICAgICBUaGlz
IGNoYW5nZSBzaW1wbGlmeSB0aGUgY29kZSBhdm9kaW5nIHVubmVjZXNzYXJ5IGNvZGUgcmVwZXRp
b24uCisKKyAgICAgICAgMykgZ2V0Q2dyb3VwQ29udHJvbGxlclBhdGgoKSBub3cgY2hlY2tzIGlm
IHRoZXJlIGlzIGEgYG5hbWU9c3lzdGVtZGAKKyAgICAgICAgY29udHJvbGxlciBsaXN0ZWQgaW4g
dGhlIGAvcHJvYy9zZWxmL2Nncm91cGAuIFRoaXMgaW1wb3J0YW50IGZvcgorICAgICAgICBjZ3Jv
dXAgdjIgYWN0aXZhdGVkIHdpdGggYHN5c3RlbWQudW5pZmllZF9jZ3JvdXBfaGllcmFyY2h5PXll
c2AKKyAgICAgICAgdGhyb3VnaCB0aGUgTGludXgga2VybmVsIGNtZGxpbmUuIFRoZSB1bmlmaWVk
IGhpZXJhcmNoeSBzaW1wbGllcworICAgICAgICBwYXRoIG9mIHRoZSBjb250cm9sbGVycyB1bmRl
ciB0aGUgc2FtZSBkaXJlY3RvcnkgKGNoZWNrIHRoZQorICAgICAgICAiRGVwcmVjYXRlZCB2MSBD
b3JlIEZlYXR1cmVzIiBzZWN0aW9uIGluIHRoZSBMaW51eCBLZXJuZWwKKyAgICAgICAgZG9jdW1l
bnRhdGlvbiBmaXIgY2dyb3VwIHYyIFsxXSk6CisKKyAgICAgICAgICAgIE11bHRpcGxlIGhpZXJh
cmNoaWVzIGluY2x1ZGluZyBuYW1lZCBvbmVzIGFyZSBub3Qgc3VwcG9ydGVkCisKKyAgICAgICAg
WzFdIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL0RvY3VtZW50YXRpb24vY2dyb3VwLXYyLnR4
dAorCisgICAgICAgIDQpIEJlY2F1c2UgMykgdGhlIHBhdGNoIGNvbXBvc2l0ZWQgZm9yIGNncm91
cFYyIGNoYW5nZXMKKyAgICAgICAgZ2V0TWVtb3J5VXNhZ2VXaXRoQ2dyb3VwKCkgc2lnaGx5LiBU
aGUgbmFtZSBvZiB0aGUgY29udHJvbGxlcgorICAgICAgICBpcyBub3QgbmVlZGVkIGFueW1vcmUu
CisKKyAgICAgICAgNSkgRm9yIGNncm91cCB2MiwgdGhlIE1lbW9yeVRvdGFsIGlzIGNhbGN1bGF0
ZWQgYXMgdGhlIG1pbmltdW0KKyAgICAgICAgYmV0d2VlbiBtZW1vcnkuaGlnaCBhbmQgbWVtb3J5
Lm1heC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3Iu
Y3BwOgorICAgICAgICAoV2ViS2l0Ojpsb3dXYXRlcm1hcmtQYWdlcyk6CisgICAgICAgIChXZWJL
aXQ6OmdldENncm91cEZpbGVWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6OmdldE1lbW9yeVRvdGFs
V2l0aENncm91cCk6CisgICAgICAgIChXZWJLaXQ6OmdldE1lbW9yeVVzYWdlV2l0aENncm91cCk6
CisgICAgICAgIChXZWJLaXQ6OmdldENncm91cENvbnRyb2xsZXJQYXRoKToKKyAgICAgICAgKFdl
YktpdDo6c3lzdGVtTWVtb3J5VXNlZEFzUGVyY2VudGFnZSk6CisgICAgICAgIChXZWJLaXQ6Omdl
dENncm91cENvbnRyb2xsZXIpOiBEZWxldGVkLgorCiAyMDIwLTAzLTI2ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQgc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdmlkZW9MYXll
cklECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVz
c3VyZU1vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJl
c3N1cmVNb25pdG9yLmNwcAppbmRleCBkNjlhNmI4ZmE0NjRkYTM5NDY4ZGM2ODE1MGRhYTVjNzk4
MmRkODg1Li5jYTEwYWNkMjg3YjExNGZiOWU0NDgyYWJjNGMwZTAzYmIxODc0NjZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9u
aXRvci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC00OSw3ICs1MCw3IEBAIHN0YXRpYyBjb25zdCBpbnQgc19t
ZW1vcnlQcmVzdXJlUGVyY2VudGFnZVRocmVzaG9sZCA9IDkwOwogc3RhdGljIGNvbnN0IGludCBz
X21lbW9yeVByZXN1cmVQZXJjZW50YWdlVGhyZXNob2xkQ3JpdGljYWwgPSA5NTsKIC8vIGNncm91
cHMuNzogVGhlIHVzdWFsIHBsYWNlIGZvciBzdWNoIG1vdW50cyBpcyB1bmRlciBhIHRtcGZzKDUp
CiAvLyBmaWxlc3lzdGVtIG1vdW50ZWQgYXQgL3N5cy9mcy9jZ3JvdXAuCi1zdGF0aWMgY29uc3Qg
Y2hhciogc19jZ3JvdXBNZW1vcnlQYXRoID0gIi9zeXMvZnMvY2dyb3VwL21lbW9yeS8lcy8lcyI7
CitzdGF0aWMgY29uc3QgY2hhciogc19jZ3JvdXBNZW1vcnlQYXRoID0gIi9zeXMvZnMvY2dyb3Vw
LyVzLyVzLyVzIjsKIHN0YXRpYyBjb25zdCBjaGFyKiBzX2Nncm91cENvbnRyb2xsZXIgPSAiL3By
b2Mvc2VsZi9jZ3JvdXAiOwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heENncm91cFBhdGggPSA0
MDk2OyAvLyBQQVRIX01BWCA9IDQwOTYgZnJvbSAoTGludXgpIGluY2x1ZGUvdWFwaS9saW51eC9s
aW1pdHMuaAogCkBAIC04NCw3ICs4NSwxMCBAQCBzdGF0aWMgc2l6ZV90IGxvd1dhdGVybWFya1Bh
Z2VzKCkKICAgICAgICAgICAgICAgICBsb3cgPSBub3RTZXQ7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBsb3cgKz0gYXRvbGwodG9rZW4pOworICAg
ICAgICAgICAgYm9vbCBvayA9IHRydWU7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9JbnRl
Z3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAg
IGlmIChvaykKKyAgICAgICAgICAgICAgICBsb3cgKz0gdmFsdWU7CiAgICAgICAgICAgICBmb3Vu
ZExvdyA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMzIsNzUgKzEzNiw3NSBAQCBzdGF0
aWMgc2l6ZV90IGNhbGN1bGF0ZU1lbW9yeUF2YWlsYWJsZShzaXplX3QgbWVtb3J5RnJlZSwgc2l6
ZV90IGFjdGl2ZUZpbGUsIHNpegogICAgIHJldHVybiBtZW1vcnlBdmFpbGFibGU7CiB9CiAKLXNp
emVfdCBnZXRNZW1vcnlUb3RhbFdpdGhDZ3JvdXAoQ1N0cmluZyBtZW1vcnlDb250cm9sbGVyTmFt
ZSkKKworc2l6ZV90IGdldENncm91cEZpbGVWYWx1ZShDU3RyaW5nIGNncm91cENvbnRyb2xsZXJO
YW1lLCBDU3RyaW5nIGNncm91cENvbnRyb2xsZXJQYXRoLCBDU3RyaW5nIGNncm91cEZpbGVOYW1l
KQogewogICAgIGNoYXIgYnVmZmVyWzEyOF07CiAgICAgY2hhciBjZ3JvdXBQYXRoW21heENncm91
cFBhdGhdOwogICAgIGNoYXIqIHRva2VuOwogICAgIEZJTEUqIGZpbGU7CisgICAgYm9vbCBvayA9
IHRydWU7CiAKLSAgICAvLyBDaGVjayBtZW1vcnkgbGltaXRzIGluIGNncm91cFYyCi0gICAgc25w
cmludGYoY2dyb3VwUGF0aCwgbWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBtZW1v
cnlDb250cm9sbGVyTmFtZS5kYXRhKCksICJtZW1vcnkubWVtc3cubWF4Iik7CisgICAgc25wcmlu
dGYoY2dyb3VwUGF0aCwgbWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBjZ3JvdXBD
b250cm9sbGVyTmFtZS5kYXRhKCksIGNncm91cENvbnRyb2xsZXJQYXRoLmRhdGEoKSwgY2dyb3Vw
RmlsZU5hbWUuZGF0YSgpKTsKICAgICBmaWxlID0gZm9wZW4oY2dyb3VwUGF0aCwgInIiKTsKICAg
ICBpZiAoZmlsZSkgewogICAgICAgICB0b2tlbiA9IGZnZXRzKGJ1ZmZlciwgMTI4LCBmaWxlKTsK
ICAgICAgICAgZmNsb3NlKGZpbGUpOwotICAgICAgICByZXR1cm4gYXRvbGwodG9rZW4pOworICAg
ICAgICBzaXplX3QgdmFsdWUgPSB0b0ludGVncmFsVHlwZTxzaXplX3Q+KHRva2VuLCBzdHJsZW4o
dG9rZW4pLCAmb2spOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgdmFsdWUgPSBub3RT
ZXQ7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICB9Ci0gICAgc25wcmludGYoY2dyb3VwUGF0
aCwgbWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBtZW1vcnlDb250cm9sbGVyTmFt
ZS5kYXRhKCksICJtZW1vcnkubWF4Iik7Ci0gICAgZmlsZSA9IGZvcGVuKGNncm91cFBhdGgsICJy
Iik7Ci0gICAgaWYgKGZpbGUpIHsKLSAgICAgICAgdG9rZW4gPSBmZ2V0cyhidWZmZXIsIDEyOCwg
ZmlsZSk7Ci0gICAgICAgIGZjbG9zZShmaWxlKTsKLSAgICAgICAgcmV0dXJuIGF0b2xsKHRva2Vu
KTsKKyAgICByZXR1cm4gbm90U2V0OworfQorCitzaXplX3QgZ2V0TWVtb3J5VG90YWxXaXRoQ2dy
b3VwKENTdHJpbmcgbWVtb3J5Q29udHJvbGxlck5hbWUpCit7CisgICAgc2l6ZV90IHZhbHVlID0g
bm90U2V0OworCisgICAgLy8gQ2hlY2sgbWVtb3J5IGxpbWl0cyBpbiBjZ3JvdXBWMgorICAgIHZh
bHVlID0gZ2V0Q2dyb3VwRmlsZVZhbHVlKCIvIiwgbWVtb3J5Q29udHJvbGxlck5hbWUsIENTdHJp
bmcoIm1lbW9yeS5tZW1zdy5tYXgiKSk7CisgICAgaWYgKHZhbHVlICE9IG5vdFNldCkKKyAgICAg
ICAgcmV0dXJuIHZhbHVlOworCisgICAgdmFsdWUgPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIi8iLCBt
ZW1vcnlDb250cm9sbGVyTmFtZSwgQ1N0cmluZygibWVtb3J5Lm1heCIpKTsKKyAgICBzaXplX3Qg
dmFsdWVIaWdoID0gZ2V0Q2dyb3VwRmlsZVZhbHVlKCIvIiwgbWVtb3J5Q29udHJvbGxlck5hbWUs
IENTdHJpbmcoIm1lbW9yeS5oaWdoIikpOworICAgIGlmICh2YWx1ZSAhPSBub3RTZXQgJiYgdmFs
dWVIaWdoICE9IG5vdFNldCkgeworICAgICAgICB2YWx1ZSA9IHN0ZDo6bWluKHZhbHVlLCB2YWx1
ZUhpZ2gpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgfQorICAgIGlmICh2YWx1ZUhpZ2gg
IT0gbm90U2V0KQorICAgICAgICByZXR1cm4gdmFsdWVIaWdoOworICAgIGlmICh2YWx1ZSAhPSBu
b3RTZXQpCisgICAgICAgIHJldHVybiB2YWx1ZTsKIAogICAgIC8vIENoZWNrIG1lbW9yeSBsaW1p
dHMgaW4gY2dyb3VwVjEKLSAgICBzbnByaW50ZihjZ3JvdXBQYXRoLCBtYXhDZ3JvdXBQYXRoLCBz
X2Nncm91cE1lbW9yeVBhdGgsIG1lbW9yeUNvbnRyb2xsZXJOYW1lLmRhdGEoKSwgIm1lbW9yeS5t
ZW1zdy5saW1pdF9pbl9ieXRlcyIpOwotICAgIGZpbGUgPSBmb3BlbihjZ3JvdXBQYXRoLCAiciIp
OwotICAgIGlmIChmaWxlKSB7Ci0gICAgICAgIHRva2VuID0gZmdldHMoYnVmZmVyLCAxMjgsIGZp
bGUpOwotICAgICAgICBmY2xvc2UoZmlsZSk7Ci0gICAgICAgIHJldHVybiBhdG9sbCh0b2tlbik7
Ci0gICAgfQotICAgIHNucHJpbnRmKGNncm91cFBhdGgsIG1heENncm91cFBhdGgsIHNfY2dyb3Vw
TWVtb3J5UGF0aCwgbWVtb3J5Q29udHJvbGxlck5hbWUuZGF0YSgpLCAibWVtb3J5LmxpbWl0X2lu
X2J5dGVzIik7Ci0gICAgZmlsZSA9IGZvcGVuKGNncm91cFBhdGgsICJyIik7Ci0gICAgaWYgKGZp
bGUpIHsKLSAgICAgICAgdG9rZW4gPSBmZ2V0cyhidWZmZXIsIDEyOCwgZmlsZSk7Ci0gICAgICAg
IGZjbG9zZShmaWxlKTsKLSAgICAgICAgcmV0dXJuIGF0b2xsKHRva2VuKTsKLSAgICB9Ci0gICAg
cmV0dXJuIDA7CisgICAgdmFsdWUgPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIm1lbW9yeSIsIG1lbW9y
eUNvbnRyb2xsZXJOYW1lLCBDU3RyaW5nKCJtZW1vcnkubWVtc3cubGltaXRfaW5fYnl0ZXMiKSk7
CisgICAgaWYgKHZhbHVlICE9IG5vdFNldCkKKyAgICAgICAgcmV0dXJuIHZhbHVlOworCisgICAg
dmFsdWUgPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIm1lbW9yeSIsIG1lbW9yeUNvbnRyb2xsZXJOYW1l
LCBDU3RyaW5nKCJtZW1vcnkubGltaXRfaW5fYnl0ZXMiKSk7CisgICAgaWYgKHZhbHVlICE9IG5v
dFNldCkKKyAgICAgICAgcmV0dXJuIHZhbHVlOworCisgICAgcmV0dXJuIHZhbHVlOwogfQogCiBz
dGF0aWMgc2l6ZV90IGdldE1lbW9yeVVzYWdlV2l0aENncm91cChDU3RyaW5nIG1lbW9yeUNvbnRy
b2xsZXJOYW1lKQogewotICAgIGNoYXIgYnVmZmVyWzEyOF07Ci0gICAgY2hhciBjZ3JvdXBQYXRo
W21heENncm91cFBhdGhdOwotICAgIGNoYXIqIHRva2VuOwotICAgIGNoYXIqIGxpbmU7Ci0gICAg
RklMRSogZmlsZUNncm91cFBhdGhVc2FnZUJ5dGVzOworICAgIHNpemVfdCB2YWx1ZSA9IG5vdFNl
dDsKIAogICAgIC8vIENoZWNrIG1lbW9yeSBsaW1pdHMgaW4gY2dyb3VwVjIKLSAgICBzbnByaW50
ZihjZ3JvdXBQYXRoLCBtYXhDZ3JvdXBQYXRoLCBzX2Nncm91cE1lbW9yeVBhdGgsIG1lbW9yeUNv
bnRyb2xsZXJOYW1lLmRhdGEoKSwgIm1lbW9yeS5jdXJyZW50Iik7Ci0gICAgZmlsZUNncm91cFBh
dGhVc2FnZUJ5dGVzID0gZm9wZW4oY2dyb3VwUGF0aCwgInIiKTsKLSAgICBpZiAoZmlsZUNncm91
cFBhdGhVc2FnZUJ5dGVzKSB7Ci0gICAgICAgIGxpbmUgPSBmZ2V0cyhidWZmZXIsIDEyOCwgZmls
ZUNncm91cFBhdGhVc2FnZUJ5dGVzKTsKLSAgICAgICAgdG9rZW4gPSBzdHJ0b2sobGluZSwgIiAi
KTsKLSAgICAgICAgZmNsb3NlKGZpbGVDZ3JvdXBQYXRoVXNhZ2VCeXRlcyk7Ci0gICAgICAgIHJl
dHVybiBhdG9sbCh0b2tlbik7Ci0gICAgfQorICAgIHZhbHVlID0gZ2V0Q2dyb3VwRmlsZVZhbHVl
KCIvIiwgbWVtb3J5Q29udHJvbGxlck5hbWUsIENTdHJpbmcoIm1lbW9yeS5jdXJyZW50IikpOwor
ICAgIGlmICh2YWx1ZSAhPSBub3RTZXQpCisgICAgICAgIHJldHVybiB2YWx1ZTsKIAogICAgIC8v
IENoZWNrIG1lbW9yeSBsaW1pdHMgaW4gY2dyb3VwVjEKLSAgICBzbnByaW50ZihjZ3JvdXBQYXRo
LCBtYXhDZ3JvdXBQYXRoLCBzX2Nncm91cE1lbW9yeVBhdGgsIG1lbW9yeUNvbnRyb2xsZXJOYW1l
LmRhdGEoKSwgIm1lbW9yeS51c2FnZV9pbl9ieXRlcyIpOwotICAgIGZpbGVDZ3JvdXBQYXRoVXNh
Z2VCeXRlcyA9IGZvcGVuKGNncm91cFBhdGgsICJyIik7Ci0gICAgaWYgKGZpbGVDZ3JvdXBQYXRo
VXNhZ2VCeXRlcykgewotICAgICAgICBsaW5lID0gZmdldHMoYnVmZmVyLCAxMjgsIGZpbGVDZ3Jv
dXBQYXRoVXNhZ2VCeXRlcyk7Ci0gICAgICAgIHRva2VuID0gc3RydG9rKGxpbmUsICIgIik7Ci0g
ICAgICAgIGZjbG9zZShmaWxlQ2dyb3VwUGF0aFVzYWdlQnl0ZXMpOwotICAgICAgICByZXR1cm4g
YXRvbGwodG9rZW4pOwotICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICB2YWx1ZSA9IGdldENncm91
cEZpbGVWYWx1ZSgibWVtb3J5IiwgbWVtb3J5Q29udHJvbGxlck5hbWUsIENTdHJpbmcoIm1lbW9y
eS51c2FnZV9pbl9ieXRlcyIpKTsKKyAgICBpZiAodmFsdWUgIT0gbm90U2V0KQorICAgICAgICBy
ZXR1cm4gdmFsdWU7CisKKyAgICByZXR1cm4gbm90U2V0OwogfQogCiAvLyBUaGlzIGZpbGUgZGVz
Y3JpYmVzIGNvbnRyb2wgZ3JvdXBzIHRvIHdoaWNoIHRoZSBwcm9jZXNzIHdpdGgKQEAgLTIyMyw5
ICsyMjcsOSBAQCBzdGF0aWMgc2l6ZV90IGdldE1lbW9yeVVzYWdlV2l0aENncm91cChDU3RyaW5n
IG1lbW9yeUNvbnRyb2xsZXJOYW1lKQogLy8gMjpjcHVzZXQ6LwogLy8gMTpuYW1lPXN5c3RlbWQ6
L3VzZXIuc2xpY2UvdXNlci0xMDAwLnNsaWNlL3VzZXJAMTAwMC5zZXJ2aWNlL2dub21lLXRlcm1p
bmFsLXNlcnZlci5zZXJ2aWNlCiAvLyAwOjovdXNlci5zbGljZS91c2VyLTEwMDAuc2xpY2UvdXNl
ckAxMDAwLnNlcnZpY2UvZ25vbWUtdGVybWluYWwtc2VydmVyLnNlcnZpY2UKLXN0YXRpYyBDU3Ry
aW5nIGdldENncm91cENvbnRyb2xsZXIoY29uc3QgY2hhciogY29udHJvbGxlck5hbWUpCitzdGF0
aWMgQ1N0cmluZyBnZXRDZ3JvdXBDb250cm9sbGVyUGF0aChjb25zdCBjaGFyKiBjb250cm9sbGVy
TmFtZSkKIHsKLSAgICBDU3RyaW5nIG1lbW9yeUNvbnRyb2xsZXJOYW1lOworICAgIENTdHJpbmcg
bWVtb3J5Q29udHJvbGxlclBhdGggPSBDU3RyaW5nKCk7CiAgICAgRklMRSogZmlsZSA9IGZvcGVu
KHNfY2dyb3VwQ29udHJvbGxlciwgInIiKTsKICAgICBpZiAoIWZpbGUpCiAgICAgICAgIHJldHVy
biBDU3RyaW5nKCk7CkBAIC0yNDAsMTMgKzI0NCwxNyBAQCBzdGF0aWMgQ1N0cmluZyBnZXRDZ3Jv
dXBDb250cm9sbGVyKGNvbnN0IGNoYXIqIGNvbnRyb2xsZXJOYW1lKQogICAgICAgICB0b2tlbiA9
IHN0cnRvayhudWxscHRyLCAiOiIpOwogICAgICAgICBpZiAoIXN0cmNtcCh0b2tlbiwgY29udHJv
bGxlck5hbWUpKSB7CiAgICAgICAgICAgICB0b2tlbiA9IHN0cnRvayhudWxscHRyLCAiOiIpOwot
ICAgICAgICAgICAgbWVtb3J5Q29udHJvbGxlck5hbWUgPSBDU3RyaW5nKHRva2VuKTsKKyAgICAg
ICAgICAgIG1lbW9yeUNvbnRyb2xsZXJQYXRoID0gQ1N0cmluZyh0b2tlbik7CiAgICAgICAgICAg
ICBmY2xvc2UoZmlsZSk7Ci0gICAgICAgICAgICByZXR1cm4gbWVtb3J5Q29udHJvbGxlck5hbWU7
CisgICAgICAgICAgICByZXR1cm4gbWVtb3J5Q29udHJvbGxlclBhdGg7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKCFzdHJuY21wKHRva2VuLCAibmFtZT1zeXN0ZW1kIiwgMTIpKSB7CisgICAgICAg
ICAgICB0b2tlbiA9IHN0cnRvayhudWxscHRyLCAiOiIpOworICAgICAgICAgICAgbWVtb3J5Q29u
dHJvbGxlclBhdGggPSBDU3RyaW5nKHRva2VuKTsKICAgICAgICAgfQogICAgIH0KICAgICBmY2xv
c2UoZmlsZSk7Ci0gICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICByZXR1cm4gbWVtb3J5Q29udHJv
bGxlclBhdGg7CiB9CiAKIApAQCAtMjYxLDM5ICsyNjksNTIgQEAgc3RhdGljIGludCBzeXN0ZW1N
ZW1vcnlVc2VkQXNQZXJjZW50YWdlKCkKICAgICBjaGFyIGJ1ZmZlclsxMjhdOwogICAgIHdoaWxl
IChjaGFyKiBsaW5lID0gZmdldHMoYnVmZmVyLCAxMjgsIGZpbGUpKSB7CiAgICAgICAgIGNoYXIq
IHRva2VuID0gc3RydG9rKGxpbmUsICIgIik7CisgICAgICAgIGJvb2wgb2sgPSB0cnVlOwogICAg
ICAgICBpZiAoIXRva2VuKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKCFzdHJj
bXAodG9rZW4sICJNZW1BdmFpbGFibGU6IikpIHsKICAgICAgICAgICAgIGlmICgodG9rZW4gPSBz
dHJ0b2sobnVsbHB0ciwgIiAiKSkpIHsKLSAgICAgICAgICAgICAgICBtZW1vcnlBdmFpbGFibGUg
PSBhdG9sbCh0b2tlbik7CisgICAgICAgICAgICAgICAgbWVtb3J5QXZhaWxhYmxlID0gdG9JbnRl
Z3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAg
ICAgICBpZiAoIW9rKQorICAgICAgICAgICAgICAgICAgICBtZW1vcnlBdmFpbGFibGUgPSBub3RT
ZXQ7CiAgICAgICAgICAgICAgICAgaWYgKG1lbW9yeVRvdGFsICE9IG5vdFNldCkKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0
cmNtcCh0b2tlbiwgIk1lbVRvdGFsOiIpKSB7Ci0gICAgICAgICAgICBpZiAoKHRva2VuID0gc3Ry
dG9rKG51bGxwdHIsICIgIikpKQotICAgICAgICAgICAgICAgIG1lbW9yeVRvdGFsID0gYXRvbGwo
dG9rZW4pOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRv
ayhudWxscHRyLCAiICIpKSkgeworICAgICAgICAgICAgICAgIG1lbW9yeVRvdGFsID0gdG9JbnRl
Z3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAg
ICAgICBpZiAoIW9rKQorICAgICAgICAgICAgICAgICAgICBtZW1vcnlUb3RhbCA9IG5vdFNldDsK
KyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9IGVs
c2UgaWYgKCFzdHJjbXAodG9rZW4sICJNZW1GcmVlOiIpKSB7Ci0gICAgICAgICAgICBpZiAoKHRv
a2VuID0gc3RydG9rKG51bGxwdHIsICIgIikpKQotICAgICAgICAgICAgICAgIG1lbW9yeUZyZWUg
PSBhdG9sbCh0b2tlbik7Ci0gICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBpZiAoKHRva2Vu
ID0gc3RydG9rKG51bGxwdHIsICIgIikpKSB7CisgICAgICAgICAgICAgICAgbWVtb3J5RnJlZSA9
IHRvSW50ZWdyYWxUeXBlPHNpemVfdD4odG9rZW4sIHN0cmxlbih0b2tlbiksICZvayk7CisgICAg
ICAgICAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgICAgICAgICAgbWVtb3J5RnJlZSA9IG5v
dFNldDsKKyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9IGVsc2UgaWYgKCFzdHJjbXAodG9rZW4sICJBY3RpdmUoZmlsZSk6IikpIHsKLSAgICAgICAg
ICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpCi0gICAgICAgICAgICAgICAg
YWN0aXZlRmlsZSA9IGF0b2xsKHRva2VuKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpIHsKKyAgICAgICAgICAgICAgICBh
Y3RpdmVGaWxlID0gdG9JbnRlZ3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwg
Jm9rKTsKKyAgICAgICAgICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgICAgICAgICBhY3Rp
dmVGaWxlID0gbm90U2V0OworICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcCh0b2tlbiwgIkluYWN0aXZlKGZpbGUpOiIp
KSB7Ci0gICAgICAgICAgICBpZiAoKHRva2VuID0gc3RydG9rKG51bGxwdHIsICIgIikpKQotICAg
ICAgICAgICAgICAgIGluYWN0aXZlRmlsZSA9IGF0b2xsKHRva2VuKTsKLSAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpIHsKKyAg
ICAgICAgICAgICAgICBpbmFjdGl2ZUZpbGUgPSB0b0ludGVncmFsVHlwZTxzaXplX3Q+KHRva2Vu
LCBzdHJsZW4odG9rZW4pLCAmb2spOworICAgICAgICAgICAgICAgIGlmICghb2spCisgICAgICAg
ICAgICAgICAgICAgIGluYWN0aXZlRmlsZSA9IG5vdFNldDsKKyAgICAgICAgICAgIH0gZWxzZQog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAodG9rZW4s
ICJTUmVjbGFpbWFibGU6IikpIHsKLSAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVs
bHB0ciwgIiAiKSkpCi0gICAgICAgICAgICAgICAgc2xhYlJlY2xhaW1hYmxlID0gYXRvbGwodG9r
ZW4pOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRvayhu
dWxscHRyLCAiICIpKSkgeworICAgICAgICAgICAgICAgIHNsYWJSZWNsYWltYWJsZSA9IHRvSW50
ZWdyYWxUeXBlPHNpemVfdD4odG9rZW4sIHN0cmxlbih0b2tlbiksICZvayk7CisgICAgICAgICAg
ICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgICAgICAgICAgc2xhYlJlY2xhaW1hYmxlID0gbm90
U2V0OworICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KIApAQCAtMzE1LDExICszMzYsMTEgQEAgc3RhdGljIGludCBzeXN0ZW1NZW1vcnlVc2VkQXNQ
ZXJjZW50YWdlKCkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaW50IG1lbW9yeVVzYWdlUGVy
Y2VudGFnZSA9ICgobWVtb3J5VG90YWwgLSBtZW1vcnlBdmFpbGFibGUpICogMTAwKSAvIG1lbW9y
eVRvdGFsOwotICAgIENTdHJpbmcgbWVtb3J5Q29udHJvbGxlck5hbWUgPSBnZXRDZ3JvdXBDb250
cm9sbGVyKCJtZW1vcnkiKTsKLSAgICBpZiAoIW1lbW9yeUNvbnRyb2xsZXJOYW1lLmlzTnVsbCgp
KSB7Ci0gICAgICAgIG1lbW9yeVRvdGFsID0gZ2V0TWVtb3J5VG90YWxXaXRoQ2dyb3VwKG1lbW9y
eUNvbnRyb2xsZXJOYW1lKTsKLSAgICAgICAgc2l6ZV90IG1lbW9yeVVzYWdlID0gZ2V0TWVtb3J5
VXNhZ2VXaXRoQ2dyb3VwKG1lbW9yeUNvbnRyb2xsZXJOYW1lKTsKLSAgICAgICAgaWYgKG1lbW9y
eVRvdGFsKSB7CisgICAgQ1N0cmluZyBtZW1vcnlDb250cm9sbGVyUGF0aCA9IGdldENncm91cENv
bnRyb2xsZXJQYXRoKCJtZW1vcnkiKTsKKyAgICBpZiAoIW1lbW9yeUNvbnRyb2xsZXJQYXRoLmlz
TnVsbCgpKSB7CisgICAgICAgIG1lbW9yeVRvdGFsID0gZ2V0TWVtb3J5VG90YWxXaXRoQ2dyb3Vw
KG1lbW9yeUNvbnRyb2xsZXJQYXRoKTsKKyAgICAgICAgc2l6ZV90IG1lbW9yeVVzYWdlID0gZ2V0
TWVtb3J5VXNhZ2VXaXRoQ2dyb3VwKG1lbW9yeUNvbnRyb2xsZXJQYXRoKTsKKyAgICAgICAgaWYg
KG1lbW9yeVRvdGFsICE9IG5vdFNldCAmJiBtZW1vcnlVc2FnZSAhPSBub3RTZXQpIHsKICAgICAg
ICAgICAgIGludCBtZW1vcnlVc2FnZVBlcmNlbnRhZ2VXaXRoQ2dyb3VwID0gMTAwICogKChmbG9h
dCkgbWVtb3J5VXNhZ2UgLyAoZmxvYXQpIG1lbW9yeVRvdGFsKTsKICAgICAgICAgICAgIGlmICht
ZW1vcnlVc2FnZVBlcmNlbnRhZ2VXaXRoQ2dyb3VwID4gbWVtb3J5VXNhZ2VQZXJjZW50YWdlKQog
ICAgICAgICAgICAgICAgIG1lbW9yeVVzYWdlUGVyY2VudGFnZSA9IG1lbW9yeVVzYWdlUGVyY2Vu
dGFnZVdpdGhDZ3JvdXA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395030</attachid>
            <date>2020-03-31 06:33:48 -0700</date>
            <delta_ts>2020-03-31 06:41:47 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-209464-20200331153346.patch</filename>
            <type>text/plain</type>
            <size>13458</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE4MWIxNmZkNDExMmNjN2Nl
NjA0MjU2NGQ3ZjFiMjBmNDlhZjc5YTAuLjQ4ZjlmMWYwMDY5MzI0M2FiOGVlOTJmMjgxOGUwMzM1
OTNmNjVkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDMtMjYgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgU2V2ZXJhbCByZWZhY3Rv
cmluZ3MgZG9uZSBpbiB0aGUgTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDY0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMSkgdG9JbnRlZ3JhbFR5cGUoKSBw
YXJzZXMgdGhlIEMtc3RyaW5nIHN0ciBpbnRlcnByZXRpbmcgaXRzIGNvbnRlbnQKKyAgICAgICAg
YXMgYW4gYHVuc2lnbmVkIGxvbmcgbG9uZyBpbnRgIHdoaWNoIGlzIG1vcmUgYXBwcm9wcmlhdGUg
Zm9yCisgICAgICAgIHRoZSBzaXplX3QgKHVuc2lnbmVkIGludGVnZXIgdHlwZSkgdmFyaWFibGVz
IHVzZWQgYnkgdGhlCisgICAgICAgIE1lbW9yeVByZXNzdXJlTW9uaXRvciBmdW5jdGlvbnMgaW4g
Y291bnRlcnBvaW50IG9mIGF0b2xsKCkgd2hhdAorICAgICAgICByZXR1cm5zIGEgYGxvbmcgbG9u
ZyBpbnRgLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFsc28gY29udHJvbHMgaWYgdGhlIHBhcnNp
bmcgd2FzIHN1Y2Nlc2Z1bC4gSW4gbmVnYXRpdmUKKyAgICAgICAgY2FzZSByZXR1cm5zIGBub3RT
ZXRgLgorCisgICAgICAgIDIpIEFkZGVkIHRoZSBnZXRDZ3JvdXBGaWxlVmFsdWUoKSBmdW5jdGlv
biB3aGF0IGVuY2Fwc3VsYXRlcyB0aGUKKyAgICAgICAgbWFuaXB1bGF0aW9uIG9mIHRoZSBvcGVu
ZWQgZmlsZXMgaW4gdGhlIGAvc3lzL2ZzL2Nncm91cGAgaGllcmFyY2h5LgorICAgICAgICBUaGlz
IGNoYW5nZSBzaW1wbGlmeSB0aGUgY29kZSBhdm9kaW5nIHVubmVjZXNzYXJ5IGNvZGUgcmVwZXRp
b24uCisKKyAgICAgICAgMykgZ2V0Q2dyb3VwQ29udHJvbGxlclBhdGgoKSBub3cgY2hlY2tzIGlm
IHRoZXJlIGlzIGEgYG5hbWU9c3lzdGVtZGAKKyAgICAgICAgY29udHJvbGxlciBsaXN0ZWQgaW4g
dGhlIGAvcHJvYy9zZWxmL2Nncm91cGAuIFRoaXMgaW1wb3J0YW50IGZvcgorICAgICAgICBjZ3Jv
dXAgdjIgYWN0aXZhdGVkIHdpdGggYHN5c3RlbWQudW5pZmllZF9jZ3JvdXBfaGllcmFyY2h5PXll
c2AKKyAgICAgICAgdGhyb3VnaCB0aGUgTGludXgga2VybmVsIGNtZGxpbmUuIFRoZSB1bmlmaWVk
IGhpZXJhcmNoeSBzaW1wbGllcworICAgICAgICBwYXRoIG9mIHRoZSBjb250cm9sbGVycyB1bmRl
ciB0aGUgc2FtZSBkaXJlY3RvcnkgKGNoZWNrIHRoZQorICAgICAgICAiRGVwcmVjYXRlZCB2MSBD
b3JlIEZlYXR1cmVzIiBzZWN0aW9uIGluIHRoZSBMaW51eCBLZXJuZWwKKyAgICAgICAgZG9jdW1l
bnRhdGlvbiBmaXIgY2dyb3VwIHYyIFsxXSk6CisKKyAgICAgICAgICAgIE11bHRpcGxlIGhpZXJh
cmNoaWVzIGluY2x1ZGluZyBuYW1lZCBvbmVzIGFyZSBub3Qgc3VwcG9ydGVkCisKKyAgICAgICAg
WzFdIGh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL0RvY3VtZW50YXRpb24vY2dyb3VwLXYyLnR4
dAorCisgICAgICAgIDQpIEJlY2F1c2UgMykgdGhlIHBhdGNoIGNvbXBvc2l0ZWQgZm9yIGNncm91
cFYyIGNoYW5nZXMKKyAgICAgICAgZ2V0TWVtb3J5VXNhZ2VXaXRoQ2dyb3VwKCkgc2xpZ2h0bHku
IFRoZSBuYW1lIG9mIHRoZSBjb250cm9sbGVyCisgICAgICAgIGlzIG5vdCBuZWVkZWQgYW55bW9y
ZS4KKworICAgICAgICA1KSBGb3IgY2dyb3VwIHYyLCB0aGUgTWVtb3J5VG90YWwgaXMgY2FsY3Vs
YXRlZCBhcyB0aGUgbWluaW11bQorICAgICAgICBiZXR3ZWVuIG1lbW9yeS5oaWdoIGFuZCBtZW1v
cnkubWF4LgorCisgICAgICAgICogVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRv
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Omxvd1dhdGVybWFya1BhZ2VzKToKKyAgICAgICAgKFdl
YktpdDo6Z2V0Q2dyb3VwRmlsZVZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6Z2V0TWVtb3J5VG90
YWxXaXRoQ2dyb3VwKToKKyAgICAgICAgKFdlYktpdDo6Z2V0TWVtb3J5VXNhZ2VXaXRoQ2dyb3Vw
KToKKyAgICAgICAgKFdlYktpdDo6Z2V0Q2dyb3VwQ29udHJvbGxlclBhdGgpOgorICAgICAgICAo
V2ViS2l0OjpzeXN0ZW1NZW1vcnlVc2VkQXNQZXJjZW50YWdlKToKKyAgICAgICAgKFdlYktpdDo6
Z2V0Q2dyb3VwQ29udHJvbGxlcik6IERlbGV0ZWQuCisKIDIwMjAtMDMtMjYgIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCBzaG91bGQgbWVzc2FnZSBjaGVjayB2aWRlb0xh
eWVySUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVBy
ZXNzdXJlTW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQ
cmVzc3VyZU1vbml0b3IuY3BwCmluZGV4IGQ2OWE2YjhmYTQ2NGRhMzk0NjhkYzY4MTUwZGFhNWM3
OTgyZGQ4ODUuLjRmODhjZDg3NDY0ZDFlYjYzZDU5NGVhYmQzMjFmMDczMzA5N2E3OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVN
b25pdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvVW5pU3RkRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ5LDcgKzUwLDcgQEAgc3RhdGljIGNvbnN0IGludCBz
X21lbW9yeVByZXN1cmVQZXJjZW50YWdlVGhyZXNob2xkID0gOTA7CiBzdGF0aWMgY29uc3QgaW50
IHNfbWVtb3J5UHJlc3VyZVBlcmNlbnRhZ2VUaHJlc2hvbGRDcml0aWNhbCA9IDk1OwogLy8gY2dy
b3Vwcy43OiBUaGUgdXN1YWwgcGxhY2UgZm9yIHN1Y2ggbW91bnRzIGlzIHVuZGVyIGEgdG1wZnMo
NSkKIC8vIGZpbGVzeXN0ZW0gbW91bnRlZCBhdCAvc3lzL2ZzL2Nncm91cC4KLXN0YXRpYyBjb25z
dCBjaGFyKiBzX2Nncm91cE1lbW9yeVBhdGggPSAiL3N5cy9mcy9jZ3JvdXAvbWVtb3J5LyVzLyVz
IjsKK3N0YXRpYyBjb25zdCBjaGFyKiBzX2Nncm91cE1lbW9yeVBhdGggPSAiL3N5cy9mcy9jZ3Jv
dXAvJXMvJXMvJXMiOwogc3RhdGljIGNvbnN0IGNoYXIqIHNfY2dyb3VwQ29udHJvbGxlciA9ICIv
cHJvYy9zZWxmL2Nncm91cCI7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4Q2dyb3VwUGF0aCA9
IDQwOTY7IC8vIFBBVEhfTUFYID0gNDA5NiBmcm9tIChMaW51eCkgaW5jbHVkZS91YXBpL2xpbnV4
L2xpbWl0cy5oCiAKQEAgLTg0LDcgKzg1LDEwIEBAIHN0YXRpYyBzaXplX3QgbG93V2F0ZXJtYXJr
UGFnZXMoKQogICAgICAgICAgICAgICAgIGxvdyA9IG5vdFNldDsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGxvdyArPSBhdG9sbCh0b2tlbik7Cisg
ICAgICAgICAgICBib29sIG9rID0gdHJ1ZTsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0lu
dGVncmFsVHlwZTxzaXplX3Q+KHRva2VuLCBzdHJsZW4odG9rZW4pLCAmb2spOworICAgICAgICAg
ICAgaWYgKG9rKQorICAgICAgICAgICAgICAgIGxvdyArPSB2YWx1ZTsKICAgICAgICAgICAgIGZv
dW5kTG93ID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTEzMiw3NSArMTM2LDc1IEBAIHN0
YXRpYyBzaXplX3QgY2FsY3VsYXRlTWVtb3J5QXZhaWxhYmxlKHNpemVfdCBtZW1vcnlGcmVlLCBz
aXplX3QgYWN0aXZlRmlsZSwgc2l6CiAgICAgcmV0dXJuIG1lbW9yeUF2YWlsYWJsZTsKIH0KIAot
c2l6ZV90IGdldE1lbW9yeVRvdGFsV2l0aENncm91cChDU3RyaW5nIG1lbW9yeUNvbnRyb2xsZXJO
YW1lKQorCitzaXplX3QgZ2V0Q2dyb3VwRmlsZVZhbHVlKENTdHJpbmcgY2dyb3VwQ29udHJvbGxl
ck5hbWUsIENTdHJpbmcgY2dyb3VwQ29udHJvbGxlclBhdGgsIENTdHJpbmcgY2dyb3VwRmlsZU5h
bWUpCiB7CiAgICAgY2hhciBidWZmZXJbMTI4XTsKICAgICBjaGFyIGNncm91cFBhdGhbbWF4Q2dy
b3VwUGF0aF07CiAgICAgY2hhciogdG9rZW47CiAgICAgRklMRSogZmlsZTsKKyAgICBib29sIG9r
ID0gdHJ1ZTsKIAotICAgIC8vIENoZWNrIG1lbW9yeSBsaW1pdHMgaW4gY2dyb3VwVjIKLSAgICBz
bnByaW50ZihjZ3JvdXBQYXRoLCBtYXhDZ3JvdXBQYXRoLCBzX2Nncm91cE1lbW9yeVBhdGgsIG1l
bW9yeUNvbnRyb2xsZXJOYW1lLmRhdGEoKSwgIm1lbW9yeS5tZW1zdy5tYXgiKTsKKyAgICBzbnBy
aW50ZihjZ3JvdXBQYXRoLCBtYXhDZ3JvdXBQYXRoLCBzX2Nncm91cE1lbW9yeVBhdGgsIGNncm91
cENvbnRyb2xsZXJOYW1lLmRhdGEoKSwgY2dyb3VwQ29udHJvbGxlclBhdGguZGF0YSgpLCBjZ3Jv
dXBGaWxlTmFtZS5kYXRhKCkpOwogICAgIGZpbGUgPSBmb3BlbihjZ3JvdXBQYXRoLCAiciIpOwog
ICAgIGlmIChmaWxlKSB7CiAgICAgICAgIHRva2VuID0gZmdldHMoYnVmZmVyLCAxMjgsIGZpbGUp
OwogICAgICAgICBmY2xvc2UoZmlsZSk7Ci0gICAgICAgIHJldHVybiBhdG9sbCh0b2tlbik7Cisg
ICAgICAgIHNpemVfdCB2YWx1ZSA9IHRvSW50ZWdyYWxUeXBlPHNpemVfdD4odG9rZW4sIHN0cmxl
bih0b2tlbiksICZvayk7CisgICAgICAgIGlmICghb2spCisgICAgICAgICAgICB2YWx1ZSA9IG5v
dFNldDsKKyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIH0KLSAgICBzbnByaW50ZihjZ3JvdXBQ
YXRoLCBtYXhDZ3JvdXBQYXRoLCBzX2Nncm91cE1lbW9yeVBhdGgsIG1lbW9yeUNvbnRyb2xsZXJO
YW1lLmRhdGEoKSwgIm1lbW9yeS5tYXgiKTsKLSAgICBmaWxlID0gZm9wZW4oY2dyb3VwUGF0aCwg
InIiKTsKLSAgICBpZiAoZmlsZSkgewotICAgICAgICB0b2tlbiA9IGZnZXRzKGJ1ZmZlciwgMTI4
LCBmaWxlKTsKLSAgICAgICAgZmNsb3NlKGZpbGUpOwotICAgICAgICByZXR1cm4gYXRvbGwodG9r
ZW4pOworICAgIHJldHVybiBub3RTZXQ7Cit9CisKK3NpemVfdCBnZXRNZW1vcnlUb3RhbFdpdGhD
Z3JvdXAoQ1N0cmluZyBtZW1vcnlDb250cm9sbGVyTmFtZSkKK3sKKyAgICBzaXplX3QgdmFsdWUg
PSBub3RTZXQ7CisKKyAgICAvLyBDaGVjayBtZW1vcnkgbGltaXRzIGluIGNncm91cFYyCisgICAg
dmFsdWUgPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIi8iLCBtZW1vcnlDb250cm9sbGVyTmFtZSwgQ1N0
cmluZygibWVtb3J5Lm1lbXN3Lm1heCIpKTsKKyAgICBpZiAodmFsdWUgIT0gbm90U2V0KQorICAg
ICAgICByZXR1cm4gdmFsdWU7CisKKyAgICB2YWx1ZSA9IGdldENncm91cEZpbGVWYWx1ZSgiLyIs
IG1lbW9yeUNvbnRyb2xsZXJOYW1lLCBDU3RyaW5nKCJtZW1vcnkubWF4IikpOworICAgIHNpemVf
dCB2YWx1ZUhpZ2ggPSBnZXRDZ3JvdXBGaWxlVmFsdWUoIi8iLCBtZW1vcnlDb250cm9sbGVyTmFt
ZSwgQ1N0cmluZygibWVtb3J5LmhpZ2giKSk7CisgICAgaWYgKHZhbHVlICE9IG5vdFNldCAmJiB2
YWx1ZUhpZ2ggIT0gbm90U2V0KSB7CisgICAgICAgIHZhbHVlID0gc3RkOjptaW4odmFsdWUsIHZh
bHVlSGlnaCk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICB9CisgICAgaWYgKHZhbHVlSGln
aCAhPSBub3RTZXQpCisgICAgICAgIHJldHVybiB2YWx1ZUhpZ2g7CisgICAgaWYgKHZhbHVlICE9
IG5vdFNldCkKKyAgICAgICAgcmV0dXJuIHZhbHVlOwogCiAgICAgLy8gQ2hlY2sgbWVtb3J5IGxp
bWl0cyBpbiBjZ3JvdXBWMQotICAgIHNucHJpbnRmKGNncm91cFBhdGgsIG1heENncm91cFBhdGgs
IHNfY2dyb3VwTWVtb3J5UGF0aCwgbWVtb3J5Q29udHJvbGxlck5hbWUuZGF0YSgpLCAibWVtb3J5
Lm1lbXN3LmxpbWl0X2luX2J5dGVzIik7Ci0gICAgZmlsZSA9IGZvcGVuKGNncm91cFBhdGgsICJy
Iik7Ci0gICAgaWYgKGZpbGUpIHsKLSAgICAgICAgdG9rZW4gPSBmZ2V0cyhidWZmZXIsIDEyOCwg
ZmlsZSk7Ci0gICAgICAgIGZjbG9zZShmaWxlKTsKLSAgICAgICAgcmV0dXJuIGF0b2xsKHRva2Vu
KTsKLSAgICB9Ci0gICAgc25wcmludGYoY2dyb3VwUGF0aCwgbWF4Q2dyb3VwUGF0aCwgc19jZ3Jv
dXBNZW1vcnlQYXRoLCBtZW1vcnlDb250cm9sbGVyTmFtZS5kYXRhKCksICJtZW1vcnkubGltaXRf
aW5fYnl0ZXMiKTsKLSAgICBmaWxlID0gZm9wZW4oY2dyb3VwUGF0aCwgInIiKTsKLSAgICBpZiAo
ZmlsZSkgewotICAgICAgICB0b2tlbiA9IGZnZXRzKGJ1ZmZlciwgMTI4LCBmaWxlKTsKLSAgICAg
ICAgZmNsb3NlKGZpbGUpOwotICAgICAgICByZXR1cm4gYXRvbGwodG9rZW4pOwotICAgIH0KLSAg
ICByZXR1cm4gMDsKKyAgICB2YWx1ZSA9IGdldENncm91cEZpbGVWYWx1ZSgibWVtb3J5IiwgbWVt
b3J5Q29udHJvbGxlck5hbWUsIENTdHJpbmcoIm1lbW9yeS5tZW1zdy5saW1pdF9pbl9ieXRlcyIp
KTsKKyAgICBpZiAodmFsdWUgIT0gbm90U2V0KQorICAgICAgICByZXR1cm4gdmFsdWU7CisKKyAg
ICB2YWx1ZSA9IGdldENncm91cEZpbGVWYWx1ZSgibWVtb3J5IiwgbWVtb3J5Q29udHJvbGxlck5h
bWUsIENTdHJpbmcoIm1lbW9yeS5saW1pdF9pbl9ieXRlcyIpKTsKKyAgICBpZiAodmFsdWUgIT0g
bm90U2V0KQorICAgICAgICByZXR1cm4gdmFsdWU7CisKKyAgICByZXR1cm4gdmFsdWU7CiB9CiAK
IHN0YXRpYyBzaXplX3QgZ2V0TWVtb3J5VXNhZ2VXaXRoQ2dyb3VwKENTdHJpbmcgbWVtb3J5Q29u
dHJvbGxlck5hbWUpCiB7Ci0gICAgY2hhciBidWZmZXJbMTI4XTsKLSAgICBjaGFyIGNncm91cFBh
dGhbbWF4Q2dyb3VwUGF0aF07Ci0gICAgY2hhciogdG9rZW47Ci0gICAgY2hhciogbGluZTsKLSAg
ICBGSUxFKiBmaWxlQ2dyb3VwUGF0aFVzYWdlQnl0ZXM7CisgICAgc2l6ZV90IHZhbHVlID0gbm90
U2V0OwogCiAgICAgLy8gQ2hlY2sgbWVtb3J5IGxpbWl0cyBpbiBjZ3JvdXBWMgotICAgIHNucHJp
bnRmKGNncm91cFBhdGgsIG1heENncm91cFBhdGgsIHNfY2dyb3VwTWVtb3J5UGF0aCwgbWVtb3J5
Q29udHJvbGxlck5hbWUuZGF0YSgpLCAibWVtb3J5LmN1cnJlbnQiKTsKLSAgICBmaWxlQ2dyb3Vw
UGF0aFVzYWdlQnl0ZXMgPSBmb3BlbihjZ3JvdXBQYXRoLCAiciIpOwotICAgIGlmIChmaWxlQ2dy
b3VwUGF0aFVzYWdlQnl0ZXMpIHsKLSAgICAgICAgbGluZSA9IGZnZXRzKGJ1ZmZlciwgMTI4LCBm
aWxlQ2dyb3VwUGF0aFVzYWdlQnl0ZXMpOwotICAgICAgICB0b2tlbiA9IHN0cnRvayhsaW5lLCAi
ICIpOwotICAgICAgICBmY2xvc2UoZmlsZUNncm91cFBhdGhVc2FnZUJ5dGVzKTsKLSAgICAgICAg
cmV0dXJuIGF0b2xsKHRva2VuKTsKLSAgICB9CisgICAgdmFsdWUgPSBnZXRDZ3JvdXBGaWxlVmFs
dWUoIi8iLCBtZW1vcnlDb250cm9sbGVyTmFtZSwgQ1N0cmluZygibWVtb3J5LmN1cnJlbnQiKSk7
CisgICAgaWYgKHZhbHVlICE9IG5vdFNldCkKKyAgICAgICAgcmV0dXJuIHZhbHVlOwogCiAgICAg
Ly8gQ2hlY2sgbWVtb3J5IGxpbWl0cyBpbiBjZ3JvdXBWMQotICAgIHNucHJpbnRmKGNncm91cFBh
dGgsIG1heENncm91cFBhdGgsIHNfY2dyb3VwTWVtb3J5UGF0aCwgbWVtb3J5Q29udHJvbGxlck5h
bWUuZGF0YSgpLCAibWVtb3J5LnVzYWdlX2luX2J5dGVzIik7Ci0gICAgZmlsZUNncm91cFBhdGhV
c2FnZUJ5dGVzID0gZm9wZW4oY2dyb3VwUGF0aCwgInIiKTsKLSAgICBpZiAoZmlsZUNncm91cFBh
dGhVc2FnZUJ5dGVzKSB7Ci0gICAgICAgIGxpbmUgPSBmZ2V0cyhidWZmZXIsIDEyOCwgZmlsZUNn
cm91cFBhdGhVc2FnZUJ5dGVzKTsKLSAgICAgICAgdG9rZW4gPSBzdHJ0b2sobGluZSwgIiAiKTsK
LSAgICAgICAgZmNsb3NlKGZpbGVDZ3JvdXBQYXRoVXNhZ2VCeXRlcyk7Ci0gICAgICAgIHJldHVy
biBhdG9sbCh0b2tlbik7Ci0gICAgfQotICAgIHJldHVybiAwOworICAgIHZhbHVlID0gZ2V0Q2dy
b3VwRmlsZVZhbHVlKCJtZW1vcnkiLCBtZW1vcnlDb250cm9sbGVyTmFtZSwgQ1N0cmluZygibWVt
b3J5LnVzYWdlX2luX2J5dGVzIikpOworICAgIGlmICh2YWx1ZSAhPSBub3RTZXQpCisgICAgICAg
IHJldHVybiB2YWx1ZTsKKworICAgIHJldHVybiBub3RTZXQ7CiB9CiAKIC8vIFRoaXMgZmlsZSBk
ZXNjcmliZXMgY29udHJvbCBncm91cHMgdG8gd2hpY2ggdGhlIHByb2Nlc3Mgd2l0aApAQCAtMjIz
LDkgKzIyNyw5IEBAIHN0YXRpYyBzaXplX3QgZ2V0TWVtb3J5VXNhZ2VXaXRoQ2dyb3VwKENTdHJp
bmcgbWVtb3J5Q29udHJvbGxlck5hbWUpCiAvLyAyOmNwdXNldDovCiAvLyAxOm5hbWU9c3lzdGVt
ZDovdXNlci5zbGljZS91c2VyLTEwMDAuc2xpY2UvdXNlckAxMDAwLnNlcnZpY2UvZ25vbWUtdGVy
bWluYWwtc2VydmVyLnNlcnZpY2UKIC8vIDA6Oi91c2VyLnNsaWNlL3VzZXItMTAwMC5zbGljZS91
c2VyQDEwMDAuc2VydmljZS9nbm9tZS10ZXJtaW5hbC1zZXJ2ZXIuc2VydmljZQotc3RhdGljIENT
dHJpbmcgZ2V0Q2dyb3VwQ29udHJvbGxlcihjb25zdCBjaGFyKiBjb250cm9sbGVyTmFtZSkKK3N0
YXRpYyBDU3RyaW5nIGdldENncm91cENvbnRyb2xsZXJQYXRoKGNvbnN0IGNoYXIqIGNvbnRyb2xs
ZXJOYW1lKQogewotICAgIENTdHJpbmcgbWVtb3J5Q29udHJvbGxlck5hbWU7CisgICAgQ1N0cmlu
ZyBtZW1vcnlDb250cm9sbGVyUGF0aDsKICAgICBGSUxFKiBmaWxlID0gZm9wZW4oc19jZ3JvdXBD
b250cm9sbGVyLCAiciIpOwogICAgIGlmICghZmlsZSkKICAgICAgICAgcmV0dXJuIENTdHJpbmco
KTsKQEAgLTI0MCwxMyArMjQ0LDE3IEBAIHN0YXRpYyBDU3RyaW5nIGdldENncm91cENvbnRyb2xs
ZXIoY29uc3QgY2hhciogY29udHJvbGxlck5hbWUpCiAgICAgICAgIHRva2VuID0gc3RydG9rKG51
bGxwdHIsICI6Iik7CiAgICAgICAgIGlmICghc3RyY21wKHRva2VuLCBjb250cm9sbGVyTmFtZSkp
IHsKICAgICAgICAgICAgIHRva2VuID0gc3RydG9rKG51bGxwdHIsICI6Iik7Ci0gICAgICAgICAg
ICBtZW1vcnlDb250cm9sbGVyTmFtZSA9IENTdHJpbmcodG9rZW4pOworICAgICAgICAgICAgbWVt
b3J5Q29udHJvbGxlclBhdGggPSBDU3RyaW5nKHRva2VuKTsKICAgICAgICAgICAgIGZjbG9zZShm
aWxlKTsKLSAgICAgICAgICAgIHJldHVybiBtZW1vcnlDb250cm9sbGVyTmFtZTsKKyAgICAgICAg
ICAgIHJldHVybiBtZW1vcnlDb250cm9sbGVyUGF0aDsKKyAgICAgICAgfQorICAgICAgICBpZiAo
IXN0cm5jbXAodG9rZW4sICJuYW1lPXN5c3RlbWQiLCAxMikpIHsKKyAgICAgICAgICAgIHRva2Vu
ID0gc3RydG9rKG51bGxwdHIsICI6Iik7CisgICAgICAgICAgICBtZW1vcnlDb250cm9sbGVyUGF0
aCA9IENTdHJpbmcodG9rZW4pOwogICAgICAgICB9CiAgICAgfQogICAgIGZjbG9zZShmaWxlKTsK
LSAgICByZXR1cm4gQ1N0cmluZygpOworICAgIHJldHVybiBtZW1vcnlDb250cm9sbGVyUGF0aDsK
IH0KIAogCkBAIC0yNjEsMzkgKzI2OSw1MiBAQCBzdGF0aWMgaW50IHN5c3RlbU1lbW9yeVVzZWRB
c1BlcmNlbnRhZ2UoKQogICAgIGNoYXIgYnVmZmVyWzEyOF07CiAgICAgd2hpbGUgKGNoYXIqIGxp
bmUgPSBmZ2V0cyhidWZmZXIsIDEyOCwgZmlsZSkpIHsKICAgICAgICAgY2hhciogdG9rZW4gPSBz
dHJ0b2sobGluZSwgIiAiKTsKKyAgICAgICAgYm9vbCBvayA9IHRydWU7CiAgICAgICAgIGlmICgh
dG9rZW4pCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBpZiAoIXN0cmNtcCh0b2tlbiwg
Ik1lbUF2YWlsYWJsZToiKSkgewogICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRvayhudWxs
cHRyLCAiICIpKSkgewotICAgICAgICAgICAgICAgIG1lbW9yeUF2YWlsYWJsZSA9IGF0b2xsKHRv
a2VuKTsKKyAgICAgICAgICAgICAgICBtZW1vcnlBdmFpbGFibGUgPSB0b0ludGVncmFsVHlwZTxz
aXplX3Q+KHRva2VuLCBzdHJsZW4odG9rZW4pLCAmb2spOworICAgICAgICAgICAgICAgIGlmICgh
b2spCisgICAgICAgICAgICAgICAgICAgIG1lbW9yeUF2YWlsYWJsZSA9IG5vdFNldDsKICAgICAg
ICAgICAgICAgICBpZiAobWVtb3J5VG90YWwgIT0gbm90U2V0KQogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKHRva2Vu
LCAiTWVtVG90YWw6IikpIHsKLSAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0
ciwgIiAiKSkpCi0gICAgICAgICAgICAgICAgbWVtb3J5VG90YWwgPSBhdG9sbCh0b2tlbik7Ci0g
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBpZiAoKHRva2VuID0gc3RydG9rKG51bGxwdHIs
ICIgIikpKSB7CisgICAgICAgICAgICAgICAgbWVtb3J5VG90YWwgPSB0b0ludGVncmFsVHlwZTxz
aXplX3Q+KHRva2VuLCBzdHJsZW4odG9rZW4pLCAmb2spOworICAgICAgICAgICAgICAgIGlmICgh
b2spCisgICAgICAgICAgICAgICAgICAgIG1lbW9yeVRvdGFsID0gbm90U2V0OworICAgICAgICAg
ICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0
cmNtcCh0b2tlbiwgIk1lbUZyZWU6IikpIHsKLSAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0
b2sobnVsbHB0ciwgIiAiKSkpCi0gICAgICAgICAgICAgICAgbWVtb3J5RnJlZSA9IGF0b2xsKHRv
a2VuKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2so
bnVsbHB0ciwgIiAiKSkpIHsKKyAgICAgICAgICAgICAgICBtZW1vcnlGcmVlID0gdG9JbnRlZ3Jh
bFR5cGU8c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAgICAg
ICBpZiAoIW9rKQorICAgICAgICAgICAgICAgICAgICBtZW1vcnlGcmVlID0gbm90U2V0OworICAg
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0gZWxzZSBp
ZiAoIXN0cmNtcCh0b2tlbiwgIkFjdGl2ZShmaWxlKToiKSkgewotICAgICAgICAgICAgaWYgKCh0
b2tlbiA9IHN0cnRvayhudWxscHRyLCAiICIpKSkKLSAgICAgICAgICAgICAgICBhY3RpdmVGaWxl
ID0gYXRvbGwodG9rZW4pOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKCh0b2tl
biA9IHN0cnRvayhudWxscHRyLCAiICIpKSkgeworICAgICAgICAgICAgICAgIGFjdGl2ZUZpbGUg
PSB0b0ludGVncmFsVHlwZTxzaXplX3Q+KHRva2VuLCBzdHJsZW4odG9rZW4pLCAmb2spOworICAg
ICAgICAgICAgICAgIGlmICghb2spCisgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUZpbGUgPSBu
b3RTZXQ7CisgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfSBlbHNlIGlmICghc3RyY21wKHRva2VuLCAiSW5hY3RpdmUoZmlsZSk6IikpIHsKLSAgICAg
ICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIiAiKSkpCi0gICAgICAgICAgICAg
ICAgaW5hY3RpdmVGaWxlID0gYXRvbGwodG9rZW4pOwotICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgaWYgKCh0b2tlbiA9IHN0cnRvayhudWxscHRyLCAiICIpKSkgeworICAgICAgICAgICAg
ICAgIGluYWN0aXZlRmlsZSA9IHRvSW50ZWdyYWxUeXBlPHNpemVfdD4odG9rZW4sIHN0cmxlbih0
b2tlbiksICZvayk7CisgICAgICAgICAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgICAgICAg
ICAgaW5hY3RpdmVGaWxlID0gbm90U2V0OworICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcCh0b2tlbiwgIlNSZWNsYWlt
YWJsZToiKSkgewotICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRvayhudWxscHRyLCAiICIp
KSkKLSAgICAgICAgICAgICAgICBzbGFiUmVjbGFpbWFibGUgPSBhdG9sbCh0b2tlbik7Ci0gICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICBpZiAoKHRva2VuID0gc3RydG9rKG51bGxwdHIsICIg
IikpKSB7CisgICAgICAgICAgICAgICAgc2xhYlJlY2xhaW1hYmxlID0gdG9JbnRlZ3JhbFR5cGU8
c2l6ZV90Pih0b2tlbiwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAgICAgICBpZiAo
IW9rKQorICAgICAgICAgICAgICAgICAgICBzbGFiUmVjbGFpbWFibGUgPSBub3RTZXQ7CisgICAg
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0z
MTUsMTEgKzMzNiwxMSBAQCBzdGF0aWMgaW50IHN5c3RlbU1lbW9yeVVzZWRBc1BlcmNlbnRhZ2Uo
KQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpbnQgbWVtb3J5VXNhZ2VQZXJjZW50YWdlID0g
KChtZW1vcnlUb3RhbCAtIG1lbW9yeUF2YWlsYWJsZSkgKiAxMDApIC8gbWVtb3J5VG90YWw7Ci0g
ICAgQ1N0cmluZyBtZW1vcnlDb250cm9sbGVyTmFtZSA9IGdldENncm91cENvbnRyb2xsZXIoIm1l
bW9yeSIpOwotICAgIGlmICghbWVtb3J5Q29udHJvbGxlck5hbWUuaXNOdWxsKCkpIHsKLSAgICAg
ICAgbWVtb3J5VG90YWwgPSBnZXRNZW1vcnlUb3RhbFdpdGhDZ3JvdXAobWVtb3J5Q29udHJvbGxl
ck5hbWUpOwotICAgICAgICBzaXplX3QgbWVtb3J5VXNhZ2UgPSBnZXRNZW1vcnlVc2FnZVdpdGhD
Z3JvdXAobWVtb3J5Q29udHJvbGxlck5hbWUpOwotICAgICAgICBpZiAobWVtb3J5VG90YWwpIHsK
KyAgICBDU3RyaW5nIG1lbW9yeUNvbnRyb2xsZXJQYXRoID0gZ2V0Q2dyb3VwQ29udHJvbGxlclBh
dGgoIm1lbW9yeSIpOworICAgIGlmICghbWVtb3J5Q29udHJvbGxlclBhdGguaXNOdWxsKCkpIHsK
KyAgICAgICAgbWVtb3J5VG90YWwgPSBnZXRNZW1vcnlUb3RhbFdpdGhDZ3JvdXAobWVtb3J5Q29u
dHJvbGxlclBhdGgpOworICAgICAgICBzaXplX3QgbWVtb3J5VXNhZ2UgPSBnZXRNZW1vcnlVc2Fn
ZVdpdGhDZ3JvdXAobWVtb3J5Q29udHJvbGxlclBhdGgpOworICAgICAgICBpZiAobWVtb3J5VG90
YWwgIT0gbm90U2V0ICYmIG1lbW9yeVVzYWdlICE9IG5vdFNldCkgewogICAgICAgICAgICAgaW50
IG1lbW9yeVVzYWdlUGVyY2VudGFnZVdpdGhDZ3JvdXAgPSAxMDAgKiAoKGZsb2F0KSBtZW1vcnlV
c2FnZSAvIChmbG9hdCkgbWVtb3J5VG90YWwpOwogICAgICAgICAgICAgaWYgKG1lbW9yeVVzYWdl
UGVyY2VudGFnZVdpdGhDZ3JvdXAgPiBtZW1vcnlVc2FnZVBlcmNlbnRhZ2UpCiAgICAgICAgICAg
ICAgICAgbWVtb3J5VXNhZ2VQZXJjZW50YWdlID0gbWVtb3J5VXNhZ2VQZXJjZW50YWdlV2l0aENn
cm91cDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395031</attachid>
            <date>2020-03-31 06:41:52 -0700</date>
            <delta_ts>2020-03-31 07:20:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-209464-20200331154150.patch</filename>
            <type>text/plain</type>
            <size>13466</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE4MWIxNmZkNDExMmNjN2Nl
NjA0MjU2NGQ3ZjFiMjBmNDlhZjc5YTAuLjJjMGE4YjVmNzdmZTJjZDYwODUzNDlkYmE5NmNhZjRl
ZjI5OGJhNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDMtMjYgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgU2V2ZXJhbCByZWZhY3Rv
cmluZ3MgZG9uZSBpbiB0aGUgTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDY0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQWRyaWFuIFBlcmV6IGRlIENhc3Ryby4KKworICAgICAgICAxKSB0b0ludGVncmFs
VHlwZSgpIHBhcnNlcyB0aGUgQy1zdHJpbmcgc3RyIGludGVycHJldGluZyBpdHMgY29udGVudAor
ICAgICAgICBhcyBhbiBgdW5zaWduZWQgbG9uZyBsb25nIGludGAgd2hpY2ggaXMgbW9yZSBhcHBy
b3ByaWF0ZSBmb3IKKyAgICAgICAgdGhlIHNpemVfdCAodW5zaWduZWQgaW50ZWdlciB0eXBlKSB2
YXJpYWJsZXMgdXNlZCBieSB0aGUKKyAgICAgICAgTWVtb3J5UHJlc3N1cmVNb25pdG9yIGZ1bmN0
aW9ucyBpbiBjb3VudGVycG9pbnQgb2YgYXRvbGwoKSB3aGF0CisgICAgICAgIHJldHVybnMgYSBg
bG9uZyBsb25nIGludGAuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxzbyBjb250cm9scyBpZiB0
aGUgcGFyc2luZyB3YXMgc3VjY2VzZnVsLiBJbiBuZWdhdGl2ZQorICAgICAgICBjYXNlIHJldHVy
bnMgYG5vdFNldGAuCisKKyAgICAgICAgMikgQWRkZWQgdGhlIGdldENncm91cEZpbGVWYWx1ZSgp
IGZ1bmN0aW9uIHdoYXQgZW5jYXBzdWxhdGVzIHRoZQorICAgICAgICBtYW5pcHVsYXRpb24gb2Yg
dGhlIG9wZW5lZCBmaWxlcyBpbiB0aGUgYC9zeXMvZnMvY2dyb3VwYCBoaWVyYXJjaHkuCisgICAg
ICAgIFRoaXMgY2hhbmdlIHNpbXBsaWZ5IHRoZSBjb2RlIGF2b2RpbmcgdW5uZWNlc3NhcnkgY29k
ZSByZXBldGlvbi4KKworICAgICAgICAzKSBnZXRDZ3JvdXBDb250cm9sbGVyUGF0aCgpIG5vdyBj
aGVja3MgaWYgdGhlcmUgaXMgYSBgbmFtZT1zeXN0ZW1kYAorICAgICAgICBjb250cm9sbGVyIGxp
c3RlZCBpbiB0aGUgYC9wcm9jL3NlbGYvY2dyb3VwYC4gVGhpcyBpbXBvcnRhbnQgZm9yCisgICAg
ICAgIGNncm91cCB2MiBhY3RpdmF0ZWQgd2l0aCBgc3lzdGVtZC51bmlmaWVkX2Nncm91cF9oaWVy
YXJjaHk9eWVzYAorICAgICAgICB0aHJvdWdoIHRoZSBMaW51eCBrZXJuZWwgY21kbGluZS4gVGhl
IHVuaWZpZWQgaGllcmFyY2h5IHNpbXBsaWVzCisgICAgICAgIHBhdGggb2YgdGhlIGNvbnRyb2xs
ZXJzIHVuZGVyIHRoZSBzYW1lIGRpcmVjdG9yeSAoY2hlY2sgdGhlCisgICAgICAgICJEZXByZWNh
dGVkIHYxIENvcmUgRmVhdHVyZXMiIHNlY3Rpb24gaW4gdGhlIExpbnV4IEtlcm5lbAorICAgICAg
ICBkb2N1bWVudGF0aW9uIGZpciBjZ3JvdXAgdjIgWzFdKToKKworICAgICAgICAgICAgTXVsdGlw
bGUgaGllcmFyY2hpZXMgaW5jbHVkaW5nIG5hbWVkIG9uZXMgYXJlIG5vdCBzdXBwb3J0ZWQKKwor
ICAgICAgICBbMV0gaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvRG9jdW1lbnRhdGlvbi9jZ3Jv
dXAtdjIudHh0CisKKyAgICAgICAgNCkgQmVjYXVzZSAzKSB0aGUgcGF0Y2ggY29tcG9zaXRlZCBm
b3IgY2dyb3VwVjIgY2hhbmdlcworICAgICAgICBnZXRNZW1vcnlVc2FnZVdpdGhDZ3JvdXAoKSBz
bGlnaHRseS4gVGhlIG5hbWUgb2YgdGhlIGNvbnRyb2xsZXIKKyAgICAgICAgaXMgbm90IG5lZWRl
ZCBhbnltb3JlLgorCisgICAgICAgIDUpIEZvciBjZ3JvdXAgdjIsIHRoZSBNZW1vcnlUb3RhbCBp
cyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtCisgICAgICAgIGJldHdlZW4gbWVtb3J5LmhpZ2gg
YW5kIG1lbW9yeS5tYXguCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1
cmVNb25pdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bG93V2F0ZXJtYXJrUGFnZXMpOgorICAg
ICAgICAoV2ViS2l0OjpnZXRDZ3JvdXBGaWxlVmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpnZXRN
ZW1vcnlUb3RhbFdpdGhDZ3JvdXApOgorICAgICAgICAoV2ViS2l0OjpnZXRNZW1vcnlVc2FnZVdp
dGhDZ3JvdXApOgorICAgICAgICAoV2ViS2l0OjpnZXRDZ3JvdXBDb250cm9sbGVyUGF0aCk6Cisg
ICAgICAgIChXZWJLaXQ6OnN5c3RlbU1lbW9yeVVzZWRBc1BlcmNlbnRhZ2UpOgorICAgICAgICAo
V2ViS2l0OjpnZXRDZ3JvdXBDb250cm9sbGVyKTogRGVsZXRlZC4KKwogMjAyMC0wMy0yNiAgRGF2
aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEIHNob3VsZCBtZXNzYWdlIGNoZWNr
IHZpZGVvTGF5ZXJJRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbGludXgv
TWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2xpbnV4
L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHAKaW5kZXggZDY5YTZiOGZhNDY0ZGEzOTQ2OGRjNjgx
NTBkYWE1Yzc5ODJkZDg4NS4uNGY4OGNkODc0NjRkMWViNjNkNTk0ZWFiZDMyMWYwNzMzMDk3YTc5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1
cmVNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQ
cmVzc3VyZU1vbml0b3IuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9VbmlTdGRFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lv
bi5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDksNyArNTAsNyBAQCBzdGF0aWMgY29u
c3QgaW50IHNfbWVtb3J5UHJlc3VyZVBlcmNlbnRhZ2VUaHJlc2hvbGQgPSA5MDsKIHN0YXRpYyBj
b25zdCBpbnQgc19tZW1vcnlQcmVzdXJlUGVyY2VudGFnZVRocmVzaG9sZENyaXRpY2FsID0gOTU7
CiAvLyBjZ3JvdXBzLjc6IFRoZSB1c3VhbCBwbGFjZSBmb3Igc3VjaCBtb3VudHMgaXMgdW5kZXIg
YSB0bXBmcyg1KQogLy8gZmlsZXN5c3RlbSBtb3VudGVkIGF0IC9zeXMvZnMvY2dyb3VwLgotc3Rh
dGljIGNvbnN0IGNoYXIqIHNfY2dyb3VwTWVtb3J5UGF0aCA9ICIvc3lzL2ZzL2Nncm91cC9tZW1v
cnkvJXMvJXMiOworc3RhdGljIGNvbnN0IGNoYXIqIHNfY2dyb3VwTWVtb3J5UGF0aCA9ICIvc3lz
L2ZzL2Nncm91cC8lcy8lcy8lcyI7CiBzdGF0aWMgY29uc3QgY2hhciogc19jZ3JvdXBDb250cm9s
bGVyID0gIi9wcm9jL3NlbGYvY2dyb3VwIjsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhDZ3Jv
dXBQYXRoID0gNDA5NjsgLy8gUEFUSF9NQVggPSA0MDk2IGZyb20gKExpbnV4KSBpbmNsdWRlL3Vh
cGkvbGludXgvbGltaXRzLmgKIApAQCAtODQsNyArODUsMTAgQEAgc3RhdGljIHNpemVfdCBsb3dX
YXRlcm1hcmtQYWdlcygpCiAgICAgICAgICAgICAgICAgbG93ID0gbm90U2V0OwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbG93ICs9IGF0b2xsKHRv
a2VuKTsKKyAgICAgICAgICAgIGJvb2wgb2sgPSB0cnVlOworICAgICAgICAgICAgYXV0byB2YWx1
ZSA9IHRvSW50ZWdyYWxUeXBlPHNpemVfdD4odG9rZW4sIHN0cmxlbih0b2tlbiksICZvayk7Cisg
ICAgICAgICAgICBpZiAob2spCisgICAgICAgICAgICAgICAgbG93ICs9IHZhbHVlOwogICAgICAg
ICAgICAgZm91bmRMb3cgPSB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMTMyLDc1ICsxMzYs
NzUgQEAgc3RhdGljIHNpemVfdCBjYWxjdWxhdGVNZW1vcnlBdmFpbGFibGUoc2l6ZV90IG1lbW9y
eUZyZWUsIHNpemVfdCBhY3RpdmVGaWxlLCBzaXoKICAgICByZXR1cm4gbWVtb3J5QXZhaWxhYmxl
OwogfQogCi1zaXplX3QgZ2V0TWVtb3J5VG90YWxXaXRoQ2dyb3VwKENTdHJpbmcgbWVtb3J5Q29u
dHJvbGxlck5hbWUpCisKK3NpemVfdCBnZXRDZ3JvdXBGaWxlVmFsdWUoQ1N0cmluZyBjZ3JvdXBD
b250cm9sbGVyTmFtZSwgQ1N0cmluZyBjZ3JvdXBDb250cm9sbGVyUGF0aCwgQ1N0cmluZyBjZ3Jv
dXBGaWxlTmFtZSkKIHsKICAgICBjaGFyIGJ1ZmZlclsxMjhdOwogICAgIGNoYXIgY2dyb3VwUGF0
aFttYXhDZ3JvdXBQYXRoXTsKICAgICBjaGFyKiB0b2tlbjsKICAgICBGSUxFKiBmaWxlOworICAg
IGJvb2wgb2sgPSB0cnVlOwogCi0gICAgLy8gQ2hlY2sgbWVtb3J5IGxpbWl0cyBpbiBjZ3JvdXBW
MgotICAgIHNucHJpbnRmKGNncm91cFBhdGgsIG1heENncm91cFBhdGgsIHNfY2dyb3VwTWVtb3J5
UGF0aCwgbWVtb3J5Q29udHJvbGxlck5hbWUuZGF0YSgpLCAibWVtb3J5Lm1lbXN3Lm1heCIpOwor
ICAgIHNucHJpbnRmKGNncm91cFBhdGgsIG1heENncm91cFBhdGgsIHNfY2dyb3VwTWVtb3J5UGF0
aCwgY2dyb3VwQ29udHJvbGxlck5hbWUuZGF0YSgpLCBjZ3JvdXBDb250cm9sbGVyUGF0aC5kYXRh
KCksIGNncm91cEZpbGVOYW1lLmRhdGEoKSk7CiAgICAgZmlsZSA9IGZvcGVuKGNncm91cFBhdGgs
ICJyIik7CiAgICAgaWYgKGZpbGUpIHsKICAgICAgICAgdG9rZW4gPSBmZ2V0cyhidWZmZXIsIDEy
OCwgZmlsZSk7CiAgICAgICAgIGZjbG9zZShmaWxlKTsKLSAgICAgICAgcmV0dXJuIGF0b2xsKHRv
a2VuKTsKKyAgICAgICAgc2l6ZV90IHZhbHVlID0gdG9JbnRlZ3JhbFR5cGU8c2l6ZV90Pih0b2tl
biwgc3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgIHZh
bHVlID0gbm90U2V0OworICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgfQotICAgIHNucHJpbnRm
KGNncm91cFBhdGgsIG1heENncm91cFBhdGgsIHNfY2dyb3VwTWVtb3J5UGF0aCwgbWVtb3J5Q29u
dHJvbGxlck5hbWUuZGF0YSgpLCAibWVtb3J5Lm1heCIpOwotICAgIGZpbGUgPSBmb3BlbihjZ3Jv
dXBQYXRoLCAiciIpOwotICAgIGlmIChmaWxlKSB7Ci0gICAgICAgIHRva2VuID0gZmdldHMoYnVm
ZmVyLCAxMjgsIGZpbGUpOwotICAgICAgICBmY2xvc2UoZmlsZSk7Ci0gICAgICAgIHJldHVybiBh
dG9sbCh0b2tlbik7CisgICAgcmV0dXJuIG5vdFNldDsKK30KKworc2l6ZV90IGdldE1lbW9yeVRv
dGFsV2l0aENncm91cChDU3RyaW5nIG1lbW9yeUNvbnRyb2xsZXJOYW1lKQoreworICAgIHNpemVf
dCB2YWx1ZSA9IG5vdFNldDsKKworICAgIC8vIENoZWNrIG1lbW9yeSBsaW1pdHMgaW4gY2dyb3Vw
VjIKKyAgICB2YWx1ZSA9IGdldENncm91cEZpbGVWYWx1ZSgiLyIsIG1lbW9yeUNvbnRyb2xsZXJO
YW1lLCBDU3RyaW5nKCJtZW1vcnkubWVtc3cubWF4IikpOworICAgIGlmICh2YWx1ZSAhPSBub3RT
ZXQpCisgICAgICAgIHJldHVybiB2YWx1ZTsKKworICAgIHZhbHVlID0gZ2V0Q2dyb3VwRmlsZVZh
bHVlKCIvIiwgbWVtb3J5Q29udHJvbGxlck5hbWUsIENTdHJpbmcoIm1lbW9yeS5tYXgiKSk7Cisg
ICAgc2l6ZV90IHZhbHVlSGlnaCA9IGdldENncm91cEZpbGVWYWx1ZSgiLyIsIG1lbW9yeUNvbnRy
b2xsZXJOYW1lLCBDU3RyaW5nKCJtZW1vcnkuaGlnaCIpKTsKKyAgICBpZiAodmFsdWUgIT0gbm90
U2V0ICYmIHZhbHVlSGlnaCAhPSBub3RTZXQpIHsKKyAgICAgICAgdmFsdWUgPSBzdGQ6Om1pbih2
YWx1ZSwgdmFsdWVIaWdoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIH0KKyAgICBpZiAo
dmFsdWVIaWdoICE9IG5vdFNldCkKKyAgICAgICAgcmV0dXJuIHZhbHVlSGlnaDsKKyAgICBpZiAo
dmFsdWUgIT0gbm90U2V0KQorICAgICAgICByZXR1cm4gdmFsdWU7CiAKICAgICAvLyBDaGVjayBt
ZW1vcnkgbGltaXRzIGluIGNncm91cFYxCi0gICAgc25wcmludGYoY2dyb3VwUGF0aCwgbWF4Q2dy
b3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBtZW1vcnlDb250cm9sbGVyTmFtZS5kYXRhKCks
ICJtZW1vcnkubWVtc3cubGltaXRfaW5fYnl0ZXMiKTsKLSAgICBmaWxlID0gZm9wZW4oY2dyb3Vw
UGF0aCwgInIiKTsKLSAgICBpZiAoZmlsZSkgewotICAgICAgICB0b2tlbiA9IGZnZXRzKGJ1ZmZl
ciwgMTI4LCBmaWxlKTsKLSAgICAgICAgZmNsb3NlKGZpbGUpOwotICAgICAgICByZXR1cm4gYXRv
bGwodG9rZW4pOwotICAgIH0KLSAgICBzbnByaW50ZihjZ3JvdXBQYXRoLCBtYXhDZ3JvdXBQYXRo
LCBzX2Nncm91cE1lbW9yeVBhdGgsIG1lbW9yeUNvbnRyb2xsZXJOYW1lLmRhdGEoKSwgIm1lbW9y
eS5saW1pdF9pbl9ieXRlcyIpOwotICAgIGZpbGUgPSBmb3BlbihjZ3JvdXBQYXRoLCAiciIpOwot
ICAgIGlmIChmaWxlKSB7Ci0gICAgICAgIHRva2VuID0gZmdldHMoYnVmZmVyLCAxMjgsIGZpbGUp
OwotICAgICAgICBmY2xvc2UoZmlsZSk7Ci0gICAgICAgIHJldHVybiBhdG9sbCh0b2tlbik7Ci0g
ICAgfQotICAgIHJldHVybiAwOworICAgIHZhbHVlID0gZ2V0Q2dyb3VwRmlsZVZhbHVlKCJtZW1v
cnkiLCBtZW1vcnlDb250cm9sbGVyTmFtZSwgQ1N0cmluZygibWVtb3J5Lm1lbXN3LmxpbWl0X2lu
X2J5dGVzIikpOworICAgIGlmICh2YWx1ZSAhPSBub3RTZXQpCisgICAgICAgIHJldHVybiB2YWx1
ZTsKKworICAgIHZhbHVlID0gZ2V0Q2dyb3VwRmlsZVZhbHVlKCJtZW1vcnkiLCBtZW1vcnlDb250
cm9sbGVyTmFtZSwgQ1N0cmluZygibWVtb3J5LmxpbWl0X2luX2J5dGVzIikpOworICAgIGlmICh2
YWx1ZSAhPSBub3RTZXQpCisgICAgICAgIHJldHVybiB2YWx1ZTsKKworICAgIHJldHVybiB2YWx1
ZTsKIH0KIAogc3RhdGljIHNpemVfdCBnZXRNZW1vcnlVc2FnZVdpdGhDZ3JvdXAoQ1N0cmluZyBt
ZW1vcnlDb250cm9sbGVyTmFtZSkKIHsKLSAgICBjaGFyIGJ1ZmZlclsxMjhdOwotICAgIGNoYXIg
Y2dyb3VwUGF0aFttYXhDZ3JvdXBQYXRoXTsKLSAgICBjaGFyKiB0b2tlbjsKLSAgICBjaGFyKiBs
aW5lOwotICAgIEZJTEUqIGZpbGVDZ3JvdXBQYXRoVXNhZ2VCeXRlczsKKyAgICBzaXplX3QgdmFs
dWUgPSBub3RTZXQ7CiAKICAgICAvLyBDaGVjayBtZW1vcnkgbGltaXRzIGluIGNncm91cFYyCi0g
ICAgc25wcmludGYoY2dyb3VwUGF0aCwgbWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRo
LCBtZW1vcnlDb250cm9sbGVyTmFtZS5kYXRhKCksICJtZW1vcnkuY3VycmVudCIpOwotICAgIGZp
bGVDZ3JvdXBQYXRoVXNhZ2VCeXRlcyA9IGZvcGVuKGNncm91cFBhdGgsICJyIik7Ci0gICAgaWYg
KGZpbGVDZ3JvdXBQYXRoVXNhZ2VCeXRlcykgewotICAgICAgICBsaW5lID0gZmdldHMoYnVmZmVy
LCAxMjgsIGZpbGVDZ3JvdXBQYXRoVXNhZ2VCeXRlcyk7Ci0gICAgICAgIHRva2VuID0gc3RydG9r
KGxpbmUsICIgIik7Ci0gICAgICAgIGZjbG9zZShmaWxlQ2dyb3VwUGF0aFVzYWdlQnl0ZXMpOwot
ICAgICAgICByZXR1cm4gYXRvbGwodG9rZW4pOwotICAgIH0KKyAgICB2YWx1ZSA9IGdldENncm91
cEZpbGVWYWx1ZSgiLyIsIG1lbW9yeUNvbnRyb2xsZXJOYW1lLCBDU3RyaW5nKCJtZW1vcnkuY3Vy
cmVudCIpKTsKKyAgICBpZiAodmFsdWUgIT0gbm90U2V0KQorICAgICAgICByZXR1cm4gdmFsdWU7
CiAKICAgICAvLyBDaGVjayBtZW1vcnkgbGltaXRzIGluIGNncm91cFYxCi0gICAgc25wcmludGYo
Y2dyb3VwUGF0aCwgbWF4Q2dyb3VwUGF0aCwgc19jZ3JvdXBNZW1vcnlQYXRoLCBtZW1vcnlDb250
cm9sbGVyTmFtZS5kYXRhKCksICJtZW1vcnkudXNhZ2VfaW5fYnl0ZXMiKTsKLSAgICBmaWxlQ2dy
b3VwUGF0aFVzYWdlQnl0ZXMgPSBmb3BlbihjZ3JvdXBQYXRoLCAiciIpOwotICAgIGlmIChmaWxl
Q2dyb3VwUGF0aFVzYWdlQnl0ZXMpIHsKLSAgICAgICAgbGluZSA9IGZnZXRzKGJ1ZmZlciwgMTI4
LCBmaWxlQ2dyb3VwUGF0aFVzYWdlQnl0ZXMpOwotICAgICAgICB0b2tlbiA9IHN0cnRvayhsaW5l
LCAiICIpOwotICAgICAgICBmY2xvc2UoZmlsZUNncm91cFBhdGhVc2FnZUJ5dGVzKTsKLSAgICAg
ICAgcmV0dXJuIGF0b2xsKHRva2VuKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7CisgICAgdmFsdWUg
PSBnZXRDZ3JvdXBGaWxlVmFsdWUoIm1lbW9yeSIsIG1lbW9yeUNvbnRyb2xsZXJOYW1lLCBDU3Ry
aW5nKCJtZW1vcnkudXNhZ2VfaW5fYnl0ZXMiKSk7CisgICAgaWYgKHZhbHVlICE9IG5vdFNldCkK
KyAgICAgICAgcmV0dXJuIHZhbHVlOworCisgICAgcmV0dXJuIG5vdFNldDsKIH0KIAogLy8gVGhp
cyBmaWxlIGRlc2NyaWJlcyBjb250cm9sIGdyb3VwcyB0byB3aGljaCB0aGUgcHJvY2VzcyB3aXRo
CkBAIC0yMjMsOSArMjI3LDkgQEAgc3RhdGljIHNpemVfdCBnZXRNZW1vcnlVc2FnZVdpdGhDZ3Jv
dXAoQ1N0cmluZyBtZW1vcnlDb250cm9sbGVyTmFtZSkKIC8vIDI6Y3B1c2V0Oi8KIC8vIDE6bmFt
ZT1zeXN0ZW1kOi91c2VyLnNsaWNlL3VzZXItMTAwMC5zbGljZS91c2VyQDEwMDAuc2VydmljZS9n
bm9tZS10ZXJtaW5hbC1zZXJ2ZXIuc2VydmljZQogLy8gMDo6L3VzZXIuc2xpY2UvdXNlci0xMDAw
LnNsaWNlL3VzZXJAMTAwMC5zZXJ2aWNlL2dub21lLXRlcm1pbmFsLXNlcnZlci5zZXJ2aWNlCi1z
dGF0aWMgQ1N0cmluZyBnZXRDZ3JvdXBDb250cm9sbGVyKGNvbnN0IGNoYXIqIGNvbnRyb2xsZXJO
YW1lKQorc3RhdGljIENTdHJpbmcgZ2V0Q2dyb3VwQ29udHJvbGxlclBhdGgoY29uc3QgY2hhciog
Y29udHJvbGxlck5hbWUpCiB7Ci0gICAgQ1N0cmluZyBtZW1vcnlDb250cm9sbGVyTmFtZTsKKyAg
ICBDU3RyaW5nIG1lbW9yeUNvbnRyb2xsZXJQYXRoOwogICAgIEZJTEUqIGZpbGUgPSBmb3Blbihz
X2Nncm91cENvbnRyb2xsZXIsICJyIik7CiAgICAgaWYgKCFmaWxlKQogICAgICAgICByZXR1cm4g
Q1N0cmluZygpOwpAQCAtMjQwLDEzICsyNDQsMTcgQEAgc3RhdGljIENTdHJpbmcgZ2V0Q2dyb3Vw
Q29udHJvbGxlcihjb25zdCBjaGFyKiBjb250cm9sbGVyTmFtZSkKICAgICAgICAgdG9rZW4gPSBz
dHJ0b2sobnVsbHB0ciwgIjoiKTsKICAgICAgICAgaWYgKCFzdHJjbXAodG9rZW4sIGNvbnRyb2xs
ZXJOYW1lKSkgewogICAgICAgICAgICAgdG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIjoiKTsKLSAg
ICAgICAgICAgIG1lbW9yeUNvbnRyb2xsZXJOYW1lID0gQ1N0cmluZyh0b2tlbik7CisgICAgICAg
ICAgICBtZW1vcnlDb250cm9sbGVyUGF0aCA9IENTdHJpbmcodG9rZW4pOwogICAgICAgICAgICAg
ZmNsb3NlKGZpbGUpOwotICAgICAgICAgICAgcmV0dXJuIG1lbW9yeUNvbnRyb2xsZXJOYW1lOwor
ICAgICAgICAgICAgcmV0dXJuIG1lbW9yeUNvbnRyb2xsZXJQYXRoOworICAgICAgICB9CisgICAg
ICAgIGlmICghc3RybmNtcCh0b2tlbiwgIm5hbWU9c3lzdGVtZCIsIDEyKSkgeworICAgICAgICAg
ICAgdG9rZW4gPSBzdHJ0b2sobnVsbHB0ciwgIjoiKTsKKyAgICAgICAgICAgIG1lbW9yeUNvbnRy
b2xsZXJQYXRoID0gQ1N0cmluZyh0b2tlbik7CiAgICAgICAgIH0KICAgICB9CiAgICAgZmNsb3Nl
KGZpbGUpOwotICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgcmV0dXJuIG1lbW9yeUNvbnRyb2xs
ZXJQYXRoOwogfQogCiAKQEAgLTI2MSwzOSArMjY5LDUyIEBAIHN0YXRpYyBpbnQgc3lzdGVtTWVt
b3J5VXNlZEFzUGVyY2VudGFnZSgpCiAgICAgY2hhciBidWZmZXJbMTI4XTsKICAgICB3aGlsZSAo
Y2hhciogbGluZSA9IGZnZXRzKGJ1ZmZlciwgMTI4LCBmaWxlKSkgewogICAgICAgICBjaGFyKiB0
b2tlbiA9IHN0cnRvayhsaW5lLCAiICIpOworICAgICAgICBib29sIG9rID0gdHJ1ZTsKICAgICAg
ICAgaWYgKCF0b2tlbikKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGlmICghc3RyY21w
KHRva2VuLCAiTWVtQXZhaWxhYmxlOiIpKSB7CiAgICAgICAgICAgICBpZiAoKHRva2VuID0gc3Ry
dG9rKG51bGxwdHIsICIgIikpKSB7Ci0gICAgICAgICAgICAgICAgbWVtb3J5QXZhaWxhYmxlID0g
YXRvbGwodG9rZW4pOworICAgICAgICAgICAgICAgIG1lbW9yeUF2YWlsYWJsZSA9IHRvSW50ZWdy
YWxUeXBlPHNpemVfdD4odG9rZW4sIHN0cmxlbih0b2tlbiksICZvayk7CisgICAgICAgICAgICAg
ICAgaWYgKCFvaykKKyAgICAgICAgICAgICAgICAgICAgbWVtb3J5QXZhaWxhYmxlID0gbm90U2V0
OwogICAgICAgICAgICAgICAgIGlmIChtZW1vcnlUb3RhbCAhPSBub3RTZXQpCiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKCFzdHJj
bXAodG9rZW4sICJNZW1Ub3RhbDoiKSkgewotICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRv
ayhudWxscHRyLCAiICIpKSkKLSAgICAgICAgICAgICAgICBtZW1vcnlUb3RhbCA9IGF0b2xsKHRv
a2VuKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2so
bnVsbHB0ciwgIiAiKSkpIHsKKyAgICAgICAgICAgICAgICBtZW1vcnlUb3RhbCA9IHRvSW50ZWdy
YWxUeXBlPHNpemVfdD4odG9rZW4sIHN0cmxlbih0b2tlbiksICZvayk7CisgICAgICAgICAgICAg
ICAgaWYgKCFvaykKKyAgICAgICAgICAgICAgICAgICAgbWVtb3J5VG90YWwgPSBub3RTZXQ7Cisg
ICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfSBlbHNl
IGlmICghc3RyY21wKHRva2VuLCAiTWVtRnJlZToiKSkgewotICAgICAgICAgICAgaWYgKCh0b2tl
biA9IHN0cnRvayhudWxscHRyLCAiICIpKSkKLSAgICAgICAgICAgICAgICBtZW1vcnlGcmVlID0g
YXRvbGwodG9rZW4pOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKCh0b2tlbiA9
IHN0cnRvayhudWxscHRyLCAiICIpKSkgeworICAgICAgICAgICAgICAgIG1lbW9yeUZyZWUgPSB0
b0ludGVncmFsVHlwZTxzaXplX3Q+KHRva2VuLCBzdHJsZW4odG9rZW4pLCAmb2spOworICAgICAg
ICAgICAgICAgIGlmICghb2spCisgICAgICAgICAgICAgICAgICAgIG1lbW9yeUZyZWUgPSBub3RT
ZXQ7CisgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fSBlbHNlIGlmICghc3RyY21wKHRva2VuLCAiQWN0aXZlKGZpbGUpOiIpKSB7Ci0gICAgICAgICAg
ICBpZiAoKHRva2VuID0gc3RydG9rKG51bGxwdHIsICIgIikpKQotICAgICAgICAgICAgICAgIGFj
dGl2ZUZpbGUgPSBhdG9sbCh0b2tlbik7Ci0gICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBp
ZiAoKHRva2VuID0gc3RydG9rKG51bGxwdHIsICIgIikpKSB7CisgICAgICAgICAgICAgICAgYWN0
aXZlRmlsZSA9IHRvSW50ZWdyYWxUeXBlPHNpemVfdD4odG9rZW4sIHN0cmxlbih0b2tlbiksICZv
ayk7CisgICAgICAgICAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgICAgICAgICAgYWN0aXZl
RmlsZSA9IG5vdFNldDsKKyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAodG9rZW4sICJJbmFjdGl2ZShmaWxlKToiKSkg
ewotICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHN0cnRvayhudWxscHRyLCAiICIpKSkKLSAgICAg
ICAgICAgICAgICBpbmFjdGl2ZUZpbGUgPSBhdG9sbCh0b2tlbik7Ci0gICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICBpZiAoKHRva2VuID0gc3RydG9rKG51bGxwdHIsICIgIikpKSB7CisgICAg
ICAgICAgICAgICAgaW5hY3RpdmVGaWxlID0gdG9JbnRlZ3JhbFR5cGU8c2l6ZV90Pih0b2tlbiwg
c3RybGVuKHRva2VuKSwgJm9rKTsKKyAgICAgICAgICAgICAgICBpZiAoIW9rKQorICAgICAgICAg
ICAgICAgICAgICBpbmFjdGl2ZUZpbGUgPSBub3RTZXQ7CisgICAgICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKHRva2VuLCAi
U1JlY2xhaW1hYmxlOiIpKSB7Ci0gICAgICAgICAgICBpZiAoKHRva2VuID0gc3RydG9rKG51bGxw
dHIsICIgIikpKQotICAgICAgICAgICAgICAgIHNsYWJSZWNsYWltYWJsZSA9IGF0b2xsKHRva2Vu
KTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlmICgodG9rZW4gPSBzdHJ0b2sobnVs
bHB0ciwgIiAiKSkpIHsKKyAgICAgICAgICAgICAgICBzbGFiUmVjbGFpbWFibGUgPSB0b0ludGVn
cmFsVHlwZTxzaXplX3Q+KHRva2VuLCBzdHJsZW4odG9rZW4pLCAmb2spOworICAgICAgICAgICAg
ICAgIGlmICghb2spCisgICAgICAgICAgICAgICAgICAgIHNsYWJSZWNsYWltYWJsZSA9IG5vdFNl
dDsKKyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAKQEAgLTMxNSwxMSArMzM2LDExIEBAIHN0YXRpYyBpbnQgc3lzdGVtTWVtb3J5VXNlZEFzUGVy
Y2VudGFnZSgpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGludCBtZW1vcnlVc2FnZVBlcmNl
bnRhZ2UgPSAoKG1lbW9yeVRvdGFsIC0gbWVtb3J5QXZhaWxhYmxlKSAqIDEwMCkgLyBtZW1vcnlU
b3RhbDsKLSAgICBDU3RyaW5nIG1lbW9yeUNvbnRyb2xsZXJOYW1lID0gZ2V0Q2dyb3VwQ29udHJv
bGxlcigibWVtb3J5Iik7Ci0gICAgaWYgKCFtZW1vcnlDb250cm9sbGVyTmFtZS5pc051bGwoKSkg
ewotICAgICAgICBtZW1vcnlUb3RhbCA9IGdldE1lbW9yeVRvdGFsV2l0aENncm91cChtZW1vcnlD
b250cm9sbGVyTmFtZSk7Ci0gICAgICAgIHNpemVfdCBtZW1vcnlVc2FnZSA9IGdldE1lbW9yeVVz
YWdlV2l0aENncm91cChtZW1vcnlDb250cm9sbGVyTmFtZSk7Ci0gICAgICAgIGlmIChtZW1vcnlU
b3RhbCkgeworICAgIENTdHJpbmcgbWVtb3J5Q29udHJvbGxlclBhdGggPSBnZXRDZ3JvdXBDb250
cm9sbGVyUGF0aCgibWVtb3J5Iik7CisgICAgaWYgKCFtZW1vcnlDb250cm9sbGVyUGF0aC5pc051
bGwoKSkgeworICAgICAgICBtZW1vcnlUb3RhbCA9IGdldE1lbW9yeVRvdGFsV2l0aENncm91cCht
ZW1vcnlDb250cm9sbGVyUGF0aCk7CisgICAgICAgIHNpemVfdCBtZW1vcnlVc2FnZSA9IGdldE1l
bW9yeVVzYWdlV2l0aENncm91cChtZW1vcnlDb250cm9sbGVyUGF0aCk7CisgICAgICAgIGlmICht
ZW1vcnlUb3RhbCAhPSBub3RTZXQgJiYgbWVtb3J5VXNhZ2UgIT0gbm90U2V0KSB7CiAgICAgICAg
ICAgICBpbnQgbWVtb3J5VXNhZ2VQZXJjZW50YWdlV2l0aENncm91cCA9IDEwMCAqICgoZmxvYXQp
IG1lbW9yeVVzYWdlIC8gKGZsb2F0KSBtZW1vcnlUb3RhbCk7CiAgICAgICAgICAgICBpZiAobWVt
b3J5VXNhZ2VQZXJjZW50YWdlV2l0aENncm91cCA+IG1lbW9yeVVzYWdlUGVyY2VudGFnZSkKICAg
ICAgICAgICAgICAgICBtZW1vcnlVc2FnZVBlcmNlbnRhZ2UgPSBtZW1vcnlVc2FnZVBlcmNlbnRh
Z2VXaXRoQ2dyb3VwOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>