<?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>116319</bug_id>
          
          <creation_ts>2013-05-17 08:24:22 -0700</creation_ts>
          <short_desc>webkit-backface-visibility on a parent element stops background-position from updating</short_desc>
          <delta_ts>2013-06-16 09:58:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>525.x (Safari 3.2)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.8</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://jsfiddle.net/nathanstitt/JcX4g/7/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>116397</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nathan Stitt">nathan</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>890401</commentid>
    <comment_count>0</comment_count>
    <who name="Nathan Stitt">nathan</who>
    <bug_when>2013-05-17 08:24:22 -0700</bug_when>
    <thetext>If a parent element in the DOM has -webkit-backface-visibility: none applied,  it&apos;s children no longer re-render when their background-position is updated.

http://jsfiddle.net/nathanstitt/JcX4g/3/ will illustrate the issue.   Observe how the magnifier image shows the high-resolution image when it&apos;s moved.  Uncommenting line 3 ( webkit-backface-visibility) and re-rerunning the jsfiddle and the image never redraws, even though the attributes in the DOM are updated.

I encountered this when using the flexslider library (http://flexslider.woothemes.com/), which applies the backface-visibility.

Hope this helps, contact me if you need any further details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890406</commentid>
    <comment_count>1</comment_count>
    <who name="Nathan Stitt">nathan</who>
    <bug_when>2013-05-17 08:31:20 -0700</bug_when>
    <thetext>Forgot to mention, removing the div &amp; re-adding it does force an update to the background-position and it will re-render properly.  http://jsfiddle.net/JcX4g/5/ line 28 shows the work-around.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890428</commentid>
    <comment_count>2</comment_count>
    <who name="Nathan Stitt">nathan</who>
    <bug_when>2013-05-17 09:20:30 -0700</bug_when>
    <thetext>I&apos;ve also prepared a plain javascript version of the test case:  http://jsfiddle.net/nathanstitt/JcX4g/7/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890919</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-18 12:17:29 -0700</bug_when>
    <thetext>The bug occurs when there&apos;s both a position change and a background-position change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890920</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-05-18 12:20:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/13932329&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890921</commentid>
    <comment_count>5</comment_count>
      <attachid>202210</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-18 12:20:43 -0700</bug_when>
    <thetext>Created attachment 202210
Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890929</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-18 12:27:09 -0700</bug_when>
    <thetext>Not a recent regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890935</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-18 12:43:07 -0700</bug_when>
    <thetext>Probably regressed with http://trac.webkit.org/changeset/102952</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890938</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-18 12:46:13 -0700</bug_when>
    <thetext>The optimization added in r102952 is basically incorrect. RenderStyle::diff() returns StyleDifferenceLayoutPositionedMovementOnly, but that doesn&apos;t mean that some other property changes don&apos;t require repainting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890952</commentid>
    <comment_count>9</comment_count>
      <attachid>202216</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-18 14:22:43 -0700</bug_when>
    <thetext>Created attachment 202216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890954</commentid>
    <comment_count>10</comment_count>
      <attachid>202216</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-18 14:23:15 -0700</bug_when>
    <thetext>Comment on attachment 202216
Patch

Wrong bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900862</commentid>
    <comment_count>11</comment_count>
      <attachid>204781</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-06-15 23:12:57 -0700</bug_when>
    <thetext>Created attachment 204781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900875</commentid>
    <comment_count>12</comment_count>
      <attachid>204781</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-06-16 08:50:08 -0700</bug_when>
    <thetext>Comment on attachment 204781
Patch

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

&gt; Source/WebCore/rendering/RenderObject.h:1255
&gt; +            if (oldStyle &amp;&amp; m_style-&gt;diffRequiresRepaint(oldStyle))

Is there some other level of the code already doing a diff? Is it bad for performance to do this here too?

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:797
&gt; +    unsigned contextSensitiveProperties = 0;

This should be named changedContextSensitiveProperties. Leaving out the word “changed” makes it hard to understand that this is an out argument and whether 0 is the correct value to initialize to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900878</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-06-16 09:01:13 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 204781 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=204781&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderObject.h:1255
&gt; &gt; +            if (oldStyle &amp;&amp; m_style-&gt;diffRequiresRepaint(oldStyle))
&gt; 
&gt; Is there some other level of the code already doing a diff? Is it bad for performance to do this here too?

There is, but the earlier diff bailed early, never testing the repaint properties. So this isn&apos;t another full diff.

&gt; &gt; Source/WebCore/rendering/style/RenderStyle.cpp:797
&gt; &gt; +    unsigned contextSensitiveProperties = 0;
&gt; 
&gt; This should be named changedContextSensitiveProperties. Leaving out the word “changed” makes it hard to understand that this is an out argument and whether 0 is the correct value to initialize to.

Agreedn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900880</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-06-16 09:58:04 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/151622</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>202210</attachid>
            <date>2013-05-18 12:20:43 -0700</date>
            <delta_ts>2013-05-18 12:20:43 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>backgroundposition-composited.html</filename>
            <type>text/html</type>
            <size>592</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KPGhlYWQ+CiAgICA8c3R5bGU+CiAgICAgICAgLmJveCB7
CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAxMHB4Owog
ICAgICAgICAgICBsZWZ0OiAxMHB4OwogICAgICAgICAgICB3aWR0aDogNDAwcHg7CiAgICAgICAg
ICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnaHR0cDovL3N0
aXR0Lm9yZy9pbWFnZXMvaGlwcG9fbGcuanBnJykgbm8tcmVwZWF0OwogICAgICAgIH0KICAgICAg
ICAKICAgICAgICAuYm94OmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjog
LTEwMHB4IC0xMDBweDsKICAgICAgICAgICAgdG9wOiAxMTBweDsKICAgICAgICAgICAgbGVmdDog
MTEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb21wb3NpdGVkIHsKICAgICAgICAg
ICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CiAgICAgICAgfQogICAgPC9zdHls
ZT4KPC9oZWFkPgo8Ym9keT4KCiAgICA8ZGl2IGNsYXNzPSJjb21wb3NpdGVkIGJveCI+CiAgICA8
L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202216</attachid>
            <date>2013-05-18 14:22:43 -0700</date>
            <delta_ts>2013-05-18 14:23:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116319-20130518142134.patch</filename>
            <type>text/plain</type>
            <size>27579</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQzMWU5NGM3ZjAwODRl
NTViMDU4MDVhYTA2NjMzMzA5OTRmMzI5OC4uNTg3ZGI2Y2Q0MDBiNjMzY2VhYjdiOTk1YzlhY2Y3
NTNhMGIyMTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA1LTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIHdlYmtpdC1iYWNr
ZmFjZS12aXNpYmlsaXR5IG9uIGEgcGFyZW50IGVsZW1lbnQgc3RvcHMgYmFja2dyb3VuZC1wb3Np
dGlvbiBmcm9tIHVwZGF0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTYzMTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KyAgICAgICAgCisgICAgICAgIFJlbmRlclN0eWxlOjpkaWZmKCkgd2FzIHByb25lIHRvIGJlaW5n
IGNoYW5nZWQgaW5jb3JyZWN0bHksIHNpbmNlIHRoZXJlIHdhcworICAgICAgICBhIHBvb3JseSBk
b2N1bWVudGVkIG9yZGVyaW5nIHJlcXVpcmVtZW50OiBzdHlsZSBjaGFuZ2VzIHRoYXQgY2F1c2Ug
bGF5b3V0CisgICAgICAgIGhhdmUgdG8gYmUgZGV0ZWN0ZWQgYmVmb3JlIHRob3NlIHRoYXQgY2F1
c2Ugb25seSByZXBhaW50aW5nLgorICAgICAgICAKKyAgICAgICAgSW4gYWRkaXRpb24sIHRoZSBl
eGlzdGluZyBjb2RlIG1hZGUgaXQgaW1wb3NzaWJsZSB0byBzZXBhcmF0ZWx5IGFzayB3aGV0aGVy
CisgICAgICAgIGEgZ2l2ZW4gc3R5bGUgY2hhbmdlIHJlcXVpcmVzIGEgcmVwYWludCwgaWYgd2Un
dmUgYWxyZWFkeSBkZXRlY3RlZCB0aGF0IGl0CisgICAgICAgIHJlcXVpcmVzIGEgcG9zaXRpb25l
ZC1tb3ZlbWVudC1vbmx5IGxheW91dC4KKyAgICAgICAgCisgICAgICAgIEZpeCBieSBmYWN0b3Jp
bmcgdGhlIGNvZGUgaW50byBtZW1iZXIgZnVuY3Rpb25zIHRoYXQgY2hlY2sgZm9yIGVhY2ggdHlw
ZQorICAgICAgICBvZiBzdHlsZSBjaGFuZ2UuCisgICAgICAgIAorICAgICAgICBObyBiZWhhdmlv
ciBjaGFuZ2UuCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cG9zaXRpb25DaGFuZ2VJc01vdmVtZW50T25seSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNMYXlvdXQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVzUG9zaXRpb25lZExheW91dE9ubHkp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVzTGF5ZXJSZXBh
aW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc1JlcGFp
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVzUmVwYWlu
dElmVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNS
ZWNvbXBvc2l0ZUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpkaWZmKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKwogMjAxMy0wNS0xNyAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBHYXJiYWdl
IG9uIHBhZ2UgYmFja2dyb3VuZCB3aGlsZSBodHRwOi8vY2FuYmVycmFiYWxsb29ucy5jb20uYXUg
aXMgbG9hZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAKaW5kZXggZjM4MDRiMTllMGEzZjUyNTNmNzQ5MzM4NjdhZjJkNjYwM2UzNjUwMi4uOTBm
OWVjNzY0Mzk4YzhlYzkyYzMwZjhkYjAxYjlhNzA1ODE4OGY5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0zNDAsNyArMzQwLDcgQEAg
Ym9vbCBSZW5kZXJTdHlsZTo6aW5oZXJpdGVkRGF0YVNoYXJlZChjb25zdCBSZW5kZXJTdHlsZSog
b3RoZXIpIGNvbnN0CiAgICAgICAgICYmIHJhcmVJbmhlcml0ZWREYXRhLmdldCgpID09IG90aGVy
LT5yYXJlSW5oZXJpdGVkRGF0YS5nZXQoKTsKIH0KIAotc3RhdGljIGJvb2wgcG9zaXRpb25lZE9i
amVjdE1vdmVkKGNvbnN0IExlbmd0aEJveCYgYSwgY29uc3QgTGVuZ3RoQm94JiBiLCBjb25zdCBM
ZW5ndGgmIHdpZHRoKQorc3RhdGljIGJvb2wgcG9zaXRpb25DaGFuZ2VJc01vdmVtZW50T25seShj
b25zdCBMZW5ndGhCb3gmIGEsIGNvbnN0IExlbmd0aEJveCYgYiwgY29uc3QgTGVuZ3RoJiB3aWR0
aCkKIHsKICAgICAvLyBJZiBhbnkgdW5pdCB0eXBlcyBhcmUgZGlmZmVyZW50LCB0aGVuIHdlIGNh
bid0IGd1YXJhbnRlZQogICAgIC8vIHRoYXQgdGhpcyB3YXMganVzdCBhIG1vdmVtZW50LgpAQCAt
MzY3LDM4ICszNjcsMjcgQEAgc3RhdGljIGJvb2wgcG9zaXRpb25lZE9iamVjdE1vdmVkKGNvbnN0
IExlbmd0aEJveCYgYSwgY29uc3QgTGVuZ3RoQm94JiBiLCBjb25zdAogICAgIHJldHVybiB0cnVl
OwogfQogCi1TdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5
bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSBj
b25zdAorYm9vbCBSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNMYXlvdXQoY29uc3QgUmVuZGVy
U3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVz
KSBjb25zdAogewotICAgIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcyA9IENvbnRl
eHRTZW5zaXRpdmVQcm9wZXJ0eU5vbmU7Ci0KLSNpZiBFTkFCTEUoU1ZHKQotICAgIFN0eWxlRGlm
ZmVyZW5jZSBzdmdDaGFuZ2UgPSBTdHlsZURpZmZlcmVuY2VFcXVhbDsKLSAgICBpZiAobV9zdmdT
dHlsZSAhPSBvdGhlci0+bV9zdmdTdHlsZSkgewotICAgICAgICBzdmdDaGFuZ2UgPSBtX3N2Z1N0
eWxlLT5kaWZmKG90aGVyLT5tX3N2Z1N0eWxlLmdldCgpKTsKLSAgICAgICAgaWYgKHN2Z0NoYW5n
ZSA9PSBTdHlsZURpZmZlcmVuY2VMYXlvdXQpCi0gICAgICAgICAgICByZXR1cm4gc3ZnQ2hhbmdl
OwotICAgIH0KLSNlbmRpZgotCiAgICAgaWYgKG1fYm94LT53aWR0aCgpICE9IG90aGVyLT5tX2Jv
eC0+d2lkdGgoKQogICAgICAgICB8fCBtX2JveC0+bWluV2lkdGgoKSAhPSBvdGhlci0+bV9ib3gt
Pm1pbldpZHRoKCkKICAgICAgICAgfHwgbV9ib3gtPm1heFdpZHRoKCkgIT0gb3RoZXItPm1fYm94
LT5tYXhXaWR0aCgpCiAgICAgICAgIHx8IG1fYm94LT5oZWlnaHQoKSAhPSBvdGhlci0+bV9ib3gt
PmhlaWdodCgpCiAgICAgICAgIHx8IG1fYm94LT5taW5IZWlnaHQoKSAhPSBvdGhlci0+bV9ib3gt
Pm1pbkhlaWdodCgpCiAgICAgICAgIHx8IG1fYm94LT5tYXhIZWlnaHQoKSAhPSBvdGhlci0+bV9i
b3gtPm1heEhlaWdodCgpKQotICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0Owor
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChtX2JveC0+dmVydGljYWxBbGlnbigpICE9
IG90aGVyLT5tX2JveC0+dmVydGljYWxBbGlnbigpIHx8IG5vbmluaGVyaXRlZF9mbGFncy5fdmVy
dGljYWxfYWxpZ24gIT0gb3RoZXItPm5vbmluaGVyaXRlZF9mbGFncy5fdmVydGljYWxfYWxpZ24p
Ci0gICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CisgICAgICAgIHJldHVybiB0
cnVlOwogCiAgICAgaWYgKG1fYm94LT5ib3hTaXppbmcoKSAhPSBvdGhlci0+bV9ib3gtPmJveFNp
emluZygpKQotICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0OworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChzdXJyb3VuZC0+bWFyZ2luICE9IG90aGVyLT5zdXJyb3Vu
ZC0+bWFyZ2luKQotICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0OworICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChzdXJyb3VuZC0+cGFkZGluZyAhPSBvdGhlci0+c3Vy
cm91bmQtPnBhZGRpbmcpCi0gICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7Cisg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLmdldCgp
ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS5nZXQoKSkgewogICAgICAgICBpZiAocmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fYXBwZWFyYW5jZSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRl
ZERhdGEtPm1fYXBwZWFyYW5jZSAKQEAgLTQwNiw0MSArMzk1LDQxIEBAIFN0eWxlRGlmZmVyZW5j
ZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBj
aGFuZ2VkQ29uCiAgICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bWFyZ2luQWZ0
ZXJDb2xsYXBzZSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1hcmdpbkFmdGVyQ29s
bGFwc2UKICAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5saW5lQ2xhbXAgIT0g
b3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5saW5lQ2xhbXAKICAgICAgICAgICAgIHx8IHJh
cmVOb25Jbmhlcml0ZWREYXRhLT50ZXh0T3ZlcmZsb3cgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0
ZWREYXRhLT50ZXh0T3ZlcmZsb3cpCi0gICAgICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNl
TGF5b3V0OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAgaWYgKHJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX3JlZ2lvbk92ZXJmbG93ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9yZWdpb25PdmVyZmxvdykKLSAgICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVu
Y2VMYXlvdXQ7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgICAgICBpZiAocmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fd3JhcEZsb3cgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX3dyYXBGbG93CiAgICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV93cmFw
VGhyb3VnaCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fd3JhcFRocm91Z2gKICAg
ICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3NoYXBlTWFyZ2luICE9IG90aGVy
LT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9zaGFwZU1hcmdpbgogICAgICAgICAgICAgfHwgcmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fc2hhcGVQYWRkaW5nICE9IG90aGVyLT5yYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9zaGFwZVBhZGRpbmcpCi0gICAgICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJl
bmNlTGF5b3V0OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAgaWYgKHJhcmVO
b25Jbmhlcml0ZWREYXRhLT5tX2RlcHJlY2F0ZWRGbGV4aWJsZUJveC5nZXQoKSAhPSBvdGhlci0+
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhpYmxlQm94LmdldCgpCiAgICAg
ICAgICAgICAmJiAqcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhpYmxlQm94
LmdldCgpICE9ICpvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhp
YmxlQm94LmdldCgpKQotICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9mbGV4aWJsZUJveC5nZXQoKSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEt
Pm1fZmxleGlibGVCb3guZ2V0KCkKICAgICAgICAgICAgICYmICpyYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bV9mbGV4aWJsZUJveC5nZXQoKSAhPSAqb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X2ZsZXhpYmxlQm94LmdldCgpKQotICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxh
eW91dDsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAocmFyZU5vbkluaGVy
aXRlZERhdGEtPm1fb3JkZXIgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX29yZGVy
CiAgICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9hbGlnbkNvbnRlbnQgIT0g
b3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2FsaWduQ29udGVudAogICAgICAgICAgICAg
fHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fYWxpZ25JdGVtcyAhPSBvdGhlci0+cmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fYWxpZ25JdGVtcwogICAgICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRl
ZERhdGEtPm1fYWxpZ25TZWxmICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9hbGln
blNlbGYKICAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2p1c3RpZnlDb250
ZW50ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9qdXN0aWZ5Q29udGVudCkKLSAg
ICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFkZCBhbiBvcHRpbWl6ZWQg
Zm9ybSBvZiBsYXlvdXQgdGhhdCBqdXN0IHJlY29tcHV0ZXMgdmlzdWFsIG92ZXJmbG93LgogICAg
ICAgICBpZiAoIXJhcmVOb25Jbmhlcml0ZWREYXRhLT5zaGFkb3dEYXRhRXF1aXZhbGVudCgqb3Ro
ZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLmdldCgpKSkKLSAgICAgICAgICAgIHJldHVybiBTdHls
ZURpZmZlcmVuY2VMYXlvdXQ7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgICAgICBp
ZiAoIXJhcmVOb25Jbmhlcml0ZWREYXRhLT5yZWZsZWN0aW9uRGF0YUVxdWl2YWxlbnQoKm90aGVy
LT5yYXJlTm9uSW5oZXJpdGVkRGF0YS5nZXQoKSkpCi0gICAgICAgICAgICByZXR1cm4gU3R5bGVE
aWZmZXJlbmNlTGF5b3V0OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAgaWYg
KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX211bHRpQ29sLmdldCgpICE9IG90aGVyLT5yYXJlTm9u
SW5oZXJpdGVkRGF0YS0+bV9tdWx0aUNvbC5nZXQoKQogICAgICAgICAgICAgJiYgKnJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX211bHRpQ29sLmdldCgpICE9ICpvdGhlci0+cmFyZU5vbkluaGVyaXRl
ZERhdGEtPm1fbXVsdGlDb2wuZ2V0KCkpCi0gICAgICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJl
bmNlTGF5b3V0OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAgaWYgKHJhcmVO
b25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS5nZXQoKSAhPSBvdGhlci0+cmFyZU5vbkluaGVy
aXRlZERhdGEtPm1fdHJhbnNmb3JtLmdldCgpCiAgICAgICAgICAgICAmJiAqcmFyZU5vbkluaGVy
aXRlZERhdGEtPm1fdHJhbnNmb3JtLmdldCgpICE9ICpvdGhlci0+cmFyZU5vbkluaGVyaXRlZERh
dGEtPm1fdHJhbnNmb3JtLmdldCgpKSB7CkBAIC00NDgsMTMgKzQzNywxMyBAQCBTdHlsZURpZmZl
cmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25l
ZCYgY2hhbmdlZENvbgogICAgICAgICAgICAgY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0
aWVzIHw9IENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0eVRyYW5zZm9ybTsKICAgICAgICAgICAgIC8v
IERvbid0IHJldHVybjsga2VlcCBsb29raW5nIGZvciBhbm90aGVyIGNoYW5nZQogI2Vsc2UKLSAg
ICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICNlbmRpZgogICAgICAgICB9CiAKICAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX2dyaWQuZ2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dy
aWQuZ2V0KCkKICAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWRJdGVt
LmdldCgpICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkSXRlbS5nZXQoKSkK
LSAgICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAogI2lmICFVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAg
IGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS5nZXQoKSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRl
ZERhdGEuZ2V0KCkpIHsKQEAgLTQ2MywxOSArNDUyLDE5IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5k
ZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2Vk
Q29uCiAgICAgICAgICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcGVyc3BlY3Rp
dmUgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3BlcnNwZWN0aXZlCiAgICAgICAg
ICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcGVyc3BlY3RpdmVPcmlnaW5YICE9
IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9wZXJzcGVjdGl2ZU9yaWdpblgKICAgICAg
ICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9wZXJzcGVjdGl2ZU9yaWdpblkg
IT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3BlcnNwZWN0aXZlT3JpZ2luWSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0OworICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShEQVNIQk9B
UkRfU1VQUE9SVCkKICAgICAgICAgLy8gSWYgcmVnaW9ucyBjaGFuZ2UsIHRyaWdnZXIgYSByZWxh
eW91dCB0byByZS1jYWxjIHJlZ2lvbnMuCiAgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bV9kYXNoYm9hcmRSZWdpb25zICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9k
YXNoYm9hcmRSZWdpb25zKQotICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91
dDsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0VY
Q0xVU0lPTlMpCiAgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9zaGFwZUluc2lk
ZSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fc2hhcGVJbnNpZGUpCi0gICAgICAg
ICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0OworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAjZW5kaWYKICAgICB9CiAKQEAgLTUxMiwxOCArNTAxLDE4IEBAIFN0eWxlRGlmZmVyZW5j
ZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBj
aGFuZ2VkQ29uCiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV9saW5lU25hcCAh
PSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fbGluZVNuYXAKICAgICAgICAgICAgIHx8IHJh
cmVJbmhlcml0ZWREYXRhLT5tX2xpbmVBbGlnbiAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEt
Pm1fbGluZUFsaWduCiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bGlzdFN0eWxl
SW1hZ2UgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5saXN0U3R5bGVJbWFnZSkKLSAgICAg
ICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKIAogICAgICAgICBpZiAoIXJhcmVJbmhlcml0ZWREYXRhLT5zaGFkb3dEYXRhRXF1aXZh
bGVudCgqb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLmdldCgpKSkKLSAgICAgICAgICAgIHJldHVy
biBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
ICAgICBpZiAodGV4dFN0cm9rZVdpZHRoKCkgIT0gb3RoZXItPnRleHRTdHJva2VXaWR0aCgpKQot
ICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgaWYg
KHZpc3VhbC0+bV90ZXh0QXV0b3NpemluZ011bHRpcGxpZXIgIT0gb3RoZXItPnZpc3VhbC0+bV90
ZXh0QXV0b3NpemluZ011bHRpcGxpZXIpCi0gICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VM
YXlvdXQ7CisgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKICAgICBpZiAoaW5oZXJpdGVk
LT5saW5lX2hlaWdodCAhPSBvdGhlci0+aW5oZXJpdGVkLT5saW5lX2hlaWdodApAQCAtNTM1LDcg
KzUyNCw3IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJT
dHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAgICAgICAgIHx8IG5vbmluaGVyaXRl
ZF9mbGFncy5fcG9zaXRpb24gIT0gb3RoZXItPm5vbmluaGVyaXRlZF9mbGFncy5fcG9zaXRpb24K
ICAgICAgICAgfHwgbm9uaW5oZXJpdGVkX2ZsYWdzLl9mbG9hdGluZyAhPSBvdGhlci0+bm9uaW5o
ZXJpdGVkX2ZsYWdzLl9mbG9hdGluZwogICAgICAgICB8fCBub25pbmhlcml0ZWRfZmxhZ3MuX29y
aWdpbmFsRGlzcGxheSAhPSBvdGhlci0+bm9uaW5oZXJpdGVkX2ZsYWdzLl9vcmlnaW5hbERpc3Bs
YXkpCi0gICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CisgICAgICAgIHJldHVy
biB0cnVlOwogCiAKICAgICBpZiAoKChpbnQpbm9uaW5oZXJpdGVkX2ZsYWdzLl9lZmZlY3RpdmVE
aXNwbGF5KSA+PSBUQUJMRSkgewpAQCAtNTQzLDcgKzUzMiw3IEBAIFN0eWxlRGlmZmVyZW5jZSBS
ZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFu
Z2VkQ29uCiAgICAgICAgICAgICB8fCBpbmhlcml0ZWRfZmxhZ3MuX2VtcHR5X2NlbGxzICE9IG90
aGVyLT5pbmhlcml0ZWRfZmxhZ3MuX2VtcHR5X2NlbGxzCiAgICAgICAgICAgICB8fCBpbmhlcml0
ZWRfZmxhZ3MuX2NhcHRpb25fc2lkZSAhPSBvdGhlci0+aW5oZXJpdGVkX2ZsYWdzLl9jYXB0aW9u
X3NpZGUKICAgICAgICAgICAgIHx8IG5vbmluaGVyaXRlZF9mbGFncy5fdGFibGVfbGF5b3V0ICE9
IG90aGVyLT5ub25pbmhlcml0ZWRfZmxhZ3MuX3RhYmxlX2xheW91dCkKLSAgICAgICAgICAgIHJl
dHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgICAgICAvLyBJbiB0aGUgY29sbGFwc2luZyBib3JkZXIgbW9kZWwsICdoaWRkZW4nIHN1cHBy
ZXNzZXMgb3RoZXIgYm9yZGVycywgd2hpbGUgJ25vbmUnCiAgICAgICAgIC8vIGRvZXMgbm90LCBz
byB0aGVzZSBzdHlsZSBkaWZmZXJlbmNlcyBjYW4gYmUgd2lkdGggZGlmZmVyZW5jZXMuCkBAIC01
NTYsMTMgKzU0NSwxMyBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3Qg
UmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgICAgICAgICAgICAg
IHx8IChib3JkZXJMZWZ0U3R5bGUoKSA9PSBCTk9ORSAmJiBvdGhlci0+Ym9yZGVyTGVmdFN0eWxl
KCkgPT0gQkhJRERFTikKICAgICAgICAgICAgICAgICB8fCAoYm9yZGVyUmlnaHRTdHlsZSgpID09
IEJISURERU4gJiYgb3RoZXItPmJvcmRlclJpZ2h0U3R5bGUoKSA9PSBCTk9ORSkKICAgICAgICAg
ICAgICAgICB8fCAoYm9yZGVyUmlnaHRTdHlsZSgpID09IEJOT05FICYmIG90aGVyLT5ib3JkZXJS
aWdodFN0eWxlKCkgPT0gQkhJRERFTikpKQotICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVy
ZW5jZUxheW91dDsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGlmIChu
b25pbmhlcml0ZWRfZmxhZ3MuX2VmZmVjdGl2ZURpc3BsYXkgPT0gTElTVF9JVEVNKSB7CiAgICAg
ICAgIGlmIChpbmhlcml0ZWRfZmxhZ3MuX2xpc3Rfc3R5bGVfdHlwZSAhPSBvdGhlci0+aW5oZXJp
dGVkX2ZsYWdzLl9saXN0X3N0eWxlX3R5cGUKICAgICAgICAgICAgIHx8IGluaGVyaXRlZF9mbGFn
cy5fbGlzdF9zdHlsZV9wb3NpdGlvbiAhPSBvdGhlci0+aW5oZXJpdGVkX2ZsYWdzLl9saXN0X3N0
eWxlX3Bvc2l0aW9uKQotICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGlmIChpbmhlcml0ZWRfZmxh
Z3MuX3RleHRfYWxpZ24gIT0gb3RoZXItPmluaGVyaXRlZF9mbGFncy5fdGV4dF9hbGlnbgpAQCAt
NTcxLDIwICs1NjAsMjAgQEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0
IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQmIGNoYW5nZWRDb24KICAgICAgICAgfHwgaW5o
ZXJpdGVkX2ZsYWdzLl93aGl0ZV9zcGFjZSAhPSBvdGhlci0+aW5oZXJpdGVkX2ZsYWdzLl93aGl0
ZV9zcGFjZQogICAgICAgICB8fCBub25pbmhlcml0ZWRfZmxhZ3MuX2NsZWFyICE9IG90aGVyLT5u
b25pbmhlcml0ZWRfZmxhZ3MuX2NsZWFyCiAgICAgICAgIHx8IG5vbmluaGVyaXRlZF9mbGFncy5f
dW5pY29kZUJpZGkgIT0gb3RoZXItPm5vbmluaGVyaXRlZF9mbGFncy5fdW5pY29kZUJpZGkpCi0g
ICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CisgICAgICAgIHJldHVybiB0cnVl
OwogCiAgICAgLy8gQ2hlY2sgYmxvY2sgZmxvdyBkaXJlY3Rpb24uCiAgICAgaWYgKGluaGVyaXRl
ZF9mbGFncy5tX3dyaXRpbmdNb2RlICE9IG90aGVyLT5pbmhlcml0ZWRfZmxhZ3MubV93cml0aW5n
TW9kZSkKLSAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKKyAgICAgICAgcmV0
dXJuIHRydWU7CiAKICAgICAvLyBDaGVjayB0ZXh0IGNvbWJpbmUgbW9kZS4KICAgICBpZiAocmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fdGV4dENvbWJpbmUgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX3RleHRDb21iaW5lKQotICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5
b3V0OworICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIE92ZXJmbG93IHJldHVybnMgYSBs
YXlvdXQgaGludC4KICAgICBpZiAobm9uaW5oZXJpdGVkX2ZsYWdzLl9vdmVyZmxvd1ggIT0gb3Ro
ZXItPm5vbmluaGVyaXRlZF9mbGFncy5fb3ZlcmZsb3dYCiAgICAgICAgIHx8IG5vbmluaGVyaXRl
ZF9mbGFncy5fb3ZlcmZsb3dZICE9IG90aGVyLT5ub25pbmhlcml0ZWRfZmxhZ3MuX292ZXJmbG93
WSkKLSAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKKyAgICAgICAgcmV0dXJu
IHRydWU7CiAKICAgICAvLyBJZiBvdXIgYm9yZGVyIHdpZHRocyBjaGFuZ2UsIHRoZW4gd2UgbmVl
ZCB0byBsYXlvdXQuICBPdGhlciBjaGFuZ2VzIHRvIGJvcmRlcnMKICAgICAvLyBvbmx5IG5lY2Vz
c2l0YXRlIGEgcmVwYWludC4KQEAgLTU5MiwxNiArNTgxLDE2IEBAIFN0eWxlRGlmZmVyZW5jZSBS
ZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFu
Z2VkQ29uCiAgICAgICAgIHx8IGJvcmRlclRvcFdpZHRoKCkgIT0gb3RoZXItPmJvcmRlclRvcFdp
ZHRoKCkKICAgICAgICAgfHwgYm9yZGVyQm90dG9tV2lkdGgoKSAhPSBvdGhlci0+Ym9yZGVyQm90
dG9tV2lkdGgoKQogICAgICAgICB8fCBib3JkZXJSaWdodFdpZHRoKCkgIT0gb3RoZXItPmJvcmRl
clJpZ2h0V2lkdGgoKSkKLSAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBJZiB0aGUgY291bnRlciBkaXJlY3RpdmVzIGNo
YW5nZSwgdHJpZ2dlciBhIHJlbGF5b3V0IHRvIHJlLWNhbGN1bGF0ZSBjb3VudGVyIHZhbHVlcyBh
bmQgcmVidWlsZCB0aGUgY291bnRlciBub2RlIHRyZWUuCiAgICAgY29uc3QgQ291bnRlckRpcmVj
dGl2ZU1hcCogbWFwQSA9IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2NvdW50ZXJEaXJlY3RpdmVz
LmdldCgpOwogICAgIGNvbnN0IENvdW50ZXJEaXJlY3RpdmVNYXAqIG1hcEIgPSBvdGhlci0+cmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fY291bnRlckRpcmVjdGl2ZXMuZ2V0KCk7CiAgICAgaWYgKCEo
bWFwQSA9PSBtYXBCIHx8IChtYXBBICYmIG1hcEIgJiYgKm1hcEEgPT0gKm1hcEIpKSkKLSAgICAg
ICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAK
ICAgICBpZiAoKHZpc2liaWxpdHkoKSA9PSBDT0xMQVBTRSkgIT0gKG90aGVyLT52aXNpYmlsaXR5
KCkgPT0gQ09MTEFQU0UpKQotICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0Owor
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmICgocmFyZU5vbkluaGVyaXRlZERhdGEtPm9w
YWNpdHkgPT0gMSAmJiBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm9wYWNpdHkgPCAxKQog
ICAgICAgICB8fCAocmFyZU5vbkluaGVyaXRlZERhdGEtPm9wYWNpdHkgPCAxICYmIG90aGVyLT5y
YXJlTm9uSW5oZXJpdGVkRGF0YS0+b3BhY2l0eSA9PSAxKSkgewpAQCAtNjEwLDQ0ICs1OTksNTgg
QEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBv
dGhlciwgdW5zaWduZWQmIGNoYW5nZWRDb24KICAgICAgICAgLy8gdG8gYWRkIGEgc2VsZk5lZWRz
U2ltcGxpZmllZExheW91dCBiaXQgaW4gb3JkZXIgdG8gbm90IGdldCBjb25mdXNlZCBhbmQgdGFp
bnQgZXZlcnkgbGluZSkuCiAgICAgICAgIC8vIEluIGFkZGl0aW9uIHdlIG5lZWQgdG8gc29sdmUg
dGhlIGZsb2F0aW5nIG9iamVjdCBpc3N1ZSB3aGVuIGxheWVycyBjb21lIGFuZCBnby4gUmlnaHQg
bm93CiAgICAgICAgIC8vIGEgZnVsbCBsYXlvdXQgaXMgbmVjZXNzYXJ5IHRvIGtlZXAgZmxvYXRp
bmcgb2JqZWN0IGxpc3RzIHNhbmUuCi0gICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlv
dXQ7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGNvbnN0IFF1b3Rlc0RhdGEq
IHF1b3Rlc0RhdGFBID0gcmFyZUluaGVyaXRlZERhdGEtPnF1b3Rlcy5nZXQoKTsKICAgICBjb25z
dCBRdW90ZXNEYXRhKiBxdW90ZXNEYXRhQiA9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+cXVv
dGVzLmdldCgpOwogICAgIGlmICghKHF1b3Rlc0RhdGFBID09IHF1b3Rlc0RhdGFCIHx8IChxdW90
ZXNEYXRhQSAmJiBxdW90ZXNEYXRhQiAmJiAqcXVvdGVzRGF0YUEgPT0gKnF1b3Rlc0RhdGFCKSkp
Ci0gICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7Ci0KLSNpZiBFTkFCTEUoU1ZH
KQotICAgIC8vIFNWR1JlbmRlclN0eWxlOjpkaWZmKCkgbWlnaHQgaGF2ZSByZXR1cm5lZCBTdHls
ZURpZmZlcmVuY2VSZXBhaW50LCBlZy4gaWYgZmlsbCBjaGFuZ2VzLgotICAgIC8vIElmIGVnLiB0
aGUgZm9udC1zaXplIGNoYW5nZWQgYXQgdGhlIHNhbWUgdGltZSwgd2UncmUgbm90IGFsbG93ZWQg
dG8gcmV0dXJuIFN0eWxlRGlmZmVyZW5jZVJlcGFpbnQsCi0gICAgLy8gYnV0IGhhdmUgdG8gcmV0
dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dCwgdGhhdCdzIHdoeSAgdGhpcyBpZiBicmFuY2ggY29t
ZXMgYWZ0ZXIgYWxsIGJyYW5jaGVzCi0gICAgLy8gdGhhdCBhcmUgcmVsZXZhbnQgZm9yIFNWRyBh
bmQgbWlnaHQgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dC4KLSAgICBpZiAoc3ZnQ2hhbmdl
ICE9IFN0eWxlRGlmZmVyZW5jZUVxdWFsKQotICAgICAgICByZXR1cm4gc3ZnQ2hhbmdlOwotI2Vu
ZGlmCisgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gTWFrZSBzdXJlIHRoZXNlIGxlZnQv
dG9wL3JpZ2h0L2JvdHRvbSBjaGVja3Mgc3RheSBiZWxvdyBhbGwgbGF5b3V0IGNoZWNrcyBhbmQg
YWJvdmUKLSAgICAvLyBhbGwgdmlzaWJsZSBjaGVja3MuCiAgICAgaWYgKHBvc2l0aW9uKCkgIT0g
U3RhdGljUG9zaXRpb24pIHsKICAgICAgICAgaWYgKHN1cnJvdW5kLT5vZmZzZXQgIT0gb3RoZXIt
PnN1cnJvdW5kLT5vZmZzZXQpIHsKLSAgICAgICAgICAgICAvLyBPcHRpbWl6ZSBmb3IgdGhlIGNh
c2Ugd2hlcmUgYSBwb3NpdGlvbmVkIGxheWVyIGlzIG1vdmluZyBidXQgbm90IGNoYW5naW5nIHNp
emUuCi0gICAgICAgICAgICBpZiAocG9zaXRpb24oKSA9PSBBYnNvbHV0ZVBvc2l0aW9uICYmIHBv
c2l0aW9uZWRPYmplY3RNb3ZlZChzdXJyb3VuZC0+b2Zmc2V0LCBvdGhlci0+c3Vycm91bmQtPm9m
ZnNldCwgbV9ib3gtPndpZHRoKCkpKQotCi0gICAgICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlm
ZmVyZW5jZUxheW91dFBvc2l0aW9uZWRNb3ZlbWVudE9ubHk7Ci0KICAgICAgICAgICAgIC8vIEZJ
WE1FOiBXZSB3b3VsZCBsaWtlIHRvIHVzZSBTaW1wbGlmaWVkTGF5b3V0IGZvciByZWxhdGl2ZSBw
b3NpdGlvbmluZywgYnV0IHdlIGNhbid0IHF1aXRlIGRvIHRoYXQgeWV0LgogICAgICAgICAgICAg
Ly8gV2UgbmVlZCB0byBtYWtlIHN1cmUgU2ltcGxpZmllZExheW91dCBjYW4gb3BlcmF0ZSBjb3Jy
ZWN0bHkgb24gUmVuZGVySW5saW5lcyAod2Ugd2lsbCBuZWVkCiAgICAgICAgICAgICAvLyB0byBh
ZGQgYSBzZWxmTmVlZHNTaW1wbGlmaWVkTGF5b3V0IGJpdCBpbiBvcmRlciB0byBub3QgZ2V0IGNv
bmZ1c2VkIGFuZCB0YWludCBldmVyeSBsaW5lKS4KLSAgICAgICAgICAgIHJldHVybiBTdHlsZURp
ZmZlcmVuY2VMYXlvdXQ7Ci0gICAgICAgIH0gZWxzZSBpZiAobV9ib3gtPnpJbmRleCgpICE9IG90
aGVyLT5tX2JveC0+ekluZGV4KCkgfHwgbV9ib3gtPmhhc0F1dG9aSW5kZXgoKSAhPSBvdGhlci0+
bV9ib3gtPmhhc0F1dG9aSW5kZXgoKQotICAgICAgICAgICAgICAgICB8fCB2aXN1YWwtPmNsaXAg
IT0gb3RoZXItPnZpc3VhbC0+Y2xpcCB8fCB2aXN1YWwtPmhhc0NsaXAgIT0gb3RoZXItPnZpc3Vh
bC0+aGFzQ2xpcCkKLSAgICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VSZXBhaW50TGF5
ZXI7CisgICAgICAgICAgICBpZiAocG9zaXRpb24oKSAhPSBBYnNvbHV0ZVBvc2l0aW9uKQorICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICAvLyBPcHRpbWl6ZSBmb3Ig
dGhlIGNhc2Ugd2hlcmUgYSBwb3NpdGlvbmVkIGxheWVyIGlzIG1vdmluZyBidXQgbm90IGNoYW5n
aW5nIHNpemUuCisgICAgICAgICAgICBpZiAoIXBvc2l0aW9uQ2hhbmdlSXNNb3ZlbWVudE9ubHko
c3Vycm91bmQtPm9mZnNldCwgb3RoZXItPnN1cnJvdW5kLT5vZmZzZXQsIG1fYm94LT53aWR0aCgp
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KICAgICAK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVz
UG9zaXRpb25lZExheW91dE9ubHkoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYp
IGNvbnN0Cit7CisgICAgaWYgKHBvc2l0aW9uKCkgPT0gU3RhdGljUG9zaXRpb24pCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmIChzdXJyb3VuZC0+b2Zmc2V0ICE9IG90aGVyLT5zdXJy
b3VuZC0+b2Zmc2V0KSB7CisgICAgICAgIC8vIE9wdGltaXplIGZvciB0aGUgY2FzZSB3aGVyZSBh
IHBvc2l0aW9uZWQgbGF5ZXIgaXMgbW92aW5nIGJ1dCBub3QgY2hhbmdpbmcgc2l6ZS4KKyAgICAg
ICAgaWYgKHBvc2l0aW9uKCkgPT0gQWJzb2x1dGVQb3NpdGlvbiAmJiBwb3NpdGlvbkNoYW5nZUlz
TW92ZW1lbnRPbmx5KHN1cnJvdW5kLT5vZmZzZXQsIG90aGVyLT5zdXJyb3VuZC0+b2Zmc2V0LCBt
X2JveC0+d2lkdGgoKSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc0xh
eWVyUmVwYWludChjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29u
dGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpIGNvbnN0Cit7CisgICAgaWYgKHBvc2l0aW9uKCkgIT0g
U3RhdGljUG9zaXRpb24pIHsKKyAgICAgICAgaWYgKG1fYm94LT56SW5kZXgoKSAhPSBvdGhlci0+
bV9ib3gtPnpJbmRleCgpCisgICAgICAgICAgICB8fCBtX2JveC0+aGFzQXV0b1pJbmRleCgpICE9
IG90aGVyLT5tX2JveC0+aGFzQXV0b1pJbmRleCgpCisgICAgICAgICAgICB8fCB2aXN1YWwtPmNs
aXAgIT0gb3RoZXItPnZpc3VhbC0+Y2xpcAorICAgICAgICAgICAgfHwgdmlzdWFsLT5oYXNDbGlw
ICE9IG90aGVyLT52aXN1YWwtPmhhc0NsaXApCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIGlmIChyYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9lZmZlY3RpdmVCbGVuZE1vZGUgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX2VmZmVjdGl2ZUJsZW5kTW9kZSkKLSAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5j
ZVJlcGFpbnRMYXllcjsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIAogICAgIGlmIChy
YXJlTm9uSW5oZXJpdGVkRGF0YS0+b3BhY2l0eSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERh
dGEtPm9wYWNpdHkpIHsKQEAgLTY1NSw3ICs2NTgsNyBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVy
U3R5bGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENv
bgogICAgICAgICBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMgfD0gQ29udGV4dFNl
bnNpdGl2ZVByb3BlcnR5T3BhY2l0eTsKICAgICAgICAgLy8gRG9uJ3QgcmV0dXJuOyBrZWVwIGxv
b2tpbmcgZm9yIGFub3RoZXIgY2hhbmdlLgogI2Vsc2UKLSAgICAgICAgcmV0dXJuIFN0eWxlRGlm
ZmVyZW5jZVJlcGFpbnRMYXllcjsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICAgICB9
CiAKQEAgLTY2NiwxNSArNjY5LDIwIEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlm
Zihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAgICAgICAg
IGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcyB8PSBDb250ZXh0U2Vuc2l0aXZlUHJv
cGVydHlGaWx0ZXI7CiAgICAgICAgIC8vIERvbid0IHJldHVybjsga2VlcCBsb29raW5nIGZvciBh
bm90aGVyIGNoYW5nZS4KICNlbHNlCi0gICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VSZXBh
aW50TGF5ZXI7CisgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAgICAgfQogI2VuZGlmCiAK
ICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFzayAhPSBvdGhlci0+cmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fbWFzawogICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9t
YXNrQm94SW1hZ2UgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21hc2tCb3hJbWFn
ZSkKLSAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZVJlcGFpbnRMYXllcjsKKyAgICAgICAg
cmV0dXJuIHRydWU7CiAKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVuZGVyU3R5bGU6
OmNoYW5nZVJlcXVpcmVzUmVwYWludChjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVk
JikgY29uc3QKK3sKICAgICBpZiAoaW5oZXJpdGVkX2ZsYWdzLl92aXNpYmlsaXR5ICE9IG90aGVy
LT5pbmhlcml0ZWRfZmxhZ3MuX3Zpc2liaWxpdHkKICAgICAgICAgfHwgaW5oZXJpdGVkX2ZsYWdz
Lm1fcHJpbnRDb2xvckFkanVzdCAhPSBvdGhlci0+aW5oZXJpdGVkX2ZsYWdzLm1fcHJpbnRDb2xv
ckFkanVzdAogICAgICAgICB8fCBpbmhlcml0ZWRfZmxhZ3MuX2luc2lkZUxpbmsgIT0gb3RoZXIt
PmluaGVyaXRlZF9mbGFncy5faW5zaWRlTGluawpAQCAtNjg1LDMwICs2OTMsMjQgQEAgU3R5bGVE
aWZmZXJlbmNlIFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5z
aWduZWQmIGNoYW5nZWRDb24KICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPnVzZXJE
cmFnICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dXNlckRyYWcKICAgICAgICAgfHwg
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fYm9yZGVyRml0ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9ib3JkZXJGaXQKICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1faW1h
Z2VSZW5kZXJpbmcgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdlUmVuZGVyaW5n
KQotICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWludDsKKyAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIAotICAgICAgICAvLyBGSVhNRTogVGhlIGN1cnJlbnQgc3BlYyBpcyBi
ZWluZyByZXdvcmtlZCB0byByZW1vdmUgZGVwZW5kZW5jaWVzIGJldHdlZW4gZXhjbHVzaW9ucyBh
bmQgYWZmZWN0ZWQgCi0gICAgICAgIC8vIGNvbnRlbnQuIFRoZXJlJ3MgYSBwcm9wb3NhbCB0byB1
c2UgZmxvYXRzIGluc3RlYWQuIEluIHRoYXQgY2FzZSwgd3JhcC1zaGFwZSBzaG91bGQgYWN0dWFs
bHkgcmVsYXlvdXQgCi0gICAgICAgIC8vIHRoZSBwYXJlbnQgY29udGFpbmVyLiBGb3Igc3VyZSwg
SSB3aWxsIGhhdmUgdG8gcmV2aXNpdCB0aGlzIGNvZGUsIGJ1dCBmb3Igbm93IEkndmUgYWRkZWQg
dGhpcyBpbiBvcmRlciAKLSAgICAgICAgLy8gdG8gYXZvaWQgaGF2aW5nIGRpZmYoKSA9PSBTdHls
ZURpZmZlcmVuY2VFcXVhbCB3aGVyZSB3cmFwLXNoYXBlcyBhY3R1YWxseSBkaWZmZXIuCi0gICAg
ICAgIC8vIFRyYWNraW5nIGJ1ZzogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYyOTkxCi0gICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9zaGFwZU91dHNp
ZGUgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3NoYXBlT3V0c2lkZSkKLSAgICAg
ICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VSZXBhaW50OworICAgIC8vIEZJWE1FOiBUaGUg
Y3VycmVudCBzcGVjIGlzIGJlaW5nIHJld29ya2VkIHRvIHJlbW92ZSBkZXBlbmRlbmNpZXMgYmV0
d2VlbiBleGNsdXNpb25zIGFuZCBhZmZlY3RlZCAKKyAgICAvLyBjb250ZW50LiBUaGVyZSdzIGEg
cHJvcG9zYWwgdG8gdXNlIGZsb2F0cyBpbnN0ZWFkLiBJbiB0aGF0IGNhc2UsIHdyYXAtc2hhcGUg
c2hvdWxkIGFjdHVhbGx5IHJlbGF5b3V0IAorICAgIC8vIHRoZSBwYXJlbnQgY29udGFpbmVyLiBG
b3Igc3VyZSwgSSB3aWxsIGhhdmUgdG8gcmV2aXNpdCB0aGlzIGNvZGUsIGJ1dCBmb3Igbm93IEkn
dmUgYWRkZWQgdGhpcyBpbiBvcmRlciAKKyAgICAvLyB0byBhdm9pZCBoYXZpbmcgZGlmZigpID09
IFN0eWxlRGlmZmVyZW5jZUVxdWFsIHdoZXJlIHdyYXAtc2hhcGVzIGFjdHVhbGx5IGRpZmZlci4K
KyAgICAvLyBUcmFja2luZyBidWc6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02Mjk5MQorICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9zaGFwZU91dHNpZGUg
IT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3NoYXBlT3V0c2lkZSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CiAKLSAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2NsaXBQ
YXRoICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9jbGlwUGF0aCkKLSAgICAgICAg
ICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VSZXBhaW50OworICAgIGlmIChyYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9jbGlwUGF0aCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fY2xp
cFBhdGgpCisgICAgICAgIHJldHVybiB0cnVlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQotICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS5nZXQoKSAhPSBvdGhlci0+cmFy
ZU5vbkluaGVyaXRlZERhdGEuZ2V0KCkpIHsKLSAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX3RyYW5zZm9ybVN0eWxlM0QgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X3RyYW5zZm9ybVN0eWxlM0QKLSAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X2JhY2tmYWNlVmlzaWJpbGl0eSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fYmFj
a2ZhY2VWaXNpYmlsaXR5Ci0gICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9w
ZXJzcGVjdGl2ZSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcGVyc3BlY3RpdmUK
LSAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3BlcnNwZWN0aXZlT3JpZ2lu
WCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcGVyc3BlY3RpdmVPcmlnaW5YCi0g
ICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9wZXJzcGVjdGl2ZU9yaWdpblkg
IT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3BlcnNwZWN0aXZlT3JpZ2luWSkKLSAg
ICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VSZWNvbXBvc2l0ZUxheWVyOwotICAgIH0K
LSNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KIAorYm9vbCBSZW5kZXJTdHlsZTo6Y2hhbmdl
UmVxdWlyZXNSZXBhaW50SWZUZXh0KGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQm
KSBjb25zdAorewogICAgIGlmIChpbmhlcml0ZWQtPmNvbG9yICE9IG90aGVyLT5pbmhlcml0ZWQt
PmNvbG9yCiAgICAgICAgIHx8IGluaGVyaXRlZF9mbGFncy5fdGV4dF9kZWNvcmF0aW9ucyAhPSBv
dGhlci0+aW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2RlY29yYXRpb25zCiAgICAgICAgIHx8IHZpc3Vh
bC0+dGV4dERlY29yYXRpb24gIT0gb3RoZXItPnZpc3VhbC0+dGV4dERlY29yYXRpb24KQEAgLTcy
MCw2ICs3MjIsNjggQEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IFJl
bmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQmIGNoYW5nZWRDb24KICAgICAgICAgfHwgcmFyZUlu
aGVyaXRlZERhdGEtPnRleHRTdHJva2VDb2xvciAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEt
PnRleHRTdHJva2VDb2xvcgogICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhh
c2lzQ29sb3IgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RW1waGFzaXNDb2xvcgog
ICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lzRmlsbCAhPSBvdGhlci0+
cmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc0ZpbGwpCisgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1
aXJlc1JlY29tcG9zaXRlTGF5ZXIoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYp
IGNvbnN0Cit7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmIChyYXJl
Tm9uSW5oZXJpdGVkRGF0YS5nZXQoKSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEuZ2V0
KCkpIHsKKyAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybVN0eWxl
M0QgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybVN0eWxlM0QKKyAg
ICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2JhY2tmYWNlVmlzaWJpbGl0eSAh
PSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fYmFja2ZhY2VWaXNpYmlsaXR5CisgICAg
ICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9wZXJzcGVjdGl2ZSAhPSBvdGhlci0+
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcGVyc3BlY3RpdmUKKyAgICAgICAgICAgIHx8IHJhcmVO
b25Jbmhlcml0ZWREYXRhLT5tX3BlcnNwZWN0aXZlT3JpZ2luWCAhPSBvdGhlci0+cmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fcGVyc3BlY3RpdmVPcmlnaW5YCisgICAgICAgICAgICB8fCByYXJlTm9u
SW5oZXJpdGVkRGF0YS0+bV9wZXJzcGVjdGl2ZU9yaWdpblkgIT0gb3RoZXItPnJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX3BlcnNwZWN0aXZlT3JpZ2luWSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKworU3R5bGVEaWZmZXJlbmNl
IFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQmIGNo
YW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykgY29uc3QKK3sKKyAgICBjaGFuZ2VkQ29u
dGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMgPSBDb250ZXh0U2Vuc2l0aXZlUHJvcGVydHlOb25lOwor
CisjaWYgRU5BQkxFKFNWRykKKyAgICBTdHlsZURpZmZlcmVuY2Ugc3ZnQ2hhbmdlID0gU3R5bGVE
aWZmZXJlbmNlRXF1YWw7CisgICAgaWYgKG1fc3ZnU3R5bGUgIT0gb3RoZXItPm1fc3ZnU3R5bGUp
IHsKKyAgICAgICAgc3ZnQ2hhbmdlID0gbV9zdmdTdHlsZS0+ZGlmZihvdGhlci0+bV9zdmdTdHls
ZS5nZXQoKSk7CisgICAgICAgIGlmIChzdmdDaGFuZ2UgPT0gU3R5bGVEaWZmZXJlbmNlTGF5b3V0
KQorICAgICAgICAgICAgcmV0dXJuIHN2Z0NoYW5nZTsKKyAgICB9CisjZW5kaWYKKworICAgIGlm
IChjaGFuZ2VSZXF1aXJlc0xheW91dChvdGhlciwgY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9w
ZXJ0aWVzKSkKKyAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKKworI2lmIEVO
QUJMRShTVkcpCisgICAgLy8gU1ZHUmVuZGVyU3R5bGU6OmRpZmYoKSBtaWdodCBoYXZlIHJldHVy
bmVkIFN0eWxlRGlmZmVyZW5jZVJlcGFpbnQsIGVnLiBpZiBmaWxsIGNoYW5nZXMuCisgICAgLy8g
SWYgZWcuIHRoZSBmb250LXNpemUgY2hhbmdlZCBhdCB0aGUgc2FtZSB0aW1lLCB3ZSdyZSBub3Qg
YWxsb3dlZCB0byByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWludCwKKyAgICAvLyBidXQgaGF2
ZSB0byByZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0LCB0aGF0J3Mgd2h5ICB0aGlzIGlmIGJy
YW5jaCBjb21lcyBhZnRlciBhbGwgYnJhbmNoZXMKKyAgICAvLyB0aGF0IGFyZSByZWxldmFudCBm
b3IgU1ZHIGFuZCBtaWdodCByZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0LgorICAgIGlmIChz
dmdDaGFuZ2UgIT0gU3R5bGVEaWZmZXJlbmNlRXF1YWwpCisgICAgICAgIHJldHVybiBzdmdDaGFu
Z2U7CisjZW5kaWYKKworICAgIC8vIEZJWE1FOiB3ZSBuZWVkIHRvIGFsc28gY2hlY2sgZm9yIHJl
cGFpbnQgY2hhbmdlcyBhZnRlciBhIFBvc2l0aW9uZWRNb3ZlbWVudE9ubHkgY2hhbmdlCisgICAg
Ly8gb24gYSBjb21wb3NpdGVkIGxheWVyOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTE2MzE5CisgICAgaWYgKGNoYW5nZVJlcXVpcmVzUG9zaXRpb25lZExheW91dE9u
bHkob3RoZXIsIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykpCisgICAgICAgIHJl
dHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXRQb3NpdGlvbmVkTW92ZW1lbnRPbmx5OworCisgICAg
aWYgKGNoYW5nZVJlcXVpcmVzTGF5ZXJSZXBhaW50KG90aGVyLCBjaGFuZ2VkQ29udGV4dFNlbnNp
dGl2ZVByb3BlcnRpZXMpKQorICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWludExh
eWVyOworCisgICAgaWYgKGNoYW5nZVJlcXVpcmVzUmVwYWludChvdGhlciwgY2hhbmdlZENvbnRl
eHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSkKKyAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZVJl
cGFpbnQ7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKGNoYW5n
ZVJlcXVpcmVzUmVjb21wb3NpdGVMYXllcihvdGhlciwgY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQ
cm9wZXJ0aWVzKSkKKyAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZVJlY29tcG9zaXRlTGF5
ZXI7CisjZW5kaWYKKworICAgIGlmIChjaGFuZ2VSZXF1aXJlc1JlcGFpbnRJZlRleHQob3RoZXIs
IGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykpCiAgICAgICAgIHJldHVybiBTdHls
ZURpZmZlcmVuY2VSZXBhaW50SWZUZXh0OwogCiAgICAgLy8gQ3Vyc29ycyBhcmUgbm90IGNoZWNr
ZWQsIHNpbmNlIHRoZXkgd2lsbCBiZSBzZXQgYXBwcm9wcmlhdGVseSBpbiByZXNwb25zZSB0byBt
b3VzZSBldmVudHMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCmluZGV4IDkwOGVjMzBjZTMyZDZhZDg2ODc1MmE5ODZmZjFkNDRlNzEyNWQxNmQuLjZlMzA5
ZWYzODU3MzQ0OTE5ODA4YjAxNzZlMzdkZGRhZTVmOTIzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0xNzYzLDcgKzE3NjMsMTUgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgc3RhdGljIEJsZW5kTW9kZSBp
bml0aWFsQmxlbmRNb2RlKCkgeyByZXR1cm4gQmxlbmRNb2RlTm9ybWFsOyB9CiAjZW5kaWYKKwog
cHJpdmF0ZToKKyAgICBib29sIGNoYW5nZVJlcXVpcmVzTGF5b3V0KGNvbnN0IFJlbmRlclN0eWxl
KiwgdW5zaWduZWQmIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykgY29uc3Q7Cisg
ICAgYm9vbCBjaGFuZ2VSZXF1aXJlc1Bvc2l0aW9uZWRMYXlvdXRPbmx5KGNvbnN0IFJlbmRlclN0
eWxlKiwgdW5zaWduZWQmIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykgY29uc3Q7
CisgICAgYm9vbCBjaGFuZ2VSZXF1aXJlc0xheWVyUmVwYWludChjb25zdCBSZW5kZXJTdHlsZSos
IHVuc2lnbmVkJiBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpIGNvbnN0OworICAg
IGJvb2wgY2hhbmdlUmVxdWlyZXNSZXBhaW50KGNvbnN0IFJlbmRlclN0eWxlKiwgdW5zaWduZWQm
IGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykgY29uc3Q7CisgICAgYm9vbCBjaGFu
Z2VSZXF1aXJlc1JlcGFpbnRJZlRleHQoY29uc3QgUmVuZGVyU3R5bGUqLCB1bnNpZ25lZCYgY2hh
bmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSBjb25zdDsKKyAgICBib29sIGNoYW5nZVJl
cXVpcmVzUmVjb21wb3NpdGVMYXllcihjb25zdCBSZW5kZXJTdHlsZSosIHVuc2lnbmVkJiBjaGFu
Z2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpIGNvbnN0OworCiAgICAgdm9pZCBzZXRWaXNp
dGVkTGlua0NvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdm9pZCBzZXRWaXNpdGVkTGlua0JhY2tn
cm91bmRDb2xvcihjb25zdCBDb2xvciYgdikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LCBtX3Zpc2l0ZWRMaW5rQmFja2dyb3VuZENvbG9yLCB2KTsgfQogICAgIHZvaWQgc2V0VmlzaXRl
ZExpbmtCb3JkZXJMZWZ0Q29sb3IoY29uc3QgQ29sb3ImIHYpIHsgU0VUX1ZBUihyYXJlTm9uSW5o
ZXJpdGVkRGF0YSwgbV92aXNpdGVkTGlua0JvcmRlckxlZnRDb2xvciwgdik7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204781</attachid>
            <date>2013-06-15 23:12:57 -0700</date>
            <delta_ts>2013-06-16 08:50:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116319-20130615231112.patch</filename>
            <type>text/plain</type>
            <size>11681</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxNTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWViYzRlZTEwMzAxMzdi
Yjk5N2NhZWQ4NjkwZTM0ZDhkNDRmYjFiOS4uMmQxNzhlNThhMzU3MDZjYmRkYjgxMWFiMjFmYjEz
MWFiZWJhMjY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTA2LTE1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIHdlYmtpdC1iYWNr
ZmFjZS12aXNpYmlsaXR5IG9uIGEgcGFyZW50IGVsZW1lbnQgc3RvcHMgYmFja2dyb3VuZC1wb3Np
dGlvbiBmcm9tIHVwZGF0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTYzMTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgb3B0aW1pemF0aW9uIGFkZGVkIGluIHIxMDI5NTIgd2FzIGluY29ycmVj
dCBpbiB0aGUgY2FzZSB3aGVyZSBhIHN0eWxlIGNoYW5nZQorICAgICAgICByZXN1bHRlZCBpbiBh
IHBvc2l0aW9uZWQtbW92ZW1lbnQtb25seSBsYXlvdXQgYnV0IGFsc28gcmVxdWlyZWQgYSByZXBh
aW50OyBpdCBhc3N1bWVkCisgICAgICAgIHRoYXQgYSBjb21wb3NpdGVkIGxheWVyIGRpZCBub3Qg
bmVlZCB0byBiZSByZXBhaW50ZWQgZm9yIGEgYSBwb3NpdGlvbmVkLW1vdmVtZW50LW9ubHkgbGF5
b3V0LgorICAgICAgICAKKyAgICAgICAgRml4IGJ5IG1ha2luZyBSZW5kZXJPYmplY3Q6OnNldE5l
ZWRzTGF5b3V0Rm9yUG9zaXRpb25lZE1vdmVtZW50KCkgY2hlY2sgd2hldGhlciB0aGUKKyAgICAg
ICAgc3R5bGUgY2hhbmdlIHJlcXVpcmVzIGEgcmVwYWludCwgYW5kIGNhbGxpbmcgc2V0TGF5ZXJO
ZWVkc0Z1bGxSZXBhaW50KCkgaW4gdGhhdCBzaXR1YXRpb24uCisKKyAgICAgICAgVGVzdDogY29t
cG9zaXRpbmcvcmVwYWludC9wb3NpdGlvbmVkLW1vdmVtZW50Lmh0bWwKKworICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllci5oOiBSZXBhaW50U3RhdHVzIHZhbHVlcyBkbyBub3QgbmVlZCB0
byBiZSBiaXQgZmxhZ3MuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNldFN0eWxlKTogUGFzcyB0aGUgb2xkIHN0
eWxlIHRvIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KCkuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKTogRGl0dG8uCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpz
ZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCk6IE5vdyB0YWtlcyBhIGNvbnN0IFJlbmRl
clN0eWxlKi4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYpOiBSZW1vdmUgYSBjb21tZW50IG5vdyB0
aGF0IHRoaXMgYnVnIGlzIGZpeGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRp
ZmZSZXF1aXJlc1JlcGFpbnQpOiBQdWJsaWMgd3JhcHBlciBmb3IgY2hhbmdlUmVxdWlyZXNSZXBh
aW50KCkuCisgICAgICAgIFRoYXQgZnVuY3Rpb24gbmV2ZXIgdXNlcyBjb250ZXh0U2Vuc2l0aXZl
UHJvcGVydGllcyBzbyB3ZSBjYW4gc2FmZWx5IGlnbm9yZSB0aGVtLgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOiBFeHBvc2UgYSB3YXkgdG8gY2FsbCBjaGFuZ2VSZXF1
aXJlc1JlcGFpbnQoKS4KKwogMjAxMy0wNi0xMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBTb21ldGltZXMgd2Ugc3RpY2sgaW4gc2xvdyBzY3JvbGxp
bmcgbW9kZSBldmVuIGFmdGVyIGxlYXZpbmcgYSBwYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCmluZGV4IDlkZGUwMjdlMjZiNjc3N2U2ZDUxMDY2OGZhYjViOWQ0ZTlhMjkw
ODAuLjUxZDk5ZjkwYjlkMWI5ZDdiYzdiZDNlNDY3MmNlODFiZjE3OWVmNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC03OSw5ICs3OSw5IEBAIGVudW0gQm9yZGVy
UmFkaXVzQ2xpcHBpbmdSdWxlIHsgSW5jbHVkZVNlbGZGb3JCb3JkZXJSYWRpdXMsIERvTm90SW5j
bHVkZVNlbGZGb3JCCiBlbnVtIEluY2x1ZGVTZWxmT3JOb3QgeyBJbmNsdWRlU2VsZiwgRXhjbHVk
ZVNlbGYgfTsKIAogZW51bSBSZXBhaW50U3RhdHVzIHsKLSAgICBOZWVkc05vcm1hbFJlcGFpbnQg
PSAwLAotICAgIE5lZWRzRnVsbFJlcGFpbnQgPSAxIDw8IDAsCi0gICAgTmVlZHNGdWxsUmVwYWlu
dEZvclBvc2l0aW9uZWRNb3ZlbWVudExheW91dCA9IDEgPDwgMQorICAgIE5lZWRzTm9ybWFsUmVw
YWludCwKKyAgICBOZWVkc0Z1bGxSZXBhaW50LAorICAgIE5lZWRzRnVsbFJlcGFpbnRGb3JQb3Np
dGlvbmVkTW92ZW1lbnRMYXlvdXQKIH07CiAKIGNsYXNzIENsaXBSZWN0IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggMmQzYWMwNDZhNTgyMzVkYTU5MzJm
MzFkYjc0MWEwMWE4OGIyMzNjMi4uNWJkNjg4MjE5OTQ3ZDEwYTViZDU5MmIyMDI5MzU5MDg4ZTFh
ZTg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTE4
NjgsOSArMTg2OCw5IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpzZXRTdHlsZShQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBzdHlsZSkKICAgICAgICAgaWYgKHVwZGF0ZWREaWZmID09IFN0eWxlRGlmZmVy
ZW5jZUxheW91dCkKICAgICAgICAgICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2Fs
YygpOwogICAgICAgICBlbHNlIGlmICh1cGRhdGVkRGlmZiA9PSBTdHlsZURpZmZlcmVuY2VMYXlv
dXRQb3NpdGlvbmVkTW92ZW1lbnRPbmx5KQotICAgICAgICAgICAgc2V0TmVlZHNQb3NpdGlvbmVk
TW92ZW1lbnRMYXlvdXQoKTsKKyAgICAgICAgICAgIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50
TGF5b3V0KG9sZFN0eWxlLmdldCgpKTsKICAgICAgICAgZWxzZSBpZiAodXBkYXRlZERpZmYgPT0g
U3R5bGVEaWZmZXJlbmNlU2ltcGxpZmllZExheW91dEFuZFBvc2l0aW9uZWRNb3ZlbWVudCkgewot
ICAgICAgICAgICAgc2V0TmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKTsKKyAgICAgICAg
ICAgIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KG9sZFN0eWxlLmdldCgpKTsKICAg
ICAgICAgICAgIHNldE5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoKTsKICAgICAgICAg
fSBlbHNlIGlmICh1cGRhdGVkRGlmZiA9PSBTdHlsZURpZmZlcmVuY2VTaW1wbGlmaWVkTGF5b3V0
KQogICAgICAgICAgICAgc2V0TmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCgpOwpAQCAt
MjAyMiwxMCArMjAyMiwxMCBAQCB2b2lkIFJlbmRlck9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdAogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KCk7CiAgICAg
fSBlbHNlIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5jZVNpbXBsaWZpZWRMYXlvdXRBbmRQb3Np
dGlvbmVkTW92ZW1lbnQpIHsKLSAgICAgICAgc2V0TmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlv
dXQoKTsKKyAgICAgICAgc2V0TmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQob2xkU3R5bGUp
OwogICAgICAgICBzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KCk7CiAgICAgfSBl
bHNlIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5jZUxheW91dFBvc2l0aW9uZWRNb3ZlbWVudE9u
bHkpCi0gICAgICAgIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KCk7CisgICAgICAg
IHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KG9sZFN0eWxlKTsKIAogICAgIC8vIERv
bid0IGNoZWNrIGZvciByZXBhaW50IGhlcmU7IHdlIG5lZWQgdG8gd2FpdCB1bnRpbCB0aGUgbGF5
ZXIgaGFzIGJlZW4KICAgICAvLyB1cGRhdGVkIGJ5IHN1YmNsYXNzZXMgYmVmb3JlIHdlIGtub3cg
aWYgd2UgaGF2ZSB0byByZXBhaW50IChpbiBzZXRTdHlsZSgpKS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA5MzU3YWM1ZmQ1OTJkNmY1ODkxNTZjNjgwYTc3ZmZj
ODMwNGQ1YjEwLi44MDgwOTIzMGVkNGI3NjkwNWQ0NzhjYTg5MDliYTliMGJiNjg4NjgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC02NjUsNyArNjY1LDcgQEAg
cHVibGljOgogICAgIHZvaWQgbWFya0NvbnRhaW5pbmdCbG9ja3NGb3JMYXlvdXQoYm9vbCBzY2hl
ZHVsZVJlbGF5b3V0ID0gdHJ1ZSwgUmVuZGVyT2JqZWN0KiBuZXdSb290ID0gMCk7CiAgICAgdm9p
ZCBzZXROZWVkc0xheW91dChib29sIG5lZWRzTGF5b3V0LCBNYXJraW5nQmVoYXZpb3IgPSBNYXJr
Q29udGFpbmluZ0Jsb2NrQ2hhaW4pOwogICAgIHZvaWQgc2V0Q2hpbGROZWVkc0xheW91dChib29s
IGNoaWxkTmVlZHNMYXlvdXQsIE1hcmtpbmdCZWhhdmlvciA9IE1hcmtDb250YWluaW5nQmxvY2tD
aGFpbik7Ci0gICAgdm9pZCBzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dCgpOworICAg
IHZvaWQgc2V0TmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoY29uc3QgUmVuZGVyU3R5bGUq
IG9sZFN0eWxlKTsKICAgICB2b2lkIHNldE5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQo
KTsKICAgICB2b2lkIHNldFByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eShib29sLCBNYXJraW5n
QmVoYXZpb3IgPSBNYXJrQ29udGFpbmluZ0Jsb2NrQ2hhaW4pOwogICAgIHZvaWQgaW52YWxpZGF0
ZUNvbnRhaW5lclByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKTsKQEAgLTEyNDQsMTUgKzEyNDQsMTkg
QEAgaW5saW5lIHZvaWQgUmVuZGVyT2JqZWN0OjpzZXRDaGlsZE5lZWRzTGF5b3V0KGJvb2wgY2hp
bGROZWVkc0xheW91dCwgTWFya2luZ0JlaGEKICAgICB9CiB9CiAKLWlubGluZSB2b2lkIFJlbmRl
ck9iamVjdDo6c2V0TmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKQoraW5saW5lIHZvaWQg
UmVuZGVyT2JqZWN0OjpzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dChjb25zdCBSZW5k
ZXJTdHlsZSogb2xkU3R5bGUpCiB7CiAgICAgYm9vbCBhbHJlYWR5TmVlZGVkTGF5b3V0ID0gbmVl
ZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKTsKICAgICBzZXROZWVkc1Bvc2l0aW9uZWRNb3Zl
bWVudExheW91dCh0cnVlKTsKICAgICBBU1NFUlQoIWlzU2V0TmVlZHNMYXlvdXRGb3JiaWRkZW4o
KSk7CiAgICAgaWYgKCFhbHJlYWR5TmVlZGVkTGF5b3V0KSB7CiAgICAgICAgIG1hcmtDb250YWlu
aW5nQmxvY2tzRm9yTGF5b3V0KCk7Ci0gICAgICAgIGlmIChoYXNMYXllcigpKQotICAgICAgICAg
ICAgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50Rm9yUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KCk7
CisgICAgICAgIGlmIChoYXNMYXllcigpKSB7CisgICAgICAgICAgICBpZiAob2xkU3R5bGUgJiYg
bV9zdHlsZS0+ZGlmZlJlcXVpcmVzUmVwYWludChvbGRTdHlsZSkpCisgICAgICAgICAgICAgICAg
c2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50Rm9yUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0
KCk7CisgICAgICAgIH0KICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDNiZjdkMmQ4ZmY0ZTkyNGY4MzZiOTQ3MDk4Nzkw
YmQyY2ZmMWMwYWEuLmY0YTdkYjlhYWVmZTk1NzUxOGE3OTgwZWY3MGIwYjZiMTY3YmYwYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAt
NzY3LDggKzc2Nyw2IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBS
ZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAgICAgICAgIHJldHVybiBz
dmdDaGFuZ2U7CiAjZW5kaWYKIAotICAgIC8vIEZJWE1FOiB3ZSBuZWVkIHRvIGFsc28gY2hlY2sg
Zm9yIHJlcGFpbnQgY2hhbmdlcyBhZnRlciBhIFBvc2l0aW9uZWRNb3ZlbWVudE9ubHkgY2hhbmdl
Ci0gICAgLy8gb24gYSBjb21wb3NpdGVkIGxheWVyOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE2MzE5CiAgICAgaWYgKGNoYW5nZVJlcXVpcmVzUG9zaXRpb25lZExh
eW91dE9ubHkob3RoZXIsIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykpCiAgICAg
ICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXRQb3NpdGlvbmVkTW92ZW1lbnRPbmx5Owog
CkBAIC03OTQsNiArNzkyLDEyIEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihj
b25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAgICAgcmV0dXJu
IFN0eWxlRGlmZmVyZW5jZUVxdWFsOwogfQogCitib29sIFJlbmRlclN0eWxlOjpkaWZmUmVxdWly
ZXNSZXBhaW50KGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKK3sKKyAgICB1bnNpZ25l
ZCBjb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcyA9IDA7CisgICAgcmV0dXJuIGNoYW5nZVJlcXVp
cmVzUmVwYWludChzdHlsZSwgY29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpOworfQorCiB2b2lk
IFJlbmRlclN0eWxlOjpzZXRDbGlwKExlbmd0aCB0b3AsIExlbmd0aCByaWdodCwgTGVuZ3RoIGJv
dHRvbSwgTGVuZ3RoIGxlZnQpCiB7CiAgICAgU3R5bGVWaXN1YWxEYXRhKiBkYXRhID0gdmlzdWFs
LmFjY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aAppbmRleCBmOWNkMjUxMzUzYmNlZTE3ZWMwZTdlNGE0Zjc2Yzc3YjRiYzlhZjYzLi5mMmI1MThl
NjM4ZGJlZDA0YjdkMjI0YzBiZmE3Yzg1ZDkxYTQxNDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTUzNSw2ICsxNTM1LDcgQEAgcHVibGlj
OgogICAgIGJvb2wgaW5oZXJpdGVkRGF0YVNoYXJlZChjb25zdCBSZW5kZXJTdHlsZSopIGNvbnN0
OwogCiAgICAgU3R5bGVEaWZmZXJlbmNlIGRpZmYoY29uc3QgUmVuZGVyU3R5bGUqLCB1bnNpZ25l
ZCYgY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSBjb25zdDsKKyAgICBib29sIGRp
ZmZSZXF1aXJlc1JlcGFpbnQoY29uc3QgUmVuZGVyU3R5bGUqKSBjb25zdDsKIAogICAgIGJvb2wg
aXNEaXNwbGF5UmVwbGFjZWRUeXBlKCkgY29uc3QgeyByZXR1cm4gaXNEaXNwbGF5UmVwbGFjZWRU
eXBlKGRpc3BsYXkoKSk7IH0KICAgICBib29sIGlzRGlzcGxheUlubGluZVR5cGUoKSBjb25zdCB7
IHJldHVybiBpc0Rpc3BsYXlJbmxpbmVUeXBlKGRpc3BsYXkoKSk7IH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzOTNhZmZj
Nzg1YTgzZGUwNDM4NWI3ZjViYmJjNmY0NjcyNWQyMGMxLi5jZjE1Yzc2MTE5M2FhNGI5MDUyNzYx
OTE4MDRhY2FmMGMzMjA0ZGQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDYtMTUgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgd2Via2l0LWJh
Y2tmYWNlLXZpc2liaWxpdHkgb24gYSBwYXJlbnQgZWxlbWVudCBzdG9wcyBiYWNrZ3JvdW5kLXBv
c2l0aW9uIGZyb20gdXBkYXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExNjMxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICAKKyAgICAgICAgVGVzdCB0aGF0IGRvZXMgYSBwb3NpdGlvbmVkLW1vdmVtZW50
LW9ubHkgbGF5b3V0IGFuZCBkdW1wcyBhIGxheWVyIHRyZWUgd2l0aAorICAgICAgICByZXBhaW50
IHJlY3RzLgorCisgICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9wb3NpdGlvbmVkLW1vdmVt
ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvcmVwYWludC9w
b3NpdGlvbmVkLW1vdmVtZW50Lmh0bWw6IEFkZGVkLgorCiAyMDEzLTA2LTEzICBHeXV5b3VuZyBL
aW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gQWRk
ZWQgbmV3IGJhc2VsaW5lcyBmb3Igc29tZSB0ZXN0cyBhcyByMTUxNTMzIG9uIEVGTCBwb3J0Lgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9wb3NpdGlvbmVkLW1v
dmVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvcG9z
aXRpb25lZC1tb3ZlbWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNmODJhMWVhNTNkMzAz
NGJjMmRmMDI4YTAwNGQxMTE2M2E2NTU2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3JlcGFpbnQvcG9zaXRpb25lZC1tb3ZlbWVudC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyMCBAQAorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQor
ICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2
MDAuMDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgIChjaGlsZHJlbiAxCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDExMC4wMCAxMTAuMDApCisg
ICAgICAgICAgKGJvdW5kcyA0MDAuMDAgNDAwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgICAocmVwYWludCByZWN0cworICAgICAgICAgICAgKHJlY3QgMC4wMCAwLjAw
IDQwMC4wMCA0MDAuMDApCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQor
ICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlcGFpbnQvcG9z
aXRpb25lZC1tb3ZlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVwYWludC9w
b3NpdGlvbmVkLW1vdmVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ3NzkwNDQ4N2VhZjIwNjE2Yzdh
MGFiNDYxNjk2MTU5ZmVjOWU5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3JlcGFpbnQvcG9zaXRpb25lZC1tb3ZlbWVudC5odG1sCkBAIC0wLDAgKzEsNTYgQEAK
KzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAg
LmJveCB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0b3A6
IDEwcHg7CisgICAgICAgICAgICBsZWZ0OiAxMHB4OworICAgICAgICAgICAgd2lkdGg6IDQwMHB4
OworICAgICAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtaW1h
Z2U6IHVybCgnLi4vcmVzb3VyY2VzL2FscGhhLWJsb2Nrcy5wbmcnKTsKKyAgICAgICAgICAgIGJh
Y2tncm91bmQtc2l6ZTogNDAwcHggNDAwcHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
ICNib3gubW92ZWQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMHB4IC0x
MDBweDsKKyAgICAgICAgICAgIHRvcDogMTEwcHg7CisgICAgICAgICAgICBsZWZ0OiAxMTBweDsK
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLmNvbXBvc2l0ZWQgeworICAgICAgICAgICAg
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CisgICAgICAgIH0KKyAgICA8L3N0eWxl
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3QoKQorICAg
ICAgICB7CisgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKyAgICAgICAgICAgICAgICBpZiAo
d2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5z
dGFydFRyYWNraW5nUmVwYWludHMoZG9jdW1lbnQpOworCisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLmNsYXNzTGlzdC5hZGQoJ21vdmVkJyk7CisKKyAgICAg
ICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlcGFpbnRSZWN0cycpLnRleHRDb250ZW50ID0gd2luZG93
LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVF
X0lOQ0xVREVTX1JFUEFJTlRfUkVDVFMpOworCisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgICAgIH0sIDIwMCk7CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWQnLCB0ZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKworICAgIDxkaXYgaWQ9ImJveCIgY2xhc3M9ImNvbXBvc2l0ZWQgYm94Ij48L2Rpdj4K
KyAgICA8cHJlIGlkPSJyZXBhaW50UmVjdHMiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="226175"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>