<?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>145386</bug_id>
          
          <creation_ts>2015-05-26 13:39:33 -0700</creation_ts>
          <short_desc>Backdrop filters don&apos;t animate</short_desc>
          <delta_ts>2015-05-27 11:16:21 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1097410</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-05-26 13:39:33 -0700</bug_when>
    <thetext>Backdrop filters don&apos;t animate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097413</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-05-26 13:41:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/21110037&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097429</commentid>
    <comment_count>2</comment_count>
      <attachid>253736</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-05-26 14:00:41 -0700</bug_when>
    <thetext>Created attachment 253736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097435</commentid>
    <comment_count>3</comment_count>
      <attachid>253736</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-05-26 14:13:10 -0700</bug_when>
    <thetext>Comment on attachment 253736
Patch

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

&gt; Source/WebCore/page/animation/CSSPropertyAnimation.cpp:204
&gt; +    if (anim-&gt;filterFunctionListsMatch() || anim-&gt;backdropFilterFunctionListsMatch())
&gt;          result = blendFilterOperations(anim, from, to, progress);

This doesn&apos;t seem right. Can&apos;t a KeyframeAnimaiton have a matching filter list, and non-matching backdrop filter list or vice versa?

&gt; Source/WebCore/page/animation/ImplicitAnimation.cpp:328
&gt; +    if (val-&gt;operations().isEmpty())
&gt; +        val = toVal;
&gt; +
&gt; +    if (val-&gt;operations().isEmpty())
&gt; +        return;
&gt; +
&gt; +    // An empty filter list matches anything.
&gt; +    if (val != toVal &amp;&amp; !toVal-&gt;operations().isEmpty() &amp;&amp; !val-&gt;operationsMatch(*toVal))
&gt; +        return;

We should share this part of the code with filters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097437</commentid>
    <comment_count>4</comment_count>
      <attachid>253736</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-26 14:17:35 -0700</bug_when>
    <thetext>Comment on attachment 253736
Patch

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

&gt; Source/WebCore/page/animation/ImplicitAnimation.cpp:318
&gt; +    const FilterOperations* val = &amp;m_fromStyle-&gt;backdropFilter();
&gt; +    const FilterOperations* toVal = &amp;m_toStyle-&gt;backdropFilter();

I think we could spring for the two extra letters &quot;ue&quot; and call these value instead of val.

I suggest that toValue be a reference instead of a pointer.

&gt; Source/WebCore/page/animation/KeyframeAnimation.cpp:461
&gt; +    const FilterOperations* firstVal = &amp;m_keyframes[firstNonEmptyFilterKeyframeIndex].style()-&gt;backdropFilter();

I suggest a reference instead of a pointer. Also suggest using the word &quot;value&quot; instead of the non-word &quot;val&quot;. Also seems that auto&amp; would work well here.

&gt; Source/WebCore/page/animation/KeyframeAnimation.cpp:464
&gt; +        const KeyframeValue&amp; currentKeyframe = m_keyframes[i];

Doesn’t seem like we need this local variable. Should just use m_keyframes[i] directly.

&gt; Source/WebCore/page/animation/KeyframeAnimation.cpp:465
&gt; +        const FilterOperations* val = &amp;currentKeyframe.style()-&gt;backdropFilter();

I suggest a reference instead of a pointer. Also suggest using the word &quot;value&quot; instead of the non-word &quot;val&quot;. Also seems that auto&amp; would work well here.

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:245
&gt; +        return &quot;backdropFilters&quot;;

Should use ASCIILiteral here.

In fact, I think the return type of this function should be ASCIILiteral instead of String.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097492</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-05-26 15:19:43 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 253736 [details]
&gt; Patch

Thanks Darin and Simon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097668</commentid>
    <comment_count>6</comment_count>
      <attachid>253795</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-05-27 11:10:10 -0700</bug_when>
    <thetext>Created attachment 253795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097671</commentid>
    <comment_count>7</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-05-27 11:16:21 -0700</bug_when>
    <thetext>Committed r184908: &lt;http://trac.webkit.org/changeset/184908&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253736</attachid>
            <date>2015-05-26 14:00:41 -0700</date>
            <delta_ts>2015-05-26 14:13:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145386-20150526140031.patch</filename>
            <type>text/plain</type>
            <size>34441</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzFmODViOWJlNWIzZGRj
Yzk5YjRjNDgxNTQyYmQyMDY3Y2UwZGYwYS4uZDUyY2Y1MTFkMTE3Yzk2NDkwZGNmZTYyMTBkYzk5
YzY0OTNhOWEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE1LTA1LTI2ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBCYWNrZHJvcCBmaWx0ZXJzIGRv
bid0IGFuaW1hdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0NTM4NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjExMTAwMzc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGFu
aW1hdGlvbiBvZiBiYWNrZHJvcCBmaWx0ZXJzLgorCisgICAgICAgIE5vdGUgdGhhdCwgYXQgdGhl
IG1vbWVudCwgd2UgY2FuIG9ubHkgYW5pbWF0ZS90cmFuc2l0aW9uCisgICAgICAgIGJhY2tkcm9w
LWZpbHRlciBpZiBpdCBpcyBhbHJlYWR5IHByZXNlbnQgb24gdGhlIGVsZW1lbnQuIFNlZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MTA3CisKKyAg
ICAgICAgVGVzdDogY3NzMy9maWx0ZXJzL2JhY2tkcm9wL2FuaW1hdGlvbi5odG1sCisKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmg6IEFkZCBtX2JhY2tkcm9wRmlsdGVy
RnVuY3Rpb25MaXN0c01hdGNoIGFuZCBiYWNrZHJvcEZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaC4K
KyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OmJhY2tkcm9wRmlsdGVyRnVuY3Rpb25M
aXN0c01hdGNoKToKKworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kRnVuYyk6IGJhY2tkcm9wLWZpbHRlciBp
cyBhbHNvIHN1cHBvcnRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5V3JhcHBlckFjY2Vs
ZXJhdGVkQmFja2Ryb3BGaWx0ZXI6OlByb3BlcnR5V3JhcHBlckFjY2VsZXJhdGVkQmFja2Ryb3BG
aWx0ZXIpOiBBZGRlZC4gV29ya3MKKyAgICAgICAgc2ltaWxhcmx5IHRvIHRoZSBQcm9wZXJ0eVdy
YXBwZXJBY2NlbGVyYXRlZEZpbHRlci4KKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5V3JhcHBl
ckFjY2VsZXJhdGVkQmFja2Ryb3BGaWx0ZXI6OmFuaW1hdGlvbklzQWNjZWxlcmF0ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJvcGVydHlXcmFwcGVyQWNjZWxlcmF0ZWRCYWNrZHJvcEZpbHRlcjo6
YmxlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFw
OjpDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXApOiBDb25zdHJ1Y3QgdGhlCisgICAgICAg
IFByb3BlcnR5V3JhcHBlckFjY2VsZXJhdGVkQmFja2Ryb3BGaWx0ZXIuCisKKyAgICAgICAgKiBw
YWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bXBsaWNpdEFuaW1hdGlvbjo6cmVzZXQpOiBDYWxsIGNoZWNrRm9yTWF0Y2hpbmdCYWNrZHJvcEZp
bHRlckZ1bmN0aW9uTGlzdHMuCisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6
dmFsaWRhdGVUcmFuc2Zvcm1GdW5jdGlvbkxpc3QpOiBGaXggdHlwby4KKyAgICAgICAgKFdlYkNv
cmU6OkltcGxpY2l0QW5pbWF0aW9uOjpjaGVja0Zvck1hdGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0
cyk6IFJlbW92ZSB3aGl0ZXNwYWNlLgorICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRp
b246OmNoZWNrRm9yTWF0Y2hpbmdCYWNrZHJvcEZpbHRlckZ1bmN0aW9uTGlzdHMpOiBOZXcgbWV0
aG9kIHRoYXQKKyAgICAgICAgY2hlY2tzIGlmIHRoZSBpbmRpdmlkdWFsIGZpbHRlcnMgaW4gYSBm
aWx0ZXIgbGlzdCBtYXRjaC4KKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1h
dGlvbi5oOiBBZGQgY2hlY2tGb3JNYXRjaGluZ0JhY2tkcm9wRmlsdGVyRnVuY3Rpb25MaXN0cy4K
KworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpLZXlmcmFtZUFuaW1hdGlvbik6IENhbGwg
Y2hlY2tGb3JNYXRjaGluZ0JhY2tkcm9wRmlsdGVyRnVuY3Rpb25MaXN0cy4KKyAgICAgICAgKFdl
YkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpjaGVja0Zvck1hdGNoaW5nQmFja2Ryb3BGaWx0ZXJG
dW5jdGlvbkxpc3RzKTogQ29waWVkIGZyb20KKyAgICAgICAgY2hlY2tGb3JNYXRjaGluZ0ZpbHRl
ckZ1bmN0aW9uTGlzdHMsIGJ1dCBjYWxscyBiYWNrZHJvcEZpbHRlcigpIGluc3RlYWQgb2YgZmls
dGVyKCkuCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6Y2hlY2tGb3JNYXRj
aGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMpOiBUaGlzIHdhcyBhY2NpZGVudGFsbHkgY2hlY2tpbmcK
KyAgICAgICAgZm9yIGJhY2tkcm9wIGZpbHRlcnMgYXMgd2VsbCwgYnV0IGl0IHdvdWxkbid0IGhh
dmUgd29ya2VkLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmg6
IEFkZCBjaGVja0Zvck1hdGNoaW5nQmFja2Ryb3BGaWx0ZXJGdW5jdGlvbkxpc3RzLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyOjp2YWxpZGF0ZUZpbHRlck9wZXJhdGlvbnMpOiBNb2RpZnkgdGhl
IEFTU0VSVCB0byBhbGxvdyBBbmltYXRlZFByb3BlcnR5V2Via2l0QmFja2Ryb3BGaWx0ZXIuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOiBBZGQgQW5p
bWF0ZWRQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyIHRvIHRoZSBlbnVtLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnByb3BlcnR5SWRUb1N0cmluZyk6IFN1cHBvcnQgbmV3IGVudW0uCisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmFkZEFuaW1hdGlvbik6IFN1cHBvcnQgQW5pbWF0ZWRQ
cm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNBOjpjcmVhdGVGaWx0ZXJBbmltYXRpb25zRnJvbUtleWZyYW1lcyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjphbmltYXRlZExheWVyKTogVXNlIGEgc3dp
dGNoIHN0YXRlbWVudCBub3cgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbgorICAgICAgICB0d28gb3B0
aW9ucywgYW5kIGhhbmRsZSBBbmltYXRlZFByb3BlcnR5V2Via2l0QmFja2Ryb3BGaWx0ZXIuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFuaW1hdGlvbnMpOiBEZWxl
dGVkIGEgYmxhbmsgbGluZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1h
dGlvbik6IFN1cHBvcnQgYW5pbWF0aW9uIG9mIGJhY2tkcm9wLWZpbHRlci4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKTogRGl0dG8uIENvcGll
ZCB0aGUgY29kZSBmcm9tIHRoZSBmaWx0ZXIgdHJhbnNpdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQmFja2luZzo6Z3JhcGhpY3NMYXllclRvQ1NTUHJvcGVydHkpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjc3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0
eSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdG
b3JBbmltYXRpb24pOgorCiAyMDE1LTA1LTI2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5j
b20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIxMTA0NTUxPiBVcGRhdGUgYnVpbGQgc2V0
dGluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaApp
bmRleCA1YzVmZmY1ZDI5NzI4NTY2ZDI0ZmMzM2M5N2Y1ZDY2NDM5MWQyYzEyLi41OTg2YWM5NWM2
ZmQyMWEyNTQ2YTdmMjcxZjI1YzRhNTlmZWVmMjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCkBAIC0xOTIsNiArMTkyLDkgQEAgcHVibGljOgog
ICAgIC8vIEZJWE1FOiByZW5hbWUgdGhpcyB1c2luZyB0aGUgImxpc3RzIG1hdGNoIiB0ZXJtaW5v
bG9neS4KICAgICBib29sIGlzVHJhbnNmb3JtRnVuY3Rpb25MaXN0VmFsaWQoKSBjb25zdCB7IHJl
dHVybiBtX3RyYW5zZm9ybUZ1bmN0aW9uTGlzdFZhbGlkOyB9CiAgICAgYm9vbCBmaWx0ZXJGdW5j
dGlvbkxpc3RzTWF0Y2goKSBjb25zdCB7IHJldHVybiBtX2ZpbHRlckZ1bmN0aW9uTGlzdHNNYXRj
aDsgfQorI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCisgICAgYm9vbCBiYWNrZHJvcEZpbHRl
ckZ1bmN0aW9uTGlzdHNNYXRjaCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2Ryb3BGaWx0ZXJGdW5j
dGlvbkxpc3RzTWF0Y2g7IH0KKyNlbmRpZgogCiAgICAgLy8gRnJlZXplIHRoZSBhbmltYXRpb247
IHVzZWQgYnkgRHVtcFJlbmRlclRyZWUuCiAgICAgdm9pZCBmcmVlemVBdFRpbWUoZG91YmxlIHQp
OwpAQCAtMjU5LDYgKzI2Miw5IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faXNBY2NlbGVyYXRl
ZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3RyYW5zZm9ybUZ1bmN0aW9uTGlzdFZhbGlkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fZmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoIHsgZmFsc2UgfTsKKyNp
ZiBFTkFCTEUoRklMVEVSU19MRVZFTF8yKQorICAgIGJvb2wgbV9iYWNrZHJvcEZpbHRlckZ1bmN0
aW9uTGlzdHNNYXRjaCB7IGZhbHNlIH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3Bl
cnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3Bl
cnR5QW5pbWF0aW9uLmNwcAppbmRleCBmNjMwNTc5ZmNjODlkNDkyZTg0NzAzODBlNTQ0ZTBhN2Vk
NDNmYTk4Li5iMmZlYjRiYzZhZTQyYjZhNThlZjdkZmMyNjZjZTM4MWJiZjM1N2FiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRp
b24uY3BwCkBAIC0yMDAsNyArMjAwLDcgQEAgc3RhdGljIGlubGluZSBGaWx0ZXJPcGVyYXRpb25z
IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBGaWx0ZXIKICAgICBG
aWx0ZXJPcGVyYXRpb25zIHJlc3VsdDsKIAogICAgIC8vIElmIHdlIGhhdmUgYSBmaWx0ZXIgZnVu
Y3Rpb24gbGlzdCwgdXNlIHRoYXQgdG8gZG8gYSBwZXItZnVuY3Rpb24gYW5pbWF0aW9uLgotICAg
IGlmIChhbmltLT5maWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2goKSkKKyAgICBpZiAoYW5pbS0+Zmls
dGVyRnVuY3Rpb25MaXN0c01hdGNoKCkgfHwgYW5pbS0+YmFja2Ryb3BGaWx0ZXJGdW5jdGlvbkxp
c3RzTWF0Y2goKSkKICAgICAgICAgcmVzdWx0ID0gYmxlbmRGaWx0ZXJPcGVyYXRpb25zKGFuaW0s
IGZyb20sIHRvLCBwcm9ncmVzcyk7CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIElmIHRoZSBmaWx0
ZXIgZnVuY3Rpb24gbGlzdHMgZG9uJ3QgbWF0Y2gsIHdlIGNvdWxkIHRyeSB0byBjcm9zcy1mYWRl
LCBidXQgZG9uJ3QgeWV0IGhhdmUgYSB3YXkgdG8gcmVwcmVzZW50IHRoYXQgaW4gQ1NTLgpAQCAt
NjE2LDYgKzYxNiwyNCBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAorI2lmIEVOQUJMRShGSUxURVJT
X0xFVkVMXzIpCitjbGFzcyBQcm9wZXJ0eVdyYXBwZXJBY2NlbGVyYXRlZEJhY2tkcm9wRmlsdGVy
IDogcHVibGljIFByb3BlcnR5V3JhcHBlcjxjb25zdCBGaWx0ZXJPcGVyYXRpb25zJj4geworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFByb3BlcnR5V3JhcHBlckFj
Y2VsZXJhdGVkQmFja2Ryb3BGaWx0ZXIoKQorICAgICAgICA6IFByb3BlcnR5V3JhcHBlcjxjb25z
dCBGaWx0ZXJPcGVyYXRpb25zJj4oQ1NTUHJvcGVydHlXZWJraXRCYWNrZHJvcEZpbHRlciwgJlJl
bmRlclN0eWxlOjpiYWNrZHJvcEZpbHRlciwgJlJlbmRlclN0eWxlOjpzZXRCYWNrZHJvcEZpbHRl
cikKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGFuaW1hdGlvbklzQWNjZWxlcmF0
ZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYmxlbmQoY29u
c3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5
bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CisgICAg
eworICAgICAgICBkc3QtPnNldEJhY2tkcm9wRmlsdGVyKGJsZW5kRnVuYyhhbmltLCBhLT5iYWNr
ZHJvcEZpbHRlcigpLCBiLT5iYWNrZHJvcEZpbHRlcigpLCBwcm9ncmVzcykpOworICAgIH0KK307
CisjZW5kaWYKKwogc3RhdGljIGlubGluZSBzaXplX3Qgc2hhZG93TGlzdExlbmd0aChjb25zdCBT
aGFkb3dEYXRhKiBzaGFkb3cpCiB7CiAgICAgc2l6ZV90IGNvdW50OwpAQCAtMTI4MCw2ICsxMjk4
LDkgQEAgQ1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwOjpDU1NQcm9wZXJ0eUFuaW1hdGlv
bldyYXBwZXJNYXAoKQogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyQWNjZWxlcmF0ZWRPcGFj
aXR5KCksCiAgICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXJBY2NlbGVyYXRlZFRyYW5zZm9ybSgp
LAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyQWNjZWxlcmF0ZWRGaWx0ZXIoKSwKKyNpZiBF
TkFCTEUoRklMVEVSU19MRVZFTF8yKQorICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyQWNjZWxl
cmF0ZWRCYWNrZHJvcEZpbHRlcigpLAorI2VuZGlmCiAgICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBw
ZXJDbGlwUGF0aChDU1NQcm9wZXJ0eVdlYmtpdENsaXBQYXRoLCAmUmVuZGVyU3R5bGU6OmNsaXBQ
YXRoLCAmUmVuZGVyU3R5bGU6OnNldENsaXBQYXRoKSwKIAogI2lmIEVOQUJMRShDU1NfU0hBUEVT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmlt
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRp
b24uY3BwCmluZGV4IDBhNjBiYjUxMDA0Mzg4NzM1MDhiZDhkMWNiNzA1N2Q2YjZhZTBmZDEuLmIx
MjEyMTg3MzBjODkxZTRiZWQwMWI2YWUzMDJjMDA2YWM3YTAzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKQEAgLTIxOSw2
ICsyMTksOSBAQCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpyZXNldChSZW5kZXJTdHlsZSogdG8p
CiAgICAgLy8gc2V0IHRoZSB0cmFuc2Zvcm0gYW5pbWF0aW9uIGxpc3QKICAgICB2YWxpZGF0ZVRy
YW5zZm9ybUZ1bmN0aW9uTGlzdCgpOwogICAgIGNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlv
bkxpc3RzKCk7CisjaWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKKyAgICBjaGVja0Zvck1hdGNo
aW5nQmFja2Ryb3BGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7CisjZW5kaWYKIH0KIAogdm9pZCBJbXBs
aWNpdEFuaW1hdGlvbjo6c2V0T3ZlcnJpZGRlbihib29sIGIpCkBAIC0yNzEsNyArMjc0LDcgQEAg
dm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6dmFsaWRhdGVUcmFuc2Zvcm1GdW5jdGlvbkxpc3QoKQog
ICAgIGlmICh2YWwtPm9wZXJhdGlvbnMoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKICAg
ICAgICAgCi0gICAgLy8gQW4gZW10cHkgdHJhbnNmb3JtIGxpc3QgbWF0Y2hlcyBhbnl0aGluZy4K
KyAgICAvLyBBbiBlbXB0eSB0cmFuc2Zvcm0gbGlzdCBtYXRjaGVzIGFueXRoaW5nLgogICAgIGlm
ICh2YWwgIT0gdG9WYWwgJiYgIXRvVmFsLT5vcGVyYXRpb25zKCkuaXNFbXB0eSgpICYmICF2YWwt
Pm9wZXJhdGlvbnNNYXRjaCgqdG9WYWwpKQogICAgICAgICByZXR1cm47CiAKQEAgLTI4MiwxMCAr
Mjg1LDEwIEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246OnZhbGlkYXRlVHJhbnNmb3JtRnVuY3Rp
b25MaXN0KCkKIHZvaWQgSW1wbGljaXRBbmltYXRpb246OmNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJG
dW5jdGlvbkxpc3RzKCkKIHsKICAgICBtX2ZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaCA9IGZhbHNl
OwotICAgIAorCiAgICAgaWYgKCFtX2Zyb21TdHlsZSB8fCAhbV90b1N0eWxlKQogICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIAorCiAgICAgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyogdmFsID0gJm1f
ZnJvbVN0eWxlLT5maWx0ZXIoKTsKICAgICBjb25zdCBGaWx0ZXJPcGVyYXRpb25zKiB0b1ZhbCA9
ICZtX3RvU3R5bGUtPmZpbHRlcigpOwogCkBAIC0yOTQsOCArMjk3LDggQEAgdm9pZCBJbXBsaWNp
dEFuaW1hdGlvbjo6Y2hlY2tGb3JNYXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMoKQogCiAgICAg
aWYgKHZhbC0+b3BlcmF0aW9ucygpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAKLSAgICAvLyBBbiBlbXRweSBmaWx0ZXIgbGlzdCBtYXRjaGVzIGFueXRoaW5nLgorCisgICAg
Ly8gQW4gZW1wdHkgZmlsdGVyIGxpc3QgbWF0Y2hlcyBhbnl0aGluZy4KICAgICBpZiAodmFsICE9
IHRvVmFsICYmICF0b1ZhbC0+b3BlcmF0aW9ucygpLmlzRW1wdHkoKSAmJiAhdmFsLT5vcGVyYXRp
b25zTWF0Y2goKnRvVmFsKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0zMDMsNiArMzA2LDMyIEBA
IHZvaWQgSW1wbGljaXRBbmltYXRpb246OmNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxp
c3RzKCkKICAgICBtX2ZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaCA9IHRydWU7CiB9CiAKKyNpZiBF
TkFCTEUoRklMVEVSU19MRVZFTF8yKQordm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6Y2hlY2tGb3JN
YXRjaGluZ0JhY2tkcm9wRmlsdGVyRnVuY3Rpb25MaXN0cygpCit7CisgICAgbV9iYWNrZHJvcEZp
bHRlckZ1bmN0aW9uTGlzdHNNYXRjaCA9IGZhbHNlOworCisgICAgaWYgKCFtX2Zyb21TdHlsZSB8
fCAhbV90b1N0eWxlKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBGaWx0ZXJPcGVyYXRp
b25zKiB2YWwgPSAmbV9mcm9tU3R5bGUtPmJhY2tkcm9wRmlsdGVyKCk7CisgICAgY29uc3QgRmls
dGVyT3BlcmF0aW9ucyogdG9WYWwgPSAmbV90b1N0eWxlLT5iYWNrZHJvcEZpbHRlcigpOworCisg
ICAgaWYgKHZhbC0+b3BlcmF0aW9ucygpLmlzRW1wdHkoKSkKKyAgICAgICAgdmFsID0gdG9WYWw7
CisKKyAgICBpZiAodmFsLT5vcGVyYXRpb25zKCkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICAvLyBBbiBlbXB0eSBmaWx0ZXIgbGlzdCBtYXRjaGVzIGFueXRoaW5nLgorICAgIGlm
ICh2YWwgIT0gdG9WYWwgJiYgIXRvVmFsLT5vcGVyYXRpb25zKCkuaXNFbXB0eSgpICYmICF2YWwt
Pm9wZXJhdGlvbnNNYXRjaCgqdG9WYWwpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGaWx0
ZXIgbGlzdHMgbWF0Y2guCisgICAgbV9iYWNrZHJvcEZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaCA9
IHRydWU7Cit9CisjZW5kaWYKKwogZG91YmxlIEltcGxpY2l0QW5pbWF0aW9uOjp0aW1lVG9OZXh0
U2VydmljZSgpCiB7CiAgICAgZG91YmxlIHQgPSBBbmltYXRpb25CYXNlOjp0aW1lVG9OZXh0U2Vy
dmljZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGlj
aXRBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5p
bWF0aW9uLmgKaW5kZXggYzM0MjU5NzU3OGY0ZmY1YTU4NjYyYTM4YzIzODI3YmExZjBhNzkyMy4u
YTlhMzBmMWUyNGRhZmE5NmEyNDBiMDkwZjgxN2VhOTY1MDQ4NTM2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCkBAIC04Miw2ICs4
Miw5IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgdmFsaWRhdGVUcmFuc2Zvcm1GdW5jdGlvbkxp
c3QoKTsKICAgICB2b2lkIGNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7Cisj
aWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKKyAgICB2b2lkIGNoZWNrRm9yTWF0Y2hpbmdCYWNr
ZHJvcEZpbHRlckZ1bmN0aW9uTGlzdHMoKTsKKyNlbmRpZgogCiBwcml2YXRlOgogICAgIEltcGxp
Y2l0QW5pbWF0aW9uKEFuaW1hdGlvbiYsIENTU1Byb3BlcnR5SUQsIFJlbmRlckVsZW1lbnQqLCBD
b21wb3NpdGVBbmltYXRpb24qLCBSZW5kZXJTdHlsZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCmluZGV4IGU5ZmM5MDNlNmFl
NzgzOTE4OGE3MmU1NGI4N2FjYWExNjU0MDM2ZGYuLjQ4OGVlZDhjYjFjZDg2NWQ2ODY4NWRmZThl
OWIxOTMyYjk4OTYxMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0tleWZyYW1lQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTU0LDYgKzU0LDkgQEAgS2V5ZnJhbWVBbmltYXRp
b246OktleWZyYW1lQW5pbWF0aW9uKEFuaW1hdGlvbiYgYW5pbWF0aW9uLCBSZW5kZXJFbGVtZW50
KiByZW5kZXIKICAgICAvLyBVcGRhdGUgdGhlIG1fdHJhbnNmb3JtRnVuY3Rpb25MaXN0VmFsaWQg
ZmxhZyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBmdW5jdGlvbiBsaXN0cyBpbiB0aGUga2V5ZnJhbWVz
IG1hdGNoLgogICAgIHZhbGlkYXRlVHJhbnNmb3JtRnVuY3Rpb25MaXN0KCk7CiAgICAgY2hlY2tG
b3JNYXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMoKTsKKyNpZiBFTkFCTEUoRklMVEVSU19MRVZF
TF8yKQorICAgIGNoZWNrRm9yTWF0Y2hpbmdCYWNrZHJvcEZpbHRlckZ1bmN0aW9uTGlzdHMoKTsK
KyNlbmRpZgogfQogCiBLZXlmcmFtZUFuaW1hdGlvbjo6fktleWZyYW1lQW5pbWF0aW9uKCkKQEAg
LTM5NywxMSArNDAwLDcgQEAgdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6Y2hlY2tGb3JNYXRjaGlu
Z0ZpbHRlckZ1bmN0aW9uTGlzdHMoKQogewogICAgIG1fZmlsdGVyRnVuY3Rpb25MaXN0c01hdGNo
ID0gZmFsc2U7CiAKLSNpZiBFTkFCTEUoRklMVEVSU19MRVZFTF8yKQotICAgIGlmIChtX2tleWZy
YW1lcy5zaXplKCkgPCAyIHx8ICghbV9rZXlmcmFtZXMuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9w
ZXJ0eVdlYmtpdEZpbHRlcikgJiYgIW1fa2V5ZnJhbWVzLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJv
cGVydHlXZWJraXRCYWNrZHJvcEZpbHRlcikpKQotI2Vsc2UKICAgICBpZiAobV9rZXlmcmFtZXMu
c2l6ZSgpIDwgMiB8fCAhbV9rZXlmcmFtZXMuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdl
YmtpdEZpbHRlcikpCi0jZW5kaWYKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRW1wdHkgZmls
dGVycyBtYXRjaCBhbnl0aGluZywgc28gZmluZCB0aGUgZmlyc3Qgbm9uLWVtcHR5IGVudHJ5IGFz
IHRoZSByZWZlcmVuY2UKQEAgLTQzNiw2ICs0MzUsNDcgQEAgdm9pZCBLZXlmcmFtZUFuaW1hdGlv
bjo6Y2hlY2tGb3JNYXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMoKQogICAgIG1fZmlsdGVyRnVu
Y3Rpb25MaXN0c01hdGNoID0gdHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIp
Cit2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjpjaGVja0Zvck1hdGNoaW5nQmFja2Ryb3BGaWx0ZXJG
dW5jdGlvbkxpc3RzKCkKK3sKKyAgICBtX2JhY2tkcm9wRmlsdGVyRnVuY3Rpb25MaXN0c01hdGNo
ID0gZmFsc2U7CisKKyAgICBpZiAobV9rZXlmcmFtZXMuc2l6ZSgpIDwgMiB8fCAhbV9rZXlmcmFt
ZXMuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgLy8gRW1wdHkgZmlsdGVycyBtYXRjaCBhbnl0aGluZywgc28g
ZmluZCB0aGUgZmlyc3Qgbm9uLWVtcHR5IGVudHJ5IGFzIHRoZSByZWZlcmVuY2UKKyAgICBzaXpl
X3QgbnVtS2V5ZnJhbWVzID0gbV9rZXlmcmFtZXMuc2l6ZSgpOworICAgIHNpemVfdCBmaXJzdE5v
bkVtcHR5RmlsdGVyS2V5ZnJhbWVJbmRleCA9IG51bUtleWZyYW1lczsKKworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbnVtS2V5ZnJhbWVzOyArK2kpIHsKKyAgICAgICAgY29uc3QgS2V5ZnJh
bWVWYWx1ZSYgY3VycmVudEtleWZyYW1lID0gbV9rZXlmcmFtZXNbaV07CisgICAgICAgIGlmIChj
dXJyZW50S2V5ZnJhbWUuc3R5bGUoKS0+YmFja2Ryb3BGaWx0ZXIoKS5vcGVyYXRpb25zKCkuc2l6
ZSgpKSB7CisgICAgICAgICAgICBmaXJzdE5vbkVtcHR5RmlsdGVyS2V5ZnJhbWVJbmRleCA9IGk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChmaXJzdE5v
bkVtcHR5RmlsdGVyS2V5ZnJhbWVJbmRleCA9PSBudW1LZXlmcmFtZXMpCisgICAgICAgIHJldHVy
bjsKKworICAgIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMqIGZpcnN0VmFsID0gJm1fa2V5ZnJhbWVz
W2ZpcnN0Tm9uRW1wdHlGaWx0ZXJLZXlmcmFtZUluZGV4XS5zdHlsZSgpLT5iYWNrZHJvcEZpbHRl
cigpOworCisgICAgZm9yIChzaXplX3QgaSA9IGZpcnN0Tm9uRW1wdHlGaWx0ZXJLZXlmcmFtZUlu
ZGV4ICsgMTsgaSA8IG51bUtleWZyYW1lczsgKytpKSB7CisgICAgICAgIGNvbnN0IEtleWZyYW1l
VmFsdWUmIGN1cnJlbnRLZXlmcmFtZSA9IG1fa2V5ZnJhbWVzW2ldOworICAgICAgICBjb25zdCBG
aWx0ZXJPcGVyYXRpb25zKiB2YWwgPSAmY3VycmVudEtleWZyYW1lLnN0eWxlKCktPmJhY2tkcm9w
RmlsdGVyKCk7CisKKyAgICAgICAgLy8gQW4gZW10cHkgZmlsdGVyIGxpc3QgbWF0Y2hlcyBhbnl0
aGluZy4KKyAgICAgICAgaWYgKHZhbC0+b3BlcmF0aW9ucygpLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAgICAgaWYgKCFmaXJzdFZhbC0+b3BlcmF0aW9u
c01hdGNoKCp2YWwpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBtX2Jh
Y2tkcm9wRmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoID0gdHJ1ZTsKK30KKyNlbmRpZgorCiBkb3Vi
bGUgS2V5ZnJhbWVBbmltYXRpb246OnRpbWVUb05leHRTZXJ2aWNlKCkKIHsKICAgICBkb3VibGUg
dCA9IEFuaW1hdGlvbkJhc2U6OnRpbWVUb05leHRTZXJ2aWNlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaAppbmRleCAzMjg0MDRiNWJh
NjhlZDVlODc3MjI5NmE5ODVhNDZjNmIwYTk4MjMyLi5mNzAwZWFmMzg0YjJkZDIyNzdmOTM3NTIy
YzI1MGZjY2Y1ZDYwOTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9LZXlmcmFtZUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0tleWZyYW1lQW5pbWF0aW9uLmgKQEAgLTg1LDYgKzg1LDkgQEAgcHJvdGVjdGVkOgogCiAgICAg
dm9pZCB2YWxpZGF0ZVRyYW5zZm9ybUZ1bmN0aW9uTGlzdCgpOwogICAgIHZvaWQgY2hlY2tGb3JN
YXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMoKTsKKyNpZiBFTkFCTEUoRklMVEVSU19MRVZFTF8y
KQorICAgIHZvaWQgY2hlY2tGb3JNYXRjaGluZ0JhY2tkcm9wRmlsdGVyRnVuY3Rpb25MaXN0cygp
OworI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgS2V5ZnJhbWVBbmltYXRpb24oQW5pbWF0aW9uJiwg
UmVuZGVyRWxlbWVudCosIGludCBpbmRleCwgQ29tcG9zaXRlQW5pbWF0aW9uKiwgUmVuZGVyU3R5
bGUqIHVuYW5pbWF0ZWRTdHlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGI4M2ZmMmJjZmRlYmU3OGNmM2YwZDQzYTFi
NmIyZTQ4OWVjMTRmZTAuLjFmN2Q3OTk4YzRlN2MwNTA3OTZiZTAwZjI5MGFiYWQ4ZmFlM2YxMTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCkBAIC01MDksNyArNTA5LDExIEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgRmlsdGVyT3Bl
cmF0aW9ucyYgZmlsdGVyT3BlcmF0aW9uc0F0KGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0CiAKIGlu
dCBHcmFwaGljc0xheWVyOjp2YWxpZGF0ZUZpbHRlck9wZXJhdGlvbnMoY29uc3QgS2V5ZnJhbWVW
YWx1ZUxpc3QmIHZhbHVlTGlzdCkKIHsKKyNpZiBFTkFCTEUoRklMVEVSU19MRVZFTF8yKQorICAg
IEFTU0VSVCh2YWx1ZUxpc3QucHJvcGVydHkoKSA9PSBBbmltYXRlZFByb3BlcnR5V2Via2l0Rmls
dGVyIHx8IHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09IEFuaW1hdGVkUHJvcGVydHlXZWJraXRCYWNr
ZHJvcEZpbHRlcik7CisjZWxzZQogICAgIEFTU0VSVCh2YWx1ZUxpc3QucHJvcGVydHkoKSA9PSBB
bmltYXRlZFByb3BlcnR5V2Via2l0RmlsdGVyKTsKKyNlbmRpZgogCiAgICAgaWYgKHZhbHVlTGlz
dC5zaXplKCkgPCAyKQogICAgICAgICByZXR1cm4gLTE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKaW5kZXggNzRmNzFj
ZTg3MDI4MWFmMzJhMTVlNjY0YjFjMjY5ZThkM2MwYjBjNy4uNDIyYWIxMTE4MGI2NzlkMWFjMDYw
MDllODI3MWRhMjg2NGUzYWViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaApAQCAtNTYsNiArNTYsOSBAQCBlbnVt
IEFuaW1hdGVkUHJvcGVydHlJRCB7CiAgICAgQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHksCiAgICAg
QW5pbWF0ZWRQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwKICAgICBBbmltYXRlZFByb3BlcnR5V2Vi
a2l0RmlsdGVyCisjaWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKKyAgICAsIEFuaW1hdGVkUHJv
cGVydHlXZWJraXRCYWNrZHJvcEZpbHRlcgorI2VuZGlmCiB9OwogCiBlbnVtIExheWVyVHJlZUFz
VGV4dEJlaGF2aW9yRmxhZ3MgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggYzY5NTE5NzMyOTI0NTZlM2Zi
NzAwYjdiODY5M2Y0NjczYjViNzYwOC4uZjc3ZGNlMTg5ZjM5NDM1YjE0Nzk3NzE0MzBmMWRmZmY0
ZWJlZDBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0yNDAsNiArMjQwLDEwIEBAIHN0YXRpYyBTdHJp
bmcgcHJvcGVydHlJZFRvU3RyaW5nKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKICAgICAg
ICAgcmV0dXJuICJiYWNrZ3JvdW5kQ29sb3IiOwogICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdl
YmtpdEZpbHRlcjoKICAgICAgICAgcmV0dXJuICJmaWx0ZXJzIjsKKyNpZiBFTkFCTEUoRklMVEVS
U19MRVZFTF8yKQorICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVy
OgorICAgICAgICByZXR1cm4gImJhY2tkcm9wRmlsdGVycyI7CisjZW5kaWYKICAgICBjYXNlIEFu
aW1hdGVkUHJvcGVydHlJbnZhbGlkOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICB9CkBAIC04ODUsNiArODg5LDEyIEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjphZGRBbmltYXRp
b24oY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgRmxvCiAgICAgICAg
IGlmIChzdXBwb3J0c0FjY2VsZXJhdGVkRmlsdGVyQW5pbWF0aW9ucygpKQogICAgICAgICAgICAg
Y3JlYXRlZEFuaW1hdGlvbnMgPSBjcmVhdGVGaWx0ZXJBbmltYXRpb25zRnJvbUtleWZyYW1lcyh2
YWx1ZUxpc3QsIGFuaW0sIGFuaW1hdGlvbk5hbWUsIHRpbWVPZmZzZXQpOwogICAgIH0KKyNpZiBF
TkFCTEUoRklMVEVSU19MRVZFTF8yKQorICAgIGVsc2UgaWYgKHZhbHVlTGlzdC5wcm9wZXJ0eSgp
ID09IEFuaW1hdGVkUHJvcGVydHlXZWJraXRCYWNrZHJvcEZpbHRlcikgeworICAgICAgICBpZiAo
c3VwcG9ydHNBY2NlbGVyYXRlZEZpbHRlckFuaW1hdGlvbnMoKSkKKyAgICAgICAgICAgIGNyZWF0
ZWRBbmltYXRpb25zID0gY3JlYXRlRmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXModmFsdWVM
aXN0LCBhbmltLCBhbmltYXRpb25OYW1lLCB0aW1lT2Zmc2V0KTsKKyAgICB9CisjZW5kaWYKICAg
ICBlbHNlCiAgICAgICAgIGNyZWF0ZWRBbmltYXRpb25zID0gY3JlYXRlQW5pbWF0aW9uRnJvbUtl
eWZyYW1lcyh2YWx1ZUxpc3QsIGFuaW0sIGFuaW1hdGlvbk5hbWUsIHRpbWVPZmZzZXQpOwogCkBA
IC0yNDYyLDcgKzI0NzIsNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9u
cygpCiAgICAgICAgICAgICAgICAgVmVjdG9yPExheWVyUHJvcGVydHlBbmltYXRpb24+IGFuaW1h
dGlvbnM7CiAgICAgICAgICAgICAgICAgYW5pbWF0aW9ucy5hcHBlbmQocGVuZGluZ0FuaW1hdGlv
bik7CiAgICAgICAgICAgICAgICAgbV9ydW5uaW5nQW5pbWF0aW9ucy5hZGQocGVuZGluZ0FuaW1h
dGlvbi5tX25hbWUsIGFuaW1hdGlvbnMpOwotCiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIFZlY3RvcjxMYXllclByb3BlcnR5QW5pbWF0aW9uPiYgYW5pbWF0aW9ucyA9IGl0
LT52YWx1ZTsKICAgICAgICAgICAgICAgICBhbmltYXRpb25zLmFwcGVuZChwZW5kaW5nQW5pbWF0
aW9uKTsKQEAgLTI3MzgsNyArMjc0NywxMSBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6YXBwZW5k
VG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbAogCiBi
b29sIEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlRmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMo
Y29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmlt
YXRpb24sIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWVPZmZzZXQpCiB7
CisjaWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKKyAgICBBU1NFUlQodmFsdWVMaXN0LnByb3Bl
cnR5KCkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZpbHRlciB8fCB2YWx1ZUxpc3QucHJvcGVy
dHkoKSA9PSBBbmltYXRlZFByb3BlcnR5V2Via2l0QmFja2Ryb3BGaWx0ZXIpOworI2Vsc2UKICAg
ICBBU1NFUlQodmFsdWVMaXN0LnByb3BlcnR5KCkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZp
bHRlcik7CisjZW5kaWYKIAogICAgIGludCBsaXN0SW5kZXggPSB2YWxpZGF0ZUZpbHRlck9wZXJh
dGlvbnModmFsdWVMaXN0KTsKICAgICBpZiAobGlzdEluZGV4IDwgMCkKQEAgLTMxMzAsNyArMzE0
MywxNyBAQCBQbGF0Zm9ybUNBTGF5ZXIqIEdyYXBoaWNzTGF5ZXJDQTo6bGF5ZXJGb3JTdXBlcmxh
eWVyKCkgY29uc3QKIAogUGxhdGZvcm1DQUxheWVyKiBHcmFwaGljc0xheWVyQ0E6OmFuaW1hdGVk
TGF5ZXIoQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5KSBjb25zdAogewotICAgIHJldHVybiAo
cHJvcGVydHkgPT0gQW5pbWF0ZWRQcm9wZXJ0eUJhY2tncm91bmRDb2xvcikgPyBtX2NvbnRlbnRz
TGF5ZXIuZ2V0KCkgOiBwcmltYXJ5TGF5ZXIoKTsKKyAgICBzd2l0Y2ggKHByb3BlcnR5KSB7Cisg
ICAgY2FzZSBBbmltYXRlZFByb3BlcnR5QmFja2dyb3VuZENvbG9yOgorICAgICAgICByZXR1cm4g
bV9jb250ZW50c0xheWVyLmdldCgpOworI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCisgICAg
Y2FzZSBBbmltYXRlZFByb3BlcnR5V2Via2l0QmFja2Ryb3BGaWx0ZXI6CisgICAgICAgIC8vIEZJ
WE1FOiBTaG91bGQgYmUganVzdCBtX2JhY2tkcm9wTGF5ZXIuZ2V0KCkuIEFsc28sIGFkZCBhbiBB
U1NFUlQobV9iYWNrZHJvcExheWVyKSBoZXJlIHdoZW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NTMyMiBpcyBmaXhlZC4KKyAgICAgICAgcmV0dXJuIG1fYmFja2Ry
b3BMYXllciA/IG1fYmFja2Ryb3BMYXllci5nZXQoKSA6IHByaW1hcnlMYXllcigpOworI2VuZGlm
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHByaW1hcnlMYXllcigpOworICAgIH0KIH0K
IAogR3JhcGhpY3NMYXllckNBOjpMYXllck1hcCogR3JhcGhpY3NMYXllckNBOjphbmltYXRlZExh
eWVyQ2xvbmVzKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggNWI4M2Y0ZGQw
MTNhOGE4MGIwNTFkZjc4NTE0ZDk1MzU1NGZhYzMwMy4uY2QxMTIxOTdkMzIzNzEwNGFjMGU3YmJm
YWMzYmYxNzc1ZDI5ZTViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAKQEAgLTI0NTUsMTIgKzI0NTUsMjAgQEAgYm9vbCBSZW5kZXJMYXll
ckJhY2tpbmc6OnN0YXJ0QW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25zdCBBbmltYXRp
b24qIGFuaW0KICAgICBib29sIGhhc1RyYW5zZm9ybSA9IHJlbmRlcmVyKCkuaXNCb3goKSAmJiBr
ZXlmcmFtZXMuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVRyYW5zZm9ybSk7CiAgICAgYm9v
bCBoYXNGaWx0ZXIgPSBrZXlmcmFtZXMuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtp
dEZpbHRlcik7CiAKLSAgICBpZiAoIWhhc09wYWNpdHkgJiYgIWhhc1RyYW5zZm9ybSAmJiAhaGFz
RmlsdGVyKQorICAgIGJvb2wgaGFzQmFja2Ryb3BGaWx0ZXIgPSBmYWxzZTsKKyNpZiBFTkFCTEUo
RklMVEVSU19MRVZFTF8yKQorICAgIGhhc0JhY2tkcm9wRmlsdGVyID0ga2V5ZnJhbWVzLmNvbnRh
aW5zUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRCYWNrZHJvcEZpbHRlcik7CisjZW5kaWYKKwor
ICAgIGlmICghaGFzT3BhY2l0eSAmJiAhaGFzVHJhbnNmb3JtICYmICFoYXNGaWx0ZXIgJiYgIWhh
c0JhY2tkcm9wRmlsdGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICBLZXlm
cmFtZVZhbHVlTGlzdCB0cmFuc2Zvcm1WZWN0b3IoQW5pbWF0ZWRQcm9wZXJ0eVRyYW5zZm9ybSk7
CiAgICAgS2V5ZnJhbWVWYWx1ZUxpc3Qgb3BhY2l0eVZlY3RvcihBbmltYXRlZFByb3BlcnR5T3Bh
Y2l0eSk7CiAgICAgS2V5ZnJhbWVWYWx1ZUxpc3QgZmlsdGVyVmVjdG9yKEFuaW1hdGVkUHJvcGVy
dHlXZWJraXRGaWx0ZXIpOworI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCisgICAgS2V5ZnJh
bWVWYWx1ZUxpc3QgYmFja2Ryb3BGaWx0ZXJWZWN0b3IoQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEJh
Y2tkcm9wRmlsdGVyKTsKKyNlbmRpZgogCiAgICAgc2l6ZV90IG51bUtleWZyYW1lcyA9IGtleWZy
YW1lcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1LZXlmcmFtZXM7ICsr
aSkgewpAQCAtMjQ4Miw2ICsyNDkwLDExIEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFy
dEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmltCiAKICAg
ICAgICAgaWYgKChoYXNGaWx0ZXIgJiYgaXNGaXJzdE9yTGFzdEtleWZyYW1lKSB8fCBjdXJyZW50
S2V5ZnJhbWUuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcikpCiAgICAg
ICAgICAgICBmaWx0ZXJWZWN0b3IuaW5zZXJ0KHN0ZDo6bWFrZV91bmlxdWU8RmlsdGVyQW5pbWF0
aW9uVmFsdWU+KGtleSwga2V5ZnJhbWVTdHlsZS0+ZmlsdGVyKCksIHRmKSk7CisKKyNpZiBFTkFC
TEUoRklMVEVSU19MRVZFTF8yKQorICAgICAgICBpZiAoKGhhc0JhY2tkcm9wRmlsdGVyICYmIGlz
Rmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVudEtleWZyYW1lLmNvbnRhaW5zUHJvcGVydHko
Q1NTUHJvcGVydHlXZWJraXRCYWNrZHJvcEZpbHRlcikpCisgICAgICAgICAgICBiYWNrZHJvcEZp
bHRlclZlY3Rvci5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxGaWx0ZXJBbmltYXRpb25WYWx1ZT4o
a2V5LCBrZXlmcmFtZVN0eWxlLT5iYWNrZHJvcEZpbHRlcigpLCB0ZikpOworI2VuZGlmCiAgICAg
fQogCiAgICAgaWYgKHJlbmRlcmVyKCkuZnJhbWUoKS5wYWdlKCkgJiYgIXJlbmRlcmVyKCkuZnJh
bWUoKS5wYWdlKCktPnNldHRpbmdzKCkuYWNjZWxlcmF0ZWRDb21wb3NpdGVkQW5pbWF0aW9uc0Vu
YWJsZWQoKSkKQEAgLTI0OTgsNiArMjUxMSwxMSBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6
c3RhcnRBbmltYXRpb24oZG91YmxlIHRpbWVPZmZzZXQsIGNvbnN0IEFuaW1hdGlvbiogYW5pbQog
ICAgIGlmIChoYXNGaWx0ZXIgJiYgbV9ncmFwaGljc0xheWVyLT5hZGRBbmltYXRpb24oZmlsdGVy
VmVjdG9yLCBJbnRTaXplKCksIGFuaW0sIGtleWZyYW1lcy5hbmltYXRpb25OYW1lKCksIHRpbWVP
ZmZzZXQpKQogICAgICAgICBkaWRBbmltYXRlID0gdHJ1ZTsKIAorI2lmIEVOQUJMRShGSUxURVJT
X0xFVkVMXzIpCisgICAgaWYgKGhhc0JhY2tkcm9wRmlsdGVyICYmIG1fZ3JhcGhpY3NMYXllci0+
YWRkQW5pbWF0aW9uKGJhY2tkcm9wRmlsdGVyVmVjdG9yLCBJbnRTaXplKCksIGFuaW0sIGtleWZy
YW1lcy5hbmltYXRpb25OYW1lKCksIHRpbWVPZmZzZXQpKQorICAgICAgICBkaWRBbmltYXRlID0g
dHJ1ZTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIGRpZEFuaW1hdGU7CiB9CiAKQEAgLTI1NjAsNiAr
MjU3OCwyMiBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJs
ZSB0aW1lT2Zmc2V0LCBDU1NQcm9wZXJ0eUlEIHByb3BlcgogICAgICAgICB9CiAgICAgfQogCisj
aWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKKyAgICBpZiAocHJvcGVydHkgPT0gQ1NTUHJvcGVy
dHlXZWJraXRCYWNrZHJvcEZpbHRlciAmJiBtX293bmluZ0xheWVyLmhhc0JhY2tkcm9wRmlsdGVy
KCkpIHsKKyAgICAgICAgY29uc3QgQW5pbWF0aW9uKiBiYWNrZHJvcEZpbHRlckFuaW0gPSB0b1N0
eWxlLT50cmFuc2l0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRCYWNrZHJvcEZpbHRl
cik7CisgICAgICAgIGlmIChiYWNrZHJvcEZpbHRlckFuaW0gJiYgIWJhY2tkcm9wRmlsdGVyQW5p
bS0+aXNFbXB0eU9yWmVyb0R1cmF0aW9uKCkpIHsKKyAgICAgICAgICAgIEtleWZyYW1lVmFsdWVM
aXN0IGJhY2tkcm9wRmlsdGVyVmVjdG9yKEFuaW1hdGVkUHJvcGVydHlXZWJraXRCYWNrZHJvcEZp
bHRlcik7CisgICAgICAgICAgICBiYWNrZHJvcEZpbHRlclZlY3Rvci5pbnNlcnQoc3RkOjptYWtl
X3VuaXF1ZTxGaWx0ZXJBbmltYXRpb25WYWx1ZT4oMCwgZnJvbVN0eWxlLT5iYWNrZHJvcEZpbHRl
cigpKSk7CisgICAgICAgICAgICBiYWNrZHJvcEZpbHRlclZlY3Rvci5pbnNlcnQoc3RkOjptYWtl
X3VuaXF1ZTxGaWx0ZXJBbmltYXRpb25WYWx1ZT4oMSwgdG9TdHlsZS0+YmFja2Ryb3BGaWx0ZXIo
KSkpOworICAgICAgICAgICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKGJhY2tk
cm9wRmlsdGVyVmVjdG9yLCBGbG9hdFNpemUoKSwgYmFja2Ryb3BGaWx0ZXJBbmltLCBHcmFwaGlj
c0xheWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbihBbmltYXRlZFByb3BlcnR5V2Via2l0
QmFja2Ryb3BGaWx0ZXIpLCB0aW1lT2Zmc2V0KSkgeworICAgICAgICAgICAgICAgIC8vIFRvIGVu
c3VyZSB0aGF0IHRoZSBjb3JyZWN0IGJhY2tkcm9wIGZpbHRlciBpcyB2aXNpYmxlIHdoZW4gdGhl
IGFuaW1hdGlvbiBlbmRzLCBhbHNvIHNldCB0aGUgZmluYWwgYmFja2Ryb3AgZmlsdGVyLgorICAg
ICAgICAgICAgICAgIHVwZGF0ZUJhY2tkcm9wRmlsdGVycygqdG9TdHlsZSk7CisgICAgICAgICAg
ICAgICAgZGlkQW5pbWF0ZSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisjZW5kaWYKKwogICAgIHJldHVybiBkaWRBbmltYXRlOwogfQogCkBAIC0yNjQ3LDYgKzI2ODEs
MTEgQEAgQ1NTUHJvcGVydHlJRCBSZW5kZXJMYXllckJhY2tpbmc6OmdyYXBoaWNzTGF5ZXJUb0NT
U1Byb3BlcnR5KEFuaW1hdGVkUHJvcGVydHlJRAogICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdl
YmtpdEZpbHRlcjoKICAgICAgICAgY3NzUHJvcGVydHkgPSBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRl
cjsKICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKKyAgICBjYXNl
IEFuaW1hdGVkUHJvcGVydHlXZWJraXRCYWNrZHJvcEZpbHRlcjoKKyAgICAgICAgY3NzUHJvcGVy
dHkgPSBDU1NQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyOworICAgICAgICBicmVhazsKKyNl
bmRpZgogICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eUludmFsaWQ6CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTI2NjQsNiArMjcwMywxMCBAQCBBbmltYXRlZFByb3Bl
cnR5SUQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjc3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUlECiAgICAgICAgIHJldHVybiBBbmltYXRlZFByb3BlcnR5QmFja2dyb3VuZENvbG9y
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGaWx0ZXI6CiAgICAgICAgIHJldHVybiBBbmlt
YXRlZFByb3BlcnR5V2Via2l0RmlsdGVyOworI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCisg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyOgorICAgICAgICByZXR1cm4g
QW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyOworI2VuZGlmCiAgICAgZGVmYXVs
dDoKICAgICAgICAgLy8gSXQncyBmaW5lIGlmIHdlIHNlZSBvdGhlciBjc3MgcHJvcGVydGllcyBo
ZXJlOyB0aGV5IGFyZSBqdXN0IG5vdCBhY2NlbGVyYXRlZC4KICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmlu
ZGV4IDgzZDVkMmVhNWM5OGI1MTJiZDJkZGJkZWYyYzAxNzE0MDVjZWRiYWUuLjMxNGE5NjdlNDEz
Y2FmM2Y1OTQyYjQ0Y2ZkZmFmMmU4YWVmMjVhNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNTc0LDYgKzI1NzQsOSBA
QCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvckFuaW1h
dGlvbihSZW5kZXJMYXllck1vZGVsT2JqZQogICAgIHJldHVybiAoYW5pbUNvbnRyb2xsZXIuaXNS
dW5uaW5nQW5pbWF0aW9uT25SZW5kZXJlcihyZW5kZXJlciwgQ1NTUHJvcGVydHlPcGFjaXR5LCBh
Y3RpdmVBbmltYXRpb25TdGF0ZSkKICAgICAgICAgICAgICYmIChpbkNvbXBvc2l0aW5nTW9kZSgp
IHx8IChtX2NvbXBvc2l0aW5nVHJpZ2dlcnMgJiBDaHJvbWVDbGllbnQ6OkFuaW1hdGVkT3BhY2l0
eVRyaWdnZXIpKSkKICAgICAgICAgICAgIHx8IGFuaW1Db250cm9sbGVyLmlzUnVubmluZ0FuaW1h
dGlvbk9uUmVuZGVyZXIocmVuZGVyZXIsIENTU1Byb3BlcnR5V2Via2l0RmlsdGVyLCBhY3RpdmVB
bmltYXRpb25TdGF0ZSkKKyNpZiBFTkFCTEUoRklMVEVSU19MRVZFTF8yKQorICAgICAgICAgICAg
fHwgYW5pbUNvbnRyb2xsZXIuaXNSdW5uaW5nQW5pbWF0aW9uT25SZW5kZXJlcihyZW5kZXJlciwg
Q1NTUHJvcGVydHlXZWJraXRCYWNrZHJvcEZpbHRlciwgYWN0aXZlQW5pbWF0aW9uU3RhdGUpCisj
ZW5kaWYKICAgICAgICAgICAgIHx8IGFuaW1Db250cm9sbGVyLmlzUnVubmluZ0FuaW1hdGlvbk9u
UmVuZGVyZXIocmVuZGVyZXIsIENTU1Byb3BlcnR5VHJhbnNmb3JtLCBhY3RpdmVBbmltYXRpb25T
dGF0ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA3YmJhNTdiNDZiNGMyMGExMDBiOGVlZDExY2RmMWI3NzdjODlh
ZjMzLi4wMjQ2ZWZkNzgzODY4ZTdlZTNmOTk1ODVkOTcwNTNiNTYzZGE1OWY3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTUtMDUtMjYgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgor
CisgICAgICAgIEJhY2tkcm9wIGZpbHRlcnMgZG9uJ3QgYW5pbWF0ZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1Mzg2CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yMTExMDAzNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSB0ZXN0IGZvciBhbmltYXRpb24gb2YgYmFja2Ryb3AtZmlsdGVyLCBh
bmQgZG8gc29tZQorICAgICAgICBtaW5vciBjbGVhbnVwcyBpbiByZWxhdGVkIGZpbGVzLgorCisg
ICAgICAgICogYW5pbWF0aW9ucy9yZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qczoK
KyAgICAgICAgKHBhcnNlRmlsdGVySW1hZ2UpOiBGaXggYSB0eXBvLgorICAgICAgICAoZ2V0UHJv
cGVydHlWYWx1ZSk6IFN1cHBvcnQgd2Via2l0QmFja2Ryb3BGaWx0ZXIuCisgICAgICAgIChjb21w
YXJlUHJvcGVydHlWYWx1ZSk6IERpdHRvLgorICAgICAgICAqIGNzczMvZmlsdGVycy9iYWNrZHJv
cC9hbmltYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMv
YmFja2Ryb3AvYW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA1LTI2ICBZdXN1a2UgU3V6
dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtFUzZdIEltcGxlbWVudCBB
cnJheS5wcm90b3R5cGUuY29weVdpdGhpbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9yZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvcmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMKaW5kZXggM2ZhOWQ1
YzNjNmFiNzkzM2E5NjY1NDRhM2YxNTM3YTk2NjQwM2I1Yy4uMDRhZjEyMTA1ZTVmMzhjZjFhNDU0
YTgyZDA2OTk5OTAxNmFiZTcwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9y
ZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcworKysgYi9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzCkBAIC0xMjYsMTkgKzEy
NiwxOSBAQCBmdW5jdGlvbiBwYXJzZUZpbHRlckltYWdlKHMpCiAgICAgLy8gU2VwYXJhdGUgaW1h
Z2UgdmFsdWUgZnJvbSBmaWx0ZXIgZnVuY3Rpb24gbGlzdC4KICAgICB2YXIgbWF0Y2hlcyA9IHMu
bWF0Y2goIihbXFwtXFx3XStcXCguKlxcKSlcXHMqLFxccyooLiopXFxzKiIpOwogICAgIGlmICgh
bWF0Y2hlcykgewotICAgICAgICBjb25zb2xlLmVycm9yKCJQYXJzaW5nIGVycm9yIG9uICdmaXRs
ZXIoKScgIiwgcyk7CisgICAgICAgIGNvbnNvbGUuZXJyb3IoIlBhcnNpbmcgZXJyb3Igb24gJ2Zp
bHRlcigpJyAiLCBzKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHZhciBp
bWFnZSA9IHBhcnNlQ1NTSW1hZ2UobWF0Y2hlc1sxXSk7CiAgICAgaWYgKCFpbWFnZSkgewotICAg
ICAgICBjb25zb2xlLmVycm9yKCJQYXJzaW5nIGVycm9yIG9uIGltYWdlIHBhc3NlZCB0byAnZml0
bGVyKCknICIsIHMpOworICAgICAgICBjb25zb2xlLmVycm9yKCJQYXJzaW5nIGVycm9yIG9uIGlt
YWdlIHBhc3NlZCB0byAnZmlsdGVyKCknICIsIHMpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCiAgICAgdmFyIGZpbHRlckZ1bmN0aW9uTGlzdCA9IHBhcnNlRmlsdGVyRnVuY3Rpb25M
aXN0KG1hdGNoZXNbMl0pOwogICAgIGlmICghZmlsdGVyRnVuY3Rpb25MaXN0KSB7Ci0gICAgICAg
IGNvbnNvbGUuZXJyb3IoIlBhcnNpbmcgZXJyb3Igb24gZmlsdGVyIGZ1bmN0aW9uIGxpc3QgcGFz
c2VkIHRvICdmaXRsZXIoKScgIiwgcyk7CisgICAgICAgIGNvbnNvbGUuZXJyb3IoIlBhcnNpbmcg
ZXJyb3Igb24gZmlsdGVyIGZ1bmN0aW9uIGxpc3QgcGFzc2VkIHRvICdmaWx0ZXIoKScgIiwgcyk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTM5NSw2ICszOTUsNyBAQCBmdW5j
dGlvbiBnZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5LCBlbGVtZW50SWQsIGlmcmFtZUlkKQogICAg
ICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0gIndlYmtpdE1hc2tJbWFnZSIKICAgICAgICAgICAg
ICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRNYXNrQm94SW1hZ2UiCiAgICAgICAgICAgICAgICB8
fCBwcm9wZXJ0eSA9PSAid2Via2l0RmlsdGVyIgorICAgICAgICAgICAgICAgfHwgcHJvcGVydHkg
PT0gIndlYmtpdEJhY2tkcm9wRmlsdGVyIgogICAgICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0g
IndlYmtpdENsaXBQYXRoIgogICAgICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0gIndlYmtpdFNo
YXBlSW5zaWRlIgogICAgICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0gIndlYmtpdFNoYXBlT3V0
c2lkZSIKQEAgLTQyNiw3ICs0MjcsNyBAQCBmdW5jdGlvbiBjb21wYXJlUHJvcGVydHlWYWx1ZShw
cm9wZXJ0eSwgY29tcHV0ZWRWYWx1ZSwgZXhwZWN0ZWRWYWx1ZSwgdG9sZXJhbmNlKQogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0gZWxz
ZSBpZiAocHJvcGVydHkgPT0gIndlYmtpdEZpbHRlciIpIHsKKyAgICB9IGVsc2UgaWYgKHByb3Bl
cnR5ID09ICJ3ZWJraXRGaWx0ZXIiIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRCYWNrZHJvcEZpbHRl
ciIpIHsKICAgICAgICAgdmFyIGZpbHRlclBhcmFtZXRlcnMgPSBwYXJzZUZpbHRlckZ1bmN0aW9u
TGlzdChjb21wdXRlZFZhbHVlKTsKICAgICAgICAgdmFyIGZpbHRlcjJQYXJhbWV0ZXJzID0gcGFy
c2VGaWx0ZXJGdW5jdGlvbkxpc3QoZXhwZWN0ZWRWYWx1ZSk7CiAgICAgICAgIHJlc3VsdCA9IGNv
bXBhcmVGaWx0ZXJGdW5jdGlvbnMoZmlsdGVyUGFyYW1ldGVycywgZmlsdGVyMlBhcmFtZXRlcnMs
IHRvbGVyYW5jZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvYmFja2Ry
b3AvYW5pbWF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9iYWNr
ZHJvcC9hbmltYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5MGZjZDZlMTVmODk4M2Zh
YjJjY2U4MTdiYzU1MDE3MTY1OWZjOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
c3MzL2ZpbHRlcnMvYmFja2Ryb3AvYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEx
IEBACisgICAgICAgIAorUEFTUyAtICJ3ZWJraXRCYWNrZHJvcEZpbHRlciIgcHJvcGVydHkgZm9y
ICJncmF5c2NhbGUtYm94IiBlbGVtZW50IGF0IDFzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IGdy
YXlzY2FsZSgwLjUpCitQQVNTIC0gIndlYmtpdEJhY2tkcm9wRmlsdGVyIiBwcm9wZXJ0eSBmb3Ig
InNlcGlhLWJveCIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiBzZXBpYSgw
LjUpCitQQVNTIC0gIndlYmtpdEJhY2tkcm9wRmlsdGVyIiBwcm9wZXJ0eSBmb3IgInNhdHVyYXRl
LWJveCIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiBzYXR1cmF0ZSgwLjUp
CitQQVNTIC0gIndlYmtpdEJhY2tkcm9wRmlsdGVyIiBwcm9wZXJ0eSBmb3IgImh1ZXJvdGF0ZS1i
b3giIGVsZW1lbnQgYXQgMXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogaHVlLXJvdGF0ZSg5MGRl
ZykKK1BBU1MgLSAid2Via2l0QmFja2Ryb3BGaWx0ZXIiIHByb3BlcnR5IGZvciAiaW52ZXJ0LWJv
eCIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiBpbnZlcnQoMC41KQorUEFT
UyAtICJ3ZWJraXRCYWNrZHJvcEZpbHRlciIgcHJvcGVydHkgZm9yICJvcGFjaXR5LWJveCIgZWxl
bWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiBvcGFjaXR5KDAuNSkKK1BBU1MgLSAi
d2Via2l0QmFja2Ryb3BGaWx0ZXIiIHByb3BlcnR5IGZvciAiYnJpZ2h0bmVzcy1ib3giIGVsZW1l
bnQgYXQgMXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogYnJpZ2h0bmVzcygwLjUpCitQQVNTIC0g
IndlYmtpdEJhY2tkcm9wRmlsdGVyIiBwcm9wZXJ0eSBmb3IgImNvbnRyYXN0LWJveCIgZWxlbWVu
dCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiBjb250cmFzdCgwLjUpCitQQVNTIC0gIndl
YmtpdEJhY2tkcm9wRmlsdGVyIiBwcm9wZXJ0eSBmb3IgImJsdXItYm94IiBlbGVtZW50IGF0IDFz
IHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IGJsdXIoMTBweCkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL2JhY2tkcm9wL2FuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL2JhY2tkcm9wL2FuaW1hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyMzk3NGZk
YjRjODQ5ZmRmYmQwODRhNjgxZDE0MWEyZjYxYzA2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jc3MzL2ZpbHRlcnMvYmFja2Ryb3AvYW5pbWF0aW9uLmh0bWwKQEAgLTAsMCArMSwx
NDggQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAg
LmJnIHsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAg
ICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAg
YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9yZXNvdXJjZXMvcmVmZXJlbmNlLnBuZycpOworICAg
ICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGVaKDApOworICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjoycyAhaW1w
b3J0YW50OworICAgIH0KKworICAgIC5ib3ggeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgICAgIHRvcDogMDsKKyAgICAgICAgbGVmdDogMDsKKyAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJh
bnNsYXRlWigwKTsKKyAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJzICFpbXBv
cnRhbnQ7CisgICAgICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBpbnZlcnQoMCk7CisgICAg
fQorCisgICAgI2dyYXlzY2FsZS1ib3ggeworICAgICAgLXdlYmtpdC1hbmltYXRpb246IGdyYXlz
Y2FsZS1hbmltIDJzIGxpbmVhcgorICAgIH0KKworICAgICNzZXBpYS1ib3ggeworICAgICAgLXdl
YmtpdC1hbmltYXRpb246IHNlcGlhLWFuaW0gMnMgbGluZWFyCisgICAgfQorCisgICAgI3NhdHVy
YXRlLWJveCB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbjogc2F0dXJhdGUtYW5pbSAycyBsaW5l
YXIKKyAgICB9CisKKyAgICAjaHVlcm90YXRlLWJveCB7CisgICAgICAtd2Via2l0LWFuaW1hdGlv
bjogaHVlcm90YXRlLWFuaW0gMnMgbGluZWFyCisgICAgfQorCisgICAgI2ludmVydC1ib3ggewor
ICAgICAgLXdlYmtpdC1hbmltYXRpb246IGludmVydC1hbmltIDJzIGxpbmVhcgorICAgIH0KKwor
ICAgICNvcGFjaXR5LWJveCB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbjogb3BhY2l0eS1hbmlt
IDJzIGxpbmVhcgorICAgIH0KKworICAgICNicmlnaHRuZXNzLWJveCB7CisgICAgICAtd2Via2l0
LWFuaW1hdGlvbjogYnJpZ2h0bmVzcy1hbmltIDJzIGxpbmVhcgorICAgIH0KKworICAgICNjb250
cmFzdC1ib3ggeworICAgICAgLXdlYmtpdC1hbmltYXRpb246IGNvbnRyYXN0LWFuaW0gMnMgbGlu
ZWFyCisgICAgfQorCisgICAgI2JsdXItYm94IHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBi
bHVyLWFuaW0gMnMgbGluZWFyCisgICAgfQorCisgICAgI2Ryb3BzaGFkb3ctYm94IHsKKyAgICAg
IC13ZWJraXQtYW5pbWF0aW9uOiBkcm9wc2hhZG93LWFuaW0gMnMgbGluZWFyCisgICAgfQorCisK
KyAgICBALXdlYmtpdC1rZXlmcmFtZXMgZ3JheXNjYWxlLWFuaW0geworICAgICAgICBmcm9tIHsg
LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGdyYXlzY2FsZSgwKTsgfQorICAgICAgICB0byAgIHsg
LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGdyYXlzY2FsZSgxKTsgfQorICAgIH0KKworICAgIEAt
d2Via2l0LWtleWZyYW1lcyBzZXBpYS1hbmltIHsKKyAgICAgICAgZnJvbSB7IC13ZWJraXQtYmFj
a2Ryb3AtZmlsdGVyOiBzZXBpYSgwKTsgfQorICAgICAgICB0byAgIHsgLXdlYmtpdC1iYWNrZHJv
cC1maWx0ZXI6IHNlcGlhKDEpOyB9CisgICAgfQorCisgICAgQC13ZWJraXQta2V5ZnJhbWVzIHNh
dHVyYXRlLWFuaW0geworICAgICAgICBmcm9tIHsgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IHNh
dHVyYXRlKDApOyB9CisgICAgICAgIHRvICAgeyAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogc2F0
dXJhdGUoMSk7IH0KKyAgICB9CisKKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgaHVlcm90YXRlLWFu
aW0geworICAgICAgICBmcm9tIHsgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGh1ZS1yb3RhdGUo
MCk7IH0KKyAgICAgICAgdG8gICB7IC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBodWUtcm90YXRl
KDE4MGRlZyk7IH0KKyAgICB9CisKKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgaW52ZXJ0LWFuaW0g
eworICAgICAgICBmcm9tIHsgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGludmVydCgwKTsgfQor
ICAgICAgICB0byAgIHsgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGludmVydCgxKTsgfQorICAg
IH0KKworICAgIEAtd2Via2l0LWtleWZyYW1lcyBvcGFjaXR5LWFuaW0geworICAgICAgICBmcm9t
IHsgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IG9wYWNpdHkoMSk7IH0KKyAgICAgICAgdG8gICB7
IC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBvcGFjaXR5KDApOyB9CisgICAgfQorCisgICAgQC13
ZWJraXQta2V5ZnJhbWVzIGJyaWdodG5lc3MtYW5pbSB7CisgICAgICAgIGZyb20geyAtd2Via2l0
LWJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygxKTsgfQorICAgICAgICB0byAgIHsgLXdlYmtp
dC1iYWNrZHJvcC1maWx0ZXI6IGJyaWdodG5lc3MoMCk7IH0KKyAgICB9CisKKyAgICBALXdlYmtp
dC1rZXlmcmFtZXMgY29udHJhc3QtYW5pbSB7CisgICAgICAgIGZyb20geyAtd2Via2l0LWJhY2tk
cm9wLWZpbHRlcjogY29udHJhc3QoMSk7IH0KKyAgICAgICAgdG8gICB7IC13ZWJraXQtYmFja2Ry
b3AtZmlsdGVyOiBjb250cmFzdCgwKTsgfQorICAgIH0KKworICAgIEAtd2Via2l0LWtleWZyYW1l
cyBibHVyLWFuaW0geworICAgICAgICBmcm9tIHsgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJs
dXIoMCk7IH0KKyAgICAgICAgdG8gICB7IC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIw
cHgpOyB9CisgICAgfQorCisgIDwvc3R5bGU+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9hbmlt
YXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKyAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIHZhciBleHBlY3RlZFZhbHVlcyA9
IFsKKyAgICAgIC8vIFthbmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHks
IGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCisgICAgICBbImdyYXlzY2FsZS1hbmltIiwgIDEs
ICJncmF5c2NhbGUtYm94IiwgIndlYmtpdEJhY2tkcm9wRmlsdGVyIiwgJ2dyYXlzY2FsZSgwLjUp
JywgMC4wNV0sCisgICAgICBbInNlcGlhLWFuaW0iLCAgMSwgInNlcGlhLWJveCIsICJ3ZWJraXRC
YWNrZHJvcEZpbHRlciIsICdzZXBpYSgwLjUpJywgMC4wNV0sCisgICAgICBbInNhdHVyYXRlLWFu
aW0iLCAgMSwgInNhdHVyYXRlLWJveCIsICJ3ZWJraXRCYWNrZHJvcEZpbHRlciIsICdzYXR1cmF0
ZSgwLjUpJywgMC4wNV0sCisgICAgICBbImh1ZXJvdGF0ZS1hbmltIiwgIDEsICJodWVyb3RhdGUt
Ym94IiwgIndlYmtpdEJhY2tkcm9wRmlsdGVyIiwgJ2h1ZS1yb3RhdGUoOTBkZWcpJywgMl0sCisg
ICAgICBbImludmVydC1hbmltIiwgIDEsICJpbnZlcnQtYm94IiwgIndlYmtpdEJhY2tkcm9wRmls
dGVyIiwgJ2ludmVydCgwLjUpJywgMC4wNV0sCisgICAgICBbIm9wYWNpdHktYW5pbSIsICAxLCAi
b3BhY2l0eS1ib3giLCAid2Via2l0QmFja2Ryb3BGaWx0ZXIiLCAnb3BhY2l0eSgwLjUpJywgMC4w
NV0sCisgICAgICBbImJyaWdodG5lc3MtYW5pbSIsICAxLCAiYnJpZ2h0bmVzcy1ib3giLCAid2Vi
a2l0QmFja2Ryb3BGaWx0ZXIiLCAnYnJpZ2h0bmVzcygwLjUpJywgMC4wNV0sCisgICAgICBbImNv
bnRyYXN0LWFuaW0iLCAgMSwgImNvbnRyYXN0LWJveCIsICJ3ZWJraXRCYWNrZHJvcEZpbHRlciIs
ICdjb250cmFzdCgwLjUpJywgMC4wNV0sCisgICAgICBbImJsdXItYW5pbSIsICAxLCAiYmx1ci1i
b3giLCAid2Via2l0QmFja2Ryb3BGaWx0ZXIiLCAnYmx1cigxMHB4KScsIDFdLAorICAgIF07CisK
KyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKKyAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKworPGRpdiBjbGFzcz0iYmciPjxkaXYgY2xhc3M9ImJveCIgaWQ9ImdyYXlz
Y2FsZS1ib3giPjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0iYmciPjxkaXYgY2xhc3M9ImJveCIg
aWQ9InNlcGlhLWJveCI+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJiZyI+PGRpdiBjbGFzcz0i
Ym94IiBpZD0ic2F0dXJhdGUtYm94Ij48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9ImJnIj48ZGl2
IGNsYXNzPSJib3giIGlkPSJodWVyb3RhdGUtYm94Ij48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9
ImJnIj48ZGl2IGNsYXNzPSJib3giIGlkPSJpbnZlcnQtYm94Ij48L2Rpdj48L2Rpdj4KKzxkaXYg
Y2xhc3M9ImJnIj48ZGl2IGNsYXNzPSJib3giIGlkPSJvcGFjaXR5LWJveCI+PC9kaXY+PC9kaXY+
Cis8ZGl2IGNsYXNzPSJiZyI+PGRpdiBjbGFzcz0iYm94IiBpZD0iYnJpZ2h0bmVzcy1ib3giPjwv
ZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0iYmciPjxkaXYgY2xhc3M9ImJveCIgaWQ9ImNvbnRyYXN0
LWJveCI+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJiZyI+PGRpdiBjbGFzcz0iYm94IiBpZD0i
Ymx1ci1ib3giPjwvZGl2PjwvZGl2PgorCis8ZGl2IGlkPSJyZXN1bHQiPgorPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="278678"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253795</attachid>
            <date>2015-05-27 11:10:10 -0700</date>
            <delta_ts>2015-05-27 11:10:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145386-20150527110958.patch</filename>
            <type>text/plain</type>
            <size>36926</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzFmODViOWJlNWIzZGRj
Yzk5YjRjNDgxNTQyYmQyMDY3Y2UwZGYwYS4uNWY5NDY3Y2JmZGIwZjBhNjAwNDU1ODhhODg3MDg0
NWE2ZDJlMzBlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE1LTA1LTI2ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBCYWNrZHJvcCBmaWx0ZXJzIGRv
bid0IGFuaW1hdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0NTM4NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjExMTAwMzc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhbmlt
YXRpb24gb2YgYmFja2Ryb3AgZmlsdGVycy4KKworICAgICAgICBOb3RlIHRoYXQsIGF0IHRoZSBt
b21lbnQsIHdlIGNhbiBvbmx5IGFuaW1hdGUvdHJhbnNpdGlvbgorICAgICAgICBiYWNrZHJvcC1m
aWx0ZXIgaWYgaXQgaXMgYWxyZWFkeSBwcmVzZW50IG9uIHRoZSBlbGVtZW50LiBTZWUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTEwNworCisgICAg
ICAgIFRlc3Q6IGNzczMvZmlsdGVycy9iYWNrZHJvcC9hbmltYXRpb24uaHRtbAorCisgICAgICAg
ICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oOiBBZGQgbV9iYWNrZHJvcEZpbHRlckZ1
bmN0aW9uTGlzdHNNYXRjaCBhbmQgYmFja2Ryb3BGaWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2guCisg
ICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjpiYWNrZHJvcEZpbHRlckZ1bmN0aW9uTGlz
dHNNYXRjaCk6CisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZ1bmMpOiBiYWNrZHJvcC1maWx0ZXIgaXMg
YWxzbyBzdXBwb3J0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVdyYXBwZXJBY2NlbGVy
YXRlZEJhY2tkcm9wRmlsdGVyOjpQcm9wZXJ0eVdyYXBwZXJBY2NlbGVyYXRlZEJhY2tkcm9wRmls
dGVyKTogQWRkZWQuIFdvcmtzCisgICAgICAgIHNpbWlsYXJseSB0byB0aGUgUHJvcGVydHlXcmFw
cGVyQWNjZWxlcmF0ZWRGaWx0ZXIuCisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVdyYXBwZXJB
Y2NlbGVyYXRlZEJhY2tkcm9wRmlsdGVyOjphbmltYXRpb25Jc0FjY2VsZXJhdGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlByb3BlcnR5V3JhcHBlckFjY2VsZXJhdGVkQmFja2Ryb3BGaWx0ZXI6OmJs
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcDo6
Q1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwKTogQ29uc3RydWN0IHRoZQorICAgICAgICBQ
cm9wZXJ0eVdyYXBwZXJBY2NlbGVyYXRlZEJhY2tkcm9wRmlsdGVyLgorCisgICAgICAgICogcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1w
bGljaXRBbmltYXRpb246OnJlc2V0KTogQ2FsbCBjaGVja0Zvck1hdGNoaW5nQmFja2Ryb3BGaWx0
ZXJGdW5jdGlvbkxpc3RzLgorICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OnZh
bGlkYXRlVHJhbnNmb3JtRnVuY3Rpb25MaXN0KTogRml4IHR5cG8uCisgICAgICAgIChXZWJDb3Jl
OjpJbXBsaWNpdEFuaW1hdGlvbjo6Y2hlY2tGb3JNYXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMp
OiBSZW1vdmUgd2hpdGVzcGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9u
OjpjaGVja0Zvck1hdGNoaW5nQmFja2Ryb3BGaWx0ZXJGdW5jdGlvbkxpc3RzKTogTmV3IG1ldGhv
ZCB0aGF0CisgICAgICAgIGNoZWNrcyBpZiB0aGUgaW5kaXZpZHVhbCBmaWx0ZXJzIGluIGEgZmls
dGVyIGxpc3QgbWF0Y2guCisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRp
b24uaDogQWRkIGNoZWNrRm9yTWF0Y2hpbmdCYWNrZHJvcEZpbHRlckZ1bmN0aW9uTGlzdHMuCisK
KyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6S2V5ZnJhbWVBbmltYXRpb24pOiBDYWxsIGNo
ZWNrRm9yTWF0Y2hpbmdCYWNrZHJvcEZpbHRlckZ1bmN0aW9uTGlzdHMuCisgICAgICAgIChXZWJD
b3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6Y2hlY2tGb3JNYXRjaGluZ0JhY2tkcm9wRmlsdGVyRnVu
Y3Rpb25MaXN0cyk6IENvcGllZCBmcm9tCisgICAgICAgIGNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJG
dW5jdGlvbkxpc3RzLCBidXQgY2FsbHMgYmFja2Ryb3BGaWx0ZXIoKSBpbnN0ZWFkIG9mIGZpbHRl
cigpLgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVBbmltYXRpb246OmNoZWNrRm9yTWF0Y2hp
bmdGaWx0ZXJGdW5jdGlvbkxpc3RzKTogVGhpcyB3YXMgYWNjaWRlbnRhbGx5IGNoZWNraW5nCisg
ICAgICAgIGZvciBiYWNrZHJvcCBmaWx0ZXJzIGFzIHdlbGwsIGJ1dCBpdCB3b3VsZG4ndCBoYXZl
IHdvcmtlZC4KKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oOiBB
ZGQgY2hlY2tGb3JNYXRjaGluZ0JhY2tkcm9wRmlsdGVyRnVuY3Rpb25MaXN0cy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllcjo6dmFsaWRhdGVGaWx0ZXJPcGVyYXRpb25zKTogTW9kaWZ5IHRoZSBB
U1NFUlQgdG8gYWxsb3cgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaDogQWRkIEFuaW1h
dGVkUHJvcGVydHlXZWJraXRCYWNrZHJvcEZpbHRlciB0byB0aGUgZW51bS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwcm9wZXJ0eUlkVG9TdHJpbmcpOiBTdXBwb3J0IG5ldyBlbnVtLgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjphZGRBbmltYXRpb24pOiBTdXBwb3J0IEFuaW1hdGVkUHJv
cGVydHlXZWJraXRCYWNrZHJvcEZpbHRlci4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJDQTo6Y3JlYXRlRmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6YW5pbWF0ZWRMYXllcik6IFVzZSBhIHN3aXRj
aCBzdGF0ZW1lbnQgbm93IHRoYXQgd2UgaGF2ZSBtb3JlIHRoYW4KKyAgICAgICAgdHdvIG9wdGlv
bnMsIGFuZCBoYW5kbGUgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVBbmltYXRpb25zKTogRGVsZXRl
ZCBhIGJsYW5rIGxpbmUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRp
b24pOiBTdXBwb3J0IGFuaW1hdGlvbiBvZiBiYWNrZHJvcC1maWx0ZXIuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJhbnNpdGlvbik6IERpdHRvLiBDb3BpZWQg
dGhlIGNvZGUgZnJvbSB0aGUgZmlsdGVyIHRyYW5zaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OmdyYXBoaWNzTGF5ZXJUb0NTU1Byb3BlcnR5KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Y3NzVG9HcmFwaGljc0xheWVyUHJvcGVydHkp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9y
QW5pbWF0aW9uKToKKwogMjAxNS0wNS0yNiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29t
PgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMTEwNDU1MT4gVXBkYXRlIGJ1aWxkIHNldHRp
bmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25C
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKaW5k
ZXggNWM1ZmZmNWQyOTcyODU2NmQyNGZjMzNjOTdmNWQ2NjQzOTFkMmMxMi4uNTk4NmFjOTVjNmZk
MjFhMjU0NmE3ZjI3MWYyNWM0YTU5ZmVlZjI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaApAQCAtMTkyLDYgKzE5Miw5IEBAIHB1YmxpYzoKICAg
ICAvLyBGSVhNRTogcmVuYW1lIHRoaXMgdXNpbmcgdGhlICJsaXN0cyBtYXRjaCIgdGVybWlub2xv
Z3kuCiAgICAgYm9vbCBpc1RyYW5zZm9ybUZ1bmN0aW9uTGlzdFZhbGlkKCkgY29uc3QgeyByZXR1
cm4gbV90cmFuc2Zvcm1GdW5jdGlvbkxpc3RWYWxpZDsgfQogICAgIGJvb2wgZmlsdGVyRnVuY3Rp
b25MaXN0c01hdGNoKCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2g7
IH0KKyNpZiBFTkFCTEUoRklMVEVSU19MRVZFTF8yKQorICAgIGJvb2wgYmFja2Ryb3BGaWx0ZXJG
dW5jdGlvbkxpc3RzTWF0Y2goKSBjb25zdCB7IHJldHVybiBtX2JhY2tkcm9wRmlsdGVyRnVuY3Rp
b25MaXN0c01hdGNoOyB9CisjZW5kaWYKIAogICAgIC8vIEZyZWV6ZSB0aGUgYW5pbWF0aW9uOyB1
c2VkIGJ5IER1bXBSZW5kZXJUcmVlLgogICAgIHZvaWQgZnJlZXplQXRUaW1lKGRvdWJsZSB0KTsK
QEAgLTI1OSw2ICsyNjIsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2lzQWNjZWxlcmF0ZWQg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV90cmFuc2Zvcm1GdW5jdGlvbkxpc3RWYWxpZCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2ZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaCB7IGZhbHNlIH07CisjaWYg
RU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKKyAgICBib29sIG1fYmFja2Ryb3BGaWx0ZXJGdW5jdGlv
bkxpc3RzTWF0Y2ggeyBmYWxzZSB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHAKaW5kZXggZjYzMDU3OWZjYzg5ZDQ5MmU4NDcwMzgwZTU0NGUwYTdlZDQz
ZmE5OC4uYThkYmJkMGQyMjExZjRmZDFmOTg1OTdjODMzY2Y3OGIyY2RiNjMwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9u
LmNwcApAQCAtMTk1LDEyICsxOTUsMTggQEAgc3RhdGljIGlubGluZSBGaWx0ZXJPcGVyYXRpb25z
IGJsZW5kRmlsdGVyT3BlcmF0aW9ucyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRmlsdGVyT3BlcmF0aW9ucyBibGVuZEZ1
bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZnJv
bSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBp
bmxpbmUgRmlsdGVyT3BlcmF0aW9ucyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5p
bSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZnJvbSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYg
dG8sIGRvdWJsZSBwcm9ncmVzcywgYm9vbCBhbmltYXRpbmdCYWNrZHJvcEZpbHRlciA9IGZhbHNl
KQogewogICAgIEZpbHRlck9wZXJhdGlvbnMgcmVzdWx0OwogCiAgICAgLy8gSWYgd2UgaGF2ZSBh
IGZpbHRlciBmdW5jdGlvbiBsaXN0LCB1c2UgdGhhdCB0byBkbyBhIHBlci1mdW5jdGlvbiBhbmlt
YXRpb24uCisjaWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKKyAgICBpZiAoKCFhbmltYXRpbmdC
YWNrZHJvcEZpbHRlciAmJiBhbmltLT5maWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2goKSkgfHwgKGFu
aW1hdGluZ0JhY2tkcm9wRmlsdGVyICYmIGFuaW0tPmJhY2tkcm9wRmlsdGVyRnVuY3Rpb25MaXN0
c01hdGNoKCkpKQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYW5pbWF0aW5nQmFja2Ryb3BGaWx0
ZXIpOwogICAgIGlmIChhbmltLT5maWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2goKSkKKyNlbmRpZgor
CiAgICAgICAgIHJlc3VsdCA9IGJsZW5kRmlsdGVyT3BlcmF0aW9ucyhhbmltLCBmcm9tLCB0bywg
cHJvZ3Jlc3MpOwogICAgIGVsc2UgewogICAgICAgICAvLyBJZiB0aGUgZmlsdGVyIGZ1bmN0aW9u
IGxpc3RzIGRvbid0IG1hdGNoLCB3ZSBjb3VsZCB0cnkgdG8gY3Jvc3MtZmFkZSwgYnV0IGRvbid0
IHlldCBoYXZlIGEgd2F5IHRvIHJlcHJlc2VudCB0aGF0IGluIENTUy4KQEAgLTYxNiw2ICs2MjIs
MjQgQEAgcHVibGljOgogICAgIH0KIH07CiAKKyNpZiBFTkFCTEUoRklMVEVSU19MRVZFTF8yKQor
Y2xhc3MgUHJvcGVydHlXcmFwcGVyQWNjZWxlcmF0ZWRCYWNrZHJvcEZpbHRlciA6IHB1YmxpYyBQ
cm9wZXJ0eVdyYXBwZXI8Y29uc3QgRmlsdGVyT3BlcmF0aW9ucyY+IHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBQcm9wZXJ0eVdyYXBwZXJBY2NlbGVyYXRlZEJh
Y2tkcm9wRmlsdGVyKCkKKyAgICAgICAgOiBQcm9wZXJ0eVdyYXBwZXI8Y29uc3QgRmlsdGVyT3Bl
cmF0aW9ucyY+KENTU1Byb3BlcnR5V2Via2l0QmFja2Ryb3BGaWx0ZXIsICZSZW5kZXJTdHlsZTo6
YmFja2Ryb3BGaWx0ZXIsICZSZW5kZXJTdHlsZTo6c2V0QmFja2Ryb3BGaWx0ZXIpCisgICAgewor
ICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBhbmltYXRpb25Jc0FjY2VsZXJhdGVkKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmlydHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlv
bkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25z
dCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdAorICAgIHsKKyAgICAgICAg
ZHN0LT5zZXRCYWNrZHJvcEZpbHRlcihibGVuZEZ1bmMoYW5pbSwgYS0+YmFja2Ryb3BGaWx0ZXIo
KSwgYi0+YmFja2Ryb3BGaWx0ZXIoKSwgcHJvZ3Jlc3MsIHRydWUpKTsKKyAgICB9Cit9OworI2Vu
ZGlmCisKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IHNoYWRvd0xpc3RMZW5ndGgoY29uc3QgU2hhZG93
RGF0YSogc2hhZG93KQogewogICAgIHNpemVfdCBjb3VudDsKQEAgLTEyODAsNiArMTMwNCw5IEBA
IENTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVydHlBbmltYXRpb25XcmFw
cGVyTWFwKCkKICAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlckFjY2VsZXJhdGVkT3BhY2l0eSgp
LAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyQWNjZWxlcmF0ZWRUcmFuc2Zvcm0oKSwKICAg
ICAgICAgbmV3IFByb3BlcnR5V3JhcHBlckFjY2VsZXJhdGVkRmlsdGVyKCksCisjaWYgRU5BQkxF
KEZJTFRFUlNfTEVWRUxfMikKKyAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlckFjY2VsZXJhdGVk
QmFja2Ryb3BGaWx0ZXIoKSwKKyNlbmRpZgogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyQ2xp
cFBhdGgoQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aCwgJlJlbmRlclN0eWxlOjpjbGlwUGF0aCwg
JlJlbmRlclN0eWxlOjpzZXRDbGlwUGF0aCksCiAKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNw
cAppbmRleCAwYTYwYmI1MTAwNDM4ODczNTA4YmQ4ZDFjYjcwNTdkNmI2YWUwZmQxLi45ZWM1N2I0
Y2UyOWE5NDVlM2I1ODFiNTliOTQ3ZDU4YjEwN2IzZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0yMTksNiArMjE5
LDkgQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6cmVzZXQoUmVuZGVyU3R5bGUqIHRvKQogICAg
IC8vIHNldCB0aGUgdHJhbnNmb3JtIGFuaW1hdGlvbiBsaXN0CiAgICAgdmFsaWRhdGVUcmFuc2Zv
cm1GdW5jdGlvbkxpc3QoKTsKICAgICBjaGVja0Zvck1hdGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0
cygpOworI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCisgICAgY2hlY2tGb3JNYXRjaGluZ0Jh
Y2tkcm9wRmlsdGVyRnVuY3Rpb25MaXN0cygpOworI2VuZGlmCiB9CiAKIHZvaWQgSW1wbGljaXRB
bmltYXRpb246OnNldE92ZXJyaWRkZW4oYm9vbCBiKQpAQCAtMjcxLDcgKzI3NCw3IEBAIHZvaWQg
SW1wbGljaXRBbmltYXRpb246OnZhbGlkYXRlVHJhbnNmb3JtRnVuY3Rpb25MaXN0KCkKICAgICBp
ZiAodmFsLT5vcGVyYXRpb25zKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAgICAgICAg
IAotICAgIC8vIEFuIGVtdHB5IHRyYW5zZm9ybSBsaXN0IG1hdGNoZXMgYW55dGhpbmcuCisgICAg
Ly8gQW4gZW1wdHkgdHJhbnNmb3JtIGxpc3QgbWF0Y2hlcyBhbnl0aGluZy4KICAgICBpZiAodmFs
ICE9IHRvVmFsICYmICF0b1ZhbC0+b3BlcmF0aW9ucygpLmlzRW1wdHkoKSAmJiAhdmFsLT5vcGVy
YXRpb25zTWF0Y2goKnRvVmFsKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNzksMjkgKzI4Miw0
MSBAQCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjp2YWxpZGF0ZVRyYW5zZm9ybUZ1bmN0aW9uTGlz
dCgpCiAgICAgbV90cmFuc2Zvcm1GdW5jdGlvbkxpc3RWYWxpZCA9IHRydWU7CiB9CiAKK3N0YXRp
YyBib29sIGZpbHRlck9wZXJhdGlvbnNNYXRjaChjb25zdCBGaWx0ZXJPcGVyYXRpb25zKiBmcm9t
T3BlcmF0aW9ucywgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdG9PcGVyYXRpb25zKQoreworICAg
IGlmIChmcm9tT3BlcmF0aW9ucy0+b3BlcmF0aW9ucygpLmlzRW1wdHkoKSkKKyAgICAgICAgZnJv
bU9wZXJhdGlvbnMgPSAmdG9PcGVyYXRpb25zOworCisgICAgaWYgKGZyb21PcGVyYXRpb25zLT5v
cGVyYXRpb25zKCkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
ZnJvbU9wZXJhdGlvbnMgIT0gJnRvT3BlcmF0aW9ucyAmJiAhdG9PcGVyYXRpb25zLm9wZXJhdGlv
bnMoKS5pc0VtcHR5KCkgJiYgIWZyb21PcGVyYXRpb25zLT5vcGVyYXRpb25zTWF0Y2godG9PcGVy
YXRpb25zKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisK
IHZvaWQgSW1wbGljaXRBbmltYXRpb246OmNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxp
c3RzKCkKIHsKICAgICBtX2ZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaCA9IGZhbHNlOwotICAgIAor
CiAgICAgaWYgKCFtX2Zyb21TdHlsZSB8fCAhbV90b1N0eWxlKQogICAgICAgICByZXR1cm47Ci0g
ICAgICAgIAotICAgIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMqIHZhbCA9ICZtX2Zyb21TdHlsZS0+
ZmlsdGVyKCk7Ci0gICAgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyogdG9WYWwgPSAmbV90b1N0eWxl
LT5maWx0ZXIoKTsKIAotICAgIGlmICh2YWwtPm9wZXJhdGlvbnMoKS5pc0VtcHR5KCkpCi0gICAg
ICAgIHZhbCA9IHRvVmFsOworICAgIG1fZmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoID0gZmlsdGVy
T3BlcmF0aW9uc01hdGNoKCZtX2Zyb21TdHlsZS0+ZmlsdGVyKCksIG1fdG9TdHlsZS0+ZmlsdGVy
KCkpOworfQogCi0gICAgaWYgKHZhbC0+b3BlcmF0aW9ucygpLmlzRW1wdHkoKSkKLSAgICAgICAg
cmV0dXJuOwotICAgICAgICAKLSAgICAvLyBBbiBlbXRweSBmaWx0ZXIgbGlzdCBtYXRjaGVzIGFu
eXRoaW5nLgotICAgIGlmICh2YWwgIT0gdG9WYWwgJiYgIXRvVmFsLT5vcGVyYXRpb25zKCkuaXNF
bXB0eSgpICYmICF2YWwtPm9wZXJhdGlvbnNNYXRjaCgqdG9WYWwpKQorI2lmIEVOQUJMRShGSUxU
RVJTX0xFVkVMXzIpCit2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpjaGVja0Zvck1hdGNoaW5nQmFj
a2Ryb3BGaWx0ZXJGdW5jdGlvbkxpc3RzKCkKK3sKKyAgICBtX2JhY2tkcm9wRmlsdGVyRnVuY3Rp
b25MaXN0c01hdGNoID0gZmFsc2U7CisKKyAgICBpZiAoIW1fZnJvbVN0eWxlIHx8ICFtX3RvU3R5
bGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZpbHRlciBsaXN0cyBtYXRjaC4KLSAgICBt
X2ZpbHRlckZ1bmN0aW9uTGlzdHNNYXRjaCA9IHRydWU7CisgICAgbV9iYWNrZHJvcEZpbHRlckZ1
bmN0aW9uTGlzdHNNYXRjaCA9IGZpbHRlck9wZXJhdGlvbnNNYXRjaCgmbV9mcm9tU3R5bGUtPmJh
Y2tkcm9wRmlsdGVyKCksIG1fdG9TdHlsZS0+YmFja2Ryb3BGaWx0ZXIoKSk7CiB9CisjZW5kaWYK
IAogZG91YmxlIEltcGxpY2l0QW5pbWF0aW9uOjp0aW1lVG9OZXh0U2VydmljZSgpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaAppbmRl
eCBjMzQyNTk3NTc4ZjRmZjVhNTg2NjJhMzhjMjM4MjdiYTFmMGE3OTIzLi5hOWEzMGYxZTI0ZGFm
YTk2YTI0MGIwOTBmODE3ZWE5NjUwNDg1MzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmgKQEAgLTgyLDYgKzgyLDkgQEAgcHJvdGVj
dGVkOgogCiAgICAgdm9pZCB2YWxpZGF0ZVRyYW5zZm9ybUZ1bmN0aW9uTGlzdCgpOwogICAgIHZv
aWQgY2hlY2tGb3JNYXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMoKTsKKyNpZiBFTkFCTEUoRklM
VEVSU19MRVZFTF8yKQorICAgIHZvaWQgY2hlY2tGb3JNYXRjaGluZ0JhY2tkcm9wRmlsdGVyRnVu
Y3Rpb25MaXN0cygpOworI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgSW1wbGljaXRBbmltYXRpb24o
QW5pbWF0aW9uJiwgQ1NTUHJvcGVydHlJRCwgUmVuZGVyRWxlbWVudCosIENvbXBvc2l0ZUFuaW1h
dGlvbiosIFJlbmRlclN0eWxlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKaW5kZXggZTlmYzkwM2U2YWU3ODM5MTg4YTcyZTU0
Yjg3YWNhYTE2NTQwMzZkZi4uMmE5OWM5NjhkNTk4MWI0MjMzYThhYTVkNDJiOGJhNjM0NmZmM2Ji
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmlt
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5p
bWF0aW9uLmNwcApAQCAtNTQsNiArNTQsOSBAQCBLZXlmcmFtZUFuaW1hdGlvbjo6S2V5ZnJhbWVB
bmltYXRpb24oQW5pbWF0aW9uJiBhbmltYXRpb24sIFJlbmRlckVsZW1lbnQqIHJlbmRlcgogICAg
IC8vIFVwZGF0ZSB0aGUgbV90cmFuc2Zvcm1GdW5jdGlvbkxpc3RWYWxpZCBmbGFnIGJhc2VkIG9u
IHdoZXRoZXIgdGhlIGZ1bmN0aW9uIGxpc3RzIGluIHRoZSBrZXlmcmFtZXMgbWF0Y2guCiAgICAg
dmFsaWRhdGVUcmFuc2Zvcm1GdW5jdGlvbkxpc3QoKTsKICAgICBjaGVja0Zvck1hdGNoaW5nRmls
dGVyRnVuY3Rpb25MaXN0cygpOworI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCisgICAgY2hl
Y2tGb3JNYXRjaGluZ0JhY2tkcm9wRmlsdGVyRnVuY3Rpb25MaXN0cygpOworI2VuZGlmCiB9CiAK
IEtleWZyYW1lQW5pbWF0aW9uOjp+S2V5ZnJhbWVBbmltYXRpb24oKQpAQCAtMzk3LDExICs0MDAs
NyBAQCB2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjpjaGVja0Zvck1hdGNoaW5nRmlsdGVyRnVuY3Rp
b25MaXN0cygpCiB7CiAgICAgbV9maWx0ZXJGdW5jdGlvbkxpc3RzTWF0Y2ggPSBmYWxzZTsKIAot
I2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCi0gICAgaWYgKG1fa2V5ZnJhbWVzLnNpemUoKSA8
IDIgfHwgKCFtX2tleWZyYW1lcy5jb250YWluc1Byb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0Rmls
dGVyKSAmJiAhbV9rZXlmcmFtZXMuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEJh
Y2tkcm9wRmlsdGVyKSkpCi0jZWxzZQogICAgIGlmIChtX2tleWZyYW1lcy5zaXplKCkgPCAyIHx8
ICFtX2tleWZyYW1lcy5jb250YWluc1Byb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0RmlsdGVyKSkK
LSNlbmRpZgogICAgICAgICByZXR1cm47CiAKICAgICAvLyBFbXB0eSBmaWx0ZXJzIG1hdGNoIGFu
eXRoaW5nLCBzbyBmaW5kIHRoZSBmaXJzdCBub24tZW1wdHkgZW50cnkgYXMgdGhlIHJlZmVyZW5j
ZQpAQCAtNDA5LDggKzQwOCw3IEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmNoZWNrRm9yTWF0
Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCkKICAgICBzaXplX3QgZmlyc3ROb25FbXB0eUZpbHRl
cktleWZyYW1lSW5kZXggPSBudW1LZXlmcmFtZXM7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG51bUtleWZyYW1lczsgKytpKSB7Ci0gICAgICAgIGNvbnN0IEtleWZyYW1lVmFsdWUmIGN1
cnJlbnRLZXlmcmFtZSA9IG1fa2V5ZnJhbWVzW2ldOwotICAgICAgICBpZiAoY3VycmVudEtleWZy
YW1lLnN0eWxlKCktPmZpbHRlcigpLm9wZXJhdGlvbnMoKS5zaXplKCkpIHsKKyAgICAgICAgaWYg
KG1fa2V5ZnJhbWVzW2ldLnN0eWxlKCktPmZpbHRlcigpLm9wZXJhdGlvbnMoKS5zaXplKCkpIHsK
ICAgICAgICAgICAgIGZpcnN0Tm9uRW1wdHlGaWx0ZXJLZXlmcmFtZUluZGV4ID0gaTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC00MTgsMjQgKzQxNiw2MiBAQCB2b2lkIEtleWZy
YW1lQW5pbWF0aW9uOjpjaGVja0Zvck1hdGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0cygpCiAgICAg
CiAgICAgaWYgKGZpcnN0Tm9uRW1wdHlGaWx0ZXJLZXlmcmFtZUluZGV4ID09IG51bUtleWZyYW1l
cykKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICBjb25zdCBGaWx0ZXJPcGVyYXRpb25z
KiBmaXJzdFZhbCA9ICZtX2tleWZyYW1lc1tmaXJzdE5vbkVtcHR5RmlsdGVyS2V5ZnJhbWVJbmRl
eF0uc3R5bGUoKS0+ZmlsdGVyKCk7CisKKyAgICBhdXRvJiBmaXJzdFZhbCA9IG1fa2V5ZnJhbWVz
W2ZpcnN0Tm9uRW1wdHlGaWx0ZXJLZXlmcmFtZUluZGV4XS5zdHlsZSgpLT5maWx0ZXIoKTsKICAg
ICAKICAgICBmb3IgKHNpemVfdCBpID0gZmlyc3ROb25FbXB0eUZpbHRlcktleWZyYW1lSW5kZXgg
KyAxOyBpIDwgbnVtS2V5ZnJhbWVzOyArK2kpIHsKLSAgICAgICAgY29uc3QgS2V5ZnJhbWVWYWx1
ZSYgY3VycmVudEtleWZyYW1lID0gbV9rZXlmcmFtZXNbaV07Ci0gICAgICAgIGNvbnN0IEZpbHRl
ck9wZXJhdGlvbnMqIHZhbCA9ICZjdXJyZW50S2V5ZnJhbWUuc3R5bGUoKS0+ZmlsdGVyKCk7Ci0g
ICAgICAgIAorICAgICAgICBhdXRvJiB2YWx1ZSA9IG1fa2V5ZnJhbWVzW2ldLnN0eWxlKCktPmZp
bHRlcigpOworCiAgICAgICAgIC8vIEFuIGVtdHB5IGZpbHRlciBsaXN0IG1hdGNoZXMgYW55dGhp
bmcuCi0gICAgICAgIGlmICh2YWwtPm9wZXJhdGlvbnMoKS5pc0VtcHR5KCkpCisgICAgICAgIGlm
ICh2YWx1ZS5vcGVyYXRpb25zKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIAotICAgICAgICBpZiAoIWZpcnN0VmFsLT5vcGVyYXRpb25zTWF0Y2goKnZhbCkpCisK
KyAgICAgICAgaWYgKCFmaXJzdFZhbC5vcGVyYXRpb25zTWF0Y2godmFsdWUpKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgIH0KLSAgICAKKwogICAgIG1fZmlsdGVyRnVuY3Rpb25MaXN0c01hdGNo
ID0gdHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCit2b2lkIEtleWZyYW1l
QW5pbWF0aW9uOjpjaGVja0Zvck1hdGNoaW5nQmFja2Ryb3BGaWx0ZXJGdW5jdGlvbkxpc3RzKCkK
K3sKKyAgICBtX2JhY2tkcm9wRmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoID0gZmFsc2U7CisKKyAg
ICBpZiAobV9rZXlmcmFtZXMuc2l6ZSgpIDwgMiB8fCAhbV9rZXlmcmFtZXMuY29udGFpbnNQcm9w
ZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gRW1wdHkgZmlsdGVycyBtYXRjaCBhbnl0aGluZywgc28gZmluZCB0aGUgZmlyc3Qg
bm9uLWVtcHR5IGVudHJ5IGFzIHRoZSByZWZlcmVuY2UKKyAgICBzaXplX3QgbnVtS2V5ZnJhbWVz
ID0gbV9rZXlmcmFtZXMuc2l6ZSgpOworICAgIHNpemVfdCBmaXJzdE5vbkVtcHR5RmlsdGVyS2V5
ZnJhbWVJbmRleCA9IG51bUtleWZyYW1lczsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bnVtS2V5ZnJhbWVzOyArK2kpIHsKKyAgICAgICAgaWYgKG1fa2V5ZnJhbWVzW2ldLnN0eWxlKCkt
PmJhY2tkcm9wRmlsdGVyKCkub3BlcmF0aW9ucygpLnNpemUoKSkgeworICAgICAgICAgICAgZmly
c3ROb25FbXB0eUZpbHRlcktleWZyYW1lSW5kZXggPSBpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZmlyc3ROb25FbXB0eUZpbHRlcktleWZyYW1lSW5k
ZXggPT0gbnVtS2V5ZnJhbWVzKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBmaXJzdFZh
bCA9IG1fa2V5ZnJhbWVzW2ZpcnN0Tm9uRW1wdHlGaWx0ZXJLZXlmcmFtZUluZGV4XS5zdHlsZSgp
LT5iYWNrZHJvcEZpbHRlcigpOworCisgICAgZm9yIChzaXplX3QgaSA9IGZpcnN0Tm9uRW1wdHlG
aWx0ZXJLZXlmcmFtZUluZGV4ICsgMTsgaSA8IG51bUtleWZyYW1lczsgKytpKSB7CisgICAgICAg
IGF1dG8mIHZhbHVlID0gbV9rZXlmcmFtZXNbaV0uc3R5bGUoKS0+YmFja2Ryb3BGaWx0ZXIoKTsK
KworICAgICAgICAvLyBBbiBlbXRweSBmaWx0ZXIgbGlzdCBtYXRjaGVzIGFueXRoaW5nLgorICAg
ICAgICBpZiAodmFsdWUub3BlcmF0aW9ucygpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgIGlmICghZmlyc3RWYWwub3BlcmF0aW9uc01hdGNoKHZhbHVlKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2JhY2tkcm9wRmlsdGVyRnVuY3Rpb25M
aXN0c01hdGNoID0gdHJ1ZTsKK30KKyNlbmRpZgorCiBkb3VibGUgS2V5ZnJhbWVBbmltYXRpb246
OnRpbWVUb05leHRTZXJ2aWNlKCkKIHsKICAgICBkb3VibGUgdCA9IEFuaW1hdGlvbkJhc2U6OnRp
bWVUb05leHRTZXJ2aWNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
S2V5ZnJhbWVBbmltYXRpb24uaAppbmRleCAzMjg0MDRiNWJhNjhlZDVlODc3MjI5NmE5ODVhNDZj
NmIwYTk4MjMyLi5mNzAwZWFmMzg0YjJkZDIyNzdmOTM3NTIyYzI1MGZjY2Y1ZDYwOTZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmgK
QEAgLTg1LDYgKzg1LDkgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCB2YWxpZGF0ZVRyYW5zZm9y
bUZ1bmN0aW9uTGlzdCgpOwogICAgIHZvaWQgY2hlY2tGb3JNYXRjaGluZ0ZpbHRlckZ1bmN0aW9u
TGlzdHMoKTsKKyNpZiBFTkFCTEUoRklMVEVSU19MRVZFTF8yKQorICAgIHZvaWQgY2hlY2tGb3JN
YXRjaGluZ0JhY2tkcm9wRmlsdGVyRnVuY3Rpb25MaXN0cygpOworI2VuZGlmCiAKIHByaXZhdGU6
CiAgICAgS2V5ZnJhbWVBbmltYXRpb24oQW5pbWF0aW9uJiwgUmVuZGVyRWxlbWVudCosIGludCBp
bmRleCwgQ29tcG9zaXRlQW5pbWF0aW9uKiwgUmVuZGVyU3R5bGUqIHVuYW5pbWF0ZWRTdHlsZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwCmluZGV4IGI4M2ZmMmJjZmRlYmU3OGNmM2YwZDQzYTFiNmIyZTQ4OWVjMTRmZTAuLjFmN2Q3
OTk4YzRlN2MwNTA3OTZiZTAwZjI5MGFiYWQ4ZmFlM2YxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC01MDksNyArNTA5
LDExIEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVyT3BlcmF0
aW9uc0F0KGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0CiAKIGludCBHcmFwaGljc0xheWVyOjp2YWxp
ZGF0ZUZpbHRlck9wZXJhdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCkK
IHsKKyNpZiBFTkFCTEUoRklMVEVSU19MRVZFTF8yKQorICAgIEFTU0VSVCh2YWx1ZUxpc3QucHJv
cGVydHkoKSA9PSBBbmltYXRlZFByb3BlcnR5V2Via2l0RmlsdGVyIHx8IHZhbHVlTGlzdC5wcm9w
ZXJ0eSgpID09IEFuaW1hdGVkUHJvcGVydHlXZWJraXRCYWNrZHJvcEZpbHRlcik7CisjZWxzZQog
ICAgIEFTU0VSVCh2YWx1ZUxpc3QucHJvcGVydHkoKSA9PSBBbmltYXRlZFByb3BlcnR5V2Via2l0
RmlsdGVyKTsKKyNlbmRpZgogCiAgICAgaWYgKHZhbHVlTGlzdC5zaXplKCkgPCAyKQogICAgICAg
ICByZXR1cm4gLTE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyQ2xpZW50LmgKaW5kZXggNzRmNzFjZTg3MDI4MWFmMzJhMTVlNjY0YjFj
MjY5ZThkM2MwYjBjNy4uNDIyYWIxMTE4MGI2NzlkMWFjMDYwMDllODI3MWRhMjg2NGUzYWViNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXJDbGllbnQuaApAQCAtNTYsNiArNTYsOSBAQCBlbnVtIEFuaW1hdGVkUHJvcGVydHlJRCB7
CiAgICAgQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHksCiAgICAgQW5pbWF0ZWRQcm9wZXJ0eUJhY2tn
cm91bmRDb2xvciwKICAgICBBbmltYXRlZFByb3BlcnR5V2Via2l0RmlsdGVyCisjaWYgRU5BQkxF
KEZJTFRFUlNfTEVWRUxfMikKKyAgICAsIEFuaW1hdGVkUHJvcGVydHlXZWJraXRCYWNrZHJvcEZp
bHRlcgorI2VuZGlmCiB9OwogCiBlbnVtIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yRmxhZ3Mgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAKaW5kZXggYzY5NTE5NzMyOTI0NTZlM2ZiNzAwYjdiODY5M2Y0NjczYjViNzYw
OC4uZjYyMDY4Y2Q3MWUxNmI5MjZkZmJjYTAzN2RhMmVmOGM1MWZkMjQ2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwCkBAIC0yMjksMjIgKzIyOSwyNiBAQCBzdGF0aWMgUGxhdGZvcm1DQUFuaW1hdGlvbjo6VmFs
dWVGdW5jdGlvblR5cGUgZ2V0VmFsdWVGdW5jdGlvbk5hbWVGb3JUcmFuc2Zvcm1PcAogICAgIH0K
IH0KIAotc3RhdGljIFN0cmluZyBwcm9wZXJ0eUlkVG9TdHJpbmcoQW5pbWF0ZWRQcm9wZXJ0eUlE
IHByb3BlcnR5KQorc3RhdGljIEFTQ0lJTGl0ZXJhbCBwcm9wZXJ0eUlkVG9TdHJpbmcoQW5pbWF0
ZWRQcm9wZXJ0eUlEIHByb3BlcnR5KQogewogICAgIHN3aXRjaCAocHJvcGVydHkpIHsKICAgICBj
YXNlIEFuaW1hdGVkUHJvcGVydHlUcmFuc2Zvcm06Ci0gICAgICAgIHJldHVybiAidHJhbnNmb3Jt
IjsKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidHJhbnNmb3JtIik7CiAgICAgY2FzZSBB
bmltYXRlZFByb3BlcnR5T3BhY2l0eToKLSAgICAgICAgcmV0dXJuICJvcGFjaXR5IjsKKyAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgib3BhY2l0eSIpOwogICAgIGNhc2UgQW5pbWF0ZWRQcm9w
ZXJ0eUJhY2tncm91bmRDb2xvcjoKLSAgICAgICAgcmV0dXJuICJiYWNrZ3JvdW5kQ29sb3IiOwor
ICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJiYWNrZ3JvdW5kQ29sb3IiKTsKICAgICBjYXNl
IEFuaW1hdGVkUHJvcGVydHlXZWJraXRGaWx0ZXI6Ci0gICAgICAgIHJldHVybiAiZmlsdGVycyI7
CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImZpbHRlcnMiKTsKKyNpZiBFTkFCTEUoRklM
VEVSU19MRVZFTF8yKQorICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmls
dGVyOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJiYWNrZHJvcEZpbHRlcnMiKTsKKyNl
bmRpZgogICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eUludmFsaWQ6CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gIiI7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiIik7CiB9CiAKIHN0YXRpYyBTdHJpbmcg
YW5pbWF0aW9uSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIEFuaW1hdGVk
UHJvcGVydHlJRCBwcm9wZXJ0eSwgaW50IGluZGV4LCBpbnQgc3ViSW5kZXgpCkBAIC04ODUsNiAr
ODg5LDEyIEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjphZGRBbmltYXRpb24oY29uc3QgS2V5ZnJh
bWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgRmxvCiAgICAgICAgIGlmIChzdXBwb3J0c0Fj
Y2VsZXJhdGVkRmlsdGVyQW5pbWF0aW9ucygpKQogICAgICAgICAgICAgY3JlYXRlZEFuaW1hdGlv
bnMgPSBjcmVhdGVGaWx0ZXJBbmltYXRpb25zRnJvbUtleWZyYW1lcyh2YWx1ZUxpc3QsIGFuaW0s
IGFuaW1hdGlvbk5hbWUsIHRpbWVPZmZzZXQpOwogICAgIH0KKyNpZiBFTkFCTEUoRklMVEVSU19M
RVZFTF8yKQorICAgIGVsc2UgaWYgKHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09IEFuaW1hdGVkUHJv
cGVydHlXZWJraXRCYWNrZHJvcEZpbHRlcikgeworICAgICAgICBpZiAoc3VwcG9ydHNBY2NlbGVy
YXRlZEZpbHRlckFuaW1hdGlvbnMoKSkKKyAgICAgICAgICAgIGNyZWF0ZWRBbmltYXRpb25zID0g
Y3JlYXRlRmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXModmFsdWVMaXN0LCBhbmltLCBhbmlt
YXRpb25OYW1lLCB0aW1lT2Zmc2V0KTsKKyAgICB9CisjZW5kaWYKICAgICBlbHNlCiAgICAgICAg
IGNyZWF0ZWRBbmltYXRpb25zID0gY3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1lcyh2YWx1ZUxp
c3QsIGFuaW0sIGFuaW1hdGlvbk5hbWUsIHRpbWVPZmZzZXQpOwogCkBAIC0yNDYyLDcgKzI0NzIs
NiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQW5pbWF0aW9ucygpCiAgICAgICAgICAg
ICAgICAgVmVjdG9yPExheWVyUHJvcGVydHlBbmltYXRpb24+IGFuaW1hdGlvbnM7CiAgICAgICAg
ICAgICAgICAgYW5pbWF0aW9ucy5hcHBlbmQocGVuZGluZ0FuaW1hdGlvbik7CiAgICAgICAgICAg
ICAgICAgbV9ydW5uaW5nQW5pbWF0aW9ucy5hZGQocGVuZGluZ0FuaW1hdGlvbi5tX25hbWUsIGFu
aW1hdGlvbnMpOwotCiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIFZlY3Rv
cjxMYXllclByb3BlcnR5QW5pbWF0aW9uPiYgYW5pbWF0aW9ucyA9IGl0LT52YWx1ZTsKICAgICAg
ICAgICAgICAgICBhbmltYXRpb25zLmFwcGVuZChwZW5kaW5nQW5pbWF0aW9uKTsKQEAgLTI3Mzgs
NyArMjc0NywxMSBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1pdHRlZEFu
aW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbAogCiBib29sIEdyYXBoaWNzTGF5
ZXJDQTo6Y3JlYXRlRmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVW
YWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIGNvbnN0IFN0
cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWVPZmZzZXQpCiB7CisjaWYgRU5BQkxFKEZJ
TFRFUlNfTEVWRUxfMikKKyAgICBBU1NFUlQodmFsdWVMaXN0LnByb3BlcnR5KCkgPT0gQW5pbWF0
ZWRQcm9wZXJ0eVdlYmtpdEZpbHRlciB8fCB2YWx1ZUxpc3QucHJvcGVydHkoKSA9PSBBbmltYXRl
ZFByb3BlcnR5V2Via2l0QmFja2Ryb3BGaWx0ZXIpOworI2Vsc2UKICAgICBBU1NFUlQodmFsdWVM
aXN0LnByb3BlcnR5KCkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZpbHRlcik7CisjZW5kaWYK
IAogICAgIGludCBsaXN0SW5kZXggPSB2YWxpZGF0ZUZpbHRlck9wZXJhdGlvbnModmFsdWVMaXN0
KTsKICAgICBpZiAobGlzdEluZGV4IDwgMCkKQEAgLTMxMzAsNyArMzE0MywxNyBAQCBQbGF0Zm9y
bUNBTGF5ZXIqIEdyYXBoaWNzTGF5ZXJDQTo6bGF5ZXJGb3JTdXBlcmxheWVyKCkgY29uc3QKIAog
UGxhdGZvcm1DQUxheWVyKiBHcmFwaGljc0xheWVyQ0E6OmFuaW1hdGVkTGF5ZXIoQW5pbWF0ZWRQ
cm9wZXJ0eUlEIHByb3BlcnR5KSBjb25zdAogewotICAgIHJldHVybiAocHJvcGVydHkgPT0gQW5p
bWF0ZWRQcm9wZXJ0eUJhY2tncm91bmRDb2xvcikgPyBtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkgOiBw
cmltYXJ5TGF5ZXIoKTsKKyAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CisgICAgY2FzZSBBbmltYXRl
ZFByb3BlcnR5QmFja2dyb3VuZENvbG9yOgorICAgICAgICByZXR1cm4gbV9jb250ZW50c0xheWVy
LmdldCgpOworI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCisgICAgY2FzZSBBbmltYXRlZFBy
b3BlcnR5V2Via2l0QmFja2Ryb3BGaWx0ZXI6CisgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgYmUg
anVzdCBtX2JhY2tkcm9wTGF5ZXIuZ2V0KCkuIEFsc28sIGFkZCBhbiBBU1NFUlQobV9iYWNrZHJv
cExheWVyKSBoZXJlIHdoZW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0NTMyMiBpcyBmaXhlZC4KKyAgICAgICAgcmV0dXJuIG1fYmFja2Ryb3BMYXllciA/IG1fYmFj
a2Ryb3BMYXllci5nZXQoKSA6IHByaW1hcnlMYXllcigpOworI2VuZGlmCisgICAgZGVmYXVsdDoK
KyAgICAgICAgcmV0dXJuIHByaW1hcnlMYXllcigpOworICAgIH0KIH0KIAogR3JhcGhpY3NMYXll
ckNBOjpMYXllck1hcCogR3JhcGhpY3NMYXllckNBOjphbmltYXRlZExheWVyQ2xvbmVzKEFuaW1h
dGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggNWI4M2Y0ZGQwMTNhOGE4MGIwNTFkZjc4
NTE0ZDk1MzU1NGZhYzMwMy4uY2QxMTIxOTdkMzIzNzEwNGFjMGU3YmJmYWMzYmYxNzc1ZDI5ZTVi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKQEAgLTI0NTUsMTIgKzI0NTUsMjAgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0
QW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25zdCBBbmltYXRpb24qIGFuaW0KICAgICBi
b29sIGhhc1RyYW5zZm9ybSA9IHJlbmRlcmVyKCkuaXNCb3goKSAmJiBrZXlmcmFtZXMuY29udGFp
bnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVRyYW5zZm9ybSk7CiAgICAgYm9vbCBoYXNGaWx0ZXIgPSBr
ZXlmcmFtZXMuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcik7CiAKLSAg
ICBpZiAoIWhhc09wYWNpdHkgJiYgIWhhc1RyYW5zZm9ybSAmJiAhaGFzRmlsdGVyKQorICAgIGJv
b2wgaGFzQmFja2Ryb3BGaWx0ZXIgPSBmYWxzZTsKKyNpZiBFTkFCTEUoRklMVEVSU19MRVZFTF8y
KQorICAgIGhhc0JhY2tkcm9wRmlsdGVyID0ga2V5ZnJhbWVzLmNvbnRhaW5zUHJvcGVydHkoQ1NT
UHJvcGVydHlXZWJraXRCYWNrZHJvcEZpbHRlcik7CisjZW5kaWYKKworICAgIGlmICghaGFzT3Bh
Y2l0eSAmJiAhaGFzVHJhbnNmb3JtICYmICFoYXNGaWx0ZXIgJiYgIWhhc0JhY2tkcm9wRmlsdGVy
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICBLZXlmcmFtZVZhbHVlTGlzdCB0
cmFuc2Zvcm1WZWN0b3IoQW5pbWF0ZWRQcm9wZXJ0eVRyYW5zZm9ybSk7CiAgICAgS2V5ZnJhbWVW
YWx1ZUxpc3Qgb3BhY2l0eVZlY3RvcihBbmltYXRlZFByb3BlcnR5T3BhY2l0eSk7CiAgICAgS2V5
ZnJhbWVWYWx1ZUxpc3QgZmlsdGVyVmVjdG9yKEFuaW1hdGVkUHJvcGVydHlXZWJraXRGaWx0ZXIp
OworI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCisgICAgS2V5ZnJhbWVWYWx1ZUxpc3QgYmFj
a2Ryb3BGaWx0ZXJWZWN0b3IoQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyKTsK
KyNlbmRpZgogCiAgICAgc2l6ZV90IG51bUtleWZyYW1lcyA9IGtleWZyYW1lcy5zaXplKCk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1LZXlmcmFtZXM7ICsraSkgewpAQCAtMjQ4Miw2
ICsyNDkwLDExIEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlvbihkb3Vi
bGUgdGltZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmltCiAKICAgICAgICAgaWYgKChoYXNG
aWx0ZXIgJiYgaXNGaXJzdE9yTGFzdEtleWZyYW1lKSB8fCBjdXJyZW50S2V5ZnJhbWUuY29udGFp
bnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcikpCiAgICAgICAgICAgICBmaWx0ZXJW
ZWN0b3IuaW5zZXJ0KHN0ZDo6bWFrZV91bmlxdWU8RmlsdGVyQW5pbWF0aW9uVmFsdWU+KGtleSwg
a2V5ZnJhbWVTdHlsZS0+ZmlsdGVyKCksIHRmKSk7CisKKyNpZiBFTkFCTEUoRklMVEVSU19MRVZF
TF8yKQorICAgICAgICBpZiAoKGhhc0JhY2tkcm9wRmlsdGVyICYmIGlzRmlyc3RPckxhc3RLZXlm
cmFtZSkgfHwgY3VycmVudEtleWZyYW1lLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJr
aXRCYWNrZHJvcEZpbHRlcikpCisgICAgICAgICAgICBiYWNrZHJvcEZpbHRlclZlY3Rvci5pbnNl
cnQoc3RkOjptYWtlX3VuaXF1ZTxGaWx0ZXJBbmltYXRpb25WYWx1ZT4oa2V5LCBrZXlmcmFtZVN0
eWxlLT5iYWNrZHJvcEZpbHRlcigpLCB0ZikpOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKHJl
bmRlcmVyKCkuZnJhbWUoKS5wYWdlKCkgJiYgIXJlbmRlcmVyKCkuZnJhbWUoKS5wYWdlKCktPnNl
dHRpbmdzKCkuYWNjZWxlcmF0ZWRDb21wb3NpdGVkQW5pbWF0aW9uc0VuYWJsZWQoKSkKQEAgLTI0
OTgsNiArMjUxMSwxMSBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24o
ZG91YmxlIHRpbWVPZmZzZXQsIGNvbnN0IEFuaW1hdGlvbiogYW5pbQogICAgIGlmIChoYXNGaWx0
ZXIgJiYgbV9ncmFwaGljc0xheWVyLT5hZGRBbmltYXRpb24oZmlsdGVyVmVjdG9yLCBJbnRTaXpl
KCksIGFuaW0sIGtleWZyYW1lcy5hbmltYXRpb25OYW1lKCksIHRpbWVPZmZzZXQpKQogICAgICAg
ICBkaWRBbmltYXRlID0gdHJ1ZTsKIAorI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCisgICAg
aWYgKGhhc0JhY2tkcm9wRmlsdGVyICYmIG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKGJh
Y2tkcm9wRmlsdGVyVmVjdG9yLCBJbnRTaXplKCksIGFuaW0sIGtleWZyYW1lcy5hbmltYXRpb25O
YW1lKCksIHRpbWVPZmZzZXQpKQorICAgICAgICBkaWRBbmltYXRlID0gdHJ1ZTsKKyNlbmRpZgor
CiAgICAgcmV0dXJuIGRpZEFuaW1hdGU7CiB9CiAKQEAgLTI1NjAsNiArMjU3OCwyMiBAQCBib29s
IFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBD
U1NQcm9wZXJ0eUlEIHByb3BlcgogICAgICAgICB9CiAgICAgfQogCisjaWYgRU5BQkxFKEZJTFRF
UlNfTEVWRUxfMikKKyAgICBpZiAocHJvcGVydHkgPT0gQ1NTUHJvcGVydHlXZWJraXRCYWNrZHJv
cEZpbHRlciAmJiBtX293bmluZ0xheWVyLmhhc0JhY2tkcm9wRmlsdGVyKCkpIHsKKyAgICAgICAg
Y29uc3QgQW5pbWF0aW9uKiBiYWNrZHJvcEZpbHRlckFuaW0gPSB0b1N0eWxlLT50cmFuc2l0aW9u
Rm9yUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRCYWNrZHJvcEZpbHRlcik7CisgICAgICAgIGlm
IChiYWNrZHJvcEZpbHRlckFuaW0gJiYgIWJhY2tkcm9wRmlsdGVyQW5pbS0+aXNFbXB0eU9yWmVy
b0R1cmF0aW9uKCkpIHsKKyAgICAgICAgICAgIEtleWZyYW1lVmFsdWVMaXN0IGJhY2tkcm9wRmls
dGVyVmVjdG9yKEFuaW1hdGVkUHJvcGVydHlXZWJraXRCYWNrZHJvcEZpbHRlcik7CisgICAgICAg
ICAgICBiYWNrZHJvcEZpbHRlclZlY3Rvci5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxGaWx0ZXJB
bmltYXRpb25WYWx1ZT4oMCwgZnJvbVN0eWxlLT5iYWNrZHJvcEZpbHRlcigpKSk7CisgICAgICAg
ICAgICBiYWNrZHJvcEZpbHRlclZlY3Rvci5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxGaWx0ZXJB
bmltYXRpb25WYWx1ZT4oMSwgdG9TdHlsZS0+YmFja2Ryb3BGaWx0ZXIoKSkpOworICAgICAgICAg
ICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKGJhY2tkcm9wRmlsdGVyVmVjdG9y
LCBGbG9hdFNpemUoKSwgYmFja2Ryb3BGaWx0ZXJBbmltLCBHcmFwaGljc0xheWVyOjphbmltYXRp
b25OYW1lRm9yVHJhbnNpdGlvbihBbmltYXRlZFByb3BlcnR5V2Via2l0QmFja2Ryb3BGaWx0ZXIp
LCB0aW1lT2Zmc2V0KSkgeworICAgICAgICAgICAgICAgIC8vIFRvIGVuc3VyZSB0aGF0IHRoZSBj
b3JyZWN0IGJhY2tkcm9wIGZpbHRlciBpcyB2aXNpYmxlIHdoZW4gdGhlIGFuaW1hdGlvbiBlbmRz
LCBhbHNvIHNldCB0aGUgZmluYWwgYmFja2Ryb3AgZmlsdGVyLgorICAgICAgICAgICAgICAgIHVw
ZGF0ZUJhY2tkcm9wRmlsdGVycygqdG9TdHlsZSk7CisgICAgICAgICAgICAgICAgZGlkQW5pbWF0
ZSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKwogICAg
IHJldHVybiBkaWRBbmltYXRlOwogfQogCkBAIC0yNjQ3LDYgKzI2ODEsMTEgQEAgQ1NTUHJvcGVy
dHlJRCBSZW5kZXJMYXllckJhY2tpbmc6OmdyYXBoaWNzTGF5ZXJUb0NTU1Byb3BlcnR5KEFuaW1h
dGVkUHJvcGVydHlJRAogICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZpbHRlcjoKICAg
ICAgICAgY3NzUHJvcGVydHkgPSBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcjsKICAgICAgICAgYnJl
YWs7CisjaWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKKyAgICBjYXNlIEFuaW1hdGVkUHJvcGVy
dHlXZWJraXRCYWNrZHJvcEZpbHRlcjoKKyAgICAgICAgY3NzUHJvcGVydHkgPSBDU1NQcm9wZXJ0
eVdlYmtpdEJhY2tkcm9wRmlsdGVyOworICAgICAgICBicmVhazsKKyNlbmRpZgogICAgIGNhc2Ug
QW5pbWF0ZWRQcm9wZXJ0eUludmFsaWQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIH0KQEAgLTI2NjQsNiArMjcwMywxMCBAQCBBbmltYXRlZFByb3BlcnR5SUQgUmVuZGVyTGF5
ZXJCYWNraW5nOjpjc3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eShDU1NQcm9wZXJ0eUlECiAgICAg
ICAgIHJldHVybiBBbmltYXRlZFByb3BlcnR5QmFja2dyb3VuZENvbG9yOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRGaWx0ZXI6CiAgICAgICAgIHJldHVybiBBbmltYXRlZFByb3BlcnR5V2Vi
a2l0RmlsdGVyOworI2lmIEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCisgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyOgorICAgICAgICByZXR1cm4gQW5pbWF0ZWRQcm9wZXJ0
eVdlYmtpdEJhY2tkcm9wRmlsdGVyOworI2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8g
SXQncyBmaW5lIGlmIHdlIHNlZSBvdGhlciBjc3MgcHJvcGVydGllcyBoZXJlOyB0aGV5IGFyZSBq
dXN0IG5vdCBhY2NlbGVyYXRlZC4KICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDgzZDVkMmVhNWM5
OGI1MTJiZDJkZGJkZWYyYzAxNzE0MDVjZWRiYWUuLjMxNGE5NjdlNDEzY2FmM2Y1OTQyYjQ0Y2Zk
ZmFmMmU4YWVmMjVhNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNTc0LDYgKzI1NzQsOSBAQCBib29sIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvckFuaW1hdGlvbihSZW5kZXJMYXll
ck1vZGVsT2JqZQogICAgIHJldHVybiAoYW5pbUNvbnRyb2xsZXIuaXNSdW5uaW5nQW5pbWF0aW9u
T25SZW5kZXJlcihyZW5kZXJlciwgQ1NTUHJvcGVydHlPcGFjaXR5LCBhY3RpdmVBbmltYXRpb25T
dGF0ZSkKICAgICAgICAgICAgICYmIChpbkNvbXBvc2l0aW5nTW9kZSgpIHx8IChtX2NvbXBvc2l0
aW5nVHJpZ2dlcnMgJiBDaHJvbWVDbGllbnQ6OkFuaW1hdGVkT3BhY2l0eVRyaWdnZXIpKSkKICAg
ICAgICAgICAgIHx8IGFuaW1Db250cm9sbGVyLmlzUnVubmluZ0FuaW1hdGlvbk9uUmVuZGVyZXIo
cmVuZGVyZXIsIENTU1Byb3BlcnR5V2Via2l0RmlsdGVyLCBhY3RpdmVBbmltYXRpb25TdGF0ZSkK
KyNpZiBFTkFCTEUoRklMVEVSU19MRVZFTF8yKQorICAgICAgICAgICAgfHwgYW5pbUNvbnRyb2xs
ZXIuaXNSdW5uaW5nQW5pbWF0aW9uT25SZW5kZXJlcihyZW5kZXJlciwgQ1NTUHJvcGVydHlXZWJr
aXRCYWNrZHJvcEZpbHRlciwgYWN0aXZlQW5pbWF0aW9uU3RhdGUpCisjZW5kaWYKICAgICAgICAg
ICAgIHx8IGFuaW1Db250cm9sbGVyLmlzUnVubmluZ0FuaW1hdGlvbk9uUmVuZGVyZXIocmVuZGVy
ZXIsIENTU1Byb3BlcnR5VHJhbnNmb3JtLCBhY3RpdmVBbmltYXRpb25TdGF0ZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA3YmJhNTdiNDZiNGMyMGExMDBiOGVlZDExY2RmMWI3NzdjODlhZjMzLi5iNzk0ODc1YmM1
Y2VkZDhiZTYxNDQxNGI3N2IwNDk3MzBlODVhYjBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTUtMDUtMjYgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIEJhY2tk
cm9wIGZpbHRlcnMgZG9uJ3QgYW5pbWF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1Mzg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMTExMDAz
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIGEg
dGVzdCBmb3IgYW5pbWF0aW9uIG9mIGJhY2tkcm9wLWZpbHRlciwgYW5kIGRvIHNvbWUKKyAgICAg
ICAgbWlub3IgY2xlYW51cHMgaW4gcmVsYXRlZCBmaWxlcy4KKworICAgICAgICAqIGFuaW1hdGlv
bnMvcmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanM6CisgICAgICAgIChwYXJzZUZp
bHRlckltYWdlKTogRml4IGEgdHlwby4KKyAgICAgICAgKGdldFByb3BlcnR5VmFsdWUpOiBTdXBw
b3J0IHdlYmtpdEJhY2tkcm9wRmlsdGVyLgorICAgICAgICAoY29tcGFyZVByb3BlcnR5VmFsdWUp
OiBEaXR0by4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvYmFja2Ryb3AvYW5pbWF0aW9uLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2JhY2tkcm9wL2FuaW1hdGlv
bi5odG1sOiBBZGRlZC4KKwogMjAxNS0wNS0yNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KIAogICAgICAgICBbRVM2XSBJbXBsZW1lbnQgQXJyYXkucHJvdG90eXBlLmNv
cHlXaXRoaW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzb3VyY2VzL2Fu
aW1hdGlvbi10ZXN0LWhlbHBlcnMuanMgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3Jlc291cmNl
cy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzCmluZGV4IDNmYTlkNWMzYzZhYjc5MzNhOTY2NTQ0
YTNmMTUzN2E5NjY0MDNiNWMuLjA0YWYxMjEwNWU1ZjM4Y2YxYTQ1NGE4MmQwNjk5OTkwMTZhYmU3
MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzb3VyY2VzL2FuaW1hdGlv
bi10ZXN0LWhlbHBlcnMuanMKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9yZXNvdXJjZXMv
YW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcwpAQCAtMTI2LDE5ICsxMjYsMTkgQEAgZnVuY3Rpb24g
cGFyc2VGaWx0ZXJJbWFnZShzKQogICAgIC8vIFNlcGFyYXRlIGltYWdlIHZhbHVlIGZyb20gZmls
dGVyIGZ1bmN0aW9uIGxpc3QuCiAgICAgdmFyIG1hdGNoZXMgPSBzLm1hdGNoKCIoW1xcLVxcd10r
XFwoLipcXCkpXFxzKixcXHMqKC4qKVxccyoiKTsKICAgICBpZiAoIW1hdGNoZXMpIHsKLSAgICAg
ICAgY29uc29sZS5lcnJvcigiUGFyc2luZyBlcnJvciBvbiAnZml0bGVyKCknICIsIHMpOworICAg
ICAgICBjb25zb2xlLmVycm9yKCJQYXJzaW5nIGVycm9yIG9uICdmaWx0ZXIoKScgIiwgcyk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICB2YXIgaW1hZ2UgPSBwYXJzZUNTU0lt
YWdlKG1hdGNoZXNbMV0pOwogICAgIGlmICghaW1hZ2UpIHsKLSAgICAgICAgY29uc29sZS5lcnJv
cigiUGFyc2luZyBlcnJvciBvbiBpbWFnZSBwYXNzZWQgdG8gJ2ZpdGxlcigpJyAiLCBzKTsKKyAg
ICAgICAgY29uc29sZS5lcnJvcigiUGFyc2luZyBlcnJvciBvbiBpbWFnZSBwYXNzZWQgdG8gJ2Zp
bHRlcigpJyAiLCBzKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHZhciBm
aWx0ZXJGdW5jdGlvbkxpc3QgPSBwYXJzZUZpbHRlckZ1bmN0aW9uTGlzdChtYXRjaGVzWzJdKTsK
ICAgICBpZiAoIWZpbHRlckZ1bmN0aW9uTGlzdCkgewotICAgICAgICBjb25zb2xlLmVycm9yKCJQ
YXJzaW5nIGVycm9yIG9uIGZpbHRlciBmdW5jdGlvbiBsaXN0IHBhc3NlZCB0byAnZml0bGVyKCkn
ICIsIHMpOworICAgICAgICBjb25zb2xlLmVycm9yKCJQYXJzaW5nIGVycm9yIG9uIGZpbHRlciBm
dW5jdGlvbiBsaXN0IHBhc3NlZCB0byAnZmlsdGVyKCknICIsIHMpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCkBAIC0zOTUsNiArMzk1LDcgQEAgZnVuY3Rpb24gZ2V0UHJvcGVydHlW
YWx1ZShwcm9wZXJ0eSwgZWxlbWVudElkLCBpZnJhbWVJZCkKICAgICAgICAgICAgICAgIHx8IHBy
b3BlcnR5ID09ICJ3ZWJraXRNYXNrSW1hZ2UiCiAgICAgICAgICAgICAgICB8fCBwcm9wZXJ0eSA9
PSAid2Via2l0TWFza0JveEltYWdlIgogICAgICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0gIndl
YmtpdEZpbHRlciIKKyAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRCYWNrZHJv
cEZpbHRlciIKICAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRDbGlwUGF0aCIK
ICAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRTaGFwZUluc2lkZSIKICAgICAg
ICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRTaGFwZU91dHNpZGUiCkBAIC00MjYsNyAr
NDI3LDcgQEAgZnVuY3Rpb24gY29tcGFyZVByb3BlcnR5VmFsdWUocHJvcGVydHksIGNvbXB1dGVk
VmFsdWUsIGV4cGVjdGVkVmFsdWUsIHRvbGVyYW5jZSkKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09
ICJ3ZWJraXRGaWx0ZXIiKSB7CisgICAgfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSAid2Via2l0Rmls
dGVyIiB8fCBwcm9wZXJ0eSA9PSAid2Via2l0QmFja2Ryb3BGaWx0ZXIiKSB7CiAgICAgICAgIHZh
ciBmaWx0ZXJQYXJhbWV0ZXJzID0gcGFyc2VGaWx0ZXJGdW5jdGlvbkxpc3QoY29tcHV0ZWRWYWx1
ZSk7CiAgICAgICAgIHZhciBmaWx0ZXIyUGFyYW1ldGVycyA9IHBhcnNlRmlsdGVyRnVuY3Rpb25M
aXN0KGV4cGVjdGVkVmFsdWUpOwogICAgICAgICByZXN1bHQgPSBjb21wYXJlRmlsdGVyRnVuY3Rp
b25zKGZpbHRlclBhcmFtZXRlcnMsIGZpbHRlcjJQYXJhbWV0ZXJzLCB0b2xlcmFuY2UpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2JhY2tkcm9wL2FuaW1hdGlvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvYmFja2Ryb3AvYW5pbWF0aW9uLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTBmY2Q2ZTE1Zjg5ODNmYWIyY2NlODE3YmM1NTAxNzE2
NTlmYzk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2JhY2tk
cm9wL2FuaW1hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorICAgICAgICAKK1BB
U1MgLSAid2Via2l0QmFja2Ryb3BGaWx0ZXIiIHByb3BlcnR5IGZvciAiZ3JheXNjYWxlLWJveCIg
ZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiBncmF5c2NhbGUoMC41KQorUEFT
UyAtICJ3ZWJraXRCYWNrZHJvcEZpbHRlciIgcHJvcGVydHkgZm9yICJzZXBpYS1ib3giIGVsZW1l
bnQgYXQgMXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogc2VwaWEoMC41KQorUEFTUyAtICJ3ZWJr
aXRCYWNrZHJvcEZpbHRlciIgcHJvcGVydHkgZm9yICJzYXR1cmF0ZS1ib3giIGVsZW1lbnQgYXQg
MXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogc2F0dXJhdGUoMC41KQorUEFTUyAtICJ3ZWJraXRC
YWNrZHJvcEZpbHRlciIgcHJvcGVydHkgZm9yICJodWVyb3RhdGUtYm94IiBlbGVtZW50IGF0IDFz
IHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IGh1ZS1yb3RhdGUoOTBkZWcpCitQQVNTIC0gIndlYmtp
dEJhY2tkcm9wRmlsdGVyIiBwcm9wZXJ0eSBmb3IgImludmVydC1ib3giIGVsZW1lbnQgYXQgMXMg
c2F3IHNvbWV0aGluZyBjbG9zZSB0bzogaW52ZXJ0KDAuNSkKK1BBU1MgLSAid2Via2l0QmFja2Ry
b3BGaWx0ZXIiIHByb3BlcnR5IGZvciAib3BhY2l0eS1ib3giIGVsZW1lbnQgYXQgMXMgc2F3IHNv
bWV0aGluZyBjbG9zZSB0bzogb3BhY2l0eSgwLjUpCitQQVNTIC0gIndlYmtpdEJhY2tkcm9wRmls
dGVyIiBwcm9wZXJ0eSBmb3IgImJyaWdodG5lc3MtYm94IiBlbGVtZW50IGF0IDFzIHNhdyBzb21l
dGhpbmcgY2xvc2UgdG86IGJyaWdodG5lc3MoMC41KQorUEFTUyAtICJ3ZWJraXRCYWNrZHJvcEZp
bHRlciIgcHJvcGVydHkgZm9yICJjb250cmFzdC1ib3giIGVsZW1lbnQgYXQgMXMgc2F3IHNvbWV0
aGluZyBjbG9zZSB0bzogY29udHJhc3QoMC41KQorUEFTUyAtICJ3ZWJraXRCYWNrZHJvcEZpbHRl
ciIgcHJvcGVydHkgZm9yICJibHVyLWJveCIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNs
b3NlIHRvOiBibHVyKDEwcHgpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVy
cy9iYWNrZHJvcC9hbmltYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9iYWNr
ZHJvcC9hbmltYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTFjNTM0ZmRkY2M5NWUzYjRkNzdiOWFi
ZjZhNmVmNzNiODQ4YWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0
ZXJzL2JhY2tkcm9wL2FuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsMTQ4IEBACis8IURPQ1RZUEUg
aHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgIC5iZyB7CisgICAgICAgIGhl
aWdodDogMTAwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgbWFyZ2luOiAxMHB4
OworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6
IHVybCgnLi4vcmVzb3VyY2VzL3JlZmVyZW5jZS5wbmcnKTsKKyAgICAgICAgZGlzcGxheTogaW5s
aW5lLWJsb2NrOworICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKKyAg
ICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MnMgIWltcG9ydGFudDsKKyAgICB9CisK
KyAgICAuYm94IHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDA7
CisgICAgICAgIGxlZnQ6IDA7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CisgICAg
ICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAycyAhaW1wb3J0YW50OworICAgICAgICAt
d2Via2l0LWJhY2tkcm9wLWZpbHRlcjogaW52ZXJ0KDApOworICAgIH0KKworICAgICNncmF5c2Nh
bGUtYm94IHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBncmF5c2NhbGUtYW5pbSAycyBsaW5l
YXIKKyAgICB9CisKKyAgICAjc2VwaWEtYm94IHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBz
ZXBpYS1hbmltIDJzIGxpbmVhcgorICAgIH0KKworICAgICNzYXR1cmF0ZS1ib3ggeworICAgICAg
LXdlYmtpdC1hbmltYXRpb246IHNhdHVyYXRlLWFuaW0gMnMgbGluZWFyCisgICAgfQorCisgICAg
I2h1ZXJvdGF0ZS1ib3ggeworICAgICAgLXdlYmtpdC1hbmltYXRpb246IGh1ZXJvdGF0ZS1hbmlt
IDJzIGxpbmVhcgorICAgIH0KKworICAgICNpbnZlcnQtYm94IHsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uOiBpbnZlcnQtYW5pbSAycyBsaW5lYXIKKyAgICB9CisKKyAgICAjb3BhY2l0eS1ib3gg
eworICAgICAgLXdlYmtpdC1hbmltYXRpb246IG9wYWNpdHktYW5pbSAycyBsaW5lYXIKKyAgICB9
CisKKyAgICAjYnJpZ2h0bmVzcy1ib3ggeworICAgICAgLXdlYmtpdC1hbmltYXRpb246IGJyaWdo
dG5lc3MtYW5pbSAycyBsaW5lYXIKKyAgICB9CisKKyAgICAjY29udHJhc3QtYm94IHsKKyAgICAg
IC13ZWJraXQtYW5pbWF0aW9uOiBjb250cmFzdC1hbmltIDJzIGxpbmVhcgorICAgIH0KKworICAg
ICNibHVyLWJveCB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbjogYmx1ci1hbmltIDJzIGxpbmVh
cgorICAgIH0KKworICAgICNkcm9wc2hhZG93LWJveCB7CisgICAgICAtd2Via2l0LWFuaW1hdGlv
bjogZHJvcHNoYWRvdy1hbmltIDJzIGxpbmVhcgorICAgIH0KKworCisgICAgQC13ZWJraXQta2V5
ZnJhbWVzIGdyYXlzY2FsZS1hbmltIHsKKyAgICAgICAgZnJvbSB7IC13ZWJraXQtYmFja2Ryb3At
ZmlsdGVyOiBncmF5c2NhbGUoMCk7IH0KKyAgICAgICAgdG8gICB7IC13ZWJraXQtYmFja2Ryb3At
ZmlsdGVyOiBncmF5c2NhbGUoMSk7IH0KKyAgICB9CisKKyAgICBALXdlYmtpdC1rZXlmcmFtZXMg
c2VwaWEtYW5pbSB7CisgICAgICAgIGZyb20geyAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogc2Vw
aWEoMCk7IH0KKyAgICAgICAgdG8gICB7IC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBzZXBpYSgx
KTsgfQorICAgIH0KKworICAgIEAtd2Via2l0LWtleWZyYW1lcyBzYXR1cmF0ZS1hbmltIHsKKyAg
ICAgICAgZnJvbSB7IC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBzYXR1cmF0ZSgwKTsgfQorICAg
ICAgICB0byAgIHsgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDEpOyB9CisgICAg
fQorCisgICAgQC13ZWJraXQta2V5ZnJhbWVzIGh1ZXJvdGF0ZS1hbmltIHsKKyAgICAgICAgZnJv
bSB7IC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBodWUtcm90YXRlKDApOyB9CisgICAgICAgIHRv
ICAgeyAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogaHVlLXJvdGF0ZSgxODBkZWcpOyB9CisgICAg
fQorCisgICAgQC13ZWJraXQta2V5ZnJhbWVzIGludmVydC1hbmltIHsKKyAgICAgICAgZnJvbSB7
IC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBpbnZlcnQoMCk7IH0KKyAgICAgICAgdG8gICB7IC13
ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBpbnZlcnQoMSk7IH0KKyAgICB9CisKKyAgICBALXdlYmtp
dC1rZXlmcmFtZXMgb3BhY2l0eS1hbmltIHsKKyAgICAgICAgZnJvbSB7IC13ZWJraXQtYmFja2Ry
b3AtZmlsdGVyOiBvcGFjaXR5KDEpOyB9CisgICAgICAgIHRvICAgeyAtd2Via2l0LWJhY2tkcm9w
LWZpbHRlcjogb3BhY2l0eSgwKTsgfQorICAgIH0KKworICAgIEAtd2Via2l0LWtleWZyYW1lcyBi
cmlnaHRuZXNzLWFuaW0geworICAgICAgICBmcm9tIHsgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6
IGJyaWdodG5lc3MoMSk7IH0KKyAgICAgICAgdG8gICB7IC13ZWJraXQtYmFja2Ryb3AtZmlsdGVy
OiBicmlnaHRuZXNzKDApOyB9CisgICAgfQorCisgICAgQC13ZWJraXQta2V5ZnJhbWVzIGNvbnRy
YXN0LWFuaW0geworICAgICAgICBmcm9tIHsgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGNvbnRy
YXN0KDEpOyB9CisgICAgICAgIHRvICAgeyAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogY29udHJh
c3QoMCk7IH0KKyAgICB9CisKKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgYmx1ci1hbmltIHsKKyAg
ICAgICAgZnJvbSB7IC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDApOyB9CisgICAgICAg
IHRvICAgeyAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTsgfQorICAgIH0KKwor
ICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vYW5pbWF0aW9ucy9yZXNvdXJjZXMv
YW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgICB2YXIgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAvLyBbYW5p
bWF0aW9uLW5hbWUsIHRpbWUsIGVsZW1lbnQtaWQsIHByb3BlcnR5LCBleHBlY3RlZC12YWx1ZSwg
dG9sZXJhbmNlXQorICAgICAgWyJncmF5c2NhbGUtYW5pbSIsICAxLCAiZ3JheXNjYWxlLWJveCIs
ICJ3ZWJraXRCYWNrZHJvcEZpbHRlciIsICdncmF5c2NhbGUoMC41KScsIDAuMV0sCisgICAgICBb
InNlcGlhLWFuaW0iLCAgMSwgInNlcGlhLWJveCIsICJ3ZWJraXRCYWNrZHJvcEZpbHRlciIsICdz
ZXBpYSgwLjUpJywgMC4xXSwKKyAgICAgIFsic2F0dXJhdGUtYW5pbSIsICAxLCAic2F0dXJhdGUt
Ym94IiwgIndlYmtpdEJhY2tkcm9wRmlsdGVyIiwgJ3NhdHVyYXRlKDAuNSknLCAwLjFdLAorICAg
ICAgWyJodWVyb3RhdGUtYW5pbSIsICAxLCAiaHVlcm90YXRlLWJveCIsICJ3ZWJraXRCYWNrZHJv
cEZpbHRlciIsICdodWUtcm90YXRlKDkwZGVnKScsIDEwXSwKKyAgICAgIFsiaW52ZXJ0LWFuaW0i
LCAgMSwgImludmVydC1ib3giLCAid2Via2l0QmFja2Ryb3BGaWx0ZXIiLCAnaW52ZXJ0KDAuNSkn
LCAwLjFdLAorICAgICAgWyJvcGFjaXR5LWFuaW0iLCAgMSwgIm9wYWNpdHktYm94IiwgIndlYmtp
dEJhY2tkcm9wRmlsdGVyIiwgJ29wYWNpdHkoMC41KScsIDAuMV0sCisgICAgICBbImJyaWdodG5l
c3MtYW5pbSIsICAxLCAiYnJpZ2h0bmVzcy1ib3giLCAid2Via2l0QmFja2Ryb3BGaWx0ZXIiLCAn
YnJpZ2h0bmVzcygwLjUpJywgMC4xXSwKKyAgICAgIFsiY29udHJhc3QtYW5pbSIsICAxLCAiY29u
dHJhc3QtYm94IiwgIndlYmtpdEJhY2tkcm9wRmlsdGVyIiwgJ2NvbnRyYXN0KDAuNSknLCAwLjFd
LAorICAgICAgWyJibHVyLWFuaW0iLCAgMSwgImJsdXItYm94IiwgIndlYmtpdEJhY2tkcm9wRmls
dGVyIiwgJ2JsdXIoMTBweCknLCAyXSwKKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChl
eHBlY3RlZFZhbHVlcyk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgY2xh
c3M9ImJnIj48ZGl2IGNsYXNzPSJib3giIGlkPSJncmF5c2NhbGUtYm94Ij48L2Rpdj48L2Rpdj4K
KzxkaXYgY2xhc3M9ImJnIj48ZGl2IGNsYXNzPSJib3giIGlkPSJzZXBpYS1ib3giPjwvZGl2Pjwv
ZGl2PgorPGRpdiBjbGFzcz0iYmciPjxkaXYgY2xhc3M9ImJveCIgaWQ9InNhdHVyYXRlLWJveCI+
PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJiZyI+PGRpdiBjbGFzcz0iYm94IiBpZD0iaHVlcm90
YXRlLWJveCI+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJiZyI+PGRpdiBjbGFzcz0iYm94IiBp
ZD0iaW52ZXJ0LWJveCI+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJiZyI+PGRpdiBjbGFzcz0i
Ym94IiBpZD0ib3BhY2l0eS1ib3giPjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0iYmciPjxkaXYg
Y2xhc3M9ImJveCIgaWQ9ImJyaWdodG5lc3MtYm94Ij48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9
ImJnIj48ZGl2IGNsYXNzPSJib3giIGlkPSJjb250cmFzdC1ib3giPjwvZGl2PjwvZGl2PgorPGRp
diBjbGFzcz0iYmciPjxkaXYgY2xhc3M9ImJveCIgaWQ9ImJsdXItYm94Ij48L2Rpdj48L2Rpdj4K
KworPGRpdiBpZD0icmVzdWx0Ij4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>