<?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>230331</bug_id>
          
          <creation_ts>2021-09-15 17:35:48 -0700</creation_ts>
          <short_desc>Various tweaks in preparation for Temporal.Instant</short_desc>
          <delta_ts>2021-09-23 14:51:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>229826</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philip Chimento">philip.chimento</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>philip.chimento</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1793917</commentid>
    <comment_count>0</comment_count>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-15 17:35:48 -0700</bug_when>
    <thetext>Various tweaks in preparation for Temporal.Instant</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793918</commentid>
    <comment_count>1</comment_count>
      <attachid>438310</attachid>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-15 17:37:33 -0700</bug_when>
    <thetext>Created attachment 438310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793930</commentid>
    <comment_count>2</comment_count>
      <attachid>438310</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-15 18:31:56 -0700</bug_when>
    <thetext>Comment on attachment 438310
Patch

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

&gt; Source/JavaScriptCore/runtime/TemporalDuration.cpp:146
&gt; -            throwRangeError(globalObject, scope, &quot;Could not parse Duration string&quot;_s);
&gt; +            throwRangeError(globalObject, scope, makeString(&quot;&apos;&quot;_s, string, &quot;&apos; is not a valid Duration string&quot;_s));

Need to handle the case string is INT32_MAX size already.
We need to truncate the string if it is too long.

&gt; Source/JavaScriptCore/runtime/TemporalObject.cpp:65
&gt; -static JSValue createNowObject(VM&amp; vm, JSObject* object)
&gt; +static JSValue createDurationConstructor(VM&amp; vm, JSObject* object)
&gt;  {
&gt;      TemporalObject* temporalObject = jsCast&lt;TemporalObject*&gt;(object);
&gt;      JSGlobalObject* globalObject = temporalObject-&gt;globalObject(vm);
&gt; -    return TemporalNow::create(vm, TemporalNow::createStructure(vm, globalObject));
&gt; +    return TemporalDurationConstructor::create(vm, TemporalDurationConstructor::createStructure(vm, globalObject, globalObject-&gt;functionPrototype()), jsCast&lt;TemporalDurationPrototype*&gt;(globalObject-&gt;durationStructure()-&gt;storedPrototypeObject()));
&gt;  }
&gt;  
&gt; -static JSValue createDurationConstructor(VM&amp; vm, JSObject* object)
&gt; +static JSValue createNowObject(VM&amp; vm, JSObject* object)
&gt;  {
&gt;      TemporalObject* temporalObject = jsCast&lt;TemporalObject*&gt;(object);
&gt;      JSGlobalObject* globalObject = temporalObject-&gt;globalObject(vm);
&gt; -    return TemporalDurationConstructor::create(vm, TemporalDurationConstructor::createStructure(vm, globalObject, globalObject-&gt;functionPrototype()), jsCast&lt;TemporalDurationPrototype*&gt;(globalObject-&gt;durationStructure()-&gt;storedPrototypeObject()));
&gt; +    return TemporalNow::create(vm, TemporalNow::createStructure(vm, globalObject));
&gt;  }
&gt;  

I don&apos;t think these changes are necessary.

&gt; Source/JavaScriptCore/runtime/TemporalObject.cpp:171
&gt; +String temporalUnitToString(TemporalUnit unit)
&gt; +{
&gt; +    switch (unit) {
&gt; +    case TemporalUnit::Year: return &quot;year&quot;_s;
&gt; +    case TemporalUnit::Month: return &quot;month&quot;_s;
&gt; +    case TemporalUnit::Week: return &quot;week&quot;_s;
&gt; +    case TemporalUnit::Day: return &quot;day&quot;_s;
&gt; +    case TemporalUnit::Hour: return &quot;hour&quot;_s;
&gt; +    case TemporalUnit::Minute: return &quot;minute&quot;_s;
&gt; +    case TemporalUnit::Second: return &quot;second&quot;_s;
&gt; +    case TemporalUnit::Millisecond: return &quot;millisecond&quot;_s;
&gt; +    case TemporalUnit::Microsecond: return &quot;microsecond&quot;_s;
&gt; +    case TemporalUnit::Nanosecond: return &quot;nanosecond&quot;_s;
&gt; +    }
&gt; +    ASSERT_NOT_REACHED();
&gt; +}

Use TemporalDuration.cpp&apos;s propertyName.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793931</commentid>
    <comment_count>3</comment_count>
      <attachid>438310</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-15 18:32:41 -0700</bug_when>
    <thetext>Comment on attachment 438310
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/TemporalDuration.cpp:146
&gt;&gt; +            throwRangeError(globalObject, scope, makeString(&quot;&apos;&quot;_s, string, &quot;&apos; is not a valid Duration string&quot;_s));
&gt; 
&gt; Need to handle the case string is INT32_MAX size already.
&gt; We need to truncate the string if it is too long.

Can you add a test passing super long string? `&quot;T&quot;.repeat(int32_max)`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793937</commentid>
    <comment_count>4</comment_count>
      <attachid>438310</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-09-15 19:30:10 -0700</bug_when>
    <thetext>Comment on attachment 438310
Patch

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

&gt; Source/JavaScriptCore/runtime/ISO8601.h:65
&gt; +    double&amp; operator[](TemporalUnit u) { return m_data[static_cast&lt;uint8_t&gt;(u)]; }
&gt; +    const double&amp; operator[](TemporalUnit u) const { return m_data[static_cast&lt;uint8_t&gt;(u)]; }

Hmm, it doesn&apos;t seem like you&apos;re using this in this patch, though -- I think it should be added just when the need arises.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794285</commentid>
    <comment_count>5</comment_count>
      <attachid>438421</attachid>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-16 17:54:13 -0700</bug_when>
    <thetext>Created attachment 438421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794286</commentid>
    <comment_count>6</comment_count>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-16 17:56:23 -0700</bug_when>
    <thetext>Thanks for the reviews. I&apos;ve removed the functions that are not directly used in this patch. That combined with rebasing this over recent changes has made this patch much smaller :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794481</commentid>
    <comment_count>7</comment_count>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-17 10:07:07 -0700</bug_when>
    <thetext>Any idea why the `&quot;T&quot;.repeat(int32_max)` test might be crashing on armv7?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796238</commentid>
    <comment_count>8</comment_count>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-22 15:36:49 -0700</bug_when>
    <thetext>(In reply to Philip Chimento from comment #7)
&gt; Any idea why the `&quot;T&quot;.repeat(int32_max)` test might be crashing on armv7?

I am reasonably sure now this is because the EWS bots just run out of memory when you do this. The tests seem to crash with SIGKILL not SIGSEGV. I&apos;ve been trying this on a rpi4 and I also get SIGKILL when just running `&apos;T&apos;.repeat(2147483647)` at the JSC shell prompt. So maybe we shouldn&apos;t have this test after all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796295</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-22 17:36:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/83425035&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796303</commentid>
    <comment_count>10</comment_count>
      <attachid>438998</attachid>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-22 17:46:40 -0700</bug_when>
    <thetext>Created attachment 438998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796306</commentid>
    <comment_count>11</comment_count>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-22 17:49:11 -0700</bug_when>
    <thetext>For now I&apos;ve removed the test that exhausts the armv7 buildbot&apos;s memory. Also new in this revision is a small bugfix to handle { fractionalSecondDigits: NaN } according to the specification. Finally I moved TemporalDuration::unitPropertyName() to TemporalObject.cpp as discussed with Ross, and renamed it temporalUnitPropertyName().

If we want the T.repeat(int32max) test back, maybe there is a way to disable it on the buildbots that can&apos;t handle it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796311</commentid>
    <comment_count>12</comment_count>
      <attachid>438998</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-09-22 18:10:19 -0700</bug_when>
    <thetext>Comment on attachment 438998
Patch

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

&gt; Source/JavaScriptCore/runtime/TemporalObject.cpp:242
&gt; +        if (std::isnan(doubleValue) || doubleValue &lt; 0 || doubleValue &gt; 9) {

Ahh, we could do it this way, but this is actually me being silly -- I should have written `if(!(doubleValue &gt;= 0 &amp;&amp; doubleValue &lt;= 9))`, as Yusuke did in TemporalPlainTime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796315</commentid>
    <comment_count>13</comment_count>
      <attachid>438998</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-22 18:18:50 -0700</bug_when>
    <thetext>Comment on attachment 438998
Patch

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

r=me with comments

&gt; Source/JavaScriptCore/runtime/TemporalDuration.cpp:122
&gt; +        copy.append(UChar { 0x2026 }); // U+2026 ellipsis

Use `horizontalEllipsis` in &lt;wtf/unicode/CharacterNames.h&gt;

&gt; Source/JavaScriptCore/runtime/TemporalObject.cpp:254
&gt; +        throwRangeError(globalObject, scope, makeString(&quot;fractionalSecondDigits must be &apos;auto&apos; or 0 through 9, not &quot;_s, stringValue));

Also need to consider about super long string. So ellipsizeAt is necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796531</commentid>
    <comment_count>14</comment_count>
      <attachid>439052</attachid>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-23 09:42:08 -0700</bug_when>
    <thetext>Created attachment 439052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796679</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-23 14:50:58 -0700</bug_when>
    <thetext>Committed r283009 (242074@main): &lt;https://commits.webkit.org/242074@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439052.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438310</attachid>
            <date>2021-09-15 17:37:33 -0700</date>
            <delta_ts>2021-09-16 17:54:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230331-20210915173733.patch</filename>
            <type>text/plain</type>
            <size>10395</size>
            <attacher name="Philip Chimento">philip.chimento</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OTViNWY5YzdlZjUxNmFjMmVkMmM0ODI1YjNkZDk5NzQ2ZGQ3YjM4Li4wMzVmNmQwYmY4YTk4YmUz
YTUyODg4YTAxNWMxMjhlZjFlYWZhZjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMS0wOS0xNSAgUGhpbGlwIENoaW1lbnRvICA8cGNoaW1lbnRvQGlnYWxp
YS5jb20+CisKKyAgICAgICAgVmFyaW91cyB0d2Vha3MgaW4gcHJlcGFyYXRpb24gZm9yIFRlbXBv
cmFsLkluc3RhbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDMzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcnVudGltZS9JU084NjAxLmg6CisgICAgICAgIChKU0M6OklTTzg2MDE6OkR1cmF0aW9u
OjpvcGVyYXRvcltdKTogQWRkIGFuIG9wZXJhdG9yW10gdGhhdCBpbmRleGVzIGJ5CisgICAgICAg
ICAgVGVtcG9yYWxVbml0LgorICAgICAgICAoSlNDOjpJU084NjAxOjpEdXJhdGlvbjo6b3BlcmF0
b3JbXSBjb25zdCk6CisgICAgICAgICogcnVudGltZS9UZW1wb3JhbER1cmF0aW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6VGVtcG9yYWxEdXJhdGlvbjo6dG9JU084NjAxRHVyYXRpb24pOiBJbXByb3Zl
IGVycm9yIG1lc3NhZ2UgdG8KKyAgICAgICAgICBpbmNsdWRlIHRoZSBpbnZhbGlkIHN0cmluZy4K
KyAgICAgICAgKEpTQzo6VGVtcG9yYWxEdXJhdGlvbjo6dG9TdHJpbmcpOiBVc2UgZm9ybWF0U2Vj
b25kc1N0cmluZ0ZyYWN0aW9uKCkuCisgICAgICAgICogcnVudGltZS9UZW1wb3JhbE9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OmNyZWF0ZUR1cmF0aW9uQ29uc3RydWN0b3IpOiBBbHBoYWJldGl6
ZS4KKyAgICAgICAgKEpTQzo6Y3JlYXRlTm93T2JqZWN0KTogQWxwaGFiZXRpemUuCisgICAgICAg
IChKU0M6OnRlbXBvcmFsVW5pdFRvU3RyaW5nKTogQWRkIGEgZnVuY3Rpb24gdG8gZHVtcCB0aGUg
bmFtZSBvZiBhCisgICAgICAgICAgVGVtcG9yYWxVbml0LCBlLmcuIGZvciBlcnJvciBtZXNzYWdl
cy4KKyAgICAgICAgKEpTQzo6Zm9ybWF0U2Vjb25kc1N0cmluZ0ZyYWN0aW9uKTogTW92ZSBjb2Rl
IGZyb20gVGVtcG9yYWxEdXJhdGlvbiBpbnRvCisgICAgICAgICAgYSBmdW5jdGlvbiB3aGljaCB3
aWxsIGJlIHJldXNlZCBpbiBvdGhlciBUZW1wb3JhbCB0eXBlcy4KKyAgICAgICAgKiBydW50aW1l
L1RlbXBvcmFsT2JqZWN0Lmg6CisKIDIwMjEtMDktMTUgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBh
cHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBzb21lIHByb2ZpbGluZyB0byBVbmxpbmtlZENvZGVC
bG9jawpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNPODYwMS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNPODYwMS5oCmluZGV4IGRhMzczNDEx
MzZjYTI1YjM0OWYyNGVhZTc2Zjk1ODI0YjMyZjkxNzEuLmU4ZmUyODIxZWY4NjdiMjk2NDhhMmM0
MjBiNDMxMDZhZjM0MTljZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0lTTzg2MDEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JU084NjAx
LmgKQEAgLTYxLDYgKzYxLDggQEAgcHVibGljOgogCiAgICAgZG91YmxlJiBvcGVyYXRvcltdKHNp
emVfdCBpKSB7IHJldHVybiBtX2RhdGFbaV07IH0KICAgICBjb25zdCBkb3VibGUmIG9wZXJhdG9y
W10oc2l6ZV90IGkpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YVtpXTsgfQorICAgIGRvdWJsZSYgb3Bl
cmF0b3JbXShUZW1wb3JhbFVuaXQgdSkgeyByZXR1cm4gbV9kYXRhW3N0YXRpY19jYXN0PHVpbnQ4
X3Q+KHUpXTsgfQorICAgIGNvbnN0IGRvdWJsZSYgb3BlcmF0b3JbXShUZW1wb3JhbFVuaXQgdSkg
Y29uc3QgeyByZXR1cm4gbV9kYXRhW3N0YXRpY19jYXN0PHVpbnQ4X3Q+KHUpXTsgfQogICAgIGNv
bnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmJlZ2luKCk7IH0KICAg
ICBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuZW5kKCk7IH0KICAg
ICB2b2lkIGNsZWFyKCkgeyBtX2RhdGEuZmlsbCgwKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxEdXJhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9UZW1wb3JhbER1cmF0aW9uLmNwcAppbmRleCA1NjVkN2IwMjI4YmFh
YTUzMDQ0M2NlZjZkNmU3Y2VlMzE5YmRkZTg3Li5hZGYyZTIxNzk5ODE0ZGQzZmRiN2ZmNjRmOGJi
Y2Y3YmYwOGU1YzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
ZW1wb3JhbER1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
ZW1wb3JhbER1cmF0aW9uLmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIElTTzg2MDE6OkR1cmF0aW9u
IFRlbXBvcmFsRHVyYXRpb246OnRvSVNPODYwMUR1cmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplCiAKICAgICAgICAgYXV0byBwYXJzZWREdXJhdGlvbiA9IElTTzg2MDE6OnBhcnNlRHVy
YXRpb24oc3RyaW5nKTsKICAgICAgICAgaWYgKCFwYXJzZWREdXJhdGlvbikgewotICAgICAgICAg
ICAgdGhyb3dSYW5nZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJDb3VsZCBub3QgcGFyc2Ug
RHVyYXRpb24gc3RyaW5nIl9zKTsKKyAgICAgICAgICAgIHRocm93UmFuZ2VFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCBtYWtlU3RyaW5nKCInIl9zLCBzdHJpbmcsICInIGlzIG5vdCBhIHZhbGlk
IER1cmF0aW9uIHN0cmluZyJfcykpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAg
fQogCkBAIC01NTAsOCArNTUwLDcgQEAgU3RyaW5nIFRlbXBvcmFsRHVyYXRpb246OnRvU3RyaW5n
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgb3B0aW9uc1YKIC8vIGh0dHBz
Oi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jc2VjLXRlbXBvcmFsLXRlbXBvcmFsZHVyYXRp
b250b3N0cmluZwogU3RyaW5nIFRlbXBvcmFsRHVyYXRpb246OnRvU3RyaW5nKGNvbnN0IElTTzg2
MDE6OkR1cmF0aW9uJiBkdXJhdGlvbiwgc3RkOjp0dXBsZTxQcmVjaXNpb24sIHVuc2lnbmVkPiBw
cmVjaXNpb24pCiB7Ci0gICAgYXV0byBbcHJlY2lzaW9uVHlwZSwgcHJlY2lzaW9uVmFsdWVdID0g
cHJlY2lzaW9uOwotICAgIEFTU0VSVChwcmVjaXNpb25UeXBlID09IFByZWNpc2lvbjo6QXV0byB8
fCBwcmVjaXNpb25WYWx1ZSA8IDEwKTsKKyAgICBBU1NFUlQoc3RkOjpnZXQ8MD4ocHJlY2lzaW9u
KSA9PSBQcmVjaXNpb246OkF1dG8gfHwgc3RkOjpnZXQ8MT4ocHJlY2lzaW9uKSA8IDEwKTsKIAog
ICAgIGF1dG8gYmFsYW5jZWRNaWNyb3NlY29uZHMgPSBkdXJhdGlvbi5taWNyb3NlY29uZHMoKSAr
IHN0ZDo6dHJ1bmMoZHVyYXRpb24ubmFub3NlY29uZHMoKSAvIDEwMDApOwogICAgIGF1dG8gYmFs
YW5jZWROYW5vc2Vjb25kcyA9IHN0ZDo6Zm1vZChkdXJhdGlvbi5uYW5vc2Vjb25kcygpLCAxMDAw
KTsKQEAgLTU5OCwxNyArNTk3LDcgQEAgU3RyaW5nIFRlbXBvcmFsRHVyYXRpb246OnRvU3RyaW5n
KGNvbnN0IElTTzg2MDE6OkR1cmF0aW9uJiBkdXJhdGlvbiwgc3RkOjp0dXBsZTwKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoZm9ybWF0SW50ZWdlcihiYWxhbmNlZFNlY29uZHMpKTsKIAogICAgICAg
ICBhdXRvIGZyYWN0aW9uID0gc3RkOjphYnMoYmFsYW5jZWRNaWxsaXNlY29uZHMpICogMWU2ICsg
c3RkOjphYnMoYmFsYW5jZWRNaWNyb3NlY29uZHMpICogMWUzICsgc3RkOjphYnMoYmFsYW5jZWRO
YW5vc2Vjb25kcyk7Ci0gICAgICAgIGlmICgocHJlY2lzaW9uVHlwZSA9PSBQcmVjaXNpb246OkF1
dG8gJiYgZnJhY3Rpb24pIHx8IChwcmVjaXNpb25UeXBlID09IFByZWNpc2lvbjo6Rml4ZWQgJiYg
cHJlY2lzaW9uVmFsdWUpKSB7Ci0gICAgICAgICAgICBhdXRvIHBhZGRlZCA9IG1ha2VTdHJpbmco
Jy4nLCBwYWQoJzAnLCA5LCBmcmFjdGlvbikpOwotICAgICAgICAgICAgaWYgKHByZWNpc2lvblR5
cGUgPT0gUHJlY2lzaW9uOjpGaXhlZCkKLSAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmdWaWV3KHBhZGRlZCkubGVmdChwYWRkZWQubGVuZ3RoKCkgLSAoOSAtIHByZWNpc2lvblZh
bHVlKSkpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXV0byBsZW5ndGhX
aXRob3V0VHJhaWxpbmdaZXJvZXMgPSBwYWRkZWQubGVuZ3RoKCk7Ci0gICAgICAgICAgICAgICAg
d2hpbGUgKHBhZGRlZFtsZW5ndGhXaXRob3V0VHJhaWxpbmdaZXJvZXMgLSAxXSA9PSAnMCcpCi0g
ICAgICAgICAgICAgICAgICAgIGxlbmd0aFdpdGhvdXRUcmFpbGluZ1plcm9lcy0tOwotICAgICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZ1ZpZXcocGFkZGVkKS5sZWZ0KGxlbmd0aFdp
dGhvdXRUcmFpbGluZ1plcm9lcykpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAg
IGZvcm1hdFNlY29uZHNTdHJpbmdGcmFjdGlvbihidWlsZGVyLCBmcmFjdGlvbiwgcHJlY2lzaW9u
KTsKIAogICAgICAgICBidWlsZGVyLmFwcGVuZCgnUycpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsT2JqZWN0LmNwcAppbmRleCBhNGU0ZWM2MTVi
MzE4NjY4NDViMGIxZGNkZmNlNWRiNDg0ODliMGQ4Li41OTEwN2Q5ZDc0ZDZmNTg5ZWNmYmFlMzU0
ZjQxNTZhNTFkZGE4NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9UZW1wb3JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VGVtcG9yYWxPYmplY3QuY3BwCkBAIC00OSwxOCArNDksMTggQEAgc3RhdGljIEpTVmFsdWUgY3Jl
YXRlQ2FsZW5kYXJDb25zdHJ1Y3RvcihWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCiAgICAgcmV0
dXJuIFRlbXBvcmFsQ2FsZW5kYXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBUZW1wb3JhbENhbGVu
ZGFyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QtPmZ1bmN0aW9uUHJvdG90eXBlKCkpLCBqc0Nhc3Q8VGVtcG9yYWxDYWxlbmRhclByb3Rv
dHlwZSo+KGdsb2JhbE9iamVjdC0+Y2FsZW5kYXJTdHJ1Y3R1cmUoKS0+c3RvcmVkUHJvdG90eXBl
T2JqZWN0KCkpKTsKIH0KIAotc3RhdGljIEpTVmFsdWUgY3JlYXRlTm93T2JqZWN0KFZNJiB2bSwg
SlNPYmplY3QqIG9iamVjdCkKK3N0YXRpYyBKU1ZhbHVlIGNyZWF0ZUR1cmF0aW9uQ29uc3RydWN0
b3IoVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQogewogICAgIFRlbXBvcmFsT2JqZWN0KiB0ZW1w
b3JhbE9iamVjdCA9IGpzQ2FzdDxUZW1wb3JhbE9iamVjdCo+KG9iamVjdCk7CiAgICAgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRlbXBvcmFsT2JqZWN0LT5nbG9iYWxPYmplY3Qodm0p
OwotICAgIHJldHVybiBUZW1wb3JhbE5vdzo6Y3JlYXRlKHZtLCBUZW1wb3JhbE5vdzo6Y3JlYXRl
U3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QpKTsKKyAgICByZXR1cm4gVGVtcG9yYWxEdXJhdGlv
bkNvbnN0cnVjdG9yOjpjcmVhdGUodm0sIFRlbXBvcmFsRHVyYXRpb25Db25zdHJ1Y3Rvcjo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90
b3R5cGUoKSksIGpzQ2FzdDxUZW1wb3JhbER1cmF0aW9uUHJvdG90eXBlKj4oZ2xvYmFsT2JqZWN0
LT5kdXJhdGlvblN0cnVjdHVyZSgpLT5zdG9yZWRQcm90b3R5cGVPYmplY3QoKSkpOwogfQogCi1z
dGF0aWMgSlNWYWx1ZSBjcmVhdGVEdXJhdGlvbkNvbnN0cnVjdG9yKFZNJiB2bSwgSlNPYmplY3Qq
IG9iamVjdCkKK3N0YXRpYyBKU1ZhbHVlIGNyZWF0ZU5vd09iamVjdChWTSYgdm0sIEpTT2JqZWN0
KiBvYmplY3QpCiB7CiAgICAgVGVtcG9yYWxPYmplY3QqIHRlbXBvcmFsT2JqZWN0ID0ganNDYXN0
PFRlbXBvcmFsT2JqZWN0Kj4ob2JqZWN0KTsKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gdGVtcG9yYWxPYmplY3QtPmdsb2JhbE9iamVjdCh2bSk7Ci0gICAgcmV0dXJuIFRlbXBv
cmFsRHVyYXRpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBUZW1wb3JhbER1cmF0aW9uQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPmZ1
bmN0aW9uUHJvdG90eXBlKCkpLCBqc0Nhc3Q8VGVtcG9yYWxEdXJhdGlvblByb3RvdHlwZSo+KGds
b2JhbE9iamVjdC0+ZHVyYXRpb25TdHJ1Y3R1cmUoKS0+c3RvcmVkUHJvdG90eXBlT2JqZWN0KCkp
KTsKKyAgICByZXR1cm4gVGVtcG9yYWxOb3c6OmNyZWF0ZSh2bSwgVGVtcG9yYWxOb3c6OmNyZWF0
ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0KSk7CiB9CiAKIHN0YXRpYyBKU1ZhbHVlIGNyZWF0
ZVBsYWluVGltZUNvbnN0cnVjdG9yKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKQEAgLTE1Myw2
ICsxNTMsMjMgQEAgc3RkOjpvcHRpb25hbDxUZW1wb3JhbFVuaXQ+IHRlbXBvcmFsVW5pdFR5cGUo
U3RyaW5nVmlldyB1bml0KQogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKK1N0cmluZyB0
ZW1wb3JhbFVuaXRUb1N0cmluZyhUZW1wb3JhbFVuaXQgdW5pdCkKK3sKKyAgICBzd2l0Y2ggKHVu
aXQpIHsKKyAgICBjYXNlIFRlbXBvcmFsVW5pdDo6WWVhcjogcmV0dXJuICJ5ZWFyIl9zOworICAg
IGNhc2UgVGVtcG9yYWxVbml0OjpNb250aDogcmV0dXJuICJtb250aCJfczsKKyAgICBjYXNlIFRl
bXBvcmFsVW5pdDo6V2VlazogcmV0dXJuICJ3ZWVrIl9zOworICAgIGNhc2UgVGVtcG9yYWxVbml0
OjpEYXk6IHJldHVybiAiZGF5Il9zOworICAgIGNhc2UgVGVtcG9yYWxVbml0OjpIb3VyOiByZXR1
cm4gImhvdXIiX3M7CisgICAgY2FzZSBUZW1wb3JhbFVuaXQ6Ok1pbnV0ZTogcmV0dXJuICJtaW51
dGUiX3M7CisgICAgY2FzZSBUZW1wb3JhbFVuaXQ6OlNlY29uZDogcmV0dXJuICJzZWNvbmQiX3M7
CisgICAgY2FzZSBUZW1wb3JhbFVuaXQ6Ok1pbGxpc2Vjb25kOiByZXR1cm4gIm1pbGxpc2Vjb25k
Il9zOworICAgIGNhc2UgVGVtcG9yYWxVbml0OjpNaWNyb3NlY29uZDogcmV0dXJuICJtaWNyb3Nl
Y29uZCJfczsKKyAgICBjYXNlIFRlbXBvcmFsVW5pdDo6TmFub3NlY29uZDogcmV0dXJuICJuYW5v
c2Vjb25kIl9zOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogLy8gVG9M
YXJnZXN0VGVtcG9yYWxVbml0ICggbm9ybWFsaXplZE9wdGlvbnMsIGRpc2FsbG93ZWRVbml0cywg
ZmFsbGJhY2sgWyAsIGF1dG9WYWx1ZSBdICkKIC8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10
ZW1wb3JhbC8jc2VjLXRlbXBvcmFsLXRvbGFyZ2VzdHRlbXBvcmFsdW5pdAogc3RkOjpvcHRpb25h
bDxUZW1wb3JhbFVuaXQ+IHRlbXBvcmFsTGFyZ2VzdFVuaXQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNPYmplY3QqIG9wdGlvbnMsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxUZW1wb3Jh
bFVuaXQ+IGRpc2FsbG93ZWRVbml0cywgVGVtcG9yYWxVbml0IGF1dG9WYWx1ZSkKQEAgLTMwOSw2
ICszMjYsMjIgQEAgUm91bmRpbmdNb2RlIHRlbXBvcmFsUm91bmRpbmdNb2RlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvcHRpb24KICAgICAgICAgInJvdW5kaW5nTW9k
ZSBtdXN0IGJlIGVpdGhlciBcImNlaWxcIiwgXCJmbG9vclwiLCBcInRydW5jXCIsIG9yIFwiaGFs
ZkV4cGFuZFwiIl9zLCBmYWxsYmFjayk7CiB9CiAKK3ZvaWQgZm9ybWF0U2Vjb25kc1N0cmluZ0Zy
YWN0aW9uKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIHVuc2lnbmVkIGZyYWN0aW9uLCBzdGQ6OnR1
cGxlPFByZWNpc2lvbiwgdW5zaWduZWQ+IHByZWNpc2lvbikKK3sKKyAgICBhdXRvIFtwcmVjaXNp
b25UeXBlLCBwcmVjaXNpb25WYWx1ZV0gPSBwcmVjaXNpb247CisgICAgaWYgKChwcmVjaXNpb25U
eXBlID09IFByZWNpc2lvbjo6QXV0byAmJiBmcmFjdGlvbikgfHwgKHByZWNpc2lvblR5cGUgPT0g
UHJlY2lzaW9uOjpGaXhlZCAmJiBwcmVjaXNpb25WYWx1ZSkpIHsKKyAgICAgICAgYXV0byBwYWRk
ZWQgPSBtYWtlU3RyaW5nKCcuJywgcGFkKCcwJywgOSwgZnJhY3Rpb24pKTsKKyAgICAgICAgaWYg
KHByZWNpc2lvblR5cGUgPT0gUHJlY2lzaW9uOjpGaXhlZCkKKyAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZ1ZpZXcocGFkZGVkKS5sZWZ0KHBhZGRlZC5sZW5ndGgoKSAtICg5IC0gcHJl
Y2lzaW9uVmFsdWUpKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYXV0byBsZW5ndGhX
aXRob3V0VHJhaWxpbmdaZXJvZXMgPSBwYWRkZWQubGVuZ3RoKCk7CisgICAgICAgICAgICB3aGls
ZSAocGFkZGVkW2xlbmd0aFdpdGhvdXRUcmFpbGluZ1plcm9lcyAtIDFdID09ICcwJykKKyAgICAg
ICAgICAgICAgICBsZW5ndGhXaXRob3V0VHJhaWxpbmdaZXJvZXMtLTsKKyAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZ1ZpZXcocGFkZGVkKS5sZWZ0KGxlbmd0aFdpdGhvdXRUcmFpbGlu
Z1plcm9lcykpOworICAgICAgICB9CisgICAgfQorfQorCiAvLyBNYXhpbXVtVGVtcG9yYWxEdXJh
dGlvblJvdW5kaW5nSW5jcmVtZW50ICggdW5pdCApCiAvLyBodHRwczovL3RjMzkuZXMvcHJvcG9z
YWwtdGVtcG9yYWwvI3NlYy10ZW1wb3JhbC1tYXhpbXVtdGVtcG9yYWxkdXJhdGlvbnJvdW5kaW5n
aW5jcmVtZW50CiBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gbWF4aW11bVJvdW5kaW5nSW5jcmVtZW50
KFRlbXBvcmFsVW5pdCB1bml0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVGVtcG9yYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rl
bXBvcmFsT2JqZWN0LmgKaW5kZXggZDE1MTIyYTlmMjg4MmYyZjlhMjYxY2M0NDkyZTQ3NWE1NmEw
OWQ4Yi4uZGJjNDk0NDBhMDIwN2VkNDMyZDdlNjg0MzJjN2JlMWE1NTU0OWY1NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxPYmplY3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbE9iamVjdC5oCkBAIC05NCwxMSAr
OTQsMTMgQEAgc3RydWN0IFByZWNpc2lvbkRhdGEgewogfTsKIAogc3RkOjpvcHRpb25hbDxUZW1w
b3JhbFVuaXQ+IHRlbXBvcmFsVW5pdFR5cGUoU3RyaW5nVmlldyk7CitTdHJpbmcgdGVtcG9yYWxV
bml0VG9TdHJpbmcoVGVtcG9yYWxVbml0KTsKIHN0ZDo6b3B0aW9uYWw8VGVtcG9yYWxVbml0PiB0
ZW1wb3JhbExhcmdlc3RVbml0KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMsIHN0
ZDo6aW5pdGlhbGl6ZXJfbGlzdDxUZW1wb3JhbFVuaXQ+IGRpc2FsbG93ZWRVbml0cywgVGVtcG9y
YWxVbml0IGF1dG9WYWx1ZSk7CiBzdGQ6Om9wdGlvbmFsPFRlbXBvcmFsVW5pdD4gdGVtcG9yYWxT
bWFsbGVzdFVuaXQoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogb3B0aW9ucywgc3RkOjppbml0
aWFsaXplcl9saXN0PFRlbXBvcmFsVW5pdD4gZGlzYWxsb3dlZFVuaXRzKTsKIHN0ZDo6b3B0aW9u
YWw8dW5zaWduZWQ+IHRlbXBvcmFsRnJhY3Rpb25hbFNlY29uZERpZ2l0cyhKU0dsb2JhbE9iamVj
dCosIEpTT2JqZWN0KiBvcHRpb25zKTsKIFByZWNpc2lvbkRhdGEgc2Vjb25kc1N0cmluZ1ByZWNp
c2lvbihKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBvcHRpb25zKTsKIFJvdW5kaW5nTW9kZSB0
ZW1wb3JhbFJvdW5kaW5nTW9kZShKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgUm91bmRpbmdN
b2RlKTsKK3ZvaWQgZm9ybWF0U2Vjb25kc1N0cmluZ0ZyYWN0aW9uKFN0cmluZ0J1aWxkZXImLCB1
bnNpZ25lZCBmcmFjdGlvbiwgc3RkOjp0dXBsZTxQcmVjaXNpb24sIHVuc2lnbmVkPik7CiBzdGQ6
Om9wdGlvbmFsPGRvdWJsZT4gbWF4aW11bVJvdW5kaW5nSW5jcmVtZW50KFRlbXBvcmFsVW5pdCk7
CiBkb3VibGUgdGVtcG9yYWxSb3VuZGluZ0luY3JlbWVudChKU0dsb2JhbE9iamVjdCosIEpTT2Jq
ZWN0KiBvcHRpb25zLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZGl2aWRlbmQsIGJvb2wgaW5jbHVz
aXZlKTsKIGRvdWJsZSByb3VuZE51bWJlclRvSW5jcmVtZW50KGRvdWJsZSwgZG91YmxlIGluY3Jl
bWVudCwgUm91bmRpbmdNb2RlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438421</attachid>
            <date>2021-09-16 17:54:13 -0700</date>
            <delta_ts>2021-09-22 17:46:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230331-20210916175412.patch</filename>
            <type>text/plain</type>
            <size>10981</size>
            <attacher name="Philip Chimento">philip.chimento</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
OTkxOGViNTc4NDhlZTFhZjZmYTJkNWE5MjM0MTE0M2JjNjhlYjE0Li4wMTMxMTg0MTYwNDg1YjUx
NGUxZTM0YWE0ZmUyZGRmNDBmY2ZiNzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0wOS0xNiAgUGhpbGlwIENoaW1lbnRvICA8cGNoaW1lbnRvQGlnYWxp
YS5jb20+CisKKyAgICAgICAgVmFyaW91cyB0d2Vha3MgaW4gcHJlcGFyYXRpb24gZm9yIFRlbXBv
cmFsLkluc3RhbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDMzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcnVudGltZS9UZW1wb3JhbER1cmF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6VGVtcG9y
YWxEdXJhdGlvbjo6dW5pdFByb3BlcnR5TmFtZSk6IE1ha2UgcHVibGljIGluIG9yZGVyIHRvCisg
ICAgICAgICAgcmV1c2UgaW4gb3RoZXIgVGVtcG9yYWwgdHlwZXMuCisgICAgICAgIChKU0M6OlRl
bXBvcmFsRHVyYXRpb246OmZyb21EdXJhdGlvbkxpa2UpOgorICAgICAgICAoSlNDOjplbGxpcHNp
emVBdCk6IEFkZCBoZWxwZXIgdG8gZWxsaXBzaXplIHN0cmluZyBhdCBjZXJ0YWluIGxlbmd0aC4K
KyAgICAgICAgKEpTQzo6VGVtcG9yYWxEdXJhdGlvbjo6dG9JU084NjAxRHVyYXRpb24pOiBJbXBy
b3ZlIGVycm9yIG1lc3NhZ2UgdG8KKyAgICAgICAgICBpbmNsdWRlIHRoZSBpbnZhbGlkIHN0cmlu
Zy4KKyAgICAgICAgKEpTQzo6VGVtcG9yYWxEdXJhdGlvbjo6d2l0aCBjb25zdCk6CisgICAgICAg
IChKU0M6OlRlbXBvcmFsRHVyYXRpb246OnRvU3RyaW5nKTogVXNlIGZvcm1hdFNlY29uZHNTdHJp
bmdGcmFjdGlvbigpLgorICAgICAgICAqIHJ1bnRpbWUvVGVtcG9yYWxEdXJhdGlvbi5oOgorICAg
ICAgICAqIHJ1bnRpbWUvVGVtcG9yYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpmb3JtYXRT
ZWNvbmRzU3RyaW5nRnJhY3Rpb24pOiBNb3ZlIGNvZGUgZnJvbSBUZW1wb3JhbER1cmF0aW9uCisg
ICAgICAgICAgaW50byBhIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgcmV1c2VkIGluIG90aGVyIFRl
bXBvcmFsIHR5cGVzLgorICAgICAgICAqIHJ1bnRpbWUvVGVtcG9yYWxPYmplY3QuaDoKKwogMjAy
MS0wOS0xNiAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIEZpeCBjcmFzaCBpbiAzMiBiaXRzIGR1ZSB0byBub3QgZW5vdWdoIHNjcmF0Y2ggcmVnaXN0
ZXJzIGF2YWlsYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VGVtcG9yYWxEdXJhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1w
b3JhbER1cmF0aW9uLmNwcAppbmRleCA1NjVkN2IwMjI4YmFhYTUzMDQ0M2NlZjZkNmU3Y2VlMzE5
YmRkZTg3Li5mMjcwNTlkOWExMzhjNDgzMDgzMTljZjI2NmI1MzYzOGI5ODMwMTI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbER1cmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbER1cmF0aW9uLmNwcApA
QCAtMzQsMTAgKzM0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91
YmxlIG5hbm9zZWNvbmRzUGVyRGF5ID0gMjQuMCAqIDYwICogNjAgKiAxMDAwICogMTAwMCAqIDEw
MDA7CiAKLXN0YXRpYyBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKFZNJiB2bSwgdW5zaWduZWQg
aW5kZXgpCitQcm9wZXJ0eU5hbWUgVGVtcG9yYWxEdXJhdGlvbjo6dW5pdFByb3BlcnR5TmFtZShW
TSYgdm0sIFRlbXBvcmFsVW5pdCB1bml0KQogewotICAgIEFTU0VSVChpbmRleCA8IG51bWJlck9m
VGVtcG9yYWxVbml0cyk7Ci0gICAgc3dpdGNoIChzdGF0aWNfY2FzdDxUZW1wb3JhbFVuaXQ+KGlu
ZGV4KSkgeworICAgIHN3aXRjaCAodW5pdCkgewogI2RlZmluZSBKU0NfVEVNUE9SQUxfRFVSQVRJ
T05fUFJPUEVSVFlfTkFNRShuYW1lLCBjYXBpdGFsaXplZE5hbWUpIGNhc2UgVGVtcG9yYWxVbml0
OjpjYXBpdGFsaXplZE5hbWU6IHJldHVybiB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lIyNzOyAKICAg
ICAgICAgSlNDX1RFTVBPUkFMX1VOSVRTKEpTQ19URU1QT1JBTF9EVVJBVElPTl9QUk9QRVJUWV9O
QU1FKQogI3VuZGVmIEpTQ19URU1QT1JBTF9EVVJBVElPTl9QUk9QRVJUWV9OQU1FCkBAIC0xMDAs
NyArOTksNyBAQCBJU084NjAxOjpEdXJhdGlvbiBUZW1wb3JhbER1cmF0aW9uOjpmcm9tRHVyYXRp
b25MaWtlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIElTTzg2MDE6OkR1cmF0aW9u
IHJlc3VsdDsKICAgICBhdXRvIGhhc1JlbGV2YW50UHJvcGVydHkgPSBmYWxzZTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG51bWJlck9mVGVtcG9yYWxVbml0czsgaSsrKSB7Ci0gICAgICAg
IEpTVmFsdWUgdmFsdWUgPSBkdXJhdGlvbkxpa2UtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5
TmFtZSh2bSwgaSkpOworICAgICAgICBKU1ZhbHVlIHZhbHVlID0gZHVyYXRpb25MaWtlLT5nZXQo
Z2xvYmFsT2JqZWN0LCB1bml0UHJvcGVydHlOYW1lKHZtLCBzdGF0aWNfY2FzdDxUZW1wb3JhbFVu
aXQ+KGkpKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAg
ICAgICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKQEAgLTEyNiw2ICsxMjUsMTYgQEAgSVNP
ODYwMTo6RHVyYXRpb24gVGVtcG9yYWxEdXJhdGlvbjo6ZnJvbUR1cmF0aW9uTGlrZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgV1RG
OjpTdHJpbmcgZWxsaXBzaXplQXQodW5zaWduZWQgbWF4TGVuZ3RoLCBjb25zdCBXVEY6OlN0cmlu
ZyYgc3RyaW5nKQoreworICAgIFdURjo6U3RyaW5nIGNvcHkgeyBzdHJpbmcgfTsKKyAgICBpZiAo
c3RyaW5nLmxlbmd0aCgpID4gbWF4TGVuZ3RoKSB7CisgICAgICAgIGNvcHkudHJ1bmNhdGUobWF4
TGVuZ3RoIC0gMSk7CisgICAgICAgIGNvcHkuYXBwZW5kKFVDaGFyIHsgMHgyMDI2IH0pOyAvLyBV
KzIwMjYgZWxsaXBzaXMKKyAgICB9CisgICAgcmV0dXJuIGNvcHk7Cit9CisKIC8vIFRvTGltaXRl
ZFRlbXBvcmFsRHVyYXRpb24gKCB0ZW1wb3JhbER1cmF0aW9uTGlrZSwgZGlzYWxsb3dlZEZpZWxk
cyApCiAvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtdGVtcG9yYWwvI3NlYy10ZW1wb3JhbC10
b2xpbWl0ZWR0ZW1wb3JhbGR1cmF0aW9uCiBJU084NjAxOjpEdXJhdGlvbiBUZW1wb3JhbER1cmF0
aW9uOjp0b0lTTzg2MDFEdXJhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIGl0ZW1WYWx1ZSkKQEAgLTE0Myw3ICsxNTIsOCBAQCBJU084NjAxOjpEdXJhdGlvbiBUZW1w
b3JhbER1cmF0aW9uOjp0b0lTTzg2MDFEdXJhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZQogCiAgICAgICAgIGF1dG8gcGFyc2VkRHVyYXRpb24gPSBJU084NjAxOjpwYXJzZUR1cmF0aW9u
KHN0cmluZyk7CiAgICAgICAgIGlmICghcGFyc2VkRHVyYXRpb24pIHsKLSAgICAgICAgICAgIHRo
cm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiQ291bGQgbm90IHBhcnNlIER1cmF0
aW9uIHN0cmluZyJfcyk7CisgICAgICAgICAgICAvLyAzMDkwOiAzMDggZGlnaXRzICogMTAgZmll
bGRzICsgMTAgZGVzaWduYXRvcnMKKyAgICAgICAgICAgIHRocm93UmFuZ2VFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCBtYWtlU3RyaW5nKCInIl9zLCBlbGxpcHNpemVBdCgzMDkwLCBzdHJpbmcp
LCAiJyBpcyBub3QgYSB2YWxpZCBEdXJhdGlvbiBzdHJpbmciX3MpKTsKICAgICAgICAgICAgIHJl
dHVybiB7IH07CiAgICAgICAgIH0KIApAQCAtMjQxLDcgKzI1MSw3IEBAIElTTzg2MDE6OkR1cmF0
aW9uIFRlbXBvcmFsRHVyYXRpb246OndpdGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNPYmplY3QqCiAgICAgSVNPODYwMTo6RHVyYXRpb24gcmVzdWx0OwogICAgIGF1dG8gaGFzUmVs
ZXZhbnRQcm9wZXJ0eSA9IGZhbHNlOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVy
T2ZUZW1wb3JhbFVuaXRzOyBpKyspIHsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IGR1cmF0aW9u
TGlrZS0+Z2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKHZtLCBpKSk7CisgICAgICAgIEpT
VmFsdWUgdmFsdWUgPSBkdXJhdGlvbkxpa2UtPmdldChnbG9iYWxPYmplY3QsIHVuaXRQcm9wZXJ0
eU5hbWUodm0sIHN0YXRpY19jYXN0PFRlbXBvcmFsVW5pdD4oaSkpKTsKICAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgICAgICBpZiAodmFsdWUuaXNVbmRlZmlu
ZWQoKSkgewpAQCAtNTUwLDggKzU2MCw3IEBAIFN0cmluZyBUZW1wb3JhbER1cmF0aW9uOjp0b1N0
cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIG9wdGlvbnNWCiAvLyBo
dHRwczovL3RjMzkuZXMvcHJvcG9zYWwtdGVtcG9yYWwvI3NlYy10ZW1wb3JhbC10ZW1wb3JhbGR1
cmF0aW9udG9zdHJpbmcKIFN0cmluZyBUZW1wb3JhbER1cmF0aW9uOjp0b1N0cmluZyhjb25zdCBJ
U084NjAxOjpEdXJhdGlvbiYgZHVyYXRpb24sIHN0ZDo6dHVwbGU8UHJlY2lzaW9uLCB1bnNpZ25l
ZD4gcHJlY2lzaW9uKQogewotICAgIGF1dG8gW3ByZWNpc2lvblR5cGUsIHByZWNpc2lvblZhbHVl
XSA9IHByZWNpc2lvbjsKLSAgICBBU1NFUlQocHJlY2lzaW9uVHlwZSA9PSBQcmVjaXNpb246OkF1
dG8gfHwgcHJlY2lzaW9uVmFsdWUgPCAxMCk7CisgICAgQVNTRVJUKHN0ZDo6Z2V0PDA+KHByZWNp
c2lvbikgPT0gUHJlY2lzaW9uOjpBdXRvIHx8IHN0ZDo6Z2V0PDE+KHByZWNpc2lvbikgPCAxMCk7
CiAKICAgICBhdXRvIGJhbGFuY2VkTWljcm9zZWNvbmRzID0gZHVyYXRpb24ubWljcm9zZWNvbmRz
KCkgKyBzdGQ6OnRydW5jKGR1cmF0aW9uLm5hbm9zZWNvbmRzKCkgLyAxMDAwKTsKICAgICBhdXRv
IGJhbGFuY2VkTmFub3NlY29uZHMgPSBzdGQ6OmZtb2QoZHVyYXRpb24ubmFub3NlY29uZHMoKSwg
MTAwMCk7CkBAIC01OTgsMTcgKzYwNyw3IEBAIFN0cmluZyBUZW1wb3JhbER1cmF0aW9uOjp0b1N0
cmluZyhjb25zdCBJU084NjAxOjpEdXJhdGlvbiYgZHVyYXRpb24sIHN0ZDo6dHVwbGU8CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGZvcm1hdEludGVnZXIoYmFsYW5jZWRTZWNvbmRzKSk7CiAKICAg
ICAgICAgYXV0byBmcmFjdGlvbiA9IHN0ZDo6YWJzKGJhbGFuY2VkTWlsbGlzZWNvbmRzKSAqIDFl
NiArIHN0ZDo6YWJzKGJhbGFuY2VkTWljcm9zZWNvbmRzKSAqIDFlMyArIHN0ZDo6YWJzKGJhbGFu
Y2VkTmFub3NlY29uZHMpOwotICAgICAgICBpZiAoKHByZWNpc2lvblR5cGUgPT0gUHJlY2lzaW9u
OjpBdXRvICYmIGZyYWN0aW9uKSB8fCAocHJlY2lzaW9uVHlwZSA9PSBQcmVjaXNpb246OkZpeGVk
ICYmIHByZWNpc2lvblZhbHVlKSkgewotICAgICAgICAgICAgYXV0byBwYWRkZWQgPSBtYWtlU3Ry
aW5nKCcuJywgcGFkKCcwJywgOSwgZnJhY3Rpb24pKTsKLSAgICAgICAgICAgIGlmIChwcmVjaXNp
b25UeXBlID09IFByZWNpc2lvbjo6Rml4ZWQpCi0gICAgICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nVmlldyhwYWRkZWQpLmxlZnQocGFkZGVkLmxlbmd0aCgpIC0gKDkgLSBwcmVjaXNp
b25WYWx1ZSkpKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGF1dG8gbGVu
Z3RoV2l0aG91dFRyYWlsaW5nWmVyb2VzID0gcGFkZGVkLmxlbmd0aCgpOwotICAgICAgICAgICAg
ICAgIHdoaWxlIChwYWRkZWRbbGVuZ3RoV2l0aG91dFRyYWlsaW5nWmVyb2VzIC0gMV0gPT0gJzAn
KQotICAgICAgICAgICAgICAgICAgICBsZW5ndGhXaXRob3V0VHJhaWxpbmdaZXJvZXMtLTsKLSAg
ICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmdWaWV3KHBhZGRlZCkubGVmdChsZW5n
dGhXaXRob3V0VHJhaWxpbmdaZXJvZXMpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAg
ICAgICBmb3JtYXRTZWNvbmRzU3RyaW5nRnJhY3Rpb24oYnVpbGRlciwgZnJhY3Rpb24sIHByZWNp
c2lvbik7CiAKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1MnKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbER1cmF0aW9uLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbER1cmF0aW9uLmgKaW5kZXggODJmMmQ1
ZDY1YzIyYWM0YzQwN2M4NjM0MzQyZmY2NjljYTBhMTg5Ni4uYmQ0NmE3NmEwMDE1ZTA0NzU0OTdl
ZTg3MDc3MzJkOTE1NmRmNTZiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVGVtcG9yYWxEdXJhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1RlbXBvcmFsRHVyYXRpb24uaApAQCAtNzQsNiArNzQsOCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGRvdWJsZSByb3VuZChJU084NjAxOjpEdXJhdGlvbiYsIGRvdWJsZSBpbmNyZW1lbnQsIFRl
bXBvcmFsVW5pdCwgUm91bmRpbmdNb2RlKTsKICAgICBzdGF0aWMgdm9pZCBiYWxhbmNlKElTTzg2
MDE6OkR1cmF0aW9uJiwgVGVtcG9yYWxVbml0IGxhcmdlc3RVbml0KTsKIAorICAgIHN0YXRpYyBQ
cm9wZXJ0eU5hbWUgdW5pdFByb3BlcnR5TmFtZShWTSYsIFRlbXBvcmFsVW5pdCk7CisKIHByaXZh
dGU6CiAgICAgVGVtcG9yYWxEdXJhdGlvbihWTSYsIFN0cnVjdHVyZSosIElTTzg2MDE6OkR1cmF0
aW9uJiYpOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsT2JqZWN0LmNwcAppbmRleCBhNGU0ZWM2MTViMzE4
NjY4NDViMGIxZGNkZmNlNWRiNDg0ODliMGQ4Li4wZGFhOGNhZjUxMjVkN2U4MzQ2YmIxNWQ2ODk2
MDZkYzNlMDRhZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
ZW1wb3JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVt
cG9yYWxPYmplY3QuY3BwCkBAIC0zMDksNiArMzA5LDIyIEBAIFJvdW5kaW5nTW9kZSB0ZW1wb3Jh
bFJvdW5kaW5nTW9kZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb3B0
aW9uCiAgICAgICAgICJyb3VuZGluZ01vZGUgbXVzdCBiZSBlaXRoZXIgXCJjZWlsXCIsIFwiZmxv
b3JcIiwgXCJ0cnVuY1wiLCBvciBcImhhbGZFeHBhbmRcIiJfcywgZmFsbGJhY2spOwogfQogCit2
b2lkIGZvcm1hdFNlY29uZHNTdHJpbmdGcmFjdGlvbihTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCB1
bnNpZ25lZCBmcmFjdGlvbiwgc3RkOjp0dXBsZTxQcmVjaXNpb24sIHVuc2lnbmVkPiBwcmVjaXNp
b24pCit7CisgICAgYXV0byBbcHJlY2lzaW9uVHlwZSwgcHJlY2lzaW9uVmFsdWVdID0gcHJlY2lz
aW9uOworICAgIGlmICgocHJlY2lzaW9uVHlwZSA9PSBQcmVjaXNpb246OkF1dG8gJiYgZnJhY3Rp
b24pIHx8IChwcmVjaXNpb25UeXBlID09IFByZWNpc2lvbjo6Rml4ZWQgJiYgcHJlY2lzaW9uVmFs
dWUpKSB7CisgICAgICAgIGF1dG8gcGFkZGVkID0gbWFrZVN0cmluZygnLicsIHBhZCgnMCcsIDks
IGZyYWN0aW9uKSk7CisgICAgICAgIGlmIChwcmVjaXNpb25UeXBlID09IFByZWNpc2lvbjo6Rml4
ZWQpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmdWaWV3KHBhZGRlZCkubGVmdChw
YWRkZWQubGVuZ3RoKCkgLSAoOSAtIHByZWNpc2lvblZhbHVlKSkpOworICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgIGF1dG8gbGVuZ3RoV2l0aG91dFRyYWlsaW5nWmVyb2VzID0gcGFkZGVkLmxl
bmd0aCgpOworICAgICAgICAgICAgd2hpbGUgKHBhZGRlZFtsZW5ndGhXaXRob3V0VHJhaWxpbmda
ZXJvZXMgLSAxXSA9PSAnMCcpCisgICAgICAgICAgICAgICAgbGVuZ3RoV2l0aG91dFRyYWlsaW5n
WmVyb2VzLS07CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmdWaWV3KHBhZGRlZCku
bGVmdChsZW5ndGhXaXRob3V0VHJhaWxpbmdaZXJvZXMpKTsKKyAgICAgICAgfQorICAgIH0KK30K
KwogLy8gTWF4aW11bVRlbXBvcmFsRHVyYXRpb25Sb3VuZGluZ0luY3JlbWVudCAoIHVuaXQgKQog
Ly8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9yYWwtbWF4aW11
bXRlbXBvcmFsZHVyYXRpb25yb3VuZGluZ2luY3JlbWVudAogc3RkOjpvcHRpb25hbDxkb3VibGU+
IG1heGltdW1Sb3VuZGluZ0luY3JlbWVudChUZW1wb3JhbFVuaXQgdW5pdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3JhbE9iamVjdC5oCmluZGV4IGQxNTEyMmE5ZjI4
ODJmMmY5YTI2MWNjNDQ5MmU0NzVhNTZhMDlkOGIuLjI5NTJjODkwZTA0NmFkZWM4Mzk4NGFmZjZj
NzliMjk5YjhjMmY5ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1RlbXBvcmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVt
cG9yYWxPYmplY3QuaApAQCAtOTksNiArOTksNyBAQCBzdGQ6Om9wdGlvbmFsPFRlbXBvcmFsVW5p
dD4gdGVtcG9yYWxTbWFsbGVzdFVuaXQoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogb3B0aQog
c3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gdGVtcG9yYWxGcmFjdGlvbmFsU2Vjb25kRGlnaXRzKEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMpOwogUHJlY2lzaW9uRGF0YSBzZWNvbmRz
U3RyaW5nUHJlY2lzaW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMpOwogUm91
bmRpbmdNb2RlIHRlbXBvcmFsUm91bmRpbmdNb2RlKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
LCBSb3VuZGluZ01vZGUpOwordm9pZCBmb3JtYXRTZWNvbmRzU3RyaW5nRnJhY3Rpb24oU3RyaW5n
QnVpbGRlciYsIHVuc2lnbmVkIGZyYWN0aW9uLCBzdGQ6OnR1cGxlPFByZWNpc2lvbiwgdW5zaWdu
ZWQ+KTsKIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBtYXhpbXVtUm91bmRpbmdJbmNyZW1lbnQoVGVt
cG9yYWxVbml0KTsKIGRvdWJsZSB0ZW1wb3JhbFJvdW5kaW5nSW5jcmVtZW50KEpTR2xvYmFsT2Jq
ZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBkaXZpZGVuZCwg
Ym9vbCBpbmNsdXNpdmUpOwogZG91YmxlIHJvdW5kTnVtYmVyVG9JbmNyZW1lbnQoZG91YmxlLCBk
b3VibGUgaW5jcmVtZW50LCBSb3VuZGluZ01vZGUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFu
Z2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA0Y2U0NDYwN2Q4ZThiMTFmZWU0ODcxMzEz
NWUzMTZmOGUyY2RjNDA0Li42NGUwZWI0ZTMzODg1ZTgzMjJhMzcwNDI0ODUwNGIyZTE2N2JlOWIz
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIxLTA5LTE2ICBQaGlsaXAgQ2hpbWVudG8gIDxwaGlsaXAuY2hp
bWVudG9AZ21haWwuY29tPgorCisgICAgICAgIFZhcmlvdXMgdHdlYWtzIGluIHByZXBhcmF0aW9u
IGZvciBUZW1wb3JhbC5JbnN0YW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzAzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHN0cmVzcy90ZW1wb3JhbC1kdXJhdGlvbi5qczoKKyAgICAgICAgKHNo
b3VsZFRocm93LlRlbXBvcmFsLkR1cmF0aW9uLmZyb20pOiBBZGQgdGVzdCBmb3IgaW52YWxpZAor
ICAgICAgICAgIFRlbXBvcmFsLkR1cmF0aW9uIHN0cmluZyBvZiBsZW5ndGggSU5UMzJfTUFYLgor
CiAyMDIxLTA5LTE1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0pTQ10gT3B0aW1pemUgbGVhZiBvYmplY3QgY3JlYXRpb24gaW4gSlNPTi5wYXJzZQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdGVtcG9yYWwtZHVyYXRpb24uanMgYi9KU1Rlc3RzL3N0
cmVzcy90ZW1wb3JhbC1kdXJhdGlvbi5qcwppbmRleCBmMjc5NzgxZmFjNjVjNzlkOTBhNzdkZTI0
MmFjMWMwZmNiMDA5NjJiLi43YzczMTk2NzZmOWM1OGNmOTg5NWM0ZjNiYTNkMTM1NDM2OTkxNjgw
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90ZW1wb3JhbC1kdXJhdGlvbi5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy90ZW1wb3JhbC1kdXJhdGlvbi5qcwpAQCAtNzcsNyArNzcsOCBAQCBzaG91
bGRUaHJvdygoKSA9PiBUZW1wb3JhbC5EdXJhdGlvbi5mcm9tKHt9KSwgVHlwZUVycm9yKTsKICAg
ICAgICAgJ1AxVzFZJywgICdQVDFTMU0nLAogICAgICAgICAnUDEuMVknLCAnUFQxLjFIMU0nLCAn
UFQxLjFNMVMnLAogICAgICAgICAnUFQxLjExMTExMTExMTFIJywgJ1BUMS4xMTExMTExMTExTScs
ICdQVDEuMTExMTExMTExMVMnLAotICAgICAgICBgUCR7QXJyYXkoMzA5KS5maWxsKDkpLmpvaW4o
JycpfVlgCisgICAgICAgIGBQJHtBcnJheSgzMDkpLmZpbGwoOSkuam9pbignJyl9WWAsCisgICAg
ICAgICdUJy5yZXBlYXQoMjE0NzQ4MzY0NykKICAgICBdOwogICAgIGZvciAoY29uc3QgYmFkU3Ry
aW5nIGluIGJhZFN0cmluZ3MpCiAgICAgICAgIHNob3VsZFRocm93KCgpID0+IFRlbXBvcmFsLkR1
cmF0aW9uLmZyb20oYmFkU3RyaW5nKSwgUmFuZ2VFcnJvcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438998</attachid>
            <date>2021-09-22 17:46:40 -0700</date>
            <delta_ts>2021-09-23 09:41:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230331-20210922174639.patch</filename>
            <type>text/plain</type>
            <size>11342</size>
            <attacher name="Philip Chimento">philip.chimento</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YmNhYTEwNzRlMGE0NzU4MzcwZjljNzU1N2Y4ZjY5NGExYTFkMTM5Li43NmQ5OWRiNzM0NzI1MzYy
ODU1OTIzNjZiOWFiYjdjMzJjNzM3ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAyMS0wOS0yMiAgUGhpbGlwIENoaW1lbnRvICA8cGNoaW1lbnRvQGlnYWxp
YS5jb20+CisKKyAgICAgICAgVmFyaW91cyB0d2Vha3MgaW4gcHJlcGFyYXRpb24gZm9yIFRlbXBv
cmFsLkluc3RhbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDMzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcnVudGltZS9UZW1wb3JhbER1cmF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6VGVtcG9y
YWxEdXJhdGlvbjo6ZnJvbUR1cmF0aW9uTGlrZSk6IFVzZQorICAgICAgICAgIHRlbXBvcmFsVW5p
dFByb3BlcnR5TmFtZSgpLgorICAgICAgICAoSlNDOjplbGxpcHNpemVBdCk6IEFkZCBoZWxwZXIg
dG8gZWxsaXBzaXplIHN0cmluZyBhdCBjZXJ0YWluIGxlbmd0aC4KKyAgICAgICAgKEpTQzo6VGVt
cG9yYWxEdXJhdGlvbjo6dG9JU084NjAxRHVyYXRpb24pOiBJbXByb3ZlIGVycm9yIG1lc3NhZ2Ug
dG8KKyAgICAgICAgICBpbmNsdWRlIHRoZSBpbnZhbGlkIHN0cmluZy4KKyAgICAgICAgKEpTQzo6
VGVtcG9yYWxEdXJhdGlvbjo6d2l0aCBjb25zdCk6IFVzZSB0ZW1wb3JhbFVuaXRQcm9wZXJ0eU5h
bWUoKS4KKyAgICAgICAgKEpTQzo6VGVtcG9yYWxEdXJhdGlvbjo6dG9TdHJpbmcpOiBVc2UgZm9y
bWF0U2Vjb25kc1N0cmluZ0ZyYWN0aW9uKCkuCisgICAgICAgICogcnVudGltZS9UZW1wb3JhbE9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OnRlbXBvcmFsVW5pdFByb3BlcnR5TmFtZSk6IE1vdmUg
Y29kZSBmcm9tIFRlbXBvcmFsRHVyYXRpb24gaW50bworICAgICAgICAgIGEgZnVuY3Rpb24gd2hp
Y2ggd2lsbCBiZSByZXVzZWQgaW4gb3RoZXIgVGVtcG9yYWwgdHlwZXMuCisgICAgICAgIChKU0M6
OnRlbXBvcmFsRnJhY3Rpb25hbFNlY29uZERpZ2l0cyk6IEhhbmRsZSBOYU4gYXMgcGVyCisgICAg
ICAgICAgc3BlY2lmaWNhdGlvbiwgYW5kIGltcHJvdmUgZXJyb3IgbWVzc2FnZSB0byBpbmNsdWRl
IHRoZSBpbnZhbGlkCisgICAgICAgICAgdmFsdWUuCisgICAgICAgIChKU0M6OmZvcm1hdFNlY29u
ZHNTdHJpbmdGcmFjdGlvbik6IE1vdmUgY29kZSBmcm9tIFRlbXBvcmFsRHVyYXRpb24KKyAgICAg
ICAgICBpbnRvIGEgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZSByZXVzZWQgaW4gb3RoZXIgVGVtcG9y
YWwgdHlwZXMuCisgICAgICAgICogcnVudGltZS9UZW1wb3JhbE9iamVjdC5oOgorCiAyMDIxLTA5
LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2lu
ZyBtYWtlUmVmKCp0aGlzKSAvIG1ha2VSZWZQdHIodGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsRHVyYXRpb24uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxEdXJhdGlvbi5jcHAKaW5kZXggNTY1ZDdiMDIyOGJh
YWE1MzA0NDNjZWY2ZDZlN2NlZTMxOWJkZGU4Ny4uNzUzNjg0ZDMyNWU3OWRmYjFhZTU1NmE1ODA3
NjBmNGUzODdhZmJmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VGVtcG9yYWxEdXJhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VGVtcG9yYWxEdXJhdGlvbi5jcHAKQEAgLTM0LDE4ICszNCw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBuYW5vc2Vjb25kc1BlckRheSA9IDI0LjAgKiA2MCAq
IDYwICogMTAwMCAqIDEwMDAgKiAxMDAwOwogCi1zdGF0aWMgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZShWTSYgdm0sIHVuc2lnbmVkIGluZGV4KQotewotICAgIEFTU0VSVChpbmRleCA8IG51bWJl
ck9mVGVtcG9yYWxVbml0cyk7Ci0gICAgc3dpdGNoIChzdGF0aWNfY2FzdDxUZW1wb3JhbFVuaXQ+
KGluZGV4KSkgewotI2RlZmluZSBKU0NfVEVNUE9SQUxfRFVSQVRJT05fUFJPUEVSVFlfTkFNRShu
YW1lLCBjYXBpdGFsaXplZE5hbWUpIGNhc2UgVGVtcG9yYWxVbml0OjpjYXBpdGFsaXplZE5hbWU6
IHJldHVybiB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lIyNzOyAKLSAgICAgICAgSlNDX1RFTVBPUkFM
X1VOSVRTKEpTQ19URU1QT1JBTF9EVVJBVElPTl9QUk9QRVJUWV9OQU1FKQotI3VuZGVmIEpTQ19U
RU1QT1JBTF9EVVJBVElPTl9QUk9QRVJUWV9OQU1FCi0gICAgfQotCi0gICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLX0KLQogY29uc3QgQ2xhc3NJbmZvIFRlbXBvcmFsRHVyYXRpb246
OnNfaW5mbyA9IHsgIk9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoVGVtcG9yYWxEdXJhdGlvbikgfTsKIAogVGVtcG9yYWxEdXJhdGlv
biogVGVtcG9yYWxEdXJhdGlvbjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IElTTzg2MDE6OkR1cmF0aW9uJiYgZHVyYXRpb24pCkBAIC0xMDAsNyArODgsNyBAQCBJU084NjAx
OjpEdXJhdGlvbiBUZW1wb3JhbER1cmF0aW9uOjpmcm9tRHVyYXRpb25MaWtlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplYwogICAgIElTTzg2MDE6OkR1cmF0aW9uIHJlc3VsdDsKICAgICBhdXRv
IGhhc1JlbGV2YW50UHJvcGVydHkgPSBmYWxzZTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG51bWJlck9mVGVtcG9yYWxVbml0czsgaSsrKSB7Ci0gICAgICAgIEpTVmFsdWUgdmFsdWUgPSBk
dXJhdGlvbkxpa2UtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSh2bSwgaSkpOworICAg
ICAgICBKU1ZhbHVlIHZhbHVlID0gZHVyYXRpb25MaWtlLT5nZXQoZ2xvYmFsT2JqZWN0LCB0ZW1w
b3JhbFVuaXRQcm9wZXJ0eU5hbWUodm0sIHN0YXRpY19jYXN0PFRlbXBvcmFsVW5pdD4oaSkpKTsK
ICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgICAgICBpZiAo
dmFsdWUuaXNVbmRlZmluZWQoKSkgewpAQCAtMTI2LDYgKzExNCwxNiBAQCBJU084NjAxOjpEdXJh
dGlvbiBUZW1wb3JhbER1cmF0aW9uOjpmcm9tRHVyYXRpb25MaWtlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplYwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBXVEY6OlN0cmluZyBl
bGxpcHNpemVBdCh1bnNpZ25lZCBtYXhMZW5ndGgsIGNvbnN0IFdURjo6U3RyaW5nJiBzdHJpbmcp
Cit7CisgICAgV1RGOjpTdHJpbmcgY29weSB7IHN0cmluZyB9OworICAgIGlmIChzdHJpbmcubGVu
Z3RoKCkgPiBtYXhMZW5ndGgpIHsKKyAgICAgICAgY29weS50cnVuY2F0ZShtYXhMZW5ndGggLSAx
KTsKKyAgICAgICAgY29weS5hcHBlbmQoVUNoYXIgeyAweDIwMjYgfSk7IC8vIFUrMjAyNiBlbGxp
cHNpcworICAgIH0KKyAgICByZXR1cm4gY29weTsKK30KKwogLy8gVG9MaW1pdGVkVGVtcG9yYWxE
dXJhdGlvbiAoIHRlbXBvcmFsRHVyYXRpb25MaWtlLCBkaXNhbGxvd2VkRmllbGRzICkKIC8vIGh0
dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jc2VjLXRlbXBvcmFsLXRvbGltaXRlZHRl
bXBvcmFsZHVyYXRpb24KIElTTzg2MDE6OkR1cmF0aW9uIFRlbXBvcmFsRHVyYXRpb246OnRvSVNP
ODYwMUR1cmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgaXRlbVZh
bHVlKQpAQCAtMTQzLDcgKzE0MSw4IEBAIElTTzg2MDE6OkR1cmF0aW9uIFRlbXBvcmFsRHVyYXRp
b246OnRvSVNPODYwMUR1cmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAKICAgICAg
ICAgYXV0byBwYXJzZWREdXJhdGlvbiA9IElTTzg2MDE6OnBhcnNlRHVyYXRpb24oc3RyaW5nKTsK
ICAgICAgICAgaWYgKCFwYXJzZWREdXJhdGlvbikgewotICAgICAgICAgICAgdGhyb3dSYW5nZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJDb3VsZCBub3QgcGFyc2UgRHVyYXRpb24gc3RyaW5n
Il9zKTsKKyAgICAgICAgICAgIC8vIDMwOTA6IDMwOCBkaWdpdHMgKiAxMCBmaWVsZHMgKyAxMCBk
ZXNpZ25hdG9ycworICAgICAgICAgICAgdGhyb3dSYW5nZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUsIG1ha2VTdHJpbmcoIiciX3MsIGVsbGlwc2l6ZUF0KDMwOTAsIHN0cmluZyksICInIGlzIG5v
dCBhIHZhbGlkIER1cmF0aW9uIHN0cmluZyJfcykpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICAgICAgfQogCkBAIC0yNDEsNyArMjQwLDcgQEAgSVNPODYwMTo6RHVyYXRpb24gVGVtcG9y
YWxEdXJhdGlvbjo6d2l0aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCoK
ICAgICBJU084NjAxOjpEdXJhdGlvbiByZXN1bHQ7CiAgICAgYXV0byBoYXNSZWxldmFudFByb3Bl
cnR5ID0gZmFsc2U7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1iZXJPZlRlbXBvcmFs
VW5pdHM7IGkrKykgewotICAgICAgICBKU1ZhbHVlIHZhbHVlID0gZHVyYXRpb25MaWtlLT5nZXQo
Z2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUodm0sIGkpKTsKKyAgICAgICAgSlNWYWx1ZSB2YWx1
ZSA9IGR1cmF0aW9uTGlrZS0+Z2V0KGdsb2JhbE9iamVjdCwgdGVtcG9yYWxVbml0UHJvcGVydHlO
YW1lKHZtLCBzdGF0aWNfY2FzdDxUZW1wb3JhbFVuaXQ+KGkpKSk7CiAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICAgICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVk
KCkpIHsKQEAgLTU1MCw4ICs1NDksNyBAQCBTdHJpbmcgVGVtcG9yYWxEdXJhdGlvbjo6dG9TdHJp
bmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBvcHRpb25zVgogLy8gaHR0
cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9yYWwtdGVtcG9yYWxkdXJh
dGlvbnRvc3RyaW5nCiBTdHJpbmcgVGVtcG9yYWxEdXJhdGlvbjo6dG9TdHJpbmcoY29uc3QgSVNP
ODYwMTo6RHVyYXRpb24mIGR1cmF0aW9uLCBzdGQ6OnR1cGxlPFByZWNpc2lvbiwgdW5zaWduZWQ+
IHByZWNpc2lvbikKIHsKLSAgICBhdXRvIFtwcmVjaXNpb25UeXBlLCBwcmVjaXNpb25WYWx1ZV0g
PSBwcmVjaXNpb247Ci0gICAgQVNTRVJUKHByZWNpc2lvblR5cGUgPT0gUHJlY2lzaW9uOjpBdXRv
IHx8IHByZWNpc2lvblZhbHVlIDwgMTApOworICAgIEFTU0VSVChzdGQ6OmdldDwwPihwcmVjaXNp
b24pID09IFByZWNpc2lvbjo6QXV0byB8fCBzdGQ6OmdldDwxPihwcmVjaXNpb24pIDwgMTApOwog
CiAgICAgYXV0byBiYWxhbmNlZE1pY3Jvc2Vjb25kcyA9IGR1cmF0aW9uLm1pY3Jvc2Vjb25kcygp
ICsgc3RkOjp0cnVuYyhkdXJhdGlvbi5uYW5vc2Vjb25kcygpIC8gMTAwMCk7CiAgICAgYXV0byBi
YWxhbmNlZE5hbm9zZWNvbmRzID0gc3RkOjpmbW9kKGR1cmF0aW9uLm5hbm9zZWNvbmRzKCksIDEw
MDApOwpAQCAtNTk4LDE3ICs1OTYsNyBAQCBTdHJpbmcgVGVtcG9yYWxEdXJhdGlvbjo6dG9TdHJp
bmcoY29uc3QgSVNPODYwMTo6RHVyYXRpb24mIGR1cmF0aW9uLCBzdGQ6OnR1cGxlPAogICAgICAg
ICBidWlsZGVyLmFwcGVuZChmb3JtYXRJbnRlZ2VyKGJhbGFuY2VkU2Vjb25kcykpOwogCiAgICAg
ICAgIGF1dG8gZnJhY3Rpb24gPSBzdGQ6OmFicyhiYWxhbmNlZE1pbGxpc2Vjb25kcykgKiAxZTYg
KyBzdGQ6OmFicyhiYWxhbmNlZE1pY3Jvc2Vjb25kcykgKiAxZTMgKyBzdGQ6OmFicyhiYWxhbmNl
ZE5hbm9zZWNvbmRzKTsKLSAgICAgICAgaWYgKChwcmVjaXNpb25UeXBlID09IFByZWNpc2lvbjo6
QXV0byAmJiBmcmFjdGlvbikgfHwgKHByZWNpc2lvblR5cGUgPT0gUHJlY2lzaW9uOjpGaXhlZCAm
JiBwcmVjaXNpb25WYWx1ZSkpIHsKLSAgICAgICAgICAgIGF1dG8gcGFkZGVkID0gbWFrZVN0cmlu
ZygnLicsIHBhZCgnMCcsIDksIGZyYWN0aW9uKSk7Ci0gICAgICAgICAgICBpZiAocHJlY2lzaW9u
VHlwZSA9PSBQcmVjaXNpb246OkZpeGVkKQotICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZ1ZpZXcocGFkZGVkKS5sZWZ0KHBhZGRlZC5sZW5ndGgoKSAtICg5IC0gcHJlY2lzaW9u
VmFsdWUpKSk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBhdXRvIGxlbmd0
aFdpdGhvdXRUcmFpbGluZ1plcm9lcyA9IHBhZGRlZC5sZW5ndGgoKTsKLSAgICAgICAgICAgICAg
ICB3aGlsZSAocGFkZGVkW2xlbmd0aFdpdGhvdXRUcmFpbGluZ1plcm9lcyAtIDFdID09ICcwJykK
LSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoV2l0aG91dFRyYWlsaW5nWmVyb2VzLS07Ci0gICAg
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nVmlldyhwYWRkZWQpLmxlZnQobGVuZ3Ro
V2l0aG91dFRyYWlsaW5nWmVyb2VzKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAg
ICAgZm9ybWF0U2Vjb25kc1N0cmluZ0ZyYWN0aW9uKGJ1aWxkZXIsIGZyYWN0aW9uLCBwcmVjaXNp
b24pOwogCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdTJyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxPYmplY3QuY3BwCmluZGV4IGE0ZTRlYzYx
NWIzMTg2Njg0NWIwYjFkY2RmY2U1ZGI0ODQ4OWIwZDguLmJhZDAyMGZhNTlmZjU4OWQyZGY2ODAx
NGQzY2U2NTZjYzc1MDk1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1RlbXBvcmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9UZW1wb3JhbE9iamVjdC5jcHAKQEAgLTEyNSw2ICsxMjUsMTcgQEAgc3RhdGljIFN0cmluZ1Zp
ZXcgc2luZ3VsYXJVbml0KFN0cmluZ1ZpZXcgdW5pdCkKICAgICByZXR1cm4gdW5pdC5lbmRzV2l0
aCgicyIpID8gdW5pdC5sZWZ0KHVuaXQubGVuZ3RoKCkgLSAxKSA6IHVuaXQ7CiB9CiAKK1Byb3Bl
cnR5TmFtZSB0ZW1wb3JhbFVuaXRQcm9wZXJ0eU5hbWUoVk0mIHZtLCBUZW1wb3JhbFVuaXQgdW5p
dCkKK3sKKyAgICBzd2l0Y2ggKHVuaXQpIHsKKyNkZWZpbmUgSlNDX1RFTVBPUkFMX0RVUkFUSU9O
X1BST1BFUlRZX05BTUUobmFtZSwgY2FwaXRhbGl6ZWROYW1lKSBjYXNlIFRlbXBvcmFsVW5pdDo6
Y2FwaXRhbGl6ZWROYW1lOiByZXR1cm4gdm0ucHJvcGVydHlOYW1lcy0+bmFtZSMjczsgCisgICAg
ICAgIEpTQ19URU1QT1JBTF9VTklUUyhKU0NfVEVNUE9SQUxfRFVSQVRJT05fUFJPUEVSVFlfTkFN
RSkKKyN1bmRlZiBKU0NfVEVNUE9SQUxfRFVSQVRJT05fUFJPUEVSVFlfTkFNRQorICAgIH0KKwor
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIHN0ZDo6b3B0aW9uYWw8VGVt
cG9yYWxVbml0PiB0ZW1wb3JhbFVuaXRUeXBlKFN0cmluZ1ZpZXcgdW5pdCkKIHsKICAgICBTdHJp
bmdWaWV3IHNpbmd1bGFyID0gc2luZ3VsYXJVbml0KHVuaXQpOwpAQCAtMjI4LDggKzIzOSw4IEBA
IHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHRlbXBvcmFsRnJhY3Rpb25hbFNlY29uZERpZ2l0cyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAKICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkgewog
ICAgICAgICBkb3VibGUgZG91YmxlVmFsdWUgPSB2YWx1ZS5hc051bWJlcigpOwotICAgICAgICBp
ZiAoZG91YmxlVmFsdWUgPCAwIHx8IGRvdWJsZVZhbHVlID4gOSkgewotICAgICAgICAgICAgdGhy
b3dSYW5nZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJmcmFjdGlvbmFsU2Vjb25kRGlnaXRz
IGlzIG91dCBvZiByYW5nZSJfcyk7CisgICAgICAgIGlmIChzdGQ6OmlzbmFuKGRvdWJsZVZhbHVl
KSB8fCBkb3VibGVWYWx1ZSA8IDAgfHwgZG91YmxlVmFsdWUgPiA5KSB7CisgICAgICAgICAgICB0
aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgbWFrZVN0cmluZygiZnJhY3Rpb25h
bFNlY29uZERpZ2l0cyBtdXN0IGJlICdhdXRvJyBvciAwIHRocm91Z2ggOSwgbm90ICJfcywgZG91
YmxlVmFsdWUpKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0K
IApAQCAtMjQwLDcgKzI1MSw3IEBAIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHRlbXBvcmFsRnJh
Y3Rpb25hbFNlY29uZERpZ2l0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgc3RkOjpudWxsb3B0KTsKIAogICAgIGlmIChzdHJpbmdWYWx1
ZSAhPSAiYXV0byIpCi0gICAgICAgIHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiZnJhY3Rpb25hbFNlY29uZERpZ2l0cyBpcyBvdXQgb2YgcmFuZ2UiX3MpOworICAgICAgICB0
aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgbWFrZVN0cmluZygiZnJhY3Rpb25h
bFNlY29uZERpZ2l0cyBtdXN0IGJlICdhdXRvJyBvciAwIHRocm91Z2ggOSwgbm90ICJfcywgc3Ry
aW5nVmFsdWUpKTsKIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CkBAIC0zMDksNiArMzIw
LDIyIEBAIFJvdW5kaW5nTW9kZSB0ZW1wb3JhbFJvdW5kaW5nTW9kZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU09iamVjdCogb3B0aW9uCiAgICAgICAgICJyb3VuZGluZ01vZGUgbXVz
dCBiZSBlaXRoZXIgXCJjZWlsXCIsIFwiZmxvb3JcIiwgXCJ0cnVuY1wiLCBvciBcImhhbGZFeHBh
bmRcIiJfcywgZmFsbGJhY2spOwogfQogCit2b2lkIGZvcm1hdFNlY29uZHNTdHJpbmdGcmFjdGlv
bihTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCB1bnNpZ25lZCBmcmFjdGlvbiwgc3RkOjp0dXBsZTxQ
cmVjaXNpb24sIHVuc2lnbmVkPiBwcmVjaXNpb24pCit7CisgICAgYXV0byBbcHJlY2lzaW9uVHlw
ZSwgcHJlY2lzaW9uVmFsdWVdID0gcHJlY2lzaW9uOworICAgIGlmICgocHJlY2lzaW9uVHlwZSA9
PSBQcmVjaXNpb246OkF1dG8gJiYgZnJhY3Rpb24pIHx8IChwcmVjaXNpb25UeXBlID09IFByZWNp
c2lvbjo6Rml4ZWQgJiYgcHJlY2lzaW9uVmFsdWUpKSB7CisgICAgICAgIGF1dG8gcGFkZGVkID0g
bWFrZVN0cmluZygnLicsIHBhZCgnMCcsIDksIGZyYWN0aW9uKSk7CisgICAgICAgIGlmIChwcmVj
aXNpb25UeXBlID09IFByZWNpc2lvbjo6Rml4ZWQpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZChTdHJpbmdWaWV3KHBhZGRlZCkubGVmdChwYWRkZWQubGVuZ3RoKCkgLSAoOSAtIHByZWNpc2lv
blZhbHVlKSkpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGF1dG8gbGVuZ3RoV2l0aG91
dFRyYWlsaW5nWmVyb2VzID0gcGFkZGVkLmxlbmd0aCgpOworICAgICAgICAgICAgd2hpbGUgKHBh
ZGRlZFtsZW5ndGhXaXRob3V0VHJhaWxpbmdaZXJvZXMgLSAxXSA9PSAnMCcpCisgICAgICAgICAg
ICAgICAgbGVuZ3RoV2l0aG91dFRyYWlsaW5nWmVyb2VzLS07CisgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZChTdHJpbmdWaWV3KHBhZGRlZCkubGVmdChsZW5ndGhXaXRob3V0VHJhaWxpbmdaZXJv
ZXMpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogLy8gTWF4aW11bVRlbXBvcmFsRHVyYXRpb25S
b3VuZGluZ0luY3JlbWVudCAoIHVuaXQgKQogLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXRl
bXBvcmFsLyNzZWMtdGVtcG9yYWwtbWF4aW11bXRlbXBvcmFsZHVyYXRpb25yb3VuZGluZ2luY3Jl
bWVudAogc3RkOjpvcHRpb25hbDxkb3VibGU+IG1heGltdW1Sb3VuZGluZ0luY3JlbWVudChUZW1w
b3JhbFVuaXQgdW5pdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1RlbXBvcmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wb3Jh
bE9iamVjdC5oCmluZGV4IGQxNTEyMmE5ZjI4ODJmMmY5YTI2MWNjNDQ5MmU0NzVhNTZhMDlkOGIu
LjNiMTQ1MjIzNmY5MThmYmU4MDUwMzEzYjQzOTVjNTUzMGY4ZDJkZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxPYmplY3QuaApAQCAtOTMsMTIgKzkzLDE0
IEBAIHN0cnVjdCBQcmVjaXNpb25EYXRhIHsKICAgICB1bnNpZ25lZCBpbmNyZW1lbnQ7CiB9Owog
CitQcm9wZXJ0eU5hbWUgdGVtcG9yYWxVbml0UHJvcGVydHlOYW1lKFZNJiwgVGVtcG9yYWxVbml0
KTsKIHN0ZDo6b3B0aW9uYWw8VGVtcG9yYWxVbml0PiB0ZW1wb3JhbFVuaXRUeXBlKFN0cmluZ1Zp
ZXcpOwogc3RkOjpvcHRpb25hbDxUZW1wb3JhbFVuaXQ+IHRlbXBvcmFsTGFyZ2VzdFVuaXQoSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCogb3B0aW9ucywgc3RkOjppbml0aWFsaXplcl9saXN0PFRl
bXBvcmFsVW5pdD4gZGlzYWxsb3dlZFVuaXRzLCBUZW1wb3JhbFVuaXQgYXV0b1ZhbHVlKTsKIHN0
ZDo6b3B0aW9uYWw8VGVtcG9yYWxVbml0PiB0ZW1wb3JhbFNtYWxsZXN0VW5pdChKU0dsb2JhbE9i
amVjdCosIEpTT2JqZWN0KiBvcHRpb25zLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VGVtcG9yYWxV
bml0PiBkaXNhbGxvd2VkVW5pdHMpOwogc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gdGVtcG9yYWxG
cmFjdGlvbmFsU2Vjb25kRGlnaXRzKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMp
OwogUHJlY2lzaW9uRGF0YSBzZWNvbmRzU3RyaW5nUHJlY2lzaW9uKEpTR2xvYmFsT2JqZWN0Kiwg
SlNPYmplY3QqIG9wdGlvbnMpOwogUm91bmRpbmdNb2RlIHRlbXBvcmFsUm91bmRpbmdNb2RlKEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBSb3VuZGluZ01vZGUpOwordm9pZCBmb3JtYXRTZWNv
bmRzU3RyaW5nRnJhY3Rpb24oU3RyaW5nQnVpbGRlciYsIHVuc2lnbmVkIGZyYWN0aW9uLCBzdGQ6
OnR1cGxlPFByZWNpc2lvbiwgdW5zaWduZWQ+KTsKIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBtYXhp
bXVtUm91bmRpbmdJbmNyZW1lbnQoVGVtcG9yYWxVbml0KTsKIGRvdWJsZSB0ZW1wb3JhbFJvdW5k
aW5nSW5jcmVtZW50KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMsIHN0ZDo6b3B0
aW9uYWw8ZG91YmxlPiBkaXZpZGVuZCwgYm9vbCBpbmNsdXNpdmUpOwogZG91YmxlIHJvdW5kTnVt
YmVyVG9JbmNyZW1lbnQoZG91YmxlLCBkb3VibGUgaW5jcmVtZW50LCBSb3VuZGluZ01vZGUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439052</attachid>
            <date>2021-09-23 09:42:08 -0700</date>
            <delta_ts>2021-09-23 14:51:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230331-20210923094208.patch</filename>
            <type>text/plain</type>
            <size>11446</size>
            <attacher name="Philip Chimento">philip.chimento</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YmNhYTEwNzRlMGE0NzU4MzcwZjljNzU1N2Y4ZjY5NGExYTFkMTM5Li41MmY2Y2ViYTViOWQwMTNh
YTJlN2VlMGFmZmVlZTczZTkwODk0MGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAyMS0wOS0yMyAgUGhpbGlwIENoaW1lbnRvICA8cGNoaW1lbnRvQGlnYWxp
YS5jb20+CisKKyAgICAgICAgVmFyaW91cyB0d2Vha3MgaW4gcHJlcGFyYXRpb24gZm9yIFRlbXBv
cmFsLkluc3RhbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDMzMQorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAg
ICAgKiBydW50aW1lL1RlbXBvcmFsRHVyYXRpb24uY3BwOgorICAgICAgICAoSlNDOjpUZW1wb3Jh
bER1cmF0aW9uOjpmcm9tRHVyYXRpb25MaWtlKTogVXNlCisgICAgICAgICAgdGVtcG9yYWxVbml0
UHJvcGVydHlOYW1lKCkuCisgICAgICAgIChKU0M6OlRlbXBvcmFsRHVyYXRpb246OnRvSVNPODYw
MUR1cmF0aW9uKTogSW1wcm92ZSBlcnJvciBtZXNzYWdlIHRvCisgICAgICAgICAgaW5jbHVkZSB0
aGUgaW52YWxpZCBzdHJpbmcuCisgICAgICAgIChKU0M6OlRlbXBvcmFsRHVyYXRpb246OndpdGgg
Y29uc3QpOiBVc2UgdGVtcG9yYWxVbml0UHJvcGVydHlOYW1lKCkuCisgICAgICAgIChKU0M6OlRl
bXBvcmFsRHVyYXRpb246OnRvU3RyaW5nKTogVXNlIGZvcm1hdFNlY29uZHNTdHJpbmdGcmFjdGlv
bigpLgorICAgICAgICAqIHJ1bnRpbWUvVGVtcG9yYWxPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjplbGxpcHNpemVBdCk6IEFkZCBoZWxwZXIgdG8gZWxsaXBzaXplIHN0cmluZyBhdCBjZXJ0YWlu
IGxlbmd0aC4KKyAgICAgICAgKEpTQzo6dGVtcG9yYWxVbml0UHJvcGVydHlOYW1lKTogTW92ZSBj
b2RlIGZyb20gVGVtcG9yYWxEdXJhdGlvbiBpbnRvCisgICAgICAgICAgYSBmdW5jdGlvbiB3aGlj
aCB3aWxsIGJlIHJldXNlZCBpbiBvdGhlciBUZW1wb3JhbCB0eXBlcy4KKyAgICAgICAgKEpTQzo6
dGVtcG9yYWxGcmFjdGlvbmFsU2Vjb25kRGlnaXRzKTogSGFuZGxlIE5hTiBhcyBwZXIKKyAgICAg
ICAgICBzcGVjaWZpY2F0aW9uLCBhbmQgaW1wcm92ZSBlcnJvciBtZXNzYWdlIHRvIGluY2x1ZGUg
dGhlIGludmFsaWQKKyAgICAgICAgICB2YWx1ZS4KKyAgICAgICAgKEpTQzo6Zm9ybWF0U2Vjb25k
c1N0cmluZ0ZyYWN0aW9uKTogTW92ZSBjb2RlIGZyb20gVGVtcG9yYWxEdXJhdGlvbgorICAgICAg
ICAgIGludG8gYSBmdW5jdGlvbiB3aGljaCB3aWxsIGJlIHJldXNlZCBpbiBvdGhlciBUZW1wb3Jh
bCB0eXBlcy4KKyAgICAgICAgKiBydW50aW1lL1RlbXBvcmFsT2JqZWN0Lmg6CisKIDIwMjEtMDkt
MjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5n
IG1ha2VSZWYoKnRoaXMpIC8gbWFrZVJlZlB0cih0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxEdXJhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9UZW1wb3JhbER1cmF0aW9uLmNwcAppbmRleCA1NjVkN2IwMjI4YmFh
YTUzMDQ0M2NlZjZkNmU3Y2VlMzE5YmRkZTg3Li5mYjYwNzRjYjg1ODRmOWNjODBhYWI3ZTJiNDEx
YWY2MGQyYjFmMGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
ZW1wb3JhbER1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
ZW1wb3JhbER1cmF0aW9uLmNwcApAQCAtMjgsMjQgKzI4LDEzIEBACiAKICNpbmNsdWRlICJJbnRs
T2JqZWN0SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJUZW1w
b3JhbE9iamVjdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFt
ZXNwYWNlIEpTQyB7CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIG5hbm9zZWNvbmRzUGVyRGF5
ID0gMjQuMCAqIDYwICogNjAgKiAxMDAwICogMTAwMCAqIDEwMDA7CiAKLXN0YXRpYyBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lKFZNJiB2bSwgdW5zaWduZWQgaW5kZXgpCi17Ci0gICAgQVNTRVJU
KGluZGV4IDwgbnVtYmVyT2ZUZW1wb3JhbFVuaXRzKTsKLSAgICBzd2l0Y2ggKHN0YXRpY19jYXN0
PFRlbXBvcmFsVW5pdD4oaW5kZXgpKSB7Ci0jZGVmaW5lIEpTQ19URU1QT1JBTF9EVVJBVElPTl9Q
Uk9QRVJUWV9OQU1FKG5hbWUsIGNhcGl0YWxpemVkTmFtZSkgY2FzZSBUZW1wb3JhbFVuaXQ6OmNh
cGl0YWxpemVkTmFtZTogcmV0dXJuIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUjI3M7IAotICAgICAg
ICBKU0NfVEVNUE9SQUxfVU5JVFMoSlNDX1RFTVBPUkFMX0RVUkFUSU9OX1BST1BFUlRZX05BTUUp
Ci0jdW5kZWYgSlNDX1RFTVBPUkFMX0RVUkFUSU9OX1BST1BFUlRZX05BTUUKLSAgICB9Ci0KLSAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCiBjb25zdCBDbGFzc0luZm8gVGVt
cG9yYWxEdXJhdGlvbjo6c19pbmZvID0geyAiT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0
ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShUZW1wb3JhbER1cmF0aW9uKSB9OwogCiBU
ZW1wb3JhbER1cmF0aW9uKiBUZW1wb3JhbER1cmF0aW9uOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSVNPODYwMTo6RHVyYXRpb24mJiBkdXJhdGlvbikKQEAgLTEwMCw3ICs4
OSw3IEBAIElTTzg2MDE6OkR1cmF0aW9uIFRlbXBvcmFsRHVyYXRpb246OmZyb21EdXJhdGlvbkxp
a2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgSVNPODYwMTo6RHVyYXRpb24gcmVz
dWx0OwogICAgIGF1dG8gaGFzUmVsZXZhbnRQcm9wZXJ0eSA9IGZhbHNlOwogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZUZW1wb3JhbFVuaXRzOyBpKyspIHsKLSAgICAgICAgSlNW
YWx1ZSB2YWx1ZSA9IGR1cmF0aW9uTGlrZS0+Z2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
KHZtLCBpKSk7CisgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBkdXJhdGlvbkxpa2UtPmdldChnbG9i
YWxPYmplY3QsIHRlbXBvcmFsVW5pdFByb3BlcnR5TmFtZSh2bSwgc3RhdGljX2Nhc3Q8VGVtcG9y
YWxVbml0PihpKSkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwog
CiAgICAgICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZCgpKSB7CkBAIC0xNDMsNyArMTMyLDggQEAg
SVNPODYwMTo6RHVyYXRpb24gVGVtcG9yYWxEdXJhdGlvbjo6dG9JU084NjAxRHVyYXRpb24oSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamUKIAogICAgICAgICBhdXRvIHBhcnNlZER1cmF0aW9uID0g
SVNPODYwMTo6cGFyc2VEdXJhdGlvbihzdHJpbmcpOwogICAgICAgICBpZiAoIXBhcnNlZER1cmF0
aW9uKSB7Ci0gICAgICAgICAgICB0aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IkNvdWxkIG5vdCBwYXJzZSBEdXJhdGlvbiBzdHJpbmciX3MpOworICAgICAgICAgICAgLy8gMzA5
MDogMzA4IGRpZ2l0cyAqIDEwIGZpZWxkcyArIDEwIGRlc2lnbmF0b3JzCisgICAgICAgICAgICB0
aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgbWFrZVN0cmluZygiJyJfcywgZWxs
aXBzaXplQXQoMzA5MCwgc3RyaW5nKSwgIicgaXMgbm90IGEgdmFsaWQgRHVyYXRpb24gc3RyaW5n
Il9zKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTI0MSw3ICsy
MzEsNyBAQCBJU084NjAxOjpEdXJhdGlvbiBUZW1wb3JhbER1cmF0aW9uOjp3aXRoKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KgogICAgIElTTzg2MDE6OkR1cmF0aW9uIHJl
c3VsdDsKICAgICBhdXRvIGhhc1JlbGV2YW50UHJvcGVydHkgPSBmYWxzZTsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG51bWJlck9mVGVtcG9yYWxVbml0czsgaSsrKSB7Ci0gICAgICAgIEpT
VmFsdWUgdmFsdWUgPSBkdXJhdGlvbkxpa2UtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFt
ZSh2bSwgaSkpOworICAgICAgICBKU1ZhbHVlIHZhbHVlID0gZHVyYXRpb25MaWtlLT5nZXQoZ2xv
YmFsT2JqZWN0LCB0ZW1wb3JhbFVuaXRQcm9wZXJ0eU5hbWUodm0sIHN0YXRpY19jYXN0PFRlbXBv
cmFsVW5pdD4oaSkpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
IAogICAgICAgICBpZiAodmFsdWUuaXNVbmRlZmluZWQoKSkgewpAQCAtNTUwLDggKzU0MCw3IEBA
IFN0cmluZyBUZW1wb3JhbER1cmF0aW9uOjp0b1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIG9wdGlvbnNWCiAvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtdGVt
cG9yYWwvI3NlYy10ZW1wb3JhbC10ZW1wb3JhbGR1cmF0aW9udG9zdHJpbmcKIFN0cmluZyBUZW1w
b3JhbER1cmF0aW9uOjp0b1N0cmluZyhjb25zdCBJU084NjAxOjpEdXJhdGlvbiYgZHVyYXRpb24s
IHN0ZDo6dHVwbGU8UHJlY2lzaW9uLCB1bnNpZ25lZD4gcHJlY2lzaW9uKQogewotICAgIGF1dG8g
W3ByZWNpc2lvblR5cGUsIHByZWNpc2lvblZhbHVlXSA9IHByZWNpc2lvbjsKLSAgICBBU1NFUlQo
cHJlY2lzaW9uVHlwZSA9PSBQcmVjaXNpb246OkF1dG8gfHwgcHJlY2lzaW9uVmFsdWUgPCAxMCk7
CisgICAgQVNTRVJUKHN0ZDo6Z2V0PDA+KHByZWNpc2lvbikgPT0gUHJlY2lzaW9uOjpBdXRvIHx8
IHN0ZDo6Z2V0PDE+KHByZWNpc2lvbikgPCAxMCk7CiAKICAgICBhdXRvIGJhbGFuY2VkTWljcm9z
ZWNvbmRzID0gZHVyYXRpb24ubWljcm9zZWNvbmRzKCkgKyBzdGQ6OnRydW5jKGR1cmF0aW9uLm5h
bm9zZWNvbmRzKCkgLyAxMDAwKTsKICAgICBhdXRvIGJhbGFuY2VkTmFub3NlY29uZHMgPSBzdGQ6
OmZtb2QoZHVyYXRpb24ubmFub3NlY29uZHMoKSwgMTAwMCk7CkBAIC01OTgsMTcgKzU4Nyw3IEBA
IFN0cmluZyBUZW1wb3JhbER1cmF0aW9uOjp0b1N0cmluZyhjb25zdCBJU084NjAxOjpEdXJhdGlv
biYgZHVyYXRpb24sIHN0ZDo6dHVwbGU8CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGZvcm1hdElu
dGVnZXIoYmFsYW5jZWRTZWNvbmRzKSk7CiAKICAgICAgICAgYXV0byBmcmFjdGlvbiA9IHN0ZDo6
YWJzKGJhbGFuY2VkTWlsbGlzZWNvbmRzKSAqIDFlNiArIHN0ZDo6YWJzKGJhbGFuY2VkTWljcm9z
ZWNvbmRzKSAqIDFlMyArIHN0ZDo6YWJzKGJhbGFuY2VkTmFub3NlY29uZHMpOwotICAgICAgICBp
ZiAoKHByZWNpc2lvblR5cGUgPT0gUHJlY2lzaW9uOjpBdXRvICYmIGZyYWN0aW9uKSB8fCAocHJl
Y2lzaW9uVHlwZSA9PSBQcmVjaXNpb246OkZpeGVkICYmIHByZWNpc2lvblZhbHVlKSkgewotICAg
ICAgICAgICAgYXV0byBwYWRkZWQgPSBtYWtlU3RyaW5nKCcuJywgcGFkKCcwJywgOSwgZnJhY3Rp
b24pKTsKLSAgICAgICAgICAgIGlmIChwcmVjaXNpb25UeXBlID09IFByZWNpc2lvbjo6Rml4ZWQp
Ci0gICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nVmlldyhwYWRkZWQpLmxlZnQo
cGFkZGVkLmxlbmd0aCgpIC0gKDkgLSBwcmVjaXNpb25WYWx1ZSkpKTsKLSAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgIGF1dG8gbGVuZ3RoV2l0aG91dFRyYWlsaW5nWmVyb2VzID0g
cGFkZGVkLmxlbmd0aCgpOwotICAgICAgICAgICAgICAgIHdoaWxlIChwYWRkZWRbbGVuZ3RoV2l0
aG91dFRyYWlsaW5nWmVyb2VzIC0gMV0gPT0gJzAnKQotICAgICAgICAgICAgICAgICAgICBsZW5n
dGhXaXRob3V0VHJhaWxpbmdaZXJvZXMtLTsKLSAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZChTdHJpbmdWaWV3KHBhZGRlZCkubGVmdChsZW5ndGhXaXRob3V0VHJhaWxpbmdaZXJvZXMpKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICBmb3JtYXRTZWNvbmRzU3RyaW5nRnJh
Y3Rpb24oYnVpbGRlciwgZnJhY3Rpb24sIHByZWNpc2lvbik7CiAKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoJ1MnKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9UZW1wb3JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
ZW1wb3JhbE9iamVjdC5jcHAKaW5kZXggYTRlNGVjNjE1YjMxODY2ODQ1YjBiMWRjZGZjZTVkYjQ4
NDg5YjBkOC4uODNjZDVkYjBkOTNkMGFiZjljMmFlYWE0OTU3ZTkyOWU5ODhjNDZkMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsT2JqZWN0LmNwcApAQCAt
MzcsNiArMzcsOCBAQAogI2luY2x1ZGUgIlRlbXBvcmFsUGxhaW5UaW1lUHJvdG90eXBlLmgiCiAj
aW5jbHVkZSAiVGVtcG9yYWxUaW1lWm9uZUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiVGVtcG9y
YWxUaW1lWm9uZVByb3RvdHlwZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVu
YXRlLmg+CisjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CiAKQEAgLTEyNSw2ICsxMjcsMjggQEAgc3RhdGljIFN0cmluZ1ZpZXcgc2luZ3Vs
YXJVbml0KFN0cmluZ1ZpZXcgdW5pdCkKICAgICByZXR1cm4gdW5pdC5lbmRzV2l0aCgicyIpID8g
dW5pdC5sZWZ0KHVuaXQubGVuZ3RoKCkgLSAxKSA6IHVuaXQ7CiB9CiAKKy8vIEZvciB1c2UgaW4g
ZXJyb3IgbWVzc2FnZXMgd2hlcmUgYSBzdHJpbmcgdmFsdWUgaXMgcG90ZW50aWFsbHkgdW5ib3Vu
ZGVkCitXVEY6OlN0cmluZyBlbGxpcHNpemVBdCh1bnNpZ25lZCBtYXhMZW5ndGgsIGNvbnN0IFdU
Rjo6U3RyaW5nJiBzdHJpbmcpCit7CisgICAgV1RGOjpTdHJpbmcgY29weSB7IHN0cmluZyB9Owor
ICAgIGlmIChzdHJpbmcubGVuZ3RoKCkgPiBtYXhMZW5ndGgpIHsKKyAgICAgICAgY29weS50cnVu
Y2F0ZShtYXhMZW5ndGggLSAxKTsKKyAgICAgICAgY29weS5hcHBlbmQoaG9yaXpvbnRhbEVsbGlw
c2lzKTsKKyAgICB9CisgICAgcmV0dXJuIGNvcHk7Cit9CisKK1Byb3BlcnR5TmFtZSB0ZW1wb3Jh
bFVuaXRQcm9wZXJ0eU5hbWUoVk0mIHZtLCBUZW1wb3JhbFVuaXQgdW5pdCkKK3sKKyAgICBzd2l0
Y2ggKHVuaXQpIHsKKyNkZWZpbmUgSlNDX1RFTVBPUkFMX0RVUkFUSU9OX1BST1BFUlRZX05BTUUo
bmFtZSwgY2FwaXRhbGl6ZWROYW1lKSBjYXNlIFRlbXBvcmFsVW5pdDo6Y2FwaXRhbGl6ZWROYW1l
OiByZXR1cm4gdm0ucHJvcGVydHlOYW1lcy0+bmFtZSMjczsgCisgICAgICAgIEpTQ19URU1QT1JB
TF9VTklUUyhKU0NfVEVNUE9SQUxfRFVSQVRJT05fUFJPUEVSVFlfTkFNRSkKKyN1bmRlZiBKU0Nf
VEVNUE9SQUxfRFVSQVRJT05fUFJPUEVSVFlfTkFNRQorICAgIH0KKworICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIHN0ZDo6b3B0aW9uYWw8VGVtcG9yYWxVbml0PiB0ZW1w
b3JhbFVuaXRUeXBlKFN0cmluZ1ZpZXcgdW5pdCkKIHsKICAgICBTdHJpbmdWaWV3IHNpbmd1bGFy
ID0gc2luZ3VsYXJVbml0KHVuaXQpOwpAQCAtMjI4LDggKzI1Miw4IEBAIHN0ZDo6b3B0aW9uYWw8
dW5zaWduZWQ+IHRlbXBvcmFsRnJhY3Rpb25hbFNlY29uZERpZ2l0cyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqCiAKICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkgewogICAgICAgICBkb3VibGUg
ZG91YmxlVmFsdWUgPSB2YWx1ZS5hc051bWJlcigpOwotICAgICAgICBpZiAoZG91YmxlVmFsdWUg
PCAwIHx8IGRvdWJsZVZhbHVlID4gOSkgewotICAgICAgICAgICAgdGhyb3dSYW5nZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsICJmcmFjdGlvbmFsU2Vjb25kRGlnaXRzIGlzIG91dCBvZiByYW5n
ZSJfcyk7CisgICAgICAgIGlmICghKGRvdWJsZVZhbHVlID49IDAgJiYgZG91YmxlVmFsdWUgPD0g
OSkpIHsKKyAgICAgICAgICAgIHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBt
YWtlU3RyaW5nKCJmcmFjdGlvbmFsU2Vjb25kRGlnaXRzIG11c3QgYmUgJ2F1dG8nIG9yIDAgdGhy
b3VnaCA5LCBub3QgIl9zLCBkb3VibGVWYWx1ZSkpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0yNDAsNyArMjY0LDcgQEAgc3RkOjpvcHRpb25hbDx1
bnNpZ25lZD4gdGVtcG9yYWxGcmFjdGlvbmFsU2Vjb25kRGlnaXRzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmoKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBzdGQ6Om51bGxvcHQpOwog
CiAgICAgaWYgKHN0cmluZ1ZhbHVlICE9ICJhdXRvIikKLSAgICAgICAgdGhyb3dSYW5nZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsICJmcmFjdGlvbmFsU2Vjb25kRGlnaXRzIGlzIG91dCBvZiBy
YW5nZSJfcyk7CisgICAgICAgIHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBt
YWtlU3RyaW5nKCJmcmFjdGlvbmFsU2Vjb25kRGlnaXRzIG11c3QgYmUgJ2F1dG8nIG9yIDAgdGhy
b3VnaCA5LCBub3QgIl9zLCBlbGxpcHNpemVBdCgxMDAsIHN0cmluZ1ZhbHVlKSkpOwogCiAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KQEAgLTMwOSw2ICszMzMsMjIgQEAgUm91bmRpbmdNb2Rl
IHRlbXBvcmFsUm91bmRpbmdNb2RlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBvcHRpb24KICAgICAgICAgInJvdW5kaW5nTW9kZSBtdXN0IGJlIGVpdGhlciBcImNlaWxc
IiwgXCJmbG9vclwiLCBcInRydW5jXCIsIG9yIFwiaGFsZkV4cGFuZFwiIl9zLCBmYWxsYmFjayk7
CiB9CiAKK3ZvaWQgZm9ybWF0U2Vjb25kc1N0cmluZ0ZyYWN0aW9uKFN0cmluZ0J1aWxkZXImIGJ1
aWxkZXIsIHVuc2lnbmVkIGZyYWN0aW9uLCBzdGQ6OnR1cGxlPFByZWNpc2lvbiwgdW5zaWduZWQ+
IHByZWNpc2lvbikKK3sKKyAgICBhdXRvIFtwcmVjaXNpb25UeXBlLCBwcmVjaXNpb25WYWx1ZV0g
PSBwcmVjaXNpb247CisgICAgaWYgKChwcmVjaXNpb25UeXBlID09IFByZWNpc2lvbjo6QXV0byAm
JiBmcmFjdGlvbikgfHwgKHByZWNpc2lvblR5cGUgPT0gUHJlY2lzaW9uOjpGaXhlZCAmJiBwcmVj
aXNpb25WYWx1ZSkpIHsKKyAgICAgICAgYXV0byBwYWRkZWQgPSBtYWtlU3RyaW5nKCcuJywgcGFk
KCcwJywgOSwgZnJhY3Rpb24pKTsKKyAgICAgICAgaWYgKHByZWNpc2lvblR5cGUgPT0gUHJlY2lz
aW9uOjpGaXhlZCkKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZ1ZpZXcocGFkZGVk
KS5sZWZ0KHBhZGRlZC5sZW5ndGgoKSAtICg5IC0gcHJlY2lzaW9uVmFsdWUpKSk7CisgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgYXV0byBsZW5ndGhXaXRob3V0VHJhaWxpbmdaZXJvZXMgPSBw
YWRkZWQubGVuZ3RoKCk7CisgICAgICAgICAgICB3aGlsZSAocGFkZGVkW2xlbmd0aFdpdGhvdXRU
cmFpbGluZ1plcm9lcyAtIDFdID09ICcwJykKKyAgICAgICAgICAgICAgICBsZW5ndGhXaXRob3V0
VHJhaWxpbmdaZXJvZXMtLTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZ1ZpZXco
cGFkZGVkKS5sZWZ0KGxlbmd0aFdpdGhvdXRUcmFpbGluZ1plcm9lcykpOworICAgICAgICB9Cisg
ICAgfQorfQorCiAvLyBNYXhpbXVtVGVtcG9yYWxEdXJhdGlvblJvdW5kaW5nSW5jcmVtZW50ICgg
dW5pdCApCiAvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtdGVtcG9yYWwvI3NlYy10ZW1wb3Jh
bC1tYXhpbXVtdGVtcG9yYWxkdXJhdGlvbnJvdW5kaW5naW5jcmVtZW50CiBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4gbWF4aW11bVJvdW5kaW5nSW5jcmVtZW50KFRlbXBvcmFsVW5pdCB1bml0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVtcG9yYWxPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBvcmFsT2JqZWN0LmgKaW5kZXggZDE1
MTIyYTlmMjg4MmYyZjlhMjYxY2M0NDkyZTQ3NWE1NmEwOWQ4Yi4uYzRiMWQ0NzI2YjM0NmQ1MTlh
NTZmYWEzMjE2YmRmYzg4ZTk5MjE4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVGVtcG9yYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9UZW1wb3JhbE9iamVjdC5oCkBAIC05MywxMiArOTMsMTUgQEAgc3RydWN0IFByZWNpc2lv
bkRhdGEgewogICAgIHVuc2lnbmVkIGluY3JlbWVudDsKIH07CiAKK1dURjo6U3RyaW5nIGVsbGlw
c2l6ZUF0KHVuc2lnbmVkIG1heExlbmd0aCwgY29uc3QgV1RGOjpTdHJpbmcmKTsKK1Byb3BlcnR5
TmFtZSB0ZW1wb3JhbFVuaXRQcm9wZXJ0eU5hbWUoVk0mLCBUZW1wb3JhbFVuaXQpOwogc3RkOjpv
cHRpb25hbDxUZW1wb3JhbFVuaXQ+IHRlbXBvcmFsVW5pdFR5cGUoU3RyaW5nVmlldyk7CiBzdGQ6
Om9wdGlvbmFsPFRlbXBvcmFsVW5pdD4gdGVtcG9yYWxMYXJnZXN0VW5pdChKU0dsb2JhbE9iamVj
dCosIEpTT2JqZWN0KiBvcHRpb25zLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VGVtcG9yYWxVbml0
PiBkaXNhbGxvd2VkVW5pdHMsIFRlbXBvcmFsVW5pdCBhdXRvVmFsdWUpOwogc3RkOjpvcHRpb25h
bDxUZW1wb3JhbFVuaXQ+IHRlbXBvcmFsU21hbGxlc3RVbml0KEpTR2xvYmFsT2JqZWN0KiwgSlNP
YmplY3QqIG9wdGlvbnMsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxUZW1wb3JhbFVuaXQ+IGRpc2Fs
bG93ZWRVbml0cyk7CiBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiB0ZW1wb3JhbEZyYWN0aW9uYWxT
ZWNvbmREaWdpdHMoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogb3B0aW9ucyk7CiBQcmVjaXNp
b25EYXRhIHNlY29uZHNTdHJpbmdQcmVjaXNpb24oSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCog
b3B0aW9ucyk7CiBSb3VuZGluZ01vZGUgdGVtcG9yYWxSb3VuZGluZ01vZGUoSlNHbG9iYWxPYmpl
Y3QqLCBKU09iamVjdCosIFJvdW5kaW5nTW9kZSk7Cit2b2lkIGZvcm1hdFNlY29uZHNTdHJpbmdG
cmFjdGlvbihTdHJpbmdCdWlsZGVyJiwgdW5zaWduZWQgZnJhY3Rpb24sIHN0ZDo6dHVwbGU8UHJl
Y2lzaW9uLCB1bnNpZ25lZD4pOwogc3RkOjpvcHRpb25hbDxkb3VibGU+IG1heGltdW1Sb3VuZGlu
Z0luY3JlbWVudChUZW1wb3JhbFVuaXQpOwogZG91YmxlIHRlbXBvcmFsUm91bmRpbmdJbmNyZW1l
bnQoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogb3B0aW9ucywgc3RkOjpvcHRpb25hbDxkb3Vi
bGU+IGRpdmlkZW5kLCBib29sIGluY2x1c2l2ZSk7CiBkb3VibGUgcm91bmROdW1iZXJUb0luY3Jl
bWVudChkb3VibGUsIGRvdWJsZSBpbmNyZW1lbnQsIFJvdW5kaW5nTW9kZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>