<?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>173226</bug_id>
          
          <creation_ts>2017-06-10 10:37:52 -0700</creation_ts>
          <short_desc>RegExp.prototype[@@search] should use SameValue</short_desc>
          <delta_ts>2020-06-11 13:35:39 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=185065</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1317904</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-06-10 10:37:52 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642255</commentid>
    <comment_count>1</comment_count>
      <attachid>396650</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-04-16 07:55:57 -0700</bug_when>
    <thetext>Created attachment 396650
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642259</commentid>
    <comment_count>2</comment_count>
      <attachid>396650</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-16 08:25:38 -0700</bug_when>
    <thetext>Comment on attachment 396650
Patch

Please add DFG and FTL implementations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642264</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-04-16 08:41:39 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #2)
&gt; Please add DFG and FTL implementations.

I am probably missing something, but don&apos;t we already have those?

  SpeculativeJIT::compileSameValue() (at dfg/DFGSpeculativeJIT.cpp:6673)
  FTLLowerDFGToB3::compileSameValue() (at ftl/FTLLowerDFGToB3.cpp:8831)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642274</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-16 09:07:34 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #3)
&gt; (In reply to Yusuke Suzuki from comment #2)
&gt; &gt; Please add DFG and FTL implementations.
&gt; 
&gt; I am probably missing something, but don&apos;t we already have those?
&gt; 
&gt;   SpeculativeJIT::compileSameValue() (at dfg/DFGSpeculativeJIT.cpp:6673)
&gt;   FTLLowerDFGToB3::compileSameValue() (at ftl/FTLLowerDFGToB3.cpp:8831)

No, this is implementation of SameValue DFG node. But DFGByteCodeParser is not handling op_same_value to generate this node.
I think we can see crash if we compile the code including op_same_value with DFG. Can you add a test for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642455</commentid>
    <comment_count>5</comment_count>
      <attachid>396708</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-04-16 15:26:32 -0700</bug_when>
    <thetext>Created attachment 396708
Patch

Add test, handle op_same_value in DFGByteCodeParser, add missing baseline JIT ops definitions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642816</commentid>
    <comment_count>6</comment_count>
      <attachid>396708</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-17 13:56:29 -0700</bug_when>
    <thetext>Comment on attachment 396708
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        Int32 and String comparisons, which are exempt of handling NaN and negative zero values.

I think we should implement @sameValue as a function call instead of bytecode.
Let&apos;s define sameValue function like this,

1. Define link-time-constant @sameValue: See m_arrayProtoValuesFunction case for example. Define `m_linkTimeConstants[static_cast&lt;unsigned&gt;(LinkTimeConstant::sameValue)].initLater(...)`.
2. Initialize this with Object.is definition: Performing putWithoutTransition with LinkTimeConstant::sameValue&apos;s value.
3. Put this function as `Object.is` in ObjectConstructor
4. Call this @sameValue from builtins.

So, then, DFG/FTL handles it as SameValue DFG node if this function has SameValue intrinsic appropriately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642919</commentid>
    <comment_count>7</comment_count>
      <attachid>396821</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-04-17 18:32:06 -0700</bug_when>
    <thetext>Created attachment 396821
Patch

Expose Object.is function as @sameValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642924</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-04-17 18:41:57 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #6)
&gt; I think we should implement @sameValue as a function call instead of
&gt; bytecode.
&gt; Let&apos;s define sameValue function like this,

I am not sure I&apos;ve strictly followed your instructions.
I didn&apos;t manage to find any precedent of a method put to a prototype/constructor from LinkTimeConstant,
yet I&apos;ve seen quite a few prototype/constructor methods that were put to LinkTimeConstant (like `thisTimeValue`).
Also it would be nice to keep everything in `objectConstructorTable` in case we would want to reorder methods per spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642996</commentid>
    <comment_count>9</comment_count>
      <attachid>396821</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-18 08:49:32 -0700</bug_when>
    <thetext>Comment on attachment 396821
Patch

r=me. I don&apos;t think putting `is` in ObjectConstructor table is important compared to allocating one more object since it requires memory, but maybe both does not matter much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643000</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-18 09:01:06 -0700</bug_when>
    <thetext>Committed r260312: &lt;https://trac.webkit.org/changeset/260312&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396821.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643001</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-18 09:02:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/61973276&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661722</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-11 13:35:39 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #9)
&gt; Comment on attachment 396821 [details]
&gt; Patch
&gt; 
&gt; r=me. I don&apos;t think putting `is` in ObjectConstructor table is important
&gt; compared to allocating one more object since it requires memory, but maybe
&gt; both does not matter much.

Apart from Object.is, there are a few link-time-constants that duplicate built-in methods:
* Date.prototype.{valueOf,getTime} == LinkTimeConstant::thisTimeValue
* Math.trunc == LinkTimeConstant::trunc
* String.prototype.repeat == LinkTimeConstant::repeatCharacter

I&apos;ve tried adding

```
putDirectWithoutTransition(vm, Identifier::fromString(vm, &quot;is&quot;), globalObject-&gt;linkTimeConstant(LinkTimeConstant::sameValue), static_cast&lt;unsigned&gt;(PropertyAttribute::DontEnum));
```

to ObjectConstructor::finishCreation(), but it looks it runs before link-time-constant is initialized:

.../WebKit/Source/JavaScriptCore/runtime/JSGlobalObject.h(917) : JSC::JSCell *JSC::JSGlobalObject::linkTimeConstant(JSC::LinkTimeConstant) const
1   0x10acff479 WTFCrash
2   0x10b4c565b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x10b78d2ff JSC::JSGlobalObject::linkTimeConstant(JSC::LinkTimeConstant) const
4   0x10c6f08cb JSC::ObjectConstructor::finishCreation(JSC::VM&amp;, JSC::JSGlobalObject*, JSC::ObjectPrototype*)
5   0x10c5ac80f JSC::ObjectConstructor::create(JSC::VM&amp;, JSC::JSGlobalObject*, JSC::Structure*, JSC::ObjectPrototype*)
6   0x10c5a29ba JSC::JSGlobalObject::init(JSC::VM&amp;)
7   0x10c5b8804 JSC::JSGlobalObject::finishCreation(JSC::VM&amp;)
8   0x107616a01 GlobalObject::finishCreation(JSC::VM&amp;, WTF::Vector&lt;WTF::String, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;)
9   0x1076154e7 GlobalObject::create(JSC::VM&amp;, JSC::Structure*, WTF::Vector&lt;WTF::String, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;)
10  0x1075f1241 int runJSC&lt;jscmain(int, char**)::$_6&gt;(CommandLine const&amp;, bool, jscmain(int, char**)::$_6 const&amp;)
11  0x1075efc58 jscmain(int, char**)
12  0x1075ef9be main
13  0x7fff70ef7cc9 start
14  0x2

No luck with Date.prototype and String.prototype either. Math.trunc works though.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396650</attachid>
            <date>2020-04-16 07:55:57 -0700</date>
            <delta_ts>2020-04-16 15:26:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173226-20200416175555.patch</filename>
            <type>text/plain</type>
            <size>19374</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjAxODIpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDIwLTA0LTE2ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgb3Bfc2FtZV92YWx1ZSBieXRlY29kZSwg
aW50cmluc2ljLCBKSVQgc3VwcG9ydHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MzIyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDogTWFyayA0IHRlc3Qg
Y2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0wNC0xNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lA
YXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEltcGxlbWVudCBKU01hcEl0ZXJhdG9yL0pTU2V0
SXRlcmF0b3Igd2l0aCBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsCkluZGV4OiBKU1Rlc3RzL3Rl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL2V4
cGVjdGF0aW9ucy55YW1sCShyZXZpc2lvbiAyNjAxNjYpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvZXhw
ZWN0YXRpb25zLnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTE2NjAsMTIgKzE2NjAsNiBAQCB0ZXN0
L2J1aWx0LWlucy9SZWdFeHAvcHJvdG8tZnJvbS1jdG9yLXJlCiB0ZXN0L2J1aWx0LWlucy9SZWdF
eHAvcHJvdG90eXBlL1N5bWJvbC5tYXRjaC9idWlsdGluLWluZmVyLXVuaWNvZGUuanM6CiAgIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq++/vcK7LCDCq251bGzC
uykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNh
bWVWYWx1ZSjCq++/vcK7LCDCq251bGzCuykgdG8gYmUgdHJ1ZScKLXRlc3QvYnVpbHQtaW5zL1Jl
Z0V4cC9wcm90b3R5cGUvU3ltYm9sLnNlYXJjaC9zZXQtbGFzdGluZGV4LWluaXQtc2FtZXZhbHVl
LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqstMMK7
LCDCqzDCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIFNhbWVWYWx1ZSjCqy0wwrssIMKrMMK7KSB0byBiZSB0cnVlJwotdGVzdC9idWlsdC1pbnMv
UmVnRXhwL3Byb3RvdHlwZS9TeW1ib2wuc2VhcmNoL3NldC1sYXN0aW5kZXgtcmVzdG9yZS1zYW1l
dmFsdWUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjC
qy0wwrssIMKrMMK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgU2FtZVZhbHVlKMKrLTDCuywgwqswwrspIHRvIGJlIHRydWUnCiB0ZXN0L2J1aWx0
LWlucy9SZWdFeHAvcHJvdG90eXBlL1N5bWJvbC5zZWFyY2gvdS1sYXN0aW5kZXgtYWR2YW5jZS5q
czoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMcK7LCDC
qy0xwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqsxwrssIMKrLTHCuykgdG8gYmUgdHJ1ZScKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gMjYwMTY2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA0LTE2ICBBbGV4
ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQg
b3Bfc2FtZV92YWx1ZSBieXRlY29kZSwgaW50cmluc2ljLCBKSVQgc3VwcG9ydHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzIyNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGludHJv
ZHVjZXMgQHNhbWVWYWx1ZSBpbnRyaW5zaWMgYW5kIHV0aWxpemVzIGl0IGluIFJlZ0V4cC5wcm90
b3R5cGVbQEBzZWFyY2hdCisgICAgICAgIGFjY29yZGluZyB0byBzcGVjIFsxXSwgYWxpZ25pbmcg
SlNDIHdpdGggVjggYW5kIFNwaWRlck1vbmtleS4KKworICAgICAgICBMTEludCBhbmQgYmFzZWxp
bmUgSklUIGZhc3QgcGF0aHMgYXJlIG1vc3RseSBpZGVudGljYWwgdG8gT3BTdHJpY3RFcSBhcyB0
aGV5IHBlcmZvcm0KKyAgICAgICAgSW50MzIgYW5kIFN0cmluZyBjb21wYXJpc29ucywgd2hpY2gg
YXJlIGZyZWUgb2YgaGFuZGxpbmcgTmFOIGFuZCBuZWdhdGl2ZSB6ZXJvIHZhbHVlcy4KKworICAg
ICAgICBbMV06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1A
QHNlYXJjaCAoc3RlcCA1LCA4KQorCisgICAgICAgICogYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBl
LmpzOgorICAgICAgICAob3ZlcnJpZGRlbk5hbWUuc3RyaW5nX2FwcGVhcmVkX2hlcmUuc2VhcmNo
KToKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5Lmg6CisgICAg
ICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVj
b2RlVXNlRGVmLmNwcDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZUluZGV4
SW1wbCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJbmRleEltcGwpOgor
ICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX3NhbWVWYWx1ZSk6CisgICAgICAg
ICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJpbGl0
eUxldmVsKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZn
L0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJ
VE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bfc2FtZV92YWx1ZSk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3Bfc2FtZV92YWx1ZSk6CisgICAgICAgICogaml0
L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9zYW1lX3Zh
bHVlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9zYW1lX3ZhbHVlKToKKyAgICAg
ICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMu
aDoKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBy
dW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNM
KToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorCiAyMDIwLTA0LTE1ICBL
ZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUg
U3RvcmUtbG9hZCBwYWlyIGF1dG8tdmVjdG9yaXphdGlvbiBmb3IgSlNDCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMJKHJldmlz
aW9uIDI2MDE2NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90
b3R5cGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTQwMywxMCArNDAzLDkgQEAgZnVuY3Rpb24gc2Vh
cmNoKHN0ckFyZykKICAgICAvLyA0LiBMZXQgcHJldmlvdXNMYXN0SW5kZXggYmUgPyBHZXQocngs
ICJsYXN0SW5kZXgiKS4KICAgICB2YXIgcHJldmlvdXNMYXN0SW5kZXggPSByZWdleHAubGFzdElu
ZGV4OwogCi0gICAgLy8gNS5JZiBTYW1lVmFsdWUocHJldmlvdXNMYXN0SW5kZXgsIDApIGlzIGZh
bHNlLCB0aGVuCisgICAgLy8gNS4gSWYgU2FtZVZhbHVlKHByZXZpb3VzTGFzdEluZGV4LCAwKSBp
cyBmYWxzZSwgdGhlbgogICAgIC8vIDUuYS4gUGVyZm9ybSA/IFNldChyeCwgImxhc3RJbmRleCIs
IDAsIHRydWUpLgotICAgIC8vIEZJWE1FOiBBZGQgU2FtZVZhbHVlIHN1cHBvcnQuIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMyMjYKLSAgICBpZiAocHJldmlvdXNM
YXN0SW5kZXggIT09IDApCisgICAgaWYgKCFAc2FtZVZhbHVlKHByZXZpb3VzTGFzdEluZGV4LCAw
KSkKICAgICAgICAgcmVnZXhwLmxhc3RJbmRleCA9IDA7CiAKICAgICAvLyA2LiBMZXQgcmVzdWx0
IGJlID8gUmVnRXhwRXhlYyhyeCwgUykuCkBAIC00MTUsOCArNDE0LDcgQEAgZnVuY3Rpb24gc2Vh
cmNoKHN0ckFyZykKICAgICAvLyA3LiBMZXQgY3VycmVudExhc3RJbmRleCBiZSA/IEdldChyeCwg
Imxhc3RJbmRleCIpLgogICAgIC8vIDguIElmIFNhbWVWYWx1ZShjdXJyZW50TGFzdEluZGV4LCBw
cmV2aW91c0xhc3RJbmRleCkgaXMgZmFsc2UsIHRoZW4KICAgICAvLyA4LmEuIFBlcmZvcm0gPyBT
ZXQocngsICJsYXN0SW5kZXgiLCBwcmV2aW91c0xhc3RJbmRleCwgdHJ1ZSkuCi0gICAgLy8gRklY
TUU6IEFkZCBTYW1lVmFsdWUgc3VwcG9ydC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3MzIyNgotICAgIGlmIChyZWdleHAubGFzdEluZGV4ICE9PSBwcmV2aW91c0xh
c3RJbmRleCkKKyAgICBpZiAoIUBzYW1lVmFsdWUocmVnZXhwLmxhc3RJbmRleCwgcHJldmlvdXNM
YXN0SW5kZXgpKQogICAgICAgICByZWdleHAubGFzdEluZGV4ID0gcHJldmlvdXNMYXN0SW5kZXg7
CiAKICAgICAvLyA5LiBJZiByZXN1bHQgaXMgbnVsbCwgcmV0dXJuIC0xLgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5z
aWNSZWdpc3RyeS5oCShyZXZpc2lvbiAyNjAxNjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC04
Myw2ICs4Myw3IEBAIGVudW0gY2xhc3MgTGlua1RpbWVDb25zdGFudCA6IGludDMyX3Q7CiAgICAg
bWFjcm8oY3JlYXRlUHJvbWlzZSkgXAogICAgIG1hY3JvKGNyZWF0ZUFyZ3VtZW50c0J1dHRlcmZs
eSkgXAogICAgIG1hY3JvKGRlZmluZUVudW1lcmFibGVXcml0YWJsZUNvbmZpZ3VyYWJsZURhdGFQ
cm9wZXJ0eSkgXAorICAgIG1hY3JvKHNhbWVWYWx1ZSkgXAogCiAjZGVmaW5lIEpTQ19DT01NT05f
QllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UU19FQUNIX05BTUUobWFjcm8pIFwKICAgICBKU0Nf
Q09NTU9OX0JZVEVDT0RFX0lOVFJJTlNJQ19DT05TVEFOVFNfU0lNUExFX0VBQ0hfTkFNRShtYWNy
bykgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5y
Ygo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVM
aXN0LnJiCShyZXZpc2lvbiAyNjAxNjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVMaXN0LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0yNTksNiArMjU5LDcgQEAgb3Bf
Z3JvdXAgOkJpbmFyeU9wLAogICAgICAgICA6bmVxLAogICAgICAgICA6c3RyaWN0ZXEsCiAgICAg
ICAgIDpuc3RyaWN0ZXEsCisgICAgICAgIDpzYW1lX3ZhbHVlLAogICAgICAgICA6bGVzcywKICAg
ICAgICAgOmxlc3NlcSwKICAgICAgICAgOmdyZWF0ZXIsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAJKHJldmlzaW9uIDI2MDE2
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIzNCw2ICsyMzQsNyBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0
ZWNvZGVJbmRleEltcGwoVmlyCiAgICAgVVNFUyhPcEJlbG93ZXEsIGxocywgcmhzKQogICAgIFVT
RVMoT3BOc3RyaWN0ZXEsIGxocywgcmhzKQogICAgIFVTRVMoT3BTdHJpY3RlcSwgbGhzLCByaHMp
CisgICAgVVNFUyhPcFNhbWVWYWx1ZSwgbGhzLCByaHMpCiAgICAgVVNFUyhPcE5lcSwgbGhzLCBy
aHMpCiAgICAgVVNFUyhPcEVxLCBsaHMsIHJocykKICAgICBVU0VTKE9wUHVzaFdpdGhTY29wZSwg
Y3VycmVudFNjb3BlLCBuZXdTY29wZSkKQEAgLTQ1Niw2ICs0NTcsNyBAQCB2b2lkIGNvbXB1dGVE
ZWZzRm9yQnl0ZWNvZGVJbmRleEltcGwodW5zCiAgICAgREVGUyhPcE5lcSwgZHN0KQogICAgIERF
RlMoT3BTdHJpY3RlcSwgZHN0KQogICAgIERFRlMoT3BOc3RyaWN0ZXEsIGRzdCkKKyAgICBVU0VT
KE9wU2FtZVZhbHVlLCBkc3QpCiAgICAgREVGUyhPcExlc3MsIGRzdCkKICAgICBERUZTKE9wTGVz
c2VxLCBkc3QpCiAgICAgREVGUyhPcEdyZWF0ZXIsIGRzdCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHJldmlzaW9u
IDI2MDE2NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ5NSw2ICsxNDk1LDE1IEBAIFJlZ2lzdGVySUQq
IEJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF8KICAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUo
ZHN0LCBnZW5lcmF0b3IuZW1pdElkV2l0aFByb2ZpbGUoaWRWYWx1ZS5nZXQoKSwgc3BlY3VsYXRp
b24pKTsKIH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJp
bnNpY19zYW1lVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCog
ZHN0KQoreworICAgIEFyZ3VtZW50TGlzdE5vZGUqIG5vZGUgPSBtX2FyZ3MtPm1fbGlzdE5vZGU7
CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNyYzEgPSBnZW5lcmF0b3IuZW1pdE5vZGUobm9kZSk7
CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNyYzIgPSBnZW5lcmF0b3IuZW1pdE5vZGUobm9kZS0+
bV9uZXh0KTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gZmluYWxEZXN0ID0gZ2VuZXJhdG9yLmZp
bmFsRGVzdGluYXRpb24oZHN0LCBzcmMxLmdldCgpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVt
aXRFcXVhbGl0eU9wPE9wU2FtZVZhbHVlPihmaW5hbERlc3QuZ2V0KCksIHNyYzEuZ2V0KCksIHNy
YzIuZ2V0KCkpOworfQorCiAjZGVmaW5lIENSRUFURV9JTlRSSU5TSUNfRk9SX0JSQU5EX0NIRUNL
KGxvd2VyTmFtZSwgdXBwZXJOYW1lKSBcCiAgICAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVJbnRyaW5z
aWNOb2RlOjplbWl0X2ludHJpbnNpY18jI2xvd2VyTmFtZShKU0M6OkJ5dGVjb2RlR2VuZXJhdG9y
JiBnZW5lcmF0b3IsIEpTQzo6UmVnaXN0ZXJJRCogZHN0KSBcCiAgICAgeyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCShyZXZpc2lv
biAyNjAxNjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw2ICsxNjMsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2Fw
YWJpbGl0eUxldmVsKE9wY29kZUlECiAgICAgY2FzZSBvcF9lcToKICAgICBjYXNlIG9wX2VxX251
bGw6CiAgICAgY2FzZSBvcF9zdHJpY3RlcToKKyAgICBjYXNlIG9wX3NhbWVfdmFsdWU6CiAgICAg
Y2FzZSBvcF9uZXE6CiAgICAgY2FzZSBvcF9uZXFfbnVsbDoKICAgICBjYXNlIG9wX25zdHJpY3Rl
cToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAko
cmV2aXNpb24gMjYwMTY2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYzMiwxNSArMTYzMiw2IEBAIHNpemVfdCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHIKICAgICByZXR1cm4gSlNWYWx1ZTo6c3RyaWN0
RXF1YWxTbG93Q2FzZUlubGluZShnbG9iYWxPYmplY3QsIG9wMSwgb3AyKTsKIH0KIAotc2l6ZV90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2FtZVZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGFyZzEsIEVuY29kZWRKU1ZhbHVlIGFyZzIpCi17Ci0gICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKLSAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0KLSAgICByZXR1cm4gc2FtZVZhbHVlKGds
b2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGFyZzEpLCBKU1ZhbHVlOjpkZWNvZGUoYXJnMikp
OwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvUHJpbWl0aXZl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAyNjAxNjYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDcg
KzE5Myw2IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25CaXRMU2hpZnQKIEpTQ2Vs
bCogSklUX09QRVJBVElPTiBvcGVyYXRpb25BZGRCaWdJbnQoSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqIG9wMSwgSlNDZWxsKiBvcDIpIFdURl9JTlRFUk5BTDsKIEpTQ2VsbCogSklUX09QRVJBVElP
TiBvcGVyYXRpb25CaXRSU2hpZnRCaWdJbnQoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwg
SlNDZWxsKiBvcDIpIFdURl9JTlRFUk5BTDsKIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRp
b25CaXRYb3JCaWdJbnQoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIp
IFdURl9JTlRFUk5BTDsKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNhbWVWYWx1ZShK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVS
TkFMOwogSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb25EaXJl
Y3QoVk0qLCBTdHJ1Y3R1cmUqLCBKU1Njb3BlKiwgU3ltYm9sVGFibGUqLCBFbmNvZGVkSlNWYWx1
ZSk7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRz
KFZNKiwgU3RydWN0dXJlKiwgdWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBtaW5DYXBhY2l0eSk7
CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzRHVy
aW5nRXhpdChWTSosIElubGluZUNhbGxGcmFtZSosIEpTRnVuY3Rpb24qLCB1aW50MzJfdCBhcmd1
bWVudENvdW50KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMjYwMTY2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAt
NTk2LDYgKzU5Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRfb3BfcnNo
aWZ0KGNvbnN0IEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9zZXRfZnVuY3Rp
b25fbmFtZShjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bfc3RyaWN0
ZXEoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKKyAgICAgICAgdm9pZCBlbWl0X29wX3NhbWVfdmFsdWUo
Y29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3N1Yihjb25zdCBJbnN0
cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bfc3dpdGNoX2NoYXIoY29uc3QgSW5zdHJ1
Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3N3aXRjaF9pbW0oY29uc3QgSW5zdHJ1Y3Rp
b24qKTsKQEAgLTYzMSw2ICs2MzIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBl
bWl0U2xvd19vcF9jb25zdHJ1Y3RfdmFyYXJncyhjb25zdCBJbnN0cnVjdGlvbiosIFZlY3RvcjxT
bG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9jb25z
dHJ1Y3QoY29uc3QgSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9y
Jik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfZXEoY29uc3QgSW5zdHJ1Y3Rpb24qLCBWZWN0
b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CisgICAgICAgIHZvaWQgZW1pdFNsb3dfb3Bf
c2FtZV92YWx1ZShjb25zdCBJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9nZXRfY2FsbGVlKGNvbnN0IEluc3Ry
dWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lk
IGVtaXRTbG93X29wX3RyeV9nZXRfYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfZ2V0X2J5
X2lkKGNvbnN0IEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNw
cAkocmV2aXNpb24gMjYwMTY2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTMsNiArNTUzLDUxIEBAIHZvaWQgSklU
OjplbWl0U2xvd19vcF9lcShjb25zdCBJbnN0cnVjdGkKICAgICBlbWl0U3RvcmVCb29sKGRzdCwg
cmV0dXJuVmFsdWVHUFIpOwogfQogCit2b2lkIEpJVDo6ZW1pdF9vcF9zYW1lX3ZhbHVlKGNvbnN0
IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgYXV0byBieXRlY29kZSA9
IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BTYW1lVmFsdWU+KCk7CisKKyAgICBWaXJ0dWFsUmVn
aXN0ZXIgZHN0ID0gYnl0ZWNvZGUubV9kc3Q7CisgICAgVmlydHVhbFJlZ2lzdGVyIHNyYzEgPSBi
eXRlY29kZS5tX2xoczsKKyAgICBWaXJ0dWFsUmVnaXN0ZXIgc3JjMiA9IGJ5dGVjb2RlLm1fcmhz
OworCisgICAgZW1pdExvYWQyKHNyYzEsIHJlZ1QxLCByZWdUMCwgc3JjMiwgcmVnVDMsIHJlZ1Qy
KTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIHJlZ1QzKSk7Cisg
ICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZDZWxsKHJlZ1QxKSk7CisgICAgYWRkU2xvd0Nhc2UoYnJh
bmNoMzIoQmVsb3csIHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSkpOwor
CisgICAgY29tcGFyZTMyKEVxdWFsLCByZWdUMCwgcmVnVDIsIHJlZ1QwKTsKKworICAgIGVtaXRT
dG9yZUJvb2woZHN0LCByZWdUMCk7Cit9CisKK3ZvaWQgSklUOjplbWl0U2xvd19vcF9zYW1lX3Zh
bHVlKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2Fz
ZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit7CisgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJ
bnN0cnVjdGlvbi0+YXM8T3BTYW1lVmFsdWU+KCk7CisgICAgVmlydHVhbFJlZ2lzdGVyIGRzdCA9
IGJ5dGVjb2RlLm1fZHN0OworCisgICAgSnVtcExpc3Qgc3RvcmVSZXN1bHQ7CisgICAgSnVtcExp
c3QgZ2VuZXJpY0Nhc2U7CisKKyAgICBnZW5lcmljQ2FzZS5hcHBlbmQoZ2V0U2xvd0Nhc2UoaXRl
cikpOyAvLyB0YWdzIG5vdCBlcXVhbAorCisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyB0YWdz
IGVxdWFsIGFuZCBKU0NlbGwKKyAgICBnZW5lcmljQ2FzZS5hcHBlbmQoYnJhbmNoSWZOb3RTdHJp
bmcocmVnVDApKTsKKyAgICBnZW5lcmljQ2FzZS5hcHBlbmQoYnJhbmNoSWZOb3RTdHJpbmcocmVn
VDIpKTsKKworICAgIC8vIFN0cmluZyBjYXNlLgorICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
Q29tcGFyZVN0cmluZ0VxLCBtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCksIHJlZ1QwLCByZWdU
Mik7CisgICAgc3RvcmVSZXN1bHQuYXBwZW5kKGp1bXAoKSk7CisKKyAgICAvLyBHZW5lcmljIGNh
c2UuCisgICAgZ2VuZXJpY0Nhc2UuYXBwZW5kKGdldFNsb3dDYXNlKGl0ZXIpKTsgLy8gZG91Ymxl
cworICAgIGdlbmVyaWNDYXNlLmxpbmsodGhpcyk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25TYW1lVmFsdWUsIG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKSwgSlNWYWx1ZVJlZ3MocmVn
VDEsIHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSk7CisKKyAgICBzdG9yZVJlc3Vs
dC5saW5rKHRoaXMpOworICAgIGVtaXRTdG9yZUJvb2woZHN0LCByZXR1cm5WYWx1ZUdQUik7Cit9
CisKIHZvaWQgSklUOjplbWl0X29wX2plcShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogewogICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9w
SmVxPigpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCShy
ZXZpc2lvbiAyNjAxNjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDksNiArNTA5LDE2IEBAIHZvaWQgSklUOjplbWl0X29w
X2VxKGNvbnN0IEluc3RydWN0aW9uKiAKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGJ5dGVj
b2RlLm1fZHN0KTsKIH0KIAordm9pZCBKSVQ6OmVtaXRfb3Bfc2FtZV92YWx1ZShjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb24tPmFzPE9wU2FtZVZhbHVlPigpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXJzKGJ5dGVjb2RlLm1fbGhzLCByZWdUMCwgYnl0ZWNvZGUubV9yaHMsIHJlZ1QxKTsKKyAg
ICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbnQocmVnVDAsIHJlZ1QxLCByZWdUMik7CisgICAgY29t
cGFyZTMyKEVxdWFsLCByZWdUMSwgcmVnVDAsIHJlZ1QwKTsKKyAgICBib3hCb29sZWFuKHJlZ1Qw
LCBKU1ZhbHVlUmVncyB7IHJlZ1QwIH0pOworICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoYnl0
ZWNvZGUubV9kc3QpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9qZXEoY29uc3QgSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudElu
c3RydWN0aW9uLT5hczxPcEplcT4oKTsKQEAgLTEwMDUsNiArMTAxNSwxNiBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfZXEoY29uc3QgSW5zdHJ1Y3RpCiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rl
cihieXRlY29kZS5tX2RzdCwgcmV0dXJuVmFsdWVHUFIpOwogfQogCit2b2lkIEpJVDo6ZW1pdFNs
b3dfb3Bfc2FtZV92YWx1ZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBW
ZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQoreworICAgIGxpbmtBbGxTbG93
Q2FzZXMoaXRlcik7CisKKyAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5h
czxPcFNhbWVWYWx1ZT4oKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblNhbWVWYWx1ZSwg
VHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkpLCByZWdUMCwgcmVnVDEp
OworICAgIGJveEJvb2xlYW4ocmV0dXJuVmFsdWVHUFIsIEpTVmFsdWVSZWdzIHsgcmV0dXJuVmFs
dWVHUFIgfSk7CisgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihieXRlY29kZS5tX2RzdCwgcmV0
dXJuVmFsdWVHUFIpOworfQorCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbmVxKGNvbnN0IEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0
b3ImIGl0ZXIpCiB7CiAgICAgbGlua0FsbFNsb3dDYXNlcyhpdGVyKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjYwMTY2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTMxNSw2ICsxMzE1LDE1IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNvbXBhcmVTdHIKICAgICByZXR1cm4gSlNWYWx1ZTo6c3RyaWN0RXF1YWwoZ2xvYmFsT2JqZWN0
LCBzcmMxLCBzcmMyKTsKIH0KIAorc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2FtZVZh
bHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGNhbGxGcmFtZSk7CisKKyAgICByZXR1cm4gc2FtZVZhbHVlKGdsb2JhbE9iamVjdCwgSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpOworfQor
CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FycmF5V2l0aFByb2Zp
bGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSog
cHJvZmlsZSwgY29uc3QgSlNWYWx1ZSogdmFsdWVzLCBpbnQgc2l6ZSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAkocmV2aXNpb24gMjYwMTY2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwNCw2ICsyMDQsNyBAQCBz
aXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlR3JlCiBzaXplX3QgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Db21wYXJlR3JlYXRlckVxKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBzaXplX3QgSklUX09QRVJBVElP
TiBvcGVyYXRpb25Db21wYXJlRXEoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNvbXBhcmVTdHJpY3RFcShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSkgV1RGX0lOVEVSTkFMOworc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2Ft
ZVZhbHVlKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBX
VEZfSU5URVJOQUw7CiAjaWYgVVNFKEpTVkFMVUU2NCkKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmluZ0VxKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBs
ZWZ0LCBKU0NlbGwqIHJpZ2h0KSBXVEZfSU5URVJOQUw7CiAjZWxzZQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2
aXNpb24gMjYwMTY2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0xODMxLDYgKzE4MzEsMTAgQEAgZXF1YWxp
dHlDb21wYXJpc29uT3AobmVxLCBPcE5lcSwKICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHJlc3Vs
dCkgY2luZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQpCiAKIAorZXF1YWxpdHlDb21wYXJpc29u
T3Aoc2FtZV92YWx1ZSwgT3BTYW1lVmFsdWUsCisgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1
bHQpIGNpZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQpCisKKwogY29tcGFyZVVuc2lnbmVkT3Ao
YmVsb3csIE9wQmVsb3csCiAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNpYiBsZWZ0
LCByaWdodCwgcmVzdWx0IGVuZCkKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tbW9uU2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCShyZXZpc2lvbiAyNjAxNjYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MzYsNiArNDM2LDEzIEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9uc3RyaWN0
ZXEpCiAgICAgUkVUVVJOKGpzQm9vbGVhbighSlNWYWx1ZTo6c3RyaWN0RXF1YWwoZ2xvYmFsT2Jq
ZWN0LCBHRVRfQyhieXRlY29kZS5tX2xocykuanNWYWx1ZSgpLCBHRVRfQyhieXRlY29kZS5tX3Jo
cykuanNWYWx1ZSgpKSkpOwogfQogCitTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2FtZV92YWx1
ZSkKK3sKKyAgICBCRUdJTigpOworICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BTYW1lVmFs
dWU+KCk7CisgICAgUkVUVVJOKGpzQm9vbGVhbihzYW1lVmFsdWUoZ2xvYmFsT2JqZWN0LCBHRVRf
QyhieXRlY29kZS5tX2xocykuanNWYWx1ZSgpLCBHRVRfQyhieXRlY29kZS5tX3JocykuanNWYWx1
ZSgpKSkpOworfQorCiBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfbGVzcykKIHsKICAgICBCRUdJ
TigpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmgJKHJldmlzaW9uIDI2MDE2NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vblNsb3dQYXRocy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNiArMjE1LDcgQEAg
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9lcSk7CiBTTE9XX1BBVEhfSElEREVOX0RF
Q0woc2xvd19wYXRoX25lcSk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3N0cmlj
dGVxKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbnN0cmljdGVxKTsKK1NMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfc2FtZV92YWx1ZSk7CiBTTE9XX1BBVEhfSElEREVO
X0RFQ0woc2xvd19wYXRoX2xlc3MpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9s
ZXNzZXEpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9ncmVhdGVyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396708</attachid>
            <date>2020-04-16 15:26:32 -0700</date>
            <delta_ts>2020-04-17 18:32:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173226-20200417012631.patch</filename>
            <type>text/plain</type>
            <size>26312</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MDI5MTBmMjUzY2UyYzRkYjQwNzUwZWJiZjFkYTIyYjZmNGY2YmM3Li5jMmM1NGJlMTg5NTA1Mjc1
ZjA5ZmNlMmQ5ZTI0MjE5M2IwOWNlZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAyMC0wNC0xNiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIG9wX3NhbWVfdmFsdWUgYnl0ZWNvZGUsIGludHJp
bnNpYywgSklUIHN1cHBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzMyMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIEBzYW1lVmFsdWUgaW50cmluc2ljLCB3
aXJlcyBpdCB0byBleGlzdGluZyBERkcgYW5kIEZUTCBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAg
b2YgU2FtZVZhbHVlLCBhbmQgdXRpbGl6ZXMgaXQgaW4gUmVnRXhwLnByb3RvdHlwZVtAQHNlYXJj
aF0gYWNjb3JkaW5nIHRvIHRoZSBzcGVjIFsxXSwKKyAgICAgICAgYWxpZ25pbmcgSlNDIHdpdGgg
VjggYW5kIFNwaWRlck1vbmtleS4KKworICAgICAgICBMTEludCBhbmQgYmFzZWxpbmUgSklUIGZh
c3QgcGF0aHMgYXJlIG1vc3RseSBpZGVudGljYWwgdG8gT3BTdHJpY3RFcSBhcyB0aGV5IHBlcmZv
cm0KKyAgICAgICAgSW50MzIgYW5kIFN0cmluZyBjb21wYXJpc29ucywgd2hpY2ggYXJlIGV4ZW1w
dCBvZiBoYW5kbGluZyBOYU4gYW5kIG5lZ2F0aXZlIHplcm8gdmFsdWVzLgorCisgICAgICAgIFsx
XTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLUBAc2VhcmNo
IChzdGVwcyA1LCA4KQorCisgICAgICAgICogYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzOgor
ICAgICAgICAoU3ltYm9sLnNlYXJjaCk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVJbnRy
aW5zaWNSZWdpc3RyeS5oOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYjoKKyAg
ICAgICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHA6CisgICAgICAgIChKU0M6OmNvbXB1
dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAgICAoSlNDOjpjb21wdXRlRGVmc0Zv
ckJ5dGVjb2RlSW5kZXhJbXBsKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNp
Y19zYW1lVmFsdWUpOgorICAgICAgICAqIGRmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNl
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlOjpwcm9w
YWdhdGUpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR0ludGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMu
aDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29t
cGlsZU1haW5QYXNzKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNl
cyk6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3NhbWVfdmFsdWUpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRTbG93X29wX3NhbWVfdmFsdWUpOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzMzJf
NjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bfc2FtZV92YWx1ZSk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdFNsb3dfb3Bfc2FtZV92YWx1ZSk6CisgICAgICAgICogaml0L0pJVE9w
ZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICog
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcnVudGltZS9Db21tb25T
bG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAgICAgICog
cnVudGltZS9Db21tb25TbG93UGF0aHMuaDoKKwogMjAyMC0wNC0xNiAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEltcGxlbWVudCBKU01hcEl0ZXJh
dG9yL0pTU2V0SXRlcmF0b3Igd2l0aCBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwppbmRleCBi
NzFkNmNkYzMyMzFjYWUyMmM0MDM0NWJkNWEyMTliMTY5NTU3ZDI4Li5hMzJmYmIzMmNhZThkMTEz
YjQ2OTA2YmJmODZkMzg0M2JkZGE4ZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMKQEAgLTQwMywxMCArNDAzLDkgQEAgZnVuY3Rp
b24gc2VhcmNoKHN0ckFyZykKICAgICAvLyA0LiBMZXQgcHJldmlvdXNMYXN0SW5kZXggYmUgPyBH
ZXQocngsICJsYXN0SW5kZXgiKS4KICAgICB2YXIgcHJldmlvdXNMYXN0SW5kZXggPSByZWdleHAu
bGFzdEluZGV4OwogCi0gICAgLy8gNS5JZiBTYW1lVmFsdWUocHJldmlvdXNMYXN0SW5kZXgsIDAp
IGlzIGZhbHNlLCB0aGVuCisgICAgLy8gNS4gSWYgU2FtZVZhbHVlKHByZXZpb3VzTGFzdEluZGV4
LCAwKSBpcyBmYWxzZSwgdGhlbgogICAgIC8vIDUuYS4gUGVyZm9ybSA/IFNldChyeCwgImxhc3RJ
bmRleCIsIDAsIHRydWUpLgotICAgIC8vIEZJWE1FOiBBZGQgU2FtZVZhbHVlIHN1cHBvcnQuIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMyMjYKLSAgICBpZiAocHJl
dmlvdXNMYXN0SW5kZXggIT09IDApCisgICAgaWYgKCFAc2FtZVZhbHVlKHByZXZpb3VzTGFzdElu
ZGV4LCAwKSkKICAgICAgICAgcmVnZXhwLmxhc3RJbmRleCA9IDA7CiAKICAgICAvLyA2LiBMZXQg
cmVzdWx0IGJlID8gUmVnRXhwRXhlYyhyeCwgUykuCkBAIC00MTUsOCArNDE0LDcgQEAgZnVuY3Rp
b24gc2VhcmNoKHN0ckFyZykKICAgICAvLyA3LiBMZXQgY3VycmVudExhc3RJbmRleCBiZSA/IEdl
dChyeCwgImxhc3RJbmRleCIpLgogICAgIC8vIDguIElmIFNhbWVWYWx1ZShjdXJyZW50TGFzdElu
ZGV4LCBwcmV2aW91c0xhc3RJbmRleCkgaXMgZmFsc2UsIHRoZW4KICAgICAvLyA4LmEuIFBlcmZv
cm0gPyBTZXQocngsICJsYXN0SW5kZXgiLCBwcmV2aW91c0xhc3RJbmRleCwgdHJ1ZSkuCi0gICAg
Ly8gRklYTUU6IEFkZCBTYW1lVmFsdWUgc3VwcG9ydC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MzIyNgotICAgIGlmIChyZWdleHAubGFzdEluZGV4ICE9PSBwcmV2
aW91c0xhc3RJbmRleCkKKyAgICBpZiAoIUBzYW1lVmFsdWUocmVnZXhwLmxhc3RJbmRleCwgcHJl
dmlvdXNMYXN0SW5kZXgpKQogICAgICAgICByZWdleHAubGFzdEluZGV4ID0gcHJldmlvdXNMYXN0
SW5kZXg7CiAKICAgICAvLyA5LiBJZiByZXN1bHQgaXMgbnVsbCwgcmV0dXJuIC0xLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVn
aXN0cnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNp
Y1JlZ2lzdHJ5LmgKaW5kZXggNjcwZWI4ZWI3YWVhMmVhNDM3ZDE5MGFhYTI4OTYwNzVmYWY1Mjcx
OS4uNDFhYTU4ZjdiZDFiNmExZWQ5M2ViYmYxMGZiZTg0YWEyYmI0MTM2MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnku
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNS
ZWdpc3RyeS5oCkBAIC04OSw2ICs4OSw3IEBAIGVudW0gY2xhc3MgTGlua1RpbWVDb25zdGFudCA6
IGludDMyX3Q7CiAgICAgbWFjcm8oY3JlYXRlUHJvbWlzZSkgXAogICAgIG1hY3JvKGNyZWF0ZUFy
Z3VtZW50c0J1dHRlcmZseSkgXAogICAgIG1hY3JvKGRlZmluZUVudW1lcmFibGVXcml0YWJsZUNv
bmZpZ3VyYWJsZURhdGFQcm9wZXJ0eSkgXAorICAgIG1hY3JvKHNhbWVWYWx1ZSkgXAogCiAjZGVm
aW5lIEpTQ19DT01NT05fQllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UU19FQUNIX05BTUUobWFj
cm8pIFwKICAgICBKU0NfQ09NTU9OX0JZVEVDT0RFX0lOVFJJTlNJQ19DT05TVEFOVFNfU0lNUExF
X0VBQ0hfTkFNRShtYWNybykgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlTGlzdC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZUxpc3QucmIKaW5kZXggMWY1NjY5NGNlNzAwZmRlYmUxZmRjYmQwNDRmMmE4N2QwODhm
N2VhMi4uMGUwZjI5MjRiNDUwYjZhMWQwOWU3Yjg4NDUwMTcxODY2OTlhZTRiNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCkBAIC0yNTksNiAr
MjU5LDcgQEAgb3BfZ3JvdXAgOkJpbmFyeU9wLAogICAgICAgICA6bmVxLAogICAgICAgICA6c3Ry
aWN0ZXEsCiAgICAgICAgIDpuc3RyaWN0ZXEsCisgICAgICAgIDpzYW1lX3ZhbHVlLAogICAgICAg
ICA6bGVzcywKICAgICAgICAgOmxlc3NlcSwKICAgICAgICAgOmdyZWF0ZXIsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcAppbmRleCA2N2Yy
Y2VjMGE4MGYwYjgyZmZkMmNmMGY2OTdmNzBlMGQ1NjI2YzEzLi4zYjAyNTY4NWIzMWY5NDcyNTkw
MTcwMmU1ZGU5ZGVkNTFjYWRkMTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKQEAgLTIzNCw2ICsyMzQsNyBAQCB2b2lkIGNvbXB1
dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwoVmlydHVhbFJlZ2lzdGVyIHNjb3BlUmVnaXN0ZXIs
IGNvbnN0IEluc3RydQogICAgIFVTRVMoT3BCZWxvd2VxLCBsaHMsIHJocykKICAgICBVU0VTKE9w
TnN0cmljdGVxLCBsaHMsIHJocykKICAgICBVU0VTKE9wU3RyaWN0ZXEsIGxocywgcmhzKQorICAg
IFVTRVMoT3BTYW1lVmFsdWUsIGxocywgcmhzKQogICAgIFVTRVMoT3BOZXEsIGxocywgcmhzKQog
ICAgIFVTRVMoT3BFcSwgbGhzLCByaHMpCiAgICAgVVNFUyhPcFB1c2hXaXRoU2NvcGUsIGN1cnJl
bnRTY29wZSwgbmV3U2NvcGUpCkBAIC00NTYsNiArNDU3LDcgQEAgdm9pZCBjb21wdXRlRGVmc0Zv
ckJ5dGVjb2RlSW5kZXhJbXBsKHVuc2lnbmVkIG51bVZhcnMsIGNvbnN0IEluc3RydWN0aW9uKiBp
bnN0cnUKICAgICBERUZTKE9wTmVxLCBkc3QpCiAgICAgREVGUyhPcFN0cmljdGVxLCBkc3QpCiAg
ICAgREVGUyhPcE5zdHJpY3RlcSwgZHN0KQorICAgIFVTRVMoT3BTYW1lVmFsdWUsIGRzdCkKICAg
ICBERUZTKE9wTGVzcywgZHN0KQogICAgIERFRlMoT3BMZXNzZXEsIGRzdCkKICAgICBERUZTKE9w
R3JlYXRlciwgZHN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDA3ZjAwOGIzZmVmZTdlN2M2NmE0MGMzMTBmNTY0OGY4
YTUxZDU5NjIuLmFiMDBiOGE2ZTE0MmI5ZmQ4MjRjMzAyY2FkZjViNjhkZDI0ZjVkZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5j
cHAKQEAgLTE1NzcsNiArMTU3NywxNSBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUludHJpbnNpY05v
ZGU6OmVtaXRfaW50cmluc2ljX2lkV2l0aFByb2ZpbGUoQnl0ZWNvZGVHZW5lcmF0bwogICAgIHJl
dHVybiBnZW5lcmF0b3IubW92ZShkc3QsIGdlbmVyYXRvci5lbWl0SWRXaXRoUHJvZmlsZShpZFZh
bHVlLmdldCgpLCBzcGVjdWxhdGlvbikpOwogfQogCitSZWdpc3RlcklEKiBCeXRlY29kZUludHJp
bnNpY05vZGU6OmVtaXRfaW50cmluc2ljX3NhbWVWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYgZ2Vu
ZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgQXJndW1lbnRMaXN0Tm9kZSogbm9kZSA9
IG1fYXJncy0+bV9saXN0Tm9kZTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc3JjMSA9IGdlbmVy
YXRvci5lbWl0Tm9kZShub2RlKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc3JjMiA9IGdlbmVy
YXRvci5lbWl0Tm9kZShub2RlLT5tX25leHQpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBmaW5h
bERlc3QgPSBnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIHNyYzEuZ2V0KCkpOworICAg
IHJldHVybiBnZW5lcmF0b3IuZW1pdEVxdWFsaXR5T3A8T3BTYW1lVmFsdWU+KGZpbmFsRGVzdC5n
ZXQoKSwgc3JjMS5nZXQoKSwgc3JjMi5nZXQoKSk7Cit9CisKICNkZWZpbmUgQ1JFQVRFX0lOVFJJ
TlNJQ19GT1JfQlJBTkRfQ0hFQ0sobG93ZXJOYW1lLCB1cHBlck5hbWUpIFwKICAgICBSZWdpc3Rl
cklEKiBCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljXyMjbG93ZXJOYW1lKEpT
Qzo6Qnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgSlNDOjpSZWdpc3RlcklEKiBkc3QpIFwK
ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFj
a3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDM2ODY1YTUyM2Y1YWM4OGYzNmRk
ZTAwOTA4OWRmZWIyZTI0N2I1ZjguLmFkZmYxNjMxNGM5NDU0YzgzOWFlZDQyN2U5ZmI2NzVhZmEy
ZmE0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFja3dhcmRz
UHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
YWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtNDI3LDcgKzQyNyw4IEBAIHByaXZhdGU6
CiAgICAgICAgIGNhc2UgQ29tcGFyZUJlbG93OgogICAgICAgICBjYXNlIENvbXBhcmVCZWxvd0Vx
OgogICAgICAgICBjYXNlIENvbXBhcmVFcToKLSAgICAgICAgY2FzZSBDb21wYXJlU3RyaWN0RXE6
IHsKKyAgICAgICAgY2FzZSBDb21wYXJlU3RyaWN0RXE6CisgICAgICAgIGNhc2UgU2FtZVZhbHVl
OiB7CiAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS0+bWVyZ2VGbGFncyhOb2RlQnl0ZWNvZGVV
c2VzQXNOdW1iZXIgfCBOb2RlQnl0ZWNvZGVVc2VzQXNPdGhlcik7CiAgICAgICAgICAgICBub2Rl
LT5jaGlsZDIoKS0+bWVyZ2VGbGFncyhOb2RlQnl0ZWNvZGVVc2VzQXNOdW1iZXIgfCBOb2RlQnl0
ZWNvZGVVc2VzQXNPdGhlcik7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggZDJmNGYwMDg0MGM5MTFm
YWUwOTI2NDFjMzVkMzc0ZjIwMTg5ZDhhMC4uNWQ1NmQ4ZjI0MDIwNjc2ODBhMmRlOGM0MzIzODg0
MzVkNDY5MDJiYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTU4NzYsNiArNTg3NiwxNCBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUob3Bfc3Ry
aWN0ZXEpOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBvcF9zYW1lX3ZhbHVlOiB7CisgICAg
ICAgICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcFNhbWVWYWx1
ZT4oKTsKKyAgICAgICAgICAgIE5vZGUqIG9wMSA9IGdldChieXRlY29kZS5tX2xocyk7CisgICAg
ICAgICAgICBOb2RlKiBvcDIgPSBnZXQoYnl0ZWNvZGUubV9yaHMpOworICAgICAgICAgICAgc2V0
KGJ5dGVjb2RlLm1fZHN0LCBhZGRUb0dyYXBoKFNhbWVWYWx1ZSwgb3AxLCBvcDIpKTsKKyAgICAg
ICAgICAgIE5FWFRfT1BDT0RFKG9wX3NhbWVfdmFsdWUpOworICAgICAgICB9CisKICAgICAgICAg
Y2FzZSBvcF9uZXE6IHsKICAgICAgICAgICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1
Y3Rpb24tPmFzPE9wTmVxPigpOwogICAgICAgICAgICAgTm9kZSogb3AxID0gZ2V0KGJ5dGVjb2Rl
Lm1fbGhzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJp
bGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNw
cAppbmRleCA3NTliNzc4MGE2Y2M3ZGVjYTcwMjQ4OGY4ZTFjMmEwYjY3MGJmOTlmLi5lNDVkODc3
MWY2ZjUwMDc5ZWZiMWYxMjhjNjAxMDQ4YzdjNzBlMmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCkBAIC0xNjMsNiArMTYzLDcgQEAgQ2FwYWJp
bGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIGNvbnN0IEkKICAgICBjYXNlIG9wX2VxOgogICAgIGNhc2Ugb3BfZXFfbnVsbDoK
ICAgICBjYXNlIG9wX3N0cmljdGVxOgorICAgIGNhc2Ugb3Bfc2FtZV92YWx1ZToKICAgICBjYXNl
IG9wX25lcToKICAgICBjYXNlIG9wX25lcV9udWxsOgogICAgIGNhc2Ugb3BfbnN0cmljdGVxOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJbnRlZ2VyUmFuZ2VPcHRp
bWl6YXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ludGVnZXJS
YW5nZU9wdGltaXphdGlvblBoYXNlLmNwcAppbmRleCA0NmE3ZjYxMzNlNmM4ODE2ZDZiZDAxMTRk
YWI5YjdiNDgyMjBhYjc1Li43OTk4OTI5MzI4OTgxN2E0YjY5MGVhMmI2MzE2NDNiYmY1Yjk5MGM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ludGVnZXJSYW5nZU9w
dGltaXphdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0lu
dGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNlLmNwcApAQCAtMTE0OSw2ICsxMTQ5LDcgQEAgcHVi
bGljOgogICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjb21wYXJlLT5vcCgpKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENvbXBhcmVFcToKICAgICAgICAgICAgICAgICAg
ICAgICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxOgorICAgICAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBTYW1lVmFsdWU6CiAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENvbXBhcmVMZXNzOgog
ICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlTGVzc0VxOgogICAgICAgICAgICAg
ICAgICAgICAgICAgY2FzZSBDb21wYXJlR3JlYXRlcjoKQEAgLTExNTksNiArMTE2MCw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbXBhcmUtPm9wKCkp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENvbXBhcmVFcToKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjYXNlIENvbXBhcmVTdHJpY3RFcToKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlIFNhbWVWYWx1ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVsYXRpb25zaGlwRm9yVHJ1ZSA9IFJlbGF0aW9uc2hpcDo6c2FmZUNyZWF0ZSgKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmUtPmNoaWxkMSgpLm5vZGUo
KSwgY29tcGFyZS0+Y2hpbGQyKCkubm9kZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUmVsYXRpb25zaGlwOjpFcXVhbCwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCAxNjJjNGEyMDYzZjYyZjljOTA1MjU5YzE0MzI2
ZTQ5MTFiN2RlYjExLi5mYTA4ZjdhODAyNzJkZjdlNjFiMjYzZmU2NmRhZTkyZWYyZjg4NTU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTE2MzIs
MTUgKzE2MzIsNiBAQCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaWN0
RXFDZWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6
OnN0cmljdEVxdWFsU2xvd0Nhc2VJbmxpbmUoZ2xvYmFsT2JqZWN0LCBvcDEsIG9wMik7CiB9CiAK
LXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNhbWVWYWx1ZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBhcmcxLCBFbmNvZGVkSlNWYWx1ZSBhcmcyKQot
ewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Ci0gICAgSklUT3BlcmF0aW9uUHJvbG9ndWVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotCi0gICAgcmV0dXJuIHNhbWVW
YWx1ZShnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShhcmcxKSwgSlNWYWx1ZTo6ZGVjb2Rl
KGFyZzIpKTsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub1By
aW1pdGl2ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1
ZSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IGE4YTRjYmQyMGU2N2RmZjY0MDZjZWRlYTFm
MWU0YTA3ZTc3Y2Q5YzcuLjc1MDdmNzJlYmU1ODdlMTY0ZDY5YTBhODg4ZWI2Nzc3NDYxNmE0YmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCkBAIC0xOTUsNyAr
MTk1LDYgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkJpdExTaGlmdEJpZ0ludChK
U0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0MKIEpTQ2VsbCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25BZGRCaWdJbnQoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBv
cDIpIFdURl9JTlRFUk5BTDsKIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25CaXRSU2hp
ZnRCaWdJbnQoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpIFdURl9J
TlRFUk5BTDsKIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25CaXRYb3JCaWdJbnQoSlNH
bG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpIFdURl9JTlRFUk5BTDsKLXNp
emVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNhbWVWYWx1ZShKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogSlNDZWxsKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb25EaXJlY3QoVk0qLCBTdHJ1Y3R1cmUq
LCBKU1Njb3BlKiwgU3ltYm9sVGFibGUqLCBFbmNvZGVkSlNWYWx1ZSk7CiBKU0NlbGwqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzKFZNKiwgU3RydWN0dXJlKiwg
dWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBtaW5DYXBhY2l0eSk7CiBKU0NlbGwqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzRHVyaW5nRXhpdChWTSosIElubGlu
ZUNhbGxGcmFtZSosIEpTRnVuY3Rpb24qLCB1aW50MzJfdCBhcmd1bWVudENvdW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmNwcAppbmRleCBjNmU2MWI4OWJmOWExYTE5NWMzZTgzODY0YzFjYTE3
ODQwOGE1YjBmLi40NDE5MTZlNjdiMGJmMjU5MjAzOTJjZDJkMWE5NmIyZDNjNmZiNDgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC00NDQsNiArNDQ0LDcgQEAgdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfdXJzaGlmdCkKICAg
ICAgICAgREVGSU5FX09QKG9wX3NldF9mdW5jdGlvbl9uYW1lKQogICAgICAgICBERUZJTkVfT1Ao
b3Bfc3RyaWN0ZXEpCisgICAgICAgIERFRklORV9PUChvcF9zYW1lX3ZhbHVlKQogICAgICAgICBE
RUZJTkVfT1Aob3Bfc3ViKQogICAgICAgICBERUZJTkVfT1Aob3Bfc3dpdGNoX2NoYXIpCiAgICAg
ICAgIERFRklORV9PUChvcF9zd2l0Y2hfaW1tKQpAQCAtNjEzLDYgKzYxNCw3IEBAIHZvaWQgSklU
Ojpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9X
X09QKG5vdCkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX1NMT1dfT1Aoc3RyaWN0ZXEpCiAgICAg
ICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKG5zdHJpY3RlcSkKKyAgICAgICAgREVGSU5FX1NM
T1dDQVNFX1NMT1dfT1Aoc2FtZV92YWx1ZSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX1NMT1df
T1AoZ2V0X2RpcmVjdF9wbmFtZSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX1NMT1dfT1AoaGFz
X3N0cnVjdHVyZV9wcm9wZXJ0eSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX1NMT1dfT1AocmVz
b2x2ZV9zY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDcwNzM1NWM2ZDcxMTgyYWEw
NzI5YTI3NDkxMDA0ZjQ1ZTFlYTZhYzEuLmMxM2EwNTdlNzk1NGNhYmEzMjUzNGQzMjZkZGU0ZWMw
YmRhNzEyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNTk2LDYgKzU5Niw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRfb3BfcnNoaWZ0KGNvbnN0IEluc3RydWN0
aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9zZXRfZnVuY3Rpb25fbmFtZShjb25zdCBJbnN0
cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bfc3RyaWN0ZXEoY29uc3QgSW5zdHJ1Y3Rp
b24qKTsKKyAgICAgICAgdm9pZCBlbWl0X29wX3NhbWVfdmFsdWUoY29uc3QgSW5zdHJ1Y3Rpb24q
KTsKICAgICAgICAgdm9pZCBlbWl0X29wX3N1Yihjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAg
ICB2b2lkIGVtaXRfb3Bfc3dpdGNoX2NoYXIoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAg
dm9pZCBlbWl0X29wX3N3aXRjaF9pbW0oY29uc3QgSW5zdHJ1Y3Rpb24qKTsKQEAgLTYzMSw2ICs2
MzIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9jb25zdHJ1
Y3RfdmFyYXJncyhjb25zdCBJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9jb25zdHJ1Y3QoY29uc3QgSW5zdHJ1
Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQg
ZW1pdFNsb3dfb3BfZXEoY29uc3QgSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46
Oml0ZXJhdG9yJik7CisgICAgICAgIHZvaWQgZW1pdFNsb3dfb3Bfc2FtZV92YWx1ZShjb25zdCBJ
bnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAg
dm9pZCBlbWl0U2xvd19vcF9nZXRfY2FsbGVlKGNvbnN0IEluc3RydWN0aW9uKiwgVmVjdG9yPFNs
b3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX3RyeV9n
ZXRfYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJh
dG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfZ2V0X2J5X2lkKGNvbnN0IEluc3RydWN0
aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggZmM5NGNhMzcyNDk5MTM2OGEzMmFmYzFlMTAz
NjU2OTdlMjhkZTgzMC4uODA1NDZlM2I1NTE4NWQ0YzQ0ZWVjMGVkOTNjYzBmNzc1MzQ2MzJkMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC01MDksNiArNTA5
LDE2IEBAIHZvaWQgSklUOjplbWl0X29wX2VxKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihieXRlY29kZS5tX2RzdCk7CiB9
CiAKK3ZvaWQgSklUOjplbWl0X29wX3NhbWVfdmFsdWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKK3sKKyAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9u
LT5hczxPcFNhbWVWYWx1ZT4oKTsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVycyhieXRlY29k
ZS5tX2xocywgcmVnVDAsIGJ5dGVjb2RlLm1fcmhzLCByZWdUMSk7CisgICAgZW1pdEp1bXBTbG93
Q2FzZUlmTm90SW50KHJlZ1QwLCByZWdUMSwgcmVnVDIpOworICAgIGNvbXBhcmUzMihFcXVhbCwg
cmVnVDEsIHJlZ1QwLCByZWdUMCk7CisgICAgYm94Qm9vbGVhbihyZWdUMCwgSlNWYWx1ZVJlZ3Mg
eyByZWdUMCB9KTsKKyAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGJ5dGVjb2RlLm1fZHN0KTsK
K30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfamVxKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCiB7CiAgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8
T3BKZXE+KCk7CkBAIC0xMDA1LDYgKzEwMTUsMTYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2Vx
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUUK
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGJ5dGVjb2RlLm1fZHN0LCByZXR1cm5WYWx1ZUdQ
Uik7CiB9CiAKK3ZvaWQgSklUOjplbWl0U2xvd19vcF9zYW1lX3ZhbHVlKGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3Im
IGl0ZXIpCit7CisgICAgbGlua0FsbFNsb3dDYXNlcyhpdGVyKTsKKworICAgIGF1dG8gYnl0ZWNv
ZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wU2FtZVZhbHVlPigpOworICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uU2FtZVZhbHVlLCBUcnVzdGVkSW1tUHRyKG1fY29kZUJsb2NrLT5nbG9i
YWxPYmplY3QoKSksIHJlZ1QwLCByZWdUMSk7CisgICAgYm94Qm9vbGVhbihyZXR1cm5WYWx1ZUdQ
UiwgSlNWYWx1ZVJlZ3MgeyByZXR1cm5WYWx1ZUdQUiB9KTsKKyAgICBlbWl0UHV0VmlydHVhbFJl
Z2lzdGVyKGJ5dGVjb2RlLm1fZHN0LCByZXR1cm5WYWx1ZUdQUik7Cit9CisKIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9uZXEoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBsaW5rQWxsU2xvd0Nh
c2VzKGl0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQu
Y3BwCmluZGV4IDFjMzA3NzY5ZGFhNTkyZDFjN2MxYzM4YzU3YWU0MmYyNWEzNjA0MGQuLjk1YzVi
ZDZlZThiMWI2ZThkNDAyNDM5NDNlMmZhNDgyMzQzNjU2NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTU1Myw2ICs1NTMsNTEgQEAgdm9p
ZCBKSVQ6OmVtaXRTbG93X29wX2VxKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24sIFZlY3RvcjxTbG93Q2FzZUUKICAgICBlbWl0U3RvcmVCb29sKGRzdCwgcmV0dXJuVmFsdWVH
UFIpOwogfQogCit2b2lkIEpJVDo6ZW1pdF9vcF9zYW1lX3ZhbHVlKGNvbnN0IEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0
cnVjdGlvbi0+YXM8T3BTYW1lVmFsdWU+KCk7CisKKyAgICBWaXJ0dWFsUmVnaXN0ZXIgZHN0ID0g
Ynl0ZWNvZGUubV9kc3Q7CisgICAgVmlydHVhbFJlZ2lzdGVyIHNyYzEgPSBieXRlY29kZS5tX2xo
czsKKyAgICBWaXJ0dWFsUmVnaXN0ZXIgc3JjMiA9IGJ5dGVjb2RlLm1fcmhzOworCisgICAgZW1p
dExvYWQyKHNyYzEsIHJlZ1QxLCByZWdUMCwgc3JjMiwgcmVnVDMsIHJlZ1QyKTsKKyAgICBhZGRT
bG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIHJlZ1QzKSk7CisgICAgYWRkU2xvd0Nh
c2UoYnJhbmNoSWZDZWxsKHJlZ1QxKSk7CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoQmVsb3cs
IHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSkpOworCisgICAgY29tcGFy
ZTMyKEVxdWFsLCByZWdUMCwgcmVnVDIsIHJlZ1QwKTsKKworICAgIGVtaXRTdG9yZUJvb2woZHN0
LCByZWdUMCk7Cit9CisKK3ZvaWQgSklUOjplbWl0U2xvd19vcF9zYW1lX3ZhbHVlKGNvbnN0IElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImIGl0ZXIpCit7CisgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+
YXM8T3BTYW1lVmFsdWU+KCk7CisgICAgVmlydHVhbFJlZ2lzdGVyIGRzdCA9IGJ5dGVjb2RlLm1f
ZHN0OworCisgICAgSnVtcExpc3Qgc3RvcmVSZXN1bHQ7CisgICAgSnVtcExpc3QgZ2VuZXJpY0Nh
c2U7CisKKyAgICBnZW5lcmljQ2FzZS5hcHBlbmQoZ2V0U2xvd0Nhc2UoaXRlcikpOyAvLyB0YWdz
IG5vdCBlcXVhbAorCisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyB0YWdzIGVxdWFsIGFuZCBK
U0NlbGwKKyAgICBnZW5lcmljQ2FzZS5hcHBlbmQoYnJhbmNoSWZOb3RTdHJpbmcocmVnVDApKTsK
KyAgICBnZW5lcmljQ2FzZS5hcHBlbmQoYnJhbmNoSWZOb3RTdHJpbmcocmVnVDIpKTsKKworICAg
IC8vIFN0cmluZyBjYXNlLgorICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ29tcGFyZVN0cmlu
Z0VxLCBtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCksIHJlZ1QwLCByZWdUMik7CisgICAgc3Rv
cmVSZXN1bHQuYXBwZW5kKGp1bXAoKSk7CisKKyAgICAvLyBHZW5lcmljIGNhc2UuCisgICAgZ2Vu
ZXJpY0Nhc2UuYXBwZW5kKGdldFNsb3dDYXNlKGl0ZXIpKTsgLy8gZG91YmxlcworICAgIGdlbmVy
aWNDYXNlLmxpbmsodGhpcyk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TYW1lVmFsdWUs
IG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwg
SlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSk7CisKKyAgICBzdG9yZVJlc3VsdC5saW5rKHRoaXMp
OworICAgIGVtaXRTdG9yZUJvb2woZHN0LCByZXR1cm5WYWx1ZUdQUik7Cit9CisKIHZvaWQgSklU
OjplbWl0X29wX2plcShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewog
ICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSmVxPigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggN2FlMTUwY2M2
NjEwNzYyYmFjYzhiZTQyMjA3M2FhZDY0YWIzMTE5MS4uYTNkMzNjMTZkMWE4ZDg4NThlOGU2ZjFl
OTFjYWNiMTA1MTg5MDRiNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwCkBAIC0xMzE1LDYgKzEzMTUsMTUgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQ29tcGFyZVN0cmljdEVxKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY28K
ICAgICByZXR1cm4gSlNWYWx1ZTo6c3RyaWN0RXF1YWwoZ2xvYmFsT2JqZWN0LCBzcmMxLCBzcmMy
KTsKIH0KIAorc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2FtZVZhbHVlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwor
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CisKKyAgICByZXR1cm4gc2FtZVZhbHVlKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpOworfQorCiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FycmF5V2l0aFByb2ZpbGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgY29u
c3QgSlNWYWx1ZSogdmFsdWVzLCBpbnQgc2l6ZSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4
IDhlZmI1YjVhYzk4MGFlZTZjNTUyMzQ0MzdjOTAyODk1ODkwMjI2NjUuLjZjOWE0YjBiMDkwZjU2
MmE1OTQzNmJjMzM0YjU2MzJkM2MwYmFkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5oCkBAIC0yMDQsNiArMjA0LDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
RW4KIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyRXEoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsK
IHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVFcShKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogc2l6ZV90IEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CitzaXplX3QgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25TYW1lVmFsdWUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKICNpZiBVU0UoSlNWQUxVRTY0KQogRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaW5nRXEoSlNHbG9i
YWxPYmplY3QqLCBKU0NlbGwqIGxlZnQsIEpTQ2VsbCogcmlnaHQpIFdURl9JTlRFUk5BTDsKICNl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlci5hc20KaW5kZXggYjU2OTljMzBkMmNkYWZhNGY5M2MzYTlmMDk4MDU3MWM4MTc2N2MxYS4u
YmYzNWE4MzgxZDgzNmY4OWZjZThjZWJjODYyMWIxOTVkMDM4NWI0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTgz
MSw2ICsxODMxLDEwIEBAIGVxdWFsaXR5Q29tcGFyaXNvbk9wKG5lcSwgT3BOZXEsCiAgICAgbWFj
cm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNpbmVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5kKQog
CiAKK2VxdWFsaXR5Q29tcGFyaXNvbk9wKHNhbWVfdmFsdWUsIE9wU2FtZVZhbHVlLAorICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgcmVzdWx0KSBjaWVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5kKQor
CisKIGNvbXBhcmVVbnNpZ25lZE9wKGJlbG93LCBPcEJlbG93LAogICAgIG1hY3JvIChsZWZ0LCBy
aWdodCwgcmVzdWx0KSBjaWIgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQpCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCmluZGV4IGI4ZGU5
NjU1ODJmN2Q5MTI3MTMzN2Q1NDMxOTAzZTgzMThjMjZmNDcuLjRiYjE4YjQ0ZjU0YzQ0MjE1NzQx
ZjdhNjdmMjE5MzI4NTYwYjM0OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtNDM2LDYgKzQzNiwxMyBAQCBTTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfbnN0cmljdGVxKQogICAgIFJFVFVSTihqc0Jvb2xlYW4oIUpTVmFsdWU6
OnN0cmljdEVxdWFsKGdsb2JhbE9iamVjdCwgR0VUX0MoYnl0ZWNvZGUubV9saHMpLmpzVmFsdWUo
KSwgR0VUX0MoYnl0ZWNvZGUubV9yaHMpLmpzVmFsdWUoKSkpKTsKIH0KIAorU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX3NhbWVfdmFsdWUpCit7CisgICAgQkVHSU4oKTsKKyAgICBhdXRvIGJ5dGVj
b2RlID0gcGMtPmFzPE9wU2FtZVZhbHVlPigpOworICAgIFJFVFVSTihqc0Jvb2xlYW4oc2FtZVZh
bHVlKGdsb2JhbE9iamVjdCwgR0VUX0MoYnl0ZWNvZGUubV9saHMpLmpzVmFsdWUoKSwgR0VUX0Mo
Ynl0ZWNvZGUubV9yaHMpLmpzVmFsdWUoKSkpKTsKK30KKwogU0xPV19QQVRIX0RFQ0woc2xvd19w
YXRoX2xlc3MpCiB7CiAgICAgQkVHSU4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKaW5kZXggYjcxMzVlMmI3ODRhYjY4ZGI1ZjU1OGZhNzg1
MDRjYWIwOTY0M2M2MS4uMzg0ZDA5YmI1MTk2YTY3ZTkxNGUxNDM0ZGVlYWVlZjc4NDdmYzQ4OCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgK
QEAgLTIxNSw2ICsyMTUsNyBAQCBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2VxKTsK
IFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmVxKTsKIFNMT1dfUEFUSF9ISURERU5f
REVDTChzbG93X3BhdGhfc3RyaWN0ZXEpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9uc3RyaWN0ZXEpOworU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9zYW1lX3ZhbHVl
KTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbGVzcyk7CiBTTE9XX1BBVEhfSElE
REVOX0RFQ0woc2xvd19wYXRoX2xlc3NlcSk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19w
YXRoX2dyZWF0ZXIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0No
YW5nZUxvZwppbmRleCA1NDJjYmViZDljYWY4MjQ5MWM0OWMxNTNmZTQyNmExMzg5ODQzMWVjLi4y
OGM3NDIwM2FmOWYyMWJkOWFlODU2ZWI0YTk0Mjk5MWEzMjA3ZTg4IDEwMDY0NAotLS0gYS9KU1Rl
c3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIwLTA0LTE2ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAg
ICAgICBbSlNDXSBBZGQgb3Bfc2FtZV92YWx1ZSBieXRlY29kZSwgaW50cmluc2ljLCBKSVQgc3Vw
cG9ydHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MzIyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3RyZXNzL3NhbWUtdmFsdWUtaW50cmluc2ljLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0MjYy
L2V4cGVjdGF0aW9ucy55YW1sOiBNYXJrIDQgdGVzdCBjYXNlcyBhcyBwYXNzaW5nLgorCiAyMDIw
LTA0LTE2ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pT
Q10gSW1wbGVtZW50IEpTTWFwSXRlcmF0b3IvSlNTZXRJdGVyYXRvciB3aXRoIEpTSW50ZXJuYWxG
aWVsZE9iamVjdEltcGwKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbWUtdmFsdWUtaW50
cmluc2ljLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2FtZS12YWx1ZS1pbnRyaW5zaWMuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmQzODQxNzdhNDEwNTRhNzlmOTVhYThlMTEwYTQ1YWEyYThhNDNiZQotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbWUtdmFsdWUtaW50cmluc2ljLmpzCkBAIC0wLDAg
KzEsMzEgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAo
YWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6
ICcgKyBhY3R1YWwpOworfQorCitjb25zdCBzYW1lVmFsdWUgPSAkdm0uY3JlYXRlQnVpbHRpbihg
KGZ1bmN0aW9uIChhLCBiKSB7CisgICAgcmV0dXJuIEBzYW1lVmFsdWUoYSwgYik7Cit9KWApOwor
Citjb25zdCBvYmogPSB7fTsKK2NvbnN0IGFyciA9IFtdOworY29uc3Qgc3ltID0gU3ltYm9sKCk7
CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU1OyArK2kpIHsKKyAgICBzaG91bGRCZShzYW1lVmFs
dWUobnVsbCwgbnVsbCksIHRydWUpOworICAgIHNob3VsZEJlKHNhbWVWYWx1ZShudWxsLCB1bmRl
ZmluZWQpLCBmYWxzZSk7CisgICAgc2hvdWxkQmUoc2FtZVZhbHVlKHRydWUsIHRydWUpLCB0cnVl
KTsKKyAgICBzaG91bGRCZShzYW1lVmFsdWUodHJ1ZSwgZmFsc2UpLCBmYWxzZSk7CisgICAgc2hv
dWxkQmUoc2FtZVZhbHVlKCdhYmMnLCAnYWJjJyksIHRydWUpOworICAgIHNob3VsZEJlKHNhbWVW
YWx1ZShOYU4sIE5hTiksIHRydWUpOworICAgIHNob3VsZEJlKHNhbWVWYWx1ZShJbmZpbml0eSwg
SW5maW5pdHkpLCB0cnVlKTsKKyAgICBzaG91bGRCZShzYW1lVmFsdWUoMCwgMCksIHRydWUpOwor
ICAgIHNob3VsZEJlKHNhbWVWYWx1ZSgtMCwgLTApLCB0cnVlKTsKKyAgICBzaG91bGRCZShzYW1l
VmFsdWUoMCwgLTApLCBmYWxzZSk7CisgICAgc2hvdWxkQmUoc2FtZVZhbHVlKC0wLCAwKSwgZmFs
c2UpOworICAgIHNob3VsZEJlKHNhbWVWYWx1ZShvYmosIG9iaiksIHRydWUpOworICAgIHNob3Vs
ZEJlKHNhbWVWYWx1ZSh7fSwge30pLCBmYWxzZSk7CisgICAgc2hvdWxkQmUoc2FtZVZhbHVlKGFy
ciwgYXJyKSwgdHJ1ZSk7CisgICAgc2hvdWxkQmUoc2FtZVZhbHVlKFtdLCBbXSksIGZhbHNlKTsK
KyAgICBzaG91bGRCZShzYW1lVmFsdWUoc3ltLCBzeW0pLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBh
L0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBl
Y3RhdGlvbnMueWFtbAppbmRleCBmNGYzN2FhMTFkZjk0ZTY5NTdiZDIxNmJkMzg1ZGI0MmEyODFi
NjhmLi4wM2MwM2U2MDRmMTljM2FiYWNmYWFkNzIxMmVkODRhNjcwOWVmYmQwIDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYy
L2V4cGVjdGF0aW9ucy55YW1sCkBAIC0xNjYwLDEyICsxNjYwLDYgQEAgdGVzdC9idWlsdC1pbnMv
UmVnRXhwL3Byb3RvLWZyb20tY3Rvci1yZWFsbS5qczoKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9w
cm90b3R5cGUvU3ltYm9sLm1hdGNoL2J1aWx0aW4taW5mZXItdW5pY29kZS5qczoKICAgZGVmYXVs
dDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr77+9wrssIMKrbnVsbMK7KSB0
byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZh
bHVlKMKr77+9wrssIMKrbnVsbMK7KSB0byBiZSB0cnVlJwotdGVzdC9idWlsdC1pbnMvUmVnRXhw
L3Byb3RvdHlwZS9TeW1ib2wuc2VhcmNoL3NldC1sYXN0aW5kZXgtaW5pdC1zYW1ldmFsdWUuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqy0wwrssIMKr
MMK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQg
U2FtZVZhbHVlKMKrLTDCuywgwqswwrspIHRvIGJlIHRydWUnCi10ZXN0L2J1aWx0LWlucy9SZWdF
eHAvcHJvdG90eXBlL1N5bWJvbC5zZWFyY2gvc2V0LWxhc3RpbmRleC1yZXN0b3JlLXNhbWV2YWx1
ZS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrLTDC
uywgwqswwrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBTYW1lVmFsdWUowqstMMK7LCDCqzDCuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQtaW5z
L1JlZ0V4cC9wcm90b3R5cGUvU3ltYm9sLnNlYXJjaC91LWxhc3RpbmRleC1hZHZhbmNlLmpzOgog
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqsxwrssIMKrLTHC
uykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNh
bWVWYWx1ZSjCqzHCuywgwqstMcK7KSB0byBiZSB0cnVlJwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396821</attachid>
            <date>2020-04-17 18:32:06 -0700</date>
            <delta_ts>2020-04-18 09:01:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173226-20200418043204.patch</filename>
            <type>text/plain</type>
            <size>9675</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
YjNkMjU5NzlhYmNhNmY0OTkwNWU0MDg1Y2UyNDIwMzI0YjI4NDk4Li43MGY3MmNlNDJjZWNhYzk2
ZGI5NjFmODBjMjdhMzNkZWNhYTRiOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMC0wNC0xNyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZVtAQHNlYXJjaF0gc2hvdWxkIHVzZSBT
YW1lVmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MzIyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgY2hhbmdlIGV4cG9zZXMgT2JqZWN0LmlzIGltcGxlbWVudGF0aW9uIGFzIGxpbmstdGlt
ZS1jb25zdGFudCBAc2FtZVZhbHVlIGFuZCB1dGlsaXplcworICAgICAgICBpdCBpbiBSZWdFeHAu
cHJvdG90eXBlW0BAc2VhcmNoXSBwZXIgc3BlYyBbMV0sIGFsaWduaW5nIEpTQyB3aXRoIFY4IGFu
ZCBTcGlkZXJNb25rZXkuCisKKyAgICAgICAgWzFdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8j
c2VjLXJlZ2V4cC5wcm90b3R5cGUtQEBzZWFyY2ggKHN0ZXBzIDUsIDgpCisKKyAgICAgICAgKiBi
dWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBidWlsdGlucy9SZWdFeHBQcm90b3R5
cGUuanM6CisgICAgICAgIChTeW1ib2wuc2VhcmNoKToKKyAgICAgICAgKiBieXRlY29kZS9MaW5r
VGltZUNvbnN0YW50Lmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKiBydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9y
Lmg6CisKIDIwMjAtMDQtMTcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbSlNDXSBNYXAvU2V0IGl0ZXJhdG9yIGNyZWF0aW9uIGZ1bmN0aW9ucyBzaG91bGQg
ZmFpbCB3aXRoIEJhZFR5cGUgZXRjLiBiZWZvcmUgZXhlY3V0aW5nIGluc2VydENoZWNrcwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4IDkxNTdl
YzVmZTM3YzU5MTZkYzczNDlhMTlmN2RlYzVkNjBjN2FmZjYuLmU0Y2RkZTM0OTEzNDUwMGQzNTU2
OTY5YmI5ODE1MDZiYjhhZTZiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9CdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvQnVpbHRpbk5hbWVzLmgKQEAgLTEyMiw2ICsxMjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBtYWNybyhpbnN0YW5jZU9mKSBcCiAgICAgbWFjcm8oaXNBcnJheVNsb3cpIFwKICAgICBtYWNy
byhpc0NvbnN0cnVjdG9yKSBcCisgICAgbWFjcm8oc2FtZVZhbHVlKSBcCiAgICAgbWFjcm8oY29u
Y2F0TWVtY3B5KSBcCiAgICAgbWFjcm8oYXBwZW5kTWVtY3B5KSBcCiAgICAgbWFjcm8ocmVnRXhw
Q3JlYXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVn
RXhwUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1JlZ0V4cFBy
b3RvdHlwZS5qcwppbmRleCBiNzFkNmNkYzMyMzFjYWUyMmM0MDM0NWJkNWEyMTliMTY5NTU3ZDI4
Li5hMzJmYmIzMmNhZThkMTEzYjQ2OTA2YmJmODZkMzg0M2JkZGE4ZTdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMKQEAgLTQwMywx
MCArNDAzLDkgQEAgZnVuY3Rpb24gc2VhcmNoKHN0ckFyZykKICAgICAvLyA0LiBMZXQgcHJldmlv
dXNMYXN0SW5kZXggYmUgPyBHZXQocngsICJsYXN0SW5kZXgiKS4KICAgICB2YXIgcHJldmlvdXNM
YXN0SW5kZXggPSByZWdleHAubGFzdEluZGV4OwogCi0gICAgLy8gNS5JZiBTYW1lVmFsdWUocHJl
dmlvdXNMYXN0SW5kZXgsIDApIGlzIGZhbHNlLCB0aGVuCisgICAgLy8gNS4gSWYgU2FtZVZhbHVl
KHByZXZpb3VzTGFzdEluZGV4LCAwKSBpcyBmYWxzZSwgdGhlbgogICAgIC8vIDUuYS4gUGVyZm9y
bSA/IFNldChyeCwgImxhc3RJbmRleCIsIDAsIHRydWUpLgotICAgIC8vIEZJWE1FOiBBZGQgU2Ft
ZVZhbHVlIHN1cHBvcnQuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzMyMjYKLSAgICBpZiAocHJldmlvdXNMYXN0SW5kZXggIT09IDApCisgICAgaWYgKCFAc2FtZVZh
bHVlKHByZXZpb3VzTGFzdEluZGV4LCAwKSkKICAgICAgICAgcmVnZXhwLmxhc3RJbmRleCA9IDA7
CiAKICAgICAvLyA2LiBMZXQgcmVzdWx0IGJlID8gUmVnRXhwRXhlYyhyeCwgUykuCkBAIC00MTUs
OCArNDE0LDcgQEAgZnVuY3Rpb24gc2VhcmNoKHN0ckFyZykKICAgICAvLyA3LiBMZXQgY3VycmVu
dExhc3RJbmRleCBiZSA/IEdldChyeCwgImxhc3RJbmRleCIpLgogICAgIC8vIDguIElmIFNhbWVW
YWx1ZShjdXJyZW50TGFzdEluZGV4LCBwcmV2aW91c0xhc3RJbmRleCkgaXMgZmFsc2UsIHRoZW4K
ICAgICAvLyA4LmEuIFBlcmZvcm0gPyBTZXQocngsICJsYXN0SW5kZXgiLCBwcmV2aW91c0xhc3RJ
bmRleCwgdHJ1ZSkuCi0gICAgLy8gRklYTUU6IEFkZCBTYW1lVmFsdWUgc3VwcG9ydC4gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzIyNgotICAgIGlmIChyZWdleHAu
bGFzdEluZGV4ICE9PSBwcmV2aW91c0xhc3RJbmRleCkKKyAgICBpZiAoIUBzYW1lVmFsdWUocmVn
ZXhwLmxhc3RJbmRleCwgcHJldmlvdXNMYXN0SW5kZXgpKQogICAgICAgICByZWdleHAubGFzdElu
ZGV4ID0gcHJldmlvdXNMYXN0SW5kZXg7CiAKICAgICAvLyA5LiBJZiByZXN1bHQgaXMgbnVsbCwg
cmV0dXJuIC0xLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xp
bmtUaW1lQ29uc3RhbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGlt
ZUNvbnN0YW50LmgKaW5kZXggOTE2MjFiMThkNWRmM2EyMjhmNTVhMThjZDcwYzcxMzQxMzdhZjE1
ZS4uOTJjZTUzZjgxY2FiYmU3MjA4ZTVlOTUwOGIxYmE4NGIxNDA1NTJiYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oCkBAIC03Myw2
ICs3Myw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwogICAgIHYoU2V0LCBudWxscHRyKSBcCiAg
ICAgdih0aGlzVGltZVZhbHVlLCBudWxscHRyKSBcCiAgICAgdihpc0NvbnN0cnVjdG9yLCBudWxs
cHRyKSBcCisgICAgdihzYW1lVmFsdWUsIG51bGxwdHIpIFwKICAgICB2KHJlZ0V4cFByb3RvRmxh
Z3NHZXR0ZXIsIG51bGxwdHIpIFwKICAgICB2KHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyLCBudWxs
cHRyKSBcCiAgICAgdihyZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0ZXIsIG51bGxwdHIpIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRl
eCBhNmRkYjRjZjU2N2JjZDIzMTFhYzUyZmU1ZTI0MzFmYThjNzdiNWNkLi45ODVkY2UyOWY4NTZl
ZDU2OGMyNGYyODViYzc2ZDJiOTkxNWNmZTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xMTE2LDYgKzExMTYsOSBAQCBjYXBp
dGFsTmFtZSAjIyBDb25zdHJ1Y3RvciogbG93ZXJOYW1lICMjIENvbnN0cnVjdG9yID0gZmVhdHVy
ZUZsYWcgPyBjYXBpdGFsTmFtZQogICAgIG1fbGlua1RpbWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OmlzQ29uc3RydWN0b3IpXS5pbml0TGF0ZXIoW10g
KGNvbnN0IEluaXRpYWxpemVyPEpTQ2VsbD4mIGluaXQpIHsKICAgICAgICAgICAgIGluaXQuc2V0
KEpTRnVuY3Rpb246OmNyZWF0ZShpbml0LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihpbml0
Lm93bmVyKSwgMSwgU3RyaW5nKCksIGVzU3BlY0lzQ29uc3RydWN0b3IsIE5vSW50cmluc2ljKSk7
CiAgICAgICAgIH0pOworICAgIG1fbGlua1RpbWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OnNhbWVWYWx1ZSldLmluaXRMYXRlcihbXSAoY29uc3QgSW5p
dGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgeworICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlv
bjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAy
LCBTdHJpbmcoKSwgb2JqZWN0Q29uc3RydWN0b3JJcywgT2JqZWN0SXNJbnRyaW5zaWMpKTsKKyAg
ICAgICAgfSk7CiAKICAgICAvLyBSZWdFeHAucHJvdG90eXBlIGhlbHBlcnMuCiAgICAgbV9saW5r
VGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFudDo6cmVn
RXhwQ3JlYXRlKV0uaW5pdExhdGVyKFtdIChjb25zdCBJbml0aWFsaXplcjxKU0NlbGw+JiBpbml0
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggNmI5MDg2NmZlZDE2OWIxNzI5YTc2MjBiNjkzNTA2NTVkZGQ5MGY4ZS4u
Y2ZlYTEzYWQxZmUxMGNjYTI5YmQ5MDIxOGQ0ZTk4MTM1Yzk1MjVlMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtNTQs
NyArNTQsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9y
UHJldmVudEV4dGVuc2lvbnMoSlNHbG9iYWxPYmplY3QqLAogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcklzU2VhbGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9ySXNG
cm96ZW4oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JJc0V4dGVuc2libGUoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0
b3JJcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwogCiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCmluZGV4IDUyZWFmOGEz
YmJiMmFhY2JkYjI1YTFmYzZlMTgzOGMyNmFiMjY1M2MuLjZhYWI2ZDdhNWNkMjcwYjEwMDE4YTU5
ZjE0NjI2N2U5ODM4Y2U2OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuaApAQCAtMTI1LDQgKzEyNSw2IEBAIEpTVmFsdWUgb2JqZWN0
Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEpTR2xvYmFsT2JqZWN0KiwgSlNP
YmplY3QqKTsKIEpTQXJyYXkqIG93blByb3BlcnR5S2V5cyhKU0dsb2JhbE9iamVjdCosIEpTT2Jq
ZWN0KiwgUHJvcGVydHlOYW1lTW9kZSwgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZSk7CiBib29sIHRv
UHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSwgUHJvcGVydHlEZXNj
cmlwdG9yJik7CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0
b3JJcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NTkyOTkyZDY5ZmI2NTM5YmJhZDAxZGI4MWYxZGY5YzdiNWFiZWUwNi4uMWI1ZmVmNjFiYTI2MmY4
ZDVjZTRkMTdlZjliZTZkNzI5NDhjODRkNiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNC0xNyAgQWxl
eGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgUmVnRXhwLnBy
b3RvdHlwZVtAQHNlYXJjaF0gc2hvdWxkIHVzZSBTYW1lVmFsdWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzIyNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL3NhbWUtdmFsdWUtaW50cmlu
c2ljLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOiBNYXJr
IDQgdGVzdCBjYXNlcyBhcyBwYXNzaW5nLgorCiAyMDIwLTA0LTE3ICBQYXVsbyBNYXRvcyAgPHBt
YXRvc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlZHVjZSB0ZXN0IGl0ZXJhdGlvbnMgZm9yIHN0
cmVzcy9hcnJheS1idWZmZXItdmlldy13YXRjaHBvaW50LWNhbi1iZS1maXJlZC1pbi1yZWFsbHkt
YWRkLWluLWRmZy5qcyBvbiBtaXBzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1lLXZh
bHVlLWludHJpbnNpYy5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbWUtdmFsdWUtaW50cmluc2ljLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJkMzg0MTc3YTQxMDU0YTc5Zjk1YWE4ZTExMGE0NWFhMmE4YTQzYmUKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1lLXZhbHVlLWludHJpbnNpYy5qcwpA
QCAtMCwwICsxLDMxIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Cisg
ICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFk
IHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworY29uc3Qgc2FtZVZhbHVlID0gJHZtLmNyZWF0ZUJ1
aWx0aW4oYChmdW5jdGlvbiAoYSwgYikgeworICAgIHJldHVybiBAc2FtZVZhbHVlKGEsIGIpOwor
fSlgKTsKKworY29uc3Qgb2JqID0ge307Citjb25zdCBhcnIgPSBbXTsKK2NvbnN0IHN5bSA9IFN5
bWJvbCgpOworCitmb3IgKGxldCBpID0gMDsgaSA8IDFlNTsgKytpKSB7CisgICAgc2hvdWxkQmUo
c2FtZVZhbHVlKG51bGwsIG51bGwpLCB0cnVlKTsKKyAgICBzaG91bGRCZShzYW1lVmFsdWUobnVs
bCwgdW5kZWZpbmVkKSwgZmFsc2UpOworICAgIHNob3VsZEJlKHNhbWVWYWx1ZSh0cnVlLCB0cnVl
KSwgdHJ1ZSk7CisgICAgc2hvdWxkQmUoc2FtZVZhbHVlKHRydWUsIGZhbHNlKSwgZmFsc2UpOwor
ICAgIHNob3VsZEJlKHNhbWVWYWx1ZSgnYWJjJywgJ2FiYycpLCB0cnVlKTsKKyAgICBzaG91bGRC
ZShzYW1lVmFsdWUoTmFOLCBOYU4pLCB0cnVlKTsKKyAgICBzaG91bGRCZShzYW1lVmFsdWUoSW5m
aW5pdHksIEluZmluaXR5KSwgdHJ1ZSk7CisgICAgc2hvdWxkQmUoc2FtZVZhbHVlKDAsIDApLCB0
cnVlKTsKKyAgICBzaG91bGRCZShzYW1lVmFsdWUoLTAsIC0wKSwgdHJ1ZSk7CisgICAgc2hvdWxk
QmUoc2FtZVZhbHVlKDAsIC0wKSwgZmFsc2UpOworICAgIHNob3VsZEJlKHNhbWVWYWx1ZSgtMCwg
MCksIGZhbHNlKTsKKyAgICBzaG91bGRCZShzYW1lVmFsdWUob2JqLCBvYmopLCB0cnVlKTsKKyAg
ICBzaG91bGRCZShzYW1lVmFsdWUoe30sIHt9KSwgZmFsc2UpOworICAgIHNob3VsZEJlKHNhbWVW
YWx1ZShhcnIsIGFyciksIHRydWUpOworICAgIHNob3VsZEJlKHNhbWVWYWx1ZShbXSwgW10pLCBm
YWxzZSk7CisgICAgc2hvdWxkQmUoc2FtZVZhbHVlKHN5bSwgc3ltKSwgdHJ1ZSk7Cit9CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3Qy
NjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggZjRmMzdhYTExZGY5NGU2OTU3YmQyMTZiZDM4NWRi
NDJhMjgxYjY4Zi4uMDNjMDNlNjA0ZjE5YzNhYmFjZmFhZDcyMTJlZDg0YTY3MDllZmJkMCAxMDA2
NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMv
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtMTY2MCwxMiArMTY2MCw2IEBAIHRlc3QvYnVp
bHQtaW5zL1JlZ0V4cC9wcm90by1mcm9tLWN0b3ItcmVhbG0uanM6CiB0ZXN0L2J1aWx0LWlucy9S
ZWdFeHAvcHJvdG90eXBlL1N5bWJvbC5tYXRjaC9idWlsdGluLWluZmVyLXVuaWNvZGUuanM6CiAg
IGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq++/vcK7LCDCq251
bGzCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IFNhbWVWYWx1ZSjCq++/vcK7LCDCq251bGzCuykgdG8gYmUgdHJ1ZScKLXRlc3QvYnVpbHQtaW5z
L1JlZ0V4cC9wcm90b3R5cGUvU3ltYm9sLnNlYXJjaC9zZXQtbGFzdGluZGV4LWluaXQtc2FtZXZh
bHVlLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqst
MMK7LCDCqzDCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFNhbWVWYWx1ZSjCqy0wwrssIMKrMMK7KSB0byBiZSB0cnVlJwotdGVzdC9idWlsdC1p
bnMvUmVnRXhwL3Byb3RvdHlwZS9TeW1ib2wuc2VhcmNoL3NldC1sYXN0aW5kZXgtcmVzdG9yZS1z
YW1ldmFsdWUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1
ZSjCqy0wwrssIMKrMMK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrLTDCuywgwqswwrspIHRvIGJlIHRydWUnCiB0ZXN0L2J1
aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL1N5bWJvbC5zZWFyY2gvdS1sYXN0aW5kZXgtYWR2YW5j
ZS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMcK7
LCDCqy0xwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBTYW1lVmFsdWUowqsxwrssIMKrLTHCuykgdG8gYmUgdHJ1ZScK
</data>

          </attachment>
      

    </bug>

</bugzilla>