<?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>79133</bug_id>
          
          <creation_ts>2012-02-21 11:27:19 -0800</creation_ts>
          <short_desc>[chromium] Notify compositor of wheel event registration via ScrollingCoordinator</short_desc>
          <delta_ts>2012-02-23 18:54:27 -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>
          
          <blocked>79155</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>561073</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-21 11:27:19 -0800</bug_when>
    <thetext>[chromium] Notify compositor of wheel event registration via ScrollingCoordinator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561082</commentid>
    <comment_count>1</comment_count>
      <attachid>128008</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-21 11:30:54 -0800</bug_when>
    <thetext>Created attachment 128008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561235</commentid>
    <comment_count>2</comment_count>
      <attachid>128008</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-21 14:40:02 -0800</bug_when>
    <thetext>Comment on attachment 128008
Patch

Attachment 128008 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11556279

New failing tests:
compositing/checkerboard.html
compositing/geometry/limit-layer-bounds-clipping-ancestor.html
compositing/geometry/foreground-layer.html
compositing/iframes/connect-compositing-iframe-delayed.html
compositing/images/clip-on-directly-composited-image.html
compositing/geometry/clip.html
compositing/iframes/connect-compositing-iframe2.html
compositing/geometry/fixed-position-transform-composited-page-scale.html
compositing/layer-creation/scroll-partial-update.html
accessibility/aria-describedby-on-input.html
compositing/geometry/fixed-position-composited-switch.html
compositing/iframes/become-overlapped-iframe.html
compositing/geometry/layer-due-to-layer-children-switch.html
compositing/geometry/fixed-position-iframe-composited-page-scale.html
compositing/iframes/connect-compositing-iframe3.html
compositing/iframes/enter-compositing-iframe.html
compositing/geometry/layer-due-to-layer-children-deep-switch.html
compositing/geometry/ancestor-overflow-change.html
compositing/layer-creation/overlap-clipping.html
compositing/geometry/fixed-position-composited-page-scale.html
compositing/iframes/connect-compositing-iframe.html
compositing/iframes/become-composited-nested-iframes.html
compositing/layer-creation/overflow-scroll-overlap.html
compositing/layer-creation/overlap-transformed-layer.html
compositing/layer-creation/rotate3d-overlap.html
compositing/layer-creation/overlap-child-layer.html
compositing/geometry/fixed-position-iframe-composited-page-scale-down.html
compositing/iframes/composited-parent-iframe.html
compositing/geometry/fixed-position-transform-composited-page-scale-down.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561259</commentid>
    <comment_count>3</comment_count>
      <attachid>128052</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-21 15:11:07 -0800</bug_when>
    <thetext>Created attachment 128052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561261</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-21 15:12:14 -0800</bug_when>
    <thetext>Test failures due to the setScrollingCompositorEnabled() bit, looks like we are not quite ready for that.  This patch has all the rest of the plumbing and is IMO covered enough by tests for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561398</commentid>
    <comment_count>5</comment_count>
      <attachid>128089</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-21 17:14:26 -0800</bug_when>
    <thetext>Created attachment 128089
rebase to ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563477</commentid>
    <comment_count>6</comment_count>
      <attachid>128089</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-02-23 14:22:24 -0800</bug_when>
    <thetext>Comment on attachment 128089
rebase to ToT

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

LGTM.

&gt; Source/WebCore/page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:58
&gt; +    delete m_private;

It&apos;s too bad OwnPtr doesn&apos;t work on forward-declared classes.  :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563592</commentid>
    <comment_count>7</comment_count>
      <attachid>128089</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-02-23 15:55:53 -0800</bug_when>
    <thetext>Comment on attachment 128089
rebase to ToT

looks pretty. Consider using pimpl thing that Eric and Adam did with HTMLTreeBuilder::ExternalCharacterTokenBuffer. ScrollingCoordinator::ForRealz</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563661</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-23 16:28:32 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 128089 [details])
&gt; looks pretty. Consider using pimpl thing that Eric and Adam did with HTMLTreeBuilder::ExternalCharacterTokenBuffer. ScrollingCoordinator::ForRealz

I&apos;m not sure that will quite work here, since the idea is to avoid exposing the details of ScrollingCoordinatorPrivate to everyone who uses ScrollingCoordinator. I think in a follow-up I&apos;ll look at moving some of the members currently guarded ENABLE(THREADED_SCROLLING) into this private thing, that seems like a good opportunity to see if we can figure out a name that&apos;ll work for everyone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563662</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-23 16:29:33 -0800</bug_when>
    <thetext>Committed r108698: &lt;http://trac.webkit.org/changeset/108698&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563784</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-02-23 18:10:51 -0800</bug_when>
    <thetext>In the future, can you please not put [chromium] on bugs that change cross platform code.  I realize it was only a little cross platform code, but I since it is new and under development, I would still like Anders to be informed and to at least give a once over, new code being added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563819</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-23 18:54:27 -0800</bug_when>
    <thetext>OK, noted.  I didn&apos;t think Anders would really need to see 2 lines of ScrollingCoordinator changes in a 30k patch but will ping him in the future.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128008</attachid>
            <date>2012-02-21 11:30:54 -0800</date>
            <delta_ts>2012-02-21 15:11:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79133-20120221113053.patch</filename>
            <type>text/plain</type>
            <size>32477</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTUyNGFkYjRkNjk0YTdl
ZjI5NjU0ODE4NTU3MmJlOWM0ODcwNzVhZi4uNWFhYmFjYzdkNjMwNTc2NWViMGU3ZWVmZGRlYjRi
OGEzMTEwOWQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTAyLTIxICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBO
b3RpZnkgY29tcG9zaXRvciBvZiB3aGVlbCBldmVudCByZWdpc3RyYXRpb24gdmlhIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTEzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgbm90aWZpZXMgdGhlIGNocm9taXVtIGNvbXBvc2l0b3Igb2YgY2hhbmdlcyB0byB0
aGUgbnVtYmVyIG9mIHdoZWVsIGV2ZW50IGhhbmRsZXJzIHZpYSBTY3JvbGxpbmdDb29yZGluYXRv
cgorICAgICAgICBpbnN0ZWFkIG9mIHRocm91Z2ggQ2hyb21lQ2xpZW50L1dlYlZpZXdJbXBsLiBU
aGlzIGlzIHRoZSBwYXRoIHdlJ2xsIHVzZSBmb3Igb3RoZXIgcHJvcGVydGllcyBpbiB0aGUgZnV0
dXJlIGFuZAorICAgICAgICBpcyBtb3JlIGV4dGVuc2libGUgZm9yIGhhbmRsaW5nIHRoaW5ncyBv
dGhlciB0aGFuIHRoZSByb290IGxheWVyLgorCisgICAgICAgIFByb3BlcnR5IGJlaGF2aW9yIGlz
IGNvdmVyZWQgYnkgbmV3IHVuaXQgdGVzdHMgaW4gTGF5ZXJDaHJvbWl1bVRlc3RzIGFuZCBDQ0xh
eWVyVHJlZUhvc3RJbXBsVGVzdC4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTY3JvbGxpbmdDb29yZGlu
YXRvcik6CisgICAgICAgICAgICBBZGQgYSBTY3JvbGxpbmdDb29yZGluYXRvclByaXZhdGUgc28g
aW1wbGVtZW50YXRpb25zIGNhbiB0YWNrIG9uIGFkZGl0aW9uYWwgZGF0YSB3aXRob3V0IGhhdmlu
ZyB0byAjaWZkZWYgdXAKKyAgICAgICAgICAgIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgvY3BwCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOb25lLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6
On5TY3JvbGxpbmdDb29yZGluYXRvcik6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvY2hyb21p
dW0vU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5jcHA6CisgICAgICAgIChTY3JvbGxpbmdD
b29yZGluYXRvclByaXZhdGUpOgorICAgICAgICAgICAgU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2
YXRlIGluIHRoZSBjaHJvbWl1bSBpbXBsZW1lbnRhdGlvbiBrZWVwcyBhIHJlZmVyZW5jZSB0byB0
aGUgc2Nyb2xsIGxheWVyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cml2YXRlOjpTY3JvbGxpbmdDb29yZGluYXRvclByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2YXRlOjp+U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJpdmF0ZTo6c2V0U2Ny
b2xsTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2YXRl
OjpzY3JvbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
Q29vcmRpbmF0b3I6On5TY3JvbGxpbmdDb29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyRGlk
Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZp
ZXdWZXJ0aWNhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3JvbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdDb29yZGluYXRvcjo6c2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9sbFBhcmFtZXRlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFdoZWVsRXZlbnRIYW5k
bGVyQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNo
b3VsZFVwZGF0ZVNjcm9sbExheWVyUG9zaXRpb25Pbk1haW5UaHJlYWQpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6On5TY3JvbGxp
bmdDb29yZGluYXRvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpMYXllckNo
cm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldEhhdmVXaGVlbEV2
ZW50SGFuZGxlcnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXll
ckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmg6CisgICAgICAgIChMYXllckNocm9taXVtKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0lucHV0SGFuZGxlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpDQ0xheWVySW1wbCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJJbXBsOjpoYXZlV2hlZWxFdmVudEhhbmRsZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJzKToKKyAgICAgICAg
KENDTGF5ZXJJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpD
Q0xheWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpmaW5p
c2hDb21taXRPbkltcGxUaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OkNDTGF5ZXJUcmVl
SG9zdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6c2Nyb2xs
QmVnaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuaDoKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdEltcGwpOgorCiAyMDEyLTAy
LTIxICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFBy
b3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbiB0byBhIGZpbGUgb2YgaXRzIG93bgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCA4ZTI5ODZhY2UwYTc1YjMwZTU3NTdmYTczNDQ2MGM2ZGZk
ZDllMTkyLi4zOWY0OGJlNzJiYzE4YzFhYjhmNmIxNDk0NDA0OGM3MTNlOTdjNmFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAyLTIxICBKYW1lcyBS
b2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBOb3Rp
ZnkgY29tcG9zaXRvciBvZiB3aGVlbCBldmVudCByZWdpc3RyYXRpb24gdmlhIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03OTEzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJpcHMgb3V0IG9sZCB3aGVlbCBldmVudCBub3RpZmljYXRpb24sIGFkZHMgdW5pdCB0ZXN0cyBm
b3IgbmV3IExheWVyQ2hyb21pdW0gcHJvcGVydHksIGFuZCBlbmFibGVzCisgICAgICAgIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yIHdoZW5ldmVyIHRoZSBjb21wb3NpdG9yIGlzIGVuYWJsZWQuCisKKyAg
ICAgICAgKiBzcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRWaWV3cG9ydCk6CisgICAgICAgICogc3Jj
L1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUlucHV0RXZlbnQpOgorICAgICAgICAq
IHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0lt
cGw6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKToKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bnVtYmVyT2ZXaGVl
bEV2ZW50SGFuZGxlcnNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNl
dElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJ
bXBsLmg6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpURVNUX0YpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiB0ZXN0
cy9MYXllckNocm9taXVtVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvV2ViQ29tcG9zaXRvcklu
cHV0SGFuZGxlckltcGxUZXN0LmNwcDoKKwogMjAxMi0wMi0yMSAgWXVyeSBTZW1pa2hhdHNreSAg
PHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIFdlYiBJbnNwZWN0b3I6IHNldCBi
cmVha3BvaW50L3BhdXNlIGRvZXNuJ3Qgd29yayB3aGVuIHdvcmtlciBpcyBpbiBhIHRpZ2h0IGxv
b3AKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcAppbmRleCA4NWIwN2YxODc3ZjYxZDNlNGY0MDkzOTBmYTI0YzFmMDg5YjYw
YzFhLi41ZTllYzdjNGZhNGZlNGI2YWVmZTQxMGVlNjEyN2MxMjRkZTE1YzJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCkBAIC02MSwxNCArNjEsNiBAQCBTY3JvbGxpbmdDb29yZGluYXRvcjo6U2Nyb2xsaW5nQ29v
cmRpbmF0b3IoUGFnZSogcGFnZSkKIHsKIH0KIAotU2Nyb2xsaW5nQ29vcmRpbmF0b3I6On5TY3Jv
bGxpbmdDb29yZGluYXRvcigpCi17Ci0gICAgQVNTRVJUKCFtX3BhZ2UpOwotI2lmIEVOQUJMRShU
SFJFQURFRF9TQ1JPTExJTkcpCi0gICAgQVNTRVJUKCFtX3Njcm9sbGluZ1RyZWUpOwotI2VuZGlm
Ci19Ci0KIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnBhZ2VEZXN0cm95ZWQoKQogewogICAg
IEFTU0VSVChtX3BhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggMjRkNDAxNDk0ZjBjYTkxY2Y0MjZiNTAwNjJk
ODNkY2ZjOGQ2MmNmOC4uN2JkYzZhYmFjNjEwNzQwYTgxYzhjODA1NmE1ZWJmZmY1ZjcyYTJlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5oCkBAIC00OCw2ICs0OCw3IEBAIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBQ
YWdlOwogY2xhc3MgUGxhdGZvcm1XaGVlbEV2ZW50OwogY2xhc3MgUmVnaW9uOworY2xhc3MgU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcml2YXRlOwogY2xhc3MgU2Nyb2xsaW5nVHJlZVN0YXRlOwogCiAj
aWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKQEAgLTEzNyw2ICsxMzgsOCBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxTY3JvbGxpbmdUcmVlPiBtX3Njcm9sbGluZ1RyZWU7CiAgICAgVGltZXI8
U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5nVHJlZVN0YXRlQ29tbWl0dGVyVGltZXI7
CiAjZW5kaWYKKworICAgIFNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJpdmF0ZSogbV9wcml2YXRlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOb25lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTm9uZS5jcHAKaW5kZXggOWJh
MTc5NGZmYmRmMDAyZWEzZDFlNjkwNTlkNTU5MzlhMjUxNjQ1Ny4uZDA2ZDZiYjM0NWY1MDZjY2Yw
ZDIxOTE0OTgxZmFkZjhlYmU2ZGMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOb25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvck5vbmUuY3BwCkBAIC0yOSwxMiAr
MjksMjAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTY3JvbGxpbmdDb29yZGlu
YXRvclByaXZhdGUgeworfTsKKwogI2lmICFFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQogUGFz
c1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0
ZShQYWdlKiBwYWdlKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Nyb2xsaW5nQ29vcmRp
bmF0b3IocGFnZSkpOwogfQogCitTY3JvbGxpbmdDb29yZGluYXRvcjo6flNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKCkKK3sKKyAgICBBU1NFUlQoIW1fcGFnZSk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OmZyYW1lVmlld0hvcml6b250YWxTY3JvbGxiYXJMYXllckRpZENoYW5nZShGcmFt
ZVZpZXcqLCBHcmFwaGljc0xheWVyKikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY2hyb21pdW0vU2Nyb2xsaW5nQ29vcmRp
bmF0b3JDaHJvbWl1bS5jcHAKaW5kZXggMThhNmQ3YzE1MGYyNjc3MDRmMWMyYmZlZmUzZDc0ZTll
ZmRmYTE1MS4uNjIzOTFmMzRmYjIwYmJlN2E1YzUxYTgxYzc0OGM4NjIzYzBhYjk4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY2hyb21pdW0vU2Nyb2xsaW5nQ29v
cmRpbmF0b3JDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
Y2hyb21pdW0vU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5jcHAKQEAgLTI3LDM0ICsyNyw1
NCBAQAogCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKIAorI2luY2x1ZGUgIkxh
eWVyQ2hyb21pdW0uaCIKKyNpbmNsdWRlICJSZWdpb24uaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvclByaXZhdGUgeworV1RGX01BS0VfTk9OQ09Q
WUFCTEUoU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2YXRlKTsKK3B1YmxpYzoKKyAgICBTY3JvbGxp
bmdDb29yZGluYXRvclByaXZhdGUoKSB7IH0KKyAgICB+U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2
YXRlKCkgeyB9CisKKyAgICB2b2lkIHNldFNjcm9sbExheWVyKExheWVyQ2hyb21pdW0qIGxheWVy
KSB7IG1fc2Nyb2xsTGF5ZXIgPSBsYXllcjsgfQorICAgIExheWVyQ2hyb21pdW0qIHNjcm9sbExh
eWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxMYXllci5nZXQoKTsgfQorCitwcml2YXRlOgor
ICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBtX3Njcm9sbExheWVyOworfTsKKwogUGFzc1JlZlB0
cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZShQYWdl
KiBwYWdlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Nyb2xsaW5nQ29vcmRpbmF0b3Io
cGFnZSkpOworICAgIFJlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gY29vcmRpbmF0b3IoYWRv
cHRSZWYobmV3IFNjcm9sbGluZ0Nvb3JkaW5hdG9yKHBhZ2UpKSk7CisgICAgY29vcmRpbmF0b3It
Pm1fcHJpdmF0ZSA9IG5ldyBTY3JvbGxpbmdDb29yZGluYXRvclByaXZhdGU7CisgICAgcmV0dXJu
IGNvb3JkaW5hdG9yLnJlbGVhc2UoKTsKK30KKworU2Nyb2xsaW5nQ29vcmRpbmF0b3I6On5TY3Jv
bGxpbmdDb29yZGluYXRvcigpCit7CisgICAgQVNTRVJUKCFtX3BhZ2UpOworICAgIGRlbGV0ZSBt
X3ByaXZhdGU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld0hvcml6
b250YWxTY3JvbGxiYXJMYXllckRpZENoYW5nZShGcmFtZVZpZXcqLCBHcmFwaGljc0xheWVyKiBo
b3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgLy8gRklYTUU6IEltcGxlbWVudCEKIH0KIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6
ZnJhbWVWaWV3VmVydGljYWxTY3JvbGxiYXJMYXllckRpZENoYW5nZShGcmFtZVZpZXcqLCBHcmFw
aGljc0xheWVyKiB2ZXJ0aWNhbFNjcm9sbGJhckxheWVyKQogewotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQhCiB9CiAKIHZvaWQgU2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OnNldFNjcm9sbExheWVyKEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyKQogewot
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQhCisgICAg
bV9wcml2YXRlLT5zZXRTY3JvbGxMYXllcihzY3JvbGxMYXllciA/IHNjcm9sbExheWVyLT5wbGF0
Zm9ybUxheWVyKCkgOiAwKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0Tm9u
RmFzdFNjcm9sbGFibGVSZWdpb24oY29uc3QgUmVnaW9uJikKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OnNldE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKGNvbnN0IFJlZ2lvbiYgcmVnaW9uKQog
ewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQhCiB9
CiAKQEAgLTYyLDE5ICs4MiwxNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3Jv
bGxQYXJhbWV0ZXJzKFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNjcm9sbAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGhhc0VuYWJsZWRIb3Jp
em9udGFsU2Nyb2xsYmFyLCBib29sIGhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYg
dmlld3BvcnRSZWN0LCBjb25zdCBJbnRTaXplJiBjb250ZW50c1NpemUpCiB7Ci0gICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCEKIH0KIAotdm9pZCBTY3Jv
bGxpbmdDb29yZGluYXRvcjo6c2V0V2hlZWxFdmVudEhhbmRsZXJDb3VudCh1bnNpZ25lZCkKK3Zv
aWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFdoZWVsRXZlbnRIYW5kbGVyQ291bnQodW5zaWdu
ZWQgd2hlZWxFdmVudEhhbmRsZXJDb3VudCkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAvLyBGSVhNRTogSW1wbGVtZW50IQorICAgIGlmIChMYXllckNocm9taXVtKiBsYXllciA9
IG1fcHJpdmF0ZS0+c2Nyb2xsTGF5ZXIoKSkKKyAgICAgICAgbGF5ZXItPnNldEhhdmVXaGVlbEV2
ZW50SGFuZGxlcnMod2hlZWxFdmVudEhhbmRsZXJDb3VudCA+IDApOwogfQogCi12b2lkIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjpzZXRTaG91bGRVcGRhdGVTY3JvbGxMYXllclBvc2l0aW9uT25NYWlu
VGhyZWFkKGJvb2wpCit2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTaG91bGRVcGRhdGVT
Y3JvbGxMYXllclBvc2l0aW9uT25NYWluVGhyZWFkKGJvb2wgc2hvdWxkKQogewotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQhCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29y
ZGluYXRvck1hYy5tbQppbmRleCAzN2UyNjc3N2IzYjMxZGFiNDBkZGEzOGRhYjNjYThlNzk3MTgy
MTI2Li45NDMzNWIwYjI4M2I4NDgyYjE1NWYyZDc1OTgxZWRmOWE1MWIyOGI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yTWFjLm1tCkBAIC00MiwxMSArNDIsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvclByaXZhdGUgeworfTsKKwogUGFzc1JlZlB0
cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZShQYWdl
KiBwYWdlKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Nyb2xsaW5nQ29vcmRpbmF0b3Io
cGFnZSkpOwogfQogCitTY3JvbGxpbmdDb29yZGluYXRvcjo6flNjcm9sbGluZ0Nvb3JkaW5hdG9y
KCkKK3sKKyAgICBBU1NFUlQoIW1fcGFnZSk7CisgICAgQVNTRVJUKCFtX3Njcm9sbGluZ1RyZWUp
OworfQogCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdIb3Jpem9udGFsU2Ny
b2xsYmFyTGF5ZXJEaWRDaGFuZ2UoRnJhbWVWaWV3KiBmcmFtZVZpZXcsIEdyYXBoaWNzTGF5ZXIq
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllckNocm9taXVtLmNwcAppbmRleCA0YmNmMjk3ZmY5MjQ2OGM5ODRmNWI0ZmNj
MTJiZmY1M2IyNjZkNjc0Li4yNTc2YmNhNmNlYTYxZTVhMGRiZDc0ZDQ1MDExN2I1MmNkN2QzMjgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllckNocm9taXVtLmNwcApAQCAtNjAsNiArNjAsNyBAQCBMYXllckNocm9taXVt
OjpMYXllckNocm9taXVtKCkKICAgICAsIG1fbGF5ZXJJZChzX25leHRMYXllcklkKyspCiAgICAg
LCBtX3BhcmVudCgwKQogICAgICwgbV9zY3JvbGxhYmxlKGZhbHNlKQorICAgICwgbV9oYXZlV2hl
ZWxFdmVudEhhbmRsZXJzKGZhbHNlKQogICAgICwgbV9hbmNob3JQb2ludCgwLjUsIDAuNSkKICAg
ICAsIG1fYmFja2dyb3VuZENvbG9yKDAsIDAsIDAsIDApCiAgICAgLCBtX2JhY2tncm91bmRDb3Zl
cnNWaWV3cG9ydChmYWxzZSkKQEAgLTM2OSw2ICszNzAsMTQgQEAgdm9pZCBMYXllckNocm9taXVt
OjpzZXRTY3JvbGxhYmxlKGJvb2wgc2Nyb2xsYWJsZSkKICAgICBzZXROZWVkc0NvbW1pdCgpOwog
fQogCit2b2lkIExheWVyQ2hyb21pdW06OnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoYm9vbCBo
YXZlV2hlZWxFdmVudEhhbmRsZXJzKQoreworICAgIGlmIChtX2hhdmVXaGVlbEV2ZW50SGFuZGxl
cnMgPT0gaGF2ZVdoZWVsRXZlbnRIYW5kbGVycykKKyAgICAgICAgcmV0dXJuOworICAgIG1faGF2
ZVdoZWVsRXZlbnRIYW5kbGVycyA9IGhhdmVXaGVlbEV2ZW50SGFuZGxlcnM7CisgICAgc2V0TmVl
ZHNDb21taXQoKTsKK30KKwogdm9pZCBMYXllckNocm9taXVtOjpzZXREb3VibGVTaWRlZChib29s
IGRvdWJsZVNpZGVkKQogewogICAgIGlmIChtX2RvdWJsZVNpZGVkID09IGRvdWJsZVNpZGVkKQpA
QCAtNDIzLDYgKzQzMiw3IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRpZXNUbyhD
Q0xheWVySW1wbCogbGF5ZXIpCiAgICAgbGF5ZXItPnNldElzTm9uQ29tcG9zaXRlZENvbnRlbnQo
bV9pc05vbkNvbXBvc2l0ZWRDb250ZW50KTsKICAgICBsYXllci0+c2V0TWFza3NUb0JvdW5kcyht
X21hc2tzVG9Cb3VuZHMpOwogICAgIGxheWVyLT5zZXRTY3JvbGxhYmxlKG1fc2Nyb2xsYWJsZSk7
CisgICAgbGF5ZXItPnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMobV9oYXZlV2hlZWxFdmVudEhh
bmRsZXJzKTsKICAgICBsYXllci0+c2V0TmFtZShtX25hbWUpOwogICAgIGxheWVyLT5zZXRPcGFx
dWUobV9vcGFxdWUpOwogICAgIGxheWVyLT5zZXRPcGFjaXR5KG1fb3BhY2l0eSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9t
aXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNo
cm9taXVtLmgKaW5kZXggZmYyZTdkMjg2MjYyMmZhZDJjMDY5MzhkNmY1MjU2OTE0MGY4ODNmYS4u
NWYzNTA0NmYzOWM5NzI5MTA0OGRhOGM0MDExMzQ0M2JmMzBiMGJiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21p
dW0uaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBJbnRQb2ludCYgc2Ny
b2xsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFBvc2l0aW9uOyB9CiAKICAgICB2
b2lkIHNldFNjcm9sbGFibGUoYm9vbCk7Ci0gICAgYm9vbCBzY3JvbGxhYmxlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zY3JvbGxhYmxlOyB9CisgICAgdm9pZCBzZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJz
KGJvb2wpOwogCiAgICAgSW50U2l6ZSBzY3JvbGxEZWx0YSgpIGNvbnN0IHsgcmV0dXJuIEludFNp
emUoKTsgfQogCkBAIC0yNjQsNiArMjY0LDcgQEAgcHJpdmF0ZToKICAgICBJbnRSZWN0IG1fdmlz
aWJsZUxheWVyUmVjdDsKICAgICBJbnRQb2ludCBtX3Njcm9sbFBvc2l0aW9uOwogICAgIGJvb2wg
bV9zY3JvbGxhYmxlOworICAgIGJvb2wgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzOwogICAgIEZs
b2F0UG9pbnQgbV9wb3NpdGlvbjsKICAgICBGbG9hdFBvaW50IG1fYW5jaG9yUG9pbnQ7CiAgICAg
Q29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0lucHV0SGFuZGxlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NJbnB1dEhhbmRsZXIuaAppbmRleCAw
NTdkNzliMWExMTg4YzliMDE5YjFiMzBmN2RkZjYyM2MxMDExMWZlLi42YzA1NTk5NGM1OGVjYTQx
MTMxOWE5Yzk5ZDE0M2Y5YzE3ZjNlMmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0lucHV0SGFuZGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSW5wdXRIYW5kbGVyLmgKQEAg
LTQ2LDEzICs0NiwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzUmVkcmF3
KCkgPSAwOwogCiAgICAgZW51bSBTY3JvbGxTdGF0dXMgeyBTY3JvbGxGYWlsZWQsIFNjcm9sbFN0
YXJ0ZWQsIFNjcm9sbElnbm9yZWQgfTsKKyAgICBlbnVtIFNjcm9sbElucHV0VHlwZSB7IEdlc3R1
cmUsIFdoZWVsIH07CiAKICAgICAvLyBBdHRlbXB0IHRvIHN0YXJ0IHNjcm9sbGluZyBhIGxheWVy
IGF0IGEgZ2l2ZW4gcG9pbnQgaW4gd2luZG93CiAgICAgLy8gY29vcmRpbmF0ZXMuIFJldHVybnMg
U2Nyb2xsU3RhcnRlZCBpZiB0aGUgbGF5ZXIgYXQgdGhlIGNvb3JkaW5hdGVzIGNhbgogICAgIC8v
IGJlIHNjcm9sbGVkLCBTY3JvbGxGYWlsZWQgaWYgdGhlIHNjcm9sbCBldmVudCBzaG91bGQgaW5z
dGVhZCBiZQogICAgIC8vIGRlbGVnYXRlZCB0byB0aGUgbWFpbiB0aHJlYWQsIG9yIFNjcm9sbEln
bm9yZWQgaWYgdGhlcmUgaXMgbm90aGluZyB0bwogICAgIC8vIGJlIHNjcm9sbGVkIGF0IHRoZSBn
aXZlbiBjb29yZGluYXRlcy4KLSAgICB2aXJ0dWFsIFNjcm9sbFN0YXR1cyBzY3JvbGxCZWdpbihj
b25zdCBJbnRQb2ludCYpID0gMDsKKyAgICB2aXJ0dWFsIFNjcm9sbFN0YXR1cyBzY3JvbGxCZWdp
bihjb25zdCBJbnRQb2ludCYsIFNjcm9sbElucHV0VHlwZSkgPSAwOwogCiAgICAgLy8gU2Nyb2xs
IHRoZSBsYXllciBzZWxlY3RlZCB3aXRoIHNjcm9sbEJlZ2luKCkuIElmIHRoZXJlIGlzIG5vIHJv
b20gdG8KICAgICAvLyBtb3ZlIHRoZSBsYXllciBpbiB0aGUgcmVxdWVzdGVkIGRpcmVjdGlvbiwg
aXRzIGZpcnN0IGFuY2VzdG9yIGxheWVyIHRoYXQKQEAgLTY0LDcgKzY1LDYgQEAgcHVibGljOgog
ICAgIC8vIGNhbGxlZCBpZiBzY3JvbGxCZWdpbigpIHJldHVybmVkIFNjcm9sbFN0YXJ0ZWQuCiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbEVuZCgpID0gMDsKIAotICAgIHZpcnR1YWwgYm9vbCBoYXZl
V2hlZWxFdmVudEhhbmRsZXJzKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVC
ZWdpbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGluY2hHZXN0dXJlVXBkYXRlKGZsb2F0IG1h
Z25pZnlEZWx0YSwgY29uc3QgSW50UG9pbnQmIGFuY2hvcikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBwaW5jaEdlc3R1cmVFbmQoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKaW5kZXggYzJi
ZDM0YjBiZmI4ZTkwODc2MzQzMzFkMWNlMjYxZjJhZWJiZGQ2Ni4uZTM4NGUwY2ZkNGZhMTIyMGYx
ZDEzYzYyOTgzMDNkZmVhN2Y2NTZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcApAQCAtNDUs
NiArNDUsNyBAQCBDQ0xheWVySW1wbDo6Q0NMYXllckltcGwoaW50IGlkKQogICAgICwgbV9hbmNo
b3JQb2ludCgwLjUsIDAuNSkKICAgICAsIG1fYW5jaG9yUG9pbnRaKDApCiAgICAgLCBtX3Njcm9s
bGFibGUoZmFsc2UpCisgICAgLCBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMoZmFsc2UpCiAgICAg
LCBtX2JhY2tncm91bmRDb3ZlcnNWaWV3cG9ydChmYWxzZSkKICAgICAsIG1fZG91YmxlU2lkZWQo
dHJ1ZSkKICAgICAsIG1fbGF5ZXJQcm9wZXJ0eUNoYW5nZWQoZmFsc2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllcklt
cGwuaAppbmRleCA5ZTZjNTUwMDdlZTdlMzhkNzVmNjMxMWM5YTBmOGRlZGE3NDc2ZWFjLi45OGRm
OWQ3NzMzZTUwMWI0NTdlOTVlMzUyNjA0OTIzMmFkNDdjNGU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBs
LmgKQEAgLTE4MCw2ICsxODAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBzY3JvbGxhYmxlKCkgY29u
c3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxhYmxlKGJvb2wg
c2Nyb2xsYWJsZSkgeyBtX3Njcm9sbGFibGUgPSBzY3JvbGxhYmxlOyB9CiAKKyAgICBib29sIGhh
dmVXaGVlbEV2ZW50SGFuZGxlcnMoKSBjb25zdCB7IHJldHVybiBtX2hhdmVXaGVlbEV2ZW50SGFu
ZGxlcnM7IH0KKyAgICB2b2lkIHNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoYm9vbCBoYXZlV2hl
ZWxFdmVudEhhbmRsZXJzKSB7IG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyA9IGhhdmVXaGVlbEV2
ZW50SGFuZGxlcnM7IH0KKwogICAgIGNvbnN0IEludFJlY3QmIHZpc2libGVMYXllclJlY3QoKSBj
b25zdCB7IHJldHVybiBtX3Zpc2libGVMYXllclJlY3Q7IH0KICAgICB2b2lkIHNldFZpc2libGVM
YXllclJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZUxheWVyUmVjdCkgeyBtX3Zpc2libGVMYXll
clJlY3QgPSB2aXNpYmxlTGF5ZXJSZWN0OyB9CiAKQEAgLTI0Miw2ICsyNDUsNyBAQCBwcml2YXRl
OgogICAgIEludFNpemUgbV9jb250ZW50Qm91bmRzOwogICAgIEludFBvaW50IG1fc2Nyb2xsUG9z
aXRpb247CiAgICAgYm9vbCBtX3Njcm9sbGFibGU7CisgICAgYm9vbCBtX2hhdmVXaGVlbEV2ZW50
SGFuZGxlcnM7CiAgICAgQ29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7CiAgICAgYm9vbCBtX2JhY2tn
cm91bmRDb3ZlcnNWaWV3cG9ydDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5k
ZXggZTQ2MmU1MzE4YmZjN2YzNzk0ZGE4NjVjZWZmMzNiYWVjNWQyZTUwMS4uMGFmOTJlZjJmM2Fk
MzQ0MjEzNzgzMjY0NTRkMGRkMmI5YjI3ZmM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuY3BwCkBAIC02OCw3ICs2OCw2IEBAIENDTGF5ZXJUcmVlSG9zdDo6Q0NMYXllclRyZWVIb3N0
KENDTGF5ZXJUcmVlSG9zdENsaWVudCogY2xpZW50LCBjb25zdCBDQ1NldHRpbmdzCiAgICAgLCBt
X2xheWVyUmVuZGVyZXJJbml0aWFsaXplZChmYWxzZSkKICAgICAsIG1fc2V0dGluZ3Moc2V0dGlu
Z3MpCiAgICAgLCBtX3Zpc2libGUodHJ1ZSkKLSAgICAsIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVy
cyhmYWxzZSkKICAgICAsIG1fcGFnZVNjYWxlRmFjdG9yKDEpCiAgICAgLCBtX21pblBhZ2VTY2Fs
ZUZhY3RvcigxKQogICAgICwgbV9tYXhQYWdlU2NhbGVGYWN0b3IoMSkKQEAgLTE3Nyw3ICsxNzYs
NiBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6ZmluaXNoQ29tbWl0T25JbXBsVGhyZWFkKENDTGF5
ZXJUcmVlSG9zdEltcGwqIGhvc3RJbXBsKQogICAgICAgICBob3N0SW1wbC0+c2V0Um9vdExheWVy
KDApOwogCiAgICAgaG9zdEltcGwtPnNldFNvdXJjZUZyYW1lTnVtYmVyKGZyYW1lTnVtYmVyKCkp
OwotICAgIGhvc3RJbXBsLT5zZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJzKG1faGF2ZVdoZWVsRXZl
bnRIYW5kbGVycyk7CiAgICAgaG9zdEltcGwtPnNldFZpZXdwb3J0U2l6ZSh2aWV3cG9ydFNpemUo
KSk7CiAgICAgaG9zdEltcGwtPnNldFBhZ2VTY2FsZUZhY3RvckFuZExpbWl0cyhtX3BhZ2VTY2Fs
ZUZhY3RvciwgbV9taW5QYWdlU2NhbGVGYWN0b3IsIG1fbWF4UGFnZVNjYWxlRmFjdG9yKTsKIApA
QCAtMzQwLDE0ICszMzgsNiBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6ZGlkQmVjb21lSW52aXNp
YmxlT25JbXBsVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGhvc3RJbQogICAgICAgICBob3N0
SW1wbC0+c2V0Um9vdExheWVyKDApOwogfQogCi12b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0SGF2
ZVdoZWVsRXZlbnRIYW5kbGVycyhib29sIGhhdmVXaGVlbEV2ZW50SGFuZGxlcnMpCi17Ci0gICAg
aWYgKG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyA9PSBoYXZlV2hlZWxFdmVudEhhbmRsZXJzKQot
ICAgICAgICByZXR1cm47Ci0gICAgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzID0gaGF2ZVdoZWVs
RXZlbnRIYW5kbGVyczsKLSAgICBtX3Byb3h5LT5zZXROZWVkc0NvbW1pdCgpOwotfQotCiB2b2lk
IENDTGF5ZXJUcmVlSG9zdDo6c3RhcnRQYWdlU2NhbGVBbmltYXRpb24oY29uc3QgSW50U2l6ZSYg
dGFyZ2V0UG9zaXRpb24sIGJvb2wgdXNlQW5jaG9yLCBmbG9hdCBzY2FsZSwgZG91YmxlIGR1cmF0
aW9uU2VjKQogewogICAgIG1fcHJveHktPnN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKHRhcmdldFBv
c2l0aW9uLCB1c2VBbmNob3IsIHNjYWxlLCBkdXJhdGlvblNlYyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5oCmluZGV4IGY1ZTExMzRjODFiNDNlMjE4ODZhNWQ5MzUzMGVlODhmMTlhNDAzMjUu
LjZmM2QyZDQ4YzZlYzI2MWU3OTdiNTI4MWJjZjQ4NDU1MDA3ZTEwYTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5oCkBAIC0xODAsOCArMTgwLDYgQEAgcHVibGljOgogICAgIGJvb2wgdmlz
aWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlzaWJsZTsgfQogICAgIHZvaWQgc2V0VmlzaWJsZShi
b29sKTsKIAotICAgIHZvaWQgc2V0SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhib29sKTsKLQogICAg
IC8vIFJldHVybnMgZmFsc2UgaWYgd2Ugc2hvdWxkIGFib3J0IHRoaXMgZnJhbWUgZHVlIHRvIGlu
aXRpYWxpemF0aW9uIGZhaWx1cmUuCiAgICAgYm9vbCB1cGRhdGVMYXllcnMoKTsKIApAQCAtMjM1
LDcgKzIzMyw2IEBAIHByaXZhdGU6CiAKICAgICBJbnRTaXplIG1fdmlld3BvcnRTaXplOwogICAg
IGJvb2wgbV92aXNpYmxlOwotICAgIGJvb2wgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzOwogICAg
IHR5cGVkZWYgSGFzaE1hcDxHcmFwaGljc0NvbnRleHQzRCosIFJlZlB0cjxSYXRlTGltaXRlcj4g
PiBSYXRlTGltaXRlck1hcDsKICAgICBSYXRlTGltaXRlck1hcCBtX3JhdGVMaW1pdGVyczsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAppbmRleCAwNTRiZWIzMmVlNTM1
OWNiYzViYTU0ZjkxYjZhOTZjMTU0MGZmNWI1Li5kZDFhOTVlOWFiMTQzM2E2NGUyZWYxODkzMTU1
NTNiN2I3YTljNzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcApA
QCAtNTIsNyArNTIsNiBAQCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpDQ0xheWVyVHJlZUhvc3RJbXBs
KGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzLCBDQ0xheWVyVHJlZQogICAgICwgbV9mcmFtZU51
bWJlcigwKQogICAgICwgbV9zZXR0aW5ncyhzZXR0aW5ncykKICAgICAsIG1fdmlzaWJsZSh0cnVl
KQotICAgICwgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzKGZhbHNlKQogICAgICwgbV9wYWdlU2Nh
bGUoMSkKICAgICAsIG1fcGFnZVNjYWxlRGVsdGEoMSkKICAgICAsIG1fc2VudFBhZ2VTY2FsZURl
bHRhKDEpCkBAIC00NjYsMTEgKzQ2NSwxOCBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNl
dE5lZWRzUmVkcmF3KCkKICAgICBtX2NsaWVudC0+c2V0TmVlZHNSZWRyYXdPbkltcGxUaHJlYWQo
KTsKIH0KIAotQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXR1cyBDQ0xheWVyVHJlZUhv
c3RJbXBsOjpzY3JvbGxCZWdpbihjb25zdCBJbnRQb2ludCYpCitDQ0lucHV0SGFuZGxlckNsaWVu
dDo6U2Nyb2xsU3RhdHVzIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNjcm9sbEJlZ2luKGNvbnN0IElu
dFBvaW50JiBwb2ludCwgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbElucHV0VHlwZSB0eXBl
KQogewogICAgIC8vIFRPRE86IENoZWNrIGZvciBzY3JvbGxhYmxlIHN1YmxheWVycy4KLSAgICBp
ZiAoIW1fc2Nyb2xsTGF5ZXJJbXBsIHx8ICFtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsYWJsZSgp
KQorICAgIGlmICghbV9zY3JvbGxMYXllckltcGwgfHwgIW1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3Jv
bGxhYmxlKCkpIHsKKyAgICAgICAgVFJBQ0VfRVZFTlQoInNjcm9sbEJlZ2luIElnbm9yZWQgbm8g
c2Nyb2xsYWJsZSIsIHRoaXMsIDApOwogICAgICAgICByZXR1cm4gU2Nyb2xsSWdub3JlZDsKKyAg
ICB9CisKKyAgICBpZiAodHlwZSA9PSBDQ0lucHV0SGFuZGxlckNsaWVudDo6V2hlZWwgJiYgbV9z
Y3JvbGxMYXllckltcGwtPmhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKSkgeworICAgICAgICBUUkFD
RV9FVkVOVCgic2Nyb2xsQmVnaW4gRmFpbGVkIHdoZWVsRXZlbnRIYW5kbGVycyIsIHRoaXMsIDAp
OworICAgICAgICByZXR1cm4gU2Nyb2xsRmFpbGVkOworICAgIH0KIAogICAgIHJldHVybiBTY3Jv
bGxTdGFydGVkOwogfQpAQCAtNDkwLDExICs0OTYsNiBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdElt
cGw6OnNjcm9sbEVuZCgpCiB7CiB9CiAKLWJvb2wgQ0NMYXllclRyZWVIb3N0SW1wbDo6aGF2ZVdo
ZWVsRXZlbnRIYW5kbGVycygpCi17Ci0gICAgcmV0dXJuIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVy
czsKLX0KLQogdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVCZWdpbigpCiB7
CiAgICAgbV9waW5jaEdlc3R1cmVBY3RpdmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0SW1wbC5oCmluZGV4IDg5NDkxNTQyZTQzM2ZhYWZlZjI2NmE0ZWYxYTg5ZDA4MDYwYjlh
ZmQuLmU2NzkxMjcwMDllODQ2NmY2ZjFlMWE5ZTkxMmEyYWQ5Zjk4NDU1NjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKQEAgLTU5LDEwICs1OSw5IEBAIHB1YmxpYzoKIAog
ICAgIC8vIENDSW5wdXRIYW5kbGVyQ2xpZW50IGltcGxlbWVudGF0aW9uCiAgICAgdmlydHVhbCB2
b2lkIHNldE5lZWRzUmVkcmF3KCk7Ci0gICAgdmlydHVhbCBDQ0lucHV0SGFuZGxlckNsaWVudDo6
U2Nyb2xsU3RhdHVzIHNjcm9sbEJlZ2luKGNvbnN0IEludFBvaW50Jik7CisgICAgdmlydHVhbCBD
Q0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVzIHNjcm9sbEJlZ2luKGNvbnN0IEludFBv
aW50JiwgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbElucHV0VHlwZSk7CiAgICAgdmlydHVh
bCB2b2lkIHNjcm9sbEJ5KGNvbnN0IEludFNpemUmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xs
RW5kKCk7Ci0gICAgdmlydHVhbCBib29sIGhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKTsKICAgICB2
aXJ0dWFsIHZvaWQgcGluY2hHZXN0dXJlQmVnaW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgcGluY2hH
ZXN0dXJlVXBkYXRlKGZsb2F0LCBjb25zdCBJbnRQb2ludCYpOwogICAgIHZpcnR1YWwgdm9pZCBw
aW5jaEdlc3R1cmVFbmQoKTsKQEAgLTk4LDcgKzk3LDYgQEAgcHVibGljOgogCiAgICAgYm9vbCB2
aXNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV92aXNpYmxlOyB9CiAgICAgdm9pZCBzZXRWaXNpYmxl
KGJvb2wpOwotICAgIHZvaWQgc2V0SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhib29sIGhhdmVXaGVl
bEV2ZW50SGFuZGxlcnMpIHsgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzID0gaGF2ZVdoZWVsRXZl
bnRIYW5kbGVyczsgfQogCiAgICAgaW50IHNvdXJjZUZyYW1lTnVtYmVyKCkgY29uc3QgeyByZXR1
cm4gbV9zb3VyY2VGcmFtZU51bWJlcjsgfQogICAgIHZvaWQgc2V0U291cmNlRnJhbWVOdW1iZXIo
aW50IGZyYW1lTnVtYmVyKSB7IG1fc291cmNlRnJhbWVOdW1iZXIgPSBmcmFtZU51bWJlcjsgfQpA
QCAtMTQzLDcgKzE0MSw2IEBAIHByaXZhdGU6CiAgICAgQ0NTZXR0aW5ncyBtX3NldHRpbmdzOwog
ICAgIEludFNpemUgbV92aWV3cG9ydFNpemU7CiAgICAgYm9vbCBtX3Zpc2libGU7Ci0gICAgYm9v
bCBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnM7CiAKICAgICBmbG9hdCBtX3BhZ2VTY2FsZTsKICAg
ICBmbG9hdCBtX3BhZ2VTY2FsZURlbHRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKaW5kZXggYzliZTA4YTg0N2E2
ZmJiYmI3OGVhY2FmYzJiM2EwMmYzNGIwYjdiMi4uYmI1NDJhZmNhYzUxNTYwZWQ5N2Q5OWM2NTcw
MGU4Zjc5Y2Y0OWJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9u
Q29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCkBAIC0xMDMsNiArMTAzLDcgQEAgdm9pZCBO
b25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHZpZXdwb3J0U2l6ZSwKIAogICAgIG1fdmlld3BvcnRTaXplID0gdmlld3BvcnRTaXplOwog
ICAgIHNjcm9sbExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKKyAg
ICBzY3JvbGxMYXllcigpLT5zZXRQb3NpdGlvbihXZWJDb3JlOjpGbG9hdFBvaW50KC1zY3JvbGxQ
b3NpdGlvbi54KCksIC1zY3JvbGxQb3NpdGlvbi55KCkpKTsKICAgICAvLyBEdWUgdG8gdGhlIHBv
c3NpYmlsaXR5IG9mIHBpbmNoIHpvb20sIHRoZSBub25jb21wb3NpdGVkIGxheWVyIGlzIGFsd2F5
cwogICAgIC8vIGFzc3VtZWQgdG8gYmUgc2Nyb2xsYWJsZS4KICAgICBzY3JvbGxMYXllcigpLT5z
ZXRTY3JvbGxhYmxlKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwCmluZGV4IDQwYzE1MWRm
ZDE5Yzc4ZTdkY2Q0YWE5Y2NlNTA1NTIxNzU5MzQ0YTMuLjM5NzMwOGI1MjljYzQxNzQ3MTg3Yzdm
ODY3ZDEyMWI5YjIzZmNhZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKQEAgLTEyMSw5ICsx
MjEsOSBAQCB2b2lkIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVJbnB1dEV2
ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGV2ZW50KQogICAgIEFTU0VSVChDQ1Byb3h5Ojppc0lt
cGxUaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKIAotICAgIGlmIChldmVudC50eXBl
ID09IFdlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWwgJiYgIW1faW5wdXRIYW5kbGVyQ2xpZW50LT5o
YXZlV2hlZWxFdmVudEhhbmRsZXJzKCkpIHsKKyAgICBpZiAoZXZlbnQudHlwZSA9PSBXZWJJbnB1
dEV2ZW50OjpNb3VzZVdoZWVsKSB7CiAgICAgICAgIGNvbnN0IFdlYk1vdXNlV2hlZWxFdmVudCYg
d2hlZWxFdmVudCA9ICpzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZVdoZWVsRXZlbnQqPigmZXZl
bnQpOwotICAgICAgICBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVzIHNjcm9sbFN0
YXR1cyA9IG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY3JvbGxCZWdpbihJbnRQb2ludCh3aGVlbEV2
ZW50LngsIHdoZWVsRXZlbnQueSkpOworICAgICAgICBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Ny
b2xsU3RhdHVzIHNjcm9sbFN0YXR1cyA9IG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY3JvbGxCZWdp
bihJbnRQb2ludCh3aGVlbEV2ZW50LngsIHdoZWVsRXZlbnQueSksIENDSW5wdXRIYW5kbGVyQ2xp
ZW50OjpXaGVlbCk7CiAgICAgICAgIHN3aXRjaCAoc2Nyb2xsU3RhdHVzKSB7CiAgICAgICAgIGNh
c2UgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXJ0ZWQ6CiAgICAgICAgICAgICBtX2lu
cHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsQnkoSW50U2l6ZSgtd2hlZWxFdmVudC5kZWx0YVgsIC13
aGVlbEV2ZW50LmRlbHRhWSkpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYg
ZXZlbnQpCiAgICAgICAgIG1fZXhwZWN0U2Nyb2xsVXBkYXRlRW5kID0gdHJ1ZTsKICNlbmRpZgog
ICAgICAgICBjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCA9ICpzdGF0aWNfY2Fz
dDxjb25zdCBXZWJHZXN0dXJlRXZlbnQqPigmZXZlbnQpOwotICAgICAgICBDQ0lucHV0SGFuZGxl
ckNsaWVudDo6U2Nyb2xsU3RhdHVzIHNjcm9sbFN0YXR1cyA9IG1faW5wdXRIYW5kbGVyQ2xpZW50
LT5zY3JvbGxCZWdpbihJbnRQb2ludChnZXN0dXJlRXZlbnQueCwgZ2VzdHVyZUV2ZW50LnkpKTsK
KyAgICAgICAgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXR1cyBzY3JvbGxTdGF0dXMg
PSBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsQmVnaW4oSW50UG9pbnQoZ2VzdHVyZUV2ZW50
LngsIGdlc3R1cmVFdmVudC55KSwgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6Okdlc3R1cmUpOwogICAg
ICAgICBzd2l0Y2ggKHNjcm9sbFN0YXR1cykgewogICAgICAgICBjYXNlIENDSW5wdXRIYW5kbGVy
Q2xpZW50OjpTY3JvbGxTdGFydGVkOgogICAgICAgICAgICAgbV9zY3JvbGxTdGFydGVkID0gdHJ1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCmlu
ZGV4IDkwYmQwMGNjMTk4MTM0ODA2MzlhZGZmNWRlNDkxMWJjZDUwMmFlODguLmE4YjY3Zjg5YjY1
ZDllMDUyN2M0NzkwYTY1MzA0NDhlNjkxZWM0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtMzMxLDYgKzMzMSw3IEBAIHZvaWQgV2Vi
U2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yIGJlaGF2aW9y
KQogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KGJvb2wgZW5hYmxlZCkKIHsKICAgICBtX3NldHRpbmdzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZChlbmFibGVkKTsKKyAgICBtX3NldHRpbmdzLT5zZXRTY3JvbGxpbmdDb29yZGlu
YXRvckVuYWJsZWQoZW5hYmxlZCk7CiB9CiAKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggODBhMWQ5NjhmN2RjODYyZGY5YWIxZTRmZTI1MzcyNjEw
ODZhMTMwZC4uYTlhYzg2ZTZmY2Q3M2EzYjk0MjA1YjA2N2NhNGM4OWY3MGJmMDE0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtOTQ3LDEzICs5NDcs
OCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlU2NhbGVBbmRTY3JvbGxGb3JIaXRSZWN0KGNv
bnN0IFdlYlJlY3QmIGhpdFJlY3QsIEF1dG9abwogCiB2b2lkIFdlYlZpZXdJbXBsOjpudW1iZXJP
ZldoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQgbnVtYmVyT2ZXaGVlbEhhbmRsZXJz
KQogewotICAgIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyA9IG51bWJlck9mV2hlZWxIYW5kbGVy
cyA+IDA7CiAgICAgaWYgKG1fY2xpZW50KQogICAgICAgICBtX2NsaWVudC0+bnVtYmVyT2ZXaGVl
bEV2ZW50SGFuZGxlcnNDaGFuZ2VkKG51bWJlck9mV2hlZWxIYW5kbGVycyk7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCi0gICAgICAg
IG1fbGF5ZXJUcmVlSG9zdC0+c2V0SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhtX2hhdmVXaGVlbEV2
ZW50SGFuZGxlcnMpOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6Om51bWJlck9mVG91
Y2hFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCBudW1iZXJPZlRvdWNoSGFuZGxlcnMpCkBA
IC0zMTc2LDcgKzMxNzEsNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdBY3RpdmUoYm9vbCBhY3RpdmUpCiAKICAgICAgICAgbV9sYXllclRyZWVIb3N0ID0g
Q0NMYXllclRyZWVIb3N0OjpjcmVhdGUodGhpcywgY2NTZXR0aW5ncyk7CiAgICAgICAgIGlmICht
X2xheWVyVHJlZUhvc3QpIHsKLSAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0SGF2ZVdo
ZWVsRXZlbnRIYW5kbGVycyhtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMpOwogICAgICAgICAgICAg
bV9sYXllclRyZWVIb3N0LT5zZXRQYWdlU2NhbGVGYWN0b3JBbmRMaW1pdHMocGFnZVNjYWxlRmFj
dG9yKCksIG1fbWluaW11bVBhZ2VTY2FsZUZhY3RvciwgbV9tYXhpbXVtUGFnZVNjYWxlRmFjdG9y
KTsKICAgICAgICAgICAgIHVwZGF0ZUxheWVyVHJlZVZpZXdwb3J0KCk7CiAgICAgICAgICAgICBt
X2NsaWVudC0+ZGlkQWN0aXZhdGVDb21wb3NpdG9yKG1fbGF5ZXJUcmVlSG9zdC0+Y29tcG9zaXRv
cklkZW50aWZpZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApp
bmRleCBlOGQ1M2JiOTQ1ZTU3NWRiMGE3YjYyM2Q1NzJiN2VlMTE4YmZmNjlhLi4zNTU4YzFkZjY0
OTExMDc1N2ZkMDc4YTViOWYxMTQzMzlhZGEwOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgKQEAgLTY5Miw3ICs2OTIsNiBAQCBwcml2YXRlOgogICAgIC8vIElm
IHRydWUsIHRoZSBncmFwaGljcyBjb250ZXh0IGlzIGJlaW5nIHJlc3RvcmVkLgogICAgIGJvb2wg
bV9yZWNyZWF0aW5nR3JhcGhpY3NDb250ZXh0OwogI2VuZGlmCi0gICAgYm9vbCBtX2hhdmVXaGVl
bEV2ZW50SGFuZGxlcnM7CiAgICAgc3RhdGljIGNvbnN0IFdlYklucHV0RXZlbnQqIG1fY3VycmVu
dElucHV0RXZlbnQ7CiAKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcApp
bmRleCA4MjA3MzNiNDcyMDhjNmVjZmYxN2M4OGEyNTJiM2RkNzhkNmZkZGQxLi40MmIxMzg5NDdk
NjY1ZTlhYWVlZmQ1Y2QyZmQyNTFmYjNkMzE1NzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcApAQCAtMTYz
LDEzICsxNjMsMjggQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBzY3JvbGxSb290
Q2FsbHNDb21taXRBbmRSZWRyYXcpCiAgICAgcm9vdC0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9p
bnQoMCwgMCkpOwogICAgIHJvb3QtPnNldE1heFNjcm9sbFBvc2l0aW9uKEludFNpemUoMTAwLCAx
MDApKTsKICAgICBtX2hvc3RJbXBsLT5zZXRSb290TGF5ZXIocm9vdCk7Ci0gICAgRVhQRUNUX0VR
KG1faG9zdEltcGwtPnNjcm9sbEJlZ2luKEludFBvaW50KDAsIDApKSwgQ0NJbnB1dEhhbmRsZXJD
bGllbnQ6OlNjcm9sbFN0YXJ0ZWQpOworICAgIEVYUEVDVF9FUShtX2hvc3RJbXBsLT5zY3JvbGxC
ZWdpbihJbnRQb2ludCgwLCAwKSwgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OldoZWVsKSwgQ0NJbnB1
dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXJ0ZWQpOwogICAgIG1faG9zdEltcGwtPnNjcm9sbEJ5
KEludFNpemUoMCwgMTApKTsKICAgICBtX2hvc3RJbXBsLT5zY3JvbGxFbmQoKTsKICAgICBFWFBF
Q1RfVFJVRShtX2RpZFJlcXVlc3RSZWRyYXcpOwogICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVxdWVz
dENvbW1pdCk7CiB9CiAKK1RFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgd2hlZWxFdmVu
dEhhbmRsZXJzKQoreworICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gcm9vdCA9IENDTGF5ZXJJbXBs
OjpjcmVhdGUoMCk7CisgICAgcm9vdC0+c2V0U2Nyb2xsYWJsZSh0cnVlKTsKKyAgICByb290LT5z
ZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludCgwLCAwKSk7CisgICAgcm9vdC0+c2V0TWF4U2Nyb2xs
UG9zaXRpb24oSW50U2l6ZSgxMDAsIDEwMCkpOworICAgIG1faG9zdEltcGwtPnNldFJvb3RMYXll
cihyb290KTsKKyAgICByb290LT5zZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJzKHRydWUpOworICAg
IC8vIFdpdGggcmVnaXN0ZXJlZCBldmVudCBoYW5kbGVycywgd2hlZWwgc2Nyb2xscyBoYXZlIHRv
IGdvIHRvIHRoZSBtYWluIHRocmVhZC4KKyAgICBFWFBFQ1RfRVEobV9ob3N0SW1wbC0+c2Nyb2xs
QmVnaW4oSW50UG9pbnQoMCwgMCksIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpXaGVlbCksIENDSW5w
dXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxGYWlsZWQpOworCisgICAgLy8gQnV0IGdlc3R1cmUgc2Ny
b2xscyBjYW4gc3RpbGwgYmUgaGFuZGxlZC4KKyAgICBFWFBFQ1RfRVEobV9ob3N0SW1wbC0+c2Ny
b2xsQmVnaW4oSW50UG9pbnQoMCwgMCksIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpHZXN0dXJlKSwg
Q0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXJ0ZWQpOworfQorCiBURVNUX0YoQ0NMYXll
clRyZWVIb3N0SW1wbFRlc3QsIHBpbmNoR2VzdHVyZSkKIHsKICAgICBzZXR1cFNjcm9sbEFuZENv
bnRlbnRzTGF5ZXJzKEludFNpemUoMTAwLCAxMDApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggZDU1NWE2YjNkNWZjYzBk
NzcxNWZmZGEyY2JmOTFlNjFmOGJiYjgzYi4uMmU5Y2E5NjYxMWNmMjliM2RlZjZhNGMxYTVlMmQz
MDc3NzZiMmIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXll
ckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXll
ckNocm9taXVtVGVzdC5jcHAKQEAgLTUxNSw2ICs1MTUsNyBAQCBURVNUX0YoTGF5ZXJDaHJvbWl1
bVRlc3QsIGNoZWNrUHJvcGVydHlDaGFuZ2VDYXVzZXNDb3JyZWN0QmVoYXZpb3IpCiAgICAgRVhF
Q1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5z
ZXRSZXBsaWNhTGF5ZXIoZHVtbXlMYXllci5nZXQoKSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklG
WV9TRVRfTkVFRFNfQ09NTUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0U3VibGF5ZXJUcmFu
c2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgoMCwgMCwgMCwgMCwgMCwgMCkpKTsKICAgICBFWEVD
VVRFX0FORF9WRVJJRllfU0VUX05FRURTX0NPTU1JVF9CRUhBVklPUigxLCB0ZXN0TGF5ZXItPnNl
dFNjcm9sbGFibGUodHJ1ZSkpOworICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVFRFNfQ09N
TUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyh0cnVl
KSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwg
dGVzdExheWVyLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludCgxMCwgMTApKSk7CiAgICAgRVhF
Q1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5z
ZXRUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgoMCwgMCwgMCwgMCwgMCwgMCkpKTsKICAg
ICBFWEVDVVRFX0FORF9WRVJJRllfU0VUX05FRURTX0NPTU1JVF9CRUhBVklPUigxLCB0ZXN0TGF5
ZXItPnNldERvdWJsZVNpZGVkKGZhbHNlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVz
dC5jcHAKaW5kZXggYWQ1ODEwNTI0ZDY0ZWFkZGU1YTFjMzQ1YzU2ODhhYjJhMWEyZmViZC4uNDU5
MjU1ZTAyYTI4MzMxOWRmYjVlOTI5YThkOGY1ZDk5MzVhNDQ0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGxUZXN0LmNwcApAQCAtNjcsMTQgKzY3LDEzIEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXcoKSBPVkVSUklERSB7IH0KLSAgICB2
aXJ0dWFsIFNjcm9sbFN0YXR1cyBzY3JvbGxCZWdpbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYp
IE9WRVJSSURFCisgICAgdmlydHVhbCBTY3JvbGxTdGF0dXMgc2Nyb2xsQmVnaW4oY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsSW5w
dXRUeXBlKSBPVkVSUklERQogICAgIHsKICAgICAgICAgcmV0dXJuIG1fc2Nyb2xsU3RhdHVzOwog
ICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsQnkoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
IE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxFbmQoKSBPVkVSUklERSB7IH0K
IAotICAgIHZpcnR1YWwgYm9vbCBoYXZlV2hlZWxFdmVudEhhbmRsZXJzKCkgT1ZFUlJJREUgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGluY2hHZXN0dXJlQmVnaW4oKSBPVkVS
UklERQogICAgIHsKICAgICAgICAgbV9waW5jaFN0YXJ0ZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128052</attachid>
            <date>2012-02-21 15:11:07 -0800</date>
            <delta_ts>2012-02-21 17:14:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79133-20120221151106.patch</filename>
            <type>text/plain</type>
            <size>31657</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4Mzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTUyNDU1NjVmNGEyODQ3
ODUzMjU0ZjU0MjY4ZDBmODg1YjUxM2FhNS4uOGY1NmY4Nzk2ZGNlZmU1MDQ0OTQwNjdjMTdjZWUy
ZTkxNDQxNmIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcyIEBACiAyMDEyLTAyLTIxICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW2Nocm9taXVtXSBO
b3RpZnkgY29tcG9zaXRvciBvZiB3aGVlbCBldmVudCByZWdpc3RyYXRpb24gdmlhIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTEzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgbm90aWZpZXMgdGhlIGNocm9taXVtIGNvbXBvc2l0b3Igb2YgY2hhbmdlcyB0byB0
aGUgbnVtYmVyIG9mIHdoZWVsIGV2ZW50IGhhbmRsZXJzIHZpYSBTY3JvbGxpbmdDb29yZGluYXRv
cgorICAgICAgICBpbnN0ZWFkIG9mIHRocm91Z2ggQ2hyb21lQ2xpZW50L1dlYlZpZXdJbXBsLiBU
aGlzIGlzIHRoZSBwYXRoIHdlJ2xsIHVzZSBmb3Igb3RoZXIgcHJvcGVydGllcyBpbiB0aGUgZnV0
dXJlIGFuZAorICAgICAgICBpcyBtb3JlIGV4dGVuc2libGUgZm9yIGhhbmRsaW5nIHRoaW5ncyBv
dGhlciB0aGFuIHRoZSByb290IGxheWVyLgorCisgICAgICAgIFByb3BlcnR5IGJlaGF2aW9yIGlz
IGNvdmVyZWQgYnkgbmV3IHVuaXQgdGVzdHMgaW4gTGF5ZXJDaHJvbWl1bVRlc3RzIGFuZCBDQ0xh
eWVyVHJlZUhvc3RJbXBsVGVzdC4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTY3JvbGxpbmdDb29yZGlu
YXRvcik6CisgICAgICAgICAgICBBZGQgYSBTY3JvbGxpbmdDb29yZGluYXRvclByaXZhdGUgc28g
aW1wbGVtZW50YXRpb25zIGNhbiB0YWNrIG9uIGFkZGl0aW9uYWwgZGF0YSB3aXRob3V0IGhhdmlu
ZyB0byAjaWZkZWYgdXAKKyAgICAgICAgICAgIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgvY3BwCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOb25lLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6
On5TY3JvbGxpbmdDb29yZGluYXRvcik6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvY2hyb21p
dW0vU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5jcHA6CisgICAgICAgIChTY3JvbGxpbmdD
b29yZGluYXRvclByaXZhdGUpOgorICAgICAgICAgICAgU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2
YXRlIGluIHRoZSBjaHJvbWl1bSBpbXBsZW1lbnRhdGlvbiBrZWVwcyBhIHJlZmVyZW5jZSB0byB0
aGUgc2Nyb2xsIGxheWVyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cml2YXRlOjpTY3JvbGxpbmdDb29yZGluYXRvclByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2YXRlOjp+U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJpdmF0ZTo6c2V0U2Ny
b2xsTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2YXRl
OjpzY3JvbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
Q29vcmRpbmF0b3I6On5TY3JvbGxpbmdDb29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyRGlk
Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZp
ZXdWZXJ0aWNhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3JvbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdDb29yZGluYXRvcjo6c2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9sbFBhcmFtZXRlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFdoZWVsRXZlbnRIYW5k
bGVyQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNo
b3VsZFVwZGF0ZVNjcm9sbExheWVyUG9zaXRpb25Pbk1haW5UaHJlYWQpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6On5TY3JvbGxp
bmdDb29yZGluYXRvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpMYXllckNo
cm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldEhhdmVXaGVlbEV2
ZW50SGFuZGxlcnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXll
ckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmg6CisgICAgICAgIChMYXllckNocm9taXVtKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0lucHV0SGFuZGxlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpDQ0xheWVySW1wbCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJJbXBsOjpoYXZlV2hlZWxFdmVudEhhbmRsZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJzKToKKyAgICAgICAg
KENDTGF5ZXJJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpD
Q0xheWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpmaW5p
c2hDb21taXRPbkltcGxUaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OkNDTGF5ZXJUcmVl
SG9zdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6c2Nyb2xs
QmVnaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuaDoKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdEltcGwpOgorCisyMDEyLTAy
LTIxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgVW5y
ZXZpZXdlZCB3aW5kb3dzIGJ1aWxkIGZpeCAtIGF2b2lkIHJldHVybiBzdGF0ZW1lbnQgYWZ0ZXIg
cmV0dXJuIGlmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgaXMgc2V0LgogCiAgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA3YzFjOTQwNTBiY2RkODk1N2M1YWNkZmMxZDkwNWVlYTk4M2M5NmU0
Li42OWUyYmU3OGQ0MmQ3NmYwNDZkYjgxNjViODlkYTY1MmVjMTQ0YmU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAyLTIxICBKYW1lcyBSb2JpbnNv
biAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBOb3RpZnkgY29t
cG9zaXRvciBvZiB3aGVlbCBldmVudCByZWdpc3RyYXRpb24gdmlhIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTEz
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJpcHMg
b3V0IG9sZCB3aGVlbCBldmVudCBub3RpZmljYXRpb24gYW5kIGFkZHMgdW5pdCB0ZXN0cyBmb3Ig
bmV3IExheWVyQ2hyb21pdW0gcHJvcGVydHkuCisKKyAgICAgICAgKiBzcmMvTm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0OjpzZXRWaWV3cG9ydCk6CisgICAgICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRs
ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGw6OmhhbmRsZUlucHV0RXZlbnQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpudW1iZXJPZldoZWVsRXZlbnRIYW5kbGVyc0No
YW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nQWN0aXZlKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAg
KiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRF
U1RfRik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHRlc3RzL0xheWVyQ2hyb21pdW1U
ZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRl
c3QuY3BwOgorCiAyMDEyLTAyLTIxICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBJbmRleGVkREI6IHdlYkZyYW1lIGlzbid0IHRocmVhZHNhZmUsIGRvbid0
IHVzZSBpdCBmcm9tIGEgd29ya2VyIHRocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGQwNWZlODNjODFi
M2VmZWE2NzE3YjhiYmExNjhlMTU3MWVjMjIyMDAuLjBkMjU1NzE2ODZmNzBmZDYyYTBhZDM3MjZm
MzRmNTMwZTliNDY3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTYxLDE0ICs2MSw2IEBAIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKiBwYWdlKQogewogfQogCi1T
Y3JvbGxpbmdDb29yZGluYXRvcjo6flNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkKLXsKLSAgICBBU1NF
UlQoIW1fcGFnZSk7Ci0jaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKLSAgICBBU1NFUlQo
IW1fc2Nyb2xsaW5nVHJlZSk7Ci0jZW5kaWYKLX0KLQogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRv
cjo6cGFnZURlc3Ryb3llZCgpCiB7CiAgICAgQVNTRVJUKG1fcGFnZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCAy
NGQ0MDE0OTRmMGNhOTFjZjQyNmI1MDA2MmQ4M2RjZmM4ZDYyY2Y4Li43YmRjNmFiYWM2MTA3NDBh
ODFjOGM4MDU2YTVlYmZmZjVmNzJhMmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgY2xh
c3MgR3JhcGhpY3NMYXllcjsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBQbGF0Zm9ybVdoZWVsRXZlbnQ7
CiBjbGFzcyBSZWdpb247CitjbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvclByaXZhdGU7CiBjbGFz
cyBTY3JvbGxpbmdUcmVlU3RhdGU7CiAKICNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQpA
QCAtMTM3LDYgKzEzOCw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNjcm9sbGluZ1RyZWU+IG1f
c2Nyb2xsaW5nVHJlZTsKICAgICBUaW1lcjxTY3JvbGxpbmdDb29yZGluYXRvcj4gbV9zY3JvbGxp
bmdUcmVlU3RhdGVDb21taXR0ZXJUaW1lcjsKICNlbmRpZgorCisgICAgU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcml2YXRlKiBtX3ByaXZhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvck5vbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JOb25lLmNwcAppbmRleCA5YmExNzk0ZmZiZGYwMDJlYTNkMWU2OTA1OWQ1NTkzOWEy
NTE2NDU3Li5kMDZkNmJiMzQ1ZjUwNmNjZjBkMjE5MTQ5ODFmYWRmOGViZTZkYzJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvck5v
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yTm9uZS5jcHAKQEAgLTI5LDEyICsyOSwyMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NsYXNzIFNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJpdmF0ZSB7Cit9OworCiAjaWYgIUVOQUJM
RShUSFJFQURFRF9TQ1JPTExJTkcpCiBQYXNzUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBT
Y3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTY3JvbGxpbmdDb29yZGluYXRvcihwYWdlKSk7CiB9CiAKK1Njcm9sbGluZ0Nv
b3JkaW5hdG9yOjp+U2Nyb2xsaW5nQ29vcmRpbmF0b3IoKQoreworICAgIEFTU0VSVCghbV9wYWdl
KTsKK30KKwogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3SG9yaXpvbnRhbFNj
cm9sbGJhckxheWVyRGlkQ2hhbmdlKEZyYW1lVmlldyosIEdyYXBoaWNzTGF5ZXIqKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY2hyb21pdW0vU2Nyb2xs
aW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9jaHJvbWl1bS9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtLmNwcAppbmRleCAxOGE2ZDdj
MTUwZjI2NzcwNGYxYzJiZmVmZTNkNzRlOWVmZGZhMTUxLi5lNTkwMTM4YTYwYzUyYmFjN2EzZjJj
MTUwZGY5MjBkZjM4Y2M1MTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9jaHJvbWl1bS9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdDb29yZGluYXRvckNo
cm9taXVtLmNwcApAQCAtMjcsMzQgKzI3LDU0IEBACiAKICNpbmNsdWRlICJTY3JvbGxpbmdDb29y
ZGluYXRvci5oIgogCisjaW5jbHVkZSAiTGF5ZXJDaHJvbWl1bS5oIgorI2luY2x1ZGUgIlJlZ2lv
bi5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJpdmF0ZSB7CitXVEZfTUFLRV9OT05DT1BZQUJMRShTY3JvbGxpbmdDb29yZGluYXRvclByaXZh
dGUpOworcHVibGljOgorICAgIFNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJpdmF0ZSgpIHsgfQorICAg
IH5TY3JvbGxpbmdDb29yZGluYXRvclByaXZhdGUoKSB7IH0KKworICAgIHZvaWQgc2V0U2Nyb2xs
TGF5ZXIoTGF5ZXJDaHJvbWl1bSogbGF5ZXIpIHsgbV9zY3JvbGxMYXllciA9IGxheWVyOyB9Cisg
ICAgTGF5ZXJDaHJvbWl1bSogc2Nyb2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbExh
eWVyLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IG1fc2Ny
b2xsTGF5ZXI7Cit9OworCiBQYXNzUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBTY3JvbGxp
bmdDb29yZGluYXRvcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTY3JvbGxpbmdDb29yZGluYXRvcihwYWdlKSk7CisgICAgUmVmUHRyPFNjcm9sbGluZ0Nv
b3JkaW5hdG9yPiBjb29yZGluYXRvcihhZG9wdFJlZihuZXcgU2Nyb2xsaW5nQ29vcmRpbmF0b3Io
cGFnZSkpKTsKKyAgICBjb29yZGluYXRvci0+bV9wcml2YXRlID0gbmV3IFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJpdmF0ZTsKKyAgICByZXR1cm4gY29vcmRpbmF0b3IucmVsZWFzZSgpOworfQorCitT
Y3JvbGxpbmdDb29yZGluYXRvcjo6flNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkKK3sKKyAgICBBU1NF
UlQoIW1fcGFnZSk7CisgICAgZGVsZXRlIG1fcHJpdmF0ZTsKIH0KIAogdm9pZCBTY3JvbGxpbmdD
b29yZGluYXRvcjo6ZnJhbWVWaWV3SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKEZy
YW1lVmlldyosIEdyYXBoaWNzTGF5ZXIqIGhvcml6b250YWxTY3JvbGxiYXJMYXllcikKIHsKLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IQogfQogCiB2
b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdWZXJ0aWNhbFNjcm9sbGJhckxheWVy
RGlkQ2hhbmdlKEZyYW1lVmlldyosIEdyYXBoaWNzTGF5ZXIqIHZlcnRpY2FsU2Nyb2xsYmFyTGF5
ZXIpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCEKIH0KIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsTGF5ZXIoR3JhcGhp
Y3NMYXllciogc2Nyb2xsTGF5ZXIpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
Ly8gRklYTUU6IEltcGxlbWVudCEKKyAgICBtX3ByaXZhdGUtPnNldFNjcm9sbExheWVyKHNjcm9s
bExheWVyID8gc2Nyb2xsTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSA6IDApOwogfQogCiB2b2lkIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihjb25zdCBSZWdp
b24mKQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQhCiB9CiAKQEAgLTYyLDE5ICs4MiwxNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpz
ZXRTY3JvbGxQYXJhbWV0ZXJzKFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNjcm9sbAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGhhc0VuYWJs
ZWRIb3Jpem9udGFsU2Nyb2xsYmFyLCBib29sIGhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50
UmVjdCYgdmlld3BvcnRSZWN0LCBjb25zdCBJbnRTaXplJiBjb250ZW50c1NpemUpCiB7Ci0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCEKIH0KIAotdm9p
ZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0V2hlZWxFdmVudEhhbmRsZXJDb3VudCh1bnNpZ25l
ZCkKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFdoZWVsRXZlbnRIYW5kbGVyQ291bnQo
dW5zaWduZWQgd2hlZWxFdmVudEhhbmRsZXJDb3VudCkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IQorICAgIGlmIChMYXllckNocm9taXVtKiBs
YXllciA9IG1fcHJpdmF0ZS0+c2Nyb2xsTGF5ZXIoKSkKKyAgICAgICAgbGF5ZXItPnNldEhhdmVX
aGVlbEV2ZW50SGFuZGxlcnMod2hlZWxFdmVudEhhbmRsZXJDb3VudCA+IDApOwogfQogCi12b2lk
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTaG91bGRVcGRhdGVTY3JvbGxMYXllclBvc2l0aW9u
T25NYWluVGhyZWFkKGJvb2wpCit2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTaG91bGRV
cGRhdGVTY3JvbGxMYXllclBvc2l0aW9uT25NYWluVGhyZWFkKGJvb2wgc2hvdWxkKQogewotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQhCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29y
ZGluYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdDb29yZGluYXRvck1hYy5tbQppbmRleCAzN2UyNjc3N2IzYjMxZGFiNDBkZGEzOGRhYjNjYThl
Nzk3MTgyMTI2Li45NDMzNWIwYjI4M2I4NDgyYjE1NWYyZDc1OTgxZWRmOWE1MWIyOGI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLm1tCkBAIC00MiwxMSArNDIsMTkgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvclByaXZhdGUgeworfTsKKwogUGFz
c1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0
ZShQYWdlKiBwYWdlKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Nyb2xsaW5nQ29vcmRp
bmF0b3IocGFnZSkpOwogfQogCitTY3JvbGxpbmdDb29yZGluYXRvcjo6flNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKCkKK3sKKyAgICBBU1NFUlQoIW1fcGFnZSk7CisgICAgQVNTRVJUKCFtX3Njcm9sbGlu
Z1RyZWUpOworfQogCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdIb3Jpem9u
dGFsU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoRnJhbWVWaWV3KiBmcmFtZVZpZXcsIEdyYXBoaWNz
TGF5ZXIqKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAppbmRleCA0YmNmMjk3ZmY5MjQ2OGM5ODRm
NWI0ZmNjMTJiZmY1M2IyNjZkNjc0Li4yNTc2YmNhNmNlYTYxZTVhMGRiZDc0ZDQ1MDExN2I1MmNk
N2QzMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcApAQCAtNjAsNiArNjAsNyBAQCBMYXllckNo
cm9taXVtOjpMYXllckNocm9taXVtKCkKICAgICAsIG1fbGF5ZXJJZChzX25leHRMYXllcklkKysp
CiAgICAgLCBtX3BhcmVudCgwKQogICAgICwgbV9zY3JvbGxhYmxlKGZhbHNlKQorICAgICwgbV9o
YXZlV2hlZWxFdmVudEhhbmRsZXJzKGZhbHNlKQogICAgICwgbV9hbmNob3JQb2ludCgwLjUsIDAu
NSkKICAgICAsIG1fYmFja2dyb3VuZENvbG9yKDAsIDAsIDAsIDApCiAgICAgLCBtX2JhY2tncm91
bmRDb3ZlcnNWaWV3cG9ydChmYWxzZSkKQEAgLTM2OSw2ICszNzAsMTQgQEAgdm9pZCBMYXllckNo
cm9taXVtOjpzZXRTY3JvbGxhYmxlKGJvb2wgc2Nyb2xsYWJsZSkKICAgICBzZXROZWVkc0NvbW1p
dCgpOwogfQogCit2b2lkIExheWVyQ2hyb21pdW06OnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMo
Ym9vbCBoYXZlV2hlZWxFdmVudEhhbmRsZXJzKQoreworICAgIGlmIChtX2hhdmVXaGVlbEV2ZW50
SGFuZGxlcnMgPT0gaGF2ZVdoZWVsRXZlbnRIYW5kbGVycykKKyAgICAgICAgcmV0dXJuOworICAg
IG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyA9IGhhdmVXaGVlbEV2ZW50SGFuZGxlcnM7CisgICAg
c2V0TmVlZHNDb21taXQoKTsKK30KKwogdm9pZCBMYXllckNocm9taXVtOjpzZXREb3VibGVTaWRl
ZChib29sIGRvdWJsZVNpZGVkKQogewogICAgIGlmIChtX2RvdWJsZVNpZGVkID09IGRvdWJsZVNp
ZGVkKQpAQCAtNDIzLDYgKzQzMiw3IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRp
ZXNUbyhDQ0xheWVySW1wbCogbGF5ZXIpCiAgICAgbGF5ZXItPnNldElzTm9uQ29tcG9zaXRlZENv
bnRlbnQobV9pc05vbkNvbXBvc2l0ZWRDb250ZW50KTsKICAgICBsYXllci0+c2V0TWFza3NUb0Jv
dW5kcyhtX21hc2tzVG9Cb3VuZHMpOwogICAgIGxheWVyLT5zZXRTY3JvbGxhYmxlKG1fc2Nyb2xs
YWJsZSk7CisgICAgbGF5ZXItPnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMobV9oYXZlV2hlZWxF
dmVudEhhbmRsZXJzKTsKICAgICBsYXllci0+c2V0TmFtZShtX25hbWUpOwogICAgIGxheWVyLT5z
ZXRPcGFxdWUobV9vcGFxdWUpOwogICAgIGxheWVyLT5zZXRPcGFjaXR5KG1fb3BhY2l0eSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmgKaW5kZXggZmYyZTdkMjg2MjYyMmZhZDJjMDY5MzhkNmY1MjU2OTE0MGY4
ODNmYS4uNWYzNTA0NmYzOWM5NzI5MTA0OGRhOGM0MDExMzQ0M2JmMzBiMGJiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
Q2hyb21pdW0uaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBJbnRQb2lu
dCYgc2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFBvc2l0aW9uOyB9CiAK
ICAgICB2b2lkIHNldFNjcm9sbGFibGUoYm9vbCk7Ci0gICAgYm9vbCBzY3JvbGxhYmxlKCkgY29u
c3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlOyB9CisgICAgdm9pZCBzZXRIYXZlV2hlZWxFdmVudEhh
bmRsZXJzKGJvb2wpOwogCiAgICAgSW50U2l6ZSBzY3JvbGxEZWx0YSgpIGNvbnN0IHsgcmV0dXJu
IEludFNpemUoKTsgfQogCkBAIC0yNjQsNiArMjY0LDcgQEAgcHJpdmF0ZToKICAgICBJbnRSZWN0
IG1fdmlzaWJsZUxheWVyUmVjdDsKICAgICBJbnRQb2ludCBtX3Njcm9sbFBvc2l0aW9uOwogICAg
IGJvb2wgbV9zY3JvbGxhYmxlOworICAgIGJvb2wgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzOwog
ICAgIEZsb2F0UG9pbnQgbV9wb3NpdGlvbjsKICAgICBGbG9hdFBvaW50IG1fYW5jaG9yUG9pbnQ7
CiAgICAgQ29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0lucHV0SGFuZGxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NJbnB1dEhhbmRsZXIuaApp
bmRleCAwNTdkNzliMWExMTg4YzliMDE5YjFiMzBmN2RkZjYyM2MxMDExMWZlLi42YzA1NTk5NGM1
OGVjYTQxMTMxOWE5Yzk5ZDE0M2Y5YzE3ZjNlMmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0lucHV0SGFuZGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSW5wdXRIYW5kbGVy
LmgKQEAgLTQ2LDEzICs0NiwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRz
UmVkcmF3KCkgPSAwOwogCiAgICAgZW51bSBTY3JvbGxTdGF0dXMgeyBTY3JvbGxGYWlsZWQsIFNj
cm9sbFN0YXJ0ZWQsIFNjcm9sbElnbm9yZWQgfTsKKyAgICBlbnVtIFNjcm9sbElucHV0VHlwZSB7
IEdlc3R1cmUsIFdoZWVsIH07CiAKICAgICAvLyBBdHRlbXB0IHRvIHN0YXJ0IHNjcm9sbGluZyBh
IGxheWVyIGF0IGEgZ2l2ZW4gcG9pbnQgaW4gd2luZG93CiAgICAgLy8gY29vcmRpbmF0ZXMuIFJl
dHVybnMgU2Nyb2xsU3RhcnRlZCBpZiB0aGUgbGF5ZXIgYXQgdGhlIGNvb3JkaW5hdGVzIGNhbgog
ICAgIC8vIGJlIHNjcm9sbGVkLCBTY3JvbGxGYWlsZWQgaWYgdGhlIHNjcm9sbCBldmVudCBzaG91
bGQgaW5zdGVhZCBiZQogICAgIC8vIGRlbGVnYXRlZCB0byB0aGUgbWFpbiB0aHJlYWQsIG9yIFNj
cm9sbElnbm9yZWQgaWYgdGhlcmUgaXMgbm90aGluZyB0bwogICAgIC8vIGJlIHNjcm9sbGVkIGF0
IHRoZSBnaXZlbiBjb29yZGluYXRlcy4KLSAgICB2aXJ0dWFsIFNjcm9sbFN0YXR1cyBzY3JvbGxC
ZWdpbihjb25zdCBJbnRQb2ludCYpID0gMDsKKyAgICB2aXJ0dWFsIFNjcm9sbFN0YXR1cyBzY3Jv
bGxCZWdpbihjb25zdCBJbnRQb2ludCYsIFNjcm9sbElucHV0VHlwZSkgPSAwOwogCiAgICAgLy8g
U2Nyb2xsIHRoZSBsYXllciBzZWxlY3RlZCB3aXRoIHNjcm9sbEJlZ2luKCkuIElmIHRoZXJlIGlz
IG5vIHJvb20gdG8KICAgICAvLyBtb3ZlIHRoZSBsYXllciBpbiB0aGUgcmVxdWVzdGVkIGRpcmVj
dGlvbiwgaXRzIGZpcnN0IGFuY2VzdG9yIGxheWVyIHRoYXQKQEAgLTY0LDcgKzY1LDYgQEAgcHVi
bGljOgogICAgIC8vIGNhbGxlZCBpZiBzY3JvbGxCZWdpbigpIHJldHVybmVkIFNjcm9sbFN0YXJ0
ZWQuCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbEVuZCgpID0gMDsKIAotICAgIHZpcnR1YWwgYm9v
bCBoYXZlV2hlZWxFdmVudEhhbmRsZXJzKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdl
c3R1cmVCZWdpbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGluY2hHZXN0dXJlVXBkYXRlKGZs
b2F0IG1hZ25pZnlEZWx0YSwgY29uc3QgSW50UG9pbnQmIGFuY2hvcikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBwaW5jaEdlc3R1cmVFbmQoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKaW5k
ZXggYzJiZDM0YjBiZmI4ZTkwODc2MzQzMzFkMWNlMjYxZjJhZWJiZGQ2Ni4uZTM4NGUwY2ZkNGZh
MTIyMGYxZDEzYzYyOTgzMDNkZmVhN2Y2NTZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcApA
QCAtNDUsNiArNDUsNyBAQCBDQ0xheWVySW1wbDo6Q0NMYXllckltcGwoaW50IGlkKQogICAgICwg
bV9hbmNob3JQb2ludCgwLjUsIDAuNSkKICAgICAsIG1fYW5jaG9yUG9pbnRaKDApCiAgICAgLCBt
X3Njcm9sbGFibGUoZmFsc2UpCisgICAgLCBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMoZmFsc2Up
CiAgICAgLCBtX2JhY2tncm91bmRDb3ZlcnNWaWV3cG9ydChmYWxzZSkKICAgICAsIG1fZG91Ymxl
U2lkZWQodHJ1ZSkKICAgICAsIG1fbGF5ZXJQcm9wZXJ0eUNoYW5nZWQoZmFsc2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllckltcGwuaAppbmRleCA5ZTZjNTUwMDdlZTdlMzhkNzVmNjMxMWM5YTBmOGRlZGE3NDc2ZWFj
Li45OGRmOWQ3NzMzZTUwMWI0NTdlOTVlMzUyNjA0OTIzMmFkNDdjNGU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJJbXBsLmgKQEAgLTE4MCw2ICsxODAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBzY3JvbGxhYmxl
KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxhYmxl
KGJvb2wgc2Nyb2xsYWJsZSkgeyBtX3Njcm9sbGFibGUgPSBzY3JvbGxhYmxlOyB9CiAKKyAgICBi
b29sIGhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKSBjb25zdCB7IHJldHVybiBtX2hhdmVXaGVlbEV2
ZW50SGFuZGxlcnM7IH0KKyAgICB2b2lkIHNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoYm9vbCBo
YXZlV2hlZWxFdmVudEhhbmRsZXJzKSB7IG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyA9IGhhdmVX
aGVlbEV2ZW50SGFuZGxlcnM7IH0KKwogICAgIGNvbnN0IEludFJlY3QmIHZpc2libGVMYXllclJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX3Zpc2libGVMYXllclJlY3Q7IH0KICAgICB2b2lkIHNldFZp
c2libGVMYXllclJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZUxheWVyUmVjdCkgeyBtX3Zpc2li
bGVMYXllclJlY3QgPSB2aXNpYmxlTGF5ZXJSZWN0OyB9CiAKQEAgLTI0Miw2ICsyNDUsNyBAQCBw
cml2YXRlOgogICAgIEludFNpemUgbV9jb250ZW50Qm91bmRzOwogICAgIEludFBvaW50IG1fc2Ny
b2xsUG9zaXRpb247CiAgICAgYm9vbCBtX3Njcm9sbGFibGU7CisgICAgYm9vbCBtX2hhdmVXaGVl
bEV2ZW50SGFuZGxlcnM7CiAgICAgQ29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7CiAgICAgYm9vbCBt
X2JhY2tncm91bmRDb3ZlcnNWaWV3cG9ydDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5j
cHAKaW5kZXggZTQ2MmU1MzE4YmZjN2YzNzk0ZGE4NjVjZWZmMzNiYWVjNWQyZTUwMS4uMGFmOTJl
ZjJmM2FkMzQ0MjEzNzgzMjY0NTRkMGRkMmI5YjI3ZmM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuY3BwCkBAIC02OCw3ICs2OCw2IEBAIENDTGF5ZXJUcmVlSG9zdDo6Q0NMYXllclRy
ZWVIb3N0KENDTGF5ZXJUcmVlSG9zdENsaWVudCogY2xpZW50LCBjb25zdCBDQ1NldHRpbmdzCiAg
ICAgLCBtX2xheWVyUmVuZGVyZXJJbml0aWFsaXplZChmYWxzZSkKICAgICAsIG1fc2V0dGluZ3Mo
c2V0dGluZ3MpCiAgICAgLCBtX3Zpc2libGUodHJ1ZSkKLSAgICAsIG1faGF2ZVdoZWVsRXZlbnRI
YW5kbGVycyhmYWxzZSkKICAgICAsIG1fcGFnZVNjYWxlRmFjdG9yKDEpCiAgICAgLCBtX21pblBh
Z2VTY2FsZUZhY3RvcigxKQogICAgICwgbV9tYXhQYWdlU2NhbGVGYWN0b3IoMSkKQEAgLTE3Nyw3
ICsxNzYsNiBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6ZmluaXNoQ29tbWl0T25JbXBsVGhyZWFk
KENDTGF5ZXJUcmVlSG9zdEltcGwqIGhvc3RJbXBsKQogICAgICAgICBob3N0SW1wbC0+c2V0Um9v
dExheWVyKDApOwogCiAgICAgaG9zdEltcGwtPnNldFNvdXJjZUZyYW1lTnVtYmVyKGZyYW1lTnVt
YmVyKCkpOwotICAgIGhvc3RJbXBsLT5zZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJzKG1faGF2ZVdo
ZWVsRXZlbnRIYW5kbGVycyk7CiAgICAgaG9zdEltcGwtPnNldFZpZXdwb3J0U2l6ZSh2aWV3cG9y
dFNpemUoKSk7CiAgICAgaG9zdEltcGwtPnNldFBhZ2VTY2FsZUZhY3RvckFuZExpbWl0cyhtX3Bh
Z2VTY2FsZUZhY3RvciwgbV9taW5QYWdlU2NhbGVGYWN0b3IsIG1fbWF4UGFnZVNjYWxlRmFjdG9y
KTsKIApAQCAtMzQwLDE0ICszMzgsNiBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6ZGlkQmVjb21l
SW52aXNpYmxlT25JbXBsVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGhvc3RJbQogICAgICAg
ICBob3N0SW1wbC0+c2V0Um9vdExheWVyKDApOwogfQogCi12b2lkIENDTGF5ZXJUcmVlSG9zdDo6
c2V0SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhib29sIGhhdmVXaGVlbEV2ZW50SGFuZGxlcnMpCi17
Ci0gICAgaWYgKG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyA9PSBoYXZlV2hlZWxFdmVudEhhbmRs
ZXJzKQotICAgICAgICByZXR1cm47Ci0gICAgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzID0gaGF2
ZVdoZWVsRXZlbnRIYW5kbGVyczsKLSAgICBtX3Byb3h5LT5zZXROZWVkc0NvbW1pdCgpOwotfQot
CiB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c3RhcnRQYWdlU2NhbGVBbmltYXRpb24oY29uc3QgSW50
U2l6ZSYgdGFyZ2V0UG9zaXRpb24sIGJvb2wgdXNlQW5jaG9yLCBmbG9hdCBzY2FsZSwgZG91Ymxl
IGR1cmF0aW9uU2VjKQogewogICAgIG1fcHJveHktPnN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKHRh
cmdldFBvc2l0aW9uLCB1c2VBbmNob3IsIHNjYWxlLCBkdXJhdGlvblNlYyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5oCmluZGV4IGY1ZTExMzRjODFiNDNlMjE4ODZhNWQ5MzUzMGVlODhmMTlh
NDAzMjUuLjZmM2QyZDQ4YzZlYzI2MWU3OTdiNTI4MWJjZjQ4NDU1MDA3ZTEwYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC0xODAsOCArMTgwLDYgQEAgcHVibGljOgogICAgIGJv
b2wgdmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlzaWJsZTsgfQogICAgIHZvaWQgc2V0Vmlz
aWJsZShib29sKTsKIAotICAgIHZvaWQgc2V0SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhib29sKTsK
LQogICAgIC8vIFJldHVybnMgZmFsc2UgaWYgd2Ugc2hvdWxkIGFib3J0IHRoaXMgZnJhbWUgZHVl
IHRvIGluaXRpYWxpemF0aW9uIGZhaWx1cmUuCiAgICAgYm9vbCB1cGRhdGVMYXllcnMoKTsKIApA
QCAtMjM1LDcgKzIzMyw2IEBAIHByaXZhdGU6CiAKICAgICBJbnRTaXplIG1fdmlld3BvcnRTaXpl
OwogICAgIGJvb2wgbV92aXNpYmxlOwotICAgIGJvb2wgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJz
OwogICAgIHR5cGVkZWYgSGFzaE1hcDxHcmFwaGljc0NvbnRleHQzRCosIFJlZlB0cjxSYXRlTGlt
aXRlcj4gPiBSYXRlTGltaXRlck1hcDsKICAgICBSYXRlTGltaXRlck1hcCBtX3JhdGVMaW1pdGVy
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAppbmRleCAwNTRiZWIz
MmVlNTM1OWNiYzViYTU0ZjkxYjZhOTZjMTU0MGZmNWI1Li5kZDFhOTVlOWFiMTQzM2E2NGUyZWYx
ODkzMTU1NTNiN2I3YTljNzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBs
LmNwcApAQCAtNTIsNyArNTIsNiBAQCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpDQ0xheWVyVHJlZUhv
c3RJbXBsKGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzLCBDQ0xheWVyVHJlZQogICAgICwgbV9m
cmFtZU51bWJlcigwKQogICAgICwgbV9zZXR0aW5ncyhzZXR0aW5ncykKICAgICAsIG1fdmlzaWJs
ZSh0cnVlKQotICAgICwgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzKGZhbHNlKQogICAgICwgbV9w
YWdlU2NhbGUoMSkKICAgICAsIG1fcGFnZVNjYWxlRGVsdGEoMSkKICAgICAsIG1fc2VudFBhZ2VT
Y2FsZURlbHRhKDEpCkBAIC00NjYsMTEgKzQ2NSwxOCBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdElt
cGw6OnNldE5lZWRzUmVkcmF3KCkKICAgICBtX2NsaWVudC0+c2V0TmVlZHNSZWRyYXdPbkltcGxU
aHJlYWQoKTsKIH0KIAotQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXR1cyBDQ0xheWVy
VHJlZUhvc3RJbXBsOjpzY3JvbGxCZWdpbihjb25zdCBJbnRQb2ludCYpCitDQ0lucHV0SGFuZGxl
ckNsaWVudDo6U2Nyb2xsU3RhdHVzIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNjcm9sbEJlZ2luKGNv
bnN0IEludFBvaW50JiBwb2ludCwgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbElucHV0VHlw
ZSB0eXBlKQogewogICAgIC8vIFRPRE86IENoZWNrIGZvciBzY3JvbGxhYmxlIHN1YmxheWVycy4K
LSAgICBpZiAoIW1fc2Nyb2xsTGF5ZXJJbXBsIHx8ICFtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xs
YWJsZSgpKQorICAgIGlmICghbV9zY3JvbGxMYXllckltcGwgfHwgIW1fc2Nyb2xsTGF5ZXJJbXBs
LT5zY3JvbGxhYmxlKCkpIHsKKyAgICAgICAgVFJBQ0VfRVZFTlQoInNjcm9sbEJlZ2luIElnbm9y
ZWQgbm8gc2Nyb2xsYWJsZSIsIHRoaXMsIDApOwogICAgICAgICByZXR1cm4gU2Nyb2xsSWdub3Jl
ZDsKKyAgICB9CisKKyAgICBpZiAodHlwZSA9PSBDQ0lucHV0SGFuZGxlckNsaWVudDo6V2hlZWwg
JiYgbV9zY3JvbGxMYXllckltcGwtPmhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKSkgeworICAgICAg
ICBUUkFDRV9FVkVOVCgic2Nyb2xsQmVnaW4gRmFpbGVkIHdoZWVsRXZlbnRIYW5kbGVycyIsIHRo
aXMsIDApOworICAgICAgICByZXR1cm4gU2Nyb2xsRmFpbGVkOworICAgIH0KIAogICAgIHJldHVy
biBTY3JvbGxTdGFydGVkOwogfQpAQCAtNDkwLDExICs0OTYsNiBAQCB2b2lkIENDTGF5ZXJUcmVl
SG9zdEltcGw6OnNjcm9sbEVuZCgpCiB7CiB9CiAKLWJvb2wgQ0NMYXllclRyZWVIb3N0SW1wbDo6
aGF2ZVdoZWVsRXZlbnRIYW5kbGVycygpCi17Ci0gICAgcmV0dXJuIG1faGF2ZVdoZWVsRXZlbnRI
YW5kbGVyczsKLX0KLQogdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVCZWdp
bigpCiB7CiAgICAgbV9waW5jaEdlc3R1cmVBY3RpdmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0SW1wbC5oCmluZGV4IDg5NDkxNTQyZTQzM2ZhYWZlZjI2NmE0ZWYxYTg5ZDA4
MDYwYjlhZmQuLmU2NzkxMjcwMDllODQ2NmY2ZjFlMWE5ZTkxMmEyYWQ5Zjk4NDU1NjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKQEAgLTU5LDEwICs1OSw5IEBAIHB1Ymxp
YzoKIAogICAgIC8vIENDSW5wdXRIYW5kbGVyQ2xpZW50IGltcGxlbWVudGF0aW9uCiAgICAgdmly
dHVhbCB2b2lkIHNldE5lZWRzUmVkcmF3KCk7Ci0gICAgdmlydHVhbCBDQ0lucHV0SGFuZGxlckNs
aWVudDo6U2Nyb2xsU3RhdHVzIHNjcm9sbEJlZ2luKGNvbnN0IEludFBvaW50Jik7CisgICAgdmly
dHVhbCBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVzIHNjcm9sbEJlZ2luKGNvbnN0
IEludFBvaW50JiwgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbElucHV0VHlwZSk7CiAgICAg
dmlydHVhbCB2b2lkIHNjcm9sbEJ5KGNvbnN0IEludFNpemUmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsRW5kKCk7Ci0gICAgdmlydHVhbCBib29sIGhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcGluY2hHZXN0dXJlQmVnaW4oKTsKICAgICB2aXJ0dWFsIHZvaWQg
cGluY2hHZXN0dXJlVXBkYXRlKGZsb2F0LCBjb25zdCBJbnRQb2ludCYpOwogICAgIHZpcnR1YWwg
dm9pZCBwaW5jaEdlc3R1cmVFbmQoKTsKQEAgLTk4LDcgKzk3LDYgQEAgcHVibGljOgogCiAgICAg
Ym9vbCB2aXNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV92aXNpYmxlOyB9CiAgICAgdm9pZCBzZXRW
aXNpYmxlKGJvb2wpOwotICAgIHZvaWQgc2V0SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhib29sIGhh
dmVXaGVlbEV2ZW50SGFuZGxlcnMpIHsgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzID0gaGF2ZVdo
ZWVsRXZlbnRIYW5kbGVyczsgfQogCiAgICAgaW50IHNvdXJjZUZyYW1lTnVtYmVyKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2VGcmFtZU51bWJlcjsgfQogICAgIHZvaWQgc2V0U291cmNlRnJhbWVO
dW1iZXIoaW50IGZyYW1lTnVtYmVyKSB7IG1fc291cmNlRnJhbWVOdW1iZXIgPSBmcmFtZU51bWJl
cjsgfQpAQCAtMTQzLDcgKzE0MSw2IEBAIHByaXZhdGU6CiAgICAgQ0NTZXR0aW5ncyBtX3NldHRp
bmdzOwogICAgIEludFNpemUgbV92aWV3cG9ydFNpemU7CiAgICAgYm9vbCBtX3Zpc2libGU7Ci0g
ICAgYm9vbCBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnM7CiAKICAgICBmbG9hdCBtX3BhZ2VTY2Fs
ZTsKICAgICBmbG9hdCBtX3BhZ2VTY2FsZURlbHRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKaW5kZXggYzliZTA4
YTg0N2E2ZmJiYmI3OGVhY2FmYzJiM2EwMmYzNGIwYjdiMi4uYmI1NDJhZmNhYzUxNTYwZWQ5N2Q5
OWM2NTcwMGU4Zjc5Y2Y0OWJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCkBAIC0xMDMsNiArMTAzLDcgQEAg
dm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIHZpZXdwb3J0U2l6ZSwKIAogICAgIG1fdmlld3BvcnRTaXplID0gdmlld3BvcnRT
aXplOwogICAgIHNjcm9sbExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9u
KTsKKyAgICBzY3JvbGxMYXllcigpLT5zZXRQb3NpdGlvbihXZWJDb3JlOjpGbG9hdFBvaW50KC1z
Y3JvbGxQb3NpdGlvbi54KCksIC1zY3JvbGxQb3NpdGlvbi55KCkpKTsKICAgICAvLyBEdWUgdG8g
dGhlIHBvc3NpYmlsaXR5IG9mIHBpbmNoIHpvb20sIHRoZSBub25jb21wb3NpdGVkIGxheWVyIGlz
IGFsd2F5cwogICAgIC8vIGFzc3VtZWQgdG8gYmUgc2Nyb2xsYWJsZS4KICAgICBzY3JvbGxMYXll
cigpLT5zZXRTY3JvbGxhYmxlKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwCmluZGV4IDQw
YzE1MWRmZDE5Yzc4ZTdkY2Q0YWE5Y2NlNTA1NTIxNzU5MzQ0YTMuLjM5NzMwOGI1MjljYzQxNzQ3
MTg3YzdmODY3ZDEyMWI5YjIzZmNhZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKQEAgLTEy
MSw5ICsxMjEsOSBAQCB2b2lkIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVJ
bnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGV2ZW50KQogICAgIEFTU0VSVChDQ1Byb3h5
Ojppc0ltcGxUaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKIAotICAgIGlmIChldmVu
dC50eXBlID09IFdlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWwgJiYgIW1faW5wdXRIYW5kbGVyQ2xp
ZW50LT5oYXZlV2hlZWxFdmVudEhhbmRsZXJzKCkpIHsKKyAgICBpZiAoZXZlbnQudHlwZSA9PSBX
ZWJJbnB1dEV2ZW50OjpNb3VzZVdoZWVsKSB7CiAgICAgICAgIGNvbnN0IFdlYk1vdXNlV2hlZWxF
dmVudCYgd2hlZWxFdmVudCA9ICpzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZVdoZWVsRXZlbnQq
PigmZXZlbnQpOwotICAgICAgICBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVzIHNj
cm9sbFN0YXR1cyA9IG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY3JvbGxCZWdpbihJbnRQb2ludCh3
aGVlbEV2ZW50LngsIHdoZWVsRXZlbnQueSkpOworICAgICAgICBDQ0lucHV0SGFuZGxlckNsaWVu
dDo6U2Nyb2xsU3RhdHVzIHNjcm9sbFN0YXR1cyA9IG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY3Jv
bGxCZWdpbihJbnRQb2ludCh3aGVlbEV2ZW50LngsIHdoZWVsRXZlbnQueSksIENDSW5wdXRIYW5k
bGVyQ2xpZW50OjpXaGVlbCk7CiAgICAgICAgIHN3aXRjaCAoc2Nyb2xsU3RhdHVzKSB7CiAgICAg
ICAgIGNhc2UgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXJ0ZWQ6CiAgICAgICAgICAg
ICBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsQnkoSW50U2l6ZSgtd2hlZWxFdmVudC5kZWx0
YVgsIC13aGVlbEV2ZW50LmRlbHRhWSkpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgV2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRF
dmVudCYgZXZlbnQpCiAgICAgICAgIG1fZXhwZWN0U2Nyb2xsVXBkYXRlRW5kID0gdHJ1ZTsKICNl
bmRpZgogICAgICAgICBjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCA9ICpzdGF0
aWNfY2FzdDxjb25zdCBXZWJHZXN0dXJlRXZlbnQqPigmZXZlbnQpOwotICAgICAgICBDQ0lucHV0
SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVzIHNjcm9sbFN0YXR1cyA9IG1faW5wdXRIYW5kbGVy
Q2xpZW50LT5zY3JvbGxCZWdpbihJbnRQb2ludChnZXN0dXJlRXZlbnQueCwgZ2VzdHVyZUV2ZW50
LnkpKTsKKyAgICAgICAgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXR1cyBzY3JvbGxT
dGF0dXMgPSBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsQmVnaW4oSW50UG9pbnQoZ2VzdHVy
ZUV2ZW50LngsIGdlc3R1cmVFdmVudC55KSwgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6Okdlc3R1cmUp
OwogICAgICAgICBzd2l0Y2ggKHNjcm9sbFN0YXR1cykgewogICAgICAgICBjYXNlIENDSW5wdXRI
YW5kbGVyQ2xpZW50OjpTY3JvbGxTdGFydGVkOgogICAgICAgICAgICAgbV9zY3JvbGxTdGFydGVk
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRl
eCA4MGExZDk2OGY3ZGM4NjJkZjlhYjFlNGZlMjUzNzI2MTA4NmExMzBkLi5hOWFjODZlNmZjZDcz
YTNiOTQyMDViMDY3Y2E0Yzg5ZjcwYmYwMTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCkBAIC05NDcsMTMgKzk0Nyw4IEBAIHZvaWQgV2ViVmlld0ltcGw6
OmNvbXB1dGVTY2FsZUFuZFNjcm9sbEZvckhpdFJlY3QoY29uc3QgV2ViUmVjdCYgaGl0UmVjdCwg
QXV0b1pvCiAKIHZvaWQgV2ViVmlld0ltcGw6Om51bWJlck9mV2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZCh1bnNpZ25lZCBudW1iZXJPZldoZWVsSGFuZGxlcnMpCiB7Ci0gICAgbV9oYXZlV2hlZWxF
dmVudEhhbmRsZXJzID0gbnVtYmVyT2ZXaGVlbEhhbmRsZXJzID4gMDsKICAgICBpZiAobV9jbGll
bnQpCiAgICAgICAgIG1fY2xpZW50LT5udW1iZXJPZldoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQo
bnVtYmVyT2ZXaGVlbEhhbmRsZXJzKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0gICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRI
YXZlV2hlZWxFdmVudEhhbmRsZXJzKG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyk7Ci0jZW5kaWYK
IH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6bnVtYmVyT2ZUb3VjaEV2ZW50SGFuZGxlcnNDaGFuZ2Vk
KHVuc2lnbmVkIG51bWJlck9mVG91Y2hIYW5kbGVycykKQEAgLTMxNzYsNyArMzE3MSw2IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sIGFj
dGl2ZSkKIAogICAgICAgICBtX2xheWVyVHJlZUhvc3QgPSBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0
ZSh0aGlzLCBjY1NldHRpbmdzKTsKICAgICAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkgewotICAg
ICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJzKG1faGF2
ZVdoZWVsRXZlbnRIYW5kbGVycyk7CiAgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFBh
Z2VTY2FsZUZhY3RvckFuZExpbWl0cyhwYWdlU2NhbGVGYWN0b3IoKSwgbV9taW5pbXVtUGFnZVNj
YWxlRmFjdG9yLCBtX21heGltdW1QYWdlU2NhbGVGYWN0b3IpOwogICAgICAgICAgICAgdXBkYXRl
TGF5ZXJUcmVlVmlld3BvcnQoKTsKICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRBY3RpdmF0ZUNv
bXBvc2l0b3IobV9sYXllclRyZWVIb3N0LT5jb21wb3NpdG9ySWRlbnRpZmllcigpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IGU4ZDUzYmI5NDVlNTc1ZGIw
YTdiNjIzZDU3MmI3ZWUxMThiZmY2OWEuLjM1NThjMWRmNjQ5MTEwNzU3ZmQwNzhhNWI5ZjExNDMz
OWFkYTA5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAt
NjkyLDcgKzY5Miw2IEBAIHByaXZhdGU6CiAgICAgLy8gSWYgdHJ1ZSwgdGhlIGdyYXBoaWNzIGNv
bnRleHQgaXMgYmVpbmcgcmVzdG9yZWQuCiAgICAgYm9vbCBtX3JlY3JlYXRpbmdHcmFwaGljc0Nv
bnRleHQ7CiAjZW5kaWYKLSAgICBib29sIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVyczsKICAgICBz
dGF0aWMgY29uc3QgV2ViSW5wdXRFdmVudCogbV9jdXJyZW50SW5wdXRFdmVudDsKIAogI2lmIEVO
QUJMRShJTlBVVF9TUEVFQ0gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCmluZGV4IDgyMDczM2I0NzIwOGM2ZWNm
ZjE3Yzg4YTI1MmIzZGQ3OGQ2ZmRkZDEuLjQyYjEzODk0N2Q2NjVlOWFhZWVmZDVjZDJmZDI1MWZi
M2QzMTU3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXll
clRyZWVIb3N0SW1wbFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCkBAIC0xNjMsMTMgKzE2MywyOCBAQCBURVNUX0Yo
Q0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHNjcm9sbFJvb3RDYWxsc0NvbW1pdEFuZFJlZHJhdykK
ICAgICByb290LT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludCgwLCAwKSk7CiAgICAgcm9vdC0+
c2V0TWF4U2Nyb2xsUG9zaXRpb24oSW50U2l6ZSgxMDAsIDEwMCkpOwogICAgIG1faG9zdEltcGwt
PnNldFJvb3RMYXllcihyb290KTsKLSAgICBFWFBFQ1RfRVEobV9ob3N0SW1wbC0+c2Nyb2xsQmVn
aW4oSW50UG9pbnQoMCwgMCkpLCBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhcnRlZCk7
CisgICAgRVhQRUNUX0VRKG1faG9zdEltcGwtPnNjcm9sbEJlZ2luKEludFBvaW50KDAsIDApLCBD
Q0lucHV0SGFuZGxlckNsaWVudDo6V2hlZWwpLCBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xs
U3RhcnRlZCk7CiAgICAgbV9ob3N0SW1wbC0+c2Nyb2xsQnkoSW50U2l6ZSgwLCAxMCkpOwogICAg
IG1faG9zdEltcGwtPnNjcm9sbEVuZCgpOwogICAgIEVYUEVDVF9UUlVFKG1fZGlkUmVxdWVzdFJl
ZHJhdyk7CiAgICAgRVhQRUNUX1RSVUUobV9kaWRSZXF1ZXN0Q29tbWl0KTsKIH0KIAorVEVTVF9G
KENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCB3aGVlbEV2ZW50SGFuZGxlcnMpCit7CisgICAgUmVm
UHRyPENDTGF5ZXJJbXBsPiByb290ID0gQ0NMYXllckltcGw6OmNyZWF0ZSgwKTsKKyAgICByb290
LT5zZXRTY3JvbGxhYmxlKHRydWUpOworICAgIHJvb3QtPnNldFNjcm9sbFBvc2l0aW9uKEludFBv
aW50KDAsIDApKTsKKyAgICByb290LT5zZXRNYXhTY3JvbGxQb3NpdGlvbihJbnRTaXplKDEwMCwg
MTAwKSk7CisgICAgbV9ob3N0SW1wbC0+c2V0Um9vdExheWVyKHJvb3QpOworICAgIHJvb3QtPnNl
dEhhdmVXaGVlbEV2ZW50SGFuZGxlcnModHJ1ZSk7CisgICAgLy8gV2l0aCByZWdpc3RlcmVkIGV2
ZW50IGhhbmRsZXJzLCB3aGVlbCBzY3JvbGxzIGhhdmUgdG8gZ28gdG8gdGhlIG1haW4gdGhyZWFk
LgorICAgIEVYUEVDVF9FUShtX2hvc3RJbXBsLT5zY3JvbGxCZWdpbihJbnRQb2ludCgwLCAwKSwg
Q0NJbnB1dEhhbmRsZXJDbGllbnQ6OldoZWVsKSwgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9s
bEZhaWxlZCk7CisKKyAgICAvLyBCdXQgZ2VzdHVyZSBzY3JvbGxzIGNhbiBzdGlsbCBiZSBoYW5k
bGVkLgorICAgIEVYUEVDVF9FUShtX2hvc3RJbXBsLT5zY3JvbGxCZWdpbihJbnRQb2ludCgwLCAw
KSwgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6Okdlc3R1cmUpLCBDQ0lucHV0SGFuZGxlckNsaWVudDo6
U2Nyb2xsU3RhcnRlZCk7Cit9CisKIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgcGlu
Y2hHZXN0dXJlKQogewogICAgIHNldHVwU2Nyb2xsQW5kQ29udGVudHNMYXllcnMoSW50U2l6ZSgx
MDAsIDEwMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXll
ckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hy
b21pdW1UZXN0LmNwcAppbmRleCBkNTU1YTZiM2Q1ZmNjMGQ3NzE1ZmZkYTJjYmY5MWU2MWY4YmJi
ODNiLi4yZTljYTk2NjExY2YyOWIzZGVmNmE0YzFhNWUyZDMwNzc3NmIyYjAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAt
NTE1LDYgKzUxNSw3IEBAIFRFU1RfRihMYXllckNocm9taXVtVGVzdCwgY2hlY2tQcm9wZXJ0eUNo
YW5nZUNhdXNlc0NvcnJlY3RCZWhhdmlvcikKICAgICBFWEVDVVRFX0FORF9WRVJJRllfU0VUX05F
RURTX0NPTU1JVF9CRUhBVklPUigxLCB0ZXN0TGF5ZXItPnNldFJlcGxpY2FMYXllcihkdW1teUxh
eWVyLmdldCgpKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVI
QVZJT1IoMSwgdGVzdExheWVyLT5zZXRTdWJsYXllclRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1h
dHJpeCgwLCAwLCAwLCAwLCAwLCAwKSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVF
RFNfQ09NTUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0U2Nyb2xsYWJsZSh0cnVlKSk7Cisg
ICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExh
eWVyLT5zZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJzKHRydWUpKTsKICAgICBFWEVDVVRFX0FORF9W
RVJJRllfU0VUX05FRURTX0NPTU1JVF9CRUhBVklPUigxLCB0ZXN0TGF5ZXItPnNldFNjcm9sbFBv
c2l0aW9uKEludFBvaW50KDEwLCAxMCkpKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfU0VUX05F
RURTX0NPTU1JVF9CRUhBVklPUigxLCB0ZXN0TGF5ZXItPnNldFRyYW5zZm9ybShUcmFuc2Zvcm1h
dGlvbk1hdHJpeCgwLCAwLCAwLCAwLCAwLCAwKSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9T
RVRfTkVFRFNfQ09NTUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0RG91YmxlU2lkZWQoZmFs
c2UpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViQ29tcG9z
aXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNwcAppbmRleCBhZDU4MTA1MjRk
NjRlYWRkZTVhMWMzNDVjNTY4OGFiMmExYTJmZWJkLi40NTkyNTVlMDJhMjgzMzE5ZGZiNWU5Mjlh
OGQ4ZjVkOTkzNWE0NDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QuY3BwCkBA
IC02NywxNCArNjcsMTMgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBz
ZXROZWVkc1JlZHJhdygpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgU2Nyb2xsU3RhdHVzIHNj
cm9sbEJlZ2luKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgT1ZFUlJJREUKKyAgICB2aXJ0dWFs
IFNjcm9sbFN0YXR1cyBzY3JvbGxCZWdpbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNv
cmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxJbnB1dFR5cGUpIE9WRVJSSURFCiAgICAg
ewogICAgICAgICByZXR1cm4gbV9zY3JvbGxTdGF0dXM7CiAgICAgfQogICAgIHZpcnR1YWwgdm9p
ZCBzY3JvbGxCeShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgT1ZFUlJJREUgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbEVuZCgpIE9WRVJSSURFIHsgfQogCi0gICAgdmlydHVhbCBib29sIGhh
dmVXaGVlbEV2ZW50SGFuZGxlcnMoKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVCZWdpbigpIE9WRVJSSURFCiAgICAgewogICAgICAgICBt
X3BpbmNoU3RhcnRlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128089</attachid>
            <date>2012-02-21 17:14:26 -0800</date>
            <delta_ts>2012-02-23 15:55:53 -0800</delta_ts>
            <desc>rebase to ToT</desc>
            <filename>bug-79133-20120221171425.patch</filename>
            <type>text/plain</type>
            <size>30351</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA1MDgwMzBjYWEzZWQ2
NzcyOWZkY2QxMjA5NjE1ZjM5MjBhYzMzNi4uMTkyYmMyYTA4Njg0OGFiMDE5ZjgxYWY0ODQzMWFj
NTBmZDYyY2VjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcyIEBACiAyMDEyLTAyLTIxICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW2Nocm9taXVtXSBO
b3RpZnkgY29tcG9zaXRvciBvZiB3aGVlbCBldmVudCByZWdpc3RyYXRpb24gdmlhIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTEzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgbm90aWZpZXMgdGhlIGNocm9taXVtIGNvbXBvc2l0b3Igb2YgY2hhbmdlcyB0byB0
aGUgbnVtYmVyIG9mIHdoZWVsIGV2ZW50IGhhbmRsZXJzIHZpYSBTY3JvbGxpbmdDb29yZGluYXRv
cgorICAgICAgICBpbnN0ZWFkIG9mIHRocm91Z2ggQ2hyb21lQ2xpZW50L1dlYlZpZXdJbXBsLiBU
aGlzIGlzIHRoZSBwYXRoIHdlJ2xsIHVzZSBmb3Igb3RoZXIgcHJvcGVydGllcyBpbiB0aGUgZnV0
dXJlIGFuZAorICAgICAgICBpcyBtb3JlIGV4dGVuc2libGUgZm9yIGhhbmRsaW5nIHRoaW5ncyBv
dGhlciB0aGFuIHRoZSByb290IGxheWVyLgorCisgICAgICAgIFByb3BlcnR5IGJlaGF2aW9yIGlz
IGNvdmVyZWQgYnkgbmV3IHVuaXQgdGVzdHMgaW4gTGF5ZXJDaHJvbWl1bVRlc3RzIGFuZCBDQ0xh
eWVyVHJlZUhvc3RJbXBsVGVzdC4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTY3JvbGxpbmdDb29yZGlu
YXRvcik6CisgICAgICAgICAgICBBZGQgYSBTY3JvbGxpbmdDb29yZGluYXRvclByaXZhdGUgc28g
aW1wbGVtZW50YXRpb25zIGNhbiB0YWNrIG9uIGFkZGl0aW9uYWwgZGF0YSB3aXRob3V0IGhhdmlu
ZyB0byAjaWZkZWYgdXAKKyAgICAgICAgICAgIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgvY3BwCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOb25lLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6
On5TY3JvbGxpbmdDb29yZGluYXRvcik6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvY2hyb21p
dW0vU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5jcHA6CisgICAgICAgIChTY3JvbGxpbmdD
b29yZGluYXRvclByaXZhdGUpOgorICAgICAgICAgICAgU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2
YXRlIGluIHRoZSBjaHJvbWl1bSBpbXBsZW1lbnRhdGlvbiBrZWVwcyBhIHJlZmVyZW5jZSB0byB0
aGUgc2Nyb2xsIGxheWVyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cml2YXRlOjpTY3JvbGxpbmdDb29yZGluYXRvclByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2YXRlOjp+U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJpdmF0ZTo6c2V0U2Ny
b2xsTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2YXRl
OjpzY3JvbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
Q29vcmRpbmF0b3I6On5TY3JvbGxpbmdDb29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyRGlk
Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZp
ZXdWZXJ0aWNhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3JvbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdDb29yZGluYXRvcjo6c2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9sbFBhcmFtZXRlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFdoZWVsRXZlbnRIYW5k
bGVyQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNo
b3VsZFVwZGF0ZVNjcm9sbExheWVyUG9zaXRpb25Pbk1haW5UaHJlYWQpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6On5TY3JvbGxp
bmdDb29yZGluYXRvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpMYXllckNo
cm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldEhhdmVXaGVlbEV2
ZW50SGFuZGxlcnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXll
ckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmg6CisgICAgICAgIChMYXllckNocm9taXVtKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0lucHV0SGFuZGxlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpDQ0xheWVySW1wbCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJJbXBsOjpoYXZlV2hlZWxFdmVudEhhbmRsZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJzKToKKyAgICAgICAg
KENDTGF5ZXJJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpD
Q0xheWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpmaW5p
c2hDb21taXRPbkltcGxUaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OkNDTGF5ZXJUcmVl
SG9zdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6c2Nyb2xs
QmVnaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuaDoKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdEltcGwpOgorCisyMDEyLTAy
LTIxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgRW5h
YmxlIFNjcm9sbGluZ0Nvb3JkaW5hdG9yIGluIGNocm9taXVtIHdoZW5ldmVyIGNvbXBvc2l0aW5n
IGlzIGVuYWJsZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc5MTY1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNjQzNWRkNzFjNDkxZDg5
YTc1M2NjYTU3YjViNDBmYjA4NjM0MTU5MS4uYmJiMmMxNDBlYzZiNWFlN2I2ZDJmMjU3NWJmYjNi
NjE3MTRhNDU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOCBAQAog
MjAxMi0wMi0yMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCisgICAg
ICAgIFtjaHJvbWl1bV0gTm90aWZ5IGNvbXBvc2l0b3Igb2Ygd2hlZWwgZXZlbnQgcmVnaXN0cmF0
aW9uIHZpYSBTY3JvbGxpbmdDb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxMzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSaXBzIG91dCBvbGQgd2hlZWwgZXZlbnQgbm90aWZpY2F0aW9u
IGFuZCBhZGRzIHVuaXQgdGVzdHMgZm9yIG5ldyBMYXllckNocm9taXVtIHByb3BlcnR5LgorCisg
ICAgICAgICogc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0Vmlld3BvcnQpOgorICAgICAgICAqIHNy
Yy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAg
KiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bnVt
YmVyT2ZXaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSk6CisgICAgICAgICogc3Jj
L1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3Qu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpURVNUX0YpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKiB0ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvV2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNwcDoKKworMjAxMi0wMi0yMSAgSmFtZXMgUm9i
aW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIEVuYWJsZSBTY3JvbGxpbmdD
b29yZGluYXRvciBpbiBjaHJvbWl1bSB3aGVuZXZlciBjb21wb3NpdGluZyBpcyBlbmFibGVkCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE2NQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKaW5kZXggZDA1ZmU4M2M4MWIzZWZlYTY3MTdiOGJiYTE2OGUxNTcxZWMyMjIwMC4u
MGQyNTU3MTY4NmY3MGZkNjJhMGFkMzcyNmYzNGY1MzBlOWI0Njc1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApA
QCAtNjEsMTQgKzYxLDYgQEAgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OlNjcm9sbGluZ0Nvb3JkaW5h
dG9yKFBhZ2UqIHBhZ2UpCiB7CiB9CiAKLVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp+U2Nyb2xsaW5n
Q29vcmRpbmF0b3IoKQotewotICAgIEFTU0VSVCghbV9wYWdlKTsKLSNpZiBFTkFCTEUoVEhSRUFE
RURfU0NST0xMSU5HKQotICAgIEFTU0VSVCghbV9zY3JvbGxpbmdUcmVlKTsKLSNlbmRpZgotfQot
CiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpwYWdlRGVzdHJveWVkKCkKIHsKICAgICBBU1NF
UlQobV9wYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb29yZGluYXRvci5oCmluZGV4IDI0ZDQwMTQ5NGYwY2E5MWNmNDI2YjUwMDYyZDgzZGNm
YzhkNjJjZjguLjdiZGM2YWJhYzYxMDc0MGE4MWM4YzgwNTZhNWViZmZmNWY3MmEyZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaApAQCAtNDgsNiArNDgsNyBAQCBjbGFzcyBHcmFwaGljc0xheWVyOwogY2xhc3MgUGFnZTsK
IGNsYXNzIFBsYXRmb3JtV2hlZWxFdmVudDsKIGNsYXNzIFJlZ2lvbjsKK2NsYXNzIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJpdmF0ZTsKIGNsYXNzIFNjcm9sbGluZ1RyZWVTdGF0ZTsKIAogI2lmIEVO
QUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCkBAIC0xMzcsNiArMTM4LDggQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8U2Nyb2xsaW5nVHJlZT4gbV9zY3JvbGxpbmdUcmVlOwogICAgIFRpbWVyPFNjcm9s
bGluZ0Nvb3JkaW5hdG9yPiBtX3Njcm9sbGluZ1RyZWVTdGF0ZUNvbW1pdHRlclRpbWVyOwogI2Vu
ZGlmCisKKyAgICBTY3JvbGxpbmdDb29yZGluYXRvclByaXZhdGUqIG1fcHJpdmF0ZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTm9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvck5vbmUuY3BwCmluZGV4IDliYTE3OTRm
ZmJkZjAwMmVhM2QxZTY5MDU5ZDU1OTM5YTI1MTY0NTcuLmQwNmQ2YmIzNDVmNTA2Y2NmMGQyMTkx
NDk4MWZhZGY4ZWJlNmRjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTm9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOb25lLmNwcApAQCAtMjksMTIgKzI5LDIw
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cml2YXRlIHsKK307CisKICNpZiAhRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKIFBhc3NSZWZQ
dHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUoUGFn
ZSogcGFnZSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcm9sbGluZ0Nvb3JkaW5hdG9y
KHBhZ2UpKTsKIH0KIAorU2Nyb2xsaW5nQ29vcmRpbmF0b3I6On5TY3JvbGxpbmdDb29yZGluYXRv
cigpCit7CisgICAgQVNTRVJUKCFtX3BhZ2UpOworfQorCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpmcmFtZVZpZXdIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoRnJhbWVWaWV3
KiwgR3JhcGhpY3NMYXllciopCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Q2hyb21pdW0uY3BwCmluZGV4IDg5MGUwOThkYzA0ZmNiNDEzOWMzOGEwNzBhMTdlYjRlNDg2MzA0
NjMuLmU1OTAxMzhhNjBjNTJiYWM3YTNmMmMxNTBkZjkyMGRmMzhjYzUxOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nocm9t
aXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW0uY3BwCkBAIC0yNywxMSArMjcsMzUgQEAK
IAogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAKKyNpbmNsdWRlICJMYXllckNo
cm9taXVtLmgiCisjaW5jbHVkZSAiUmVnaW9uLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2YXRlIHsKK1dURl9NQUtFX05PTkNPUFlBQkxF
KFNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJpdmF0ZSk7CitwdWJsaWM6CisgICAgU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcml2YXRlKCkgeyB9CisgICAgflNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJpdmF0ZSgp
IHsgfQorCisgICAgdm9pZCBzZXRTY3JvbGxMYXllcihMYXllckNocm9taXVtKiBsYXllcikgeyBt
X3Njcm9sbExheWVyID0gbGF5ZXI7IH0KKyAgICBMYXllckNocm9taXVtKiBzY3JvbGxMYXllcigp
IGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBS
ZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbV9zY3JvbGxMYXllcjsKK307CisKIFBhc3NSZWZQdHI8U2Ny
b2xsaW5nQ29vcmRpbmF0b3I+IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUoUGFnZSogcGFn
ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcm9sbGluZ0Nvb3JkaW5hdG9yKHBhZ2Up
KTsKKyAgICBSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNvb3JkaW5hdG9yKGFkb3B0UmVm
KG5ldyBTY3JvbGxpbmdDb29yZGluYXRvcihwYWdlKSkpOworICAgIGNvb3JkaW5hdG9yLT5tX3By
aXZhdGUgPSBuZXcgU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcml2YXRlOworICAgIHJldHVybiBjb29y
ZGluYXRvci5yZWxlYXNlKCk7Cit9CisKK1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp+U2Nyb2xsaW5n
Q29vcmRpbmF0b3IoKQoreworICAgIEFTU0VSVCghbV9wYWdlKTsKKyAgICBkZWxldGUgbV9wcml2
YXRlOwogfQogCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdIb3Jpem9udGFs
U2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoRnJhbWVWaWV3KiwgR3JhcGhpY3NMYXllciogaG9yaXpv
bnRhbFNjcm9sbGJhckxheWVyKQpAQCAtNDYsNyArNzAsNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpmcmFtZVZpZXdWZXJ0aWNhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKEZyYW1lVmll
dyosCiAKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9sbExheWVyKEdyYXBoaWNz
TGF5ZXIqIHNjcm9sbExheWVyKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQhCisgICAgbV9w
cml2YXRlLT5zZXRTY3JvbGxMYXllcihzY3JvbGxMYXllciA/IHNjcm9sbExheWVyLT5wbGF0Zm9y
bUxheWVyKCkgOiAwKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0Tm9uRmFz
dFNjcm9sbGFibGVSZWdpb24oY29uc3QgUmVnaW9uJikKQEAgLTYxLDEyICs4NSwxMyBAQCB2b2lk
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3JvbGxQYXJhbWV0ZXJzKFNjcm9sbEVsYXN0aWNp
dHkgaG9yaXpvbnRhbFNjcm9sbAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQhCiB9CiAKLXZvaWQg
U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFdoZWVsRXZlbnRIYW5kbGVyQ291bnQodW5zaWduZWQp
Cit2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRXaGVlbEV2ZW50SGFuZGxlckNvdW50KHVu
c2lnbmVkIHdoZWVsRXZlbnRIYW5kbGVyQ291bnQpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVu
dCEKKyAgICBpZiAoTGF5ZXJDaHJvbWl1bSogbGF5ZXIgPSBtX3ByaXZhdGUtPnNjcm9sbExheWVy
KCkpCisgICAgICAgIGxheWVyLT5zZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJzKHdoZWVsRXZlbnRI
YW5kbGVyQ291bnQgPiAwKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2hv
dWxkVXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvbk9uTWFpblRocmVhZChib29sKQordm9pZCBTY3Jv
bGxpbmdDb29yZGluYXRvcjo6c2V0U2hvdWxkVXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvbk9uTWFp
blRocmVhZChib29sIHNob3VsZCkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLm1tCmluZGV4IDM3ZTI2Nzc3YjNiMzFkYWI0MGRkYTM4ZGFiM2NhOGU3
OTcxODIxMjYuLjk0MzM1YjBiMjgzYjg0ODJiMTU1ZjJkNzU5ODFlZGY5YTUxYjI4YjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGlu
YXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMubW0KQEAgLTQyLDExICs0MiwxOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIFNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJpdmF0ZSB7Cit9OworCiBQYXNz
UmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRl
KFBhZ2UqIHBhZ2UpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTY3JvbGxpbmdDb29yZGlu
YXRvcihwYWdlKSk7CiB9CiAKK1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp+U2Nyb2xsaW5nQ29vcmRp
bmF0b3IoKQoreworICAgIEFTU0VSVCghbV9wYWdlKTsKKyAgICBBU1NFUlQoIW1fc2Nyb2xsaW5n
VHJlZSk7Cit9CiAKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld0hvcml6b250
YWxTY3JvbGxiYXJMYXllckRpZENoYW5nZShGcmFtZVZpZXcqIGZyYW1lVmlldywgR3JhcGhpY3NM
YXllciopCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDRiY2YyOTdmZjkyNDY4Yzk4NGY1
YjRmY2MxMmJmZjUzYjI2NmQ2NzQuLjI1NzZiY2E2Y2VhNjFlNWEwZGJkNzRkNDUwMTE3YjUyY2Q3
ZDMyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCkBAIC02MCw2ICs2MCw3IEBAIExheWVyQ2hy
b21pdW06OkxheWVyQ2hyb21pdW0oKQogICAgICwgbV9sYXllcklkKHNfbmV4dExheWVySWQrKykK
ICAgICAsIG1fcGFyZW50KDApCiAgICAgLCBtX3Njcm9sbGFibGUoZmFsc2UpCisgICAgLCBtX2hh
dmVXaGVlbEV2ZW50SGFuZGxlcnMoZmFsc2UpCiAgICAgLCBtX2FuY2hvclBvaW50KDAuNSwgMC41
KQogICAgICwgbV9iYWNrZ3JvdW5kQ29sb3IoMCwgMCwgMCwgMCkKICAgICAsIG1fYmFja2dyb3Vu
ZENvdmVyc1ZpZXdwb3J0KGZhbHNlKQpAQCAtMzY5LDYgKzM3MCwxNCBAQCB2b2lkIExheWVyQ2hy
b21pdW06OnNldFNjcm9sbGFibGUoYm9vbCBzY3JvbGxhYmxlKQogICAgIHNldE5lZWRzQ29tbWl0
KCk7CiB9CiAKK3ZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhi
b29sIGhhdmVXaGVlbEV2ZW50SGFuZGxlcnMpCit7CisgICAgaWYgKG1faGF2ZVdoZWVsRXZlbnRI
YW5kbGVycyA9PSBoYXZlV2hlZWxFdmVudEhhbmRsZXJzKQorICAgICAgICByZXR1cm47CisgICAg
bV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzID0gaGF2ZVdoZWVsRXZlbnRIYW5kbGVyczsKKyAgICBz
ZXROZWVkc0NvbW1pdCgpOworfQorCiB2b2lkIExheWVyQ2hyb21pdW06OnNldERvdWJsZVNpZGVk
KGJvb2wgZG91YmxlU2lkZWQpCiB7CiAgICAgaWYgKG1fZG91YmxlU2lkZWQgPT0gZG91YmxlU2lk
ZWQpCkBAIC00MjMsNiArNDMyLDcgQEAgdm9pZCBMYXllckNocm9taXVtOjpwdXNoUHJvcGVydGll
c1RvKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICBsYXllci0+c2V0SXNOb25Db21wb3NpdGVkQ29u
dGVudChtX2lzTm9uQ29tcG9zaXRlZENvbnRlbnQpOwogICAgIGxheWVyLT5zZXRNYXNrc1RvQm91
bmRzKG1fbWFza3NUb0JvdW5kcyk7CiAgICAgbGF5ZXItPnNldFNjcm9sbGFibGUobV9zY3JvbGxh
YmxlKTsKKyAgICBsYXllci0+c2V0SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhtX2hhdmVXaGVlbEV2
ZW50SGFuZGxlcnMpOwogICAgIGxheWVyLT5zZXROYW1lKG1fbmFtZSk7CiAgICAgbGF5ZXItPnNl
dE9wYXF1ZShtX29wYXF1ZSk7CiAgICAgbGF5ZXItPnNldE9wYWNpdHkobV9vcGFjaXR5KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uaAppbmRleCBmZjJlN2QyODYyNjIyZmFkMmMwNjkzOGQ2ZjUyNTY5MTQwZjg4
M2ZhLi41ZjM1MDQ2ZjM5Yzk3MjkxMDQ4ZGE4YzQwMTEzNDQzYmYzMGIwYmI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJD
aHJvbWl1bS5oCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVibGljOgogICAgIGNvbnN0IEludFBvaW50
JiBzY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsUG9zaXRpb247IH0KIAog
ICAgIHZvaWQgc2V0U2Nyb2xsYWJsZShib29sKTsKLSAgICBib29sIHNjcm9sbGFibGUoKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbGFibGU7IH0KKyAgICB2b2lkIHNldEhhdmVXaGVlbEV2ZW50SGFu
ZGxlcnMoYm9vbCk7CiAKICAgICBJbnRTaXplIHNjcm9sbERlbHRhKCkgY29uc3QgeyByZXR1cm4g
SW50U2l6ZSgpOyB9CiAKQEAgLTI2NCw2ICsyNjQsNyBAQCBwcml2YXRlOgogICAgIEludFJlY3Qg
bV92aXNpYmxlTGF5ZXJSZWN0OwogICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247CiAgICAg
Ym9vbCBtX3Njcm9sbGFibGU7CisgICAgYm9vbCBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnM7CiAg
ICAgRmxvYXRQb2ludCBtX3Bvc2l0aW9uOwogICAgIEZsb2F0UG9pbnQgbV9hbmNob3JQb2ludDsK
ICAgICBDb2xvciBtX2JhY2tncm91bmRDb2xvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSW5wdXRIYW5kbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0lucHV0SGFuZGxlci5oCmlu
ZGV4IDA1N2Q3OWIxYTExODhjOWIwMTliMWIzMGY3ZGRmNjIzYzEwMTExZmUuLjZjMDU1OTk0YzU4
ZWNhNDExMzE5YTljOTlkMTQzZjljMTdmM2UyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSW5wdXRIYW5kbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NJbnB1dEhhbmRsZXIu
aApAQCAtNDYsMTMgKzQ2LDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNS
ZWRyYXcoKSA9IDA7CiAKICAgICBlbnVtIFNjcm9sbFN0YXR1cyB7IFNjcm9sbEZhaWxlZCwgU2Ny
b2xsU3RhcnRlZCwgU2Nyb2xsSWdub3JlZCB9OworICAgIGVudW0gU2Nyb2xsSW5wdXRUeXBlIHsg
R2VzdHVyZSwgV2hlZWwgfTsKIAogICAgIC8vIEF0dGVtcHQgdG8gc3RhcnQgc2Nyb2xsaW5nIGEg
bGF5ZXIgYXQgYSBnaXZlbiBwb2ludCBpbiB3aW5kb3cKICAgICAvLyBjb29yZGluYXRlcy4gUmV0
dXJucyBTY3JvbGxTdGFydGVkIGlmIHRoZSBsYXllciBhdCB0aGUgY29vcmRpbmF0ZXMgY2FuCiAg
ICAgLy8gYmUgc2Nyb2xsZWQsIFNjcm9sbEZhaWxlZCBpZiB0aGUgc2Nyb2xsIGV2ZW50IHNob3Vs
ZCBpbnN0ZWFkIGJlCiAgICAgLy8gZGVsZWdhdGVkIHRvIHRoZSBtYWluIHRocmVhZCwgb3IgU2Ny
b2xsSWdub3JlZCBpZiB0aGVyZSBpcyBub3RoaW5nIHRvCiAgICAgLy8gYmUgc2Nyb2xsZWQgYXQg
dGhlIGdpdmVuIGNvb3JkaW5hdGVzLgotICAgIHZpcnR1YWwgU2Nyb2xsU3RhdHVzIHNjcm9sbEJl
Z2luKGNvbnN0IEludFBvaW50JikgPSAwOworICAgIHZpcnR1YWwgU2Nyb2xsU3RhdHVzIHNjcm9s
bEJlZ2luKGNvbnN0IEludFBvaW50JiwgU2Nyb2xsSW5wdXRUeXBlKSA9IDA7CiAKICAgICAvLyBT
Y3JvbGwgdGhlIGxheWVyIHNlbGVjdGVkIHdpdGggc2Nyb2xsQmVnaW4oKS4gSWYgdGhlcmUgaXMg
bm8gcm9vbSB0bwogICAgIC8vIG1vdmUgdGhlIGxheWVyIGluIHRoZSByZXF1ZXN0ZWQgZGlyZWN0
aW9uLCBpdHMgZmlyc3QgYW5jZXN0b3IgbGF5ZXIgdGhhdApAQCAtNjQsNyArNjUsNiBAQCBwdWJs
aWM6CiAgICAgLy8gY2FsbGVkIGlmIHNjcm9sbEJlZ2luKCkgcmV0dXJuZWQgU2Nyb2xsU3RhcnRl
ZC4KICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsRW5kKCkgPSAwOwogCi0gICAgdmlydHVhbCBib29s
IGhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBpbmNoR2Vz
dHVyZUJlZ2luKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVVcGRhdGUoZmxv
YXQgbWFnbmlmeURlbHRhLCBjb25zdCBJbnRQb2ludCYgYW5jaG9yKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHBpbmNoR2VzdHVyZUVuZCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcAppbmRl
eCBjMmJkMzRiMGJmYjhlOTA4NzYzNDMzMWQxY2UyNjFmMmFlYmJkZDY2Li5lMzg0ZTBjZmQ0ZmEx
MjIwZjFkMTNjNjI5ODMwM2RmZWE3ZjY1NmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCkBA
IC00NSw2ICs0NSw3IEBAIENDTGF5ZXJJbXBsOjpDQ0xheWVySW1wbChpbnQgaWQpCiAgICAgLCBt
X2FuY2hvclBvaW50KDAuNSwgMC41KQogICAgICwgbV9hbmNob3JQb2ludFooMCkKICAgICAsIG1f
c2Nyb2xsYWJsZShmYWxzZSkKKyAgICAsIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhmYWxzZSkK
ICAgICAsIG1fYmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0KGZhbHNlKQogICAgICwgbV9kb3VibGVT
aWRlZCh0cnVlKQogICAgICwgbV9sYXllclByb3BlcnR5Q2hhbmdlZChmYWxzZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVySW1wbC5oCmluZGV4IDllNmM1NTAwN2VlN2UzOGQ3NWY2MzExYzlhMGY4ZGVkYTc0NzZlYWMu
Ljk4ZGY5ZDc3MzNlNTAxYjQ1N2U5NWUzNTI2MDQ5MjMyYWQ0N2M0ZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
ckltcGwuaApAQCAtMTgwLDYgKzE4MCw5IEBAIHB1YmxpYzoKICAgICBib29sIHNjcm9sbGFibGUo
KSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGU7IH0KICAgICB2b2lkIHNldFNjcm9sbGFibGUo
Ym9vbCBzY3JvbGxhYmxlKSB7IG1fc2Nyb2xsYWJsZSA9IHNjcm9sbGFibGU7IH0KIAorICAgIGJv
b2wgaGF2ZVdoZWVsRXZlbnRIYW5kbGVycygpIGNvbnN0IHsgcmV0dXJuIG1faGF2ZVdoZWVsRXZl
bnRIYW5kbGVyczsgfQorICAgIHZvaWQgc2V0SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhib29sIGhh
dmVXaGVlbEV2ZW50SGFuZGxlcnMpIHsgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzID0gaGF2ZVdo
ZWVsRXZlbnRIYW5kbGVyczsgfQorCiAgICAgY29uc3QgSW50UmVjdCYgdmlzaWJsZUxheWVyUmVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlzaWJsZUxheWVyUmVjdDsgfQogICAgIHZvaWQgc2V0Vmlz
aWJsZUxheWVyUmVjdChjb25zdCBJbnRSZWN0JiB2aXNpYmxlTGF5ZXJSZWN0KSB7IG1fdmlzaWJs
ZUxheWVyUmVjdCA9IHZpc2libGVMYXllclJlY3Q7IH0KIApAQCAtMjQyLDYgKzI0NSw3IEBAIHBy
aXZhdGU6CiAgICAgSW50U2l6ZSBtX2NvbnRlbnRCb3VuZHM7CiAgICAgSW50UG9pbnQgbV9zY3Jv
bGxQb3NpdGlvbjsKICAgICBib29sIG1fc2Nyb2xsYWJsZTsKKyAgICBib29sIG1faGF2ZVdoZWVs
RXZlbnRIYW5kbGVyczsKICAgICBDb2xvciBtX2JhY2tncm91bmRDb2xvcjsKICAgICBib29sIG1f
YmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNw
cAppbmRleCBlNDYyZTUzMThiZmM3ZjM3OTRkYTg2NWNlZmYzM2JhZWM1ZDJlNTAxLi4wYWY5MmVm
MmYzYWQzNDQyMTM3ODMyNjQ1NGQwZGQyYjliMjdmYzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5jcHAKQEAgLTY4LDcgKzY4LDYgQEAgQ0NMYXllclRyZWVIb3N0OjpDQ0xheWVyVHJl
ZUhvc3QoQ0NMYXllclRyZWVIb3N0Q2xpZW50KiBjbGllbnQsIGNvbnN0IENDU2V0dGluZ3MKICAg
ICAsIG1fbGF5ZXJSZW5kZXJlckluaXRpYWxpemVkKGZhbHNlKQogICAgICwgbV9zZXR0aW5ncyhz
ZXR0aW5ncykKICAgICAsIG1fdmlzaWJsZSh0cnVlKQotICAgICwgbV9oYXZlV2hlZWxFdmVudEhh
bmRsZXJzKGZhbHNlKQogICAgICwgbV9wYWdlU2NhbGVGYWN0b3IoMSkKICAgICAsIG1fbWluUGFn
ZVNjYWxlRmFjdG9yKDEpCiAgICAgLCBtX21heFBhZ2VTY2FsZUZhY3RvcigxKQpAQCAtMTc3LDcg
KzE3Niw2IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpmaW5pc2hDb21taXRPbkltcGxUaHJlYWQo
Q0NMYXllclRyZWVIb3N0SW1wbCogaG9zdEltcGwpCiAgICAgICAgIGhvc3RJbXBsLT5zZXRSb290
TGF5ZXIoMCk7CiAKICAgICBob3N0SW1wbC0+c2V0U291cmNlRnJhbWVOdW1iZXIoZnJhbWVOdW1i
ZXIoKSk7Ci0gICAgaG9zdEltcGwtPnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMobV9oYXZlV2hl
ZWxFdmVudEhhbmRsZXJzKTsKICAgICBob3N0SW1wbC0+c2V0Vmlld3BvcnRTaXplKHZpZXdwb3J0
U2l6ZSgpKTsKICAgICBob3N0SW1wbC0+c2V0UGFnZVNjYWxlRmFjdG9yQW5kTGltaXRzKG1fcGFn
ZVNjYWxlRmFjdG9yLCBtX21pblBhZ2VTY2FsZUZhY3RvciwgbV9tYXhQYWdlU2NhbGVGYWN0b3Ip
OwogCkBAIC0zNDAsMTQgKzMzOCw2IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpkaWRCZWNvbWVJ
bnZpc2libGVPbkltcGxUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCogaG9zdEltCiAgICAgICAg
IGhvc3RJbXBsLT5zZXRSb290TGF5ZXIoMCk7CiB9CiAKLXZvaWQgQ0NMYXllclRyZWVIb3N0Ojpz
ZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJzKGJvb2wgaGF2ZVdoZWVsRXZlbnRIYW5kbGVycykKLXsK
LSAgICBpZiAobV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzID09IGhhdmVXaGVlbEV2ZW50SGFuZGxl
cnMpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMgPSBoYXZl
V2hlZWxFdmVudEhhbmRsZXJzOwotICAgIG1fcHJveHktPnNldE5lZWRzQ29tbWl0KCk7Ci19Ci0K
IHZvaWQgQ0NMYXllclRyZWVIb3N0OjpzdGFydFBhZ2VTY2FsZUFuaW1hdGlvbihjb25zdCBJbnRT
aXplJiB0YXJnZXRQb3NpdGlvbiwgYm9vbCB1c2VBbmNob3IsIGZsb2F0IHNjYWxlLCBkb3VibGUg
ZHVyYXRpb25TZWMpCiB7CiAgICAgbV9wcm94eS0+c3RhcnRQYWdlU2NhbGVBbmltYXRpb24odGFy
Z2V0UG9zaXRpb24sIHVzZUFuY2hvciwgc2NhbGUsIGR1cmF0aW9uU2VjKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0LmgKaW5kZXggZjVlMTEzNGM4MWI0M2UyMTg4NmE1ZDkzNTMwZWU4OGYxOWE0
MDMyNS4uNmYzZDJkNDhjNmVjMjYxZTc5N2I1MjgxYmNmNDg0NTUwMDdlMTBhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0LmgKQEAgLTE4MCw4ICsxODAsNiBAQCBwdWJsaWM6CiAgICAgYm9v
bCB2aXNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV92aXNpYmxlOyB9CiAgICAgdm9pZCBzZXRWaXNp
YmxlKGJvb2wpOwogCi0gICAgdm9pZCBzZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJzKGJvb2wpOwot
CiAgICAgLy8gUmV0dXJucyBmYWxzZSBpZiB3ZSBzaG91bGQgYWJvcnQgdGhpcyBmcmFtZSBkdWUg
dG8gaW5pdGlhbGl6YXRpb24gZmFpbHVyZS4KICAgICBib29sIHVwZGF0ZUxheWVycygpOwogCkBA
IC0yMzUsNyArMjMzLDYgQEAgcHJpdmF0ZToKIAogICAgIEludFNpemUgbV92aWV3cG9ydFNpemU7
CiAgICAgYm9vbCBtX3Zpc2libGU7Ci0gICAgYm9vbCBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnM7
CiAgICAgdHlwZWRlZiBIYXNoTWFwPEdyYXBoaWNzQ29udGV4dDNEKiwgUmVmUHRyPFJhdGVMaW1p
dGVyPiA+IFJhdGVMaW1pdGVyTWFwOwogICAgIFJhdGVMaW1pdGVyTWFwIG1fcmF0ZUxpbWl0ZXJz
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCmluZGV4IDA1NGJlYjMy
ZWU1MzU5Y2JjNWJhNTRmOTFiNmE5NmMxNTQwZmY1YjUuLmRkMWE5NWU5YWIxNDMzYTY0ZTJlZjE4
OTMxNTU1M2I3YjdhOWM3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwu
Y3BwCkBAIC01Miw3ICs1Miw2IEBAIENDTGF5ZXJUcmVlSG9zdEltcGw6OkNDTGF5ZXJUcmVlSG9z
dEltcGwoY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MsIENDTGF5ZXJUcmVlCiAgICAgLCBtX2Zy
YW1lTnVtYmVyKDApCiAgICAgLCBtX3NldHRpbmdzKHNldHRpbmdzKQogICAgICwgbV92aXNpYmxl
KHRydWUpCi0gICAgLCBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMoZmFsc2UpCiAgICAgLCBtX3Bh
Z2VTY2FsZSgxKQogICAgICwgbV9wYWdlU2NhbGVEZWx0YSgxKQogICAgICwgbV9zZW50UGFnZVNj
YWxlRGVsdGEoMSkKQEAgLTQ2NiwxMSArNDY1LDE4IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1w
bDo6c2V0TmVlZHNSZWRyYXcoKQogICAgIG1fY2xpZW50LT5zZXROZWVkc1JlZHJhd09uSW1wbFRo
cmVhZCgpOwogfQogCi1DQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVzIENDTGF5ZXJU
cmVlSG9zdEltcGw6OnNjcm9sbEJlZ2luKGNvbnN0IEludFBvaW50JikKK0NDSW5wdXRIYW5kbGVy
Q2xpZW50OjpTY3JvbGxTdGF0dXMgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2Nyb2xsQmVnaW4oY29u
c3QgSW50UG9pbnQmIHBvaW50LCBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsSW5wdXRUeXBl
IHR5cGUpCiB7CiAgICAgLy8gVE9ETzogQ2hlY2sgZm9yIHNjcm9sbGFibGUgc3VibGF5ZXJzLgot
ICAgIGlmICghbV9zY3JvbGxMYXllckltcGwgfHwgIW1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxh
YmxlKCkpCisgICAgaWYgKCFtX3Njcm9sbExheWVySW1wbCB8fCAhbV9zY3JvbGxMYXllckltcGwt
PnNjcm9sbGFibGUoKSkgeworICAgICAgICBUUkFDRV9FVkVOVCgic2Nyb2xsQmVnaW4gSWdub3Jl
ZCBubyBzY3JvbGxhYmxlIiwgdGhpcywgMCk7CiAgICAgICAgIHJldHVybiBTY3JvbGxJZ25vcmVk
OworICAgIH0KKworICAgIGlmICh0eXBlID09IENDSW5wdXRIYW5kbGVyQ2xpZW50OjpXaGVlbCAm
JiBtX3Njcm9sbExheWVySW1wbC0+aGF2ZVdoZWVsRXZlbnRIYW5kbGVycygpKSB7CisgICAgICAg
IFRSQUNFX0VWRU5UKCJzY3JvbGxCZWdpbiBGYWlsZWQgd2hlZWxFdmVudEhhbmRsZXJzIiwgdGhp
cywgMCk7CisgICAgICAgIHJldHVybiBTY3JvbGxGYWlsZWQ7CisgICAgfQogCiAgICAgcmV0dXJu
IFNjcm9sbFN0YXJ0ZWQ7CiB9CkBAIC00OTAsMTEgKzQ5Niw2IEBAIHZvaWQgQ0NMYXllclRyZWVI
b3N0SW1wbDo6c2Nyb2xsRW5kKCkKIHsKIH0KIAotYm9vbCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpo
YXZlV2hlZWxFdmVudEhhbmRsZXJzKCkKLXsKLSAgICByZXR1cm4gbV9oYXZlV2hlZWxFdmVudEhh
bmRsZXJzOwotfQotCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUJlZ2lu
KCkKIHsKICAgICBtX3BpbmNoR2VzdHVyZUFjdGl2ZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RJbXBsLmgKaW5kZXggODk0OTE1NDJlNDMzZmFhZmVmMjY2YTRlZjFhODlkMDgw
NjBiOWFmZC4uZTY3OTEyNzAwOWU4NDY2ZjZmMWUxYTllOTEyYTJhZDlmOTg0NTU2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaApAQCAtNTksMTAgKzU5LDkgQEAgcHVibGlj
OgogCiAgICAgLy8gQ0NJbnB1dEhhbmRsZXJDbGllbnQgaW1wbGVtZW50YXRpb24KICAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXcoKTsKLSAgICB2aXJ0dWFsIENDSW5wdXRIYW5kbGVyQ2xp
ZW50OjpTY3JvbGxTdGF0dXMgc2Nyb2xsQmVnaW4oY29uc3QgSW50UG9pbnQmKTsKKyAgICB2aXJ0
dWFsIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGF0dXMgc2Nyb2xsQmVnaW4oY29uc3Qg
SW50UG9pbnQmLCBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsSW5wdXRUeXBlKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxFbmQoKTsKLSAgICB2aXJ0dWFsIGJvb2wgaGF2ZVdoZWVsRXZlbnRIYW5kbGVycygpOwog
ICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVCZWdpbigpOwogICAgIHZpcnR1YWwgdm9pZCBw
aW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQsIGNvbnN0IEludFBvaW50Jik7CiAgICAgdmlydHVhbCB2
b2lkIHBpbmNoR2VzdHVyZUVuZCgpOwpAQCAtOTgsNyArOTcsNiBAQCBwdWJsaWM6CiAKICAgICBi
b29sIHZpc2libGUoKSBjb25zdCB7IHJldHVybiBtX3Zpc2libGU7IH0KICAgICB2b2lkIHNldFZp
c2libGUoYm9vbCk7Ci0gICAgdm9pZCBzZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJzKGJvb2wgaGF2
ZVdoZWVsRXZlbnRIYW5kbGVycykgeyBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMgPSBoYXZlV2hl
ZWxFdmVudEhhbmRsZXJzOyB9CiAKICAgICBpbnQgc291cmNlRnJhbWVOdW1iZXIoKSBjb25zdCB7
IHJldHVybiBtX3NvdXJjZUZyYW1lTnVtYmVyOyB9CiAgICAgdm9pZCBzZXRTb3VyY2VGcmFtZU51
bWJlcihpbnQgZnJhbWVOdW1iZXIpIHsgbV9zb3VyY2VGcmFtZU51bWJlciA9IGZyYW1lTnVtYmVy
OyB9CkBAIC0xNDMsNyArMTQxLDYgQEAgcHJpdmF0ZToKICAgICBDQ1NldHRpbmdzIG1fc2V0dGlu
Z3M7CiAgICAgSW50U2l6ZSBtX3ZpZXdwb3J0U2l6ZTsKICAgICBib29sIG1fdmlzaWJsZTsKLSAg
ICBib29sIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVyczsKIAogICAgIGZsb2F0IG1fcGFnZVNjYWxl
OwogICAgIGZsb2F0IG1fcGFnZVNjYWxlRGVsdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKaW5k
ZXggNDBjMTUxZGZkMTljNzhlN2RjZDRhYTljY2U1MDU1MjE3NTkzNDRhMy4uMzk3MzA4YjUyOWNj
NDE3NDcxODdjN2Y4NjdkMTIxYjliMjNmY2FlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcApA
QCAtMTIxLDkgKzEyMSw5IEBAIHZvaWQgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6Omhh
bmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgZXZlbnQpCiAgICAgQVNTRVJUKEND
UHJveHk6OmlzSW1wbFRocmVhZCgpKTsKICAgICBBU1NFUlQobV9jbGllbnQpOwogCi0gICAgaWYg
KGV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6TW91c2VXaGVlbCAmJiAhbV9pbnB1dEhhbmRs
ZXJDbGllbnQtPmhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKSkgeworICAgIGlmIChldmVudC50eXBl
ID09IFdlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWwpIHsKICAgICAgICAgY29uc3QgV2ViTW91c2VX
aGVlbEV2ZW50JiB3aGVlbEV2ZW50ID0gKnN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlV2hlZWxF
dmVudCo+KCZldmVudCk7Ci0gICAgICAgIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGF0
dXMgc2Nyb2xsU3RhdHVzID0gbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEJlZ2luKEludFBv
aW50KHdoZWVsRXZlbnQueCwgd2hlZWxFdmVudC55KSk7CisgICAgICAgIENDSW5wdXRIYW5kbGVy
Q2xpZW50OjpTY3JvbGxTdGF0dXMgc2Nyb2xsU3RhdHVzID0gbV9pbnB1dEhhbmRsZXJDbGllbnQt
PnNjcm9sbEJlZ2luKEludFBvaW50KHdoZWVsRXZlbnQueCwgd2hlZWxFdmVudC55KSwgQ0NJbnB1
dEhhbmRsZXJDbGllbnQ6OldoZWVsKTsKICAgICAgICAgc3dpdGNoIChzY3JvbGxTdGF0dXMpIHsK
ICAgICAgICAgY2FzZSBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhcnRlZDoKICAgICAg
ICAgICAgIG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY3JvbGxCeShJbnRTaXplKC13aGVlbEV2ZW50
LmRlbHRhWCwgLXdoZWVsRXZlbnQuZGVsdGFZKSk7CkBAIC0xNDMsNyArMTQzLDcgQEAgdm9pZCBX
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJ
bnB1dEV2ZW50JiBldmVudCkKICAgICAgICAgbV9leHBlY3RTY3JvbGxVcGRhdGVFbmQgPSB0cnVl
OwogI2VuZGlmCiAgICAgICAgIGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50ID0g
KnN0YXRpY19jYXN0PGNvbnN0IFdlYkdlc3R1cmVFdmVudCo+KCZldmVudCk7Ci0gICAgICAgIEND
SW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGF0dXMgc2Nyb2xsU3RhdHVzID0gbV9pbnB1dEhh
bmRsZXJDbGllbnQtPnNjcm9sbEJlZ2luKEludFBvaW50KGdlc3R1cmVFdmVudC54LCBnZXN0dXJl
RXZlbnQueSkpOworICAgICAgICBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVzIHNj
cm9sbFN0YXR1cyA9IG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY3JvbGxCZWdpbihJbnRQb2ludChn
ZXN0dXJlRXZlbnQueCwgZ2VzdHVyZUV2ZW50LnkpLCBDQ0lucHV0SGFuZGxlckNsaWVudDo6R2Vz
dHVyZSk7CiAgICAgICAgIHN3aXRjaCAoc2Nyb2xsU3RhdHVzKSB7CiAgICAgICAgIGNhc2UgQ0NJ
bnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXJ0ZWQ6CiAgICAgICAgICAgICBtX3Njcm9sbFN0
YXJ0ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CmluZGV4IDgwYTFkOTY4ZjdkYzg2MmRmOWFiMWU0ZmUyNTM3MjYxMDg2YTEzMGQuLmE5YWM4NmU2
ZmNkNzNhM2I5NDIwNWIwNjdjYTRjODlmNzBiZjAxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTk0NywxMyArOTQ3LDggQEAgdm9pZCBXZWJWaWV3
SW1wbDo6Y29tcHV0ZVNjYWxlQW5kU2Nyb2xsRm9ySGl0UmVjdChjb25zdCBXZWJSZWN0JiBoaXRS
ZWN0LCBBdXRvWm8KIAogdm9pZCBXZWJWaWV3SW1wbDo6bnVtYmVyT2ZXaGVlbEV2ZW50SGFuZGxl
cnNDaGFuZ2VkKHVuc2lnbmVkIG51bWJlck9mV2hlZWxIYW5kbGVycykKIHsKLSAgICBtX2hhdmVX
aGVlbEV2ZW50SGFuZGxlcnMgPSBudW1iZXJPZldoZWVsSGFuZGxlcnMgPiAwOwogICAgIGlmICht
X2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPm51bWJlck9mV2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZChudW1iZXJPZldoZWVsSGFuZGxlcnMpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLSAgICBpZiAobV9sYXllclRyZWVIb3N0KQotICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMobV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzKTsKLSNl
bmRpZgogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpudW1iZXJPZlRvdWNoRXZlbnRIYW5kbGVyc0No
YW5nZWQodW5zaWduZWQgbnVtYmVyT2ZUb3VjaEhhbmRsZXJzKQpAQCAtMzE3Niw3ICszMTcxLDYg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGJv
b2wgYWN0aXZlKQogCiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdCA9IENDTGF5ZXJUcmVlSG9zdDo6
Y3JlYXRlKHRoaXMsIGNjU2V0dGluZ3MpOwogICAgICAgICBpZiAobV9sYXllclRyZWVIb3N0KSB7
Ci0gICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMo
bV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzKTsKICAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+
c2V0UGFnZVNjYWxlRmFjdG9yQW5kTGltaXRzKHBhZ2VTY2FsZUZhY3RvcigpLCBtX21pbmltdW1Q
YWdlU2NhbGVGYWN0b3IsIG1fbWF4aW11bVBhZ2VTY2FsZUZhY3Rvcik7CiAgICAgICAgICAgICB1
cGRhdGVMYXllclRyZWVWaWV3cG9ydCgpOwogICAgICAgICAgICAgbV9jbGllbnQtPmRpZEFjdGl2
YXRlQ29tcG9zaXRvcihtX2xheWVyVHJlZUhvc3QtPmNvbXBvc2l0b3JJZGVudGlmaWVyKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggZThkNTNiYjk0NWU1
NzVkYjBhN2I2MjNkNTcyYjdlZTExOGJmZjY5YS4uMzU1OGMxZGY2NDkxMTA3NTdmZDA3OGE1Yjlm
MTE0MzM5YWRhMDlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CkBAIC02OTIsNyArNjkyLDYgQEAgcHJpdmF0ZToKICAgICAvLyBJZiB0cnVlLCB0aGUgZ3JhcGhp
Y3MgY29udGV4dCBpcyBiZWluZyByZXN0b3JlZC4KICAgICBib29sIG1fcmVjcmVhdGluZ0dyYXBo
aWNzQ29udGV4dDsKICNlbmRpZgotICAgIGJvb2wgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzOwog
ICAgIHN0YXRpYyBjb25zdCBXZWJJbnB1dEV2ZW50KiBtX2N1cnJlbnRJbnB1dEV2ZW50OwogCiAj
aWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKaW5kZXggODIwNzMzYjQ3MjA4
YzZlY2ZmMTdjODhhMjUyYjNkZDc4ZDZmZGRkMS4uNDJiMTM4OTQ3ZDY2NWU5YWFlZWZkNWNkMmZk
MjUxZmIzZDMxNTc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKQEAgLTE2MywxMyArMTYzLDI4IEBAIFRF
U1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgc2Nyb2xsUm9vdENhbGxzQ29tbWl0QW5kUmVk
cmF3KQogICAgIHJvb3QtPnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KDAsIDApKTsKICAgICBy
b290LT5zZXRNYXhTY3JvbGxQb3NpdGlvbihJbnRTaXplKDEwMCwgMTAwKSk7CiAgICAgbV9ob3N0
SW1wbC0+c2V0Um9vdExheWVyKHJvb3QpOwotICAgIEVYUEVDVF9FUShtX2hvc3RJbXBsLT5zY3Jv
bGxCZWdpbihJbnRQb2ludCgwLCAwKSksIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGFy
dGVkKTsKKyAgICBFWFBFQ1RfRVEobV9ob3N0SW1wbC0+c2Nyb2xsQmVnaW4oSW50UG9pbnQoMCwg
MCksIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpXaGVlbCksIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpT
Y3JvbGxTdGFydGVkKTsKICAgICBtX2hvc3RJbXBsLT5zY3JvbGxCeShJbnRTaXplKDAsIDEwKSk7
CiAgICAgbV9ob3N0SW1wbC0+c2Nyb2xsRW5kKCk7CiAgICAgRVhQRUNUX1RSVUUobV9kaWRSZXF1
ZXN0UmVkcmF3KTsKICAgICBFWFBFQ1RfVFJVRShtX2RpZFJlcXVlc3RDb21taXQpOwogfQogCitU
RVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHdoZWVsRXZlbnRIYW5kbGVycykKK3sKKyAg
ICBSZWZQdHI8Q0NMYXllckltcGw+IHJvb3QgPSBDQ0xheWVySW1wbDo6Y3JlYXRlKDApOworICAg
IHJvb3QtPnNldFNjcm9sbGFibGUodHJ1ZSk7CisgICAgcm9vdC0+c2V0U2Nyb2xsUG9zaXRpb24o
SW50UG9pbnQoMCwgMCkpOworICAgIHJvb3QtPnNldE1heFNjcm9sbFBvc2l0aW9uKEludFNpemUo
MTAwLCAxMDApKTsKKyAgICBtX2hvc3RJbXBsLT5zZXRSb290TGF5ZXIocm9vdCk7CisgICAgcm9v
dC0+c2V0SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyh0cnVlKTsKKyAgICAvLyBXaXRoIHJlZ2lzdGVy
ZWQgZXZlbnQgaGFuZGxlcnMsIHdoZWVsIHNjcm9sbHMgaGF2ZSB0byBnbyB0byB0aGUgbWFpbiB0
aHJlYWQuCisgICAgRVhQRUNUX0VRKG1faG9zdEltcGwtPnNjcm9sbEJlZ2luKEludFBvaW50KDAs
IDApLCBDQ0lucHV0SGFuZGxlckNsaWVudDo6V2hlZWwpLCBDQ0lucHV0SGFuZGxlckNsaWVudDo6
U2Nyb2xsRmFpbGVkKTsKKworICAgIC8vIEJ1dCBnZXN0dXJlIHNjcm9sbHMgY2FuIHN0aWxsIGJl
IGhhbmRsZWQuCisgICAgRVhQRUNUX0VRKG1faG9zdEltcGwtPnNjcm9sbEJlZ2luKEludFBvaW50
KDAsIDApLCBDQ0lucHV0SGFuZGxlckNsaWVudDo6R2VzdHVyZSksIENDSW5wdXRIYW5kbGVyQ2xp
ZW50OjpTY3JvbGxTdGFydGVkKTsKK30KKwogVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0
LCBwaW5jaEdlc3R1cmUpCiB7CiAgICAgc2V0dXBTY3JvbGxBbmRDb250ZW50c0xheWVycyhJbnRT
aXplKDEwMCwgMTAwKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0xheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5
ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IGQ1NTVhNmIzZDVmY2MwZDc3MTVmZmRhMmNiZjkxZTYx
ZjhiYmI4M2IuLjJlOWNhOTY2MTFjZjI5YjNkZWY2YTRjMWE1ZTJkMzA3Nzc2YjJiMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3Bw
CkBAIC01MTUsNiArNTE1LDcgQEAgVEVTVF9GKExheWVyQ2hyb21pdW1UZXN0LCBjaGVja1Byb3Bl
cnR5Q2hhbmdlQ2F1c2VzQ29ycmVjdEJlaGF2aW9yKQogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9T
RVRfTkVFRFNfQ09NTUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0UmVwbGljYUxheWVyKGR1
bW15TGF5ZXIuZ2V0KCkpKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfU0VUX05FRURTX0NPTU1J
VF9CRUhBVklPUigxLCB0ZXN0TGF5ZXItPnNldFN1YmxheWVyVHJhbnNmb3JtKFRyYW5zZm9ybWF0
aW9uTWF0cml4KDAsIDAsIDAsIDAsIDAsIDApKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NF
VF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5zZXRTY3JvbGxhYmxlKHRydWUp
KTsKKyAgICBFWEVDVVRFX0FORF9WRVJJRllfU0VUX05FRURTX0NPTU1JVF9CRUhBVklPUigxLCB0
ZXN0TGF5ZXItPnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnModHJ1ZSkpOwogICAgIEVYRUNVVEVf
QU5EX1ZFUklGWV9TRVRfTkVFRFNfQ09NTUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0U2Ny
b2xsUG9zaXRpb24oSW50UG9pbnQoMTAsIDEwKSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9T
RVRfTkVFRFNfQ09NTUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0VHJhbnNmb3JtKFRyYW5z
Zm9ybWF0aW9uTWF0cml4KDAsIDAsIDAsIDAsIDAsIDApKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVS
SUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5zZXREb3VibGVTaWRl
ZChmYWxzZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QuY3BwCmluZGV4IGFkNTgx
MDUyNGQ2NGVhZGRlNWExYzM0NWM1Njg4YWIyYTFhMmZlYmQuLjQ1OTI1NWUwMmEyODMzMTlkZmI1
ZTkyOWE4ZDhmNWQ5OTM1YTQ0NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5j
cHAKQEAgLTY3LDE0ICs2NywxMyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIHNldE5lZWRzUmVkcmF3KCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBTY3JvbGxTdGF0
dXMgc2Nyb2xsQmVnaW4oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBPVkVSUklERQorICAgIHZp
cnR1YWwgU2Nyb2xsU3RhdHVzIHNjcm9sbEJlZ2luKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jiwg
V2ViQ29yZTo6Q0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbElucHV0VHlwZSkgT1ZFUlJJREUK
ICAgICB7CiAgICAgICAgIHJldHVybiBtX3Njcm9sbFN0YXR1czsKICAgICB9CiAgICAgdmlydHVh
bCB2b2lkIHNjcm9sbEJ5KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBPVkVSUklERSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsRW5kKCkgT1ZFUlJJREUgeyB9CiAKLSAgICB2aXJ0dWFsIGJv
b2wgaGF2ZVdoZWVsRXZlbnRIYW5kbGVycygpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUJlZ2luKCkgT1ZFUlJJREUKICAgICB7CiAgICAg
ICAgIG1fcGluY2hTdGFydGVkID0gdHJ1ZTsK
</data>
<flag name="review"
          id="130363"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>