<?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>103278</bug_id>
          
          <creation_ts>2012-11-26 12:13:23 -0800</creation_ts>
          <short_desc>[chromium] Touchscreen fling handling</short_desc>
          <delta_ts>2012-11-26 20:09:42 -0800</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="Alexandre Elias">aelias</reporter>
          <assigned_to name="Alexandre Elias">aelias</assigned_to>
          <cc>aelias</cc>
    
    <cc>jamesr</cc>
    
    <cc>rjkroege</cc>
    
    <cc>skyostil</cc>
    
    <cc>tomhudson</cc>
    
    <cc>wangxianzhu</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yusufo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>775758</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-11-26 12:13:23 -0800</bug_when>
    <thetext>[chromium] Simplify fling handling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775766</commentid>
    <comment_count>1</comment_count>
      <attachid>176045</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-11-26 12:24:07 -0800</bug_when>
    <thetext>Created attachment 176045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775785</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-11-26 12:39:25 -0800</bug_when>
    <thetext>On ChromeOS we want the synthetic wheel behavior. On Android you do not, but that doesn&apos;t mean you can just delete the other path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775786</commentid>
    <comment_count>3</comment_count>
      <attachid>176045</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-11-26 12:41:20 -0800</bug_when>
    <thetext>Comment on attachment 176045
Patch

I think you want to pick between wheel-like and touch-like flings based on the input event&apos;s SourceDevice.  If it&apos;s touchpad, do the wheel fling.  If it&apos;s touchscreen, do a touch fling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775787</commentid>
    <comment_count>4</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-11-26 12:44:20 -0800</bug_when>
    <thetext>Robert, could you clarify what parts of this behavior you actually want to keep on ChromeOS and why?  I don&apos;t know what&apos;s intended behavior and what&apos;s historical cruft, so I erred on the side of deletion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775788</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-11-26 12:46:25 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Robert, could you clarify what parts of this behavior you actually want to keep on ChromeOS and why?  I don&apos;t know what&apos;s intended behavior and what&apos;s historical cruft, so I erred on the side of deletion.

The code currently here implements touchpad-style fling (for lack of a better term).  It&apos;s what you get on a mac - a sequence of wheel events targeting a specific point on the page (not an element).  The sort of fling you want in android (which I&apos;ll call touchscreen fling) is different - there you get a sequence of scrolls (not events) targeting a specific scrollable layer (not a point).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775976</commentid>
    <comment_count>6</comment_count>
      <attachid>176093</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-11-26 15:32:24 -0800</bug_when>
    <thetext>Created attachment 176093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775977</commentid>
    <comment_count>7</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-11-26 15:32:59 -0800</bug_when>
    <thetext>PTAL, Imade the patch a no-op for touchpad flings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775995</commentid>
    <comment_count>8</comment_count>
      <attachid>176093</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-11-26 15:50:39 -0800</bug_when>
    <thetext>Comment on attachment 176093
Patch

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

Could you update WebCompositorInputHandlerImplTest.cpp?  It has several tests for the touchpad behavior - it would be good to have some for the touchscreen behavior as well.

&gt; Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.cpp:320
&gt; +    TRACE_EVENT2(&quot;cc&quot;, &quot;WebCompositorInputHandlerImpl::scrollBy&quot;, &quot;x&quot;, increment.x, &quot;y&quot;, increment.y);

i think this should be in the &quot;webkit&quot; trace category, not &quot;cc&quot; (the other ones in this file are wrong too, methinks)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776114</commentid>
    <comment_count>9</comment_count>
      <attachid>176123</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-11-26 17:23:08 -0800</bug_when>
    <thetext>Created attachment 176123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776116</commentid>
    <comment_count>10</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-11-26 17:23:35 -0800</bug_when>
    <thetext>Added tests for touchscreen fling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776118</commentid>
    <comment_count>11</comment_count>
      <attachid>176123</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-11-26 17:25:09 -0800</bug_when>
    <thetext>Comment on attachment 176123
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776219</commentid>
    <comment_count>12</comment_count>
      <attachid>176123</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 19:24:43 -0800</bug_when>
    <thetext>Comment on attachment 176123
Patch

Rejecting attachment 176123 from commit-queue.

New failing tests:
inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html
Full output: http://queues.webkit.org/results/15003371</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776241</commentid>
    <comment_count>13</comment_count>
      <attachid>176123</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 20:09:38 -0800</bug_when>
    <thetext>Comment on attachment 176123
Patch

Clearing flags on attachment: 176123

Committed r135808: &lt;http://trac.webkit.org/changeset/135808&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776242</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 20:09:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176045</attachid>
            <date>2012-11-26 12:24:07 -0800</date>
            <delta_ts>2012-11-26 15:32:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103278-20121126122145.patch</filename>
            <type>text/plain</type>
            <size>9119</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGY3NzAzZDY5NmU3OGM4YTY2NDMyOWNiZmNjYmRhZmMzNDM5MTMyYmUuLmQ4MjhkOWUxNjM4NjI5
NjQ4MDE0NjgxMTFhM2NiMWRmMTA3ODMxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTItMTEtMjYgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBTaW1wbGlmeSBmbGluZyBoYW5kbGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGV4aXN0
aW5nIGZsaW5nIGxvZ2ljIGlzIGNvbXBsaWNhdGVkIGFuZCBjYW4gZmFsbCB0aHJvdWdoIHRvIGJh
ZAorICAgICAgICBwZXJmb3JtYW5jZSBpbiBzZXZlcmFsIHdheXMuIFRoaXMgcGF0Y2ggc2ltcGxp
ZmllcyBpdCBhcyBmb2xsb3dzOgorCisgICAgICAgIC0gU3RvcCBnZW5lcmF0aW5nIHdoZWVsIGV2
ZW50cywgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSBzY3JvbGxCZWdpbiBoaXQKKyAgICAgICAgdGVz
dHMgYW5kIHRvIGF2b2lkIGZhbGxpbmcgYmFjayB0byBzbG93IHBhdGggaWYgYSB3aGVlbCBoYW5k
bGVyIGlzCisgICAgICAgIHJlZ2lzdGVyZWQuCisKKyAgICAgICAgLSBEcm9wIHRoZSBldmVudCBv
biBTY3JvbGxTdGF0dXNJZ25vcmVkLiBUaGVyZSdzIG5vIHJlYWwgcmVhc29uIHRvCisgICAgICAg
IHNlbmQgdGhlIGV2ZW50IHRvIHRoZSBXZWJLaXQgdGhyZWFkIGhlcmUuCisKKyAgICAgICAgLSBE
ZWxldGUgY2FsbCB0byB0cmFuc2ZlckFjdGl2ZVdoZWVsRmxpbmdBbmltYXRpb24uIFRoaXMgdHlw
ZSBvZgorICAgICAgICB0cmFuc2l0aW9uIHNob3VsZG4ndCBiZSBuZWVkZWQgd2l0aCBvdXIgY3Vy
cmVudCBmbGluZyBiZWhhdmlvci4KKworICAgICAgICAqIHNyYy9XZWJDb21wb3NpdG9ySW5wdXRI
YW5kbGVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRs
ZXJJbXBsOjpoYW5kbGVHZXN0dXJlRmxpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVySW1wbDo6YW5pbWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBv
c2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpjYW5jZWxDdXJyZW50RmxpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6c2Nyb2xsQnkpOgorICAgICAgICAq
IHNyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5oOgorCiAyMDEyLTExLTIxICBQZXRl
ciBCZXZlcmxvbyAgPHBldGVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIHdl
YmtpdF91bml0X3Rlc3RzIHNob3VsZCBkZXBlbmQgb24gZm9yd2FyZGVyMiBmb3IgQW5kcm9pZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGwuY3BwCmluZGV4IDc0ODM2ZDU1ZjM1OGEzODk1ODRkOWFmMDlhYmNi
ODUxYTUzNTYzN2UuLjZiMTcwNWE4ZTMxNmNiMzAwNTBiZjY5ZWM0MzA5NTUwZjAyYmFjZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhh
bmRsZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKQEAgLTIwNSwxNCArMjA1LDEzIEBAIFdlYkNvbXBvc2l0
b3JJbnB1dEhhbmRsZXJJbXBsOjpFdmVudERpc3Bvc2l0aW9uIFdlYkNvbXBvc2l0b3JJbnB1dEhh
bmRsZXJJbXBsOjpoCiAgICAgV2ViSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGF0dXMgc2Ny
b2xsU3RhdHVzID0gbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEJlZ2luKFdlYlBvaW50KGdl
c3R1cmVFdmVudC54LCBnZXN0dXJlRXZlbnQueSksIFdlYklucHV0SGFuZGxlckNsaWVudDo6U2Ny
b2xsSW5wdXRUeXBlR2VzdHVyZSk7CiAgICAgc3dpdGNoIChzY3JvbGxTdGF0dXMpIHsKICAgICBj
YXNlIFdlYklucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVzU3RhcnRlZDogewotICAgICAg
ICBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsRW5kKCk7Ci0gICAgICAgIG1fd2hlZWxGbGlu
Z0N1cnZlID0gYWRvcHRQdHIoUGxhdGZvcm06OmN1cnJlbnQoKS0+Y3JlYXRlRmxpbmdBbmltYXRp
b25DdXJ2ZShnZXN0dXJlRXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnNvdXJjZURldmljZSwgV2ViRmxv
YXRQb2ludChnZXN0dXJlRXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WCwgZ2VzdHVyZUV2
ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0eVkpLCBXZWJTaXplKCkpKTsKKyAgICAgICAgbV9m
bGluZ0N1cnZlID0gYWRvcHRQdHIoUGxhdGZvcm06OmN1cnJlbnQoKS0+Y3JlYXRlRmxpbmdBbmlt
YXRpb25DdXJ2ZShnZXN0dXJlRXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnNvdXJjZURldmljZSwgV2Vi
RmxvYXRQb2ludChnZXN0dXJlRXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WCwgZ2VzdHVy
ZUV2ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0eVkpLCBXZWJTaXplKCkpKTsKICAgICAgICAg
VFJBQ0VfRVZFTlRfQVNZTkNfQkVHSU4wKCJjYyIsICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVy
SW1wbDo6aGFuZGxlR2VzdHVyZUZsaW5nOjpzdGFydGVkIiwgdGhpcyk7Ci0gICAgICAgIG1fd2hl
ZWxGbGluZ1BhcmFtZXRlcnMuZGVsdGEgPSBXZWJGbG9hdFBvaW50KGdlc3R1cmVFdmVudC5kYXRh
LmZsaW5nU3RhcnQudmVsb2NpdHlYLCBnZXN0dXJlRXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9j
aXR5WSk7Ci0gICAgICAgIG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMucG9pbnQgPSBXZWJQb2ludChn
ZXN0dXJlRXZlbnQueCwgZ2VzdHVyZUV2ZW50LnkpOwotICAgICAgICBtX3doZWVsRmxpbmdQYXJh
bWV0ZXJzLmdsb2JhbFBvaW50ID0gV2ViUG9pbnQoZ2VzdHVyZUV2ZW50Lmdsb2JhbFgsIGdlc3R1
cmVFdmVudC5nbG9iYWxZKTsKLSAgICAgICAgbV93aGVlbEZsaW5nUGFyYW1ldGVycy5tb2RpZmll
cnMgPSBnZXN0dXJlRXZlbnQubW9kaWZpZXJzOwotICAgICAgICBtX3doZWVsRmxpbmdQYXJhbWV0
ZXJzLnNvdXJjZURldmljZSA9IGdlc3R1cmVFdmVudC5kYXRhLmZsaW5nU3RhcnQuc291cmNlRGV2
aWNlOworICAgICAgICBtX2ZsaW5nUGFyYW1ldGVycy5kZWx0YSA9IFdlYkZsb2F0UG9pbnQoZ2Vz
dHVyZUV2ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0eVgsIGdlc3R1cmVFdmVudC5kYXRhLmZs
aW5nU3RhcnQudmVsb2NpdHlZKTsKKyAgICAgICAgbV9mbGluZ1BhcmFtZXRlcnMucG9pbnQgPSBX
ZWJQb2ludChnZXN0dXJlRXZlbnQueCwgZ2VzdHVyZUV2ZW50LnkpOworICAgICAgICBtX2ZsaW5n
UGFyYW1ldGVycy5nbG9iYWxQb2ludCA9IFdlYlBvaW50KGdlc3R1cmVFdmVudC5nbG9iYWxYLCBn
ZXN0dXJlRXZlbnQuZ2xvYmFsWSk7CisgICAgICAgIG1fZmxpbmdQYXJhbWV0ZXJzLm1vZGlmaWVy
cyA9IGdlc3R1cmVFdmVudC5tb2RpZmllcnM7CisgICAgICAgIG1fZmxpbmdQYXJhbWV0ZXJzLnNv
dXJjZURldmljZSA9IGdlc3R1cmVFdmVudC5kYXRhLmZsaW5nU3RhcnQuc291cmNlRGV2aWNlOwog
ICAgICAgICBtX2lucHV0SGFuZGxlckNsaWVudC0+c2NoZWR1bGVBbmltYXRpb24oKTsKICAgICAg
ICAgcmV0dXJuIERpZEhhbmRsZTsKICAgICB9CkBAIC0yMjIsOSArMjIxLDcgQEAgV2ViQ29tcG9z
aXRvcklucHV0SGFuZGxlckltcGw6OkV2ZW50RGlzcG9zaXRpb24gV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGw6OmgKICAgICB9CiAgICAgY2FzZSBXZWJJbnB1dEhhbmRsZXJDbGllbnQ6OlNj
cm9sbFN0YXR1c0lnbm9yZWQ6IHsKICAgICAgICAgVFJBQ0VfRVZFTlRfSU5TVEFOVDAoImNjIiwg
IldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVHZXN0dXJlRmxpbmc6Omlnbm9y
ZWQiKTsKLSAgICAgICAgLy8gV2Ugc3RpbGwgcGFzcyB0aGUgY3VydmUgdG8gdGhlIG1haW4gdGhy
ZWFkIGlmIHRoZXJlJ3Mgbm90aGluZyBzY3JvbGxhYmxlLCBpbiBjYXNlIHNvbWV0aGluZwotICAg
ICAgICAvLyByZWdpc3RlcnMgYSBoYW5kbGVyIGJlZm9yZSB0aGUgY3VydmUgaXMgb3Zlci4KLSAg
ICAgICAgcmV0dXJuIERpZE5vdEhhbmRsZTsKKyAgICAgICAgcmV0dXJuIERyb3BFdmVudDsKICAg
ICB9CiAgICAgfQogICAgIHJldHVybiBEaWROb3RIYW5kbGU7CkBAIC0yNDQsMTYgKzI0MSwxNiBA
QCB2b2lkIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpiaW5kVG9DbGllbnQoV2ViSW5w
dXRIYW5kbGVyQ2xpZW50KiBjbGllbnQpCiAKIHZvaWQgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxl
ckltcGw6OmFuaW1hdGUoZG91YmxlIG1vbm90b25pY1RpbWUpCiB7Ci0gICAgaWYgKCFtX3doZWVs
RmxpbmdDdXJ2ZSkKKyAgICBpZiAoIW1fZmxpbmdDdXJ2ZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKCFtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLnN0YXJ0VGltZSkgewotICAgICAgICBtX3do
ZWVsRmxpbmdQYXJhbWV0ZXJzLnN0YXJ0VGltZSA9IG1vbm90b25pY1RpbWU7CisgICAgaWYgKCFt
X2ZsaW5nUGFyYW1ldGVycy5zdGFydFRpbWUpIHsKKyAgICAgICAgbV9mbGluZ1BhcmFtZXRlcnMu
c3RhcnRUaW1lID0gbW9ub3RvbmljVGltZTsKICAgICAgICAgbV9pbnB1dEhhbmRsZXJDbGllbnQt
PnNjaGVkdWxlQW5pbWF0aW9uKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAo
bV93aGVlbEZsaW5nQ3VydmUtPmFwcGx5KG1vbm90b25pY1RpbWUgLSBtX3doZWVsRmxpbmdQYXJh
bWV0ZXJzLnN0YXJ0VGltZSwgdGhpcykpCisgICAgaWYgKG1fZmxpbmdDdXJ2ZS0+YXBwbHkobW9u
b3RvbmljVGltZSAtIG1fZmxpbmdQYXJhbWV0ZXJzLnN0YXJ0VGltZSwgdGhpcykpCiAgICAgICAg
IG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY2hlZHVsZUFuaW1hdGlvbigpOwogICAgIGVsc2Ugewog
ICAgICAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgiY2MiLCAiV2ViQ29tcG9zaXRvcklucHV0SGFu
ZGxlckltcGw6OmFuaW1hdGU6OmZsaW5nT3ZlciIpOwpAQCAtMjYzLDEzICsyNjAsMTUgQEAgdm9p
ZCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6YW5pbWF0ZShkb3VibGUgbW9ub3Rvbmlj
VGltZSkKIAogYm9vbCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6Y2FuY2VsQ3VycmVu
dEZsaW5nKCkKIHsKLSAgICBib29sIGhhZEZsaW5nQW5pbWF0aW9uID0gbV93aGVlbEZsaW5nQ3Vy
dmU7Ci0gICAgaWYgKGhhZEZsaW5nQW5pbWF0aW9uKQorICAgIGJvb2wgaGFkRmxpbmdBbmltYXRp
b24gPSBtX2ZsaW5nQ3VydmU7CisgICAgaWYgKGhhZEZsaW5nQW5pbWF0aW9uKSB7CisgICAgICAg
IG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY3JvbGxFbmQoKTsKICAgICAgICAgVFJBQ0VfRVZFTlRf
QVNZTkNfRU5EMCgiY2MiLCAiV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUdl
c3R1cmVGbGluZzo6c3RhcnRlZCIsIHRoaXMpOworICAgIH0KIAogICAgIFRSQUNFX0VWRU5UX0lO
U1RBTlQxKCJjYyIsICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6Y2FuY2VsQ3VycmVu
dEZsaW5nIiwgImhhZEZsaW5nQW5pbWF0aW9uIiwgaGFkRmxpbmdBbmltYXRpb24pOwotICAgIG1f
d2hlZWxGbGluZ0N1cnZlLmNsZWFyKCk7Ci0gICAgbV93aGVlbEZsaW5nUGFyYW1ldGVycyA9IFdl
YkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzKCk7CisgICAgbV9mbGluZ0N1cnZlLmNsZWFyKCk7
CisgICAgbV9mbGluZ1BhcmFtZXRlcnMgPSBXZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycygp
OwogICAgIHJldHVybiBoYWRGbGluZ0FuaW1hdGlvbjsKIH0KIApAQCAtMjc5LDM1ICsyNzgsMTEg
QEAgdm9pZCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6c2Nyb2xsQnkoY29uc3QgV2Vi
UG9pbnQmIGluY3JlbWVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgVFJBQ0VfRVZFTlQyKCJj
YyIsICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6c2Nyb2xsQnkiLCAieCIsIGluY3Jl
bWVudC54LCAieSIsIGluY3JlbWVudC55KTsKLSAgICBXZWJNb3VzZVdoZWVsRXZlbnQgc3ludGhl
dGljV2hlZWw7Ci0gICAgc3ludGhldGljV2hlZWwudHlwZSA9IFdlYklucHV0RXZlbnQ6Ok1vdXNl
V2hlZWw7Ci0gICAgc3ludGhldGljV2hlZWwuZGVsdGFYID0gaW5jcmVtZW50Lng7Ci0gICAgc3lu
dGhldGljV2hlZWwuZGVsdGFZID0gaW5jcmVtZW50Lnk7Ci0gICAgc3ludGhldGljV2hlZWwuaGFz
UHJlY2lzZVNjcm9sbGluZ0RlbHRhcyA9IHRydWU7Ci0gICAgc3ludGhldGljV2hlZWwueCA9IG1f
d2hlZWxGbGluZ1BhcmFtZXRlcnMucG9pbnQueDsKLSAgICBzeW50aGV0aWNXaGVlbC55ID0gbV93
aGVlbEZsaW5nUGFyYW1ldGVycy5wb2ludC55OwotICAgIHN5bnRoZXRpY1doZWVsLmdsb2JhbFgg
PSBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLmdsb2JhbFBvaW50Lng7Ci0gICAgc3ludGhldGljV2hl
ZWwuZ2xvYmFsWSA9IG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMuZ2xvYmFsUG9pbnQueTsKLSAgICBz
eW50aGV0aWNXaGVlbC5tb2RpZmllcnMgPSBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLm1vZGlmaWVy
czsKLQotICAgIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpFdmVudERpc3Bvc2l0aW9u
IGRpc3Bvc2l0aW9uID0gaGFuZGxlSW5wdXRFdmVudEludGVybmFsKHN5bnRoZXRpY1doZWVsKTsK
LSAgICBzd2l0Y2ggKGRpc3Bvc2l0aW9uKSB7Ci0gICAgY2FzZSBEaWRIYW5kbGU6Ci0gICAgICAg
IG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMuY3VtdWxhdGl2ZVNjcm9sbC53aWR0aCArPSBpbmNyZW1l
bnQueDsKLSAgICAgICAgbV93aGVlbEZsaW5nUGFyYW1ldGVycy5jdW11bGF0aXZlU2Nyb2xsLmhl
aWdodCArPSBpbmNyZW1lbnQueTsKLSAgICBjYXNlIERyb3BFdmVudDoKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBEaWROb3RIYW5kbGU6Ci0gICAgICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQwKCJj
YyIsICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6c2Nyb2xsQnk6OkFib3J0Rmxpbmci
KTsKLSAgICAgICAgLy8gSWYgd2UgZ290IGEgRGlkTm90SGFuZGxlLCB0aGF0IG1lYW5zIHdlIG5l
ZWQgdG8gZGVsaXZlciB3aGVlbHMgb24gdGhlIG1haW4gdGhyZWFkLgotICAgICAgICAvLyBJbiB0
aGlzIGNhc2Ugd2UgbmVlZCB0byBzY2hlZHVsZSBhIGNvbW1pdCBhbmQgdHJhbnNmZXIgdGhlIGZs
aW5nIGN1cnZlIG92ZXIgdG8gdGhlIG1haW4KLSAgICAgICAgLy8gdGhyZWFkIGFuZCBydW4gdGhl
IHJlc3Qgb2YgdGhlIHdoZWVscyBmcm9tIHRoZXJlLgotICAgICAgICAvLyBUaGlzIGNhbiBoYXBw
ZW4gd2hlbiBmbGluZ2luZyBhIHBhZ2UgdGhhdCBjb250YWlucyBhIHNjcm9sbGFibGUgc3ViYXJl
YSB0aGF0IHdlIGNhbid0Ci0gICAgICAgIC8vIHNjcm9sbCBvbiB0aGUgdGhyZWFkIGlmIHRoZSBm
bGluZyBzdGFydHMgb3V0c2lkZSB0aGUgc3ViYXJlYSBidXQgdGhlbiBpcyBmbHVuZyAidW5kZXIi
IHRoZQotICAgICAgICAvLyBwb2ludGVyLgotICAgICAgICBtX2NsaWVudC0+dHJhbnNmZXJBY3Rp
dmVXaGVlbEZsaW5nQW5pbWF0aW9uKG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMpOwotICAgICAgICBj
YW5jZWxDdXJyZW50RmxpbmcoKTsKLSAgICAgICAgYnJlYWs7CisgICAgYm9vbCBkaWRTY3JvbGwg
PSBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsQnlJZlBvc3NpYmxlKG1fZmxpbmdQYXJhbWV0
ZXJzLnBvaW50LCBJbnRTaXplKC1pbmNyZW1lbnQueCwgLWluY3JlbWVudC55KSk7CisKKyAgICBp
ZiAoZGlkU2Nyb2xsKSB7CisgICAgICAgIG1fZmxpbmdQYXJhbWV0ZXJzLmN1bXVsYXRpdmVTY3Jv
bGwud2lkdGggKz0gaW5jcmVtZW50Lng7CisgICAgICAgIG1fZmxpbmdQYXJhbWV0ZXJzLmN1bXVs
YXRpdmVTY3JvbGwuaGVpZ2h0ICs9IGluY3JlbWVudC55OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRs
ZXJJbXBsLmgKaW5kZXggZWZlN2Y1M2I0MDU3MWYxOTUxOWIzM2JiM2FlMzkxYzhlMTdkMWI0Ni4u
MjhkZGY0ZTljNDJmNjMyZTRkOTYxNTgwZmQ5MTBmMDk1NjBiZTJjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVy
SW1wbC5oCkBAIC04MSw5ICs4MSw5IEBAIHByaXZhdGU6CiAgICAgLy8gUmV0dXJucyB0cnVlIGlm
IHdlIGFjdHVhbGx5IGhhZCBhbiBhY3RpdmUgZmxpbmcgdG8gY2FuY2VsLgogICAgIGJvb2wgY2Fu
Y2VsQ3VycmVudEZsaW5nKCk7CiAKLSAgICBPd25QdHI8V2ViR2VzdHVyZUN1cnZlPiBtX3doZWVs
RmxpbmdDdXJ2ZTsKKyAgICBPd25QdHI8V2ViR2VzdHVyZUN1cnZlPiBtX2ZsaW5nQ3VydmU7CiAg
ICAgLy8gUGFyYW1ldGVycyBmb3IgdGhlIGFjdGl2ZSBmbGluZyBhbmltYXRpb24sIHN0b3JlZCBp
biBjYXNlIHdlIG5lZWQgdG8gdHJhbnNmZXIgaXQgb3V0IGxhdGVyLgotICAgIFdlYkFjdGl2ZVdo
ZWVsRmxpbmdQYXJhbWV0ZXJzIG1fd2hlZWxGbGluZ1BhcmFtZXRlcnM7CisgICAgV2ViQWN0aXZl
V2hlZWxGbGluZ1BhcmFtZXRlcnMgbV9mbGluZ1BhcmFtZXRlcnM7CiAKICAgICBXZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVyQ2xpZW50KiBtX2NsaWVudDsKICAgICBpbnQgbV9pZGVudGlmaWVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176093</attachid>
            <date>2012-11-26 15:32:24 -0800</date>
            <delta_ts>2012-11-26 17:23:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103278-20121126153003.patch</filename>
            <type>text/plain</type>
            <size>10458</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGY3NzAzZDY5NmU3OGM4YTY2NDMyOWNiZmNjYmRhZmMzNDM5MTMyYmUuLjJiYWUzZmFkNjBmZjgz
MDRiZWQyYTFhNjZhZjM1MzI2NTZmZjVlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTItMTEtMjYgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBTaW1wbGlmeSBmbGluZyBoYW5kbGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGZsaW5n
IGxvZ2ljIGZvciB0b3VjaHBhZCBjYW4gZmFsbCB0aHJvdWdoIHRvIGJhZAorICAgICAgICBwZXJm
b3JtYW5jZSBpbiBzZXZlcmFsIHdheXMuIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhbiBhbHRlcm5h
dGUKKyAgICAgICAgcGF0aCBmb3IgdG91Y2hzY3JlZW4gZmxpbmcgdGhhdCBzaW1wbGlmaWVzIGl0
IGFzIGZvbGxvd3M6CisKKyAgICAgICAgLSBTdG9wIGdlbmVyYXRpbmcgd2hlZWwgZXZlbnRzLCB0
byBwcmV2ZW50IHVubmVjZXNzYXJ5IHNjcm9sbEJlZ2luIGhpdAorICAgICAgICB0ZXN0cyBhbmQg
dG8gYXZvaWQgZmFsbGluZyBiYWNrIHRvIHNsb3cgcGF0aCBpZiBhIHdoZWVsIGhhbmRsZXIgaXMK
KyAgICAgICAgcmVnaXN0ZXJlZC4KKworICAgICAgICAtIERyb3AgdGhlIGV2ZW50IG9uIFNjcm9s
bFN0YXR1c0lnbm9yZWQuIFRoZXJlJ3Mgbm8gcmVhbCByZWFzb24gdG8KKyAgICAgICAgc2VuZCB0
aGUgZXZlbnQgdG8gdGhlIFdlYktpdCB0aHJlYWQgaGVyZS4KKworICAgICAgICAtIERvbid0IGNh
bGwgdHJhbnNmZXJBY3RpdmVXaGVlbEZsaW5nQW5pbWF0aW9uLiBUaGlzIHR5cGUgb2YKKyAgICAg
ICAgdHJhbnNpdGlvbiBzaG91bGRuJ3QgYmUgbmVlZGVkIHdpdGggdG91Y2hzY3JlZW4gZmxpbmdz
LgorCisgICAgICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUdlc3R1
cmVGbGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBs
OjphbmltYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGw6OmNhbmNlbEN1cnJlbnRGbGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJ
bnB1dEhhbmRsZXJJbXBsOjpzY3JvbGxCeSk6CisgICAgICAgICogc3JjL1dlYkNvbXBvc2l0b3JJ
bnB1dEhhbmRsZXJJbXBsLmg6CisKIDIwMTItMTEtMjEgIFBldGVyIEJldmVybG9vICA8cGV0ZXJA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gd2Via2l0X3VuaXRfdGVzdHMgc2hv
dWxkIGRlcGVuZCBvbiBmb3J3YXJkZXIyIGZvciBBbmRyb2lkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5j
cHAKaW5kZXggNzQ4MzZkNTVmMzU4YTM4OTU4NGQ5YWYwOWFiY2I4NTFhNTM1NjM3ZS4uMzZlYmMz
YzNjYjUwYTk3YWI2N2NhMGQ5MzY4YmRiZmY4Y2U0YWVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBs
LmNwcApAQCAtMjA1LDE0ICsyMDUsMTMgQEAgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6
OkV2ZW50RGlzcG9zaXRpb24gV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmgKICAgICBX
ZWJJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXR1cyBzY3JvbGxTdGF0dXMgPSBtX2lucHV0
SGFuZGxlckNsaWVudC0+c2Nyb2xsQmVnaW4oV2ViUG9pbnQoZ2VzdHVyZUV2ZW50LngsIGdlc3R1
cmVFdmVudC55KSwgV2ViSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxJbnB1dFR5cGVHZXN0dXJl
KTsKICAgICBzd2l0Y2ggKHNjcm9sbFN0YXR1cykgewogICAgIGNhc2UgV2ViSW5wdXRIYW5kbGVy
Q2xpZW50OjpTY3JvbGxTdGF0dXNTdGFydGVkOiB7Ci0gICAgICAgIG1faW5wdXRIYW5kbGVyQ2xp
ZW50LT5zY3JvbGxFbmQoKTsKLSAgICAgICAgbV93aGVlbEZsaW5nQ3VydmUgPSBhZG9wdFB0cihQ
bGF0Zm9ybTo6Y3VycmVudCgpLT5jcmVhdGVGbGluZ0FuaW1hdGlvbkN1cnZlKGdlc3R1cmVFdmVu
dC5kYXRhLmZsaW5nU3RhcnQuc291cmNlRGV2aWNlLCBXZWJGbG9hdFBvaW50KGdlc3R1cmVFdmVu
dC5kYXRhLmZsaW5nU3RhcnQudmVsb2NpdHlYLCBnZXN0dXJlRXZlbnQuZGF0YS5mbGluZ1N0YXJ0
LnZlbG9jaXR5WSksIFdlYlNpemUoKSkpOworICAgICAgICBtX2ZsaW5nQ3VydmUgPSBhZG9wdFB0
cihQbGF0Zm9ybTo6Y3VycmVudCgpLT5jcmVhdGVGbGluZ0FuaW1hdGlvbkN1cnZlKGdlc3R1cmVF
dmVudC5kYXRhLmZsaW5nU3RhcnQuc291cmNlRGV2aWNlLCBXZWJGbG9hdFBvaW50KGdlc3R1cmVF
dmVudC5kYXRhLmZsaW5nU3RhcnQudmVsb2NpdHlYLCBnZXN0dXJlRXZlbnQuZGF0YS5mbGluZ1N0
YXJ0LnZlbG9jaXR5WSksIFdlYlNpemUoKSkpOwogICAgICAgICBUUkFDRV9FVkVOVF9BU1lOQ19C
RUdJTjAoImNjIiwgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVHZXN0dXJl
Rmxpbmc6OnN0YXJ0ZWQiLCB0aGlzKTsKLSAgICAgICAgbV93aGVlbEZsaW5nUGFyYW1ldGVycy5k
ZWx0YSA9IFdlYkZsb2F0UG9pbnQoZ2VzdHVyZUV2ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0
eVgsIGdlc3R1cmVFdmVudC5kYXRhLmZsaW5nU3RhcnQudmVsb2NpdHlZKTsKLSAgICAgICAgbV93
aGVlbEZsaW5nUGFyYW1ldGVycy5wb2ludCA9IFdlYlBvaW50KGdlc3R1cmVFdmVudC54LCBnZXN0
dXJlRXZlbnQueSk7Ci0gICAgICAgIG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMuZ2xvYmFsUG9pbnQg
PSBXZWJQb2ludChnZXN0dXJlRXZlbnQuZ2xvYmFsWCwgZ2VzdHVyZUV2ZW50Lmdsb2JhbFkpOwot
ICAgICAgICBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLm1vZGlmaWVycyA9IGdlc3R1cmVFdmVudC5t
b2RpZmllcnM7Ci0gICAgICAgIG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMuc291cmNlRGV2aWNlID0g
Z2VzdHVyZUV2ZW50LmRhdGEuZmxpbmdTdGFydC5zb3VyY2VEZXZpY2U7CisgICAgICAgIG1fZmxp
bmdQYXJhbWV0ZXJzLmRlbHRhID0gV2ViRmxvYXRQb2ludChnZXN0dXJlRXZlbnQuZGF0YS5mbGlu
Z1N0YXJ0LnZlbG9jaXR5WCwgZ2VzdHVyZUV2ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0eVkp
OworICAgICAgICBtX2ZsaW5nUGFyYW1ldGVycy5wb2ludCA9IFdlYlBvaW50KGdlc3R1cmVFdmVu
dC54LCBnZXN0dXJlRXZlbnQueSk7CisgICAgICAgIG1fZmxpbmdQYXJhbWV0ZXJzLmdsb2JhbFBv
aW50ID0gV2ViUG9pbnQoZ2VzdHVyZUV2ZW50Lmdsb2JhbFgsIGdlc3R1cmVFdmVudC5nbG9iYWxZ
KTsKKyAgICAgICAgbV9mbGluZ1BhcmFtZXRlcnMubW9kaWZpZXJzID0gZ2VzdHVyZUV2ZW50Lm1v
ZGlmaWVyczsKKyAgICAgICAgbV9mbGluZ1BhcmFtZXRlcnMuc291cmNlRGV2aWNlID0gZ2VzdHVy
ZUV2ZW50LmRhdGEuZmxpbmdTdGFydC5zb3VyY2VEZXZpY2U7CiAgICAgICAgIG1faW5wdXRIYW5k
bGVyQ2xpZW50LT5zY2hlZHVsZUFuaW1hdGlvbigpOwogICAgICAgICByZXR1cm4gRGlkSGFuZGxl
OwogICAgIH0KQEAgLTIyMiw5ICsyMjEsMTIgQEAgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGw6OkV2ZW50RGlzcG9zaXRpb24gV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmgKICAg
ICB9CiAgICAgY2FzZSBXZWJJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXR1c0lnbm9yZWQ6
IHsKICAgICAgICAgVFJBQ0VfRVZFTlRfSU5TVEFOVDAoImNjIiwgIldlYkNvbXBvc2l0b3JJbnB1
dEhhbmRsZXJJbXBsOjpoYW5kbGVHZXN0dXJlRmxpbmc6Omlnbm9yZWQiKTsKLSAgICAgICAgLy8g
V2Ugc3RpbGwgcGFzcyB0aGUgY3VydmUgdG8gdGhlIG1haW4gdGhyZWFkIGlmIHRoZXJlJ3Mgbm90
aGluZyBzY3JvbGxhYmxlLCBpbiBjYXNlIHNvbWV0aGluZwotICAgICAgICAvLyByZWdpc3RlcnMg
YSBoYW5kbGVyIGJlZm9yZSB0aGUgY3VydmUgaXMgb3Zlci4KLSAgICAgICAgcmV0dXJuIERpZE5v
dEhhbmRsZTsKKyAgICAgICAgaWYgKGdlc3R1cmVFdmVudC5kYXRhLmZsaW5nU3RhcnQuc291cmNl
RGV2aWNlID09IFdlYkdlc3R1cmVFdmVudDo6VG91Y2hwYWQpIHsKKyAgICAgICAgICAgIC8vIFdl
IHN0aWxsIHBhc3MgdGhlIGN1cnZlIHRvIHRoZSBtYWluIHRocmVhZCBpZiB0aGVyZSdzIG5vdGhp
bmcgc2Nyb2xsYWJsZSwgaW4gY2FzZSBzb21ldGhpbmcKKyAgICAgICAgICAgIC8vIHJlZ2lzdGVy
cyBhIGhhbmRsZXIgYmVmb3JlIHRoZSBjdXJ2ZSBpcyBvdmVyLgorICAgICAgICAgICAgcmV0dXJu
IERpZE5vdEhhbmRsZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRHJvcEV2ZW50OwogICAg
IH0KICAgICB9CiAgICAgcmV0dXJuIERpZE5vdEhhbmRsZTsKQEAgLTI0NCwxNiArMjQ2LDE2IEBA
IHZvaWQgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmJpbmRUb0NsaWVudChXZWJJbnB1
dEhhbmRsZXJDbGllbnQqIGNsaWVudCkKIAogdm9pZCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVy
SW1wbDo6YW5pbWF0ZShkb3VibGUgbW9ub3RvbmljVGltZSkKIHsKLSAgICBpZiAoIW1fd2hlZWxG
bGluZ0N1cnZlKQorICAgIGlmICghbV9mbGluZ0N1cnZlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAoIW1fd2hlZWxGbGluZ1BhcmFtZXRlcnMuc3RhcnRUaW1lKSB7Ci0gICAgICAgIG1fd2hl
ZWxGbGluZ1BhcmFtZXRlcnMuc3RhcnRUaW1lID0gbW9ub3RvbmljVGltZTsKKyAgICBpZiAoIW1f
ZmxpbmdQYXJhbWV0ZXJzLnN0YXJ0VGltZSkgeworICAgICAgICBtX2ZsaW5nUGFyYW1ldGVycy5z
dGFydFRpbWUgPSBtb25vdG9uaWNUaW1lOwogICAgICAgICBtX2lucHV0SGFuZGxlckNsaWVudC0+
c2NoZWR1bGVBbmltYXRpb24oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICht
X3doZWVsRmxpbmdDdXJ2ZS0+YXBwbHkobW9ub3RvbmljVGltZSAtIG1fd2hlZWxGbGluZ1BhcmFt
ZXRlcnMuc3RhcnRUaW1lLCB0aGlzKSkKKyAgICBpZiAobV9mbGluZ0N1cnZlLT5hcHBseShtb25v
dG9uaWNUaW1lIC0gbV9mbGluZ1BhcmFtZXRlcnMuc3RhcnRUaW1lLCB0aGlzKSkKICAgICAgICAg
bV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjaGVkdWxlQW5pbWF0aW9uKCk7CiAgICAgZWxzZSB7CiAg
ICAgICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQwKCJjYyIsICJXZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVySW1wbDo6YW5pbWF0ZTo6ZmxpbmdPdmVyIik7CkBAIC0yNjMsMzggKzI2NSwzNSBAQCB2b2lk
IFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjphbmltYXRlKGRvdWJsZSBtb25vdG9uaWNU
aW1lKQogCiBib29sIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpjYW5jZWxDdXJyZW50
RmxpbmcoKQogewotICAgIGJvb2wgaGFkRmxpbmdBbmltYXRpb24gPSBtX3doZWVsRmxpbmdDdXJ2
ZTsKLSAgICBpZiAoaGFkRmxpbmdBbmltYXRpb24pCisgICAgYm9vbCBoYWRGbGluZ0FuaW1hdGlv
biA9IG1fZmxpbmdDdXJ2ZTsKKyAgICBpZiAoaGFkRmxpbmdBbmltYXRpb24gJiYgbV9mbGluZ1Bh
cmFtZXRlcnMuc291cmNlRGV2aWNlID09IFdlYkdlc3R1cmVFdmVudDo6VG91Y2hzY3JlZW4pIHsK
KyAgICAgICAgbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEVuZCgpOwogICAgICAgICBUUkFD
RV9FVkVOVF9BU1lOQ19FTkQwKCJjYyIsICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6
aGFuZGxlR2VzdHVyZUZsaW5nOjpzdGFydGVkIiwgdGhpcyk7CisgICAgfQogCiAgICAgVFJBQ0Vf
RVZFTlRfSU5TVEFOVDEoImNjIiwgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpjYW5j
ZWxDdXJyZW50RmxpbmciLCAiaGFkRmxpbmdBbmltYXRpb24iLCBoYWRGbGluZ0FuaW1hdGlvbik7
Ci0gICAgbV93aGVlbEZsaW5nQ3VydmUuY2xlYXIoKTsKLSAgICBtX3doZWVsRmxpbmdQYXJhbWV0
ZXJzID0gV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMoKTsKKyAgICBtX2ZsaW5nQ3VydmUu
Y2xlYXIoKTsKKyAgICBtX2ZsaW5nUGFyYW1ldGVycyA9IFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXJh
bWV0ZXJzKCk7CiAgICAgcmV0dXJuIGhhZEZsaW5nQW5pbWF0aW9uOwogfQogCi12b2lkIFdlYkNv
bXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpzY3JvbGxCeShjb25zdCBXZWJQb2ludCYgaW5jcmVt
ZW50KQorYm9vbCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6dG91Y2hQYWRGbGluZ1Nj
cm9sbChjb25zdCBXZWJQb2ludCYgaW5jcmVtZW50KQogewotICAgIGlmIChpbmNyZW1lbnQgPT0g
V2ViUG9pbnQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgVFJBQ0VfRVZFTlQyKCJjYyIsICJX
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6c2Nyb2xsQnkiLCAieCIsIGluY3JlbWVudC54
LCAieSIsIGluY3JlbWVudC55KTsKICAgICBXZWJNb3VzZVdoZWVsRXZlbnQgc3ludGhldGljV2hl
ZWw7CiAgICAgc3ludGhldGljV2hlZWwudHlwZSA9IFdlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWw7
CiAgICAgc3ludGhldGljV2hlZWwuZGVsdGFYID0gaW5jcmVtZW50Lng7CiAgICAgc3ludGhldGlj
V2hlZWwuZGVsdGFZID0gaW5jcmVtZW50Lnk7CiAgICAgc3ludGhldGljV2hlZWwuaGFzUHJlY2lz
ZVNjcm9sbGluZ0RlbHRhcyA9IHRydWU7Ci0gICAgc3ludGhldGljV2hlZWwueCA9IG1fd2hlZWxG
bGluZ1BhcmFtZXRlcnMucG9pbnQueDsKLSAgICBzeW50aGV0aWNXaGVlbC55ID0gbV93aGVlbEZs
aW5nUGFyYW1ldGVycy5wb2ludC55OwotICAgIHN5bnRoZXRpY1doZWVsLmdsb2JhbFggPSBtX3do
ZWVsRmxpbmdQYXJhbWV0ZXJzLmdsb2JhbFBvaW50Lng7Ci0gICAgc3ludGhldGljV2hlZWwuZ2xv
YmFsWSA9IG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMuZ2xvYmFsUG9pbnQueTsKLSAgICBzeW50aGV0
aWNXaGVlbC5tb2RpZmllcnMgPSBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLm1vZGlmaWVyczsKKyAg
ICBzeW50aGV0aWNXaGVlbC54ID0gbV9mbGluZ1BhcmFtZXRlcnMucG9pbnQueDsKKyAgICBzeW50
aGV0aWNXaGVlbC55ID0gbV9mbGluZ1BhcmFtZXRlcnMucG9pbnQueTsKKyAgICBzeW50aGV0aWNX
aGVlbC5nbG9iYWxYID0gbV9mbGluZ1BhcmFtZXRlcnMuZ2xvYmFsUG9pbnQueDsKKyAgICBzeW50
aGV0aWNXaGVlbC5nbG9iYWxZID0gbV9mbGluZ1BhcmFtZXRlcnMuZ2xvYmFsUG9pbnQueTsKKyAg
ICBzeW50aGV0aWNXaGVlbC5tb2RpZmllcnMgPSBtX2ZsaW5nUGFyYW1ldGVycy5tb2RpZmllcnM7
CiAKICAgICBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6RXZlbnREaXNwb3NpdGlvbiBk
aXNwb3NpdGlvbiA9IGhhbmRsZUlucHV0RXZlbnRJbnRlcm5hbChzeW50aGV0aWNXaGVlbCk7CiAg
ICAgc3dpdGNoIChkaXNwb3NpdGlvbikgewogICAgIGNhc2UgRGlkSGFuZGxlOgotICAgICAgICBt
X3doZWVsRmxpbmdQYXJhbWV0ZXJzLmN1bXVsYXRpdmVTY3JvbGwud2lkdGggKz0gaW5jcmVtZW50
Lng7Ci0gICAgICAgIG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMuY3VtdWxhdGl2ZVNjcm9sbC5oZWln
aHQgKz0gaW5jcmVtZW50Lnk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgRHJvcEV2
ZW50OgogICAgICAgICBicmVhazsKICAgICBjYXNlIERpZE5vdEhhbmRsZToKQEAgLTMwNSwxMCAr
MzA0LDM2IEBAIHZvaWQgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OnNjcm9sbEJ5KGNv
bnN0IFdlYlBvaW50JiBpbmNyZW1lbnQpCiAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVu
IGZsaW5naW5nIGEgcGFnZSB0aGF0IGNvbnRhaW5zIGEgc2Nyb2xsYWJsZSBzdWJhcmVhIHRoYXQg
d2UgY2FuJ3QKICAgICAgICAgLy8gc2Nyb2xsIG9uIHRoZSB0aHJlYWQgaWYgdGhlIGZsaW5nIHN0
YXJ0cyBvdXRzaWRlIHRoZSBzdWJhcmVhIGJ1dCB0aGVuIGlzIGZsdW5nICJ1bmRlciIgdGhlCiAg
ICAgICAgIC8vIHBvaW50ZXIuCi0gICAgICAgIG1fY2xpZW50LT50cmFuc2ZlckFjdGl2ZVdoZWVs
RmxpbmdBbmltYXRpb24obV93aGVlbEZsaW5nUGFyYW1ldGVycyk7CisgICAgICAgIG1fY2xpZW50
LT50cmFuc2ZlckFjdGl2ZVdoZWVsRmxpbmdBbmltYXRpb24obV9mbGluZ1BhcmFtZXRlcnMpOwog
ICAgICAgICBjYW5jZWxDdXJyZW50RmxpbmcoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBs
OjpzY3JvbGxCeShjb25zdCBXZWJQb2ludCYgaW5jcmVtZW50KQoreworICAgIGlmIChpbmNyZW1l
bnQgPT0gV2ViUG9pbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVFJBQ0VfRVZFTlQyKCJj
YyIsICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6c2Nyb2xsQnkiLCAieCIsIGluY3Jl
bWVudC54LCAieSIsIGluY3JlbWVudC55KTsKKworICAgIGJvb2wgZGlkU2Nyb2xsID0gZmFsc2U7
CisKKyAgICBzd2l0Y2ggKG1fZmxpbmdQYXJhbWV0ZXJzLnNvdXJjZURldmljZSkgeworICAgIGNh
c2UgV2ViR2VzdHVyZUV2ZW50OjpUb3VjaHBhZDoKKyAgICAgICAgZGlkU2Nyb2xsID0gdG91Y2hQ
YWRGbGluZ1Njcm9sbChpbmNyZW1lbnQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkdl
c3R1cmVFdmVudDo6VG91Y2hzY3JlZW46CisgICAgICAgIGRpZFNjcm9sbCA9IG1faW5wdXRIYW5k
bGVyQ2xpZW50LT5zY3JvbGxCeUlmUG9zc2libGUobV9mbGluZ1BhcmFtZXRlcnMucG9pbnQsIElu
dFNpemUoLWluY3JlbWVudC54LCAtaW5jcmVtZW50LnkpKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgaWYgKGRpZFNjcm9sbCkgeworICAgICAgICBtX2ZsaW5nUGFyYW1ldGVycy5jdW11
bGF0aXZlU2Nyb2xsLndpZHRoICs9IGluY3JlbWVudC54OworICAgICAgICBtX2ZsaW5nUGFyYW1l
dGVycy5jdW11bGF0aXZlU2Nyb2xsLmhlaWdodCArPSBpbmNyZW1lbnQueTsKKyAgICB9CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJ
bnB1dEhhbmRsZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVySW1wbC5oCmluZGV4IGVmZTdmNTNiNDA1NzFmMTk1MTliMzNiYjNhZTM5
MWM4ZTE3ZDFiNDYuLjA3NTFiYWE5ZGNiMWU4NWY2ZGJjYmZmNWI3ZTQ3ZjkzYzlhNmVmZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhh
bmRsZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGwuaApAQCAtNzgsMTIgKzc4LDE1IEBAIHByaXZhdGU6CiAKICAgICBF
dmVudERpc3Bvc2l0aW9uIGhhbmRsZUdlc3R1cmVGbGluZyhjb25zdCBXZWJHZXN0dXJlRXZlbnQm
KTsKIAorICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB3ZSBzY3JvbGxlZCBieSB0aGUgaW5jcmVtZW50
LgorICAgIGJvb2wgdG91Y2hQYWRGbGluZ1Njcm9sbChjb25zdCBXZWJQb2ludCYgaW5jcmVtZW50
KTsKKwogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB3ZSBhY3R1YWxseSBoYWQgYW4gYWN0aXZlIGZs
aW5nIHRvIGNhbmNlbC4KICAgICBib29sIGNhbmNlbEN1cnJlbnRGbGluZygpOwogCi0gICAgT3du
UHRyPFdlYkdlc3R1cmVDdXJ2ZT4gbV93aGVlbEZsaW5nQ3VydmU7CisgICAgT3duUHRyPFdlYkdl
c3R1cmVDdXJ2ZT4gbV9mbGluZ0N1cnZlOwogICAgIC8vIFBhcmFtZXRlcnMgZm9yIHRoZSBhY3Rp
dmUgZmxpbmcgYW5pbWF0aW9uLCBzdG9yZWQgaW4gY2FzZSB3ZSBuZWVkIHRvIHRyYW5zZmVyIGl0
IG91dCBsYXRlci4KLSAgICBXZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycyBtX3doZWVsRmxp
bmdQYXJhbWV0ZXJzOworICAgIFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzIG1fZmxpbmdQ
YXJhbWV0ZXJzOwogCiAgICAgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudCogbV9jbGll
bnQ7CiAgICAgaW50IG1faWRlbnRpZmllcjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176123</attachid>
            <date>2012-11-26 17:23:08 -0800</date>
            <delta_ts>2012-11-26 20:09:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103278-20121126172046.patch</filename>
            <type>text/plain</type>
            <size>23368</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGY3NzAzZDY5NmU3OGM4YTY2NDMyOWNiZmNjYmRhZmMzNDM5MTMyYmUuLjg3ZWMwNmI5ZTUxNGQ3
YWRlNmU3YzY4ODlmMWU3MjFhZjJlNzllNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTItMTEtMjYgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBUb3VjaHNjcmVlbiBmbGluZyBoYW5kbGlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjc4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGZs
aW5nIGxvZ2ljIGZvciB0b3VjaHBhZCBjYW4gZmFsbCB0aHJvdWdoIHRvIGJhZAorICAgICAgICBw
ZXJmb3JtYW5jZSBpbiBzZXZlcmFsIHdheXMuIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhbiBhbHRl
cm5hdGUKKyAgICAgICAgcGF0aCBmb3IgdG91Y2hzY3JlZW4gZmxpbmcgdGhhdCBzaW1wbGlmaWVz
IGl0IGFzIGZvbGxvd3M6CisKKyAgICAgICAgLSBTdG9wIGdlbmVyYXRpbmcgd2hlZWwgZXZlbnRz
LCB0byBwcmV2ZW50IHVubmVjZXNzYXJ5IHNjcm9sbEJlZ2luIGhpdAorICAgICAgICB0ZXN0cyBh
bmQgdG8gYXZvaWQgZmFsbGluZyBiYWNrIHRvIHNsb3cgcGF0aCBpZiBhIHdoZWVsIGhhbmRsZXIg
aXMKKyAgICAgICAgcmVnaXN0ZXJlZC4KKworICAgICAgICAtIERyb3AgdGhlIGV2ZW50IG9uIFNj
cm9sbFN0YXR1c0lnbm9yZWQuIFRoZXJlJ3Mgbm8gcmVhbCByZWFzb24gdG8KKyAgICAgICAgc2Vu
ZCB0aGUgZXZlbnQgdG8gdGhlIFdlYktpdCB0aHJlYWQgaGVyZS4KKworICAgICAgICAtIERvbid0
IGNhbGwgdHJhbnNmZXJBY3RpdmVXaGVlbEZsaW5nQW5pbWF0aW9uLiBUaGlzIHR5cGUgb2YKKyAg
ICAgICAgdHJhbnNpdGlvbiBzaG91bGRuJ3QgYmUgbmVlZGVkIHdpdGggdG91Y2hzY3JlZW4gZmxp
bmdzLgorCisgICAgICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUdl
c3R1cmVGbGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJ
bXBsOjphbmltYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxl
ckltcGw6OmNhbmNlbEN1cnJlbnRGbGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0
b3JJbnB1dEhhbmRsZXJJbXBsOjpzY3JvbGxCeSk6CisgICAgICAgICogc3JjL1dlYkNvbXBvc2l0
b3JJbnB1dEhhbmRsZXJJbXBsLmg6CisKIDIwMTItMTEtMjEgIFBldGVyIEJldmVybG9vICA8cGV0
ZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gd2Via2l0X3VuaXRfdGVzdHMg
c2hvdWxkIGRlcGVuZCBvbiBmb3J3YXJkZXIyIGZvciBBbmRyb2lkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1w
bC5jcHAKaW5kZXggNzQ4MzZkNTVmMzU4YTM4OTU4NGQ5YWYwOWFiY2I4NTFhNTM1NjM3ZS4uNzcz
Y2MzZGRhYmQwODMxZjEyZWNiNDM0MjM5OTJmYmJkYzM3NjU4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJ
bXBsLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBs
OjpFdmVudERpc3Bvc2l0aW9uIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoCiAgICAg
ICAgIFdlYklucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVzIHNjcm9sbFN0YXR1cyA9IG1f
aW5wdXRIYW5kbGVyQ2xpZW50LT5zY3JvbGxCZWdpbihXZWJQb2ludCh3aGVlbEV2ZW50LngsIHdo
ZWVsRXZlbnQueSksIFdlYklucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsSW5wdXRUeXBlV2hlZWwp
OwogICAgICAgICBzd2l0Y2ggKHNjcm9sbFN0YXR1cykgewogICAgICAgICBjYXNlIFdlYklucHV0
SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVzU3RhcnRlZDogewotICAgICAgICAgICAgVFJBQ0Vf
RVZFTlRfSU5TVEFOVDIoImNjIiwgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5k
bGVJbnB1dCB3aGVlbCBzY3JvbGwiLCAiZGVsdGFYIiwgLXdoZWVsRXZlbnQuZGVsdGFYLCAiZGVs
dGFZIiwgLXdoZWVsRXZlbnQuZGVsdGFZKTsKKyAgICAgICAgICAgIFRSQUNFX0VWRU5UX0lOU1RB
TlQyKCJ3ZWJraXQiLCAiV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUlucHV0
IHdoZWVsIHNjcm9sbCIsICJkZWx0YVgiLCAtd2hlZWxFdmVudC5kZWx0YVgsICJkZWx0YVkiLCAt
d2hlZWxFdmVudC5kZWx0YVkpOwogICAgICAgICAgICAgYm9vbCBkaWRTY3JvbGwgPSBtX2lucHV0
SGFuZGxlckNsaWVudC0+c2Nyb2xsQnlJZlBvc3NpYmxlKFdlYlBvaW50KHdoZWVsRXZlbnQueCwg
d2hlZWxFdmVudC55KSwgSW50U2l6ZSgtd2hlZWxFdmVudC5kZWx0YVgsIC13aGVlbEV2ZW50LmRl
bHRhWSkpOwogICAgICAgICAgICAgbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEVuZCgpOwog
ICAgICAgICAgICAgcmV0dXJuIGRpZFNjcm9sbCA/IERpZEhhbmRsZSA6IERyb3BFdmVudDsKQEAg
LTIwNSwyNiArMjA1LDMwIEBAIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpFdmVudERp
c3Bvc2l0aW9uIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoCiAgICAgV2ViSW5wdXRI
YW5kbGVyQ2xpZW50OjpTY3JvbGxTdGF0dXMgc2Nyb2xsU3RhdHVzID0gbV9pbnB1dEhhbmRsZXJD
bGllbnQtPnNjcm9sbEJlZ2luKFdlYlBvaW50KGdlc3R1cmVFdmVudC54LCBnZXN0dXJlRXZlbnQu
eSksIFdlYklucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsSW5wdXRUeXBlR2VzdHVyZSk7CiAgICAg
c3dpdGNoIChzY3JvbGxTdGF0dXMpIHsKICAgICBjYXNlIFdlYklucHV0SGFuZGxlckNsaWVudDo6
U2Nyb2xsU3RhdHVzU3RhcnRlZDogewotICAgICAgICBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Ny
b2xsRW5kKCk7Ci0gICAgICAgIG1fd2hlZWxGbGluZ0N1cnZlID0gYWRvcHRQdHIoUGxhdGZvcm06
OmN1cnJlbnQoKS0+Y3JlYXRlRmxpbmdBbmltYXRpb25DdXJ2ZShnZXN0dXJlRXZlbnQuZGF0YS5m
bGluZ1N0YXJ0LnNvdXJjZURldmljZSwgV2ViRmxvYXRQb2ludChnZXN0dXJlRXZlbnQuZGF0YS5m
bGluZ1N0YXJ0LnZlbG9jaXR5WCwgZ2VzdHVyZUV2ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0
eVkpLCBXZWJTaXplKCkpKTsKLSAgICAgICAgVFJBQ0VfRVZFTlRfQVNZTkNfQkVHSU4wKCJjYyIs
ICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aGFuZGxlR2VzdHVyZUZsaW5nOjpzdGFy
dGVkIiwgdGhpcyk7Ci0gICAgICAgIG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMuZGVsdGEgPSBXZWJG
bG9hdFBvaW50KGdlc3R1cmVFdmVudC5kYXRhLmZsaW5nU3RhcnQudmVsb2NpdHlYLCBnZXN0dXJl
RXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WSk7Ci0gICAgICAgIG1fd2hlZWxGbGluZ1Bh
cmFtZXRlcnMucG9pbnQgPSBXZWJQb2ludChnZXN0dXJlRXZlbnQueCwgZ2VzdHVyZUV2ZW50Lnkp
OwotICAgICAgICBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLmdsb2JhbFBvaW50ID0gV2ViUG9pbnQo
Z2VzdHVyZUV2ZW50Lmdsb2JhbFgsIGdlc3R1cmVFdmVudC5nbG9iYWxZKTsKLSAgICAgICAgbV93
aGVlbEZsaW5nUGFyYW1ldGVycy5tb2RpZmllcnMgPSBnZXN0dXJlRXZlbnQubW9kaWZpZXJzOwot
ICAgICAgICBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLnNvdXJjZURldmljZSA9IGdlc3R1cmVFdmVu
dC5kYXRhLmZsaW5nU3RhcnQuc291cmNlRGV2aWNlOworICAgICAgICBpZiAoZ2VzdHVyZUV2ZW50
LmRhdGEuZmxpbmdTdGFydC5zb3VyY2VEZXZpY2UgPT0gV2ViR2VzdHVyZUV2ZW50OjpUb3VjaHBh
ZCkKKyAgICAgICAgICAgIG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY3JvbGxFbmQoKTsKKyAgICAg
ICAgbV9mbGluZ0N1cnZlID0gYWRvcHRQdHIoUGxhdGZvcm06OmN1cnJlbnQoKS0+Y3JlYXRlRmxp
bmdBbmltYXRpb25DdXJ2ZShnZXN0dXJlRXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnNvdXJjZURldmlj
ZSwgV2ViRmxvYXRQb2ludChnZXN0dXJlRXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WCwg
Z2VzdHVyZUV2ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0eVkpLCBXZWJTaXplKCkpKTsKKyAg
ICAgICAgVFJBQ0VfRVZFTlRfQVNZTkNfQkVHSU4wKCJ3ZWJraXQiLCAiV2ViQ29tcG9zaXRvcklu
cHV0SGFuZGxlckltcGw6OmhhbmRsZUdlc3R1cmVGbGluZzo6c3RhcnRlZCIsIHRoaXMpOworICAg
ICAgICBtX2ZsaW5nUGFyYW1ldGVycy5kZWx0YSA9IFdlYkZsb2F0UG9pbnQoZ2VzdHVyZUV2ZW50
LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0eVgsIGdlc3R1cmVFdmVudC5kYXRhLmZsaW5nU3RhcnQu
dmVsb2NpdHlZKTsKKyAgICAgICAgbV9mbGluZ1BhcmFtZXRlcnMucG9pbnQgPSBXZWJQb2ludChn
ZXN0dXJlRXZlbnQueCwgZ2VzdHVyZUV2ZW50LnkpOworICAgICAgICBtX2ZsaW5nUGFyYW1ldGVy
cy5nbG9iYWxQb2ludCA9IFdlYlBvaW50KGdlc3R1cmVFdmVudC5nbG9iYWxYLCBnZXN0dXJlRXZl
bnQuZ2xvYmFsWSk7CisgICAgICAgIG1fZmxpbmdQYXJhbWV0ZXJzLm1vZGlmaWVycyA9IGdlc3R1
cmVFdmVudC5tb2RpZmllcnM7CisgICAgICAgIG1fZmxpbmdQYXJhbWV0ZXJzLnNvdXJjZURldmlj
ZSA9IGdlc3R1cmVFdmVudC5kYXRhLmZsaW5nU3RhcnQuc291cmNlRGV2aWNlOwogICAgICAgICBt
X2lucHV0SGFuZGxlckNsaWVudC0+c2NoZWR1bGVBbmltYXRpb24oKTsKICAgICAgICAgcmV0dXJu
IERpZEhhbmRsZTsKICAgICB9CiAgICAgY2FzZSBXZWJJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9s
bFN0YXR1c09uTWFpblRocmVhZDogewotICAgICAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgiY2Mi
LCAiV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUdlc3R1cmVGbGluZzo6c2Ny
b2xsT25NYWluVGhyZWFkIik7CisgICAgICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQwKCJ3ZWJraXQi
LCAiV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUdlc3R1cmVGbGluZzo6c2Ny
b2xsT25NYWluVGhyZWFkIik7CiAgICAgICAgIHJldHVybiBEaWROb3RIYW5kbGU7CiAgICAgfQog
ICAgIGNhc2UgV2ViSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGF0dXNJZ25vcmVkOiB7Ci0g
ICAgICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQwKCJjYyIsICJXZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVySW1wbDo6aGFuZGxlR2VzdHVyZUZsaW5nOjppZ25vcmVkIik7Ci0gICAgICAgIC8vIFdlIHN0
aWxsIHBhc3MgdGhlIGN1cnZlIHRvIHRoZSBtYWluIHRocmVhZCBpZiB0aGVyZSdzIG5vdGhpbmcg
c2Nyb2xsYWJsZSwgaW4gY2FzZSBzb21ldGhpbmcKLSAgICAgICAgLy8gcmVnaXN0ZXJzIGEgaGFu
ZGxlciBiZWZvcmUgdGhlIGN1cnZlIGlzIG92ZXIuCi0gICAgICAgIHJldHVybiBEaWROb3RIYW5k
bGU7CisgICAgICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQwKCJ3ZWJraXQiLCAiV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGw6OmhhbmRsZUdlc3R1cmVGbGluZzo6aWdub3JlZCIpOworICAgICAg
ICBpZiAoZ2VzdHVyZUV2ZW50LmRhdGEuZmxpbmdTdGFydC5zb3VyY2VEZXZpY2UgPT0gV2ViR2Vz
dHVyZUV2ZW50OjpUb3VjaHBhZCkgeworICAgICAgICAgICAgLy8gV2Ugc3RpbGwgcGFzcyB0aGUg
Y3VydmUgdG8gdGhlIG1haW4gdGhyZWFkIGlmIHRoZXJlJ3Mgbm90aGluZyBzY3JvbGxhYmxlLCBp
biBjYXNlIHNvbWV0aGluZworICAgICAgICAgICAgLy8gcmVnaXN0ZXJzIGEgaGFuZGxlciBiZWZv
cmUgdGhlIGN1cnZlIGlzIG92ZXIuCisgICAgICAgICAgICByZXR1cm4gRGlkTm90SGFuZGxlOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBEcm9wRXZlbnQ7CiAgICAgfQogICAgIH0KICAgICBy
ZXR1cm4gRGlkTm90SGFuZGxlOwpAQCAtMjM0LDcgKzIzOCw3IEBAIHZvaWQgV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGw6OmJpbmRUb0NsaWVudChXZWJJbnB1dEhhbmRsZXJDbGllbnQqIGNs
aWVudCkKIHsKICAgICBBU1NFUlQoIW1faW5wdXRIYW5kbGVyQ2xpZW50KTsKIAotICAgIFRSQUNF
X0VWRU5UX0lOU1RBTlQwKCJjYyIsICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6Ymlu
ZFRvQ2xpZW50Iik7CisgICAgVFJBQ0VfRVZFTlRfSU5TVEFOVDAoIndlYmtpdCIsICJXZWJDb21w
b3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6YmluZFRvQ2xpZW50Iik7CiAgICAgaWYgKCFzX2NvbXBv
c2l0b3JzKQogICAgICAgICBzX2NvbXBvc2l0b3JzID0gbmV3IEhhc2hTZXQ8V2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGwqPjsKICAgICBzX2NvbXBvc2l0b3JzLT5hZGQodGhpcyk7CkBAIC0y
NDQsNzEgKzI0OCw5NCBAQCB2b2lkIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpiaW5k
VG9DbGllbnQoV2ViSW5wdXRIYW5kbGVyQ2xpZW50KiBjbGllbnQpCiAKIHZvaWQgV2ViQ29tcG9z
aXRvcklucHV0SGFuZGxlckltcGw6OmFuaW1hdGUoZG91YmxlIG1vbm90b25pY1RpbWUpCiB7Ci0g
ICAgaWYgKCFtX3doZWVsRmxpbmdDdXJ2ZSkKKyAgICBpZiAoIW1fZmxpbmdDdXJ2ZSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgaWYgKCFtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLnN0YXJ0VGltZSkg
ewotICAgICAgICBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLnN0YXJ0VGltZSA9IG1vbm90b25pY1Rp
bWU7CisgICAgaWYgKCFtX2ZsaW5nUGFyYW1ldGVycy5zdGFydFRpbWUpIHsKKyAgICAgICAgbV9m
bGluZ1BhcmFtZXRlcnMuc3RhcnRUaW1lID0gbW9ub3RvbmljVGltZTsKICAgICAgICAgbV9pbnB1
dEhhbmRsZXJDbGllbnQtPnNjaGVkdWxlQW5pbWF0aW9uKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBpZiAobV93aGVlbEZsaW5nQ3VydmUtPmFwcGx5KG1vbm90b25pY1RpbWUgLSBt
X3doZWVsRmxpbmdQYXJhbWV0ZXJzLnN0YXJ0VGltZSwgdGhpcykpCisgICAgaWYgKG1fZmxpbmdD
dXJ2ZS0+YXBwbHkobW9ub3RvbmljVGltZSAtIG1fZmxpbmdQYXJhbWV0ZXJzLnN0YXJ0VGltZSwg
dGhpcykpCiAgICAgICAgIG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY2hlZHVsZUFuaW1hdGlvbigp
OwogICAgIGVsc2UgewotICAgICAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgiY2MiLCAiV2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGw6OmFuaW1hdGU6OmZsaW5nT3ZlciIpOworICAgICAgICBU
UkFDRV9FVkVOVF9JTlNUQU5UMCgid2Via2l0IiwgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJ
bXBsOjphbmltYXRlOjpmbGluZ092ZXIiKTsKICAgICAgICAgY2FuY2VsQ3VycmVudEZsaW5nKCk7
CiAgICAgfQogfQogCiBib29sIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpjYW5jZWxD
dXJyZW50RmxpbmcoKQogewotICAgIGJvb2wgaGFkRmxpbmdBbmltYXRpb24gPSBtX3doZWVsRmxp
bmdDdXJ2ZTsKLSAgICBpZiAoaGFkRmxpbmdBbmltYXRpb24pCi0gICAgICAgIFRSQUNFX0VWRU5U
X0FTWU5DX0VORDAoImNjIiwgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVH
ZXN0dXJlRmxpbmc6OnN0YXJ0ZWQiLCB0aGlzKTsKKyAgICBib29sIGhhZEZsaW5nQW5pbWF0aW9u
ID0gbV9mbGluZ0N1cnZlOworICAgIGlmIChoYWRGbGluZ0FuaW1hdGlvbiAmJiBtX2ZsaW5nUGFy
YW1ldGVycy5zb3VyY2VEZXZpY2UgPT0gV2ViR2VzdHVyZUV2ZW50OjpUb3VjaHNjcmVlbikgewor
ICAgICAgICBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsRW5kKCk7CisgICAgICAgIFRSQUNF
X0VWRU5UX0FTWU5DX0VORDAoIndlYmtpdCIsICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1w
bDo6aGFuZGxlR2VzdHVyZUZsaW5nOjpzdGFydGVkIiwgdGhpcyk7CisgICAgfQogCi0gICAgVFJB
Q0VfRVZFTlRfSU5TVEFOVDEoImNjIiwgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpj
YW5jZWxDdXJyZW50RmxpbmciLCAiaGFkRmxpbmdBbmltYXRpb24iLCBoYWRGbGluZ0FuaW1hdGlv
bik7Ci0gICAgbV93aGVlbEZsaW5nQ3VydmUuY2xlYXIoKTsKLSAgICBtX3doZWVsRmxpbmdQYXJh
bWV0ZXJzID0gV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMoKTsKKyAgICBUUkFDRV9FVkVO
VF9JTlNUQU5UMSgid2Via2l0IiwgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpjYW5j
ZWxDdXJyZW50RmxpbmciLCAiaGFkRmxpbmdBbmltYXRpb24iLCBoYWRGbGluZ0FuaW1hdGlvbik7
CisgICAgbV9mbGluZ0N1cnZlLmNsZWFyKCk7CisgICAgbV9mbGluZ1BhcmFtZXRlcnMgPSBXZWJB
Y3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycygpOwogICAgIHJldHVybiBoYWRGbGluZ0FuaW1hdGlv
bjsKIH0KIAotdm9pZCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6c2Nyb2xsQnkoY29u
c3QgV2ViUG9pbnQmIGluY3JlbWVudCkKK2Jvb2wgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGw6OnRvdWNocGFkRmxpbmdTY3JvbGwoY29uc3QgV2ViUG9pbnQmIGluY3JlbWVudCkKIHsKLSAg
ICBpZiAoaW5jcmVtZW50ID09IFdlYlBvaW50KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFRS
QUNFX0VWRU5UMigiY2MiLCAiV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OnNjcm9sbEJ5
IiwgIngiLCBpbmNyZW1lbnQueCwgInkiLCBpbmNyZW1lbnQueSk7CiAgICAgV2ViTW91c2VXaGVl
bEV2ZW50IHN5bnRoZXRpY1doZWVsOwogICAgIHN5bnRoZXRpY1doZWVsLnR5cGUgPSBXZWJJbnB1
dEV2ZW50OjpNb3VzZVdoZWVsOwogICAgIHN5bnRoZXRpY1doZWVsLmRlbHRhWCA9IGluY3JlbWVu
dC54OwogICAgIHN5bnRoZXRpY1doZWVsLmRlbHRhWSA9IGluY3JlbWVudC55OwogICAgIHN5bnRo
ZXRpY1doZWVsLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMgPSB0cnVlOwotICAgIHN5bnRoZXRp
Y1doZWVsLnggPSBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLnBvaW50Lng7Ci0gICAgc3ludGhldGlj
V2hlZWwueSA9IG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMucG9pbnQueTsKLSAgICBzeW50aGV0aWNX
aGVlbC5nbG9iYWxYID0gbV93aGVlbEZsaW5nUGFyYW1ldGVycy5nbG9iYWxQb2ludC54OwotICAg
IHN5bnRoZXRpY1doZWVsLmdsb2JhbFkgPSBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLmdsb2JhbFBv
aW50Lnk7Ci0gICAgc3ludGhldGljV2hlZWwubW9kaWZpZXJzID0gbV93aGVlbEZsaW5nUGFyYW1l
dGVycy5tb2RpZmllcnM7CisgICAgc3ludGhldGljV2hlZWwueCA9IG1fZmxpbmdQYXJhbWV0ZXJz
LnBvaW50Lng7CisgICAgc3ludGhldGljV2hlZWwueSA9IG1fZmxpbmdQYXJhbWV0ZXJzLnBvaW50
Lnk7CisgICAgc3ludGhldGljV2hlZWwuZ2xvYmFsWCA9IG1fZmxpbmdQYXJhbWV0ZXJzLmdsb2Jh
bFBvaW50Lng7CisgICAgc3ludGhldGljV2hlZWwuZ2xvYmFsWSA9IG1fZmxpbmdQYXJhbWV0ZXJz
Lmdsb2JhbFBvaW50Lnk7CisgICAgc3ludGhldGljV2hlZWwubW9kaWZpZXJzID0gbV9mbGluZ1Bh
cmFtZXRlcnMubW9kaWZpZXJzOwogCiAgICAgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6
OkV2ZW50RGlzcG9zaXRpb24gZGlzcG9zaXRpb24gPSBoYW5kbGVJbnB1dEV2ZW50SW50ZXJuYWwo
c3ludGhldGljV2hlZWwpOwogICAgIHN3aXRjaCAoZGlzcG9zaXRpb24pIHsKICAgICBjYXNlIERp
ZEhhbmRsZToKLSAgICAgICAgbV93aGVlbEZsaW5nUGFyYW1ldGVycy5jdW11bGF0aXZlU2Nyb2xs
LndpZHRoICs9IGluY3JlbWVudC54OwotICAgICAgICBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLmN1
bXVsYXRpdmVTY3JvbGwuaGVpZ2h0ICs9IGluY3JlbWVudC55OworICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICBjYXNlIERyb3BFdmVudDoKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEaWROb3RI
YW5kbGU6Ci0gICAgICAgIFRSQUNFX0VWRU5UX0lOU1RBTlQwKCJjYyIsICJXZWJDb21wb3NpdG9y
SW5wdXRIYW5kbGVySW1wbDo6c2Nyb2xsQnk6OkFib3J0RmxpbmciKTsKKyAgICAgICAgVFJBQ0Vf
RVZFTlRfSU5TVEFOVDAoIndlYmtpdCIsICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6
c2Nyb2xsQnk6OkFib3J0RmxpbmciKTsKICAgICAgICAgLy8gSWYgd2UgZ290IGEgRGlkTm90SGFu
ZGxlLCB0aGF0IG1lYW5zIHdlIG5lZWQgdG8gZGVsaXZlciB3aGVlbHMgb24gdGhlIG1haW4gdGhy
ZWFkLgogICAgICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgbmVlZCB0byBzY2hlZHVsZSBhIGNvbW1p
dCBhbmQgdHJhbnNmZXIgdGhlIGZsaW5nIGN1cnZlIG92ZXIgdG8gdGhlIG1haW4KICAgICAgICAg
Ly8gdGhyZWFkIGFuZCBydW4gdGhlIHJlc3Qgb2YgdGhlIHdoZWVscyBmcm9tIHRoZXJlLgogICAg
ICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gd2hlbiBmbGluZ2luZyBhIHBhZ2UgdGhhdCBjb250YWlu
cyBhIHNjcm9sbGFibGUgc3ViYXJlYSB0aGF0IHdlIGNhbid0CiAgICAgICAgIC8vIHNjcm9sbCBv
biB0aGUgdGhyZWFkIGlmIHRoZSBmbGluZyBzdGFydHMgb3V0c2lkZSB0aGUgc3ViYXJlYSBidXQg
dGhlbiBpcyBmbHVuZyAidW5kZXIiIHRoZQogICAgICAgICAvLyBwb2ludGVyLgotICAgICAgICBt
X2NsaWVudC0+dHJhbnNmZXJBY3RpdmVXaGVlbEZsaW5nQW5pbWF0aW9uKG1fd2hlZWxGbGluZ1Bh
cmFtZXRlcnMpOworICAgICAgICBtX2NsaWVudC0+dHJhbnNmZXJBY3RpdmVXaGVlbEZsaW5nQW5p
bWF0aW9uKG1fZmxpbmdQYXJhbWV0ZXJzKTsKICAgICAgICAgY2FuY2VsQ3VycmVudEZsaW5nKCk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBX
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6c2Nyb2xsQnkoY29uc3QgV2ViUG9pbnQmIGlu
Y3JlbWVudCkKK3sKKyAgICBpZiAoaW5jcmVtZW50ID09IFdlYlBvaW50KCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIFRSQUNFX0VWRU5UMigid2Via2l0IiwgIldlYkNvbXBvc2l0b3JJbnB1dEhh
bmRsZXJJbXBsOjpzY3JvbGxCeSIsICJ4IiwgaW5jcmVtZW50LngsICJ5IiwgaW5jcmVtZW50Lnkp
OworCisgICAgYm9vbCBkaWRTY3JvbGwgPSBmYWxzZTsKKworICAgIHN3aXRjaCAobV9mbGluZ1Bh
cmFtZXRlcnMuc291cmNlRGV2aWNlKSB7CisgICAgY2FzZSBXZWJHZXN0dXJlRXZlbnQ6OlRvdWNo
cGFkOgorICAgICAgICBkaWRTY3JvbGwgPSB0b3VjaHBhZEZsaW5nU2Nyb2xsKGluY3JlbWVudCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViR2VzdHVyZUV2ZW50OjpUb3VjaHNjcmVlbjoK
KyAgICAgICAgZGlkU2Nyb2xsID0gbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEJ5SWZQb3Nz
aWJsZShtX2ZsaW5nUGFyYW1ldGVycy5wb2ludCwgSW50U2l6ZSgtaW5jcmVtZW50LngsIC1pbmNy
ZW1lbnQueSkpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAoZGlkU2Nyb2xsKSB7
CisgICAgICAgIG1fZmxpbmdQYXJhbWV0ZXJzLmN1bXVsYXRpdmVTY3JvbGwud2lkdGggKz0gaW5j
cmVtZW50Lng7CisgICAgICAgIG1fZmxpbmdQYXJhbWV0ZXJzLmN1bXVsYXRpdmVTY3JvbGwuaGVp
Z2h0ICs9IGluY3JlbWVudC55OworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmgKaW5k
ZXggZWZlN2Y1M2I0MDU3MWYxOTUxOWIzM2JiM2FlMzkxYzhlMTdkMWI0Ni4uMzg5ZDY0ODQzZWVk
ODM3M2M0ZTY4MmI4ODA1MDI1NDdjODNjNmZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5oCkBAIC03
OCwxMiArNzgsMTUgQEAgcHJpdmF0ZToKIAogICAgIEV2ZW50RGlzcG9zaXRpb24gaGFuZGxlR2Vz
dHVyZUZsaW5nKGNvbnN0IFdlYkdlc3R1cmVFdmVudCYpOwogCisgICAgLy8gUmV0dXJucyB0cnVl
IGlmIHdlIHNjcm9sbGVkIGJ5IHRoZSBpbmNyZW1lbnQuCisgICAgYm9vbCB0b3VjaHBhZEZsaW5n
U2Nyb2xsKGNvbnN0IFdlYlBvaW50JiBpbmNyZW1lbnQpOworCiAgICAgLy8gUmV0dXJucyB0cnVl
IGlmIHdlIGFjdHVhbGx5IGhhZCBhbiBhY3RpdmUgZmxpbmcgdG8gY2FuY2VsLgogICAgIGJvb2wg
Y2FuY2VsQ3VycmVudEZsaW5nKCk7CiAKLSAgICBPd25QdHI8V2ViR2VzdHVyZUN1cnZlPiBtX3do
ZWVsRmxpbmdDdXJ2ZTsKKyAgICBPd25QdHI8V2ViR2VzdHVyZUN1cnZlPiBtX2ZsaW5nQ3VydmU7
CiAgICAgLy8gUGFyYW1ldGVycyBmb3IgdGhlIGFjdGl2ZSBmbGluZyBhbmltYXRpb24sIHN0b3Jl
ZCBpbiBjYXNlIHdlIG5lZWQgdG8gdHJhbnNmZXIgaXQgb3V0IGxhdGVyLgotICAgIFdlYkFjdGl2
ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzIG1fd2hlZWxGbGluZ1BhcmFtZXRlcnM7CisgICAgV2ViQWN0
aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMgbV9mbGluZ1BhcmFtZXRlcnM7CiAKICAgICBXZWJDb21w
b3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50KiBtX2NsaWVudDsKICAgICBpbnQgbV9pZGVudGlmaWVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJDb21wb3NpdG9y
SW5wdXRIYW5kbGVySW1wbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9X
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QuY3BwCmluZGV4IDM5NWZkY2YzZDMzMzUw
N2E5NWNhYTFkMTBkN2JhMDhlNTRiYmJjZTguLmM4YzRlNDVkMzM2ODA1MGViOWJlYmIyY2NiNzBl
ZGQ5MjczMTY3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2Vi
Q29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAKQEAgLTI1
OSw3ICsyNTksNyBAQCBURVNUX0YoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LCBn
ZXN0dXJlUGluY2gpCiAgICAgbV9pbnB1dEhhbmRsZXItPmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVy
ZSk7CiB9CiAKLVRFU1RfRihXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QsIGdlc3R1
cmVGbGluZ1N0YXJ0ZWQpCitURVNUX0YoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0
LCBnZXN0dXJlRmxpbmdTdGFydGVkVG91Y2hwYWQpCiB7CiAgICAgLy8gV2Ugc2hvdWxkbid0IHNl
bmQgYW55IGV2ZW50cyB0byB0aGUgd2lkZ2V0IGZvciB0aGlzIGdlc3R1cmUuCiAgICAgbV9leHBl
Y3RlZERpc3Bvc2l0aW9uID0gRGlkSGFuZGxlOwpAQCAtMjcyLDE2ICsyNzIsMTggQEAgVEVTVF9G
KFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdCwgZ2VzdHVyZUZsaW5nU3RhcnRlZCkK
IAogICAgIGdlc3R1cmUudHlwZSA9IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVGbGluZ1N0YXJ0Owog
ICAgIGdlc3R1cmUuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WCA9IDEwOworICAgIGdlc3R1cmUu
ZGF0YS5mbGluZ1N0YXJ0LnNvdXJjZURldmljZSA9IFdlYkdlc3R1cmVFdmVudDo6VG91Y2hwYWQ7
CiAgICAgbV9pbnB1dEhhbmRsZXItPmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7CiAKICAgICBW
RVJJRllfQU5EX1JFU0VUX01PQ0tTKCk7CiAKICAgICAvLyBWZXJpZnkgdGhhdCBhIEdlc3R1cmVG
bGluZ0NhbmNlbCBkdXJpbmcgYW4gYW5pbWF0aW9uIGNhbmNlbHMgaXQuCiAgICAgZ2VzdHVyZS50
eXBlID0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5nQ2FuY2VsOworICAgIGdlc3R1cmUuZGF0
YS5mbGluZ1N0YXJ0LnNvdXJjZURldmljZSA9IFdlYkdlc3R1cmVFdmVudDo6VG91Y2hwYWQ7CiAg
ICAgbV9pbnB1dEhhbmRsZXItPmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7CiB9CiAKLVRFU1Rf
RihXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QsIGdlc3R1cmVGbGluZ0ZhaWxlZCkK
K1RFU1RfRihXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QsIGdlc3R1cmVGbGluZ09u
TWFpblRocmVhZFRvdWNocGFkKQogewogICAgIC8vIFdlIHNob3VsZCBzZW5kIGFsbCBldmVudHMg
dG8gdGhlIHdpZGdldCBmb3IgdGhpcyBnZXN0dXJlLgogICAgIG1fZXhwZWN0ZWREaXNwb3NpdGlv
biA9IERpZE5vdEhhbmRsZTsKQEAgLTI5MSwxNiArMjkzLDE4IEBAIFRFU1RfRihXZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVySW1wbFRlc3QsIGdlc3R1cmVGbGluZ0ZhaWxlZCkKICAgICAgICAgLldp
bGxPbmNlKHRlc3Rpbmc6OlJldHVybihXZWJJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXR1
c09uTWFpblRocmVhZCkpOwogCiAgICAgZ2VzdHVyZS50eXBlID0gV2ViSW5wdXRFdmVudDo6R2Vz
dHVyZUZsaW5nU3RhcnQ7CisgICAgZ2VzdHVyZS5kYXRhLmZsaW5nU3RhcnQuc291cmNlRGV2aWNl
ID0gV2ViR2VzdHVyZUV2ZW50OjpUb3VjaHBhZDsKICAgICBtX2lucHV0SGFuZGxlci0+aGFuZGxl
SW5wdXRFdmVudChnZXN0dXJlKTsKIAogICAgIFZFUklGWV9BTkRfUkVTRVRfTU9DS1MoKTsKIAog
ICAgIC8vIEV2ZW4gaWYgd2UgZGlkbid0IHN0YXJ0IGEgZmxpbmcgb3Vyc2VsdmVzLCB3ZSBzdGls
bCBuZWVkIHRvIHNlbmQgdGhlIGNhbmNlbCBldmVudCB0byB0aGUgd2lkZ2V0LgogICAgIGdlc3R1
cmUudHlwZSA9IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVGbGluZ0NhbmNlbDsKKyAgICBnZXN0dXJl
LmRhdGEuZmxpbmdTdGFydC5zb3VyY2VEZXZpY2UgPSBXZWJHZXN0dXJlRXZlbnQ6OlRvdWNocGFk
OwogICAgIG1faW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1dEV2ZW50KGdlc3R1cmUpOwogfQogCi1U
RVNUX0YoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LCBnZXN0dXJlRmxpbmdJZ25v
cmVkKQorVEVTVF9GKFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdCwgZ2VzdHVyZUZs
aW5nSWdub3JlZFRvdWNocGFkKQogewogICAgIG1fZXhwZWN0ZWREaXNwb3NpdGlvbiA9IERpZE5v
dEhhbmRsZTsKICAgICBWRVJJRllfQU5EX1JFU0VUX01PQ0tTKCk7CkBAIC0zMDksMTYgKzMxMywx
OCBAQCBURVNUX0YoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LCBnZXN0dXJlRmxp
bmdJZ25vcmVkKQogICAgICAgICAuV2lsbE9uY2UodGVzdGluZzo6UmV0dXJuKFdlYklucHV0SGFu
ZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVzSWdub3JlZCkpOwogCiAgICAgZ2VzdHVyZS50eXBlID0g
V2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5nU3RhcnQ7CisgICAgZ2VzdHVyZS5kYXRhLmZsaW5n
U3RhcnQuc291cmNlRGV2aWNlID0gV2ViR2VzdHVyZUV2ZW50OjpUb3VjaHBhZDsKICAgICBtX2lu
cHV0SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKIAogICAgIFZFUklGWV9BTkRf
UkVTRVRfTU9DS1MoKTsKIAogICAgIC8vIEV2ZW4gaWYgd2UgZGlkbid0IHN0YXJ0IGEgZmxpbmcg
b3Vyc2VsdmVzLCB3ZSBzdGlsbCBuZWVkIHRvIHNlbmQgdGhlIGNhbmNlbCBldmVudCB0byB0aGUg
d2lkZ2V0LgogICAgIGdlc3R1cmUudHlwZSA9IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVGbGluZ0Nh
bmNlbDsKKyAgICBnZXN0dXJlLmRhdGEuZmxpbmdTdGFydC5zb3VyY2VEZXZpY2UgPSBXZWJHZXN0
dXJlRXZlbnQ6OlRvdWNocGFkOwogICAgIG1faW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1dEV2ZW50
KGdlc3R1cmUpOwogfQogCi1URVNUX0YoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0
LCBnZXN0dXJlRmxpbmdBbmltYXRlcykKK1RFU1RfRihXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVy
SW1wbFRlc3QsIGdlc3R1cmVGbGluZ0FuaW1hdGVzVG91Y2hwYWQpCiB7CiAgICAgLy8gV2Ugc2hv
dWxkbid0IHNlbmQgYW55IGV2ZW50cyB0byB0aGUgd2lkZ2V0IGZvciB0aGlzIGdlc3R1cmUuCiAg
ICAgbV9leHBlY3RlZERpc3Bvc2l0aW9uID0gRGlkSGFuZGxlOwpAQCAtMzMzLDYgKzMzOSw3IEBA
IFRFU1RfRihXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QsIGdlc3R1cmVGbGluZ0Fu
aW1hdGVzKQogICAgIGludCBtb2RpZmllcnMgPSA3OwogICAgIGdlc3R1cmUuZGF0YS5mbGluZ1N0
YXJ0LnZlbG9jaXR5WCA9IGZsaW5nRGVsdGEueDsKICAgICBnZXN0dXJlLmRhdGEuZmxpbmdTdGFy
dC52ZWxvY2l0eVkgPSBmbGluZ0RlbHRhLnk7CisgICAgZ2VzdHVyZS5kYXRhLmZsaW5nU3RhcnQu
c291cmNlRGV2aWNlID0gV2ViR2VzdHVyZUV2ZW50OjpUb3VjaHBhZDsKICAgICBnZXN0dXJlLngg
PSBmbGluZ1BvaW50Lng7CiAgICAgZ2VzdHVyZS55ID0gZmxpbmdQb2ludC55OwogICAgIGdlc3R1
cmUuZ2xvYmFsWCA9IGZsaW5nR2xvYmFsUG9pbnQueDsKQEAgLTQwNSw3ICs0MTIsNyBAQCBURVNU
X0YoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LCBnZXN0dXJlRmxpbmdBbmltYXRl
cykKICAgICBtX2lucHV0SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKIH0KIAot
VEVTVF9GKFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdCwgZ2VzdHVyZUZsaW5nVHJh
bnNmZXJSZXNldHMpCitURVNUX0YoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LCBn
ZXN0dXJlRmxpbmdUcmFuc2ZlclJlc2V0c1RvdWNocGFkKQogewogICAgIC8vIFdlIHNob3VsZG4n
dCBzZW5kIGFueSBldmVudHMgdG8gdGhlIHdpZGdldCBmb3IgdGhpcyBnZXN0dXJlLgogICAgIG1f
ZXhwZWN0ZWREaXNwb3NpdGlvbiA9IERpZEhhbmRsZTsKQEAgLTQxOSw2ICs0MjYsNyBAQCBURVNU
X0YoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LCBnZXN0dXJlRmxpbmdUcmFuc2Zl
clJlc2V0cykKICAgICBpbnQgbW9kaWZpZXJzID0gMTsKICAgICBnZXN0dXJlLmRhdGEuZmxpbmdT
dGFydC52ZWxvY2l0eVggPSBmbGluZ0RlbHRhLng7CiAgICAgZ2VzdHVyZS5kYXRhLmZsaW5nU3Rh
cnQudmVsb2NpdHlZID0gZmxpbmdEZWx0YS55OworICAgIGdlc3R1cmUuZGF0YS5mbGluZ1N0YXJ0
LnNvdXJjZURldmljZSA9IFdlYkdlc3R1cmVFdmVudDo6VG91Y2hwYWQ7CiAgICAgZ2VzdHVyZS54
ID0gZmxpbmdQb2ludC54OwogICAgIGdlc3R1cmUueSA9IGZsaW5nUG9pbnQueTsKICAgICBnZXN0
dXJlLmdsb2JhbFggPSBmbGluZ0dsb2JhbFBvaW50Lng7CkBAIC01MDAsNiArNTA4LDcgQEAgVEVT
VF9GKFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdCwgZ2VzdHVyZUZsaW5nVHJhbnNm
ZXJSZXNldHMpCiAgICAgbW9kaWZpZXJzID0gMjsKICAgICBnZXN0dXJlLmRhdGEuZmxpbmdTdGFy
dC52ZWxvY2l0eVggPSBmbGluZ0RlbHRhLng7CiAgICAgZ2VzdHVyZS5kYXRhLmZsaW5nU3RhcnQu
dmVsb2NpdHlZID0gZmxpbmdEZWx0YS55OworICAgIGdlc3R1cmUuZGF0YS5mbGluZ1N0YXJ0LnNv
dXJjZURldmljZSA9IFdlYkdlc3R1cmVFdmVudDo6VG91Y2hwYWQ7CiAgICAgZ2VzdHVyZS54ID0g
ZmxpbmdQb2ludC54OwogICAgIGdlc3R1cmUueSA9IGZsaW5nUG9pbnQueTsKICAgICBnZXN0dXJl
Lmdsb2JhbFggPSBmbGluZ0dsb2JhbFBvaW50Lng7CkBAIC01NTAsNCArNTU5LDEyMSBAQCBURVNU
X0YoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LCBnZXN0dXJlRmxpbmdUcmFuc2Zl
clJlc2V0cykKICAgICBtX2lucHV0SGFuZGxlci0+YW5pbWF0ZSgzMC4yKTsKIH0KIAorVEVTVF9G
KFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdCwgZ2VzdHVyZUZsaW5nU3RhcnRlZFRv
dWNoc2NyZWVuKQoreworICAgIC8vIFdlIHNob3VsZG4ndCBzZW5kIGFueSBldmVudHMgdG8gdGhl
IHdpZGdldCBmb3IgdGhpcyBnZXN0dXJlLgorICAgIG1fZXhwZWN0ZWREaXNwb3NpdGlvbiA9IERp
ZEhhbmRsZTsKKyAgICBWRVJJRllfQU5EX1JFU0VUX01PQ0tTKCk7CisKKyAgICBFWFBFQ1RfQ0FM
TChtX21vY2tJbnB1dEhhbmRsZXJDbGllbnQsIHNjcm9sbEJlZ2luKHRlc3Rpbmc6Ol8sIHRlc3Rp
bmc6Ol8pKQorICAgICAgICAuV2lsbE9uY2UodGVzdGluZzo6UmV0dXJuKFdlYklucHV0SGFuZGxl
ckNsaWVudDo6U2Nyb2xsU3RhdHVzU3RhcnRlZCkpOworICAgIEVYUEVDVF9DQUxMKG1fbW9ja0lu
cHV0SGFuZGxlckNsaWVudCwgc2NoZWR1bGVBbmltYXRpb24oKSk7CisKKyAgICBnZXN0dXJlLnR5
cGUgPSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdTdGFydDsKKyAgICBnZXN0dXJlLmRhdGEu
ZmxpbmdTdGFydC52ZWxvY2l0eVggPSAxMDsKKyAgICBnZXN0dXJlLmRhdGEuZmxpbmdTdGFydC5z
b3VyY2VEZXZpY2UgPSBXZWJHZXN0dXJlRXZlbnQ6OlRvdWNoc2NyZWVuOworICAgIG1faW5wdXRI
YW5kbGVyLT5oYW5kbGVJbnB1dEV2ZW50KGdlc3R1cmUpOworCisgICAgVkVSSUZZX0FORF9SRVNF
VF9NT0NLUygpOworCisgICAgRVhQRUNUX0NBTEwobV9tb2NrSW5wdXRIYW5kbGVyQ2xpZW50LCBz
Y3JvbGxFbmQoKSk7CisKKyAgICAvLyBWZXJpZnkgdGhhdCBhIEdlc3R1cmVGbGluZ0NhbmNlbCBk
dXJpbmcgYW4gYW5pbWF0aW9uIGNhbmNlbHMgaXQuCisgICAgZ2VzdHVyZS50eXBlID0gV2ViSW5w
dXRFdmVudDo6R2VzdHVyZUZsaW5nQ2FuY2VsOworICAgIGdlc3R1cmUuZGF0YS5mbGluZ1N0YXJ0
LnNvdXJjZURldmljZSA9IFdlYkdlc3R1cmVFdmVudDo6VG91Y2hzY3JlZW47CisgICAgbV9pbnB1
dEhhbmRsZXItPmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7Cit9CisKK1RFU1RfRihXZWJDb21w
b3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QsIGdlc3R1cmVGbGluZ09uTWFpblRocmVhZFRvdWNo
c2NyZWVuKQoreworICAgIC8vIFdlIHNob3VsZCBzZW5kIGFsbCBldmVudHMgdG8gdGhlIHdpZGdl
dCBmb3IgdGhpcyBnZXN0dXJlLgorICAgIG1fZXhwZWN0ZWREaXNwb3NpdGlvbiA9IERpZE5vdEhh
bmRsZTsKKyAgICBWRVJJRllfQU5EX1JFU0VUX01PQ0tTKCk7CisKKyAgICBFWFBFQ1RfQ0FMTCht
X21vY2tJbnB1dEhhbmRsZXJDbGllbnQsIHNjcm9sbEJlZ2luKHRlc3Rpbmc6Ol8sIHRlc3Rpbmc6
Ol8pKQorICAgICAgICAuV2lsbE9uY2UodGVzdGluZzo6UmV0dXJuKFdlYklucHV0SGFuZGxlckNs
aWVudDo6U2Nyb2xsU3RhdHVzT25NYWluVGhyZWFkKSk7CisKKyAgICBnZXN0dXJlLnR5cGUgPSBX
ZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdTdGFydDsKKyAgICBnZXN0dXJlLmRhdGEuZmxpbmdT
dGFydC5zb3VyY2VEZXZpY2UgPSBXZWJHZXN0dXJlRXZlbnQ6OlRvdWNoc2NyZWVuOworICAgIG1f
aW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1dEV2ZW50KGdlc3R1cmUpOworCisgICAgVkVSSUZZX0FO
RF9SRVNFVF9NT0NLUygpOworCisgICAgLy8gRXZlbiBpZiB3ZSBkaWRuJ3Qgc3RhcnQgYSBmbGlu
ZyBvdXJzZWx2ZXMsIHdlIHN0aWxsIG5lZWQgdG8gc2VuZCB0aGUgY2FuY2VsIGV2ZW50IHRvIHRo
ZSB3aWRnZXQuCisgICAgZ2VzdHVyZS50eXBlID0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5n
Q2FuY2VsOworICAgIGdlc3R1cmUuZGF0YS5mbGluZ1N0YXJ0LnNvdXJjZURldmljZSA9IFdlYkdl
c3R1cmVFdmVudDo6VG91Y2hzY3JlZW47CisgICAgbV9pbnB1dEhhbmRsZXItPmhhbmRsZUlucHV0
RXZlbnQoZ2VzdHVyZSk7Cit9CisKK1RFU1RfRihXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1w
bFRlc3QsIGdlc3R1cmVGbGluZ0lnbm9yZWRUb3VjaHNjcmVlbikKK3sKKyAgICBtX2V4cGVjdGVk
RGlzcG9zaXRpb24gPSBEcm9wRXZlbnQ7CisgICAgVkVSSUZZX0FORF9SRVNFVF9NT0NLUygpOwor
CisgICAgRVhQRUNUX0NBTEwobV9tb2NrSW5wdXRIYW5kbGVyQ2xpZW50LCBzY3JvbGxCZWdpbih0
ZXN0aW5nOjpfLCB0ZXN0aW5nOjpfKSkKKyAgICAgICAgLldpbGxPbmNlKHRlc3Rpbmc6OlJldHVy
bihXZWJJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXR1c0lnbm9yZWQpKTsKKworICAgIGdl
c3R1cmUudHlwZSA9IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVGbGluZ1N0YXJ0OworICAgIGdlc3R1
cmUuZGF0YS5mbGluZ1N0YXJ0LnNvdXJjZURldmljZSA9IFdlYkdlc3R1cmVFdmVudDo6VG91Y2hz
Y3JlZW47CisgICAgbV9pbnB1dEhhbmRsZXItPmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7CisK
KyAgICBtX2V4cGVjdGVkRGlzcG9zaXRpb24gPSBEaWROb3RIYW5kbGU7CisgICAgVkVSSUZZX0FO
RF9SRVNFVF9NT0NLUygpOworCisgICAgLy8gRXZlbiBpZiB3ZSBkaWRuJ3Qgc3RhcnQgYSBmbGlu
ZyBvdXJzZWx2ZXMsIHdlIHN0aWxsIG5lZWQgdG8gc2VuZCB0aGUgY2FuY2VsIGV2ZW50IHRvIHRo
ZSB3aWRnZXQuCisgICAgZ2VzdHVyZS50eXBlID0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5n
Q2FuY2VsOworICAgIGdlc3R1cmUuZGF0YS5mbGluZ1N0YXJ0LnNvdXJjZURldmljZSA9IFdlYkdl
c3R1cmVFdmVudDo6VG91Y2hzY3JlZW47CisgICAgbV9pbnB1dEhhbmRsZXItPmhhbmRsZUlucHV0
RXZlbnQoZ2VzdHVyZSk7Cit9CisKK1RFU1RfRihXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1w
bFRlc3QsIGdlc3R1cmVGbGluZ0FuaW1hdGVzVG91Y2hzY3JlZW4pCit7CisgICAgLy8gV2Ugc2hv
dWxkbid0IHNlbmQgYW55IGV2ZW50cyB0byB0aGUgd2lkZ2V0IGZvciB0aGlzIGdlc3R1cmUuCisg
ICAgbV9leHBlY3RlZERpc3Bvc2l0aW9uID0gRGlkSGFuZGxlOworICAgIFZFUklGWV9BTkRfUkVT
RVRfTU9DS1MoKTsKKworICAgIC8vIE9uIHRoZSBmbGluZyBzdGFydCwgd2Ugc2hvdWxkIHNjaGVk
dWxlIGFuIGFuaW1hdGlvbiBidXQgbm90IGFjdHVhbGx5IHN0YXJ0CisgICAgLy8gc2Nyb2xsaW5n
LgorICAgIGdlc3R1cmUudHlwZSA9IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVGbGluZ1N0YXJ0Owor
ICAgIFdlYkZsb2F0UG9pbnQgZmxpbmdEZWx0YSA9IFdlYkZsb2F0UG9pbnQoMTAwMCwgMCk7Cisg
ICAgV2ViUG9pbnQgZmxpbmdQb2ludCA9IFdlYlBvaW50KDcsIDEzKTsKKyAgICBXZWJQb2ludCBm
bGluZ0dsb2JhbFBvaW50ID0gV2ViUG9pbnQoMTcsIDIzKTsKKyAgICBpbnQgbW9kaWZpZXJzID0g
NzsKKyAgICBnZXN0dXJlLmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0eVggPSBmbGluZ0RlbHRhLng7
CisgICAgZ2VzdHVyZS5kYXRhLmZsaW5nU3RhcnQudmVsb2NpdHlZID0gZmxpbmdEZWx0YS55Owor
ICAgIGdlc3R1cmUuZGF0YS5mbGluZ1N0YXJ0LnNvdXJjZURldmljZSA9IFdlYkdlc3R1cmVFdmVu
dDo6VG91Y2hzY3JlZW47CisgICAgZ2VzdHVyZS54ID0gZmxpbmdQb2ludC54OworICAgIGdlc3R1
cmUueSA9IGZsaW5nUG9pbnQueTsKKyAgICBnZXN0dXJlLmdsb2JhbFggPSBmbGluZ0dsb2JhbFBv
aW50Lng7CisgICAgZ2VzdHVyZS5nbG9iYWxZID0gZmxpbmdHbG9iYWxQb2ludC55OworICAgIGdl
c3R1cmUubW9kaWZpZXJzID0gbW9kaWZpZXJzOworICAgIEVYUEVDVF9DQUxMKG1fbW9ja0lucHV0
SGFuZGxlckNsaWVudCwgc2NoZWR1bGVBbmltYXRpb24oKSk7CisgICAgRVhQRUNUX0NBTEwobV9t
b2NrSW5wdXRIYW5kbGVyQ2xpZW50LCBzY3JvbGxCZWdpbih0ZXN0aW5nOjpfLCB0ZXN0aW5nOjpf
KSkKKyAgICAgICAgLldpbGxPbmNlKHRlc3Rpbmc6OlJldHVybihXZWJJbnB1dEhhbmRsZXJDbGll
bnQ6OlNjcm9sbFN0YXR1c1N0YXJ0ZWQpKTsKKyAgICBtX2lucHV0SGFuZGxlci0+aGFuZGxlSW5w
dXRFdmVudChnZXN0dXJlKTsKKworICAgIHRlc3Rpbmc6Ok1vY2s6OlZlcmlmeUFuZENsZWFyRXhw
ZWN0YXRpb25zKCZtX21vY2tJbnB1dEhhbmRsZXJDbGllbnQpOworICAgIC8vIFRoZSBmaXJzdCBh
bmltYXRlIGNhbGwgc2hvdWxkIGxldCB1cyBwaWNrIHVwIGFuIGFuaW1hdGlvbiBzdGFydCB0aW1l
LCBidXQgd2UKKyAgICAvLyBzaG91bGRuJ3QgYWN0dWFsbHkgbW92ZSBhbnl3aGVyZSBqdXN0IHll
dC4gVGhlIGZpcnN0IGZyYW1lIGFmdGVyIHRoZSBmbGluZyBzdGFydAorICAgIC8vIHdpbGwgdHlw
aWNhbGx5IGluY2x1ZGUgdGhlIGxhc3Qgc2Nyb2xsIGZyb20gdGhlIGdlc3R1cmUgdGhhdCBsZWFk
IHRvIHRoZSBzY3JvbGwKKyAgICAvLyAoZWl0aGVyIHdoZWVsIG9yIGdlc3R1cmUgc2Nyb2xsKSwg
c28gdGhlcmUgc2hvdWxkIGJlIG5vIHZpc2libGUgaGl0Y2guCisgICAgRVhQRUNUX0NBTEwobV9t
b2NrSW5wdXRIYW5kbGVyQ2xpZW50LCBzY2hlZHVsZUFuaW1hdGlvbigpKTsKKyAgICBtX2lucHV0
SGFuZGxlci0+YW5pbWF0ZSgxMCk7CisKKyAgICB0ZXN0aW5nOjpNb2NrOjpWZXJpZnlBbmRDbGVh
ckV4cGVjdGF0aW9ucygmbV9tb2NrSW5wdXRIYW5kbGVyQ2xpZW50KTsKKworICAgIC8vIFRoZSBz
ZWNvbmQgY2FsbCBzaG91bGQgc3RhcnQgc2Nyb2xsaW5nIGluIHRoZSAtWCBkaXJlY3Rpb24uCisg
ICAgRVhQRUNUX0NBTEwobV9tb2NrSW5wdXRIYW5kbGVyQ2xpZW50LCBzY2hlZHVsZUFuaW1hdGlv
bigpKTsKKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tJbnB1dEhhbmRsZXJDbGllbnQsIHNjcm9sbEJ5
SWZQb3NzaWJsZSh0ZXN0aW5nOjpfLCB0ZXN0aW5nOjpGaWVsZCgmV2ViU2l6ZTo6d2lkdGgsIHRl
c3Rpbmc6Okx0KDApKSkpCisgICAgICAgIC5XaWxsT25jZSh0ZXN0aW5nOjpSZXR1cm4odHJ1ZSkp
OworICAgIG1faW5wdXRIYW5kbGVyLT5hbmltYXRlKDEwLjEpOworCisgICAgdGVzdGluZzo6TW9j
azo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJm1fbW9ja0lucHV0SGFuZGxlckNsaWVudCk7
CisKKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tDbGllbnQsIGRpZEhhbmRsZUlucHV0RXZlbnQoKSk7
CisgICAgRVhQRUNUX0NBTEwobV9tb2NrSW5wdXRIYW5kbGVyQ2xpZW50LCBzY3JvbGxFbmQoKSk7
CisgICAgZ2VzdHVyZS50eXBlID0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5nQ2FuY2VsOwor
ICAgIG1faW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1dEV2ZW50KGdlc3R1cmUpOworfQorCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>