<?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>120720</bug_id>
          
          <creation_ts>2013-09-04 19:35:33 -0700</creation_ts>
          <short_desc>Animations in an AnimationList are never null</short_desc>
          <delta_ts>2013-09-05 08:15:07 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rego+ews</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>924745</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-04 19:35:33 -0700</bug_when>
    <thetext>Animations in an AnimationList are never null</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924746</commentid>
    <comment_count>1</comment_count>
      <attachid>210540</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-04 19:45:39 -0700</bug_when>
    <thetext>Created attachment 210540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924747</commentid>
    <comment_count>2</comment_count>
      <attachid>210540</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-04 19:48:11 -0700</bug_when>
    <thetext>Comment on attachment 210540
Patch

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

I feel like I&apos;m reviewing a patch by myself from the future.

&gt; Source/WebCore/platform/animation/AnimationList.h:52
&gt; +    void append(PassRefPtr&lt;Animation&gt; anim)

&quot;anim&quot;? :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924748</commentid>
    <comment_count>3</comment_count>
      <attachid>210540</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-09-04 19:54:28 -0700</bug_when>
    <thetext>Comment on attachment 210540
Patch

Attachment 210540 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/1685792</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924749</commentid>
    <comment_count>4</comment_count>
      <attachid>210540</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-09-04 19:56:04 -0700</bug_when>
    <thetext>Comment on attachment 210540
Patch

Attachment 210540 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1692764</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924762</commentid>
    <comment_count>5</comment_count>
      <attachid>210540</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-09-04 20:57:08 -0700</bug_when>
    <thetext>Comment on attachment 210540
Patch

Attachment 210540 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/1686845</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924765</commentid>
    <comment_count>6</comment_count>
      <attachid>210540</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-09-04 21:00:41 -0700</bug_when>
    <thetext>Comment on attachment 210540
Patch

Attachment 210540 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/1697473</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924766</commentid>
    <comment_count>7</comment_count>
      <attachid>210540</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-09-04 21:22:21 -0700</bug_when>
    <thetext>Comment on attachment 210540
Patch

Attachment 210540 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1692775</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925011</commentid>
    <comment_count>8</comment_count>
      <attachid>210613</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-05 07:11:40 -0700</bug_when>
    <thetext>Created attachment 210613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925033</commentid>
    <comment_count>9</comment_count>
      <attachid>210613</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-05 08:09:05 -0700</bug_when>
    <thetext>Comment on attachment 210613
Patch

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

&gt; Source/WebCore/platform/animation/AnimationList.h:64
&gt; +    Vector&lt;RefPtr&lt;Animation&gt;&gt; m_animations;

This should really be a Vector&lt;Ref&lt;Animation&gt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925035</commentid>
    <comment_count>10</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-05 08:10:39 -0700</bug_when>
    <thetext>Regressions: Unexpected image-only failures (1)
  animations/cross-fade-background-image.html [ ImageOnlyFailure ]

This fails for me even without the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925038</commentid>
    <comment_count>11</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-05 08:15:07 -0700</bug_when>
    <thetext>Committed r155119: &lt;http://trac.webkit.org/changeset/155119&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210540</attachid>
            <date>2013-09-04 19:45:39 -0700</date>
            <delta_ts>2013-09-05 07:11:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120720-20130904194539.patch</filename>
            <type>text/plain</type>
            <size>24825</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1MDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk5NjJlODc1Mzc5MTVl
Nzc5MjdkMDMxOTljMWM2MzFiMzYyNmIzNi4uNzIzMWNkMTQ1OTZkMmQzYWYwZGM1Zjk0OGViZjRk
M2M0ZjY0NjAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTA5LTA0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQW5pbWF0aW9ucyBp
biBhbiBBbmltYXRpb25MaXN0IGFyZSBuZXZlciBudWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA3MjAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgQW5pbWF0aW9uTGlzdDo6b3BlcmF0b3Jb
XSB0byByZXR1cm4gYW4gQW5pbWF0aW9uJiBhbmQgZml4IHVwIHJlbGF0ZWQgY29kZSB0byBhbHNv
IHRha2UgcmVmZXJlbmNlcy4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwOgorICAgICAgICAq
IHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hbmltYXRpb24vQW5pbWF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL0Fu
aW1hdGlvbkxpc3QuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25M
aXN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisKIDIw
MTMtMDktMDQgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFt
ZWQgU3RhY2tJdGVyYXRvciB0byBTdGFja1Zpc2l0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDU3Y2YwZGUwNjYyMjJi
ZWJjNTQ2YmJjNzU2MGRkZjFiMTg0MTBmYzkuLmNlNzBlNTdjNTUwNWU1MzAxNDU0NDMzODI0MTk1
MmI0ZDc4ZGQyZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xMTY1LDE3ICsxMTY1LDE4IEBAIHN0YXRpYyBQYXNzUmVm
UHRyPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRQb3NpdGlvbihjb25zdCBHcmlkUG9zaXRpb24mIHBv
c2l0aW9uKQogICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKIH0KIAotc3RhdGljIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IGNyZWF0ZVRyYW5zaXRpb25Qcm9wZXJ0eVZhbHVlKGNvbnN0IEFuaW1hdGlv
biogYW5pbWF0aW9uKQorc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGNyZWF0ZVRyYW5zaXRp
b25Qcm9wZXJ0eVZhbHVlKGNvbnN0IEFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIFJlZlB0
cjxDU1NWYWx1ZT4gcHJvcGVydHlWYWx1ZTsKLSAgICBpZiAoYW5pbWF0aW9uLT5hbmltYXRpb25N
b2RlKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRlTm9uZSkKKyAgICBpZiAoYW5pbWF0aW9uLmFuaW1h
dGlvbk1vZGUoKSA9PSBBbmltYXRpb246OkFuaW1hdGVOb25lKQogICAgICAgICBwcm9wZXJ0eVZh
bHVlID0gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9uZSk7
Ci0gICAgZWxzZSBpZiAoYW5pbWF0aW9uLT5hbmltYXRpb25Nb2RlKCkgPT0gQW5pbWF0aW9uOjpB
bmltYXRlQWxsKQorICAgIGVsc2UgaWYgKGFuaW1hdGlvbi5hbmltYXRpb25Nb2RlKCkgPT0gQW5p
bWF0aW9uOjpBbmltYXRlQWxsKQogICAgICAgICBwcm9wZXJ0eVZhbHVlID0gY3NzVmFsdWVQb29s
KCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQWxsKTsKICAgICBlbHNlCi0gICAgICAg
IHByb3BlcnR5VmFsdWUgPSBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShnZXRQcm9wZXJ0eU5h
bWVTdHJpbmcoYW5pbWF0aW9uLT5wcm9wZXJ0eSgpKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19T
VFJJTkcpOworICAgICAgICBwcm9wZXJ0eVZhbHVlID0gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFs
dWUoZ2V0UHJvcGVydHlOYW1lU3RyaW5nKGFuaW1hdGlvbi5wcm9wZXJ0eSgpKSwgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19TVFJJTkcpOwogICAgIHJldHVybiBwcm9wZXJ0eVZhbHVlLnJlbGVhc2Uo
KTsKIH0KKwogc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGdldFRyYW5zaXRpb25Qcm9wZXJ0
eVZhbHVlKGNvbnN0IEFuaW1hdGlvbkxpc3QqIGFuaW1MaXN0KQogewogICAgIFJlZlB0cjxDU1NW
YWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CkBA
IC0xMTkyLDcgKzExOTMsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0RGVsYXlW
YWx1ZShjb25zdCBBbmltYXRpb25MaXN0KiBhbmltTGlzdCkKICAgICBSZWZQdHI8Q1NTVmFsdWVM
aXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOwogICAgIGlm
IChhbmltTGlzdCkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFuaW1MaXN0LT5z
aXplKCk7ICsraSkKLSAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVh
dGVWYWx1ZShhbmltTGlzdC0+YW5pbWF0aW9uKGkpLT5kZWxheSgpLCBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1MpKTsKKyAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVh
dGVWYWx1ZShhbmltTGlzdC0+YW5pbWF0aW9uKGkpLmRlbGF5KCksIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfUykpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIE5vdGUgdGhhdCBpbml0aWFsQW5p
bWF0aW9uRGVsYXkoKSBpcyB1c2VkIGZvciBib3RoIHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25z
CiAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShBbmltYXRp
b246OmluaXRpYWxBbmltYXRpb25EZWxheSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1MpKTsK
QEAgLTEyMDUsNyArMTIwNiw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBnZXREdXJh
dGlvblZhbHVlKGNvbnN0IEFuaW1hdGlvbkxpc3QqIGFuaW1MaXN0KQogICAgIFJlZlB0cjxDU1NW
YWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CiAg
ICAgaWYgKGFuaW1MaXN0KSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYW5pbUxp
c3QtPnNpemUoKTsgKytpKQotICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgp
LmNyZWF0ZVZhbHVlKGFuaW1MaXN0LT5hbmltYXRpb24oaSktPmR1cmF0aW9uKCksIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUykpOworICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9v
bCgpLmNyZWF0ZVZhbHVlKGFuaW1MaXN0LT5hbmltYXRpb24oaSkuZHVyYXRpb24oKSwgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19TKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gTm90ZSB0aGF0
IGluaXRpYWxBbmltYXRpb25EdXJhdGlvbigpIGlzIHVzZWQgZm9yIGJvdGggdHJhbnNpdGlvbnMg
YW5kIGFuaW1hdGlvbnMKICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0
ZVZhbHVlKEFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvbkR1cmF0aW9uKCksIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfUykpOwpAQCAtMTI1NCw3ICsxMjU1LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IGdldFRpbWluZ0Z1bmN0aW9uVmFsdWUoY29uc3QgQW5pbWF0aW9uTGlzdCogYW5p
bUxpc3QKICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVh
dGVDb21tYVNlcGFyYXRlZCgpOwogICAgIGlmIChhbmltTGlzdCkgewogICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGFuaW1MaXN0LT5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGxpc3Qt
PmFwcGVuZChjcmVhdGVUaW1pbmdGdW5jdGlvblZhbHVlKGFuaW1MaXN0LT5hbmltYXRpb24oaSkt
PnRpbWluZ0Z1bmN0aW9uKCkuZ2V0KCkpKTsKKyAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjcmVh
dGVUaW1pbmdGdW5jdGlvblZhbHVlKGFuaW1MaXN0LT5hbmltYXRpb24oaSkudGltaW5nRnVuY3Rp
b24oKS5nZXQoKSkpOwogICAgIH0gZWxzZQogICAgICAgICAvLyBOb3RlIHRoYXQgaW5pdGlhbEFu
aW1hdGlvblRpbWluZ0Z1bmN0aW9uKCkgaXMgdXNlZCBmb3IgYm90aCB0cmFuc2l0aW9ucyBhbmQg
YW5pbWF0aW9ucwogICAgICAgICBsaXN0LT5hcHBlbmQoY3JlYXRlVGltaW5nRnVuY3Rpb25WYWx1
ZShBbmltYXRpb246OmluaXRpYWxBbmltYXRpb25UaW1pbmdGdW5jdGlvbigpLmdldCgpKSk7CkBA
IC0yNTIzLDcgKzI1MjQsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0
cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydAogICAgICAgICAgICAg
Y29uc3QgQW5pbWF0aW9uTGlzdCogdCA9IHN0eWxlLT5hbmltYXRpb25zKCk7CiAgICAgICAgICAg
ICBpZiAodCkgewogICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdC0+c2l6
ZSgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHQtPmFuaW1hdGlvbihpKS0+ZGly
ZWN0aW9uKCkpCisgICAgICAgICAgICAgICAgICAgIGlmICh0LT5hbmltYXRpb24oaSkuZGlyZWN0
aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29s
KCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQWx0ZXJuYXRlKSk7CiAgICAgICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NW
YWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb3JtYWwpKTsKQEAgLTI1
MzksNyArMjU0MCw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0
b3I6OnByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0CiAgICAgICAgICAgICBjb25z
dCBBbmltYXRpb25MaXN0KiB0ID0gc3R5bGUtPmFuaW1hdGlvbnMoKTsKICAgICAgICAgICAgIGlm
ICh0KSB7CiAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0LT5zaXplKCk7
ICsraSkgewotICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHQtPmFuaW1hdGlvbihpKS0+Zmls
bE1vZGUoKSkgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHQtPmFuaW1hdGlvbihpKS5m
aWxsTW9kZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQW5pbWF0aW9uRmlsbE1vZGVO
b25lOgogICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgp
LmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtMjU2Myw3ICsyNTY0LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnQKICAgICAgICAgICAgIGNvbnN0IEFuaW1hdGlvbkxpc3QqIHQgPSBzdHlsZS0+YW5pbWF0aW9u
cygpOwogICAgICAgICAgICAgaWYgKHQpIHsKICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHQtPnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRvdWJsZSBp
dGVyYXRpb25Db3VudCA9IHQtPmFuaW1hdGlvbihpKS0+aXRlcmF0aW9uQ291bnQoKTsKKyAgICAg
ICAgICAgICAgICAgICAgZG91YmxlIGl0ZXJhdGlvbkNvdW50ID0gdC0+YW5pbWF0aW9uKGkpLml0
ZXJhdGlvbkNvdW50KCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVyYXRpb25Db3VudCA9
PSBBbmltYXRpb246Okl0ZXJhdGlvbkNvdW50SW5maW5pdGUpCiAgICAgICAgICAgICAgICAgICAg
ICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENT
U1ZhbHVlSW5maW5pdGUpKTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQpAQCAtMjU3OCw3ICsy
NTc5LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJv
cGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnQKICAgICAgICAgICAgIGNvbnN0IEFuaW1h
dGlvbkxpc3QqIHQgPSBzdHlsZS0+YW5pbWF0aW9ucygpOwogICAgICAgICAgICAgaWYgKHQpIHsK
ICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHQtPnNpemUoKTsgKytpKQot
ICAgICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFs
dWUodC0+YW5pbWF0aW9uKGkpLT5uYW1lKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5H
KSk7CisgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVh
dGVWYWx1ZSh0LT5hbmltYXRpb24oaSkubmFtZSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NU
UklORykpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5k
KGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpKTsKICAg
ICAgICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKQEAgLTI1ODgsNyArMjU4OSw3IEBAIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFsdWUo
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0CiAgICAgICAgICAgICBjb25zdCBBbmltYXRpb25MaXN0KiB0
ID0gc3R5bGUtPmFuaW1hdGlvbnMoKTsKICAgICAgICAgICAgIGlmICh0KSB7CiAgICAgICAgICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0LT5zaXplKCk7ICsraSkgewotICAgICAgICAg
ICAgICAgICAgICBpbnQgcHJvcCA9IHQtPmFuaW1hdGlvbihpKS0+cGxheVN0YXRlKCk7CisgICAg
ICAgICAgICAgICAgICAgIGludCBwcm9wID0gdC0+YW5pbWF0aW9uKGkpLnBsYXlTdGF0ZSgpOwog
ICAgICAgICAgICAgICAgICAgICBpZiAocHJvcCA9PSBBbmltUGxheVN0YXRlUGxheWluZykKICAg
ICAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJ
ZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVSdW5uaW5nKSk7CiAgICAgICAgICAgICAgICAgICAgIGVs
c2UKQEAgLTI3NDIsMTEgKzI3NDMsMTEgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRT
dHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnQKICAgICAg
ICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiB0cmFuc2l0aW9uc0xpc3QgPSBDU1NWYWx1
ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CiAgICAgICAgICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBhbmltTGlzdC0+c2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgICAgICAg
ICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VT
ZXBhcmF0ZWQoKTsKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRp
b24gPSBhbmltTGlzdC0+YW5pbWF0aW9uKGkpOworICAgICAgICAgICAgICAgICAgICBjb25zdCBB
bmltYXRpb24mIGFuaW1hdGlvbiA9IGFuaW1MaXN0LT5hbmltYXRpb24oaSk7CiAgICAgICAgICAg
ICAgICAgICAgIGxpc3QtPmFwcGVuZChjcmVhdGVUcmFuc2l0aW9uUHJvcGVydHlWYWx1ZShhbmlt
YXRpb24pKTsKLSAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgp
LmNyZWF0ZVZhbHVlKGFuaW1hdGlvbi0+ZHVyYXRpb24oKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19TKSk7Ci0gICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjcmVhdGVUaW1pbmdGdW5j
dGlvblZhbHVlKGFuaW1hdGlvbi0+dGltaW5nRnVuY3Rpb24oKS5nZXQoKSkpOwotICAgICAgICAg
ICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoYW5pbWF0
aW9uLT5kZWxheSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1MpKTsKKyAgICAgICAgICAgICAg
ICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKGFuaW1hdGlvbi5k
dXJhdGlvbigpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1MpKTsKKyAgICAgICAgICAgICAgICAg
ICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVRpbWluZ0Z1bmN0aW9uVmFsdWUoYW5pbWF0aW9uLnRpbWlu
Z0Z1bmN0aW9uKCkuZ2V0KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNz
c1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKGFuaW1hdGlvbi5kZWxheSgpLCBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1MpKTsKICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbnNMaXN0LT5hcHBl
bmQobGlzdCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVybiB0cmFu
c2l0aW9uc0xpc3QucmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Rl
cHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRT
dHlsZUJ1aWxkZXIuY3BwCmluZGV4IGE5NDZkZWQzM2Q2Mjg0NWUyNzBkYjY4ZDgzOTAwNDE3ZjJi
MGFlMDcuLjIxZmMxNjY3YzBiODY2NjRjYzI0YTdhMmQyM2JiYjhlMTA4Njc3OWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKQEAgLTE2MzUsMTIg
KzE2MzUsMTIgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsCiAgICAgICAgICAgY29uc3QgQW5pbWF0
aW9uTGlzdCogKFJlbmRlclN0eWxlOjoqaW1tdXRhYmxlQW5pbWF0aW9uR2V0dGVyRnVuY3Rpb24p
KCkgY29uc3Q+CiBjbGFzcyBBcHBseVByb3BlcnR5QW5pbWF0aW9uIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgdm9pZCBzZXRWYWx1ZShBbmltYXRpb24qIGFuaW1hdGlvbiwgVCB2YWx1ZSkgeyAoYW5p
bWF0aW9uLT4qc2V0dGVyRnVuY3Rpb24pKHZhbHVlKTsgfQotICAgIHN0YXRpYyBUIHZhbHVlKGNv
bnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uKSB7IHJldHVybiAoYW5pbWF0aW9uLT4qZ2V0dGVyRnVu
Y3Rpb24pKCk7IH0KLSAgICBzdGF0aWMgYm9vbCB0ZXN0KGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0
aW9uKSB7IHJldHVybiAoYW5pbWF0aW9uLT4qdGVzdEZ1bmN0aW9uKSgpOyB9Ci0gICAgc3RhdGlj
IHZvaWQgY2xlYXIoQW5pbWF0aW9uKiBhbmltYXRpb24pIHsgKGFuaW1hdGlvbi0+KmNsZWFyRnVu
Y3Rpb24pKCk7IH0KKyAgICBzdGF0aWMgdm9pZCBzZXRWYWx1ZShBbmltYXRpb24mIGFuaW1hdGlv
biwgVCB2YWx1ZSkgeyAoYW5pbWF0aW9uLipzZXR0ZXJGdW5jdGlvbikodmFsdWUpOyB9CisgICAg
c3RhdGljIFQgdmFsdWUoY29uc3QgQW5pbWF0aW9uJiBhbmltYXRpb24pIHsgcmV0dXJuIChhbmlt
YXRpb24uKmdldHRlckZ1bmN0aW9uKSgpOyB9CisgICAgc3RhdGljIGJvb2wgdGVzdChjb25zdCBB
bmltYXRpb24mIGFuaW1hdGlvbikgeyByZXR1cm4gKGFuaW1hdGlvbi4qdGVzdEZ1bmN0aW9uKSgp
OyB9CisgICAgc3RhdGljIHZvaWQgY2xlYXIoQW5pbWF0aW9uJiBhbmltYXRpb24pIHsgKGFuaW1h
dGlvbi4qY2xlYXJGdW5jdGlvbikoKTsgfQogICAgIHN0YXRpYyBUIGluaXRpYWwoKSB7IHJldHVy
biAoKmluaXRpYWxGdW5jdGlvbikoKTsgfQotICAgIHN0YXRpYyB2b2lkIG1hcChTdHlsZVJlc29s
dmVyKiBzdHlsZVJlc29sdmVyLCBBbmltYXRpb24qIGFuaW1hdGlvbiwgQ1NTVmFsdWUqIHZhbHVl
KSB7IChzdHlsZVJlc29sdmVyLT5zdHlsZU1hcCgpLT4qbWFwRnVuY3Rpb24pKGFuaW1hdGlvbiwg
dmFsdWUpOyB9CisgICAgc3RhdGljIHZvaWQgbWFwKFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2
ZXIsIEFuaW1hdGlvbiYgYW5pbWF0aW9uLCBDU1NWYWx1ZSogdmFsdWUpIHsgKHN0eWxlUmVzb2x2
ZXItPnN0eWxlTWFwKCktPiptYXBGdW5jdGlvbikoJmFuaW1hdGlvbiwgdmFsdWUpOyB9CiAgICAg
c3RhdGljIEFuaW1hdGlvbkxpc3QqIGFjY2Vzc0FuaW1hdGlvbnMoUmVuZGVyU3R5bGUqIHN0eWxl
KSB7IHJldHVybiAoc3R5bGUtPiphbmltYXRpb25HZXR0ZXJGdW5jdGlvbikoKTsgfQogICAgIHN0
YXRpYyBjb25zdCBBbmltYXRpb25MaXN0KiBhbmltYXRpb25zKFJlbmRlclN0eWxlKiBzdHlsZSkg
eyByZXR1cm4gKHN0eWxlLT4qaW1tdXRhYmxlQW5pbWF0aW9uR2V0dGVyRnVuY3Rpb24pKCk7IH0K
IApAQCAtMTY1Myw3ICsxNjUzLDcgQEAgcHVibGljOgogICAgICAgICAgICAgaWYgKGxpc3QtPnNp
emUoKSA8PSBpKQogICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChBbmltYXRpb246OmNyZWF0
ZSgpKTsKICAgICAgICAgICAgIHNldFZhbHVlKGxpc3QtPmFuaW1hdGlvbihpKSwgdmFsdWUocGFy
ZW50TGlzdC0+YW5pbWF0aW9uKGkpKSk7Ci0gICAgICAgICAgICBsaXN0LT5hbmltYXRpb24oaSkt
PnNldEFuaW1hdGlvbk1vZGUocGFyZW50TGlzdC0+YW5pbWF0aW9uKGkpLT5hbmltYXRpb25Nb2Rl
KCkpOworICAgICAgICAgICAgbGlzdC0+YW5pbWF0aW9uKGkpLnNldEFuaW1hdGlvbk1vZGUocGFy
ZW50TGlzdC0+YW5pbWF0aW9uKGkpLmFuaW1hdGlvbk1vZGUoKSk7CiAgICAgICAgIH0KIAogICAg
ICAgICAvKiBSZXNldCBhbnkgcmVtYWluaW5nIGFuaW1hdGlvbnMgdG8gbm90IGhhdmUgdGhlIHBy
b3BlcnR5IHNldC4gKi8KQEAgLTE2NjgsNyArMTY2OCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IGxpc3QtPmFwcGVuZChBbmltYXRpb246OmNyZWF0ZSgpKTsKICAgICAgICAgc2V0VmFsdWUobGlz
dC0+YW5pbWF0aW9uKDApLCBpbml0aWFsKCkpOwogICAgICAgICBpZiAocHJvcGVydHlJRCA9PSBD
U1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eSkKLSAgICAgICAgICAgIGxpc3QtPmFu
aW1hdGlvbigwKS0+c2V0QW5pbWF0aW9uTW9kZShBbmltYXRpb246OkFuaW1hdGVBbGwpOworICAg
ICAgICAgICAgbGlzdC0+YW5pbWF0aW9uKDApLnNldEFuaW1hdGlvbk1vZGUoQW5pbWF0aW9uOjpB
bmltYXRlQWxsKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBsaXN0LT5zaXplKCk7
ICsraSkKICAgICAgICAgICAgIGNsZWFyKGxpc3QtPmFuaW1hdGlvbihpKSk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5j
cHAKaW5kZXggYTM2NDFlYTk5NGRkYjE1M2YyM2ExMDU4YTViYWIwZDllMzRlMDhmOS4uN2YwNDM1
YTZiYjE4ZDdlNmE1NmZmMDY1NWQyOGQ1YWEyYjg5ZTA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC05NywxNCAr
OTcsMTQgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZVRyYW5zaXRpb25zKFJlbmRl
ck9iamVjdCogcmVuZGVyZXIsIFJlbmRlclN0eWxlKgogICAgIC8vIENoZWNrIHRvIHNlZSBpZiB3
ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgYWN0aXZlIHRyYW5zaXRpb25zCiAgICAgaWYgKHRhcmdldFN0
eWxlLT50cmFuc2l0aW9ucygpKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGFy
Z2V0U3R5bGUtPnRyYW5zaXRpb25zKCktPnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBjb25z
dCBBbmltYXRpb24qIGFuaW0gPSB0YXJnZXRTdHlsZS0+dHJhbnNpdGlvbnMoKS0+YW5pbWF0aW9u
KGkpOwotICAgICAgICAgICAgYm9vbCBpc0FjdGl2ZVRyYW5zaXRpb24gPSAhbV9zdXNwZW5kZWQg
JiYgKGFuaW0tPmR1cmF0aW9uKCkgfHwgYW5pbS0+ZGVsYXkoKSA+IDApOworICAgICAgICAgICAg
Y29uc3QgQW5pbWF0aW9uJiBhbmltYXRpb24gPSB0YXJnZXRTdHlsZS0+dHJhbnNpdGlvbnMoKS0+
YW5pbWF0aW9uKGkpOworICAgICAgICAgICAgYm9vbCBpc0FjdGl2ZVRyYW5zaXRpb24gPSAhbV9z
dXNwZW5kZWQgJiYgKGFuaW1hdGlvbi5kdXJhdGlvbigpIHx8IGFuaW1hdGlvbi5kZWxheSgpID4g
MCk7CiAKLSAgICAgICAgICAgIEFuaW1hdGlvbjo6QW5pbWF0aW9uTW9kZSBtb2RlID0gYW5pbS0+
YW5pbWF0aW9uTW9kZSgpOworICAgICAgICAgICAgQW5pbWF0aW9uOjpBbmltYXRpb25Nb2RlIG1v
ZGUgPSBhbmltYXRpb24uYW5pbWF0aW9uTW9kZSgpOwogICAgICAgICAgICAgaWYgKG1vZGUgPT0g
QW5pbWF0aW9uOjpBbmltYXRlTm9uZSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wID0gYW5pbS0+cHJvcGVydHkoKTsKKyAgICAgICAg
ICAgIENTU1Byb3BlcnR5SUQgcHJvcCA9IGFuaW1hdGlvbi5wcm9wZXJ0eSgpOwogCiAgICAgICAg
ICAgICBib29sIGFsbCA9IG1vZGUgPT0gQW5pbWF0aW9uOjpBbmltYXRlQWxsOwogCkBAIC0xNzQs
OSArMTc0LDkgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZVRyYW5zaXRpb25zKFJl
bmRlck9iamVjdCogcmVuZGVyZXIsIFJlbmRlclN0eWxlKgogICAgICAgICAgICAgICAgIC8vIDxo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3ODc+CiAgICAgICAgICAg
ICAgICAgaWYgKCFlcXVhbCAmJiBpc0FjdGl2ZVRyYW5zaXRpb24pIHsKICAgICAgICAgICAgICAg
ICAgICAgLy8gQWRkIHRoZSBuZXcgdHJhbnNpdGlvbgotICAgICAgICAgICAgICAgICAgICBSZWZQ
dHI8SW1wbGljaXRBbmltYXRpb24+IGFuaW1hdGlvbiA9IEltcGxpY2l0QW5pbWF0aW9uOjpjcmVh
dGUoY29uc3RfY2FzdDxBbmltYXRpb24qPihhbmltKSwgcHJvcCwgcmVuZGVyZXIsIHRoaXMsIG1v
ZGlmaWVkQ3VycmVudFN0eWxlID8gbW9kaWZpZWRDdXJyZW50U3R5bGUuZ2V0KCkgOiBmcm9tU3R5
bGUpOwotICAgICAgICAgICAgICAgICAgICBMT0coQW5pbWF0aW9ucywgIkNyZWF0ZWQgSW1wbGlj
aXRBbmltYXRpb24gJXAgZm9yIHByb3BlcnR5ICVzIGR1cmF0aW9uICUuMmYgZGVsYXkgJS4yZiIs
IGFuaW1hdGlvbi5nZXQoKSwgZ2V0UHJvcGVydHlOYW1lKHByb3ApLCBhbmltLT5kdXJhdGlvbigp
LCBhbmltLT5kZWxheSgpKTsKLSAgICAgICAgICAgICAgICAgICAgbV90cmFuc2l0aW9ucy5zZXQo
cHJvcCwgYW5pbWF0aW9uLnJlbGVhc2UoKSk7CisgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxJ
bXBsaWNpdEFuaW1hdGlvbj4gaW1wbGljaXRBbmltYXRpb24gPSBJbXBsaWNpdEFuaW1hdGlvbjo6
Y3JlYXRlKGNvbnN0X2Nhc3Q8QW5pbWF0aW9uKj4oJmFuaW1hdGlvbiksIHByb3AsIHJlbmRlcmVy
LCB0aGlzLCBtb2RpZmllZEN1cnJlbnRTdHlsZSA/IG1vZGlmaWVkQ3VycmVudFN0eWxlLmdldCgp
IDogZnJvbVN0eWxlKTsKKyAgICAgICAgICAgICAgICAgICAgTE9HKEFuaW1hdGlvbnMsICJDcmVh
dGVkIEltcGxpY2l0QW5pbWF0aW9uICVwIGZvciBwcm9wZXJ0eSAlcyBkdXJhdGlvbiAlLjJmIGRl
bGF5ICUuMmYiLCBpbXBsaWNpdEFuaW1hdGlvbi5nZXQoKSwgZ2V0UHJvcGVydHlOYW1lKHByb3Ap
LCBhbmltYXRpb24uZHVyYXRpb24oKSwgYW5pbWF0aW9uLmRlbGF5KCkpOworICAgICAgICAgICAg
ICAgICAgICBtX3RyYW5zaXRpb25zLnNldChwcm9wLCBpbXBsaWNpdEFuaW1hdGlvbi5yZWxlYXNl
KCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAvLyBXZSBvbmx5IG5lZWQgb25lIHBhc3MgZm9yIHRoZSBzaW5nbGUgcHJvcCBjYXNlCkBAIC0y
MzQsMTAgKzIzNCwxMCBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVB
bmltYXRpb25zKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIFJlbmRlcgogICAgICAgICBpZiAodGFy
Z2V0U3R5bGUtPmFuaW1hdGlvbnMoKSkgewogICAgICAgICAgICAgaW50IG51bUFuaW1zID0gdGFy
Z2V0U3R5bGUtPmFuaW1hdGlvbnMoKS0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBudW1BbmltczsgKytpKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9u
KiBhbmltID0gdGFyZ2V0U3R5bGUtPmFuaW1hdGlvbnMoKS0+YW5pbWF0aW9uKGkpOwotICAgICAg
ICAgICAgICAgIEF0b21pY1N0cmluZyBhbmltYXRpb25OYW1lKGFuaW0tPm5hbWUoKSk7CisgICAg
ICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uJiBhbmltYXRpb24gPSB0YXJnZXRTdHlsZS0+YW5p
bWF0aW9ucygpLT5hbmltYXRpb24oaSk7CisgICAgICAgICAgICAgICAgQXRvbWljU3RyaW5nIGFu
aW1hdGlvbk5hbWUoYW5pbWF0aW9uLm5hbWUoKSk7CiAKLSAgICAgICAgICAgICAgICBpZiAoIWFu
aW0tPmlzVmFsaWRBbmltYXRpb24oKSkKKyAgICAgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbi5p
c1ZhbGlkQW5pbWF0aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8vIFNlZSBpZiB0aGVyZSBpcyBhIGN1cnJlbnQg
YW5pbWF0aW9uIGZvciB0aGlzIG5hbWUuCkBAIC0yNTEsMTQgKzI1MSwxNCBAQCB2b2lkIENvbXBv
c2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVBbmltYXRpb25zKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIsIFJlbmRlcgogICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIG9uZSBpcyBzdGlsbCBh
Y3RpdmUuCiAKICAgICAgICAgICAgICAgICAgICAgLy8gQW5pbWF0aW9ucyBtYXRjaCwgYnV0IHBs
YXkgc3RhdGVzIG1heSBkaWZmZXIuIFVwZGF0ZSBpZiBuZWVkZWQuCi0gICAgICAgICAgICAgICAg
ICAgIGtleWZyYW1lQW5pbS0+dXBkYXRlUGxheVN0YXRlKGFuaW0tPnBsYXlTdGF0ZSgpKTsKKyAg
ICAgICAgICAgICAgICAgICAga2V5ZnJhbWVBbmltLT51cGRhdGVQbGF5U3RhdGUoYW5pbWF0aW9u
LnBsYXlTdGF0ZSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgIC8vIFNldCB0aGUgc2F2ZWQgYW5pbWF0aW9uIHRvIHRoaXMgbmV3IG9uZSwg
anVzdCBpbiBjYXNlIHRoZSBwbGF5IHN0YXRlIGhhcyBjaGFuZ2VkLgotICAgICAgICAgICAgICAg
ICAgICBrZXlmcmFtZUFuaW0tPnNldEFuaW1hdGlvbihhbmltKTsKKyAgICAgICAgICAgICAgICAg
ICAga2V5ZnJhbWVBbmltLT5zZXRBbmltYXRpb24oJmFuaW1hdGlvbik7CiAgICAgICAgICAgICAg
ICAgICAgIGtleWZyYW1lQW5pbS0+c2V0SW5kZXgoaSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNl
IGlmICgoYW5pbS0+ZHVyYXRpb24oKSB8fCBhbmltLT5kZWxheSgpKSAmJiBhbmltLT5pdGVyYXRp
b25Db3VudCgpICYmIGFuaW1hdGlvbk5hbWUgIT0gbm9uZSkgewotICAgICAgICAgICAgICAgICAg
ICBrZXlmcmFtZUFuaW0gPSBLZXlmcmFtZUFuaW1hdGlvbjo6Y3JlYXRlKGNvbnN0X2Nhc3Q8QW5p
bWF0aW9uKj4oYW5pbSksIHJlbmRlcmVyLCBpLCB0aGlzLCB0YXJnZXRTdHlsZSk7Ci0gICAgICAg
ICAgICAgICAgICAgIExPRyhBbmltYXRpb25zLCAiQ3JlYXRpbmcgS2V5ZnJhbWVBbmltYXRpb24g
JXAgd2l0aCBrZXlmcmFtZXMgJXMsIGR1cmF0aW9uICUuMmYsIGRlbGF5ICUuMmYsIGl0ZXJhdGlv
bnMgJS4yZiIsIGtleWZyYW1lQW5pbS5nZXQoKSwgYW5pbS0+bmFtZSgpLnV0ZjgoKS5kYXRhKCks
IGFuaW0tPmR1cmF0aW9uKCksIGFuaW0tPmRlbGF5KCksIGFuaW0tPml0ZXJhdGlvbkNvdW50KCkp
OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKGFuaW1hdGlvbi5kdXJhdGlvbigpIHx8IGFu
aW1hdGlvbi5kZWxheSgpKSAmJiBhbmltYXRpb24uaXRlcmF0aW9uQ291bnQoKSAmJiBhbmltYXRp
b25OYW1lICE9IG5vbmUpIHsKKyAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWVBbmltID0gS2V5
ZnJhbWVBbmltYXRpb246OmNyZWF0ZShjb25zdF9jYXN0PEFuaW1hdGlvbio+KCZhbmltYXRpb24p
LCByZW5kZXJlciwgaSwgdGhpcywgdGFyZ2V0U3R5bGUpOworICAgICAgICAgICAgICAgICAgICBM
T0coQW5pbWF0aW9ucywgIkNyZWF0aW5nIEtleWZyYW1lQW5pbWF0aW9uICVwIHdpdGgga2V5ZnJh
bWVzICVzLCBkdXJhdGlvbiAlLjJmLCBkZWxheSAlLjJmLCBpdGVyYXRpb25zICUuMmYiLCBrZXlm
cmFtZUFuaW0uZ2V0KCksIGFuaW1hdGlvbi5uYW1lKCkudXRmOCgpLmRhdGEoKSwgYW5pbWF0aW9u
LmR1cmF0aW9uKCksIGFuaW1hdGlvbi5kZWxheSgpLCBhbmltYXRpb24uaXRlcmF0aW9uQ291bnQo
KSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChtX3N1c3BlbmRlZCkgewogICAgICAgICAgICAg
ICAgICAgICAgICAga2V5ZnJhbWVBbmltLT51cGRhdGVQbGF5U3RhdGUoQW5pbVBsYXlTdGF0ZVBh
dXNlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBMT0coQW5pbWF0aW9ucywgIiAgKGNyZWF0
ZWQgaW4gc3VzcGVuZGVkL3BhdXNlZCBzdGF0ZSkiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAppbmRleCAzMDViNmI0ZjgzODcy
MmZiZjY1MTZmNmM2OGI2YmJiNzhkZmJmOWI4Li5lZjA2OGU5NTM5MThiNDQwNWM1ZTRmNTJkMjU0
NWJkNzdmNTc5YTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9L
ZXlmcmFtZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
S2V5ZnJhbWVBbmltYXRpb24uY3BwCkBAIC03Myw4ICs3Myw4IEBAIHN0YXRpYyBjb25zdCBBbmlt
YXRpb24qIGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5TmFtZShjb25zdCBSZW5kZXJTdHlsZSogc3R5
bGUsIGNvCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
dHlsZS0+YW5pbWF0aW9ucygpLT5zaXplKCk7IGkrKykgewotICAgICAgICBpZiAobmFtZSA9PSBz
dHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSktPm5hbWUoKSkKLSAgICAgICAgICAgIHJl
dHVybiBzdHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSk7CisgICAgICAgIGlmIChuYW1l
ID09IHN0eWxlLT5hbmltYXRpb25zKCktPmFuaW1hdGlvbihpKS5uYW1lKCkpCisgICAgICAgICAg
ICByZXR1cm4gJnN0eWxlLT5hbmltYXRpb25zKCktPmFuaW1hdGlvbihpKTsKICAgICB9CiAKICAg
ICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlv
bi9BbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRp
b24uaAppbmRleCA4MTA2ZWZkYmY0ZTNiZWE0ZTkxZjUwMjBiMGViOGVkOGFlNThkYzNkLi5iYzIz
OTk2YzY5Y2MxNjdlMDIwM2VjY2YwMzQxZDJmYzYzYTg5MzU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCkBAIC0zOSw3ICszOSw3IEBAIHB1Ymxp
YzoKICAgICB+QW5pbWF0aW9uKCk7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxBbmltYXRpb24+
IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBBbmltYXRpb24pOyB9Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8QW5pbWF0aW9uPiBjcmVhdGUoY29uc3QgQW5pbWF0aW9uKiBvKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgQW5pbWF0aW9uKCpvKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxB
bmltYXRpb24+IGNyZWF0ZShjb25zdCBBbmltYXRpb24mIG90aGVyKSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgQW5pbWF0aW9uKG90aGVyKSk7IH0KIAogICAgIGJvb2wgaXNEZWxheVNldCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVsYXlTZXQ7IH0KICAgICBib29sIGlzRGlyZWN0aW9uU2V0KCkgY29uc3Qg
eyByZXR1cm4gbV9kaXJlY3Rpb25TZXQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcAppbmRleCA1OGE0MGFhZTQyZmNmODg0MTFl
Y2E4NGZmODllNjdiNzkxNWFhY2YxLi42MjVkNzkwMTVhMDc0MDZhMjk5ODgwMTNhNjUyMDZiNTA4
NDI3MWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5p
bWF0aW9uTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0Fu
aW1hdGlvbkxpc3QuY3BwCkBAIC0yNSwxNiArMjUsMTYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogI2RlZmluZSBGSUxMX1VOU0VUX1BST1BFUlRZKHRlc3QsIHByb3BHZXQsIHByb3BTZXQpIFwK
LWZvciAoaSA9IDA7IGkgPCBzaXplKCkgJiYgYW5pbWF0aW9uKGkpLT50ZXN0KCk7ICsraSkgeyB9
IFwKK2ZvciAoaSA9IDA7IGkgPCBzaXplKCkgJiYgYW5pbWF0aW9uKGkpLnRlc3QoKTsgKytpKSB7
IH0gXAogaWYgKGkgPCBzaXplKCkgJiYgaSAhPSAwKSB7IFwKICAgICBmb3IgKHNpemVfdCBqID0g
MDsgaSA8IHNpemUoKTsgKytpLCArK2opIFwKLSAgICAgICAgYW5pbWF0aW9uKGkpLT5wcm9wU2V0
KGFuaW1hdGlvbihqKS0+cHJvcEdldCgpKTsgXAorICAgICAgICBhbmltYXRpb24oaSkucHJvcFNl
dChhbmltYXRpb24oaikucHJvcEdldCgpKTsgXAogfQogCi1BbmltYXRpb25MaXN0OjpBbmltYXRp
b25MaXN0KGNvbnN0IEFuaW1hdGlvbkxpc3QmIG8pCitBbmltYXRpb25MaXN0OjpBbmltYXRpb25M
aXN0KGNvbnN0IEFuaW1hdGlvbkxpc3QmIG90aGVyKQogewotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgby5zaXplKCk7ICsraSkKLSAgICAgICAgbV9hbmltYXRpb25zLmFwcGVuZChBbmltYXRp
b246OmNyZWF0ZShvLmFuaW1hdGlvbihpKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
b3RoZXIuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fYW5pbWF0aW9ucy5hcHBlbmQoQW5pbWF0aW9u
OjpjcmVhdGUob3RoZXIuYW5pbWF0aW9uKGkpKSk7CiB9CiAKIHZvaWQgQW5pbWF0aW9uTGlzdDo6
ZmlsbFVuc2V0UHJvcGVydGllcygpCkBAIC01MSwxMiArNTEsMTIgQEAgdm9pZCBBbmltYXRpb25M
aXN0OjpmaWxsVW5zZXRQcm9wZXJ0aWVzKCkKICAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzUHJv
cGVydHlTZXQsIHByb3BlcnR5LCBzZXRQcm9wZXJ0eSk7CiB9CiAKLWJvb2wgQW5pbWF0aW9uTGlz
dDo6b3BlcmF0b3I9PShjb25zdCBBbmltYXRpb25MaXN0JiBvKSBjb25zdAorYm9vbCBBbmltYXRp
b25MaXN0OjpvcGVyYXRvcj09KGNvbnN0IEFuaW1hdGlvbkxpc3QmIG90aGVyKSBjb25zdAogewot
ICAgIGlmIChzaXplKCkgIT0gby5zaXplKCkpCisgICAgaWYgKHNpemUoKSAhPSBvdGhlci5zaXpl
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNp
emUoKTsgKytpKQotICAgICAgICBpZiAoKmFuaW1hdGlvbihpKSAhPSAqby5hbmltYXRpb24oaSkp
CisgICAgICAgIGlmIChhbmltYXRpb24oaSkgIT0gb3RoZXIuYW5pbWF0aW9uKGkpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmgKaW5kZXggYmY4ZmY5ZjFl
ODI2MzU5ZmFkMDkyZDVmYWM2ZmZjY2Y5MWZkMjg5Yi4uZThjMjcxMzhhZmI4NmE3ZGE0ZDUzZTI1
MWNhNTQyNDNhZTkxZGJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5p
bWF0aW9uL0FuaW1hdGlvbkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmlt
YXRpb24vQW5pbWF0aW9uTGlzdC5oCkBAIC0zOCwxMCArMzgsMTAgQEAgcHVibGljOgogICAgIEFu
aW1hdGlvbkxpc3QoY29uc3QgQW5pbWF0aW9uTGlzdCYpOwogCiAgICAgdm9pZCBmaWxsVW5zZXRQ
cm9wZXJ0aWVzKCk7Ci0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEFuaW1hdGlvbkxpc3QmIG8p
IGNvbnN0OwotICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBBbmltYXRpb25MaXN0JiBvKSBjb25z
dAorICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBbmltYXRpb25MaXN0JikgY29uc3Q7CisgICAg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IEFuaW1hdGlvbkxpc3QmIG90aGVyKSBjb25zdAogICAgIHsK
LSAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gbyk7CisgICAgICAgIHJldHVybiAhKCp0aGlzID09
IG90aGVyKTsKICAgICB9CiAgICAgCiAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBt
X2FuaW1hdGlvbnMuc2l6ZSgpOyB9CkBAIC00OSwxNSArNDksMTkgQEAgcHVibGljOgogICAgIAog
ICAgIHZvaWQgcmVzaXplKHNpemVfdCBuKSB7IG1fYW5pbWF0aW9ucy5yZXNpemUobik7IH0KICAg
ICB2b2lkIHJlbW92ZShzaXplX3QgaSkgeyBtX2FuaW1hdGlvbnMucmVtb3ZlKGkpOyB9Ci0gICAg
dm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxBbmltYXRpb24+IGFuaW0pIHsgbV9hbmltYXRpb25zLmFw
cGVuZChhbmltKTsgfQorICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8QW5pbWF0aW9uPiBhbmlt
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGFuaW0pOworICAgICAgICBtX2FuaW1hdGlvbnMuYXBw
ZW5kKGFuaW0pOworICAgIH0KICAgICAKLSAgICBBbmltYXRpb24qIGFuaW1hdGlvbihzaXplX3Qg
aSkgeyByZXR1cm4gbV9hbmltYXRpb25zW2ldLmdldCgpOyB9Ci0gICAgY29uc3QgQW5pbWF0aW9u
KiBhbmltYXRpb24oc2l6ZV90IGkpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW9uc1tpXS5nZXQo
KTsgfQorICAgIEFuaW1hdGlvbiYgYW5pbWF0aW9uKHNpemVfdCBpKSB7IHJldHVybiAqbV9hbmlt
YXRpb25zW2ldOyB9CisgICAgY29uc3QgQW5pbWF0aW9uJiBhbmltYXRpb24oc2l6ZV90IGkpIGNv
bnN0IHsgcmV0dXJuICptX2FuaW1hdGlvbnNbaV07IH0KICAgICAKIHByaXZhdGU6CiAgICAgQW5p
bWF0aW9uTGlzdCYgb3BlcmF0b3I9KGNvbnN0IEFuaW1hdGlvbkxpc3QmKTsKIAotICAgIFZlY3Rv
cjxSZWZQdHI8QW5pbWF0aW9uPiA+IG1fYW5pbWF0aW9uczsKKyAgICBWZWN0b3I8UmVmUHRyPEFu
aW1hdGlvbj4+IG1fYW5pbWF0aW9uczsKIH07ICAgIAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggOTc1OTFkNmJjNWI3ZGQ1MGE5
NDZmN2I0ZmJkMzNiMjQ2ZmMxMjZlMC4uMzk5MTFjMTFlMWI4MWY1ZTE3NzdkMTViNzAxYTU1ZTc0
MWU0ZTI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKQEAgLTIxMTgsNyArMjExOCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpz
dGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmltCiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAogICAgICAgICAvLyBHZXQgdGltaW5n
IGZ1bmN0aW9uLgotICAgICAgICBSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRmID0ga2V5ZnJhbWVT
dHlsZS0+aGFzQW5pbWF0aW9ucygpID8gKCprZXlmcmFtZVN0eWxlLT5hbmltYXRpb25zKCkpLmFu
aW1hdGlvbigwKS0+dGltaW5nRnVuY3Rpb24oKSA6IDA7CisgICAgICAgIFJlZlB0cjxUaW1pbmdG
dW5jdGlvbj4gdGYgPSBrZXlmcmFtZVN0eWxlLT5oYXNBbmltYXRpb25zKCkgPyAoKmtleWZyYW1l
U3R5bGUtPmFuaW1hdGlvbnMoKSkuYW5pbWF0aW9uKDApLnRpbWluZ0Z1bmN0aW9uKCkgOiAwOwog
ICAgICAgICAKICAgICAgICAgYm9vbCBpc0ZpcnN0T3JMYXN0S2V5ZnJhbWUgPSBrZXkgPT0gMCB8
fCBrZXkgPT0gMTsKICAgICAgICAgaWYgKChoYXNUcmFuc2Zvcm0gJiYgaXNGaXJzdE9yTGFzdEtl
eWZyYW1lKSB8fCBjdXJyZW50S2V5ZnJhbWUuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdl
YmtpdFRyYW5zZm9ybSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcAppbmRleCA4ZGIzNjE0ZGQ5ZGZkMWUxMjdiNWJlMDk0ODRkZTU2MTBhMzRmMTJh
Li4zZjMxZmY0ZDRkZTAyOGZmZDQ4ODY1M2YwZGZkMGQ1ZDRiY2U2N2I1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTEyNTgsNyArMTI1
OCw3IEBAIHZvaWQgUmVuZGVyU3R5bGU6OmFkanVzdEFuaW1hdGlvbnMoKQogCiAgICAgLy8gR2V0
IHJpZCBvZiBlbXB0eSBhbmltYXRpb25zIGFuZCBhbnl0aGluZyBiZXlvbmQgdGhlbQogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgYW5pbWF0aW9uTGlzdC0+c2l6ZSgpOyArK2kpIHsKLSAgICAg
ICAgaWYgKGFuaW1hdGlvbkxpc3QtPmFuaW1hdGlvbihpKS0+aXNFbXB0eSgpKSB7CisgICAgICAg
IGlmIChhbmltYXRpb25MaXN0LT5hbmltYXRpb24oaSkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBhbmltYXRpb25MaXN0LT5yZXNpemUoaSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQpAQCAtMTI4MSw3ICsxMjgxLDcgQEAgdm9pZCBSZW5kZXJTdHlsZTo6YWRqdXN0VHJhbnNpdGlv
bnMoKQogCiAgICAgLy8gR2V0IHJpZCBvZiBlbXB0eSB0cmFuc2l0aW9ucyBhbmQgYW55dGhpbmcg
YmV5b25kIHRoZW0KICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRyYW5zaXRpb25MaXN0LT5z
aXplKCk7ICsraSkgewotICAgICAgICBpZiAodHJhbnNpdGlvbkxpc3QtPmFuaW1hdGlvbihpKS0+
aXNFbXB0eSgpKSB7CisgICAgICAgIGlmICh0cmFuc2l0aW9uTGlzdC0+YW5pbWF0aW9uKGkpLmlz
RW1wdHkoKSkgewogICAgICAgICAgICAgdHJhbnNpdGlvbkxpc3QtPnJlc2l6ZShpKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xMjk5LDcgKzEyOTksNyBAQCB2b2lkIFJlbmRl
clN0eWxlOjphZGp1c3RUcmFuc2l0aW9ucygpCiAgICAgLy8gYnV0IHRoZSBsaXN0cyB0ZW5kIHRv
IGJlIHZlcnkgc2hvcnQsIHNvIGl0IGlzIHByb2JhYmx5IG9rCiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB0cmFuc2l0aW9uTGlzdC0+c2l6ZSgpOyArK2kpIHsKICAgICAgICAgZm9yIChzaXpl
X3QgaiA9IGkrMTsgaiA8IHRyYW5zaXRpb25MaXN0LT5zaXplKCk7ICsraikgewotICAgICAgICAg
ICAgaWYgKHRyYW5zaXRpb25MaXN0LT5hbmltYXRpb24oaSktPnByb3BlcnR5KCkgPT0gdHJhbnNp
dGlvbkxpc3QtPmFuaW1hdGlvbihqKS0+cHJvcGVydHkoKSkgeworICAgICAgICAgICAgaWYgKHRy
YW5zaXRpb25MaXN0LT5hbmltYXRpb24oaSkucHJvcGVydHkoKSA9PSB0cmFuc2l0aW9uTGlzdC0+
YW5pbWF0aW9uKGopLnByb3BlcnR5KCkpIHsKICAgICAgICAgICAgICAgICAvLyB0b3NzIGkKICAg
ICAgICAgICAgICAgICB0cmFuc2l0aW9uTGlzdC0+cmVtb3ZlKGkpOwogICAgICAgICAgICAgICAg
IGogPSBpOwpAQCAtMTMyNiw5ICsxMzI2LDkgQEAgY29uc3QgQW5pbWF0aW9uKiBSZW5kZXJTdHls
ZTo6dHJhbnNpdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHkpIGNvbnMKIHsK
ICAgICBpZiAodHJhbnNpdGlvbnMoKSkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHRyYW5zaXRpb25zKCktPnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBjb25zdCBBbmltYXRp
b24qIHAgPSB0cmFuc2l0aW9ucygpLT5hbmltYXRpb24oaSk7Ci0gICAgICAgICAgICBpZiAocC0+
YW5pbWF0aW9uTW9kZSgpID09IEFuaW1hdGlvbjo6QW5pbWF0ZUFsbCB8fCBwLT5wcm9wZXJ0eSgp
ID09IHByb3BlcnR5KSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgICAgICBj
b25zdCBBbmltYXRpb24mIHAgPSB0cmFuc2l0aW9ucygpLT5hbmltYXRpb24oaSk7CisgICAgICAg
ICAgICBpZiAocC5hbmltYXRpb25Nb2RlKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRlQWxsIHx8IHAu
cHJvcGVydHkoKSA9PSBwcm9wZXJ0eSkgeworICAgICAgICAgICAgICAgIHJldHVybiAmcDsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210613</attachid>
            <date>2013-09-05 07:11:40 -0700</date>
            <delta_ts>2013-09-05 08:09:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120720-20130905071140.patch</filename>
            <type>text/plain</type>
            <size>25732</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1MDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk5NjJlODc1Mzc5MTVl
Nzc5MjdkMDMxOTljMWM2MzFiMzYyNmIzNi4uNzIzMWNkMTQ1OTZkMmQzYWYwZGM1Zjk0OGViZjRk
M2M0ZjY0NjAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTA5LTA0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQW5pbWF0aW9ucyBp
biBhbiBBbmltYXRpb25MaXN0IGFyZSBuZXZlciBudWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA3MjAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgQW5pbWF0aW9uTGlzdDo6b3BlcmF0b3Jb
XSB0byByZXR1cm4gYW4gQW5pbWF0aW9uJiBhbmQgZml4IHVwIHJlbGF0ZWQgY29kZSB0byBhbHNv
IHRha2UgcmVmZXJlbmNlcy4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwOgorICAgICAgICAq
IHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hbmltYXRpb24vQW5pbWF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL0Fu
aW1hdGlvbkxpc3QuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25M
aXN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisKIDIw
MTMtMDktMDQgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFt
ZWQgU3RhY2tJdGVyYXRvciB0byBTdGFja1Zpc2l0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDU3Y2YwZGUwNjYyMjJi
ZWJjNTQ2YmJjNzU2MGRkZjFiMTg0MTBmYzkuLmNlNzBlNTdjNTUwNWU1MzAxNDU0NDMzODI0MTk1
MmI0ZDc4ZGQyZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xMTY1LDE3ICsxMTY1LDE4IEBAIHN0YXRpYyBQYXNzUmVm
UHRyPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRQb3NpdGlvbihjb25zdCBHcmlkUG9zaXRpb24mIHBv
c2l0aW9uKQogICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKIH0KIAotc3RhdGljIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IGNyZWF0ZVRyYW5zaXRpb25Qcm9wZXJ0eVZhbHVlKGNvbnN0IEFuaW1hdGlv
biogYW5pbWF0aW9uKQorc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGNyZWF0ZVRyYW5zaXRp
b25Qcm9wZXJ0eVZhbHVlKGNvbnN0IEFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIFJlZlB0
cjxDU1NWYWx1ZT4gcHJvcGVydHlWYWx1ZTsKLSAgICBpZiAoYW5pbWF0aW9uLT5hbmltYXRpb25N
b2RlKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRlTm9uZSkKKyAgICBpZiAoYW5pbWF0aW9uLmFuaW1h
dGlvbk1vZGUoKSA9PSBBbmltYXRpb246OkFuaW1hdGVOb25lKQogICAgICAgICBwcm9wZXJ0eVZh
bHVlID0gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9uZSk7
Ci0gICAgZWxzZSBpZiAoYW5pbWF0aW9uLT5hbmltYXRpb25Nb2RlKCkgPT0gQW5pbWF0aW9uOjpB
bmltYXRlQWxsKQorICAgIGVsc2UgaWYgKGFuaW1hdGlvbi5hbmltYXRpb25Nb2RlKCkgPT0gQW5p
bWF0aW9uOjpBbmltYXRlQWxsKQogICAgICAgICBwcm9wZXJ0eVZhbHVlID0gY3NzVmFsdWVQb29s
KCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQWxsKTsKICAgICBlbHNlCi0gICAgICAg
IHByb3BlcnR5VmFsdWUgPSBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShnZXRQcm9wZXJ0eU5h
bWVTdHJpbmcoYW5pbWF0aW9uLT5wcm9wZXJ0eSgpKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19T
VFJJTkcpOworICAgICAgICBwcm9wZXJ0eVZhbHVlID0gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFs
dWUoZ2V0UHJvcGVydHlOYW1lU3RyaW5nKGFuaW1hdGlvbi5wcm9wZXJ0eSgpKSwgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19TVFJJTkcpOwogICAgIHJldHVybiBwcm9wZXJ0eVZhbHVlLnJlbGVhc2Uo
KTsKIH0KKwogc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGdldFRyYW5zaXRpb25Qcm9wZXJ0
eVZhbHVlKGNvbnN0IEFuaW1hdGlvbkxpc3QqIGFuaW1MaXN0KQogewogICAgIFJlZlB0cjxDU1NW
YWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CkBA
IC0xMTkyLDcgKzExOTMsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0RGVsYXlW
YWx1ZShjb25zdCBBbmltYXRpb25MaXN0KiBhbmltTGlzdCkKICAgICBSZWZQdHI8Q1NTVmFsdWVM
aXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOwogICAgIGlm
IChhbmltTGlzdCkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFuaW1MaXN0LT5z
aXplKCk7ICsraSkKLSAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVh
dGVWYWx1ZShhbmltTGlzdC0+YW5pbWF0aW9uKGkpLT5kZWxheSgpLCBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1MpKTsKKyAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVh
dGVWYWx1ZShhbmltTGlzdC0+YW5pbWF0aW9uKGkpLmRlbGF5KCksIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfUykpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIE5vdGUgdGhhdCBpbml0aWFsQW5p
bWF0aW9uRGVsYXkoKSBpcyB1c2VkIGZvciBib3RoIHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25z
CiAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShBbmltYXRp
b246OmluaXRpYWxBbmltYXRpb25EZWxheSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1MpKTsK
QEAgLTEyMDUsNyArMTIwNiw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBnZXREdXJh
dGlvblZhbHVlKGNvbnN0IEFuaW1hdGlvbkxpc3QqIGFuaW1MaXN0KQogICAgIFJlZlB0cjxDU1NW
YWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CiAg
ICAgaWYgKGFuaW1MaXN0KSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYW5pbUxp
c3QtPnNpemUoKTsgKytpKQotICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgp
LmNyZWF0ZVZhbHVlKGFuaW1MaXN0LT5hbmltYXRpb24oaSktPmR1cmF0aW9uKCksIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUykpOworICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9v
bCgpLmNyZWF0ZVZhbHVlKGFuaW1MaXN0LT5hbmltYXRpb24oaSkuZHVyYXRpb24oKSwgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19TKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gTm90ZSB0aGF0
IGluaXRpYWxBbmltYXRpb25EdXJhdGlvbigpIGlzIHVzZWQgZm9yIGJvdGggdHJhbnNpdGlvbnMg
YW5kIGFuaW1hdGlvbnMKICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0
ZVZhbHVlKEFuaW1hdGlvbjo6aW5pdGlhbEFuaW1hdGlvbkR1cmF0aW9uKCksIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfUykpOwpAQCAtMTI1NCw3ICsxMjU1LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IGdldFRpbWluZ0Z1bmN0aW9uVmFsdWUoY29uc3QgQW5pbWF0aW9uTGlzdCogYW5p
bUxpc3QKICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVh
dGVDb21tYVNlcGFyYXRlZCgpOwogICAgIGlmIChhbmltTGlzdCkgewogICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGFuaW1MaXN0LT5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGxpc3Qt
PmFwcGVuZChjcmVhdGVUaW1pbmdGdW5jdGlvblZhbHVlKGFuaW1MaXN0LT5hbmltYXRpb24oaSkt
PnRpbWluZ0Z1bmN0aW9uKCkuZ2V0KCkpKTsKKyAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjcmVh
dGVUaW1pbmdGdW5jdGlvblZhbHVlKGFuaW1MaXN0LT5hbmltYXRpb24oaSkudGltaW5nRnVuY3Rp
b24oKS5nZXQoKSkpOwogICAgIH0gZWxzZQogICAgICAgICAvLyBOb3RlIHRoYXQgaW5pdGlhbEFu
aW1hdGlvblRpbWluZ0Z1bmN0aW9uKCkgaXMgdXNlZCBmb3IgYm90aCB0cmFuc2l0aW9ucyBhbmQg
YW5pbWF0aW9ucwogICAgICAgICBsaXN0LT5hcHBlbmQoY3JlYXRlVGltaW5nRnVuY3Rpb25WYWx1
ZShBbmltYXRpb246OmluaXRpYWxBbmltYXRpb25UaW1pbmdGdW5jdGlvbigpLmdldCgpKSk7CkBA
IC0yNTIzLDcgKzI1MjQsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0
cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydAogICAgICAgICAgICAg
Y29uc3QgQW5pbWF0aW9uTGlzdCogdCA9IHN0eWxlLT5hbmltYXRpb25zKCk7CiAgICAgICAgICAg
ICBpZiAodCkgewogICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdC0+c2l6
ZSgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHQtPmFuaW1hdGlvbihpKS0+ZGly
ZWN0aW9uKCkpCisgICAgICAgICAgICAgICAgICAgIGlmICh0LT5hbmltYXRpb24oaSkuZGlyZWN0
aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29s
KCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQWx0ZXJuYXRlKSk7CiAgICAgICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NW
YWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb3JtYWwpKTsKQEAgLTI1
MzksNyArMjU0MCw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0
b3I6OnByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0CiAgICAgICAgICAgICBjb25z
dCBBbmltYXRpb25MaXN0KiB0ID0gc3R5bGUtPmFuaW1hdGlvbnMoKTsKICAgICAgICAgICAgIGlm
ICh0KSB7CiAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0LT5zaXplKCk7
ICsraSkgewotICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHQtPmFuaW1hdGlvbihpKS0+Zmls
bE1vZGUoKSkgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHQtPmFuaW1hdGlvbihpKS5m
aWxsTW9kZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQW5pbWF0aW9uRmlsbE1vZGVO
b25lOgogICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgp
LmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtMjU2Myw3ICsyNTY0LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnQKICAgICAgICAgICAgIGNvbnN0IEFuaW1hdGlvbkxpc3QqIHQgPSBzdHlsZS0+YW5pbWF0aW9u
cygpOwogICAgICAgICAgICAgaWYgKHQpIHsKICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHQtPnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRvdWJsZSBp
dGVyYXRpb25Db3VudCA9IHQtPmFuaW1hdGlvbihpKS0+aXRlcmF0aW9uQ291bnQoKTsKKyAgICAg
ICAgICAgICAgICAgICAgZG91YmxlIGl0ZXJhdGlvbkNvdW50ID0gdC0+YW5pbWF0aW9uKGkpLml0
ZXJhdGlvbkNvdW50KCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVyYXRpb25Db3VudCA9
PSBBbmltYXRpb246Okl0ZXJhdGlvbkNvdW50SW5maW5pdGUpCiAgICAgICAgICAgICAgICAgICAg
ICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENT
U1ZhbHVlSW5maW5pdGUpKTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQpAQCAtMjU3OCw3ICsy
NTc5LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJv
cGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnQKICAgICAgICAgICAgIGNvbnN0IEFuaW1h
dGlvbkxpc3QqIHQgPSBzdHlsZS0+YW5pbWF0aW9ucygpOwogICAgICAgICAgICAgaWYgKHQpIHsK
ICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHQtPnNpemUoKTsgKytpKQot
ICAgICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFs
dWUodC0+YW5pbWF0aW9uKGkpLT5uYW1lKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5H
KSk7CisgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVh
dGVWYWx1ZSh0LT5hbmltYXRpb24oaSkubmFtZSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NU
UklORykpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5k
KGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpKTsKICAg
ICAgICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKQEAgLTI1ODgsNyArMjU4OSw3IEBAIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFsdWUo
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0CiAgICAgICAgICAgICBjb25zdCBBbmltYXRpb25MaXN0KiB0
ID0gc3R5bGUtPmFuaW1hdGlvbnMoKTsKICAgICAgICAgICAgIGlmICh0KSB7CiAgICAgICAgICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0LT5zaXplKCk7ICsraSkgewotICAgICAgICAg
ICAgICAgICAgICBpbnQgcHJvcCA9IHQtPmFuaW1hdGlvbihpKS0+cGxheVN0YXRlKCk7CisgICAg
ICAgICAgICAgICAgICAgIGludCBwcm9wID0gdC0+YW5pbWF0aW9uKGkpLnBsYXlTdGF0ZSgpOwog
ICAgICAgICAgICAgICAgICAgICBpZiAocHJvcCA9PSBBbmltUGxheVN0YXRlUGxheWluZykKICAg
ICAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJ
ZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVSdW5uaW5nKSk7CiAgICAgICAgICAgICAgICAgICAgIGVs
c2UKQEAgLTI3NDIsMTEgKzI3NDMsMTEgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRT
dHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnQKICAgICAg
ICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiB0cmFuc2l0aW9uc0xpc3QgPSBDU1NWYWx1
ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CiAgICAgICAgICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBhbmltTGlzdC0+c2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgICAgICAg
ICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VT
ZXBhcmF0ZWQoKTsKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRp
b24gPSBhbmltTGlzdC0+YW5pbWF0aW9uKGkpOworICAgICAgICAgICAgICAgICAgICBjb25zdCBB
bmltYXRpb24mIGFuaW1hdGlvbiA9IGFuaW1MaXN0LT5hbmltYXRpb24oaSk7CiAgICAgICAgICAg
ICAgICAgICAgIGxpc3QtPmFwcGVuZChjcmVhdGVUcmFuc2l0aW9uUHJvcGVydHlWYWx1ZShhbmlt
YXRpb24pKTsKLSAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgp
LmNyZWF0ZVZhbHVlKGFuaW1hdGlvbi0+ZHVyYXRpb24oKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19TKSk7Ci0gICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjcmVhdGVUaW1pbmdGdW5j
dGlvblZhbHVlKGFuaW1hdGlvbi0+dGltaW5nRnVuY3Rpb24oKS5nZXQoKSkpOwotICAgICAgICAg
ICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoYW5pbWF0
aW9uLT5kZWxheSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1MpKTsKKyAgICAgICAgICAgICAg
ICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKGFuaW1hdGlvbi5k
dXJhdGlvbigpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1MpKTsKKyAgICAgICAgICAgICAgICAg
ICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVRpbWluZ0Z1bmN0aW9uVmFsdWUoYW5pbWF0aW9uLnRpbWlu
Z0Z1bmN0aW9uKCkuZ2V0KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNz
c1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKGFuaW1hdGlvbi5kZWxheSgpLCBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1MpKTsKICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbnNMaXN0LT5hcHBl
bmQobGlzdCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVybiB0cmFu
c2l0aW9uc0xpc3QucmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Rl
cHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRT
dHlsZUJ1aWxkZXIuY3BwCmluZGV4IGE5NDZkZWQzM2Q2Mjg0NWUyNzBkYjY4ZDgzOTAwNDE3ZjJi
MGFlMDcuLjIxZmMxNjY3YzBiODY2NjRjYzI0YTdhMmQyM2JiYjhlMTA4Njc3OWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKQEAgLTE2MzUsMTIg
KzE2MzUsMTIgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsCiAgICAgICAgICAgY29uc3QgQW5pbWF0
aW9uTGlzdCogKFJlbmRlclN0eWxlOjoqaW1tdXRhYmxlQW5pbWF0aW9uR2V0dGVyRnVuY3Rpb24p
KCkgY29uc3Q+CiBjbGFzcyBBcHBseVByb3BlcnR5QW5pbWF0aW9uIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgdm9pZCBzZXRWYWx1ZShBbmltYXRpb24qIGFuaW1hdGlvbiwgVCB2YWx1ZSkgeyAoYW5p
bWF0aW9uLT4qc2V0dGVyRnVuY3Rpb24pKHZhbHVlKTsgfQotICAgIHN0YXRpYyBUIHZhbHVlKGNv
bnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uKSB7IHJldHVybiAoYW5pbWF0aW9uLT4qZ2V0dGVyRnVu
Y3Rpb24pKCk7IH0KLSAgICBzdGF0aWMgYm9vbCB0ZXN0KGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0
aW9uKSB7IHJldHVybiAoYW5pbWF0aW9uLT4qdGVzdEZ1bmN0aW9uKSgpOyB9Ci0gICAgc3RhdGlj
IHZvaWQgY2xlYXIoQW5pbWF0aW9uKiBhbmltYXRpb24pIHsgKGFuaW1hdGlvbi0+KmNsZWFyRnVu
Y3Rpb24pKCk7IH0KKyAgICBzdGF0aWMgdm9pZCBzZXRWYWx1ZShBbmltYXRpb24mIGFuaW1hdGlv
biwgVCB2YWx1ZSkgeyAoYW5pbWF0aW9uLipzZXR0ZXJGdW5jdGlvbikodmFsdWUpOyB9CisgICAg
c3RhdGljIFQgdmFsdWUoY29uc3QgQW5pbWF0aW9uJiBhbmltYXRpb24pIHsgcmV0dXJuIChhbmlt
YXRpb24uKmdldHRlckZ1bmN0aW9uKSgpOyB9CisgICAgc3RhdGljIGJvb2wgdGVzdChjb25zdCBB
bmltYXRpb24mIGFuaW1hdGlvbikgeyByZXR1cm4gKGFuaW1hdGlvbi4qdGVzdEZ1bmN0aW9uKSgp
OyB9CisgICAgc3RhdGljIHZvaWQgY2xlYXIoQW5pbWF0aW9uJiBhbmltYXRpb24pIHsgKGFuaW1h
dGlvbi4qY2xlYXJGdW5jdGlvbikoKTsgfQogICAgIHN0YXRpYyBUIGluaXRpYWwoKSB7IHJldHVy
biAoKmluaXRpYWxGdW5jdGlvbikoKTsgfQotICAgIHN0YXRpYyB2b2lkIG1hcChTdHlsZVJlc29s
dmVyKiBzdHlsZVJlc29sdmVyLCBBbmltYXRpb24qIGFuaW1hdGlvbiwgQ1NTVmFsdWUqIHZhbHVl
KSB7IChzdHlsZVJlc29sdmVyLT5zdHlsZU1hcCgpLT4qbWFwRnVuY3Rpb24pKGFuaW1hdGlvbiwg
dmFsdWUpOyB9CisgICAgc3RhdGljIHZvaWQgbWFwKFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2
ZXIsIEFuaW1hdGlvbiYgYW5pbWF0aW9uLCBDU1NWYWx1ZSogdmFsdWUpIHsgKHN0eWxlUmVzb2x2
ZXItPnN0eWxlTWFwKCktPiptYXBGdW5jdGlvbikoJmFuaW1hdGlvbiwgdmFsdWUpOyB9CiAgICAg
c3RhdGljIEFuaW1hdGlvbkxpc3QqIGFjY2Vzc0FuaW1hdGlvbnMoUmVuZGVyU3R5bGUqIHN0eWxl
KSB7IHJldHVybiAoc3R5bGUtPiphbmltYXRpb25HZXR0ZXJGdW5jdGlvbikoKTsgfQogICAgIHN0
YXRpYyBjb25zdCBBbmltYXRpb25MaXN0KiBhbmltYXRpb25zKFJlbmRlclN0eWxlKiBzdHlsZSkg
eyByZXR1cm4gKHN0eWxlLT4qaW1tdXRhYmxlQW5pbWF0aW9uR2V0dGVyRnVuY3Rpb24pKCk7IH0K
IApAQCAtMTY1Myw3ICsxNjUzLDcgQEAgcHVibGljOgogICAgICAgICAgICAgaWYgKGxpc3QtPnNp
emUoKSA8PSBpKQogICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChBbmltYXRpb246OmNyZWF0
ZSgpKTsKICAgICAgICAgICAgIHNldFZhbHVlKGxpc3QtPmFuaW1hdGlvbihpKSwgdmFsdWUocGFy
ZW50TGlzdC0+YW5pbWF0aW9uKGkpKSk7Ci0gICAgICAgICAgICBsaXN0LT5hbmltYXRpb24oaSkt
PnNldEFuaW1hdGlvbk1vZGUocGFyZW50TGlzdC0+YW5pbWF0aW9uKGkpLT5hbmltYXRpb25Nb2Rl
KCkpOworICAgICAgICAgICAgbGlzdC0+YW5pbWF0aW9uKGkpLnNldEFuaW1hdGlvbk1vZGUocGFy
ZW50TGlzdC0+YW5pbWF0aW9uKGkpLmFuaW1hdGlvbk1vZGUoKSk7CiAgICAgICAgIH0KIAogICAg
ICAgICAvKiBSZXNldCBhbnkgcmVtYWluaW5nIGFuaW1hdGlvbnMgdG8gbm90IGhhdmUgdGhlIHBy
b3BlcnR5IHNldC4gKi8KQEAgLTE2NjgsNyArMTY2OCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IGxpc3QtPmFwcGVuZChBbmltYXRpb246OmNyZWF0ZSgpKTsKICAgICAgICAgc2V0VmFsdWUobGlz
dC0+YW5pbWF0aW9uKDApLCBpbml0aWFsKCkpOwogICAgICAgICBpZiAocHJvcGVydHlJRCA9PSBD
U1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eSkKLSAgICAgICAgICAgIGxpc3QtPmFu
aW1hdGlvbigwKS0+c2V0QW5pbWF0aW9uTW9kZShBbmltYXRpb246OkFuaW1hdGVBbGwpOworICAg
ICAgICAgICAgbGlzdC0+YW5pbWF0aW9uKDApLnNldEFuaW1hdGlvbk1vZGUoQW5pbWF0aW9uOjpB
bmltYXRlQWxsKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBsaXN0LT5zaXplKCk7
ICsraSkKICAgICAgICAgICAgIGNsZWFyKGxpc3QtPmFuaW1hdGlvbihpKSk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5j
cHAKaW5kZXggYTM2NDFlYTk5NGRkYjE1M2YyM2ExMDU4YTViYWIwZDllMzRlMDhmOS4uN2YwNDM1
YTZiYjE4ZDdlNmE1NmZmMDY1NWQyOGQ1YWEyYjg5ZTA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC05NywxNCAr
OTcsMTQgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZVRyYW5zaXRpb25zKFJlbmRl
ck9iamVjdCogcmVuZGVyZXIsIFJlbmRlclN0eWxlKgogICAgIC8vIENoZWNrIHRvIHNlZSBpZiB3
ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgYWN0aXZlIHRyYW5zaXRpb25zCiAgICAgaWYgKHRhcmdldFN0
eWxlLT50cmFuc2l0aW9ucygpKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGFy
Z2V0U3R5bGUtPnRyYW5zaXRpb25zKCktPnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBjb25z
dCBBbmltYXRpb24qIGFuaW0gPSB0YXJnZXRTdHlsZS0+dHJhbnNpdGlvbnMoKS0+YW5pbWF0aW9u
KGkpOwotICAgICAgICAgICAgYm9vbCBpc0FjdGl2ZVRyYW5zaXRpb24gPSAhbV9zdXNwZW5kZWQg
JiYgKGFuaW0tPmR1cmF0aW9uKCkgfHwgYW5pbS0+ZGVsYXkoKSA+IDApOworICAgICAgICAgICAg
Y29uc3QgQW5pbWF0aW9uJiBhbmltYXRpb24gPSB0YXJnZXRTdHlsZS0+dHJhbnNpdGlvbnMoKS0+
YW5pbWF0aW9uKGkpOworICAgICAgICAgICAgYm9vbCBpc0FjdGl2ZVRyYW5zaXRpb24gPSAhbV9z
dXNwZW5kZWQgJiYgKGFuaW1hdGlvbi5kdXJhdGlvbigpIHx8IGFuaW1hdGlvbi5kZWxheSgpID4g
MCk7CiAKLSAgICAgICAgICAgIEFuaW1hdGlvbjo6QW5pbWF0aW9uTW9kZSBtb2RlID0gYW5pbS0+
YW5pbWF0aW9uTW9kZSgpOworICAgICAgICAgICAgQW5pbWF0aW9uOjpBbmltYXRpb25Nb2RlIG1v
ZGUgPSBhbmltYXRpb24uYW5pbWF0aW9uTW9kZSgpOwogICAgICAgICAgICAgaWYgKG1vZGUgPT0g
QW5pbWF0aW9uOjpBbmltYXRlTm9uZSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wID0gYW5pbS0+cHJvcGVydHkoKTsKKyAgICAgICAg
ICAgIENTU1Byb3BlcnR5SUQgcHJvcCA9IGFuaW1hdGlvbi5wcm9wZXJ0eSgpOwogCiAgICAgICAg
ICAgICBib29sIGFsbCA9IG1vZGUgPT0gQW5pbWF0aW9uOjpBbmltYXRlQWxsOwogCkBAIC0xNzQs
OSArMTc0LDkgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZVRyYW5zaXRpb25zKFJl
bmRlck9iamVjdCogcmVuZGVyZXIsIFJlbmRlclN0eWxlKgogICAgICAgICAgICAgICAgIC8vIDxo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3ODc+CiAgICAgICAgICAg
ICAgICAgaWYgKCFlcXVhbCAmJiBpc0FjdGl2ZVRyYW5zaXRpb24pIHsKICAgICAgICAgICAgICAg
ICAgICAgLy8gQWRkIHRoZSBuZXcgdHJhbnNpdGlvbgotICAgICAgICAgICAgICAgICAgICBSZWZQ
dHI8SW1wbGljaXRBbmltYXRpb24+IGFuaW1hdGlvbiA9IEltcGxpY2l0QW5pbWF0aW9uOjpjcmVh
dGUoY29uc3RfY2FzdDxBbmltYXRpb24qPihhbmltKSwgcHJvcCwgcmVuZGVyZXIsIHRoaXMsIG1v
ZGlmaWVkQ3VycmVudFN0eWxlID8gbW9kaWZpZWRDdXJyZW50U3R5bGUuZ2V0KCkgOiBmcm9tU3R5
bGUpOwotICAgICAgICAgICAgICAgICAgICBMT0coQW5pbWF0aW9ucywgIkNyZWF0ZWQgSW1wbGlj
aXRBbmltYXRpb24gJXAgZm9yIHByb3BlcnR5ICVzIGR1cmF0aW9uICUuMmYgZGVsYXkgJS4yZiIs
IGFuaW1hdGlvbi5nZXQoKSwgZ2V0UHJvcGVydHlOYW1lKHByb3ApLCBhbmltLT5kdXJhdGlvbigp
LCBhbmltLT5kZWxheSgpKTsKLSAgICAgICAgICAgICAgICAgICAgbV90cmFuc2l0aW9ucy5zZXQo
cHJvcCwgYW5pbWF0aW9uLnJlbGVhc2UoKSk7CisgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxJ
bXBsaWNpdEFuaW1hdGlvbj4gaW1wbGljaXRBbmltYXRpb24gPSBJbXBsaWNpdEFuaW1hdGlvbjo6
Y3JlYXRlKGNvbnN0X2Nhc3Q8QW5pbWF0aW9uKj4oJmFuaW1hdGlvbiksIHByb3AsIHJlbmRlcmVy
LCB0aGlzLCBtb2RpZmllZEN1cnJlbnRTdHlsZSA/IG1vZGlmaWVkQ3VycmVudFN0eWxlLmdldCgp
IDogZnJvbVN0eWxlKTsKKyAgICAgICAgICAgICAgICAgICAgTE9HKEFuaW1hdGlvbnMsICJDcmVh
dGVkIEltcGxpY2l0QW5pbWF0aW9uICVwIGZvciBwcm9wZXJ0eSAlcyBkdXJhdGlvbiAlLjJmIGRl
bGF5ICUuMmYiLCBpbXBsaWNpdEFuaW1hdGlvbi5nZXQoKSwgZ2V0UHJvcGVydHlOYW1lKHByb3Ap
LCBhbmltYXRpb24uZHVyYXRpb24oKSwgYW5pbWF0aW9uLmRlbGF5KCkpOworICAgICAgICAgICAg
ICAgICAgICBtX3RyYW5zaXRpb25zLnNldChwcm9wLCBpbXBsaWNpdEFuaW1hdGlvbi5yZWxlYXNl
KCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAvLyBXZSBvbmx5IG5lZWQgb25lIHBhc3MgZm9yIHRoZSBzaW5nbGUgcHJvcCBjYXNlCkBAIC0y
MzQsMTAgKzIzNCwxMCBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVB
bmltYXRpb25zKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIFJlbmRlcgogICAgICAgICBpZiAodGFy
Z2V0U3R5bGUtPmFuaW1hdGlvbnMoKSkgewogICAgICAgICAgICAgaW50IG51bUFuaW1zID0gdGFy
Z2V0U3R5bGUtPmFuaW1hdGlvbnMoKS0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBudW1BbmltczsgKytpKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9u
KiBhbmltID0gdGFyZ2V0U3R5bGUtPmFuaW1hdGlvbnMoKS0+YW5pbWF0aW9uKGkpOwotICAgICAg
ICAgICAgICAgIEF0b21pY1N0cmluZyBhbmltYXRpb25OYW1lKGFuaW0tPm5hbWUoKSk7CisgICAg
ICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uJiBhbmltYXRpb24gPSB0YXJnZXRTdHlsZS0+YW5p
bWF0aW9ucygpLT5hbmltYXRpb24oaSk7CisgICAgICAgICAgICAgICAgQXRvbWljU3RyaW5nIGFu
aW1hdGlvbk5hbWUoYW5pbWF0aW9uLm5hbWUoKSk7CiAKLSAgICAgICAgICAgICAgICBpZiAoIWFu
aW0tPmlzVmFsaWRBbmltYXRpb24oKSkKKyAgICAgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbi5p
c1ZhbGlkQW5pbWF0aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8vIFNlZSBpZiB0aGVyZSBpcyBhIGN1cnJlbnQg
YW5pbWF0aW9uIGZvciB0aGlzIG5hbWUuCkBAIC0yNTEsMTQgKzI1MSwxNCBAQCB2b2lkIENvbXBv
c2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVBbmltYXRpb25zKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIsIFJlbmRlcgogICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIG9uZSBpcyBzdGlsbCBh
Y3RpdmUuCiAKICAgICAgICAgICAgICAgICAgICAgLy8gQW5pbWF0aW9ucyBtYXRjaCwgYnV0IHBs
YXkgc3RhdGVzIG1heSBkaWZmZXIuIFVwZGF0ZSBpZiBuZWVkZWQuCi0gICAgICAgICAgICAgICAg
ICAgIGtleWZyYW1lQW5pbS0+dXBkYXRlUGxheVN0YXRlKGFuaW0tPnBsYXlTdGF0ZSgpKTsKKyAg
ICAgICAgICAgICAgICAgICAga2V5ZnJhbWVBbmltLT51cGRhdGVQbGF5U3RhdGUoYW5pbWF0aW9u
LnBsYXlTdGF0ZSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgIC8vIFNldCB0aGUgc2F2ZWQgYW5pbWF0aW9uIHRvIHRoaXMgbmV3IG9uZSwg
anVzdCBpbiBjYXNlIHRoZSBwbGF5IHN0YXRlIGhhcyBjaGFuZ2VkLgotICAgICAgICAgICAgICAg
ICAgICBrZXlmcmFtZUFuaW0tPnNldEFuaW1hdGlvbihhbmltKTsKKyAgICAgICAgICAgICAgICAg
ICAga2V5ZnJhbWVBbmltLT5zZXRBbmltYXRpb24oJmFuaW1hdGlvbik7CiAgICAgICAgICAgICAg
ICAgICAgIGtleWZyYW1lQW5pbS0+c2V0SW5kZXgoaSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNl
IGlmICgoYW5pbS0+ZHVyYXRpb24oKSB8fCBhbmltLT5kZWxheSgpKSAmJiBhbmltLT5pdGVyYXRp
b25Db3VudCgpICYmIGFuaW1hdGlvbk5hbWUgIT0gbm9uZSkgewotICAgICAgICAgICAgICAgICAg
ICBrZXlmcmFtZUFuaW0gPSBLZXlmcmFtZUFuaW1hdGlvbjo6Y3JlYXRlKGNvbnN0X2Nhc3Q8QW5p
bWF0aW9uKj4oYW5pbSksIHJlbmRlcmVyLCBpLCB0aGlzLCB0YXJnZXRTdHlsZSk7Ci0gICAgICAg
ICAgICAgICAgICAgIExPRyhBbmltYXRpb25zLCAiQ3JlYXRpbmcgS2V5ZnJhbWVBbmltYXRpb24g
JXAgd2l0aCBrZXlmcmFtZXMgJXMsIGR1cmF0aW9uICUuMmYsIGRlbGF5ICUuMmYsIGl0ZXJhdGlv
bnMgJS4yZiIsIGtleWZyYW1lQW5pbS5nZXQoKSwgYW5pbS0+bmFtZSgpLnV0ZjgoKS5kYXRhKCks
IGFuaW0tPmR1cmF0aW9uKCksIGFuaW0tPmRlbGF5KCksIGFuaW0tPml0ZXJhdGlvbkNvdW50KCkp
OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKGFuaW1hdGlvbi5kdXJhdGlvbigpIHx8IGFu
aW1hdGlvbi5kZWxheSgpKSAmJiBhbmltYXRpb24uaXRlcmF0aW9uQ291bnQoKSAmJiBhbmltYXRp
b25OYW1lICE9IG5vbmUpIHsKKyAgICAgICAgICAgICAgICAgICAga2V5ZnJhbWVBbmltID0gS2V5
ZnJhbWVBbmltYXRpb246OmNyZWF0ZShjb25zdF9jYXN0PEFuaW1hdGlvbio+KCZhbmltYXRpb24p
LCByZW5kZXJlciwgaSwgdGhpcywgdGFyZ2V0U3R5bGUpOworICAgICAgICAgICAgICAgICAgICBM
T0coQW5pbWF0aW9ucywgIkNyZWF0aW5nIEtleWZyYW1lQW5pbWF0aW9uICVwIHdpdGgga2V5ZnJh
bWVzICVzLCBkdXJhdGlvbiAlLjJmLCBkZWxheSAlLjJmLCBpdGVyYXRpb25zICUuMmYiLCBrZXlm
cmFtZUFuaW0uZ2V0KCksIGFuaW1hdGlvbi5uYW1lKCkudXRmOCgpLmRhdGEoKSwgYW5pbWF0aW9u
LmR1cmF0aW9uKCksIGFuaW1hdGlvbi5kZWxheSgpLCBhbmltYXRpb24uaXRlcmF0aW9uQ291bnQo
KSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChtX3N1c3BlbmRlZCkgewogICAgICAgICAgICAg
ICAgICAgICAgICAga2V5ZnJhbWVBbmltLT51cGRhdGVQbGF5U3RhdGUoQW5pbVBsYXlTdGF0ZVBh
dXNlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBMT0coQW5pbWF0aW9ucywgIiAgKGNyZWF0
ZWQgaW4gc3VzcGVuZGVkL3BhdXNlZCBzdGF0ZSkiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAppbmRleCAzMDViNmI0ZjgzODcy
MmZiZjY1MTZmNmM2OGI2YmJiNzhkZmJmOWI4Li5lZjA2OGU5NTM5MThiNDQwNWM1ZTRmNTJkMjU0
NWJkNzdmNTc5YTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9L
ZXlmcmFtZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
S2V5ZnJhbWVBbmltYXRpb24uY3BwCkBAIC03Myw4ICs3Myw4IEBAIHN0YXRpYyBjb25zdCBBbmlt
YXRpb24qIGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5TmFtZShjb25zdCBSZW5kZXJTdHlsZSogc3R5
bGUsIGNvCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
dHlsZS0+YW5pbWF0aW9ucygpLT5zaXplKCk7IGkrKykgewotICAgICAgICBpZiAobmFtZSA9PSBz
dHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSktPm5hbWUoKSkKLSAgICAgICAgICAgIHJl
dHVybiBzdHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSk7CisgICAgICAgIGlmIChuYW1l
ID09IHN0eWxlLT5hbmltYXRpb25zKCktPmFuaW1hdGlvbihpKS5uYW1lKCkpCisgICAgICAgICAg
ICByZXR1cm4gJnN0eWxlLT5hbmltYXRpb25zKCktPmFuaW1hdGlvbihpKTsKICAgICB9CiAKICAg
ICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlv
bi9BbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRp
b24uaAppbmRleCA4MTA2ZWZkYmY0ZTNiZWE0ZTkxZjUwMjBiMGViOGVkOGFlNThkYzNkLi5iYzIz
OTk2YzY5Y2MxNjdlMDIwM2VjY2YwMzQxZDJmYzYzYTg5MzU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCkBAIC0zOSw3ICszOSw3IEBAIHB1Ymxp
YzoKICAgICB+QW5pbWF0aW9uKCk7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxBbmltYXRpb24+
IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBBbmltYXRpb24pOyB9Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8QW5pbWF0aW9uPiBjcmVhdGUoY29uc3QgQW5pbWF0aW9uKiBvKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgQW5pbWF0aW9uKCpvKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxB
bmltYXRpb24+IGNyZWF0ZShjb25zdCBBbmltYXRpb24mIG90aGVyKSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgQW5pbWF0aW9uKG90aGVyKSk7IH0KIAogICAgIGJvb2wgaXNEZWxheVNldCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVsYXlTZXQ7IH0KICAgICBib29sIGlzRGlyZWN0aW9uU2V0KCkgY29uc3Qg
eyByZXR1cm4gbV9kaXJlY3Rpb25TZXQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcAppbmRleCA1OGE0MGFhZTQyZmNmODg0MTFl
Y2E4NGZmODllNjdiNzkxNWFhY2YxLi42MjVkNzkwMTVhMDc0MDZhMjk5ODgwMTNhNjUyMDZiNTA4
NDI3MWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5p
bWF0aW9uTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0Fu
aW1hdGlvbkxpc3QuY3BwCkBAIC0yNSwxNiArMjUsMTYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogI2RlZmluZSBGSUxMX1VOU0VUX1BST1BFUlRZKHRlc3QsIHByb3BHZXQsIHByb3BTZXQpIFwK
LWZvciAoaSA9IDA7IGkgPCBzaXplKCkgJiYgYW5pbWF0aW9uKGkpLT50ZXN0KCk7ICsraSkgeyB9
IFwKK2ZvciAoaSA9IDA7IGkgPCBzaXplKCkgJiYgYW5pbWF0aW9uKGkpLnRlc3QoKTsgKytpKSB7
IH0gXAogaWYgKGkgPCBzaXplKCkgJiYgaSAhPSAwKSB7IFwKICAgICBmb3IgKHNpemVfdCBqID0g
MDsgaSA8IHNpemUoKTsgKytpLCArK2opIFwKLSAgICAgICAgYW5pbWF0aW9uKGkpLT5wcm9wU2V0
KGFuaW1hdGlvbihqKS0+cHJvcEdldCgpKTsgXAorICAgICAgICBhbmltYXRpb24oaSkucHJvcFNl
dChhbmltYXRpb24oaikucHJvcEdldCgpKTsgXAogfQogCi1BbmltYXRpb25MaXN0OjpBbmltYXRp
b25MaXN0KGNvbnN0IEFuaW1hdGlvbkxpc3QmIG8pCitBbmltYXRpb25MaXN0OjpBbmltYXRpb25M
aXN0KGNvbnN0IEFuaW1hdGlvbkxpc3QmIG90aGVyKQogewotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgby5zaXplKCk7ICsraSkKLSAgICAgICAgbV9hbmltYXRpb25zLmFwcGVuZChBbmltYXRp
b246OmNyZWF0ZShvLmFuaW1hdGlvbihpKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
b3RoZXIuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fYW5pbWF0aW9ucy5hcHBlbmQoQW5pbWF0aW9u
OjpjcmVhdGUob3RoZXIuYW5pbWF0aW9uKGkpKSk7CiB9CiAKIHZvaWQgQW5pbWF0aW9uTGlzdDo6
ZmlsbFVuc2V0UHJvcGVydGllcygpCkBAIC01MSwxMiArNTEsMTIgQEAgdm9pZCBBbmltYXRpb25M
aXN0OjpmaWxsVW5zZXRQcm9wZXJ0aWVzKCkKICAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzUHJv
cGVydHlTZXQsIHByb3BlcnR5LCBzZXRQcm9wZXJ0eSk7CiB9CiAKLWJvb2wgQW5pbWF0aW9uTGlz
dDo6b3BlcmF0b3I9PShjb25zdCBBbmltYXRpb25MaXN0JiBvKSBjb25zdAorYm9vbCBBbmltYXRp
b25MaXN0OjpvcGVyYXRvcj09KGNvbnN0IEFuaW1hdGlvbkxpc3QmIG90aGVyKSBjb25zdAogewot
ICAgIGlmIChzaXplKCkgIT0gby5zaXplKCkpCisgICAgaWYgKHNpemUoKSAhPSBvdGhlci5zaXpl
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNp
emUoKTsgKytpKQotICAgICAgICBpZiAoKmFuaW1hdGlvbihpKSAhPSAqby5hbmltYXRpb24oaSkp
CisgICAgICAgIGlmIChhbmltYXRpb24oaSkgIT0gb3RoZXIuYW5pbWF0aW9uKGkpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmgKaW5kZXggYmY4ZmY5ZjFl
ODI2MzU5ZmFkMDkyZDVmYWM2ZmZjY2Y5MWZkMjg5Yi4uYzg0Y2I5YjFkMTUxNjNkMDc2ODkzNzQ2
MTc0MDZkODQ5NDBkYWFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5p
bWF0aW9uL0FuaW1hdGlvbkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmlt
YXRpb24vQW5pbWF0aW9uTGlzdC5oCkBAIC0zOCwxMCArMzgsMTAgQEAgcHVibGljOgogICAgIEFu
aW1hdGlvbkxpc3QoY29uc3QgQW5pbWF0aW9uTGlzdCYpOwogCiAgICAgdm9pZCBmaWxsVW5zZXRQ
cm9wZXJ0aWVzKCk7Ci0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEFuaW1hdGlvbkxpc3QmIG8p
IGNvbnN0OwotICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBBbmltYXRpb25MaXN0JiBvKSBjb25z
dAorICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBbmltYXRpb25MaXN0JikgY29uc3Q7CisgICAg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IEFuaW1hdGlvbkxpc3QmIG90aGVyKSBjb25zdAogICAgIHsK
LSAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gbyk7CisgICAgICAgIHJldHVybiAhKCp0aGlzID09
IG90aGVyKTsKICAgICB9CiAgICAgCiAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBt
X2FuaW1hdGlvbnMuc2l6ZSgpOyB9CkBAIC00OSwxNSArNDksMTkgQEAgcHVibGljOgogICAgIAog
ICAgIHZvaWQgcmVzaXplKHNpemVfdCBuKSB7IG1fYW5pbWF0aW9ucy5yZXNpemUobik7IH0KICAg
ICB2b2lkIHJlbW92ZShzaXplX3QgaSkgeyBtX2FuaW1hdGlvbnMucmVtb3ZlKGkpOyB9Ci0gICAg
dm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxBbmltYXRpb24+IGFuaW0pIHsgbV9hbmltYXRpb25zLmFw
cGVuZChhbmltKTsgfQorICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8QW5pbWF0aW9uPiBhbmlt
YXRpb24pCisgICAgeworICAgICAgICBBU1NFUlQoYW5pbWF0aW9uKTsKKyAgICAgICAgbV9hbmlt
YXRpb25zLmFwcGVuZChhbmltYXRpb24pOworICAgIH0KICAgICAKLSAgICBBbmltYXRpb24qIGFu
aW1hdGlvbihzaXplX3QgaSkgeyByZXR1cm4gbV9hbmltYXRpb25zW2ldLmdldCgpOyB9Ci0gICAg
Y29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24oc2l6ZV90IGkpIGNvbnN0IHsgcmV0dXJuIG1fYW5p
bWF0aW9uc1tpXS5nZXQoKTsgfQorICAgIEFuaW1hdGlvbiYgYW5pbWF0aW9uKHNpemVfdCBpKSB7
IHJldHVybiAqbV9hbmltYXRpb25zW2ldOyB9CisgICAgY29uc3QgQW5pbWF0aW9uJiBhbmltYXRp
b24oc2l6ZV90IGkpIGNvbnN0IHsgcmV0dXJuICptX2FuaW1hdGlvbnNbaV07IH0KICAgICAKIHBy
aXZhdGU6CiAgICAgQW5pbWF0aW9uTGlzdCYgb3BlcmF0b3I9KGNvbnN0IEFuaW1hdGlvbkxpc3Qm
KTsKIAotICAgIFZlY3RvcjxSZWZQdHI8QW5pbWF0aW9uPiA+IG1fYW5pbWF0aW9uczsKKyAgICBW
ZWN0b3I8UmVmUHRyPEFuaW1hdGlvbj4+IG1fYW5pbWF0aW9uczsKIH07ICAgIAogCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmlt
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ckFuaW1hdGlvbi5jcHAKaW5kZXggMDkzYmYxNjgwMTA2MzViNjEwY2Q2ODY3OTJjNWI3ZWM3N2Fl
OTg0OC4uYWRkNjg2ZjY2MTUyZWMxNWI0YjM1NTJiZGI4MmNhNTI0NDNmODZjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckFuaW1hdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ckFuaW1hdGlvbi5jcHAKQEAgLTIxNiw3ICsyMTYsNyBAQCBzdGF0aWMgY29uc3QgVGltaW5nRnVu
Y3Rpb24qIHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoY29uc3QgQW5pbWF0aW9uVmFs
dQogR3JhcGhpY3NMYXllckFuaW1hdGlvbjo6R3JhcGhpY3NMYXllckFuaW1hdGlvbihjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiBrZXlmcmFtZXMsIGNvbnN0IElu
dFNpemUmIGJveFNpemUsIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBkb3VibGUgc3RhcnRU
aW1lLCBib29sIGxpc3RzTWF0Y2gpCiAgICAgOiBtX2tleWZyYW1lcyhrZXlmcmFtZXMpCiAgICAg
LCBtX2JveFNpemUoYm94U2l6ZSkKLSAgICAsIG1fYW5pbWF0aW9uKEFuaW1hdGlvbjo6Y3JlYXRl
KGFuaW1hdGlvbikpCisgICAgLCBtX2FuaW1hdGlvbihBbmltYXRpb246OmNyZWF0ZSgqYW5pbWF0
aW9uKSkKICAgICAsIG1fbmFtZShuYW1lKQogICAgICwgbV9saXN0c01hdGNoKGxpc3RzTWF0Y2gp
CiAgICAgLCBtX3N0YXJ0VGltZShzdGFydFRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDk3NTkxZDZiYzViN2RkNTBhOTQ2Zjdi
NGZiZDMzYjI0NmZjMTI2ZTAuLjM5OTExYzExZTFiODFmNWUxNzc3ZDE1YjcwMWE1NWU3NDFlNGUy
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCkBAIC0yMTE4LDcgKzIxMTgsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRB
bmltYXRpb24oZG91YmxlIHRpbWVPZmZzZXQsIGNvbnN0IEFuaW1hdGlvbiogYW5pbQogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICAKICAgICAgICAgLy8gR2V0IHRpbWluZyBmdW5j
dGlvbi4KLSAgICAgICAgUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0ZiA9IGtleWZyYW1lU3R5bGUt
Pmhhc0FuaW1hdGlvbnMoKSA/ICgqa2V5ZnJhbWVTdHlsZS0+YW5pbWF0aW9ucygpKS5hbmltYXRp
b24oMCktPnRpbWluZ0Z1bmN0aW9uKCkgOiAwOworICAgICAgICBSZWZQdHI8VGltaW5nRnVuY3Rp
b24+IHRmID0ga2V5ZnJhbWVTdHlsZS0+aGFzQW5pbWF0aW9ucygpID8gKCprZXlmcmFtZVN0eWxl
LT5hbmltYXRpb25zKCkpLmFuaW1hdGlvbigwKS50aW1pbmdGdW5jdGlvbigpIDogMDsKICAgICAg
ICAgCiAgICAgICAgIGJvb2wgaXNGaXJzdE9yTGFzdEtleWZyYW1lID0ga2V5ID09IDAgfHwga2V5
ID09IDE7CiAgICAgICAgIGlmICgoaGFzVHJhbnNmb3JtICYmIGlzRmlyc3RPckxhc3RLZXlmcmFt
ZSkgfHwgY3VycmVudEtleWZyYW1lLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRU
cmFuc2Zvcm0pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAKaW5kZXggOGRiMzYxNGRkOWRmZDFlMTI3YjViZTA5NDg0ZGU1NjEwYTM0ZjEyYS4uM2Yz
MWZmNGQ0ZGUwMjhmZmQ0ODg2NTNmMGRmZDBkNWQ0YmNlNjdiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xMjU4LDcgKzEyNTgsNyBA
QCB2b2lkIFJlbmRlclN0eWxlOjphZGp1c3RBbmltYXRpb25zKCkKIAogICAgIC8vIEdldCByaWQg
b2YgZW1wdHkgYW5pbWF0aW9ucyBhbmQgYW55dGhpbmcgYmV5b25kIHRoZW0KICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGFuaW1hdGlvbkxpc3QtPnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlm
IChhbmltYXRpb25MaXN0LT5hbmltYXRpb24oaSktPmlzRW1wdHkoKSkgeworICAgICAgICBpZiAo
YW5pbWF0aW9uTGlzdC0+YW5pbWF0aW9uKGkpLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgYW5p
bWF0aW9uTGlzdC0+cmVzaXplKGkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAg
LTEyODEsNyArMTI4MSw3IEBAIHZvaWQgUmVuZGVyU3R5bGU6OmFkanVzdFRyYW5zaXRpb25zKCkK
IAogICAgIC8vIEdldCByaWQgb2YgZW1wdHkgdHJhbnNpdGlvbnMgYW5kIGFueXRoaW5nIGJleW9u
ZCB0aGVtCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0cmFuc2l0aW9uTGlzdC0+c2l6ZSgp
OyArK2kpIHsKLSAgICAgICAgaWYgKHRyYW5zaXRpb25MaXN0LT5hbmltYXRpb24oaSktPmlzRW1w
dHkoKSkgeworICAgICAgICBpZiAodHJhbnNpdGlvbkxpc3QtPmFuaW1hdGlvbihpKS5pc0VtcHR5
KCkpIHsKICAgICAgICAgICAgIHRyYW5zaXRpb25MaXN0LT5yZXNpemUoaSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQpAQCAtMTI5OSw3ICsxMjk5LDcgQEAgdm9pZCBSZW5kZXJTdHls
ZTo6YWRqdXN0VHJhbnNpdGlvbnMoKQogICAgIC8vIGJ1dCB0aGUgbGlzdHMgdGVuZCB0byBiZSB2
ZXJ5IHNob3J0LCBzbyBpdCBpcyBwcm9iYWJseSBvawogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgdHJhbnNpdGlvbkxpc3QtPnNpemUoKTsgKytpKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGog
PSBpKzE7IGogPCB0cmFuc2l0aW9uTGlzdC0+c2l6ZSgpOyArK2opIHsKLSAgICAgICAgICAgIGlm
ICh0cmFuc2l0aW9uTGlzdC0+YW5pbWF0aW9uKGkpLT5wcm9wZXJ0eSgpID09IHRyYW5zaXRpb25M
aXN0LT5hbmltYXRpb24oaiktPnByb3BlcnR5KCkpIHsKKyAgICAgICAgICAgIGlmICh0cmFuc2l0
aW9uTGlzdC0+YW5pbWF0aW9uKGkpLnByb3BlcnR5KCkgPT0gdHJhbnNpdGlvbkxpc3QtPmFuaW1h
dGlvbihqKS5wcm9wZXJ0eSgpKSB7CiAgICAgICAgICAgICAgICAgLy8gdG9zcyBpCiAgICAgICAg
ICAgICAgICAgdHJhbnNpdGlvbkxpc3QtPnJlbW92ZShpKTsKICAgICAgICAgICAgICAgICBqID0g
aTsKQEAgLTEzMjYsOSArMTMyNiw5IEBAIGNvbnN0IEFuaW1hdGlvbiogUmVuZGVyU3R5bGU6OnRy
YW5zaXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KSBjb25zCiB7CiAgICAg
aWYgKHRyYW5zaXRpb25zKCkpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0cmFu
c2l0aW9ucygpLT5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgY29uc3QgQW5pbWF0aW9uKiBw
ID0gdHJhbnNpdGlvbnMoKS0+YW5pbWF0aW9uKGkpOwotICAgICAgICAgICAgaWYgKHAtPmFuaW1h
dGlvbk1vZGUoKSA9PSBBbmltYXRpb246OkFuaW1hdGVBbGwgfHwgcC0+cHJvcGVydHkoKSA9PSBw
cm9wZXJ0eSkgewotICAgICAgICAgICAgICAgIHJldHVybiBwOworICAgICAgICAgICAgY29uc3Qg
QW5pbWF0aW9uJiBwID0gdHJhbnNpdGlvbnMoKS0+YW5pbWF0aW9uKGkpOworICAgICAgICAgICAg
aWYgKHAuYW5pbWF0aW9uTW9kZSgpID09IEFuaW1hdGlvbjo6QW5pbWF0ZUFsbCB8fCBwLnByb3Bl
cnR5KCkgPT0gcHJvcGVydHkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gJnA7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9Cg==
</data>
<flag name="review"
          id="232701"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>