<?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>105143</bug_id>
          
          <creation_ts>2012-12-16 17:33:44 -0800</creation_ts>
          <short_desc>[BlackBerry] Adapt to new BlackBerry::Platform::TouchPoint API</short_desc>
          <delta_ts>2012-12-16 23:38:39 -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>WebKit BlackBerry</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="Arvid Nilsson">anilsson</reporter>
          <assigned_to name="Arvid Nilsson">anilsson</assigned_to>
          <cc>anilsson</cc>
    
    <cc>mifenton</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>792402</commentid>
    <comment_count>0</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-12-16 17:33:44 -0800</bug_when>
    <thetext>Among other changes, TouchPoint instances now provide document coordinates for the viewport and content position of the touch event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792410</commentid>
    <comment_count>1</comment_count>
      <attachid>179674</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-12-16 18:02:13 -0800</bug_when>
    <thetext>Created attachment 179674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792411</commentid>
    <comment_count>2</comment_count>
      <attachid>179674</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-12-16 18:02:40 -0800</bug_when>
    <thetext>Comment on attachment 179674
Patch

Already reviewed by George</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792412</commentid>
    <comment_count>3</comment_count>
      <attachid>179674</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-16 18:05:00 -0800</bug_when>
    <thetext>Comment on attachment 179674
Patch

Rejecting attachment 179674 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
port/TouchEventHandler.cpp.rej
patching file Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.h
Hunk #1 FAILED at 35.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.h.rej
patching file Tools/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Tools/DumpRenderTree/blackberry/EventSender.cpp

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/15360615</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792426</commentid>
    <comment_count>4</comment_count>
      <attachid>179679</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-12-16 18:25:33 -0800</bug_when>
    <thetext>Created attachment 179679
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792428</commentid>
    <comment_count>5</comment_count>
      <attachid>179679</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-12-16 18:25:58 -0800</bug_when>
    <thetext>Comment on attachment 179679
Patch

Fixed merge problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792435</commentid>
    <comment_count>6</comment_count>
      <attachid>179679</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-16 18:44:42 -0800</bug_when>
    <thetext>Comment on attachment 179679
Patch

Rejecting attachment 179679 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
t/git/webkit-commit-queue/Source/WebKit/chromium/v8 --revision 13196 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
52&gt;At revision 13196.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/15363603</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792442</commentid>
    <comment_count>7</comment_count>
      <attachid>179679</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-12-16 19:04:21 -0800</bug_when>
    <thetext>Comment on attachment 179679
Patch

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

AFAICS no r+ was given before, so this can&apos;t work. I&apos;ll try r+ now but because the reviewer is already filled in it may fail....

&gt; Source/WebCore/ChangeLog:3
&gt; +        Adapt to new BlackBerry::Platform::TouchPoint API

Would have been better to use [BlackBerry] in the title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792481</commentid>
    <comment_count>8</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-12-16 23:06:56 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 179679 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=179679&amp;action=review
&gt; 
&gt; AFAICS no r+ was given before, so this can&apos;t work. I&apos;ll try r+ now but because the reviewer is already filled in it may fail....
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Adapt to new BlackBerry::Platform::TouchPoint API
&gt; 
&gt; Would have been better to use [BlackBerry] in the title.

I have successfully cq+&apos;d patches in the past, when they didn&apos;t contain an OOPS!, but maybe there was already a previous review to carry over back then.

I&apos;ll fix the title of the bug and patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792494</commentid>
    <comment_count>9</comment_count>
      <attachid>179691</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-12-16 23:18:38 -0800</bug_when>
    <thetext>Created attachment 179691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792495</commentid>
    <comment_count>10</comment_count>
      <attachid>179691</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-12-16 23:19:32 -0800</bug_when>
    <thetext>Comment on attachment 179691
Patch

Let&apos;s try this then: &quot;Already reviewed by Rob&quot; =D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792503</commentid>
    <comment_count>11</comment_count>
      <attachid>179691</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-16 23:38:36 -0800</bug_when>
    <thetext>Comment on attachment 179691
Patch

Clearing flags on attachment: 179691

Committed r137880: &lt;http://trac.webkit.org/changeset/137880&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792504</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-16 23:38:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179674</attachid>
            <date>2012-12-16 18:02:13 -0800</date>
            <delta_ts>2012-12-16 18:25:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105143-20121217025930.patch</filename>
            <type>text/plain</type>
            <size>18504</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjZkNTU4ZDdmZDIxZTRi
ZTk5YzBlZjJmMmI3NGI5MDQ4NDA3NDVkMC4uNDUxMTZhNmE4YzNiMWFmOGY1MDQ1ODE4ZjNiNjg1
NGI2NzI5OTg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEyLTE2ICBBcnZp
ZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KKworICAgICAgICBBZGFwdCB0byBuZXcgQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9pbnQgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUxNDMKKyAgICAgICAgUklNIFBSIDE3MTk0MQor
CisgICAgICAgIFJldmlld2VkIGJ5IEdlb3JnZSBTdGFpa29zLgorCisgICAgICAgIFRvdWNoUG9p
bnQgaW5zdGFuY2VzIG5vdyBwcm92aWRlIGRvY3VtZW50IGNvb3JkaW5hdGVzIGZvciB0aGUgdmll
d3BvcnQKKyAgICAgICAgYW5kIGNvbnRlbnQgcG9zaXRpb24gb2YgdGhlIHRvdWNoIGV2ZW50LiBU
aGUgcGl4ZWwgY29vcmRpbmF0ZXMgc3RvcmVkCisgICAgICAgIGluIHRoZSBUb3VjaFBvaW50IHNo
b3VsZCBuZXZlciBiZSB1c2VkIGluIFdlYktpdC4KKworICAgICAgICBBbHNvIGFkYXB0IHRvIG5l
dyBtZXRob2QgbmFtZXMgYW5kIGVuY2Fwc3VsYXRpb24gb2YgVG91Y2hQb2ludCBkYXRhCisgICAg
ICAgIG1lbWJlcnMuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLCBubyBuZXcgdGVz
dHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1BsYXRmb3JtVG91Y2hQb2ludEJs
YWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaFBvaW50OjpQbGF0
Zm9ybVRvdWNoUG9pbnQpOgorCiAyMDEyLTEyLTEyICBKb2huIEdyaWdncyAgPGpncmlnZ3NAcmlt
LmNvbT4gCiAKICAgICAgICAgMjAxMi0xMi0xMiAgSm9obiBHcmlnZ3MgIDxqZ3JpZ2dzQHJpbS5j
b20+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBjMjk1NGVmODFmZTFkZmY0Yzgx
NmFhNzk2MzU1ZTBlNzBhNmZkNDcwLi5jZWU5Y2QwZGIzNjE1MTc1NGMxM2YyMDU0MDA0MTI3MDVj
ZjI5OGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAor
MjAxMi0xMi0xNiAgQXJ2aWQgTmlsc3NvbiAgPGFuaWxzc29uQHJpbS5jb20+CisKKyAgICAgICAg
QWRhcHQgdG8gbmV3IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpUb3VjaFBvaW50IEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MTQzCisgICAgICAg
IFJJTSBQUiAxNzE5NDEKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9yZ2UgU3RhaWtvcy4KKwor
ICAgICAgICBUb3VjaFBvaW50IGluc3RhbmNlcyBub3cgcHJvdmlkZSBkb2N1bWVudCBjb29yZGlu
YXRlcyBmb3IgdGhlIHZpZXdwb3J0CisgICAgICAgIGFuZCBjb250ZW50IHBvc2l0aW9uIG9mIHRo
ZSB0b3VjaCBldmVudC4gVGhlIHBpeGVsIGNvb3JkaW5hdGVzIHN0b3JlZAorICAgICAgICBpbiB0
aGUgVG91Y2hQb2ludCBzaG91bGQgbmV2ZXIgYmUgdXNlZCBpbiBXZWJLaXQuCisKKyAgICAgICAg
QWxzbyBhZGFwdCB0byBuZXcgbWV0aG9kIG5hbWVzIGFuZCBlbmNhcHN1bGF0aW9uIG9mIFRvdWNo
UG9pbnQgZGF0YQorICAgICAgICBtZW1iZXJzLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjp0b3VjaEV2ZW50KToKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6dG91Y2hQb2ludEFzTW91c2VFdmVu
dCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpkaXNwYXRj
aFRvdWNoRXZlbnRUb0Z1bGxTY3JlZW5QbHVnaW4pOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJQYWdlUHJpdmF0ZTo6ZGlzcGF0Y2hUb3VjaFBvaW50QXNNb3VzZUV2ZW50VG9GdWxs
U2NyZWVuUGx1Z2luKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHA6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OklucHV0SGFuZGxlcjo6c2hvdWxkUmVxdWVz
dFNwZWxsQ2hlY2tpbmdPcHRpb25zRm9yUG9pbnQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQv
SW5wdXRIYW5kbGVyLmg6CisgICAgICAgIChJbnB1dEhhbmRsZXIpOgorICAgICAgICAqIFdlYktp
dFN1cHBvcnQvVG91Y2hFdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpUb3VjaEV2ZW50SGFuZGxlcjo6ZG9GYXRGaW5nZXJzKToKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6VG91Y2hFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoUG9pbnQpOgorICAgICAg
ICAqIFdlYktpdFN1cHBvcnQvVG91Y2hFdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKFRvdWNoRXZl
bnRIYW5kbGVyKToKKwogMjAxMi0xMi0xMyAgWW9uZyBMaSAgPHlvbGlAcmltLmNvbT4KIAogICAg
ICAgICBbQmxhY2tCZXJyeV0gUG9zc2libGUgSlMgcmUtZW50cmFuY3kgY2F1c2VkIGJ5IFVJIGV2
ZW50IGhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVy
cnkvUGxhdGZvcm1Ub3VjaFBvaW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ibGFja2JlcnJ5L1BsYXRmb3JtVG91Y2hQb2ludEJsYWNrQmVycnkuY3BwCmluZGV4IGI4
NDE3N2IzOTAxNjg2NzI1ZGYyMjUzOTI3NjY2ODkxY2Y4ZTMwM2IuLjhhYTY1YTg1YTg2YzgzYzE4
OGI2NWU0NmE5YWFmODkzZTdhOGQ2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2JsYWNrYmVycnkvUGxhdGZvcm1Ub3VjaFBvaW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QbGF0Zm9ybVRvdWNoUG9pbnRCbGFja0Jl
cnJ5LmNwcApAQCAtMjksMTEgKzI5LDE0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBsYXRm
b3JtVG91Y2hQb2ludDo6UGxhdGZvcm1Ub3VjaFBvaW50KGNvbnN0IEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpUb3VjaFBvaW50JiBwb2ludCkKLSAgICA6IG1faWQocG9pbnQubV9pZCkKLSAgICAsIG1f
c2NyZWVuUG9zKHBvaW50Lm1fc2NyZWVuUG9zKQotICAgICwgbV9wb3MocG9pbnQubV9wb3MpCisg
ICAgOiBtX2lkKHBvaW50LmlkKCkpCisgICAgLCBtX3NjcmVlblBvcyhwb2ludC5zY3JlZW5Qb3Np
dGlvbigpKQorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgY2FsY3VsYXRpbmcgYSBuZXcgdmll
d3BvcnQgcG9zaXRpb24gZnJvbSB0aGUgY3VycmVudCBzY3JvbGwKKyAgICAvLyBwb3NpdGlvbiBh
bmQgdGhlIGRvY3VtZW50Q29udGVudFBvc2l0aW9uLCBpbiBjYXNlIHdlIHNjcm9sbGVkIHNpbmNl
IHRoZSBwbGF0Zm9ybQorICAgIC8vIGV2ZW50IHdhcyBjcmVhdGVkLgorICAgICwgbV9wb3MocG9p
bnQuZG9jdW1lbnRWaWV3cG9ydFBvc2l0aW9uKCkpCiB7Ci0gICAgc3dpdGNoIChwb2ludC5tX3N0
YXRlKSB7CisgICAgc3dpdGNoIChwb2ludC5zdGF0ZSgpKSB7CiAgICAgY2FzZSBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6VG91Y2hQb2ludDo6VG91Y2hSZWxlYXNlZDoKICAgICAgICAgbV9zdGF0ZSA9
IFRvdWNoUmVsZWFzZWQ7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5jcHAKaW5kZXggMzdlZTg3YTdjYTE1MDBmOTllYTM4YzdiMGQ1NmM4ZGNiODhl
YTg0OS4uNGRiNDk2MjIyNGU3YjU3ZmNkZjdiOTZmM2RmNjU0Y2YzZmRkMWQ2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC00MDYzLDExICs0MDYzLDYgQEAg
Ym9vbCBXZWJQYWdlOjp0b3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtOjpUb3VjaEV2ZW50JiBldmVu
dCkKICAgICAgICAgcmV0dXJuIGQtPmRpc3BhdGNoVG91Y2hFdmVudFRvRnVsbFNjcmVlblBsdWdp
bihwbHVnaW5WaWV3LCBldmVudCk7CiAKICAgICBQbGF0Zm9ybTo6VG91Y2hFdmVudCB0RXZlbnQg
PSBldmVudDsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZXZlbnQubV9wb2ludHMuc2l6
ZSgpOyBpKyspIHsKLSAgICAgICAgdEV2ZW50Lm1fcG9pbnRzW2ldLm1fcG9zID0gZC0+bWFwRnJv
bVRyYW5zZm9ybWVkKHRFdmVudC5tX3BvaW50c1tpXS5tX3Bvcyk7Ci0gICAgICAgIHRFdmVudC5t
X3BvaW50c1tpXS5tX3NjcmVlblBvcyA9IHRFdmVudC5tX3BvaW50c1tpXS5tX3NjcmVlblBvczsK
LSAgICB9Ci0KICAgICBpZiAoZXZlbnQuaXNTaW5nbGVUYXAoKSkKICAgICAgICAgZC0+bV9wbHVn
aW5NYXlPcGVuTmV3VGFiID0gdHJ1ZTsKICAgICBlbHNlIGlmICh0RXZlbnQubV90eXBlID09IFBs
YXRmb3JtOjpUb3VjaEV2ZW50OjpUb3VjaFN0YXJ0IHx8IHRFdmVudC5tX3R5cGUgPT0gUGxhdGZv
cm06OlRvdWNoRXZlbnQ6OlRvdWNoQ2FuY2VsKQpAQCAtNDEzNiwxMSArNDEzMSw3IEBAIHZvaWQg
V2ViUGFnZTo6dG91Y2hQb2ludEFzTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybTo6VG91Y2hQb2lu
dCYgcG9pbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGQtPm1fbGFzdFVzZXJFdmVudFRpbWVz
dGFtcCA9IGN1cnJlbnRUaW1lKCk7Ci0KLSAgICBQbGF0Zm9ybTo6VG91Y2hQb2ludCB0UG9pbnQg
PSBwb2ludDsKLSAgICB0UG9pbnQubV9wb3MgPSBkLT5tYXBGcm9tVHJhbnNmb3JtZWQodFBvaW50
Lm1fcG9zKTsKLQotICAgIGQtPm1fdG91Y2hFdmVudEhhbmRsZXItPmhhbmRsZVRvdWNoUG9pbnQo
dFBvaW50KTsKKyAgICBkLT5tX3RvdWNoRXZlbnRIYW5kbGVyLT5oYW5kbGVUb3VjaFBvaW50KHBv
aW50KTsKIH0KIAogdm9pZCBXZWJQYWdlOjpwbGF5U291bmRJZkFuY2hvcklzVGFyZ2V0KCkgY29u
c3QKQEAgLTQxNzAsMTMgKzQxNjEsMTMgQEAgYm9vbCBXZWJQYWdlUHJpdmF0ZTo6ZGlzcGF0Y2hU
b3VjaEV2ZW50VG9GdWxsU2NyZWVuUGx1Z2luKFBsdWdpblZpZXcqIHBsdWdpbiwgY28KICAgICAg
ICAgaWYgKG5wVG91Y2hFdmVudC5zaXplKSB7CiAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9p
bnRzID0gbmV3IE5QVG91Y2hQb2ludFtucFRvdWNoRXZlbnQuc2l6ZV07CiAgICAgICAgICAgICBm
b3IgKGludCBpID0gMDsgaSA8IG5wVG91Y2hFdmVudC5zaXplOyBpKyspIHsKLSAgICAgICAgICAg
ICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLnRvdWNoSWQgPSBldmVudC5tX3BvaW50c1tpXS5t
X2lkOwotICAgICAgICAgICAgICAgIG5wVG91Y2hFdmVudC5wb2ludHNbaV0uY2xpZW50WCA9IGV2
ZW50Lm1fcG9pbnRzW2ldLm1fc2NyZWVuUG9zLngoKTsKLSAgICAgICAgICAgICAgICBucFRvdWNo
RXZlbnQucG9pbnRzW2ldLmNsaWVudFkgPSBldmVudC5tX3BvaW50c1tpXS5tX3NjcmVlblBvcy55
KCk7Ci0gICAgICAgICAgICAgICAgbnBUb3VjaEV2ZW50LnBvaW50c1tpXS5zY3JlZW5YID0gZXZl
bnQubV9wb2ludHNbaV0ubV9zY3JlZW5Qb3MueCgpOwotICAgICAgICAgICAgICAgIG5wVG91Y2hF
dmVudC5wb2ludHNbaV0uc2NyZWVuWSA9IGV2ZW50Lm1fcG9pbnRzW2ldLm1fc2NyZWVuUG9zLnko
KTsKLSAgICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLnBhZ2VYID0gZXZlbnQu
bV9wb2ludHNbaV0ubV9wb3MueCgpOwotICAgICAgICAgICAgICAgIG5wVG91Y2hFdmVudC5wb2lu
dHNbaV0ucGFnZVkgPSBldmVudC5tX3BvaW50c1tpXS5tX3Bvcy55KCk7CisgICAgICAgICAgICAg
ICAgbnBUb3VjaEV2ZW50LnBvaW50c1tpXS50b3VjaElkID0gZXZlbnQubV9wb2ludHNbaV0uaWQo
KTsKKyAgICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLmNsaWVudFggPSBldmVu
dC5tX3BvaW50c1tpXS5zY3JlZW5Qb3NpdGlvbigpLngoKTsKKyAgICAgICAgICAgICAgICBucFRv
dWNoRXZlbnQucG9pbnRzW2ldLmNsaWVudFkgPSBldmVudC5tX3BvaW50c1tpXS5zY3JlZW5Qb3Np
dGlvbigpLnkoKTsKKyAgICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLnNjcmVl
blggPSBldmVudC5tX3BvaW50c1tpXS5zY3JlZW5Qb3NpdGlvbigpLngoKTsKKyAgICAgICAgICAg
ICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLnNjcmVlblkgPSBldmVudC5tX3BvaW50c1tpXS5z
Y3JlZW5Qb3NpdGlvbigpLnkoKTsKKyAgICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRz
W2ldLnBhZ2VYID0gZXZlbnQubV9wb2ludHNbaV0ucGl4ZWxWaWV3cG9ydFBvc2l0aW9uKCkueCgp
OworICAgICAgICAgICAgICAgIG5wVG91Y2hFdmVudC5wb2ludHNbaV0ucGFnZVkgPSBldmVudC5t
X3BvaW50c1tpXS5waXhlbFZpZXdwb3J0UG9zaXRpb24oKS55KCk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIApAQCAtNDE5OCw3ICs0MTg5LDcgQEAgYm9vbCBXZWJQYWdlUHJpdmF0ZTo6ZGlz
cGF0Y2hUb3VjaFBvaW50QXNNb3VzZUV2ZW50VG9GdWxsU2NyZWVuUGx1Z2luKFBsdWdpblZpZXcK
ICAgICBOUEV2ZW50IG5wRXZlbnQ7CiAgICAgTlBNb3VzZUV2ZW50IG1vdXNlOwogCi0gICAgc3dp
dGNoIChwb2ludC5tX3N0YXRlKSB7CisgICAgc3dpdGNoIChwb2ludC5zdGF0ZSgpKSB7CiAgICAg
Y2FzZSBQbGF0Zm9ybTo6VG91Y2hQb2ludDo6VG91Y2hQcmVzc2VkOgogICAgICAgICBtb3VzZS50
eXBlID0gTU9VU0VfQlVUVE9OX0RPV047CiAgICAgICAgIGJyZWFrOwpAQCAtNDIxMiw4ICs0MjAz
LDggQEAgYm9vbCBXZWJQYWdlUHJpdmF0ZTo6ZGlzcGF0Y2hUb3VjaFBvaW50QXNNb3VzZUV2ZW50
VG9GdWxsU2NyZWVuUGx1Z2luKFBsdWdpblZpZXcKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgbW91c2UueCA9IHBvaW50Lm1fc2NyZWVuUG9zLngoKTsKLSAgICBtb3VzZS55ID0g
cG9pbnQubV9zY3JlZW5Qb3MueSgpOworICAgIG1vdXNlLnggPSBwb2ludC5zY3JlZW5Qb3NpdGlv
bigpLngoKTsKKyAgICBtb3VzZS55ID0gcG9pbnQuc2NyZWVuUG9zaXRpb24oKS55KCk7CiAgICAg
bW91c2UuYnV0dG9uID0gbW91c2UudHlwZSAhPSBNT1VTRV9CVVRUT05fVVA7CiAgICAgbW91c2Uu
ZmxhZ3MgPSAwOwogICAgIG5wRXZlbnQudHlwZSA9IE5QX01vdXNlRXZlbnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNw
cAppbmRleCA3YTVjZWYwMWQ0YWE5MzM4YmViYWMxMWU3OWUyMjM1OGExODI1YzU0Li40Zjk0YWU4
NWJhMjllMDJhZTU4MjU5MDJhMzE3NzJmN2NjNTRiZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAKQEAgLTcx
Myw3ICs3MTMsNyBAQCBTcGVsbENoZWNrZXIqIElucHV0SGFuZGxlcjo6Z2V0U3BlbGxDaGVja2Vy
KCkKICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBJbnB1dEhhbmRsZXI6OnNob3VsZFJlcXVlc3RT
cGVsbENoZWNraW5nT3B0aW9uc0ZvclBvaW50KFBsYXRmb3JtOjpJbnRQb2ludCYgcG9pbnQsIGNv
bnN0IEVsZW1lbnQqIHRvdWNoZWRFbGVtZW50LCBpbWZfc3BfdGV4dF90JiBzcGVsbENoZWNraW5n
T3B0aW9uUmVxdWVzdCkKK2Jvb2wgSW5wdXRIYW5kbGVyOjpzaG91bGRSZXF1ZXN0U3BlbGxDaGVj
a2luZ09wdGlvbnNGb3JQb2ludChjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQmIGRvY3VtZW50Q29u
dGVudFBvc2l0aW9uLCBjb25zdCBFbGVtZW50KiB0b3VjaGVkRWxlbWVudCwgaW1mX3NwX3RleHRf
dCYgc3BlbGxDaGVja2luZ09wdGlvblJlcXVlc3QpCiB7CiAgICAgaWYgKCFpc0FjdGl2ZVRleHRF
ZGl0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTczMiw3ICs3MzIsNyBAQCBib29sIElu
cHV0SGFuZGxlcjo6c2hvdWxkUmVxdWVzdFNwZWxsQ2hlY2tpbmdPcHRpb25zRm9yUG9pbnQoUGxh
dGZvcm06OkludFBvaW50JgogICAgIGlmICh0b3VjaGVkRWxlbWVudCAhPSBjdXJyZW50Rm9jdXNF
bGVtZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBMYXlvdXRQb2ludCBjb250ZW50
UG9zKG1fd2ViUGFnZS0+bWFwRnJvbVZpZXdwb3J0VG9Db250ZW50cyhwb2ludCkpOworICAgIExh
eW91dFBvaW50IGNvbnRlbnRQb3MoZG9jdW1lbnRDb250ZW50UG9zaXRpb24pOwogICAgIGNvbnRl
bnRQb3MgPSBET01TdXBwb3J0Ojpjb252ZXJ0UG9pbnRUb0ZyYW1lKG1fd2ViUGFnZS0+bWFpbkZy
YW1lKCksIG1fd2ViUGFnZS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCksIHJvdW5kZWRJbnRQb2ludChj
b250ZW50UG9zKSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjdXJyZW50Rm9jdXNFbGVt
ZW50LT5kb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
S2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuaAppbmRleCAxZDcwOTA4OTNkZDYwOGQ3Mjc3NmIwZGJm
ZTUzYzZmNmI1NTY2MmI5Li43MWI1NmFkNzA4ZWY5N2MwMTdiNzI5Zjg1M2Y2MDY2NGExNTQxZDJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1
dEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9J
bnB1dEhhbmRsZXIuaApAQCAtMTU2LDcgKzE1Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNwZWxs
Q2hlY2tpbmdSZXF1ZXN0UHJvY2Vzc2VkKGludDMyX3QgdHJhbnNhY3Rpb25JZCwgc3Bhbm5hYmxl
X3N0cmluZ190Kik7CiAgICAgdm9pZCBzcGVsbENoZWNraW5nUmVxdWVzdENhbmNlbGxlZChpbnQz
Ml90IHRyYW5zYWN0aW9uSWQpOwogCi0gICAgYm9vbCBzaG91bGRSZXF1ZXN0U3BlbGxDaGVja2lu
Z09wdGlvbnNGb3JQb2ludChQbGF0Zm9ybTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpFbGVt
ZW50KiwgaW1mX3NwX3RleHRfdCYpOworICAgIGJvb2wgc2hvdWxkUmVxdWVzdFNwZWxsQ2hlY2tp
bmdPcHRpb25zRm9yUG9pbnQoY29uc3QgUGxhdGZvcm06OkludFBvaW50JiBkb2N1bWVudENvbnRl
bnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGltZl9zcF90ZXh0X3QmKTsKICAg
ICB2b2lkIHJlcXVlc3RTcGVsbGluZ0NoZWNraW5nT3B0aW9ucyhpbWZfc3BfdGV4dF90JiwgV2Vi
Q29yZTo6SW50U2l6ZSYgc2NyZWVuT2Zmc2V0LCBjb25zdCBib29sIHNob3VsZE1vdmVEaWFsb2cg
PSBmYWxzZSk7CiAgICAgdm9pZCBjbGVhckRpZFNwZWxsQ2hlY2tTdGF0ZSgpIHsgbV9kaWRTcGVs
bENoZWNrV29yZCA9IGZhbHNlOyB9CiAgICAgdm9pZCByZWRyYXdTcGVsbENoZWNrRGlhbG9nSWZS
ZXF1aXJlZChjb25zdCBib29sIHNob3VsZE1vdmVEaWFsb2cgPSB0cnVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1RvdWNoRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1RvdWNoRXZlbnRI
YW5kbGVyLmNwcAppbmRleCAxM2UzMzU0M2JiM2M1MjVhNGFkY2E5M2ViOGZlZTdiMjQ0NDg0N2Jj
Li5lMjc3YmU5NGYyNmZjYmViOTQ4ODRlMmU2OGEyMjJjZDYyYmI1YzFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9Ub3VjaEV2ZW50SGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvVG91Y2hFdmVu
dEhhbmRsZXIuY3BwCkBAIC02NiwxMyArNjYsMTIgQEAgVG91Y2hFdmVudEhhbmRsZXI6On5Ub3Vj
aEV2ZW50SGFuZGxlcigpCiB7CiB9CiAKLXZvaWQgVG91Y2hFdmVudEhhbmRsZXI6OmRvRmF0Rmlu
Z2VycyhQbGF0Zm9ybTo6VG91Y2hQb2ludCYgcG9pbnQpCit2b2lkIFRvdWNoRXZlbnRIYW5kbGVy
Ojpkb0ZhdEZpbmdlcnMoY29uc3QgUGxhdGZvcm06OlRvdWNoUG9pbnQmIHBvaW50KQogewotICAg
IG1fbGFzdFNjcmVlblBvaW50ID0gcG9pbnQubV9zY3JlZW5Qb3M7CisgICAgbV9sYXN0U2NyZWVu
UG9pbnQgPSBwb2ludC5zY3JlZW5Qb3NpdGlvbigpOwogICAgIG1fbGFzdEZhdEZpbmdlcnNSZXN1
bHQucmVzZXQoKTsgLy8gVGhlb3JldGljYWxseSB0aGlzIHNob3VsZG4ndCBiZSByZXF1aXJlZC4g
S2VlcCBpdCBqdXN0IGluIGNhc2Ugc3RhdGVzIGdldCBtYW5nbGVkLgotICAgIEludFBvaW50IGNv
bnRlbnRQb3MobV93ZWJQYWdlLT5tYXBGcm9tVmlld3BvcnRUb0NvbnRlbnRzKHBvaW50Lm1fcG9z
KSk7CiAgICAgbV93ZWJQYWdlLT5wb3N0cG9uZURvY3VtZW50U3R5bGVSZWNhbGMoKTsKLSAgICBt
X2xhc3RGYXRGaW5nZXJzUmVzdWx0ID0gRmF0RmluZ2VycyhtX3dlYlBhZ2UsIGNvbnRlbnRQb3Ms
IEZhdEZpbmdlcnM6OkNsaWNrYWJsZUVsZW1lbnQpLmZpbmRCZXN0UG9pbnQoKTsKKyAgICBtX2xh
c3RGYXRGaW5nZXJzUmVzdWx0ID0gRmF0RmluZ2VycyhtX3dlYlBhZ2UsIHBvaW50LmRvY3VtZW50
Q29udGVudFBvc2l0aW9uKCksIEZhdEZpbmdlcnM6OkNsaWNrYWJsZUVsZW1lbnQpLmZpbmRCZXN0
UG9pbnQoKTsKICAgICBtX3dlYlBhZ2UtPnJlc3VtZURvY3VtZW50U3R5bGVSZWNhbGMoKTsKIH0K
IApAQCAtODMsMTEgKzgyLDExIEBAIHZvaWQgVG91Y2hFdmVudEhhbmRsZXI6OnNlbmRDbGlja0F0
RmF0RmluZ2Vyc1BvaW50KCkKICAgICBtX3dlYlBhZ2UtPmhhbmRsZU1vdXNlRXZlbnQobW91c2VS
ZWxlYXNlKTsKIH0KIAotdm9pZCBUb3VjaEV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hQb2ludChQ
bGF0Zm9ybTo6VG91Y2hQb2ludCYgcG9pbnQpCit2b2lkIFRvdWNoRXZlbnRIYW5kbGVyOjpoYW5k
bGVUb3VjaFBvaW50KGNvbnN0IFBsYXRmb3JtOjpUb3VjaFBvaW50JiBwb2ludCkKIHsKICAgICAv
LyBFbmFibGUgaW5wdXQgbW9kZSBvbiBhbnkgdG91Y2ggZXZlbnQuCiAgICAgbV93ZWJQYWdlLT5t
X2lucHV0SGFuZGxlci0+c2V0SW5wdXRNb2RlRW5hYmxlZCgpOwotICAgIHN3aXRjaCAocG9pbnQu
bV9zdGF0ZSkgeworICAgIHN3aXRjaCAocG9pbnQuc3RhdGUoKSkgewogICAgIGNhc2UgUGxhdGZv
cm06OlRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZDoKICAgICAgICAgewogICAgICAgICAgICAgLy8g
Q2xlYXIgc3BlbGxjaGVjayBzdGF0ZSBvbiBhbnkgdG91Y2ggZXZlbnQKQEAgLTEwMSw3ICsxMDAs
NyBAQCB2b2lkIFRvdWNoRXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaFBvaW50KFBsYXRmb3JtOjpU
b3VjaFBvaW50JiBwb2ludCkKICAgICAgICAgICAgIC8vIENoZWNrIGZvciB0ZXh0IHNlbGVjdGlv
bgogICAgICAgICAgICAgaWYgKG1fbGFzdEZhdEZpbmdlcnNSZXN1bHQuaXNUZXh0SW5wdXQoKSkg
ewogICAgICAgICAgICAgICAgIGVsZW1lbnRVbmRlckZhdEZpbmdlciA9IG1fbGFzdEZhdEZpbmdl
cnNSZXN1bHQubm9kZUFzRWxlbWVudElmQXBwbGljYWJsZShGYXRGaW5nZXJzUmVzdWx0OjpTaGFk
b3dDb250ZW50Tm90QWxsb3dlZCwgdHJ1ZSAvKiBzaG91bGRVc2VSb290RWRpdGFibGVFbGVtZW50
ICovKTsKLSAgICAgICAgICAgICAgICBtX3Nob3VsZFJlcXVlc3RTcGVsbENoZWNrT3B0aW9ucyA9
IG1fd2ViUGFnZS0+bV9pbnB1dEhhbmRsZXItPnNob3VsZFJlcXVlc3RTcGVsbENoZWNraW5nT3B0
aW9uc0ZvclBvaW50KHBvaW50Lm1fcG9zLCBlbGVtZW50VW5kZXJGYXRGaW5nZXIsIG1fc3BlbGxD
aGVja09wdGlvblJlcXVlc3QpOworICAgICAgICAgICAgICAgIG1fc2hvdWxkUmVxdWVzdFNwZWxs
Q2hlY2tPcHRpb25zID0gbV93ZWJQYWdlLT5tX2lucHV0SGFuZGxlci0+c2hvdWxkUmVxdWVzdFNw
ZWxsQ2hlY2tpbmdPcHRpb25zRm9yUG9pbnQocG9pbnQuZG9jdW1lbnRDb250ZW50UG9zaXRpb24o
KSwgZWxlbWVudFVuZGVyRmF0RmluZ2VyLCBtX3NwZWxsQ2hlY2tPcHRpb25SZXF1ZXN0KTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgaGFuZGxlRmF0RmluZ2VyUHJlc3NlZCgpOwpAQCAt
MTQyLDggKzE0MSw4IEBAIHZvaWQgVG91Y2hFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoUG9pbnQo
UGxhdGZvcm06OlRvdWNoUG9pbnQmIHBvaW50KQogICAgICAgICAgICAgbV93ZWJQYWdlLT5tX2lu
cHV0SGFuZGxlci0+Y2xlYXJEaWRTcGVsbENoZWNrU3RhdGUoKTsKIAogICAgICAgICAgICAgLy8g
WW91IGNhbiBzdGlsbCBzZW5kIG1vdXNlIG1vdmUgZXZlbnRzCi0gICAgICAgICAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgbW91c2VFdmVudChwb2ludC5tX3BvcywgbV9sYXN0U2NyZWVuUG9pbnQsIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDEsIExlZnRCdXR0b24sIFRvdWNoU2NyZWVuKTsKLSAg
ICAgICAgICAgIG1fbGFzdFNjcmVlblBvaW50ID0gcG9pbnQubV9zY3JlZW5Qb3M7CisgICAgICAg
ICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChwb2ludC5kb2N1bWVudFZpZXdwb3J0
UG9zaXRpb24oKSwgbV9sYXN0U2NyZWVuUG9pbnQsIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQs
IDEsIExlZnRCdXR0b24sIFRvdWNoU2NyZWVuKTsKKyAgICAgICAgICAgIG1fbGFzdFNjcmVlblBv
aW50ID0gcG9pbnQuc2NyZWVuUG9zaXRpb24oKTsKICAgICAgICAgICAgIG1fd2ViUGFnZS0+aGFu
ZGxlTW91c2VFdmVudChtb3VzZUV2ZW50KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9Ub3Vj
aEV2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
VG91Y2hFdmVudEhhbmRsZXIuaAppbmRleCA1ZmJlNjQwZjc2MTM3Yjg4N2YzYmNkNGUxYjIzMTdm
NTE4ZmNjYmNhLi5jZjA1YTNkYzFkZjJjMjJjMWJkMzUwNWFiODVlNDYyNTEzZjdjYTM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9Ub3VjaEV2ZW50
SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1Rv
dWNoRXZlbnRIYW5kbGVyLmgKQEAgLTM1LDggKzM1LDggQEAgcHVibGljOgogICAgIFRvdWNoRXZl
bnRIYW5kbGVyKFdlYlBhZ2VQcml2YXRlKiB3ZWJwYWdlKTsKICAgICB+VG91Y2hFdmVudEhhbmRs
ZXIoKTsKIAotICAgIHZvaWQgZG9GYXRGaW5nZXJzKFBsYXRmb3JtOjpUb3VjaFBvaW50Jik7Ci0g
ICAgdm9pZCBoYW5kbGVUb3VjaFBvaW50KFBsYXRmb3JtOjpUb3VjaFBvaW50Jik7CisgICAgdm9p
ZCBkb0ZhdEZpbmdlcnMoY29uc3QgUGxhdGZvcm06OlRvdWNoUG9pbnQmKTsKKyAgICB2b2lkIGhh
bmRsZVRvdWNoUG9pbnQoY29uc3QgUGxhdGZvcm06OlRvdWNoUG9pbnQmKTsKICAgICB2b2lkIHNl
bmRDbGlja0F0RmF0RmluZ2Vyc1BvaW50KCk7CiAKICAgICBjb25zdCBGYXRGaW5nZXJzUmVzdWx0
JiBsYXN0RmF0RmluZ2Vyc1Jlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdEZhdEZpbmdlcnNS
ZXN1bHQ7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCAwOWRiZGExZmRhOWI1ZTFmZGMxZjU3YWVkMWMyNjMwZjBkYjI1YzQ5Li5mOTQ2YmVmMjBj
NTJiNGIxMzZmMWU3ZDg2MGRiMWRhMGFlZDA5Mzk4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTItMTYgIEFy
dmlkIE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgorCisgICAgICAgIEFkYXB0IHRvIG5ldyBC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQb2ludCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTE0MworICAgICAgICBSSU0gUFIgMTcxOTQx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvcmdlIFN0YWlrb3MuCisKKyAgICAgICAgQWRhcHQg
dG8gbmV3IG1ldGhvZCBuYW1lcyBhbmQgZW5jYXBzdWxhdGlvbiBvZiBUb3VjaFBvaW50IGRhdGEg
bWVtYmVycy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRXZlbnRTZW5k
ZXIuY3BwOgorICAgICAgICAoYWRkVG91Y2hQb2ludENhbGxiYWNrKToKKyAgICAgICAgKHVwZGF0
ZVRvdWNoUG9pbnRDYWxsYmFjayk6CisgICAgICAgICh0b3VjaEVuZENhbGxiYWNrKToKKyAgICAg
ICAgKHJlbGVhc2VUb3VjaFBvaW50Q2FsbGJhY2spOgorICAgICAgICAoc2VuZFRvdWNoRXZlbnQp
OgorCiAyMDEyLTEyLTEyICBKb2huIEdyaWdncyAgPGpncmlnZ3NAcmltLmNvbT4KIAogICAgICAg
ICAyMDEyLTEyLTEyICBKb2huIEdyaWdncyAgPGpncmlnZ3NAcmltLmNvbT4KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRXZlbnRTZW5kZXIuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9FdmVudFNlbmRlci5jcHAKaW5kZXggMGY3NjkxNGEy
M2VjZDc2M2Q1MDdhMTYzNTAxNTNmY2I1YTg2MGQxYS4uZmE0MmVjNTU3YjBlNGNiZjczNTM2MmM4
MjQ2OTEwYWE0Y2QyOTYwNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2ti
ZXJyeS9FdmVudFNlbmRlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJy
eS9FdmVudFNlbmRlci5jcHAKQEAgLTIyMSwxMiArMjIxLDE2IEBAIHN0YXRpYyBKU1ZhbHVlUmVm
IGFkZFRvdWNoUG9pbnRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
ZnVuY3RpCiAgICAgaW50IHkgPSBzdGF0aWNfY2FzdDxpbnQ+KEpTVmFsdWVUb051bWJlcihjb250
ZXh0LCBhcmd1bWVudHNbMV0sIGV4Y2VwdGlvbikpOwogICAgIEFTU0VSVCghZXhjZXB0aW9uIHx8
ICEqZXhjZXB0aW9uKTsKIAotICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpUb3VjaFBvaW50IHRv
dWNoOwotICAgIHRvdWNoLm1faWQgPSB0b3VjaGVzLmlzRW1wdHkoKSA/IDAgOiB0b3VjaGVzLmxh
c3QoKS5tX2lkICsgMTsKKyAgICBpbnQgaWQgPSB0b3VjaGVzLmlzRW1wdHkoKSA/IDAgOiB0b3Vj
aGVzLmxhc3QoKS5pZCgpICsgMTsKKworICAgIC8vIHBpeGVsVmlld3BvcnRQb3NpdGlvbiBpcyB1
bnVzZWQgaW4gdGhlIFdlYktpdCBsYXllciwgc28gdXNlIHRoaXMgZm9yIHNjcmVlbiBwb3NpdGlv
bgogICAgIEludFBvaW50IHBvcyh4LCB5KTsKLSAgICB0b3VjaC5tX3BvcyA9IHBvczsKLSAgICB0
b3VjaC5tX3NjcmVlblBvcyA9IHBvczsKLSAgICB0b3VjaC5tX3N0YXRlID0gQmxhY2tCZXJyeTo6
UGxhdGZvcm06OlRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZDsKKworICAgIEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpUb3VjaFBvaW50IHRvdWNoKGlkLCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQ
b2ludDo6VG91Y2hQcmVzc2VkLCBwb3MsIHBvcywgMCk7CisKKyAgICAvLyBVbmZvcnR1bmF0ZWx5
IHdlIGRvbid0IGtub3cgdGhlIHNjcm9sbCBwb3NpdGlvbiBhdCB0aGlzIHBvaW50LCBzbyB1c2Ug
cG9zIGZvciB0aGUgY29udGVudCBwb3NpdGlvbiB0b28uCisgICAgLy8gVGhpcyBhc3N1bWVzIHNj
cm9sbCBwb3NpdGlvbiBpcyAwLDAKKyAgICB0b3VjaC5wb3B1bGF0ZURvY3VtZW50UG9zaXRpb24o
cG9zLCBwb3MpOwogCiAgICAgdG91Y2hlcy5hcHBlbmQodG91Y2gpOwogCkBAIC0yNDksMTAgKzI1
MywxNSBAQCBzdGF0aWMgSlNWYWx1ZVJlZiB1cGRhdGVUb3VjaFBvaW50Q2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bgogICAgICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7CiAKICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQ
b2ludCYgdG91Y2ggPSB0b3VjaGVzW2luZGV4XTsKKworICAgIC8vIHBpeGVsVmlld3BvcnRQb3Np
dGlvbiBpcyB1bnVzZWQgaW4gdGhlIFdlYktpdCBsYXllcgogICAgIEludFBvaW50IHBvcyh4LCB5
KTsKLSAgICB0b3VjaC5tX3BvcyA9IHBvczsKLSAgICB0b3VjaC5tX3NjcmVlblBvcyA9IHBvczsK
LSAgICB0b3VjaC5tX3N0YXRlID0gQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9pbnQ6OlRv
dWNoTW92ZWQ7CisKKyAgICAvLyBVbmZvcnR1bmF0ZWx5IHdlIGRvbid0IGtub3cgdGhlIHNjcm9s
bCBwb3NpdGlvbiBhdCB0aGlzIHBvaW50LCBzbyB1c2UgcG9zIGZvciB0aGUgY29udGVudCBwb3Np
dGlvbiB0b28uCisgICAgLy8gVGhpcyBhc3N1bWVzIHNjcm9sbCBwb3NpdGlvbiBpcyAwLDAKKyAg
ICB0b3VjaC5wb3B1bGF0ZURvY3VtZW50UG9zaXRpb24ocG9zLCBwb3MpOworICAgIHRvdWNoLnNl
dFNjcmVlblBvc2l0aW9uKHBvcyk7CisgICAgdG91Y2gudXBkYXRlU3RhdGUoQmxhY2tCZXJyeTo6
UGxhdGZvcm06OlRvdWNoUG9pbnQ6OlRvdWNoTW92ZWQpOwogCiAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQpAQCAtMjg4LDcgKzI5Nyw3IEBAIHN0YXRpYyBKU1Zh
bHVlUmVmIHRvdWNoTW92ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiBmdW5jdGlvbiwKIHN0YXRpYyBKU1ZhbHVlUmVmIHRvdWNoRW5kQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0b3Vj
aGVzLnNpemUoKTsgKytpKQotICAgICAgICBpZiAodG91Y2hlc1tpXS5tX3N0YXRlICE9IEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpUb3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkKSB7CisgICAgICAgIGlm
ICh0b3VjaGVzW2ldLnN0YXRlKCkgIT0gQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9pbnQ6
OlRvdWNoUmVsZWFzZWQpIHsKICAgICAgICAgICAgIHNlbmRUb3VjaEV2ZW50KEJsYWNrQmVycnk6
OlBsYXRmb3JtOjpUb3VjaEV2ZW50OjpUb3VjaE1vdmUpOwogICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogICAgICAgICB9CkBAIC0zMjAsNyArMzI5LDcg
QEAgc3RhdGljIEpTVmFsdWVSZWYgcmVsZWFzZVRvdWNoUG9pbnRDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnUKICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49
IChpbnQpdG91Y2hlcy5zaXplKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKIAotICAgIHRvdWNoZXNbaW5kZXhdLm1fc3RhdGUgPSBCbGFja0JlcnJ5OjpQ
bGF0Zm9ybTo6VG91Y2hQb2ludDo6VG91Y2hSZWxlYXNlZDsKKyAgICB0b3VjaGVzW2luZGV4XS51
cGRhdGVTdGF0ZShCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQb2ludDo6VG91Y2hSZWxlYXNl
ZCk7CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCkBAIC0z
MzQsOCArMzQzLDggQEAgdm9pZCBzZW5kVG91Y2hFdmVudChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6
VG91Y2hFdmVudDo6VHlwZSB0eXBlKQogICAgIFZlY3RvcjxCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6
VG91Y2hQb2ludD4gdDsKIAogICAgIGZvciAoVmVjdG9yPEJsYWNrQmVycnk6OlBsYXRmb3JtOjpU
b3VjaFBvaW50Pjo6aXRlcmF0b3IgaXQgPSB0b3VjaGVzLmJlZ2luKCk7IGl0ICE9IHRvdWNoZXMu
ZW5kKCk7ICsraXQpIHsKLSAgICAgICAgaWYgKGl0LT5tX3N0YXRlICE9IEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpUb3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkKSB7Ci0gICAgICAgICAgICBpdC0+bV9z
dGF0ZSA9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpUb3VjaFBvaW50OjpUb3VjaFN0YXRpb25hcnk7
CisgICAgICAgIGlmIChpdC0+c3RhdGUoKSAhPSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQ
b2ludDo6VG91Y2hSZWxlYXNlZCkgeworICAgICAgICAgICAgaXQtPnVwZGF0ZVN0YXRlKEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpUb3VjaFBvaW50OjpUb3VjaFN0YXRpb25hcnkpOwogICAgICAgICAg
ICAgdC5hcHBlbmQoKml0KTsKICAgICAgICAgfQogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179679</attachid>
            <date>2012-12-16 18:25:33 -0800</date>
            <delta_ts>2012-12-16 23:18:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105143-20121217032249.patch</filename>
            <type>text/plain</type>
            <size>18550</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3ODQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ExMDMwNjk1YWRmMDkw
ZTc0Y2Q4YmZjODk5MjViOTFhMjUzOTA5OS4uZGM0OThmN2I2ZGVjZWZmNWU2ZTBhMWUyOTQ1Njdm
ZGJkNzA1N2NlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEyLTE2ICBBcnZp
ZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KKworICAgICAgICBBZGFwdCB0byBuZXcgQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9pbnQgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUxNDMKKyAgICAgICAgUklNIFBSIDE3MTk0MQor
CisgICAgICAgIFJldmlld2VkIGJ5IEdlb3JnZSBTdGFpa29zLgorCisgICAgICAgIFRvdWNoUG9p
bnQgaW5zdGFuY2VzIG5vdyBwcm92aWRlIGRvY3VtZW50IGNvb3JkaW5hdGVzIGZvciB0aGUgdmll
d3BvcnQKKyAgICAgICAgYW5kIGNvbnRlbnQgcG9zaXRpb24gb2YgdGhlIHRvdWNoIGV2ZW50LiBU
aGUgcGl4ZWwgY29vcmRpbmF0ZXMgc3RvcmVkCisgICAgICAgIGluIHRoZSBUb3VjaFBvaW50IHNo
b3VsZCBubyBsb25nZXIgYmUgbmVlZGVkIGluIFdlYktpdC4KKworICAgICAgICBBbHNvIGFkYXB0
IHRvIG5ldyBtZXRob2QgbmFtZXMgYW5kIGVuY2Fwc3VsYXRpb24gb2YgVG91Y2hQb2ludCBkYXRh
CisgICAgICAgIG1lbWJlcnMuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLCBubyBu
ZXcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1BsYXRmb3JtVG91Y2hQ
b2ludEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaFBvaW50
OjpQbGF0Zm9ybVRvdWNoUG9pbnQpOgorCiAyMDEyLTEyLTE2ICBMZXZpIFdlaW50cmF1YiAgPGxl
dml3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBQdXNoIHBpeGVsIHNuYXBwaW5nIGxvZ2ljIGlu
dG8gVHJhbnNmb3JtU3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGRjMzBh
ODgxYjVmYjgyMjRmNGNkYjg4MDQxZDI0OWEyMTkxYWU4OTguLjY0NTc1MjMyMWVlM2JhNTg0NWE1
OTJlYjlhZDQzYjRkOTc4NDJkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM0IEBACisyMDEyLTEyLTE2ICBBcnZpZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNv
bT4KKworICAgICAgICBBZGFwdCB0byBuZXcgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9p
bnQgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDUxNDMKKyAgICAgICAgUklNIFBSIDE3MTk0MQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb3Jn
ZSBTdGFpa29zLgorCisgICAgICAgIFRvdWNoUG9pbnQgaW5zdGFuY2VzIG5vdyBwcm92aWRlIGRv
Y3VtZW50IGNvb3JkaW5hdGVzIGZvciB0aGUgdmlld3BvcnQKKyAgICAgICAgYW5kIGNvbnRlbnQg
cG9zaXRpb24gb2YgdGhlIHRvdWNoIGV2ZW50LiBUaGUgcGl4ZWwgY29vcmRpbmF0ZXMgc3RvcmVk
CisgICAgICAgIGluIHRoZSBUb3VjaFBvaW50IHNob3VsZCBubyBsb25nZXIgYmUgbmVlZGVkIGlu
IFdlYktpdC4gT25lIGV4Y2VwdGlvbgorICAgICAgICBpcyB3aGVuIHBhc3NpbmcgZXZlbnRzIHRv
IGEgZnVsbCBzY3JlZW4gcGx1Z2luLgorCisgICAgICAgIEFsc28gYWRhcHQgdG8gbmV3IG1ldGhv
ZCBuYW1lcyBhbmQgZW5jYXBzdWxhdGlvbiBvZiBUb3VjaFBvaW50IGRhdGEKKyAgICAgICAgbWVt
YmVycy4KKworICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6V2ViUGFnZTo6dG91Y2hFdmVudCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlBhZ2U6OnRvdWNoUG9pbnRBc01vdXNlRXZlbnQpOgorICAgICAgICAoQmxhY2tCZXJy
eTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6ZGlzcGF0Y2hUb3VjaEV2ZW50VG9GdWxsU2NyZWVu
UGx1Z2luKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmRp
c3BhdGNoVG91Y2hQb2ludEFzTW91c2VFdmVudFRvRnVsbFNjcmVlblBsdWdpbik6CisgICAgICAg
ICogV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpJbnB1dEhhbmRsZXI6OnNob3VsZFJlcXVlc3RTcGVsbENoZWNraW5nT3B0aW9uc0Zv
clBvaW50KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5oOgorICAgICAg
ICAoSW5wdXRIYW5kbGVyKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1RvdWNoRXZlbnRIYW5k
bGVyLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6VG91Y2hFdmVudEhhbmRsZXI6
OmRvRmF0RmluZ2Vycyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlRvdWNoRXZlbnRI
YW5kbGVyOjpoYW5kbGVUb3VjaFBvaW50KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1RvdWNo
RXZlbnRIYW5kbGVyLmg6CisgICAgICAgIChUb3VjaEV2ZW50SGFuZGxlcik6CisKIDIwMTItMTIt
MTUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5h
bWUgRnJhbWVMb2FkZXJDbGllbnQ6OmRvd25sb2FkIHRvIGNvbnZlcnRNYWluUmVzb3VyY2VMb2Fk
VG9Eb3dubG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJy
eS9QbGF0Zm9ybVRvdWNoUG9pbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2JsYWNrYmVycnkvUGxhdGZvcm1Ub3VjaFBvaW50QmxhY2tCZXJyeS5jcHAKaW5kZXggYjg0
MTc3YjM5MDE2ODY3MjVkZjIyNTM5Mjc2NjY4OTFjZjhlMzAzYi4uOGFhNjVhODVhODZjODNjMTg4
YjY1ZTQ2YTlhYWY4OTNlN2E4ZDYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYmxhY2tiZXJyeS9QbGF0Zm9ybVRvdWNoUG9pbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BsYXRmb3JtVG91Y2hQb2ludEJsYWNrQmVy
cnkuY3BwCkBAIC0yOSwxMSArMjksMTQgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGxhdGZv
cm1Ub3VjaFBvaW50OjpQbGF0Zm9ybVRvdWNoUG9pbnQoY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZv
cm06OlRvdWNoUG9pbnQmIHBvaW50KQotICAgIDogbV9pZChwb2ludC5tX2lkKQotICAgICwgbV9z
Y3JlZW5Qb3MocG9pbnQubV9zY3JlZW5Qb3MpCi0gICAgLCBtX3Bvcyhwb2ludC5tX3BvcykKKyAg
ICA6IG1faWQocG9pbnQuaWQoKSkKKyAgICAsIG1fc2NyZWVuUG9zKHBvaW50LnNjcmVlblBvc2l0
aW9uKCkpCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBjYWxjdWxhdGluZyBhIG5ldyB2aWV3
cG9ydCBwb3NpdGlvbiBmcm9tIHRoZSBjdXJyZW50IHNjcm9sbAorICAgIC8vIHBvc2l0aW9uIGFu
ZCB0aGUgZG9jdW1lbnRDb250ZW50UG9zaXRpb24sIGluIGNhc2Ugd2Ugc2Nyb2xsZWQgc2luY2Ug
dGhlIHBsYXRmb3JtCisgICAgLy8gZXZlbnQgd2FzIGNyZWF0ZWQuCisgICAgLCBtX3Bvcyhwb2lu
dC5kb2N1bWVudFZpZXdwb3J0UG9zaXRpb24oKSkKIHsKLSAgICBzd2l0Y2ggKHBvaW50Lm1fc3Rh
dGUpIHsKKyAgICBzd2l0Y2ggKHBvaW50LnN0YXRlKCkpIHsKICAgICBjYXNlIEJsYWNrQmVycnk6
OlBsYXRmb3JtOjpUb3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkOgogICAgICAgICBtX3N0YXRlID0g
VG91Y2hSZWxlYXNlZDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlLmNwcAppbmRleCA4N2QxYzE2NzcyYzg0ZTgyMTE2ODgzY2FmZDc0OTA3NTg5YWIw
NzMzLi4xZWNiMDllMGU0MGY5NTJlOTJlY2I4NWI5ZGM2M2NiZmQwMTdjZWYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTQwNTgsMTEgKzQwNTgsNiBAQCBi
b29sIFdlYlBhZ2U6OnRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm06OlRvdWNoRXZlbnQmIGV2ZW50
KQogICAgICAgICByZXR1cm4gZC0+ZGlzcGF0Y2hUb3VjaEV2ZW50VG9GdWxsU2NyZWVuUGx1Z2lu
KHBsdWdpblZpZXcsIGV2ZW50KTsKIAogICAgIFBsYXRmb3JtOjpUb3VjaEV2ZW50IHRFdmVudCA9
IGV2ZW50OwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBldmVudC5tX3BvaW50cy5zaXpl
KCk7IGkrKykgewotICAgICAgICB0RXZlbnQubV9wb2ludHNbaV0ubV9wb3MgPSBkLT5tYXBGcm9t
VHJhbnNmb3JtZWQodEV2ZW50Lm1fcG9pbnRzW2ldLm1fcG9zKTsKLSAgICAgICAgdEV2ZW50Lm1f
cG9pbnRzW2ldLm1fc2NyZWVuUG9zID0gdEV2ZW50Lm1fcG9pbnRzW2ldLm1fc2NyZWVuUG9zOwot
ICAgIH0KLQogICAgIGlmIChldmVudC5pc1NpbmdsZVRhcCgpKQogICAgICAgICBkLT5tX3BsdWdp
bk1heU9wZW5OZXdUYWIgPSB0cnVlOwogICAgIGVsc2UgaWYgKHRFdmVudC5tX3R5cGUgPT0gUGxh
dGZvcm06OlRvdWNoRXZlbnQ6OlRvdWNoU3RhcnQgfHwgdEV2ZW50Lm1fdHlwZSA9PSBQbGF0Zm9y
bTo6VG91Y2hFdmVudDo6VG91Y2hDYW5jZWwpCkBAIC00MTMyLDkgKzQxMjcsNiBAQCB2b2lkIFdl
YlBhZ2U6OnRvdWNoUG9pbnRBc01vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm06OlRvdWNoUG9pbnQm
IHBvaW50LCB1bnNpZ25lZAogCiAgICAgZC0+bV9sYXN0VXNlckV2ZW50VGltZXN0YW1wID0gY3Vy
cmVudFRpbWUoKTsKIAotICAgIFBsYXRmb3JtOjpUb3VjaFBvaW50IHRQb2ludCA9IHBvaW50Owot
ICAgIHRQb2ludC5tX3BvcyA9IGQtPm1hcEZyb21UcmFuc2Zvcm1lZCh0UG9pbnQubV9wb3MpOwot
CiAgICAgZC0+bV90b3VjaEV2ZW50SGFuZGxlci0+aGFuZGxlVG91Y2hQb2ludCh0UG9pbnQsIG1v
ZGlmaWVycyk7CiB9CiAKQEAgLTQxNjUsMTMgKzQxNTcsMTMgQEAgYm9vbCBXZWJQYWdlUHJpdmF0
ZTo6ZGlzcGF0Y2hUb3VjaEV2ZW50VG9GdWxsU2NyZWVuUGx1Z2luKFBsdWdpblZpZXcqIHBsdWdp
biwgY28KICAgICAgICAgaWYgKG5wVG91Y2hFdmVudC5zaXplKSB7CiAgICAgICAgICAgICBucFRv
dWNoRXZlbnQucG9pbnRzID0gbmV3IE5QVG91Y2hQb2ludFtucFRvdWNoRXZlbnQuc2l6ZV07CiAg
ICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5wVG91Y2hFdmVudC5zaXplOyBpKyspIHsK
LSAgICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLnRvdWNoSWQgPSBldmVudC5t
X3BvaW50c1tpXS5tX2lkOwotICAgICAgICAgICAgICAgIG5wVG91Y2hFdmVudC5wb2ludHNbaV0u
Y2xpZW50WCA9IGV2ZW50Lm1fcG9pbnRzW2ldLm1fc2NyZWVuUG9zLngoKTsKLSAgICAgICAgICAg
ICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLmNsaWVudFkgPSBldmVudC5tX3BvaW50c1tpXS5t
X3NjcmVlblBvcy55KCk7Ci0gICAgICAgICAgICAgICAgbnBUb3VjaEV2ZW50LnBvaW50c1tpXS5z
Y3JlZW5YID0gZXZlbnQubV9wb2ludHNbaV0ubV9zY3JlZW5Qb3MueCgpOwotICAgICAgICAgICAg
ICAgIG5wVG91Y2hFdmVudC5wb2ludHNbaV0uc2NyZWVuWSA9IGV2ZW50Lm1fcG9pbnRzW2ldLm1f
c2NyZWVuUG9zLnkoKTsKLSAgICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLnBh
Z2VYID0gZXZlbnQubV9wb2ludHNbaV0ubV9wb3MueCgpOwotICAgICAgICAgICAgICAgIG5wVG91
Y2hFdmVudC5wb2ludHNbaV0ucGFnZVkgPSBldmVudC5tX3BvaW50c1tpXS5tX3Bvcy55KCk7Cisg
ICAgICAgICAgICAgICAgbnBUb3VjaEV2ZW50LnBvaW50c1tpXS50b3VjaElkID0gZXZlbnQubV9w
b2ludHNbaV0uaWQoKTsKKyAgICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLmNs
aWVudFggPSBldmVudC5tX3BvaW50c1tpXS5zY3JlZW5Qb3NpdGlvbigpLngoKTsKKyAgICAgICAg
ICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLmNsaWVudFkgPSBldmVudC5tX3BvaW50c1tp
XS5zY3JlZW5Qb3NpdGlvbigpLnkoKTsKKyAgICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9p
bnRzW2ldLnNjcmVlblggPSBldmVudC5tX3BvaW50c1tpXS5zY3JlZW5Qb3NpdGlvbigpLngoKTsK
KyAgICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLnNjcmVlblkgPSBldmVudC5t
X3BvaW50c1tpXS5zY3JlZW5Qb3NpdGlvbigpLnkoKTsKKyAgICAgICAgICAgICAgICBucFRvdWNo
RXZlbnQucG9pbnRzW2ldLnBhZ2VYID0gZXZlbnQubV9wb2ludHNbaV0ucGl4ZWxWaWV3cG9ydFBv
c2l0aW9uKCkueCgpOworICAgICAgICAgICAgICAgIG5wVG91Y2hFdmVudC5wb2ludHNbaV0ucGFn
ZVkgPSBldmVudC5tX3BvaW50c1tpXS5waXhlbFZpZXdwb3J0UG9zaXRpb24oKS55KCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtNDE5Myw3ICs0MTg1LDcgQEAgYm9vbCBXZWJQYWdl
UHJpdmF0ZTo6ZGlzcGF0Y2hUb3VjaFBvaW50QXNNb3VzZUV2ZW50VG9GdWxsU2NyZWVuUGx1Z2lu
KFBsdWdpblZpZXcKICAgICBOUEV2ZW50IG5wRXZlbnQ7CiAgICAgTlBNb3VzZUV2ZW50IG1vdXNl
OwogCi0gICAgc3dpdGNoIChwb2ludC5tX3N0YXRlKSB7CisgICAgc3dpdGNoIChwb2ludC5zdGF0
ZSgpKSB7CiAgICAgY2FzZSBQbGF0Zm9ybTo6VG91Y2hQb2ludDo6VG91Y2hQcmVzc2VkOgogICAg
ICAgICBtb3VzZS50eXBlID0gTU9VU0VfQlVUVE9OX0RPV047CiAgICAgICAgIGJyZWFrOwpAQCAt
NDIwNyw4ICs0MTk5LDggQEAgYm9vbCBXZWJQYWdlUHJpdmF0ZTo6ZGlzcGF0Y2hUb3VjaFBvaW50
QXNNb3VzZUV2ZW50VG9GdWxsU2NyZWVuUGx1Z2luKFBsdWdpblZpZXcKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCi0gICAgbW91c2UueCA9IHBvaW50Lm1fc2NyZWVuUG9zLngoKTsKLSAg
ICBtb3VzZS55ID0gcG9pbnQubV9zY3JlZW5Qb3MueSgpOworICAgIG1vdXNlLnggPSBwb2ludC5z
Y3JlZW5Qb3NpdGlvbigpLngoKTsKKyAgICBtb3VzZS55ID0gcG9pbnQuc2NyZWVuUG9zaXRpb24o
KS55KCk7CiAgICAgbW91c2UuYnV0dG9uID0gbW91c2UudHlwZSAhPSBNT1VTRV9CVVRUT05fVVA7
CiAgICAgbW91c2UuZmxhZ3MgPSAwOwogICAgIG5wRXZlbnQudHlwZSA9IE5QX01vdXNlRXZlbnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1
dEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5w
dXRIYW5kbGVyLmNwcAppbmRleCA5NThiN2EwMTE5NGE1YzVkNDc3YjQzNzJkOTZmNjJlMTExMDk5
NGYzLi45MzY4OTUzY2EyYWE5MDI4OGQ2NmYzOGJlOGNiY2VlZjNmNDNjYzRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxl
ci5jcHAKQEAgLTcwNyw3ICs3MDcsNyBAQCBTcGVsbENoZWNrZXIqIElucHV0SGFuZGxlcjo6Z2V0
U3BlbGxDaGVja2VyKCkKICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBJbnB1dEhhbmRsZXI6OnNo
b3VsZFJlcXVlc3RTcGVsbENoZWNraW5nT3B0aW9uc0ZvclBvaW50KFBsYXRmb3JtOjpJbnRQb2lu
dCYgcG9pbnQsIGNvbnN0IEVsZW1lbnQqIHRvdWNoZWRFbGVtZW50LCBpbWZfc3BfdGV4dF90JiBz
cGVsbENoZWNraW5nT3B0aW9uUmVxdWVzdCkKK2Jvb2wgSW5wdXRIYW5kbGVyOjpzaG91bGRSZXF1
ZXN0U3BlbGxDaGVja2luZ09wdGlvbnNGb3JQb2ludChjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQm
IGRvY3VtZW50Q29udGVudFBvc2l0aW9uLCBjb25zdCBFbGVtZW50KiB0b3VjaGVkRWxlbWVudCwg
aW1mX3NwX3RleHRfdCYgc3BlbGxDaGVja2luZ09wdGlvblJlcXVlc3QpCiB7CiAgICAgaWYgKCFp
c0FjdGl2ZVRleHRFZGl0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTcyNiw3ICs3MjYs
NyBAQCBib29sIElucHV0SGFuZGxlcjo6c2hvdWxkUmVxdWVzdFNwZWxsQ2hlY2tpbmdPcHRpb25z
Rm9yUG9pbnQoUGxhdGZvcm06OkludFBvaW50JgogICAgIGlmICh0b3VjaGVkRWxlbWVudCAhPSBj
dXJyZW50Rm9jdXNFbGVtZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBMYXlvdXRQ
b2ludCBjb250ZW50UG9zKG1fd2ViUGFnZS0+bWFwRnJvbVZpZXdwb3J0VG9Db250ZW50cyhwb2lu
dCkpOworICAgIExheW91dFBvaW50IGNvbnRlbnRQb3MoZG9jdW1lbnRDb250ZW50UG9zaXRpb24p
OwogICAgIGNvbnRlbnRQb3MgPSBET01TdXBwb3J0Ojpjb252ZXJ0UG9pbnRUb0ZyYW1lKG1fd2Vi
UGFnZS0+bWFpbkZyYW1lKCksIG1fd2ViUGFnZS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCksIHJvdW5k
ZWRJbnRQb2ludChjb250ZW50UG9zKSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjdXJy
ZW50Rm9jdXNFbGVtZW50LT5kb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuaAppbmRleCBiZGIzYWVmYmYwMGEw
ZjBiZmEzZDY3NzhiN2EyMWEyZTUxNzdkOTAyLi4wZGRlZWNmYjNlMDczMWRiNDk5N2MwNTA2NmQy
OWIxMTYwYTgwMzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0
U3VwcG9ydC9JbnB1dEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
S2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuaApAQCAtMTQzLDcgKzE0Myw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNwZWxsQ2hlY2tpbmdSZXF1ZXN0UHJvY2Vzc2VkKGludDMyX3QgdHJhbnNhY3Rpb25J
ZCwgc3Bhbm5hYmxlX3N0cmluZ190Kik7CiAgICAgdm9pZCBzcGVsbENoZWNraW5nUmVxdWVzdENh
bmNlbGxlZChpbnQzMl90IHRyYW5zYWN0aW9uSWQpOwogCi0gICAgYm9vbCBzaG91bGRSZXF1ZXN0
U3BlbGxDaGVja2luZ09wdGlvbnNGb3JQb2ludChQbGF0Zm9ybTo6SW50UG9pbnQmLCBjb25zdCBX
ZWJDb3JlOjpFbGVtZW50KiwgaW1mX3NwX3RleHRfdCYpOworICAgIGJvb2wgc2hvdWxkUmVxdWVz
dFNwZWxsQ2hlY2tpbmdPcHRpb25zRm9yUG9pbnQoY29uc3QgUGxhdGZvcm06OkludFBvaW50JiBk
b2N1bWVudENvbnRlbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGltZl9zcF90
ZXh0X3QmKTsKICAgICB2b2lkIHJlcXVlc3RTcGVsbGluZ0NoZWNraW5nT3B0aW9ucyhpbWZfc3Bf
dGV4dF90JiwgV2ViQ29yZTo6SW50U2l6ZSYgc2NyZWVuT2Zmc2V0LCBjb25zdCBib29sIHNob3Vs
ZE1vdmVEaWFsb2cgPSBmYWxzZSk7CiAgICAgdm9pZCBjbGVhckRpZFNwZWxsQ2hlY2tTdGF0ZSgp
IHsgbV9kaWRTcGVsbENoZWNrV29yZCA9IGZhbHNlOyB9CiAgICAgdm9pZCByZWRyYXdTcGVsbENo
ZWNrRGlhbG9nSWZSZXF1aXJlZChjb25zdCBib29sIHNob3VsZE1vdmVEaWFsb2cgPSB0cnVlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1RvdWNo
RXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0
L1RvdWNoRXZlbnRIYW5kbGVyLmNwcAppbmRleCBkMjAyZGYyY2EyZTQ1ZTFiM2RlMGU0MWY4MjEy
YzMyNDk0MTc3NzMwLi5iNzVjZDcxZjQxNzk4MzU2MDYzMTE1YmFhMjA4N2NlMjUwNDE4NjFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9Ub3VjaEV2
ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvVG91Y2hFdmVudEhhbmRsZXIuY3BwCkBAIC02NiwxMyArNjYsMTIgQEAgVG91Y2hFdmVudEhh
bmRsZXI6On5Ub3VjaEV2ZW50SGFuZGxlcigpCiB7CiB9CiAKLXZvaWQgVG91Y2hFdmVudEhhbmRs
ZXI6OmRvRmF0RmluZ2VycyhQbGF0Zm9ybTo6VG91Y2hQb2ludCYgcG9pbnQpCit2b2lkIFRvdWNo
RXZlbnRIYW5kbGVyOjpkb0ZhdEZpbmdlcnMoY29uc3QgUGxhdGZvcm06OlRvdWNoUG9pbnQmIHBv
aW50KQogewotICAgIG1fbGFzdFNjcmVlblBvaW50ID0gcG9pbnQubV9zY3JlZW5Qb3M7CisgICAg
bV9sYXN0U2NyZWVuUG9pbnQgPSBwb2ludC5zY3JlZW5Qb3NpdGlvbigpOwogICAgIG1fbGFzdEZh
dEZpbmdlcnNSZXN1bHQucmVzZXQoKTsgLy8gVGhlb3JldGljYWxseSB0aGlzIHNob3VsZG4ndCBi
ZSByZXF1aXJlZC4gS2VlcCBpdCBqdXN0IGluIGNhc2Ugc3RhdGVzIGdldCBtYW5nbGVkLgotICAg
IEludFBvaW50IGNvbnRlbnRQb3MobV93ZWJQYWdlLT5tYXBGcm9tVmlld3BvcnRUb0NvbnRlbnRz
KHBvaW50Lm1fcG9zKSk7CiAgICAgbV93ZWJQYWdlLT5wb3N0cG9uZURvY3VtZW50U3R5bGVSZWNh
bGMoKTsKLSAgICBtX2xhc3RGYXRGaW5nZXJzUmVzdWx0ID0gRmF0RmluZ2VycyhtX3dlYlBhZ2Us
IGNvbnRlbnRQb3MsIEZhdEZpbmdlcnM6OkNsaWNrYWJsZUVsZW1lbnQpLmZpbmRCZXN0UG9pbnQo
KTsKKyAgICBtX2xhc3RGYXRGaW5nZXJzUmVzdWx0ID0gRmF0RmluZ2VycyhtX3dlYlBhZ2UsIHBv
aW50LmRvY3VtZW50Q29udGVudFBvc2l0aW9uKCksIEZhdEZpbmdlcnM6OkNsaWNrYWJsZUVsZW1l
bnQpLmZpbmRCZXN0UG9pbnQoKTsKICAgICBtX3dlYlBhZ2UtPnJlc3VtZURvY3VtZW50U3R5bGVS
ZWNhbGMoKTsKIH0KIApAQCAtOTYsNyArOTUsNyBAQCB2b2lkIFRvdWNoRXZlbnRIYW5kbGVyOjpo
YW5kbGVUb3VjaFBvaW50KFBsYXRmb3JtOjpUb3VjaFBvaW50JiBwb2ludCwgdW5zaWduZWQgbQog
ICAgIGJvb2wgYWx0QWN0aXZlID0gbW9kaWZpZXJzICYgS0VZTU9EX0FMVDsKICAgICBib29sIGN0
cmxBY3RpdmUgPSBtb2RpZmllcnMgJiBLRVlNT0RfQ1RSTDsKIAotICAgIHN3aXRjaCAocG9pbnQu
bV9zdGF0ZSkgeworICAgIHN3aXRjaCAocG9pbnQuc3RhdGUoKSkgewogICAgIGNhc2UgUGxhdGZv
cm06OlRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZDoKICAgICAgICAgewogICAgICAgICAgICAgLy8g
Q2xlYXIgc3BlbGxjaGVjayBzdGF0ZSBvbiBhbnkgdG91Y2ggZXZlbnQKQEAgLTExMCw3ICsxMDks
NyBAQCB2b2lkIFRvdWNoRXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaFBvaW50KFBsYXRmb3JtOjpU
b3VjaFBvaW50JiBwb2ludCwgdW5zaWduZWQgbQogICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIHRl
eHQgc2VsZWN0aW9uCiAgICAgICAgICAgICBpZiAobV9sYXN0RmF0RmluZ2Vyc1Jlc3VsdC5pc1Rl
eHRJbnB1dCgpKSB7CiAgICAgICAgICAgICAgICAgZWxlbWVudFVuZGVyRmF0RmluZ2VyID0gbV9s
YXN0RmF0RmluZ2Vyc1Jlc3VsdC5ub2RlQXNFbGVtZW50SWZBcHBsaWNhYmxlKEZhdEZpbmdlcnNS
ZXN1bHQ6OlNoYWRvd0NvbnRlbnROb3RBbGxvd2VkLCB0cnVlIC8qIHNob3VsZFVzZVJvb3RFZGl0
YWJsZUVsZW1lbnQgKi8pOwotICAgICAgICAgICAgICAgIG1fc2hvdWxkUmVxdWVzdFNwZWxsQ2hl
Y2tPcHRpb25zID0gbV93ZWJQYWdlLT5tX2lucHV0SGFuZGxlci0+c2hvdWxkUmVxdWVzdFNwZWxs
Q2hlY2tpbmdPcHRpb25zRm9yUG9pbnQocG9pbnQubV9wb3MsIGVsZW1lbnRVbmRlckZhdEZpbmdl
ciwgbV9zcGVsbENoZWNrT3B0aW9uUmVxdWVzdCk7CisgICAgICAgICAgICAgICAgbV9zaG91bGRS
ZXF1ZXN0U3BlbGxDaGVja09wdGlvbnMgPSBtX3dlYlBhZ2UtPm1faW5wdXRIYW5kbGVyLT5zaG91
bGRSZXF1ZXN0U3BlbGxDaGVja2luZ09wdGlvbnNGb3JQb2ludChwb2ludC5kb2N1bWVudENvbnRl
bnRQb3NpdGlvbigpLCBlbGVtZW50VW5kZXJGYXRGaW5nZXIsIG1fc3BlbGxDaGVja09wdGlvblJl
cXVlc3QpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBoYW5kbGVGYXRGaW5nZXJQcmVz
c2VkKHNoaWZ0QWN0aXZlLCBhbHRBY3RpdmUsIGN0cmxBY3RpdmUpOwpAQCAtMTUyLDggKzE1MSw4
IEBAIHZvaWQgVG91Y2hFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoUG9pbnQoUGxhdGZvcm06OlRv
dWNoUG9pbnQmIHBvaW50LCB1bnNpZ25lZCBtCiAgICAgICAgICAgICBtX3dlYlBhZ2UtPm1faW5w
dXRIYW5kbGVyLT5jbGVhckRpZFNwZWxsQ2hlY2tTdGF0ZSgpOwogCiAgICAgICAgICAgICAvLyBZ
b3UgY2FuIHN0aWxsIHNlbmQgbW91c2UgbW92ZSBldmVudHMKLSAgICAgICAgICAgIFBsYXRmb3Jt
TW91c2VFdmVudCBtb3VzZUV2ZW50KHBvaW50Lm1fcG9zLCBtX2xhc3RTY3JlZW5Qb2ludCwgUGxh
dGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMSwgTGVmdEJ1dHRvbiwgc2hpZnRBY3RpdmUsIGN0cmxB
Y3RpdmUsIGFsdEFjdGl2ZSwgVG91Y2hTY3JlZW4pOwotICAgICAgICAgICAgbV9sYXN0U2NyZWVu
UG9pbnQgPSBwb2ludC5tX3NjcmVlblBvczsKKyAgICAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVu
dCBtb3VzZUV2ZW50KHBvaW50LmRvY3VtZW50Vmlld3BvcnRQb3NpdGlvbigpLCBtX2xhc3RTY3Jl
ZW5Qb2ludCwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMSwgTGVmdEJ1dHRvbiwgc2hpZnRB
Y3RpdmUsIGN0cmxBY3RpdmUsIGFsdEFjdGl2ZSwgVG91Y2hTY3JlZW4pOworICAgICAgICAgICAg
bV9sYXN0U2NyZWVuUG9pbnQgPSBwb2ludC5zY3JlZW5Qb3NpdGlvbigpOwogICAgICAgICAgICAg
bV93ZWJQYWdlLT5oYW5kbGVNb3VzZUV2ZW50KG1vdXNlRXZlbnQpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L1RvdWNoRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9Ub3VjaEV2ZW50SGFuZGxlci5oCmluZGV4IDBhNjFhZjdkNGRlZGY0NjEy
ZjkzY2ExODY5Y2VjY2IxNDhhNjc1YzkuLmZjNjk0NWEzOGVjMzE2M2Y1ZWFhZWVjODE3YjhhMGIw
ZjhkNGQ0NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L1RvdWNoRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvVG91Y2hFdmVudEhhbmRsZXIuaApAQCAtMzUsOCArMzUsOCBAQCBwdWJsaWM6
CiAgICAgVG91Y2hFdmVudEhhbmRsZXIoV2ViUGFnZVByaXZhdGUqIHdlYnBhZ2UpOwogICAgIH5U
b3VjaEV2ZW50SGFuZGxlcigpOwogCi0gICAgdm9pZCBkb0ZhdEZpbmdlcnMoUGxhdGZvcm06OlRv
dWNoUG9pbnQmKTsKLSAgICB2b2lkIGhhbmRsZVRvdWNoUG9pbnQoUGxhdGZvcm06OlRvdWNoUG9p
bnQmLCB1bnNpZ25lZCBtb2RpZmllcnMpOworICAgIHZvaWQgZG9GYXRGaW5nZXJzKGNvbnN0IFBs
YXRmb3JtOjpUb3VjaFBvaW50Jik7CisgICAgdm9pZCBoYW5kbGVUb3VjaFBvaW50KGNvbnN0IFBs
YXRmb3JtOjpUb3VjaFBvaW50JiwgdW5zaWduZWQgbW9kaWZpZXJzKTsKICAgICB2b2lkIHNlbmRD
bGlja0F0RmF0RmluZ2Vyc1BvaW50KHVuc2lnbmVkIG1vZGlmaWVycyA9IDApOwogCiAgICAgY29u
c3QgRmF0RmluZ2Vyc1Jlc3VsdCYgbGFzdEZhdEZpbmdlcnNSZXN1bHQoKSBjb25zdCB7IHJldHVy
biBtX2xhc3RGYXRGaW5nZXJzUmVzdWx0OyB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzAyZjJkYzIwNTViYjE4MTA1ODY5MGE4OWIxN2FhOWNl
MzgyODgwOC4uYzBhNDdjNjUzNTk0MjY5MjI3N2Q2Yzc0ZjZiMTJhMzA4ZTJlOTYxNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDEyLTEyLTE2ICBBcnZpZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KKworICAg
ICAgICBBZGFwdCB0byBuZXcgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9pbnQgQVBJCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUxNDMKKyAg
ICAgICAgUklNIFBSIDE3MTk0MQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb3JnZSBTdGFpa29z
LgorCisgICAgICAgIEFkYXB0IHRvIG5ldyBtZXRob2QgbmFtZXMgYW5kIGVuY2Fwc3VsYXRpb24g
b2YgVG91Y2hQb2ludCBkYXRhIG1lbWJlcnMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9i
bGFja2JlcnJ5L0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKGFkZFRvdWNoUG9pbnRDYWxsYmFj
ayk6CisgICAgICAgICh1cGRhdGVUb3VjaFBvaW50Q2FsbGJhY2spOgorICAgICAgICAodG91Y2hF
bmRDYWxsYmFjayk6CisgICAgICAgIChyZWxlYXNlVG91Y2hQb2ludENhbGxiYWNrKToKKyAgICAg
ICAgKHNlbmRUb3VjaEV2ZW50KToKKwogMjAxMi0xMi0xNSAgTmltYSBHaGFuYXZhdGlhbiAgPG5n
aGFuYXZhdGlhbkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBQYXNzIGtleSBtb2Rp
ZmllcnMgd2l0aCB0b3VjaCBhbmQgbW91c2UgZXZlbnRzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ibGFja2JlcnJ5L0V2ZW50U2VuZGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2JsYWNrYmVycnkvRXZlbnRTZW5kZXIuY3BwCmluZGV4IGUwZDEwYjZlYzBiZWUxZWVjZjdh
YzcwMWFlNDc5MmE2M2VhZDRhYTQuLmEyYzhkZWUyMzU1MjAzMGZhY2U3Zjk1NDIxZmQxMTA1ZmY1
MDVhMGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRXZlbnRT
ZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRXZlbnRTZW5k
ZXIuY3BwCkBAIC0yMjEsMTIgKzIyMSwxNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBhZGRUb3VjaFBv
aW50Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aQogICAg
IGludCB5ID0gc3RhdGljX2Nhc3Q8aW50PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1l
bnRzWzFdLCBleGNlcHRpb24pKTsKICAgICBBU1NFUlQoIWV4Y2VwdGlvbiB8fCAhKmV4Y2VwdGlv
bik7CiAKLSAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQb2ludCB0b3VjaDsKLSAgICB0
b3VjaC5tX2lkID0gdG91Y2hlcy5pc0VtcHR5KCkgPyAwIDogdG91Y2hlcy5sYXN0KCkubV9pZCAr
IDE7CisgICAgaW50IGlkID0gdG91Y2hlcy5pc0VtcHR5KCkgPyAwIDogdG91Y2hlcy5sYXN0KCku
aWQoKSArIDE7CisKKyAgICAvLyBwaXhlbFZpZXdwb3J0UG9zaXRpb24gaXMgdW51c2VkIGluIHRo
ZSBXZWJLaXQgbGF5ZXIsIHNvIHVzZSB0aGlzIGZvciBzY3JlZW4gcG9zaXRpb24KICAgICBJbnRQ
b2ludCBwb3MoeCwgeSk7Ci0gICAgdG91Y2gubV9wb3MgPSBwb3M7Ci0gICAgdG91Y2gubV9zY3Jl
ZW5Qb3MgPSBwb3M7Ci0gICAgdG91Y2gubV9zdGF0ZSA9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpU
b3VjaFBvaW50OjpUb3VjaFByZXNzZWQ7CisKKyAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91
Y2hQb2ludCB0b3VjaChpZCwgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9pbnQ6OlRvdWNo
UHJlc3NlZCwgcG9zLCBwb3MsIDApOworCisgICAgLy8gVW5mb3J0dW5hdGVseSB3ZSBkb24ndCBr
bm93IHRoZSBzY3JvbGwgcG9zaXRpb24gYXQgdGhpcyBwb2ludCwgc28gdXNlIHBvcyBmb3IgdGhl
IGNvbnRlbnQgcG9zaXRpb24gdG9vLgorICAgIC8vIFRoaXMgYXNzdW1lcyBzY3JvbGwgcG9zaXRp
b24gaXMgMCwwCisgICAgdG91Y2gucG9wdWxhdGVEb2N1bWVudFBvc2l0aW9uKHBvcywgcG9zKTsK
IAogICAgIHRvdWNoZXMuYXBwZW5kKHRvdWNoKTsKIApAQCAtMjQ5LDEwICsyNTMsMTUgQEAgc3Rh
dGljIEpTVmFsdWVSZWYgdXBkYXRlVG91Y2hQb2ludENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdW4KICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVk
KGNvbnRleHQpOwogCiAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9pbnQmIHRvdWNo
ID0gdG91Y2hlc1tpbmRleF07CisKKyAgICAvLyBwaXhlbFZpZXdwb3J0UG9zaXRpb24gaXMgdW51
c2VkIGluIHRoZSBXZWJLaXQgbGF5ZXIKICAgICBJbnRQb2ludCBwb3MoeCwgeSk7Ci0gICAgdG91
Y2gubV9wb3MgPSBwb3M7Ci0gICAgdG91Y2gubV9zY3JlZW5Qb3MgPSBwb3M7Ci0gICAgdG91Y2gu
bV9zdGF0ZSA9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpUb3VjaFBvaW50OjpUb3VjaE1vdmVkOwor
CisgICAgLy8gVW5mb3J0dW5hdGVseSB3ZSBkb24ndCBrbm93IHRoZSBzY3JvbGwgcG9zaXRpb24g
YXQgdGhpcyBwb2ludCwgc28gdXNlIHBvcyBmb3IgdGhlIGNvbnRlbnQgcG9zaXRpb24gdG9vLgor
ICAgIC8vIFRoaXMgYXNzdW1lcyBzY3JvbGwgcG9zaXRpb24gaXMgMCwwCisgICAgdG91Y2gucG9w
dWxhdGVEb2N1bWVudFBvc2l0aW9uKHBvcywgcG9zKTsKKyAgICB0b3VjaC5zZXRTY3JlZW5Qb3Np
dGlvbihwb3MpOworICAgIHRvdWNoLnVwZGF0ZVN0YXRlKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpU
b3VjaFBvaW50OjpUb3VjaE1vdmVkKTsKIAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKIH0KQEAgLTI4OCw3ICsyOTcsNyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiB0b3Vj
aE1vdmVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
CiBzdGF0aWMgSlNWYWx1ZVJlZiB0b3VjaEVuZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdG91Y2hlcy5zaXplKCk7
ICsraSkKLSAgICAgICAgaWYgKHRvdWNoZXNbaV0ubV9zdGF0ZSAhPSBCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6VG91Y2hQb2ludDo6VG91Y2hSZWxlYXNlZCkgeworICAgICAgICBpZiAodG91Y2hlc1tp
XS5zdGF0ZSgpICE9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpUb3VjaFBvaW50OjpUb3VjaFJlbGVh
c2VkKSB7CiAgICAgICAgICAgICBzZW5kVG91Y2hFdmVudChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6
VG91Y2hFdmVudDo6VG91Y2hNb3ZlKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKICAgICAgICAgfQpAQCAtMzIwLDcgKzMyOSw3IEBAIHN0YXRpYyBK
U1ZhbHVlUmVmIHJlbGVhc2VUb3VjaFBvaW50Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1CiAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSAoaW50KXRvdWNo
ZXMuc2l6ZSgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
CiAKLSAgICB0b3VjaGVzW2luZGV4XS5tX3N0YXRlID0gQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRv
dWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQ7CisgICAgdG91Y2hlc1tpbmRleF0udXBkYXRlU3RhdGUo
QmxhY2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQpOwogICAgIHJl
dHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIApAQCAtMzM0LDggKzM0Myw4
IEBAIHZvaWQgc2VuZFRvdWNoRXZlbnQoQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoRXZlbnQ6
OlR5cGUgdHlwZSkKICAgICBWZWN0b3I8QmxhY2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9pbnQ+
IHQ7CiAKICAgICBmb3IgKFZlY3RvcjxCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQb2ludD46
Oml0ZXJhdG9yIGl0ID0gdG91Y2hlcy5iZWdpbigpOyBpdCAhPSB0b3VjaGVzLmVuZCgpOyArK2l0
KSB7Ci0gICAgICAgIGlmIChpdC0+bV9zdGF0ZSAhPSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91
Y2hQb2ludDo6VG91Y2hSZWxlYXNlZCkgewotICAgICAgICAgICAgaXQtPm1fc3RhdGUgPSBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5OworICAgICAgICBp
ZiAoaXQtPnN0YXRlKCkgIT0gQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9pbnQ6OlRvdWNo
UmVsZWFzZWQpIHsKKyAgICAgICAgICAgIGl0LT51cGRhdGVTdGF0ZShCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6VG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5KTsKICAgICAgICAgICAgIHQuYXBwZW5k
KCppdCk7CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179691</attachid>
            <date>2012-12-16 23:18:38 -0800</date>
            <delta_ts>2012-12-16 23:38:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105143-20121217081555.patch</filename>
            <type>text/plain</type>
            <size>19264</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3ODQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ExMDMwNjk1YWRmMDkw
ZTc0Y2Q4YmZjODk5MjViOTFhMjUzOTA5OS4uMTg2N2ZlYmE4NzUyODk3MDZjMzg0ODBiMTkyNzU2
ZjllZDc1NDU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEyLTE2ICBBcnZp
ZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gQWRh
cHQgdG8gbmV3IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpUb3VjaFBvaW50IEFQSQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MTQzCisgICAgICAgIFJJ
TSBQUiAxNzE5NDEKKworICAgICAgICBSZXZpZXdlZCBieSBSb2IgQnVpcy4KKyAgICAgICAgSW50
ZXJuYWxseSByZXZpZXdlZCBieSBHZW9yZ2UgU3RhaWtvcy4KKworICAgICAgICBUb3VjaFBvaW50
IGluc3RhbmNlcyBub3cgcHJvdmlkZSBkb2N1bWVudCBjb29yZGluYXRlcyBmb3IgdGhlIHZpZXdw
b3J0CisgICAgICAgIGFuZCBjb250ZW50IHBvc2l0aW9uIG9mIHRoZSB0b3VjaCBldmVudC4gVGhl
IHBpeGVsIGNvb3JkaW5hdGVzIHN0b3JlZAorICAgICAgICBpbiB0aGUgVG91Y2hQb2ludCBzaG91
bGQgbm8gbG9uZ2VyIGJlIG5lZWRlZCBpbiBXZWJLaXQuCisKKyAgICAgICAgQWxzbyBhZGFwdCB0
byBuZXcgbWV0aG9kIG5hbWVzIGFuZCBlbmNhcHN1bGF0aW9uIG9mIFRvdWNoUG9pbnQgZGF0YQor
ICAgICAgICBtZW1iZXJzLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvciwgbm8gbmV3
IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vYmxhY2tiZXJyeS9QbGF0Zm9ybVRvdWNoUG9p
bnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hQb2ludDo6
UGxhdGZvcm1Ub3VjaFBvaW50KToKKwogMjAxMi0xMi0xNiAgTGV2aSBXZWludHJhdWIgIDxsZXZp
d0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUHVzaCBwaXhlbCBzbmFwcGluZyBsb2dpYyBpbnRv
IFRyYW5zZm9ybVN0YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBkYzMwYTg4
MWI1ZmI4MjI0ZjRjZGI4ODA0MWQyNDlhMjE5MWFlODk4Li5mMTYwZGEyY2JiYmZjMmIxNmVlZDM5
ZGYyZGY3N2MzOGI1M2FiNjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxMi0xMi0xNiAgQXJ2aWQgTmlsc3NvbiAgPGFuaWxzc29uQHJpbS5jb20+
CisKKyAgICAgICAgW0JsYWNrQmVycnldIEFkYXB0IHRvIG5ldyBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6VG91Y2hQb2ludCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNTE0MworICAgICAgICBSSU0gUFIgMTcxOTQxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgUm9iIEJ1aXMuCisgICAgICAgIEludGVybmFsbHkgcmV2aWV3ZWQgYnkgR2VvcmdlIFN0
YWlrb3MuCisKKyAgICAgICAgVG91Y2hQb2ludCBpbnN0YW5jZXMgbm93IHByb3ZpZGUgZG9jdW1l
bnQgY29vcmRpbmF0ZXMgZm9yIHRoZSB2aWV3cG9ydAorICAgICAgICBhbmQgY29udGVudCBwb3Np
dGlvbiBvZiB0aGUgdG91Y2ggZXZlbnQuIFRoZSBwaXhlbCBjb29yZGluYXRlcyBzdG9yZWQKKyAg
ICAgICAgaW4gdGhlIFRvdWNoUG9pbnQgc2hvdWxkIG5vIGxvbmdlciBiZSBuZWVkZWQgaW4gV2Vi
S2l0LiBPbmUgZXhjZXB0aW9uCisgICAgICAgIGlzIHdoZW4gcGFzc2luZyBldmVudHMgdG8gYSBm
dWxsIHNjcmVlbiBwbHVnaW4uCisKKyAgICAgICAgQWxzbyBhZGFwdCB0byBuZXcgbWV0aG9kIG5h
bWVzIGFuZCBlbmNhcHN1bGF0aW9uIG9mIFRvdWNoUG9pbnQgZGF0YQorICAgICAgICBtZW1iZXJz
LgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJQYWdlOjp0b3VjaEV2ZW50KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6
V2ViUGFnZTo6dG91Y2hQb2ludEFzTW91c2VFdmVudCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpkaXNwYXRjaFRvdWNoRXZlbnRUb0Z1bGxTY3JlZW5QbHVn
aW4pOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6ZGlzcGF0
Y2hUb3VjaFBvaW50QXNNb3VzZUV2ZW50VG9GdWxsU2NyZWVuUGx1Z2luKToKKyAgICAgICAgKiBX
ZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OklucHV0SGFuZGxlcjo6c2hvdWxkUmVxdWVzdFNwZWxsQ2hlY2tpbmdPcHRpb25zRm9yUG9p
bnQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmg6CisgICAgICAgIChJ
bnB1dEhhbmRsZXIpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvVG91Y2hFdmVudEhhbmRsZXIu
Y3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpUb3VjaEV2ZW50SGFuZGxlcjo6ZG9G
YXRGaW5nZXJzKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6VG91Y2hFdmVudEhhbmRs
ZXI6OmhhbmRsZVRvdWNoUG9pbnQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvVG91Y2hFdmVu
dEhhbmRsZXIuaDoKKyAgICAgICAgKFRvdWNoRXZlbnRIYW5kbGVyKToKKwogMjAxMi0xMi0xNSAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBG
cmFtZUxvYWRlckNsaWVudDo6ZG93bmxvYWQgdG8gY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rv
d25sb2FkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1Bs
YXRmb3JtVG91Y2hQb2ludEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YmxhY2tiZXJyeS9QbGF0Zm9ybVRvdWNoUG9pbnRCbGFja0JlcnJ5LmNwcAppbmRleCBiODQxNzdi
MzkwMTY4NjcyNWRmMjI1MzkyNzY2Njg5MWNmOGUzMDNiLi44YWE2NWE4NWE4NmM4M2MxODhiNjVl
NDZhOWFhZjg5M2U3YThkNjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9i
bGFja2JlcnJ5L1BsYXRmb3JtVG91Y2hQb2ludEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGxhdGZvcm1Ub3VjaFBvaW50QmxhY2tCZXJyeS5j
cHAKQEAgLTI5LDExICsyOSwxNCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQbGF0Zm9ybVRv
dWNoUG9pbnQ6OlBsYXRmb3JtVG91Y2hQb2ludChjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6
VG91Y2hQb2ludCYgcG9pbnQpCi0gICAgOiBtX2lkKHBvaW50Lm1faWQpCi0gICAgLCBtX3NjcmVl
blBvcyhwb2ludC5tX3NjcmVlblBvcykKLSAgICAsIG1fcG9zKHBvaW50Lm1fcG9zKQorICAgIDog
bV9pZChwb2ludC5pZCgpKQorICAgICwgbV9zY3JlZW5Qb3MocG9pbnQuc2NyZWVuUG9zaXRpb24o
KSkKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGNhbGN1bGF0aW5nIGEgbmV3IHZpZXdwb3J0
IHBvc2l0aW9uIGZyb20gdGhlIGN1cnJlbnQgc2Nyb2xsCisgICAgLy8gcG9zaXRpb24gYW5kIHRo
ZSBkb2N1bWVudENvbnRlbnRQb3NpdGlvbiwgaW4gY2FzZSB3ZSBzY3JvbGxlZCBzaW5jZSB0aGUg
cGxhdGZvcm0KKyAgICAvLyBldmVudCB3YXMgY3JlYXRlZC4KKyAgICAsIG1fcG9zKHBvaW50LmRv
Y3VtZW50Vmlld3BvcnRQb3NpdGlvbigpKQogewotICAgIHN3aXRjaCAocG9pbnQubV9zdGF0ZSkg
eworICAgIHN3aXRjaCAocG9pbnQuc3RhdGUoKSkgewogICAgIGNhc2UgQmxhY2tCZXJyeTo6UGxh
dGZvcm06OlRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQ6CiAgICAgICAgIG1fc3RhdGUgPSBUb3Vj
aFJlbGVhc2VkOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
YlBhZ2UuY3BwCmluZGV4IDg3ZDFjMTY3NzJjODRlODIxMTY4ODNjYWZkNzQ5MDc1ODlhYjA3MzMu
LjJiODViOGRkNDQ1YzIwYjQxZWZhMjk3ZThmZWFjYjI1MTcwNGRiZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNDA1OCwxMSArNDA1OCw2IEBAIGJvb2wg
V2ViUGFnZTo6dG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybTo6VG91Y2hFdmVudCYgZXZlbnQpCiAg
ICAgICAgIHJldHVybiBkLT5kaXNwYXRjaFRvdWNoRXZlbnRUb0Z1bGxTY3JlZW5QbHVnaW4ocGx1
Z2luVmlldywgZXZlbnQpOwogCiAgICAgUGxhdGZvcm06OlRvdWNoRXZlbnQgdEV2ZW50ID0gZXZl
bnQ7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGV2ZW50Lm1fcG9pbnRzLnNpemUoKTsg
aSsrKSB7Ci0gICAgICAgIHRFdmVudC5tX3BvaW50c1tpXS5tX3BvcyA9IGQtPm1hcEZyb21UcmFu
c2Zvcm1lZCh0RXZlbnQubV9wb2ludHNbaV0ubV9wb3MpOwotICAgICAgICB0RXZlbnQubV9wb2lu
dHNbaV0ubV9zY3JlZW5Qb3MgPSB0RXZlbnQubV9wb2ludHNbaV0ubV9zY3JlZW5Qb3M7Ci0gICAg
fQotCiAgICAgaWYgKGV2ZW50LmlzU2luZ2xlVGFwKCkpCiAgICAgICAgIGQtPm1fcGx1Z2luTWF5
T3Blbk5ld1RhYiA9IHRydWU7CiAgICAgZWxzZSBpZiAodEV2ZW50Lm1fdHlwZSA9PSBQbGF0Zm9y
bTo6VG91Y2hFdmVudDo6VG91Y2hTdGFydCB8fCB0RXZlbnQubV90eXBlID09IFBsYXRmb3JtOjpU
b3VjaEV2ZW50OjpUb3VjaENhbmNlbCkKQEAgLTQxMzIsMTAgKzQxMjcsNyBAQCB2b2lkIFdlYlBh
Z2U6OnRvdWNoUG9pbnRBc01vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm06OlRvdWNoUG9pbnQmIHBv
aW50LCB1bnNpZ25lZAogCiAgICAgZC0+bV9sYXN0VXNlckV2ZW50VGltZXN0YW1wID0gY3VycmVu
dFRpbWUoKTsKIAotICAgIFBsYXRmb3JtOjpUb3VjaFBvaW50IHRQb2ludCA9IHBvaW50OwotICAg
IHRQb2ludC5tX3BvcyA9IGQtPm1hcEZyb21UcmFuc2Zvcm1lZCh0UG9pbnQubV9wb3MpOwotCi0g
ICAgZC0+bV90b3VjaEV2ZW50SGFuZGxlci0+aGFuZGxlVG91Y2hQb2ludCh0UG9pbnQsIG1vZGlm
aWVycyk7CisgICAgZC0+bV90b3VjaEV2ZW50SGFuZGxlci0+aGFuZGxlVG91Y2hQb2ludChwb2lu
dCwgbW9kaWZpZXJzKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpwbGF5U291bmRJZkFuY2hvcklzVGFy
Z2V0KCkgY29uc3QKQEAgLTQxNjUsMTMgKzQxNTcsMTMgQEAgYm9vbCBXZWJQYWdlUHJpdmF0ZTo6
ZGlzcGF0Y2hUb3VjaEV2ZW50VG9GdWxsU2NyZWVuUGx1Z2luKFBsdWdpblZpZXcqIHBsdWdpbiwg
Y28KICAgICAgICAgaWYgKG5wVG91Y2hFdmVudC5zaXplKSB7CiAgICAgICAgICAgICBucFRvdWNo
RXZlbnQucG9pbnRzID0gbmV3IE5QVG91Y2hQb2ludFtucFRvdWNoRXZlbnQuc2l6ZV07CiAgICAg
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5wVG91Y2hFdmVudC5zaXplOyBpKyspIHsKLSAg
ICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLnRvdWNoSWQgPSBldmVudC5tX3Bv
aW50c1tpXS5tX2lkOwotICAgICAgICAgICAgICAgIG5wVG91Y2hFdmVudC5wb2ludHNbaV0uY2xp
ZW50WCA9IGV2ZW50Lm1fcG9pbnRzW2ldLm1fc2NyZWVuUG9zLngoKTsKLSAgICAgICAgICAgICAg
ICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLmNsaWVudFkgPSBldmVudC5tX3BvaW50c1tpXS5tX3Nj
cmVlblBvcy55KCk7Ci0gICAgICAgICAgICAgICAgbnBUb3VjaEV2ZW50LnBvaW50c1tpXS5zY3Jl
ZW5YID0gZXZlbnQubV9wb2ludHNbaV0ubV9zY3JlZW5Qb3MueCgpOwotICAgICAgICAgICAgICAg
IG5wVG91Y2hFdmVudC5wb2ludHNbaV0uc2NyZWVuWSA9IGV2ZW50Lm1fcG9pbnRzW2ldLm1fc2Ny
ZWVuUG9zLnkoKTsKLSAgICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLnBhZ2VY
ID0gZXZlbnQubV9wb2ludHNbaV0ubV9wb3MueCgpOwotICAgICAgICAgICAgICAgIG5wVG91Y2hF
dmVudC5wb2ludHNbaV0ucGFnZVkgPSBldmVudC5tX3BvaW50c1tpXS5tX3Bvcy55KCk7CisgICAg
ICAgICAgICAgICAgbnBUb3VjaEV2ZW50LnBvaW50c1tpXS50b3VjaElkID0gZXZlbnQubV9wb2lu
dHNbaV0uaWQoKTsKKyAgICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLmNsaWVu
dFggPSBldmVudC5tX3BvaW50c1tpXS5zY3JlZW5Qb3NpdGlvbigpLngoKTsKKyAgICAgICAgICAg
ICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLmNsaWVudFkgPSBldmVudC5tX3BvaW50c1tpXS5z
Y3JlZW5Qb3NpdGlvbigpLnkoKTsKKyAgICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRz
W2ldLnNjcmVlblggPSBldmVudC5tX3BvaW50c1tpXS5zY3JlZW5Qb3NpdGlvbigpLngoKTsKKyAg
ICAgICAgICAgICAgICBucFRvdWNoRXZlbnQucG9pbnRzW2ldLnNjcmVlblkgPSBldmVudC5tX3Bv
aW50c1tpXS5zY3JlZW5Qb3NpdGlvbigpLnkoKTsKKyAgICAgICAgICAgICAgICBucFRvdWNoRXZl
bnQucG9pbnRzW2ldLnBhZ2VYID0gZXZlbnQubV9wb2ludHNbaV0ucGl4ZWxWaWV3cG9ydFBvc2l0
aW9uKCkueCgpOworICAgICAgICAgICAgICAgIG5wVG91Y2hFdmVudC5wb2ludHNbaV0ucGFnZVkg
PSBldmVudC5tX3BvaW50c1tpXS5waXhlbFZpZXdwb3J0UG9zaXRpb24oKS55KCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KIApAQCAtNDE5Myw3ICs0MTg1LDcgQEAgYm9vbCBXZWJQYWdlUHJp
dmF0ZTo6ZGlzcGF0Y2hUb3VjaFBvaW50QXNNb3VzZUV2ZW50VG9GdWxsU2NyZWVuUGx1Z2luKFBs
dWdpblZpZXcKICAgICBOUEV2ZW50IG5wRXZlbnQ7CiAgICAgTlBNb3VzZUV2ZW50IG1vdXNlOwog
Ci0gICAgc3dpdGNoIChwb2ludC5tX3N0YXRlKSB7CisgICAgc3dpdGNoIChwb2ludC5zdGF0ZSgp
KSB7CiAgICAgY2FzZSBQbGF0Zm9ybTo6VG91Y2hQb2ludDo6VG91Y2hQcmVzc2VkOgogICAgICAg
ICBtb3VzZS50eXBlID0gTU9VU0VfQlVUVE9OX0RPV047CiAgICAgICAgIGJyZWFrOwpAQCAtNDIw
Nyw4ICs0MTk5LDggQEAgYm9vbCBXZWJQYWdlUHJpdmF0ZTo6ZGlzcGF0Y2hUb3VjaFBvaW50QXNN
b3VzZUV2ZW50VG9GdWxsU2NyZWVuUGx1Z2luKFBsdWdpblZpZXcKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCi0gICAgbW91c2UueCA9IHBvaW50Lm1fc2NyZWVuUG9zLngoKTsKLSAgICBt
b3VzZS55ID0gcG9pbnQubV9zY3JlZW5Qb3MueSgpOworICAgIG1vdXNlLnggPSBwb2ludC5zY3Jl
ZW5Qb3NpdGlvbigpLngoKTsKKyAgICBtb3VzZS55ID0gcG9pbnQuc2NyZWVuUG9zaXRpb24oKS55
KCk7CiAgICAgbW91c2UuYnV0dG9uID0gbW91c2UudHlwZSAhPSBNT1VTRV9CVVRUT05fVVA7CiAg
ICAgbW91c2UuZmxhZ3MgPSAwOwogICAgIG5wRXZlbnQudHlwZSA9IE5QX01vdXNlRXZlbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRI
YW5kbGVyLmNwcAppbmRleCA5NThiN2EwMTE5NGE1YzVkNDc3YjQzNzJkOTZmNjJlMTExMDk5NGYz
Li45MzY4OTUzY2EyYWE5MDI4OGQ2NmYzOGJlOGNiY2VlZjNmNDNjYzRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5j
cHAKQEAgLTcwNyw3ICs3MDcsNyBAQCBTcGVsbENoZWNrZXIqIElucHV0SGFuZGxlcjo6Z2V0U3Bl
bGxDaGVja2VyKCkKICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBJbnB1dEhhbmRsZXI6OnNob3Vs
ZFJlcXVlc3RTcGVsbENoZWNraW5nT3B0aW9uc0ZvclBvaW50KFBsYXRmb3JtOjpJbnRQb2ludCYg
cG9pbnQsIGNvbnN0IEVsZW1lbnQqIHRvdWNoZWRFbGVtZW50LCBpbWZfc3BfdGV4dF90JiBzcGVs
bENoZWNraW5nT3B0aW9uUmVxdWVzdCkKK2Jvb2wgSW5wdXRIYW5kbGVyOjpzaG91bGRSZXF1ZXN0
U3BlbGxDaGVja2luZ09wdGlvbnNGb3JQb2ludChjb25zdCBQbGF0Zm9ybTo6SW50UG9pbnQmIGRv
Y3VtZW50Q29udGVudFBvc2l0aW9uLCBjb25zdCBFbGVtZW50KiB0b3VjaGVkRWxlbWVudCwgaW1m
X3NwX3RleHRfdCYgc3BlbGxDaGVja2luZ09wdGlvblJlcXVlc3QpCiB7CiAgICAgaWYgKCFpc0Fj
dGl2ZVRleHRFZGl0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTcyNiw3ICs3MjYsNyBA
QCBib29sIElucHV0SGFuZGxlcjo6c2hvdWxkUmVxdWVzdFNwZWxsQ2hlY2tpbmdPcHRpb25zRm9y
UG9pbnQoUGxhdGZvcm06OkludFBvaW50JgogICAgIGlmICh0b3VjaGVkRWxlbWVudCAhPSBjdXJy
ZW50Rm9jdXNFbGVtZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBMYXlvdXRQb2lu
dCBjb250ZW50UG9zKG1fd2ViUGFnZS0+bWFwRnJvbVZpZXdwb3J0VG9Db250ZW50cyhwb2ludCkp
OworICAgIExheW91dFBvaW50IGNvbnRlbnRQb3MoZG9jdW1lbnRDb250ZW50UG9zaXRpb24pOwog
ICAgIGNvbnRlbnRQb3MgPSBET01TdXBwb3J0Ojpjb252ZXJ0UG9pbnRUb0ZyYW1lKG1fd2ViUGFn
ZS0+bWFpbkZyYW1lKCksIG1fd2ViUGFnZS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCksIHJvdW5kZWRJ
bnRQb2ludChjb250ZW50UG9zKSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjdXJyZW50
Rm9jdXNFbGVtZW50LT5kb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuaAppbmRleCBiZGIzYWVmYmYwMGEwZjBi
ZmEzZDY3NzhiN2EyMWEyZTUxNzdkOTAyLi4wZGRlZWNmYjNlMDczMWRiNDk5N2MwNTA2NmQyOWIx
MTYwYTgwMzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9JbnB1dEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0
U3VwcG9ydC9JbnB1dEhhbmRsZXIuaApAQCAtMTQzLDcgKzE0Myw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNwZWxsQ2hlY2tpbmdSZXF1ZXN0UHJvY2Vzc2VkKGludDMyX3QgdHJhbnNhY3Rpb25JZCwg
c3Bhbm5hYmxlX3N0cmluZ190Kik7CiAgICAgdm9pZCBzcGVsbENoZWNraW5nUmVxdWVzdENhbmNl
bGxlZChpbnQzMl90IHRyYW5zYWN0aW9uSWQpOwogCi0gICAgYm9vbCBzaG91bGRSZXF1ZXN0U3Bl
bGxDaGVja2luZ09wdGlvbnNGb3JQb2ludChQbGF0Zm9ybTo6SW50UG9pbnQmLCBjb25zdCBXZWJD
b3JlOjpFbGVtZW50KiwgaW1mX3NwX3RleHRfdCYpOworICAgIGJvb2wgc2hvdWxkUmVxdWVzdFNw
ZWxsQ2hlY2tpbmdPcHRpb25zRm9yUG9pbnQoY29uc3QgUGxhdGZvcm06OkludFBvaW50JiBkb2N1
bWVudENvbnRlbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGltZl9zcF90ZXh0
X3QmKTsKICAgICB2b2lkIHJlcXVlc3RTcGVsbGluZ0NoZWNraW5nT3B0aW9ucyhpbWZfc3BfdGV4
dF90JiwgV2ViQ29yZTo6SW50U2l6ZSYgc2NyZWVuT2Zmc2V0LCBjb25zdCBib29sIHNob3VsZE1v
dmVEaWFsb2cgPSBmYWxzZSk7CiAgICAgdm9pZCBjbGVhckRpZFNwZWxsQ2hlY2tTdGF0ZSgpIHsg
bV9kaWRTcGVsbENoZWNrV29yZCA9IGZhbHNlOyB9CiAgICAgdm9pZCByZWRyYXdTcGVsbENoZWNr
RGlhbG9nSWZSZXF1aXJlZChjb25zdCBib29sIHNob3VsZE1vdmVEaWFsb2cgPSB0cnVlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1RvdWNoRXZl
bnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1Rv
dWNoRXZlbnRIYW5kbGVyLmNwcAppbmRleCBkMjAyZGYyY2EyZTQ1ZTFiM2RlMGU0MWY4MjEyYzMy
NDk0MTc3NzMwLi4wY2ZmNGFhZDVmN2Y4NDZjNGZkYmMyNTljODEwNjY1NTQyZjk2OGQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9Ub3VjaEV2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
VG91Y2hFdmVudEhhbmRsZXIuY3BwCkBAIC02NiwxMyArNjYsMTIgQEAgVG91Y2hFdmVudEhhbmRs
ZXI6On5Ub3VjaEV2ZW50SGFuZGxlcigpCiB7CiB9CiAKLXZvaWQgVG91Y2hFdmVudEhhbmRsZXI6
OmRvRmF0RmluZ2VycyhQbGF0Zm9ybTo6VG91Y2hQb2ludCYgcG9pbnQpCit2b2lkIFRvdWNoRXZl
bnRIYW5kbGVyOjpkb0ZhdEZpbmdlcnMoY29uc3QgUGxhdGZvcm06OlRvdWNoUG9pbnQmIHBvaW50
KQogewotICAgIG1fbGFzdFNjcmVlblBvaW50ID0gcG9pbnQubV9zY3JlZW5Qb3M7CisgICAgbV9s
YXN0U2NyZWVuUG9pbnQgPSBwb2ludC5zY3JlZW5Qb3NpdGlvbigpOwogICAgIG1fbGFzdEZhdEZp
bmdlcnNSZXN1bHQucmVzZXQoKTsgLy8gVGhlb3JldGljYWxseSB0aGlzIHNob3VsZG4ndCBiZSBy
ZXF1aXJlZC4gS2VlcCBpdCBqdXN0IGluIGNhc2Ugc3RhdGVzIGdldCBtYW5nbGVkLgotICAgIElu
dFBvaW50IGNvbnRlbnRQb3MobV93ZWJQYWdlLT5tYXBGcm9tVmlld3BvcnRUb0NvbnRlbnRzKHBv
aW50Lm1fcG9zKSk7CiAgICAgbV93ZWJQYWdlLT5wb3N0cG9uZURvY3VtZW50U3R5bGVSZWNhbGMo
KTsKLSAgICBtX2xhc3RGYXRGaW5nZXJzUmVzdWx0ID0gRmF0RmluZ2VycyhtX3dlYlBhZ2UsIGNv
bnRlbnRQb3MsIEZhdEZpbmdlcnM6OkNsaWNrYWJsZUVsZW1lbnQpLmZpbmRCZXN0UG9pbnQoKTsK
KyAgICBtX2xhc3RGYXRGaW5nZXJzUmVzdWx0ID0gRmF0RmluZ2VycyhtX3dlYlBhZ2UsIHBvaW50
LmRvY3VtZW50Q29udGVudFBvc2l0aW9uKCksIEZhdEZpbmdlcnM6OkNsaWNrYWJsZUVsZW1lbnQp
LmZpbmRCZXN0UG9pbnQoKTsKICAgICBtX3dlYlBhZ2UtPnJlc3VtZURvY3VtZW50U3R5bGVSZWNh
bGMoKTsKIH0KIApAQCAtODcsNyArODYsNyBAQCB2b2lkIFRvdWNoRXZlbnRIYW5kbGVyOjpzZW5k
Q2xpY2tBdEZhdEZpbmdlcnNQb2ludCh1bnNpZ25lZCBtb2RpZmllcnMpCiAgICAgbV93ZWJQYWdl
LT5oYW5kbGVNb3VzZUV2ZW50KG1vdXNlUmVsZWFzZSk7CiB9CiAKLXZvaWQgVG91Y2hFdmVudEhh
bmRsZXI6OmhhbmRsZVRvdWNoUG9pbnQoUGxhdGZvcm06OlRvdWNoUG9pbnQmIHBvaW50LCB1bnNp
Z25lZCBtb2RpZmllcnMpCit2b2lkIFRvdWNoRXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaFBvaW50
KGNvbnN0IFBsYXRmb3JtOjpUb3VjaFBvaW50JiBwb2ludCwgdW5zaWduZWQgbW9kaWZpZXJzKQog
ewogICAgIC8vIEVuYWJsZSBpbnB1dCBtb2RlIG9uIGFueSB0b3VjaCBldmVudC4KICAgICBtX3dl
YlBhZ2UtPm1faW5wdXRIYW5kbGVyLT5zZXRJbnB1dE1vZGVFbmFibGVkKCk7CkBAIC05Niw3ICs5
NSw3IEBAIHZvaWQgVG91Y2hFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoUG9pbnQoUGxhdGZvcm06
OlRvdWNoUG9pbnQmIHBvaW50LCB1bnNpZ25lZCBtCiAgICAgYm9vbCBhbHRBY3RpdmUgPSBtb2Rp
ZmllcnMgJiBLRVlNT0RfQUxUOwogICAgIGJvb2wgY3RybEFjdGl2ZSA9IG1vZGlmaWVycyAmIEtF
WU1PRF9DVFJMOwogCi0gICAgc3dpdGNoIChwb2ludC5tX3N0YXRlKSB7CisgICAgc3dpdGNoIChw
b2ludC5zdGF0ZSgpKSB7CiAgICAgY2FzZSBQbGF0Zm9ybTo6VG91Y2hQb2ludDo6VG91Y2hQcmVz
c2VkOgogICAgICAgICB7CiAgICAgICAgICAgICAvLyBDbGVhciBzcGVsbGNoZWNrIHN0YXRlIG9u
IGFueSB0b3VjaCBldmVudApAQCAtMTEwLDcgKzEwOSw3IEBAIHZvaWQgVG91Y2hFdmVudEhhbmRs
ZXI6OmhhbmRsZVRvdWNoUG9pbnQoUGxhdGZvcm06OlRvdWNoUG9pbnQmIHBvaW50LCB1bnNpZ25l
ZCBtCiAgICAgICAgICAgICAvLyBDaGVjayBmb3IgdGV4dCBzZWxlY3Rpb24KICAgICAgICAgICAg
IGlmIChtX2xhc3RGYXRGaW5nZXJzUmVzdWx0LmlzVGV4dElucHV0KCkpIHsKICAgICAgICAgICAg
ICAgICBlbGVtZW50VW5kZXJGYXRGaW5nZXIgPSBtX2xhc3RGYXRGaW5nZXJzUmVzdWx0Lm5vZGVB
c0VsZW1lbnRJZkFwcGxpY2FibGUoRmF0RmluZ2Vyc1Jlc3VsdDo6U2hhZG93Q29udGVudE5vdEFs
bG93ZWQsIHRydWUgLyogc2hvdWxkVXNlUm9vdEVkaXRhYmxlRWxlbWVudCAqLyk7Ci0gICAgICAg
ICAgICAgICAgbV9zaG91bGRSZXF1ZXN0U3BlbGxDaGVja09wdGlvbnMgPSBtX3dlYlBhZ2UtPm1f
aW5wdXRIYW5kbGVyLT5zaG91bGRSZXF1ZXN0U3BlbGxDaGVja2luZ09wdGlvbnNGb3JQb2ludChw
b2ludC5tX3BvcywgZWxlbWVudFVuZGVyRmF0RmluZ2VyLCBtX3NwZWxsQ2hlY2tPcHRpb25SZXF1
ZXN0KTsKKyAgICAgICAgICAgICAgICBtX3Nob3VsZFJlcXVlc3RTcGVsbENoZWNrT3B0aW9ucyA9
IG1fd2ViUGFnZS0+bV9pbnB1dEhhbmRsZXItPnNob3VsZFJlcXVlc3RTcGVsbENoZWNraW5nT3B0
aW9uc0ZvclBvaW50KHBvaW50LmRvY3VtZW50Q29udGVudFBvc2l0aW9uKCksIGVsZW1lbnRVbmRl
ckZhdEZpbmdlciwgbV9zcGVsbENoZWNrT3B0aW9uUmVxdWVzdCk7CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIGhhbmRsZUZhdEZpbmdlclByZXNzZWQoc2hpZnRBY3RpdmUsIGFsdEFjdGl2
ZSwgY3RybEFjdGl2ZSk7CkBAIC0xNTIsOCArMTUxLDggQEAgdm9pZCBUb3VjaEV2ZW50SGFuZGxl
cjo6aGFuZGxlVG91Y2hQb2ludChQbGF0Zm9ybTo6VG91Y2hQb2ludCYgcG9pbnQsIHVuc2lnbmVk
IG0KICAgICAgICAgICAgIG1fd2ViUGFnZS0+bV9pbnB1dEhhbmRsZXItPmNsZWFyRGlkU3BlbGxD
aGVja1N0YXRlKCk7CiAKICAgICAgICAgICAgIC8vIFlvdSBjYW4gc3RpbGwgc2VuZCBtb3VzZSBt
b3ZlIGV2ZW50cwotICAgICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQocG9p
bnQubV9wb3MsIG1fbGFzdFNjcmVlblBvaW50LCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAx
LCBMZWZ0QnV0dG9uLCBzaGlmdEFjdGl2ZSwgY3RybEFjdGl2ZSwgYWx0QWN0aXZlLCBUb3VjaFNj
cmVlbik7Ci0gICAgICAgICAgICBtX2xhc3RTY3JlZW5Qb2ludCA9IHBvaW50Lm1fc2NyZWVuUG9z
OworICAgICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQocG9pbnQuZG9jdW1l
bnRWaWV3cG9ydFBvc2l0aW9uKCksIG1fbGFzdFNjcmVlblBvaW50LCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZU1vdmVkLCAxLCBMZWZ0QnV0dG9uLCBzaGlmdEFjdGl2ZSwgY3RybEFjdGl2ZSwgYWx0QWN0
aXZlLCBUb3VjaFNjcmVlbik7CisgICAgICAgICAgICBtX2xhc3RTY3JlZW5Qb2ludCA9IHBvaW50
LnNjcmVlblBvc2l0aW9uKCk7CiAgICAgICAgICAgICBtX3dlYlBhZ2UtPmhhbmRsZU1vdXNlRXZl
bnQobW91c2VFdmVudCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvVG91Y2hFdmVudEhhbmRs
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1RvdWNoRXZlbnRI
YW5kbGVyLmgKaW5kZXggMGE2MWFmN2Q0ZGVkZjQ2MTJmOTNjYTE4NjljZWNjYjE0OGE2NzVjOS4u
ZmM2OTQ1YTM4ZWMzMTYzZjVlYWFlZWM4MTdiOGEwYjBmOGQ0ZDQ0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvVG91Y2hFdmVudEhhbmRsZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9Ub3VjaEV2ZW50SGFu
ZGxlci5oCkBAIC0zNSw4ICszNSw4IEBAIHB1YmxpYzoKICAgICBUb3VjaEV2ZW50SGFuZGxlcihX
ZWJQYWdlUHJpdmF0ZSogd2VicGFnZSk7CiAgICAgflRvdWNoRXZlbnRIYW5kbGVyKCk7CiAKLSAg
ICB2b2lkIGRvRmF0RmluZ2VycyhQbGF0Zm9ybTo6VG91Y2hQb2ludCYpOwotICAgIHZvaWQgaGFu
ZGxlVG91Y2hQb2ludChQbGF0Zm9ybTo6VG91Y2hQb2ludCYsIHVuc2lnbmVkIG1vZGlmaWVycyk7
CisgICAgdm9pZCBkb0ZhdEZpbmdlcnMoY29uc3QgUGxhdGZvcm06OlRvdWNoUG9pbnQmKTsKKyAg
ICB2b2lkIGhhbmRsZVRvdWNoUG9pbnQoY29uc3QgUGxhdGZvcm06OlRvdWNoUG9pbnQmLCB1bnNp
Z25lZCBtb2RpZmllcnMpOwogICAgIHZvaWQgc2VuZENsaWNrQXRGYXRGaW5nZXJzUG9pbnQodW5z
aWduZWQgbW9kaWZpZXJzID0gMCk7CiAKICAgICBjb25zdCBGYXRGaW5nZXJzUmVzdWx0JiBsYXN0
RmF0RmluZ2Vyc1Jlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdEZhdEZpbmdlcnNSZXN1bHQ7
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAz
MDJmMmRjMjA1NWJiMTgxMDU4NjkwYTg5YjE3YWE5Y2UzODI4ODA4Li45YzUwZjM3NjAyMTA5NDVm
MTc0NWZhNjc4ZDRkZWY1MTE5MDlmNjFlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMTItMTYgIEFydmlkIE5p
bHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBBZGFwdCB0
byBuZXcgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9pbnQgQVBJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUxNDMKKyAgICAgICAgUklNIFBS
IDE3MTk0MQorCisgICAgICAgIFJldmlld2VkIGJ5IFJvYiBCdWlzLgorICAgICAgICBJbnRlcm5h
bGx5IHJldmlld2VkIGJ5IEdlb3JnZSBTdGFpa29zLgorCisgICAgICAgIEFkYXB0IHRvIG5ldyBt
ZXRob2QgbmFtZXMgYW5kIGVuY2Fwc3VsYXRpb24gb2YgVG91Y2hQb2ludCBkYXRhIG1lbWJlcnMu
CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0V2ZW50U2VuZGVyLmNwcDoK
KyAgICAgICAgKGFkZFRvdWNoUG9pbnRDYWxsYmFjayk6CisgICAgICAgICh1cGRhdGVUb3VjaFBv
aW50Q2FsbGJhY2spOgorICAgICAgICAodG91Y2hFbmRDYWxsYmFjayk6CisgICAgICAgIChyZWxl
YXNlVG91Y2hQb2ludENhbGxiYWNrKToKKyAgICAgICAgKHNlbmRUb3VjaEV2ZW50KToKKwogMjAx
Mi0xMi0xNSAgTmltYSBHaGFuYXZhdGlhbiAgPG5naGFuYXZhdGlhbkByaW0uY29tPgogCiAgICAg
ICAgIFtCbGFja0JlcnJ5XSBQYXNzIGtleSBtb2RpZmllcnMgd2l0aCB0b3VjaCBhbmQgbW91c2Ug
ZXZlbnRzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0V2ZW50
U2VuZGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRXZlbnRTZW5kZXIu
Y3BwCmluZGV4IGUwZDEwYjZlYzBiZWUxZWVjZjdhYzcwMWFlNDc5MmE2M2VhZDRhYTQuLmEyYzhk
ZWUyMzU1MjAzMGZhY2U3Zjk1NDIxZmQxMTA1ZmY1MDVhMGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRXZlbnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2JsYWNrYmVycnkvRXZlbnRTZW5kZXIuY3BwCkBAIC0yMjEsMTIgKzIyMSwxNiBA
QCBzdGF0aWMgSlNWYWx1ZVJlZiBhZGRUb3VjaFBvaW50Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aQogICAgIGludCB5ID0gc3RhdGljX2Nhc3Q8aW50PihK
U1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzFdLCBleGNlcHRpb24pKTsKICAgICBB
U1NFUlQoIWV4Y2VwdGlvbiB8fCAhKmV4Y2VwdGlvbik7CiAKLSAgICBCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6VG91Y2hQb2ludCB0b3VjaDsKLSAgICB0b3VjaC5tX2lkID0gdG91Y2hlcy5pc0VtcHR5
KCkgPyAwIDogdG91Y2hlcy5sYXN0KCkubV9pZCArIDE7CisgICAgaW50IGlkID0gdG91Y2hlcy5p
c0VtcHR5KCkgPyAwIDogdG91Y2hlcy5sYXN0KCkuaWQoKSArIDE7CisKKyAgICAvLyBwaXhlbFZp
ZXdwb3J0UG9zaXRpb24gaXMgdW51c2VkIGluIHRoZSBXZWJLaXQgbGF5ZXIsIHNvIHVzZSB0aGlz
IGZvciBzY3JlZW4gcG9zaXRpb24KICAgICBJbnRQb2ludCBwb3MoeCwgeSk7Ci0gICAgdG91Y2gu
bV9wb3MgPSBwb3M7Ci0gICAgdG91Y2gubV9zY3JlZW5Qb3MgPSBwb3M7Ci0gICAgdG91Y2gubV9z
dGF0ZSA9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpUb3VjaFBvaW50OjpUb3VjaFByZXNzZWQ7CisK
KyAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQb2ludCB0b3VjaChpZCwgQmxhY2tCZXJy
eTo6UGxhdGZvcm06OlRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZCwgcG9zLCBwb3MsIDApOworCisg
ICAgLy8gVW5mb3J0dW5hdGVseSB3ZSBkb24ndCBrbm93IHRoZSBzY3JvbGwgcG9zaXRpb24gYXQg
dGhpcyBwb2ludCwgc28gdXNlIHBvcyBmb3IgdGhlIGNvbnRlbnQgcG9zaXRpb24gdG9vLgorICAg
IC8vIFRoaXMgYXNzdW1lcyBzY3JvbGwgcG9zaXRpb24gaXMgMCwwCisgICAgdG91Y2gucG9wdWxh
dGVEb2N1bWVudFBvc2l0aW9uKHBvcywgcG9zKTsKIAogICAgIHRvdWNoZXMuYXBwZW5kKHRvdWNo
KTsKIApAQCAtMjQ5LDEwICsyNTMsMTUgQEAgc3RhdGljIEpTVmFsdWVSZWYgdXBkYXRlVG91Y2hQ
b2ludENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW4KICAgICAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogCiAgICAgQmxhY2tCZXJy
eTo6UGxhdGZvcm06OlRvdWNoUG9pbnQmIHRvdWNoID0gdG91Y2hlc1tpbmRleF07CisKKyAgICAv
LyBwaXhlbFZpZXdwb3J0UG9zaXRpb24gaXMgdW51c2VkIGluIHRoZSBXZWJLaXQgbGF5ZXIKICAg
ICBJbnRQb2ludCBwb3MoeCwgeSk7Ci0gICAgdG91Y2gubV9wb3MgPSBwb3M7Ci0gICAgdG91Y2gu
bV9zY3JlZW5Qb3MgPSBwb3M7Ci0gICAgdG91Y2gubV9zdGF0ZSA9IEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpUb3VjaFBvaW50OjpUb3VjaE1vdmVkOworCisgICAgLy8gVW5mb3J0dW5hdGVseSB3ZSBk
b24ndCBrbm93IHRoZSBzY3JvbGwgcG9zaXRpb24gYXQgdGhpcyBwb2ludCwgc28gdXNlIHBvcyBm
b3IgdGhlIGNvbnRlbnQgcG9zaXRpb24gdG9vLgorICAgIC8vIFRoaXMgYXNzdW1lcyBzY3JvbGwg
cG9zaXRpb24gaXMgMCwwCisgICAgdG91Y2gucG9wdWxhdGVEb2N1bWVudFBvc2l0aW9uKHBvcywg
cG9zKTsKKyAgICB0b3VjaC5zZXRTY3JlZW5Qb3NpdGlvbihwb3MpOworICAgIHRvdWNoLnVwZGF0
ZVN0YXRlKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpUb3VjaFBvaW50OjpUb3VjaE1vdmVkKTsKIAog
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KQEAgLTI4OCw3ICsy
OTcsNyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiB0b3VjaE1vdmVDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sCiBzdGF0aWMgSlNWYWx1ZVJlZiB0b3VjaEVu
ZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVS
ZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgdG91Y2hlcy5zaXplKCk7ICsraSkKLSAgICAgICAgaWYgKHRvdWNoZXNb
aV0ubV9zdGF0ZSAhPSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQb2ludDo6VG91Y2hSZWxl
YXNlZCkgeworICAgICAgICBpZiAodG91Y2hlc1tpXS5zdGF0ZSgpICE9IEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpUb3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkKSB7CiAgICAgICAgICAgICBzZW5kVG91
Y2hFdmVudChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hFdmVudDo6VG91Y2hNb3ZlKTsKICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKICAgICAgICAg
fQpAQCAtMzIwLDcgKzMyOSw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHJlbGVhc2VUb3VjaFBvaW50
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1CiAgICAgaWYgKGlu
ZGV4IDwgMCB8fCBpbmRleCA+PSAoaW50KXRvdWNoZXMuc2l6ZSgpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiAKLSAgICB0b3VjaGVzW2luZGV4XS5tX3N0
YXRlID0gQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQ7Cisg
ICAgdG91Y2hlc1tpbmRleF0udXBkYXRlU3RhdGUoQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRvdWNo
UG9pbnQ6OlRvdWNoUmVsZWFzZWQpOwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKIH0KIApAQCAtMzM0LDggKzM0Myw4IEBAIHZvaWQgc2VuZFRvdWNoRXZlbnQoQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoRXZlbnQ6OlR5cGUgdHlwZSkKICAgICBWZWN0b3I8Qmxh
Y2tCZXJyeTo6UGxhdGZvcm06OlRvdWNoUG9pbnQ+IHQ7CiAKICAgICBmb3IgKFZlY3RvcjxCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQb2ludD46Oml0ZXJhdG9yIGl0ID0gdG91Y2hlcy5iZWdp
bigpOyBpdCAhPSB0b3VjaGVzLmVuZCgpOyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+bV9zdGF0
ZSAhPSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQb2ludDo6VG91Y2hSZWxlYXNlZCkgewot
ICAgICAgICAgICAgaXQtPm1fc3RhdGUgPSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQb2lu
dDo6VG91Y2hTdGF0aW9uYXJ5OworICAgICAgICBpZiAoaXQtPnN0YXRlKCkgIT0gQmxhY2tCZXJy
eTo6UGxhdGZvcm06OlRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQpIHsKKyAgICAgICAgICAgIGl0
LT51cGRhdGVTdGF0ZShCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQb2ludDo6VG91Y2hTdGF0
aW9uYXJ5KTsKICAgICAgICAgICAgIHQuYXBwZW5kKCppdCk7CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>