<?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>107471</bug_id>
          
          <creation_ts>2013-01-21 12:52:09 -0800</creation_ts>
          <short_desc>Don&apos;t overlap test for composited scroll DIVs after scroll</short_desc>
          <delta_ts>2013-01-29 09:05:57 -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>
          <dependson>106142</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Glenn Hartmann">hartmanng</reporter>
          <assigned_to name="Glenn Hartmann">hartmanng</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>eric</cc>
    
    <cc>noam</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>vollick</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>812340</commentid>
    <comment_count>0</comment_count>
    <who name="Glenn Hartmann">hartmanng</who>
    <bug_when>2013-01-21 12:52:09 -0800</bug_when>
    <thetext>Don&apos;t overlap test for composited scroll DIVs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812348</commentid>
    <comment_count>1</comment_count>
      <attachid>183824</attachid>
    <who name="Glenn Hartmann">hartmanng</who>
    <bug_when>2013-01-21 13:00:58 -0800</bug_when>
    <thetext>Created attachment 183824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812974</commentid>
    <comment_count>2</comment_count>
    <who name="">vollick</who>
    <bug_when>2013-01-22 05:47:40 -0800</bug_when>
    <thetext>I think that, at least for now, it would make sense to only call updateCompositingLayers with the new enumerant if both !hasOutOfFlowPositionedDescendant and usesCompositedScrolling. If both of these are true, we can argue that

a) Since we&apos;re using comp-scrolling, the composited region presented by the composited-scrolling element to other non-descendant layers doesn&apos;t change during composited scrolling (it&apos;s always the entire scroll layer), and

b) Since we have no out of flow positioned descendants, the scrolling descendants all move together, so their overlap with respect to each other cannot change.

So no descendants nor any non-descendants can have their overlap affected, so it&apos;s safe to skip testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813031</commentid>
    <comment_count>3</comment_count>
      <attachid>183986</attachid>
    <who name="Glenn Hartmann">hartmanng</who>
    <bug_when>2013-01-22 07:41:07 -0800</bug_when>
    <thetext>Created attachment 183986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813067</commentid>
    <comment_count>4</comment_count>
      <attachid>183986</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 08:48:12 -0800</bug_when>
    <thetext>Comment on attachment 183986
Patch

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

New failing tests:
css3/flexbox/flexbox-overflow-auto.html
compositing/geometry/limit-layer-bounds-clipping-ancestor.html
fast/body-propagation/overflow/002-xhtml.xhtml
compositing/overflow/automatically-opt-into-composited-scrolling.html
fast/block/float/overhanging-tall-block.html
css2.1/20110323/block-non-replaced-height-016.htm
fast/body-propagation/overflow/003.html
http/tests/eventsource/eventsource-cors-with-credentials.html
compositing/overflow/overflow-scrollbar-layers.html
compositing/overflow/overflow-auto-with-touch-toggle.html
compositing/layer-creation/scroll-partial-update.html
http/tests/inspector/search/search-in-concatenated-script.html
css3/flexbox/child-overflow.html
fast/body-propagation/overflow/007-declarative.xhtml
compositing/geometry/limit-layer-bounds-transformed-overflow.html
css3/flexbox/flexbox-baseline.html
compositing/overflow/clip-content-under-overflow-controls.html
fast/body-propagation/overflow/004-declarative.xhtml
fast/body-propagation/overflow/002.html
fast/body-propagation/overflow/003-declarative.xhtml
compositing/overflow/content-gains-scrollbars.html
http/tests/inspector/search/search-in-script.html
fast/body-propagation/overflow/004-xhtml.xhtml
http/tests/inspector/compiler-source-mapping-debug.html
compositing/layer-creation/overflow-scroll-overlap.html
compositing/overflow/overflow-scroll.html
fast/body-propagation/overflow/004.html
fast/body-propagation/overflow/003-xhtml.xhtml
fast/body-propagation/overflow/007-xhtml.xhtml
http/tests/inspector/resource-tree/resource-tree-reload.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813152</commentid>
    <comment_count>5</comment_count>
      <attachid>184006</attachid>
    <who name="Glenn Hartmann">hartmanng</who>
    <bug_when>2013-01-22 10:27:58 -0800</bug_when>
    <thetext>Created attachment 184006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818939</commentid>
    <comment_count>6</comment_count>
      <attachid>185246</attachid>
    <who name="Glenn Hartmann">hartmanng</who>
    <bug_when>2013-01-29 07:34:43 -0800</bug_when>
    <thetext>Created attachment 185246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818985</commentid>
    <comment_count>7</comment_count>
      <attachid>185252</attachid>
    <who name="Glenn Hartmann">hartmanng</who>
    <bug_when>2013-01-29 08:47:05 -0800</bug_when>
    <thetext>Created attachment 185252
Patch for landing

Fixed typo in changelog: changed &quot;on-descendant&quot; to &quot;non-descendant&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818998</commentid>
    <comment_count>8</comment_count>
      <attachid>185252</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 09:05:52 -0800</bug_when>
    <thetext>Comment on attachment 185252
Patch for landing

Clearing flags on attachment: 185252

Committed r141121: &lt;http://trac.webkit.org/changeset/141121&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818999</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 09:05:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183824</attachid>
            <date>2013-01-21 13:00:58 -0800</date>
            <delta_ts>2013-01-22 07:41:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107471-20130121155753.patch</filename>
            <type>text/plain</type>
            <size>51871</size>
            <attacher name="Glenn Hartmann">hartmanng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM2Y2JkMjE4ZWQ2MTM3
MTE3MTc2NGZiNWU5YjlkNmExNDRiZDAzNC4uNzA3NDM4NzFiMDYzYmM3OTY4NjY4N2ZlNTQ3NTVi
MWRiOTc4NWIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEzLTAxLTIxICBHbGVu
biBIYXJ0bWFubiAgPGhhcnRtYW5uZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3Qgb3Zl
cmxhcCB0ZXN0IGZvciBjb21wb3NpdGVkIHNjcm9sbCBESVZzIGFmdGVyIHNjcm9sbAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NDcxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgZG9uJ3QgbmVlZCB0
byBwZXJmb3JtIG92ZXJsYXAgdGVzdGluZyBmb3IgY29tcG9zaXRlZCBzY3JvbGwgRElWcworICAg
ICAgICBhZnRlciBzY3JvbGwsIGJlY2F1c2UgY29tcG9zaXRlZCBsYXllcnMgc2Nyb2xsIGFzIG9u
ZS4gVGhlcmUgc2hvdWxkIGJlCisgICAgICAgIG5vIG5lZWQgdG8gcmVjYWxjdWxhdGUgb3Zlcmxh
cCBzaW5jZSB0aGUgbGF5ZXJzIHdvbid0IGJlIG1vdmluZworICAgICAgICByZWxhdGl2ZSB0byBl
YWNoIG90aGVyLCBzbyB0aGUgcHJldmlvdXMgb3ZlcmxhcCBkYXRhIGlzIHN0aWxsIHZhbGlkLgor
CisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL292ZXJmbG93L2NvbXBvc2l0ZWQtc2Nyb2xsaW5n
LWNyZWF0ZXMtYS1zdGFja2luZy1jb250ZXh0Lmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JM
YXllclRyZWVBZ2VudDo6YnVpbGRPYmplY3RGb3JMYXllcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJM
YXllcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Ojp1cGRhdGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZVBhZ2luYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmNhbkJlU3RhY2tpbmdDb250YWluZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnNldEhhc1Zpc2libGVDb250ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpkaXJ0eTNEVHJhbnNmb3JtZWREZXNjZW5kYW50U3RhdHVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzdGFja2luZ0NvbnRhaW5lcik6CisgICAgICAg
IChXZWJDb3JlOjpjb21wb3NpdGluZ0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpleHBh
bmRDbGlwUmVjdEZvckRlc2NlbmRhbnRzQW5kUmVmbGVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6YWRkQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnJlbW92ZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVOZWVk
c0NvbXBvc2l0ZWRTY3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVw
ZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnBhaW50UGFnaW5hdGVkQ2hpbGRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6aGl0VGVzdFBhZ2luYXRlZENoaWxkTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUxheWVyQm91bmRzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxpc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpkaXJ0eVN0YWNraW5nQ29udGFpbmVyWk9yZGVyTGlzdHMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnJlYnVpbGRaT3JkZXJMaXN0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6Y29sbGVjdExheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6dXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjp1cGRhdGVDb21wb3NpdGluZ0FuZExheWVyTGlzdHNJZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlU3RhY2tpbmdDb250ZXh0c0FmdGVyU3R5bGVD
aGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgIChSZW5kZXJMYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aXNTdGFja2luZ0NvbnRhaW5lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cG9zWk9yZGVyTGlzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6bmVnWk9yZGVyTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6aXNEaXJ0eVN0YWNraW5nQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpjbGVhclpPcmRlckxpc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjp1cGRhdGVaT3JkZXJMaXN0cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVw
ZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OmNvbXBvc2l0aW5nT3BhY2l0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckJhY2tpbmc6Omhhc1Zpc2libGVOb25Db21wb3NpdGluZ0Rlc2NlbmRhbnRMYXllcnMpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuY2xvc2luZ05vblN0
YWNraW5nQ2xpcHBpbmdMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmFkZFRvT3ZlcmxhcE1hcFJlY3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYnVpbGRDb21wb3NpdGluZ0xh
eWVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZUxheWVyVHJlZUdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdEZXNjZW5kYW50R2VvbWV0cnkpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9zaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllckhhczNE
Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjppc1Jvb3Rtb3N0Rml4ZWRPclN0aWNreUxheWVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisKIDIwMTMt
MDEtMTggIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogbW9kaWZ5IGdlbmVyYXRlX3Byb3RvY29sX2V4dGVybnMucHkgdG8gZ2Vu
ZXJhdGUgSlNPTiB0eXBlZGVmJ3MgZm9yIEBjb25zdHJ1Y3RvcnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhZDQ0
ZDRjMGFmNWU0OGI4NDEwNjNkMzE4NzM4ZDgwNjJmZjU0OTlkLi40YmZlZTBiZWUxMWUxNTllY2Rh
ODExNzc3YjE4NmRhMzE4YWFhZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMt
MDEtMjEgIEdsZW5uIEhhcnRtYW5uICA8aGFydG1hbm5nQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBEb24ndCBvdmVybGFwIHRlc3QgZm9yIGNvbXBvc2l0ZWQgc2Nyb2xsIERJVnMgYWZ0ZXIgc2Ny
b2xsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0
NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBk
b24ndCBuZWVkIHRvIHBlcmZvcm0gb3ZlcmxhcCB0ZXN0aW5nIGZvciBjb21wb3NpdGVkIHNjcm9s
bCBESVZzCisgICAgICAgIGFmdGVyIHNjcm9sbCwgYmVjYXVzZSBjb21wb3NpdGVkIGxheWVycyBz
Y3JvbGwgYXMgb25lLiBUaGVyZSBzaG91bGQgYmUKKyAgICAgICAgbm8gbmVlZCB0byByZWNhbGN1
bGF0ZSBvdmVybGFwIHNpbmNlIHRoZSBsYXllcnMgd29uJ3QgYmUgbW92aW5nCisgICAgICAgIHJl
bGF0aXZlIHRvIGVhY2ggb3RoZXIsIHNvIHRoZSBwcmV2aW91cyBvdmVybGFwIGRhdGEgaXMgc3Rp
bGwgdmFsaWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViS2l0Ojp1cGRh
dGVPZmZzZXRGcm9tVmlld3BvcnRGb3JTZWxmKToKKwogMjAxMy0wMS0yMSAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjEzOTc4MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4IGY1NTgzYzhhMzVhZjkwOWFmNzc0NDEzNDhh
MGYwYWMzY2NjNmU2ZGIuLmM3N2QxMThkZTZlMDI4YzM2YjFjNDBlZGI4YTU4MDZkMDFlYTliYjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJl
ZUFnZW50LmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6Okxh
eWVyVHJlZTo6TGF5ZXI+IEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpidWlsZE9iamVjdEZvCiAg
ICAgaWYgKHJlbmRlckxheWVyLT5yZWZsZWN0aW9uTGF5ZXIoKSkKICAgICAgICAgY2hpbGRyZW5B
cnJheS0+YWRkSXRlbShidWlsZE9iamVjdEZvckxheWVyKHJlbmRlckxheWVyLT5yZWZsZWN0aW9u
TGF5ZXIoKSkpOwogCi0gICAgaWYgKHJlbmRlckxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKSB7
CisgICAgaWYgKHJlbmRlckxheWVyLT5pc1N0YWNraW5nQ29udGFpbmVyKCkpIHsKICAgICAgICAg
aWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0gcmVuZGVyTGF5ZXItPm5l
Z1pPcmRlckxpc3QoKSkgewogICAgICAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gbmVnWk9yZGVy
TGlzdC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6
ZTsgKytpKQpAQCAtMTYzLDcgKzE2Myw3IEBAIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkxheWVy
VHJlZTo6TGF5ZXI+IEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpidWlsZE9iamVjdEZvCiAgICAg
ICAgICAgICBjaGlsZHJlbkFycmF5LT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9yTGF5ZXIobm9ybWFs
Rmxvd0xpc3QtPmF0KGkpKSk7CiAgICAgfQogICAgIAotICAgIGlmIChyZW5kZXJMYXllci0+aXNT
dGFja2luZ0NvbnRleHQoKSkgeworICAgIGlmIChyZW5kZXJMYXllci0+aXNTdGFja2luZ0NvbnRh
aW5lcigpKSB7CiAgICAgICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlz
dCA9IHJlbmRlckxheWVyLT5wb3NaT3JkZXJMaXN0KCkpIHsKICAgICAgICAgICAgIHNpemVfdCBs
aXN0U2l6ZSA9IHBvc1pPcmRlckxpc3QtPnNpemUoKTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IGI4OWNjZDMxNzQ0M2EyYmUxYmNhMDUxMDJiYzlhOGIxYTM3ZThiYmEu
LjQ3Nzc1ZGUwYzM4YjJiODE4YzYzYjQwNzA1YzMwZGM5NmE0ZjM4ODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTk2LDkgKzE5Niw5IEBAIFJlbmRlckxh
eWVyOjpSZW5kZXJMYXllcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZW5kZXJlcikKICAgICBt
X2lzTm9ybWFsRmxvd09ubHkgPSBzaG91bGRCZU5vcm1hbEZsb3dPbmx5KCk7CiAgICAgbV9pc1Nl
bGZQYWludGluZ0xheWVyID0gc2hvdWxkQmVTZWxmUGFpbnRpbmdMYXllcigpOwogCi0gICAgLy8g
Tm9uLXN0YWNraW5nIGNvbnRleHRzIHNob3VsZCBoYXZlIGVtcHR5IHotb3JkZXIgbGlzdHMuIEFz
IHRoaXMgaXMgYWxyZWFkeSB0aGUgY2FzZSwKKyAgICAvLyBOb24tc3RhY2tpbmcgY29udGFpbmVy
cyBzaG91bGQgaGF2ZSBlbXB0eSB6LW9yZGVyIGxpc3RzLiBBcyB0aGlzIGlzIGFscmVhZHkgdGhl
IGNhc2UsCiAgICAgLy8gdGhlcmUgaXMgbm8gbmVlZCB0byBkaXJ0eSAvIHJlY29tcHV0ZSB0aGVz
ZSBsaXN0cy4KLSAgICBtX3pPcmRlckxpc3RzRGlydHkgPSBpc1N0YWNraW5nQ29udGV4dCgpOwor
ICAgIG1fek9yZGVyTGlzdHNEaXJ0eSA9IGlzU3RhY2tpbmdDb250YWluZXIoKTsKIAogICAgIFNj
cm9sbGFibGVBcmVhOjpzZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZShmYWxzZSk7
CiAKQEAgLTUyMiwxMCArNTIyLDEwIEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSBjb25zdAogICAgICAgICAmJiByZW5k
ZXJlcigpLT5mcmFtZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPmFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKTsKIH0KIAotLy8gSWYgd2UgYXJlIGEgc3RhY2tp
bmcgY29udGV4dCwgdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwgZGV0ZXJtaW5lIGlmIG91cgorLy8g
SWYgd2UgYXJlIGEgc3RhY2tpbmcgY29udGFpbmVyLCB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBk
ZXRlcm1pbmUgaWYgb3VyCiAvLyBkZXNjZW5kYW50cyBmb3IgYSBjb250aWd1b3VzIGJsb2NrIGlu
IHN0YWNraW5nIG9yZGVyLiBUaGlzIGlzIHJlcXVpcmVkIGluCi0vLyBvcmRlciBmb3IgYW4gZWxl
bWVudCB0byBiZSBzYWZlbHkgcHJvbW90ZWQgdG8gYSBzdGFja2luZyBjb250ZXh0LiBJdCBpcyBz
YWZlCi0vLyB0byBiZWNvbWUgYSBzdGFja2luZyBjb250ZXh0IGlmIHRoaXMgY2hhbmdlIHdvdWxk
IG5vdCBhbHRlciB0aGUgc3RhY2tpbmcKKy8vIG9yZGVyIGZvciBhbiBlbGVtZW50IHRvIGJlIHNh
ZmVseSBwcm9tb3RlZCB0byBhIHN0YWNraW5nIGNvbnRhaW5lci4gSXQgaXMgc2FmZQorLy8gdG8g
YmVjb21lIGEgc3RhY2tpbmcgY29udGFpbmVyIGlmIHRoaXMgY2hhbmdlIHdvdWxkIG5vdCBhbHRl
ciB0aGUgc3RhY2tpbmcKIC8vIG9yZGVyIG9mIGxheWVycyBvbiB0aGUgcGFnZS4gVGhhdCBjYW4g
b25seSBoYXBwZW4gaWYgYSBub24tZGVzY2VuZGFudCBhcHBlYXIKIC8vIGJldHdlZW4gdXMgYW5k
IG91ciBkZXNjZW5kYW50cyBpbiBzdGFja2luZyBvcmRlci4gSGVyZSdzIGFuIGV4YW1wbGU6CiAv
LwpAQCAtNTM4LDggKzUzOCw4IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSBjb25zdAogLy8gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDUKIC8vCiAvLyBJJ3ZlIGxhYmVsZWQgb3VyIG5vcm1hbCBmbG93
IGRlc2NlbmRhbnRzIEEsIEIsIEMsIGFuZCBELCBvdXIgc3RhY2tpbmcKLS8vIGNvbnRleHQgZGVz
Y2VuZGFudHMgd2l0aCB0aGVpciB6IGluZGljZXMsIGFuZCB1cyB3aXRoICd0aGlzJyAod2UncmUg
YQotLy8gc3RhY2tpbmcgY29udGV4dCBhbmQgb3VyIHpJbmRleCBkb2Vzbid0IG1hdHRlciBoZXJl
KS4gVGhlc2Ugbm9kZXMgYXBwZWFyIGluCisvLyBjb250YWluZXIgZGVzY2VuZGFudHMgd2l0aCB0
aGVpciB6IGluZGljZXMsIGFuZCB1cyB3aXRoICd0aGlzJyAod2UncmUgYQorLy8gc3RhY2tpbmcg
Y29udGFpbmVyIGFuZCBvdXIgekluZGV4IGRvZXNuJ3QgbWF0dGVyIGhlcmUpLiBUaGVzZSBub2Rl
cyBhcHBlYXIgaW4KIC8vIHRocmVlIGxpc3RzOiBwb3NaT3JkZXIsIG5lZ1pPcmRlciwgYW5kIG5v
cm1hbCBmbG93IChrZWVwIGluIG1pbmQgdGhhdCBub3JtYWwKIC8vIGZsb3cgbGF5ZXJzIGRvbid0
IG92ZXJsYXApLiBTbyBpZiB3ZSBhcnJhbmdlIHRoZXNlIGxpc3RzIGluIG9yZGVyIHdlIGdldCBv
dXIKIC8vIHN0YWNraW5nIG9yZGVyOgpAQCAtNTU1LDEwICs1NTUsMTAgQEAgYm9vbCBSZW5kZXJM
YXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNv
bnN0CiAvLwogLy8gTm90ZSB0aGF0IHRoZSBub3JtYWwgZmxvdyBkZXNjZW5kYW50cyBjYW4gc2hh
cmUgYW4gaW5kZXggYmVjYXVzZSB0aGV5IGRvbid0CiAvLyBzdGFjay9vdmVybGFwLiBOb3cgb3Vy
IHByb2JsZW0gYmVjb21lcyB2ZXJ5IHNpbXBsZTogYSBsYXllciBjYW4gc2FmZWx5IGJlY29tZQot
Ly8gYSBzdGFja2luZyBjb250ZXh0IGlmIHRoZSBzdGFja2luZy1vcmRlciBpbmRpY2VzIG9mIGl0
IGFuZCBpdHMgZGVzY2VuZGFudHMKKy8vIGEgc3RhY2tpbmcgY29udGFpbmVyIGlmIHRoZSBzdGFj
a2luZy1vcmRlciBpbmRpY2VzIG9mIGl0IGFuZCBpdHMgZGVzY2VuZGFudHMKIC8vIGFwcGVhciBp
biBhIGNvbnRpZ3VvdXMgYmxvY2sgaW4gdGhlIGxpc3Qgb2Ygc3RhY2tpbmcgaW5kaWNlcy4gVGhp
cyBwcm9ibGVtCiAvLyBjYW4gYmUgc29sdmVkIHZlcnkgZWZmaWNpZW50bHkgYnkgY2FsY3VsYXRp
bmcgdGhlIG1pbi9tYXggc3RhY2tpbmcgaW5kaWNlcyBpbgotLy8gdGhlIHN1YnRyZWUsIGFuZCB0
aGUgbnVtYmVyIHN0YWNraW5nIGNvbnRleHQgZGVzY2VuZGFudHMuIE9uY2Ugd2UgaGF2ZSB0aGlz
CisvLyB0aGUgc3VidHJlZSwgYW5kIHRoZSBudW1iZXIgc3RhY2tpbmcgY29udGFpbmVyIGRlc2Nl
bmRhbnRzLiBPbmNlIHdlIGhhdmUgdGhpcwogLy8gaW5mb3JtYXRpb24sIHdlIGtub3cgdGhhdCB0
aGUgc3VidHJlZSdzIGluZGljZXMgZm9ybSBhIGNvbnRpZ3VvdXMgYmxvY2sgaWY6CiAvLwogLy8g
ICAgICAgICAgIG1heFN0YWNrSW5kZXggLSBtaW5TdGFja0luZGV4ID09IG51bVNDRGVzY2VuZGFu
dHMKQEAgLTU3Myw3ICs1NzMsNyBAQCBib29sIFJlbmRlckxheWVyOjphY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkgY29uc3QKIC8vICA9PT0+ICAgICAgICAg
ICAgICAgICAgICAgIDEgLSAoLTEpID09IDIKIC8vICA9PT0+ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyID09IDIKIC8vCi0vLyAgU2luY2UgdGhpcyBpcyB0cnVlLCBBIGNhbiBzYWZlbHkg
YmVjb21lIGEgc3RhY2tpbmcgY29udGV4dC4KKy8vICBTaW5jZSB0aGlzIGlzIHRydWUsIEEgY2Fu
IHNhZmVseSBiZWNvbWUgYSBzdGFja2luZyBjb250YWluZXIuCiAvLyAgTm93LCBmb3Igbm9kZSBD
IHdlIGhhdmU6CiAvLwogLy8gICBtYXhTdGFja0luZGV4ID0gNApAQCAtNTg1LDcgKzU4NSw3IEBA
IGJvb2wgUmVuZGVyTGF5ZXI6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9s
bEVuYWJsZWQoKSBjb25zdAogLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgICAgNCAtIDAg
PT0gMgogLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQgPT0gMgogLy8KLS8v
IFNpbmNlIHRoaXMgaXMgZmFsc2UsIEMgY2Fubm90IGJlIHNhZmVseSBwcm9tb3RlZCB0byBhIHN0
YWNraW5nIGNvbnRleHQuIFRoaXMKKy8vIFNpbmNlIHRoaXMgaXMgZmFsc2UsIEMgY2Fubm90IGJl
IHNhZmVseSBwcm9tb3RlZCB0byBhIHN0YWNraW5nIGNvbnRhaW5lci4gVGhpcwogLy8gaGFwcGVu
ZWQgYmVjYXVzZSBvZiB0aGUgZWxlbWVudHMgd2l0aCB6LWluZGV4IDUgYW5kIDAuIE5vdyBpZiA1
IGhhZCBiZWVuIGEKIC8vIGNoaWxkIG9mIEMgcmF0aGVyIHRoYW4gRCwgYW5kIEEgaGFkIG5vIGNo
aWxkIHdpdGggWiBpbmRleCAwLCB3ZSB3b3VsZCBoYXZlIGhhZDoKIC8vCkBAIC02MDcsMjUgKzYw
NywyOSBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJ
blN0YWNraW5nT3JkZXIoKQogICAgIEFTU0VSVCghbV9ub3JtYWxGbG93TGlzdERpcnR5KTsKICAg
ICBBU1NFUlQoIW1fek9yZGVyTGlzdHNEaXJ0eSk7CiAKKyAgICBPd25QdHI8VmVjdG9yPFJlbmRl
ckxheWVyKj4gPiBwb3NaT3JkZXJMaXN0OworICAgIE93blB0cjxWZWN0b3I8UmVuZGVyTGF5ZXIq
PiA+IG5lZ1pPcmRlckxpc3Q7CisgICAgcmVidWlsZFpPcmRlckxpc3RzKFN0b3BBdFN0YWNraW5n
Q29udGV4dHMsIHBvc1pPcmRlckxpc3QsIG5lZ1pPcmRlckxpc3QpOworCiAgICAgLy8gQ3JlYXRl
IGEgcmV2ZXJzZSBsb29rdXAuCiAgICAgSGFzaE1hcDxjb25zdCBSZW5kZXJMYXllciosIGludD4g
bG9va3VwOwogCi0gICAgaWYgKG1fbmVnWk9yZGVyTGlzdCkgeworICAgIGlmIChuZWdaT3JkZXJM
aXN0KSB7CiAgICAgICAgIGludCBzdGFja2luZ09yZGVySW5kZXggPSAtMTsKLSAgICAgICAgc2l6
ZV90IGxpc3RTaXplID0gbV9uZWdaT3JkZXJMaXN0LT5zaXplKCk7CisgICAgICAgIHNpemVfdCBs
aXN0U2l6ZSA9IG5lZ1pPcmRlckxpc3QtPnNpemUoKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBSZW5kZXJMYXllciogY3VycmVu
dExheWVyID0gbV9uZWdaT3JkZXJMaXN0LT5hdChsaXN0U2l6ZSAtIGkgLSAxKTsKKyAgICAgICAg
ICAgIFJlbmRlckxheWVyKiBjdXJyZW50TGF5ZXIgPSBuZWdaT3JkZXJMaXN0LT5hdChsaXN0U2l6
ZSAtIGkgLSAxKTsKICAgICAgICAgICAgIGlmICghY3VycmVudExheWVyLT5pc1N0YWNraW5nQ29u
dGV4dCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgbG9va3VwLnNl
dChjdXJyZW50TGF5ZXIsIHN0YWNraW5nT3JkZXJJbmRleC0tKTsKICAgICAgICAgfQogICAgIH0K
IAotICAgIGlmIChtX3Bvc1pPcmRlckxpc3QpIHsKLSAgICAgICAgc2l6ZV90IGxpc3RTaXplID0g
bV9wb3NaT3JkZXJMaXN0LT5zaXplKCk7CisgICAgaWYgKHBvc1pPcmRlckxpc3QpIHsKKyAgICAg
ICAgc2l6ZV90IGxpc3RTaXplID0gcG9zWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICBpbnQg
c3RhY2tpbmdPcmRlckluZGV4ID0gMTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBs
aXN0U2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBSZW5kZXJMYXllciogY3VycmVudExheWVyID0g
bV9wb3NaT3JkZXJMaXN0LT5hdChpKTsKKyAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJyZW50
TGF5ZXIgPSBwb3NaT3JkZXJMaXN0LT5hdChpKTsKICAgICAgICAgICAgIGlmICghY3VycmVudExh
eWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgbG9va3VwLnNldChjdXJyZW50TGF5ZXIsIHN0YWNraW5nT3JkZXJJbmRleCsrKTsK
QEAgLTkxNSwyMSArOTE5LDIxIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVBhZ2luYXRpb24o
KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gSWYgd2UncmUgbm90IG5vcm1hbCBm
bG93LCB0aGVuIHdlIG5lZWQgdG8gbG9vayBmb3IgYSBtdWx0aS1jb2x1bW4gb2JqZWN0IGJldHdl
ZW4gdXMgYW5kIG91ciBzdGFja2luZyBjb250ZXh0LgotICAgIFJlbmRlckxheWVyKiBhbmNlc3Rv
clN0YWNraW5nQ29udGV4dCA9IHN0YWNraW5nQ29udGV4dCgpOworICAgIC8vIElmIHdlJ3JlIG5v
dCBub3JtYWwgZmxvdywgdGhlbiB3ZSBuZWVkIHRvIGxvb2sgZm9yIGEgbXVsdGktY29sdW1uIG9i
amVjdCBiZXR3ZWVuIHVzIGFuZCBvdXIgc3RhY2tpbmcgY29udGFpbmVyLgorICAgIFJlbmRlckxh
eWVyKiBhbmNlc3RvclN0YWNraW5nQ29udGFpbmVyID0gc3RhY2tpbmdDb250YWluZXIoKTsKICAg
ICBmb3IgKFJlbmRlckxheWVyKiBjdXJyID0gcGFyZW50KCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5w
YXJlbnQoKSkgewogICAgICAgICBpZiAoY3Vyci0+cmVuZGVyZXIoKS0+aGFzQ29sdW1ucygpKSB7
CiAgICAgICAgICAgICBtX2lzUGFnaW5hdGVkID0gY2hlY2tDb250YWluaW5nQmxvY2tDaGFpbkZv
clBhZ2luYXRpb24ocmVuZGVyZXIoKSwgY3Vyci0+cmVuZGVyQm94KCkpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmIChjdXJyID09IGFuY2VzdG9yU3RhY2tpbmdD
b250ZXh0KQorICAgICAgICBpZiAoY3VyciA9PSBhbmNlc3RvclN0YWNraW5nQ29udGFpbmVyKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIH0KIAotYm9vbCBSZW5kZXJMYXllcjo6Y2FuU2Fm
ZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0Citib29sIFJlbmRlckxheWVyOjpj
YW5CZVN0YWNraW5nQ29udGFpbmVyKCkgY29uc3QKIHsKLSAgICBpZiAoaXNTdGFja2luZ0NvbnRl
eHQoKSB8fCAhc3RhY2tpbmdDb250ZXh0KCkpCisgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0KCkg
fHwgIXN0YWNraW5nQ29udGFpbmVyKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0
dXJuIG1fZGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyOwpAQCAtOTQ3LDkg
Kzk1MSw5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEhhc1Zpc2libGVDb250ZW50KCkKICAgICBj
b21wdXRlUmVwYWludFJlY3RzKHJlbmRlcmVyKCktPmNvbnRhaW5lckZvclJlcGFpbnQoKSk7CiAg
ICAgaWYgKCFpc05vcm1hbEZsb3dPbmx5KCkpIHsKICAgICAgICAgLy8gV2UgZG9uJ3QgY29sbGVj
dCBpbnZpc2libGUgbGF5ZXJzIGluIHotb3JkZXIgbGlzdHMgaWYgd2UgYXJlIG5vdCBpbiBjb21w
b3NpdGluZyBtb2RlLgotICAgICAgICAvLyBBcyB3ZSBiZWNhbWUgdmlzaWJsZSwgd2UgbmVlZCB0
byBkaXJ0eSBvdXIgc3RhY2tpbmcgY29udGV4dHMgYW5jZXN0b3JzIHRvIGJlIHByb3Blcmx5Cisg
ICAgICAgIC8vIEFzIHdlIGJlY2FtZSB2aXNpYmxlLCB3ZSBuZWVkIHRvIGRpcnR5IG91ciBzdGFj
a2luZyBjb250YWluZXJzIGFuY2VzdG9ycyB0byBiZSBwcm9wZXJseQogICAgICAgICAvLyBjb2xs
ZWN0ZWQuIEZJWE1FOiBXaGVuIGNvbXBvc2l0aW5nLCB3ZSBjb3VsZCBza2lwIHRoaXMgZGlydHlp
bmcgcGhhc2UuCi0gICAgICAgIGZvciAoUmVuZGVyTGF5ZXIqIHNjID0gc3RhY2tpbmdDb250ZXh0
KCk7IHNjOyBzYyA9IHNjLT5zdGFja2luZ0NvbnRleHQoKSkgeworICAgICAgICBmb3IgKFJlbmRl
ckxheWVyKiBzYyA9IHN0YWNraW5nQ29udGFpbmVyKCk7IHNjOyBzYyA9IHNjLT5zdGFja2luZ0Nv
bnRhaW5lcigpKSB7CiAgICAgICAgICAgICBzYy0+ZGlydHlaT3JkZXJMaXN0cygpOwogICAgICAg
ICAgICAgaWYgKHNjLT5oYXNWaXNpYmxlQ29udGVudCgpKQogICAgICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMTA2OCwxNSArMTA3MiwxNSBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVEZXNjZW5k
YW50RGVwZW5kZW50RmxhZ3MoSGFzaFNldDxjb25zdCBSZW5kZXJPYmplY3QqPiogbwogCiB2b2lk
IFJlbmRlckxheWVyOjpkaXJ0eTNEVHJhbnNmb3JtZWREZXNjZW5kYW50U3RhdHVzKCkKIHsKLSAg
ICBSZW5kZXJMYXllciogY3VyciA9IHN0YWNraW5nQ29udGV4dCgpOworICAgIFJlbmRlckxheWVy
KiBjdXJyID0gc3RhY2tpbmdDb250YWluZXIoKTsKICAgICBpZiAoY3VycikKICAgICAgICAgY3Vy
ci0+bV8zRFRyYW5zZm9ybWVkRGVzY2VuZGFudFN0YXR1c0RpcnR5ID0gdHJ1ZTsKICAgICAgICAg
CiAgICAgLy8gVGhpcyBwcm9wYWdhdGVzIHVwIHRocm91Z2ggcHJlc2VydmUtM2QgaGllcmFyY2hp
ZXMgdG8gdGhlIGVuY2xvc2luZyBmbGF0dGVuaW5nIGxheWVyLgotICAgIC8vIE5vdGUgdGhhdCBw
cmVzZXJ2ZXMzRCgpIGNyZWF0ZXMgc3RhY2tpbmcgY29udGV4dCwgc28gd2UgY2FuIGp1c3QgcnVu
IHVwIHRoZSBzdGFja2luZyBjb250ZXh0cy4KKyAgICAvLyBOb3RlIHRoYXQgcHJlc2VydmVzM0Qo
KSBjcmVhdGVzIHN0YWNraW5nIGNvbnRleHQsIHNvIHdlIGNhbiBqdXN0IHJ1biB1cCB0aGUgc3Rh
Y2tpbmcgY29udGFpbmVycy4KICAgICB3aGlsZSAoY3VyciAmJiBjdXJyLT5wcmVzZXJ2ZXMzRCgp
KSB7CiAgICAgICAgIGN1cnItPm1fM0RUcmFuc2Zvcm1lZERlc2NlbmRhbnRTdGF0dXNEaXJ0eSA9
IHRydWU7Ci0gICAgICAgIGN1cnIgPSBjdXJyLT5zdGFja2luZ0NvbnRleHQoKTsKKyAgICAgICAg
Y3VyciA9IGN1cnItPnN0YWNraW5nQ29udGFpbmVyKCk7CiAgICAgfQogfQogCkBAIC0xMjM5LDEz
ICsxMjQzLDEzIEBAIEZsb2F0UG9pbnQgUmVuZGVyTGF5ZXI6OnBlcnNwZWN0aXZlT3JpZ2luKCkg
Y29uc3QKICAgICAgICAgICAgICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHN0eWxlLT5w
ZXJzcGVjdGl2ZU9yaWdpblkoKSwgYm9yZGVyQm94LmhlaWdodCgpKSk7CiB9CiAKLVJlbmRlckxh
eWVyKiBSZW5kZXJMYXllcjo6c3RhY2tpbmdDb250ZXh0KCkgY29uc3QKK1JlbmRlckxheWVyKiBS
ZW5kZXJMYXllcjo6c3RhY2tpbmdDb250YWluZXIoKSBjb25zdAogewogICAgIFJlbmRlckxheWVy
KiBsYXllciA9IHBhcmVudCgpOwotICAgIHdoaWxlIChsYXllciAmJiAhbGF5ZXItPmlzU3RhY2tp
bmdDb250ZXh0KCkpCisgICAgd2hpbGUgKGxheWVyICYmICFsYXllci0+aXNTdGFja2luZ0NvbnRh
aW5lcigpKQogICAgICAgICBsYXllciA9IGxheWVyLT5wYXJlbnQoKTsKIAotICAgIEFTU0VSVCgh
bGF5ZXIgfHwgbGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpOworICAgIEFTU0VSVCghbGF5ZXIg
fHwgbGF5ZXItPmlzU3RhY2tpbmdDb250YWluZXIoKSk7CiAgICAgcmV0dXJuIGxheWVyOwogfQog
CkBAIC0xMjk1LDcgKzEyOTksNyBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmVuY2xvc2lu
Z1RyYW5zZm9ybWVkQW5jZXN0b3IoKSBjb25zdAogCiBzdGF0aWMgaW5saW5lIGNvbnN0IFJlbmRl
ckxheWVyKiBjb21wb3NpdGluZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllciogbGF5ZXIpCiB7
Ci0gICAgcmV0dXJuIGxheWVyLT5pc05vcm1hbEZsb3dPbmx5KCkgPyBsYXllci0+cGFyZW50KCkg
OiBsYXllci0+c3RhY2tpbmdDb250ZXh0KCk7CisgICAgcmV0dXJuIGxheWVyLT5pc05vcm1hbEZs
b3dPbmx5KCkgPyBsYXllci0+cGFyZW50KCkgOiBsYXllci0+c3RhY2tpbmdDb250YWluZXIoKTsK
IH0KIAogaW5saW5lIGJvb2wgUmVuZGVyTGF5ZXI6OnNob3VsZFJlcGFpbnRBZnRlckxheW91dCgp
IGNvbnN0CkBAIC0xNTA5LDcgKzE1MTMsNyBAQCBzdGF0aWMgdm9pZCBleHBhbmRDbGlwUmVjdEZv
ckRlc2NlbmRhbnRzQW5kUmVmbGVjdGlvbihMYXlvdXRSZWN0JiBjbGlwUmVjdCwgY29ucwogICAg
IC8vIG5vIG5lZWQgdG8gZXhhbWluZSBjaGlsZCBsYXllcnMpLgogICAgIGlmICghbGF5ZXItPnJl
bmRlcmVyKCktPmhhc01hc2soKSkgewogICAgICAgICAvLyBOb3RlOiB3ZSBkb24ndCBoYXZlIHRv
IHdhbGsgei1vcmRlciBsaXN0cyBzaW5jZSB0cmFuc3BhcmVudCBlbGVtZW50cyBhbHdheXMgZXN0
YWJsaXNoCi0gICAgICAgIC8vIGEgc3RhY2tpbmcgY29udGV4dC4gIFRoaXMgbWVhbnMgd2UgY2Fu
IGp1c3Qgd2FsayB0aGUgbGF5ZXIgdHJlZSBkaXJlY3RseS4KKyAgICAgICAgLy8gYSBzdGFja2lu
ZyBjb250YWluZXIuIFRoaXMgbWVhbnMgd2UgY2FuIGp1c3Qgd2FsayB0aGUgbGF5ZXIgdHJlZSBk
aXJlY3RseS4KICAgICAgICAgZm9yIChSZW5kZXJMYXllciogY3VyciA9IGxheWVyLT5maXJzdENo
aWxkKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgICAgICBp
ZiAoIWxheWVyLT5yZWZsZWN0aW9uKCkgfHwgbGF5ZXItPnJlZmxlY3Rpb25MYXllcigpICE9IGN1
cnIpCiAgICAgICAgICAgICAgICAgY2xpcFJlY3QudW5pdGUodHJhbnNwYXJlbmN5Q2xpcEJveChj
dXJyLCByb290TGF5ZXIsIHBhaW50QmVoYXZpb3IpKTsKQEAgLTE2MjQsMTAgKzE2MjgsMTAgQEAg
dm9pZCBSZW5kZXJMYXllcjo6YWRkQ2hpbGQoUmVuZGVyTGF5ZXIqIGNoaWxkLCBSZW5kZXJMYXll
ciogYmVmb3JlQ2hpbGQpCiAgICAgICAgIGRpcnR5Tm9ybWFsRmxvd0xpc3QoKTsKIAogICAgIGlm
ICghY2hpbGQtPmlzTm9ybWFsRmxvd09ubHkoKSB8fCBjaGlsZC0+Zmlyc3RDaGlsZCgpKSB7Ci0g
ICAgICAgIC8vIERpcnR5IHRoZSB6LW9yZGVyIGxpc3QgaW4gd2hpY2ggd2UgYXJlIGNvbnRhaW5l
ZC4gIFRoZSBzdGFja2luZ0NvbnRleHQoKSBjYW4gYmUgbnVsbCBpbiB0aGUKLSAgICAgICAgLy8g
Y2FzZSB3aGVyZSB3ZSdyZSBidWlsZGluZyB1cCBnZW5lcmF0ZWQgY29udGVudCBsYXllcnMuICBU
aGlzIGlzIG9rLCBzaW5jZSB0aGUgbGlzdHMgd2lsbCBzdGFydAorICAgICAgICAvLyBEaXJ0eSB0
aGUgei1vcmRlciBsaXN0IGluIHdoaWNoIHdlIGFyZSBjb250YWluZWQuIFRoZSBzdGFja2luZ0Nv
bnRhaW5lcigpIGNhbiBiZSBudWxsIGluIHRoZQorICAgICAgICAvLyBjYXNlIHdoZXJlIHdlJ3Jl
IGJ1aWxkaW5nIHVwIGdlbmVyYXRlZCBjb250ZW50IGxheWVycy4gVGhpcyBpcyBvaywgc2luY2Ug
dGhlIGxpc3RzIHdpbGwgc3RhcnQKICAgICAgICAgLy8gb2ZmIGRpcnR5IGluIHRoYXQgY2FzZSBh
bnl3YXkuCi0gICAgICAgIGNoaWxkLT5kaXJ0eVN0YWNraW5nQ29udGV4dFpPcmRlckxpc3RzKCk7
CisgICAgICAgIGNoaWxkLT5kaXJ0eVN0YWNraW5nQ29udGFpbmVyWk9yZGVyTGlzdHMoKTsKICAg
ICB9CiAKICAgICBjaGlsZC0+dXBkYXRlRGVzY2VuZGFudERlcGVuZGVudEZsYWdzKCk7CkBAIC0x
NjY4LDggKzE2NzIsOCBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OnJlbW92ZUNoaWxkKFJl
bmRlckxheWVyKiBvbGRDaGlsZCkKICAgICBpZiAoIW9sZENoaWxkLT5pc05vcm1hbEZsb3dPbmx5
KCkgfHwgb2xkQ2hpbGQtPmZpcnN0Q2hpbGQoKSkgeyAKICAgICAgICAgLy8gRGlydHkgdGhlIHot
b3JkZXIgbGlzdCBpbiB3aGljaCB3ZSBhcmUgY29udGFpbmVkLiAgV2hlbiBjYWxsZWQgdmlhIHRo
ZQogICAgICAgICAvLyByZWF0dGFjaG1lbnQgcHJvY2VzcyBpbiByZW1vdmVPbmx5VGhpc0xheWVy
LCB0aGUgbGF5ZXIgbWF5IGFscmVhZHkgYmUgZGlzY29ubmVjdGVkCi0gICAgICAgIC8vIGZyb20g
dGhlIG1haW4gbGF5ZXIgdHJlZSwgc28gd2UgbmVlZCB0byBudWxsLWNoZWNrIHRoZSB8c3RhY2tp
bmdDb250ZXh0fCB2YWx1ZS4KLSAgICAgICAgb2xkQ2hpbGQtPmRpcnR5U3RhY2tpbmdDb250ZXh0
Wk9yZGVyTGlzdHMoKTsKKyAgICAgICAgLy8gZnJvbSB0aGUgbWFpbiBsYXllciB0cmVlLCBzbyB3
ZSBuZWVkIHRvIG51bGwtY2hlY2sgdGhlIHxzdGFja2luZ0NvbnRhaW5lcnwgdmFsdWUuCisgICAg
ICAgIG9sZENoaWxkLT5kaXJ0eVN0YWNraW5nQ29udGFpbmVyWk9yZGVyTGlzdHMoKTsKICAgICB9
CiAKICAgICBpZiAoKG9sZENoaWxkLT5yZW5kZXJlcigpICYmIG9sZENoaWxkLT5yZW5kZXJlcigp
LT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgfHwgb2xkQ2hpbGQtPmhhc091dE9mRmxvd1Bvc2l0
aW9uZWREZXNjZW5kYW50KCkpCkBAIC0xOTA0LDcgKzE5MDgsNyBAQCB2b2lkIFJlbmRlckxheWVy
Ojp1cGRhdGVOZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKQogICAgICAgICBtX25lZWRzQ29tcG9z
aXRlZFNjcm9sbGluZyA9IGZhbHNlOwogICAgIGVsc2UgewogICAgICAgICBib29sIGZvcmNlVXNl
Q29tcG9zaXRlZFNjcm9sbGluZyA9IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Nj
cm9sbEVuYWJsZWQoKQotICAgICAgICAgICAgJiYgY2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5n
Q29udGV4dCgpCisgICAgICAgICAgICAmJiBjYW5CZVN0YWNraW5nQ29udGFpbmVyKCkKICAgICAg
ICAgICAgICYmICFoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCgpOwogCiAjaWYgRU5B
QkxFKEFDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykKQEAgLTE5MTQsOCArMTkxOCwyMiBA
QCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVOZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKQogI2Vu
ZGlmCiAgICAgfQogCi0gICAgaWYgKG9sZE5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZyAhPSBtX25l
ZWRzQ29tcG9zaXRlZFNjcm9sbGluZykKKyAgICBpZiAob2xkTmVlZHNDb21wb3NpdGVkU2Nyb2xs
aW5nICE9IG1fbmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKSB7CiAgICAgICAgIHVwZGF0ZVNlbGZQ
YWludGluZ0xheWVyKCk7CisgICAgICAgIGlmIChpc1N0YWNraW5nQ29udGFpbmVyKCkpCisgICAg
ICAgICAgICBkaXJ0eVpPcmRlckxpc3RzKCk7CisKKyAgICAgICAgUmVuZGVyTGF5ZXIqIHNjID0g
cGFyZW50KCk7CisgICAgICAgIHdoaWxlIChzYyAmJiAhc2MtPmlzU3RhY2tpbmdDb250ZXh0KCkp
CisgICAgICAgICAgICBzYyA9IHNjLT5wYXJlbnQoKTsKKyAgICAgICAgCisgICAgICAgIGlmIChz
YykgeworICAgICAgICAgICAgc2MtPmRpcnR5Wk9yZGVyTGlzdHMoKTsKKyAgICAgICAgICAgIHNj
LT5kaXJ0eU5vcm1hbEZsb3dMaXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgY29tcG9zaXRvcigp
LT5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CisgICAgICAgIGNvbXBvc2l0b3Io
KS0+c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKTsKKyAgICB9CiB9
CiAjZW5kaWYKIApAQCAtMjIxNywxMiArMjIzNSwxNSBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRh
dGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xsKCkKIHsKICNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgaWYgKGNvbXBvc2l0b3IoKS0+aW5Db21wb3NpdGluZ01vZGUoKSkg
ewotICAgICAgICAvLyBPdXIgc3RhY2tpbmcgY29udGV4dCBpcyBndWFyYW50ZWVkIHRvIGNvbnRh
aW4gYWxsIG9mIG91ciBkZXNjZW5kYW50cyB0aGF0IG1heSBuZWVkCisgICAgICAgIC8vIE91ciBz
dGFja2luZyBjb250YWluZXIgaXMgZ3VhcmFudGVlZCB0byBjb250YWluIGFsbCBvZiBvdXIgZGVz
Y2VuZGFudHMgdGhhdCBtYXkgbmVlZAogICAgICAgICAvLyByZXBvc2l0aW9uaW5nLCBzbyB1cGRh
dGUgY29tcG9zaXRpbmcgbGF5ZXJzIGZyb20gdGhlcmUuCi0gICAgICAgIGlmIChSZW5kZXJMYXll
ciogY29tcG9zaXRpbmdBbmNlc3RvciA9IHN0YWNraW5nQ29udGV4dCgpLT5lbmNsb3NpbmdDb21w
b3NpdGluZ0xheWVyKCkpIHsKLSAgICAgICAgICAgIGlmIChjb21wb3NpdG9yKCktPmNvbXBvc2l0
aW5nQ29uc3VsdHNPdmVybGFwKCkpCi0gICAgICAgICAgICAgICAgY29tcG9zaXRvcigpLT51cGRh
dGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZU9uU2Nyb2xsLCBjb21wb3NpdGlu
Z0FuY2VzdG9yKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgaWYgKFJlbmRlckxheWVyKiBj
b21wb3NpdGluZ0FuY2VzdG9yID0gc3RhY2tpbmdDb250YWluZXIoKS0+ZW5jbG9zaW5nQ29tcG9z
aXRpbmdMYXllcigpKSB7CisgICAgICAgICAgICBpZiAoY29tcG9zaXRvcigpLT5jb21wb3NpdGlu
Z0NvbnN1bHRzT3ZlcmxhcCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKHVzZXNDb21wb3NpdGVk
U2Nyb2xsaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbXBvc2l0b3IoKS0+dXBkYXRlQ29t
cG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVPbkNvbXBvc2l0ZWRTY3JvbGwsIGNvbXBv
c2l0aW5nQW5jZXN0b3IpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgY29tcG9zaXRvcigpLT51cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0
ZU9uU2Nyb2xsLCBjb21wb3NpdGluZ0FuY2VzdG9yKTsKKyAgICAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgICAgIGNvbXBvc2l0aW5nQW5jZXN0b3ItPmJhY2tpbmcoKS0+dXBkYXRlQWZ0ZXJM
YXlvdXQoUmVuZGVyTGF5ZXJCYWNraW5nOjpJc1VwZGF0ZVJvb3QpOwogICAgICAgICB9CiAgICAg
fQpAQCAtMzg0Miw3ICszODYzLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRQYWdpbmF0ZWRD
aGlsZExheWVyKFJlbmRlckxheWVyKiBjaGlsZExheWVyLCBHcmFwaGljc0NvbnQKIHsKICAgICAv
LyBXZSBuZWVkIHRvIGRvIG11bHRpcGxlIHBhc3NlcywgYnJlYWtpbmcgdXAgb3VyIGNoaWxkIGxh
eWVyIGludG8gc3RyaXBzLgogICAgIFZlY3RvcjxSZW5kZXJMYXllcio+IGNvbHVtbkxheWVyczsK
LSAgICBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciA9IGlzTm9ybWFsRmxvd09ubHkoKSA/IHBh
cmVudCgpIDogc3RhY2tpbmdDb250ZXh0KCk7CisgICAgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5
ZXIgPSBpc05vcm1hbEZsb3dPbmx5KCkgPyBwYXJlbnQoKSA6IHN0YWNraW5nQ29udGFpbmVyKCk7
CiAgICAgZm9yIChSZW5kZXJMYXllciogY3VyciA9IGNoaWxkTGF5ZXItPnBhcmVudCgpOyBjdXJy
OyBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsKICAgICAgICAgaWYgKGN1cnItPnJlbmRlcmVyKCkt
Pmhhc0NvbHVtbnMoKSAmJiBjaGVja0NvbnRhaW5pbmdCbG9ja0NoYWluRm9yUGFnaW5hdGlvbihj
aGlsZExheWVyLT5yZW5kZXJlcigpLCBjdXJyLT5yZW5kZXJCb3goKSkpCiAgICAgICAgICAgICBj
b2x1bW5MYXllcnMuYXBwZW5kKGN1cnIpOwpAQCAtNDM1Niw3ICs0Mzc3LDcgQEAgUmVuZGVyTGF5
ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0UGFnaW5hdGVkQ2hpbGRMYXllcihSZW5kZXJMYXllciog
Y2hpbGRMYXllciwgUmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgTGF5b3V0UmVjdCYgaGl0VGVzdFJlY3QsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgaGl0VGVzdExvY2F0aW9uLCBjb25zdCBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUq
IHRyYW5zZm9ybVN0YXRlLCBkb3VibGUqIHpPZmZzZXQpCiB7CiAgICAgVmVjdG9yPFJlbmRlckxh
eWVyKj4gY29sdW1uTGF5ZXJzOwotICAgIFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyID0gaXNO
b3JtYWxGbG93T25seSgpID8gcGFyZW50KCkgOiBzdGFja2luZ0NvbnRleHQoKTsKKyAgICBSZW5k
ZXJMYXllciogYW5jZXN0b3JMYXllciA9IGlzTm9ybWFsRmxvd09ubHkoKSA/IHBhcmVudCgpIDog
c3RhY2tpbmdDb250YWluZXIoKTsKICAgICBmb3IgKFJlbmRlckxheWVyKiBjdXJyID0gY2hpbGRM
YXllci0+cGFyZW50KCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYXJlbnQoKSkgewogICAgICAgICBp
ZiAoY3Vyci0+cmVuZGVyZXIoKS0+aGFzQ29sdW1ucygpICYmIGNoZWNrQ29udGFpbmluZ0Jsb2Nr
Q2hhaW5Gb3JQYWdpbmF0aW9uKGNoaWxkTGF5ZXItPnJlbmRlcmVyKCksIGN1cnItPnJlbmRlckJv
eCgpKSkKICAgICAgICAgICAgIGNvbHVtbkxheWVycy5hcHBlbmQoY3Vycik7CkBAIC00OTE4LDcg
KzQ5MzksNyBAQCBJbnRSZWN0IFJlbmRlckxheWVyOjpjYWxjdWxhdGVMYXllckJvdW5kcyhjb25z
dCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgY29ucwogICAgICAgICB9CiAgICAgfQogICAg
IAotICAgIEFTU0VSVChpc1N0YWNraW5nQ29udGV4dCgpIHx8ICghcG9zWk9yZGVyTGlzdCgpIHx8
ICFwb3NaT3JkZXJMaXN0KCktPnNpemUoKSkpOworICAgIEFTU0VSVChpc1N0YWNraW5nQ29udGFp
bmVyKCkgfHwgKCFwb3NaT3JkZXJMaXN0KCkgfHwgIXBvc1pPcmRlckxpc3QoKS0+c2l6ZSgpKSk7
CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgTGF5ZXJMaXN0TXV0YXRpb25EZXRlY3RvciBt
dXRhdGlvbkNoZWNrZXIoY29uc3RfY2FzdDxSZW5kZXJMYXllcio+KHRoaXMpKTsKQEAgLTUwOTks
NyArNTEyMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlWkluZGV4KFJlbmRlckxheWVy
KiBmaXJzdCwgUmVuZGVyTGF5ZXIqIHNlY29uZCkKIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5Wk9y
ZGVyTGlzdHMoKQogewogICAgIEFTU0VSVChtX2xheWVyTGlzdE11dGF0aW9uQWxsb3dlZCk7Ci0g
ICAgQVNTRVJUKGlzU3RhY2tpbmdDb250ZXh0KCkpOworICAgIEFTU0VSVChpc1N0YWNraW5nQ29u
dGFpbmVyKCkpOwogCiAgICAgaWYgKG1fcG9zWk9yZGVyTGlzdCkKICAgICAgICAgbV9wb3NaT3Jk
ZXJMaXN0LT5jbGVhcigpOwpAQCAtNTExNiw5ICs1MTM3LDkgQEAgdm9pZCBSZW5kZXJMYXllcjo6
ZGlydHlaT3JkZXJMaXN0cygpCiAjZW5kaWYKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6ZGlydHlT
dGFja2luZ0NvbnRleHRaT3JkZXJMaXN0cygpCit2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVN0YWNr
aW5nQ29udGFpbmVyWk9yZGVyTGlzdHMoKQogewotICAgIFJlbmRlckxheWVyKiBzYyA9IHN0YWNr
aW5nQ29udGV4dCgpOworICAgIFJlbmRlckxheWVyKiBzYyA9IHN0YWNraW5nQ29udGFpbmVyKCk7
CiAgICAgaWYgKHNjKQogICAgICAgICBzYy0+ZGlydHlaT3JkZXJMaXN0cygpOwogfQpAQCAtNTE0
Myw4ICs1MTY0LDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5Tm9ybWFsRmxvd0xpc3QoKQog
dm9pZCBSZW5kZXJMYXllcjo6cmVidWlsZFpPcmRlckxpc3RzKCkKIHsKICAgICBBU1NFUlQobV9s
YXllckxpc3RNdXRhdGlvbkFsbG93ZWQpOwotICAgIEFTU0VSVChpc0RpcnR5U3RhY2tpbmdDb250
ZXh0KCkpOworICAgIEFTU0VSVChpc0RpcnR5U3RhY2tpbmdDb250YWluZXIoKSk7CisgICAgcmVi
dWlsZFpPcmRlckxpc3RzKFN0b3BBdFN0YWNraW5nQ29udGFpbmVycywgbV9wb3NaT3JkZXJMaXN0
LCBtX25lZ1pPcmRlckxpc3QpOworICAgIG1fek9yZGVyTGlzdHNEaXJ0eSA9IGZhbHNlOworfQog
Cit2b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxkWk9yZGVyTGlzdHMoQ29sbGVjdExheWVyc0JlaGF2
aW9yIGJlaGF2aW9yLCBPd25QdHI8VmVjdG9yPFJlbmRlckxheWVyKj4gPiYgcG9zWk9yZGVyTGlz
dCwgT3duUHRyPFZlY3RvcjxSZW5kZXJMYXllcio+ID4mIG5lZ1pPcmRlckxpc3QpCit7CiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgaW5jbHVkZUhpZGRlbkxheWVy
cyA9IGNvbXBvc2l0b3IoKS0+aW5Db21wb3NpdGluZ01vZGUoKTsKICNlbHNlCkBAIC01MTUyLDE0
ICs1MTc4LDE0IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGRaT3JkZXJMaXN0cygpCiAjZW5k
aWYKICAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNo
aWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGlmICghbV9yZWZsZWN0aW9uIHx8
IHJlZmxlY3Rpb25MYXllcigpICE9IGNoaWxkKQotICAgICAgICAgICAgY2hpbGQtPmNvbGxlY3RM
YXllcnMoaW5jbHVkZUhpZGRlbkxheWVycywgbV9wb3NaT3JkZXJMaXN0LCBtX25lZ1pPcmRlckxp
c3QpOworICAgICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMoaW5jbHVkZUhpZGRlbkxheWVy
cywgYmVoYXZpb3IsIHBvc1pPcmRlckxpc3QsIG5lZ1pPcmRlckxpc3QpOwogCiAgICAgLy8gU29y
dCB0aGUgdHdvIGxpc3RzLgotICAgIGlmIChtX3Bvc1pPcmRlckxpc3QpCi0gICAgICAgIHN0ZDo6
c3RhYmxlX3NvcnQobV9wb3NaT3JkZXJMaXN0LT5iZWdpbigpLCBtX3Bvc1pPcmRlckxpc3QtPmVu
ZCgpLCBjb21wYXJlWkluZGV4KTsKKyAgICBpZiAocG9zWk9yZGVyTGlzdCkKKyAgICAgICAgc3Rk
OjpzdGFibGVfc29ydChwb3NaT3JkZXJMaXN0LT5iZWdpbigpLCBwb3NaT3JkZXJMaXN0LT5lbmQo
KSwgY29tcGFyZVpJbmRleCk7CiAKLSAgICBpZiAobV9uZWdaT3JkZXJMaXN0KQotICAgICAgICBz
dGQ6OnN0YWJsZV9zb3J0KG1fbmVnWk9yZGVyTGlzdC0+YmVnaW4oKSwgbV9uZWdaT3JkZXJMaXN0
LT5lbmQoKSwgY29tcGFyZVpJbmRleCk7CisgICAgaWYgKG5lZ1pPcmRlckxpc3QpCisgICAgICAg
IHN0ZDo6c3RhYmxlX3NvcnQobmVnWk9yZGVyTGlzdC0+YmVnaW4oKSwgbmVnWk9yZGVyTGlzdC0+
ZW5kKCksIGNvbXBhcmVaSW5kZXgpOwogCiAjaWYgRU5BQkxFKERJQUxPR19FTEVNRU5UKQogICAg
IC8vIEFwcGVuZCBsYXllcnMgZm9yIHRvcCBsYXllciBlbGVtZW50cyBhZnRlciBub3JtYWwgbGF5
ZXIgY29sbGVjdGlvbiwgdG8gZW5zdXJlIHRoZXkgYXJlIG9uIHRvcCByZWdhcmRsZXNzIG9mIHot
aW5kZXhlcy4KQEAgLTUxOTgsNyArNTIyNCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZU5v
cm1hbEZsb3dMaXN0KCkKICAgICBtX25vcm1hbEZsb3dMaXN0RGlydHkgPSBmYWxzZTsKIH0KIAot
dm9pZCBSZW5kZXJMYXllcjo6Y29sbGVjdExheWVycyhib29sIGluY2x1ZGVIaWRkZW5MYXllcnMs
IE93blB0cjxWZWN0b3I8UmVuZGVyTGF5ZXIqPiA+JiBwb3NCdWZmZXIsIE93blB0cjxWZWN0b3I8
UmVuZGVyTGF5ZXIqPiA+JiBuZWdCdWZmZXIpCit2b2lkIFJlbmRlckxheWVyOjpjb2xsZWN0TGF5
ZXJzKGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycywgQ29sbGVjdExheWVyc0JlaGF2aW9yIGJlaGF2
aW9yLCBPd25QdHI8VmVjdG9yPFJlbmRlckxheWVyKj4gPiYgcG9zQnVmZmVyLCBPd25QdHI8VmVj
dG9yPFJlbmRlckxheWVyKj4gPiYgbmVnQnVmZmVyKQogewogI2lmIEVOQUJMRShESUFMT0dfRUxF
TUVOVCkKICAgICBpZiAoaXNJblRvcExheWVyKCkpCkBAIC01MjA3LDggKzUyMzMsOSBAQCB2b2lk
IFJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJzKGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycywgT3du
UHRyPFZlY3RvcjxSZW5kZXJMYQogCiAgICAgdXBkYXRlRGVzY2VuZGFudERlcGVuZGVudEZsYWdz
KCk7CiAKKyAgICBib29sIGlzU3RhY2tpbmcgPSBiZWhhdmlvciA9PSBTdG9wQXRTdGFja2luZ0Nv
bnRleHRzID8gaXNTdGFja2luZ0NvbnRleHQoKSA6IGlzU3RhY2tpbmdDb250YWluZXIoKTsKICAg
ICAvLyBPdmVyZmxvdyBsYXllcnMgYXJlIGp1c3QgcGFpbnRlZCBieSB0aGVpciBlbmNsb3Npbmcg
bGF5ZXJzLCBzbyB0aGV5IGRvbid0IGdldCBwdXQgaW4gem9yZGVyIGxpc3RzLgotICAgIGJvb2wg
aW5jbHVkZUhpZGRlbkxheWVyID0gaW5jbHVkZUhpZGRlbkxheWVycyB8fCAobV9oYXNWaXNpYmxl
Q29udGVudCB8fCAobV9oYXNWaXNpYmxlRGVzY2VuZGFudCAmJiBpc1N0YWNraW5nQ29udGV4dCgp
KSk7CisgICAgYm9vbCBpbmNsdWRlSGlkZGVuTGF5ZXIgPSBpbmNsdWRlSGlkZGVuTGF5ZXJzIHx8
IChtX2hhc1Zpc2libGVDb250ZW50IHx8IChtX2hhc1Zpc2libGVEZXNjZW5kYW50ICYmIGlzU3Rh
Y2tpbmcpKTsKICAgICBpZiAoaW5jbHVkZUhpZGRlbkxheWVyICYmICFpc05vcm1hbEZsb3dPbmx5
KCkgJiYgIXJlbmRlcmVyKCktPmlzUmVuZGVyRmxvd1RocmVhZCgpKSB7CiAgICAgICAgIC8vIERl
dGVybWluZSB3aGljaCBidWZmZXIgdGhlIGNoaWxkIHNob3VsZCBiZSBpbi4KICAgICAgICAgT3du
UHRyPFZlY3RvcjxSZW5kZXJMYXllcio+ID4mIGJ1ZmZlciA9ICh6SW5kZXgoKSA+PSAwKSA/IHBv
c0J1ZmZlciA6IG5lZ0J1ZmZlcjsKQEAgLTUyMjIsMTIgKzUyNDksMTIgQEAgdm9pZCBSZW5kZXJM
YXllcjo6Y29sbGVjdExheWVycyhib29sIGluY2x1ZGVIaWRkZW5MYXllcnMsIE93blB0cjxWZWN0
b3I8UmVuZGVyTGEKICAgICB9CiAKICAgICAvLyBSZWN1ciBpbnRvIG91ciBjaGlsZHJlbiB0byBj
b2xsZWN0IG1vcmUgbGF5ZXJzLCBidXQgb25seSBpZiB3ZSBkb24ndCBlc3RhYmxpc2gKLSAgICAv
LyBhIHN0YWNraW5nIGNvbnRleHQuCi0gICAgaWYgKChpbmNsdWRlSGlkZGVuTGF5ZXJzIHx8IG1f
aGFzVmlzaWJsZURlc2NlbmRhbnQpICYmICFpc1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAgLy8g
YSBzdGFja2luZyBjb250ZXh0L2NvbnRhaW5lci4KKyAgICBpZiAoKGluY2x1ZGVIaWRkZW5MYXll
cnMgfHwgbV9oYXNWaXNpYmxlRGVzY2VuZGFudCkgJiYgIWlzU3RhY2tpbmcpIHsKICAgICAgICAg
Zm9yIChSZW5kZXJMYXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNo
aWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgICAgICAvLyBJZ25vcmUgcmVmbGVjdGlvbnMu
CiAgICAgICAgICAgICBpZiAoIW1fcmVmbGVjdGlvbiB8fCByZWZsZWN0aW9uTGF5ZXIoKSAhPSBj
aGlsZCkKLSAgICAgICAgICAgICAgICBjaGlsZC0+Y29sbGVjdExheWVycyhpbmNsdWRlSGlkZGVu
TGF5ZXJzLCBwb3NCdWZmZXIsIG5lZ0J1ZmZlcik7CisgICAgICAgICAgICAgICAgY2hpbGQtPmNv
bGxlY3RMYXllcnMoaW5jbHVkZUhpZGRlbkxheWVycywgYmVoYXZpb3IsIHBvc0J1ZmZlciwgbmVn
QnVmZmVyKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTUyMzUsNyArNTI2Miw2IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OmNvbGxlY3RMYXllcnMoYm9vbCBpbmNsdWRlSGlkZGVuTGF5ZXJzLCBPd25Q
dHI8VmVjdG9yPFJlbmRlckxhCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllckxpc3RzSWZO
ZWVkZWQoKQogewogICAgIGJvb2wgc2hvdWxkVXBkYXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3Vz
SW5TdGFja2luZ09yZGVyID0gaXNTdGFja2luZ0NvbnRleHQoKSAmJiAobV96T3JkZXJMaXN0c0Rp
cnR5IHx8IG1fbm9ybWFsRmxvd0xpc3REaXJ0eSk7Ci0KICAgICB1cGRhdGVaT3JkZXJMaXN0cygp
OwogICAgIHVwZGF0ZU5vcm1hbEZsb3dMaXN0KCk7CiAKQEAgLTUyNDQsMTUgKzUyNzAsMjAgQEAg
dm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKCkKICAgICAgICAgcmVm
bGVjdGlvbkxheWVyLT51cGRhdGVOb3JtYWxGbG93TGlzdCgpOwogICAgIH0KIAotICAgIGlmIChz
aG91bGRVcGRhdGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIpCisgICAg
aWYgKHNob3VsZFVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRlcikg
ewogICAgICAgICB1cGRhdGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIo
KTsKKyAgICAgICAgLy8gVGhlIGFib3ZlIGZ1bmN0aW9uIGNhbiBjYXVzZSB1cyB0byB1cGRhdGUg
bV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcKKyAgICAgICAgLy8gYW5kIGRpcnR5IG91ciBsYXll
ciBsaXN0cy4gUmVmcmVzaCB0aGVtIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgdXBkYXRlWk9yZGVy
TGlzdHMoKTsKKyAgICAgICAgdXBkYXRlTm9ybWFsRmxvd0xpc3QoKTsKKyAgICB9CiB9CiAKIHZv
aWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUNvbXBvc2l0aW5nQW5kTGF5ZXJMaXN0c0lmTmVlZGVkKCkK
IHsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGNvbXBvc2l0b3Io
KS0+aW5Db21wb3NpdGluZ01vZGUoKSkgewotICAgICAgICBpZiAoaXNEaXJ0eVN0YWNraW5nQ29u
dGV4dCgpIHx8IG1fbm9ybWFsRmxvd0xpc3REaXJ0eSkKKyAgICAgICAgaWYgKGlzRGlydHlTdGFj
a2luZ0NvbnRhaW5lcigpIHx8IG1fbm9ybWFsRmxvd0xpc3REaXJ0eSkKICAgICAgICAgICAgIGNv
bXBvc2l0b3IoKS0+dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVPbkhp
dFRlc3QsIHRoaXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNTM3Myw3ICs1NDA0LDcg
QEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlU3RhY2tpbmdDb250ZXh0c0FmdGVyU3R5bGVDaGFu
Z2UoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFMKICAgICBib29sIHdhc1N0YWNraW5nQ29udGV4dCA9
IGlzU3RhY2tpbmdDb250ZXh0KG9sZFN0eWxlKTsKICAgICBib29sIGlzU3RhY2tpbmdDb250ZXh0
ID0gdGhpcy0+aXNTdGFja2luZ0NvbnRleHQoKTsKICAgICBpZiAoaXNTdGFja2luZ0NvbnRleHQg
IT0gd2FzU3RhY2tpbmdDb250ZXh0KSB7Ci0gICAgICAgIGRpcnR5U3RhY2tpbmdDb250ZXh0Wk9y
ZGVyTGlzdHMoKTsKKyAgICAgICAgZGlydHlTdGFja2luZ0NvbnRhaW5lclpPcmRlckxpc3RzKCk7
CiAgICAgICAgIGlmIChpc1N0YWNraW5nQ29udGV4dCkKICAgICAgICAgICAgIGRpcnR5Wk9yZGVy
TGlzdHMoKTsKICAgICAgICAgZWxzZQpAQCAtNTM4NCw3ICs1NDE1LDcgQEAgdm9pZCBSZW5kZXJM
YXllcjo6dXBkYXRlU3RhY2tpbmdDb250ZXh0c0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFMKICAgICAvLyBGSVhNRTogUmVuZGVyTGF5ZXIgYWxyZWFkeSBoYW5kbGVzIHZp
c2liaWxpdHkgY2hhbmdlcyB0aHJvdWdoIG91ciB2aXNpYmxpdHkgZGlydHkgYml0cy4gVGhpcyBs
b2dpYyBjb3VsZAogICAgIC8vIGxpa2VseSBiZSBmb2xkZWQgYWxvbmcgd2l0aCB0aGUgcmVzdC4K
ICAgICBpZiAob2xkU3R5bGUtPnpJbmRleCgpICE9IHJlbmRlcmVyKCktPnN0eWxlKCktPnpJbmRl
eCgpIHx8IG9sZFN0eWxlLT52aXNpYmlsaXR5KCkgIT0gcmVuZGVyZXIoKS0+c3R5bGUoKS0+dmlz
aWJpbGl0eSgpKSB7Ci0gICAgICAgIGRpcnR5U3RhY2tpbmdDb250ZXh0Wk9yZGVyTGlzdHMoKTsK
KyAgICAgICAgZGlydHlTdGFja2luZ0NvbnRhaW5lclpPcmRlckxpc3RzKCk7CiAgICAgICAgIGlm
IChpc1N0YWNraW5nQ29udGV4dCkKICAgICAgICAgICAgIGRpcnR5Wk9yZGVyTGlzdHMoKTsKICAg
ICB9CkBAIC01NDgwLDcgKzU1MTEsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQo
U3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCiAgICAgICAgIFJl
bmRlckxheWVyKiBwID0gcGFyZW50KCk7CiAgICAgICAgIGlmIChwKQogICAgICAgICAgICAgcC0+
ZGlydHlOb3JtYWxGbG93TGlzdCgpOwotICAgICAgICBkaXJ0eVN0YWNraW5nQ29udGV4dFpPcmRl
ckxpc3RzKCk7CisgICAgICAgIGRpcnR5U3RhY2tpbmdDb250YWluZXJaT3JkZXJMaXN0cygpOwog
ICAgIH0KIAogICAgIGlmIChyZW5kZXJlcigpLT5zdHlsZSgpLT5vdmVyZmxvd1goKSA9PSBPTUFS
UVVFRSAmJiByZW5kZXJlcigpLT5zdHlsZSgpLT5tYXJxdWVlQmVoYXZpb3IoKSAhPSBNTk9ORSAm
JiByZW5kZXJlcigpLT5pc0JveCgpKSB7CkBAIC01NTM0LDcgKzU1NjUsNyBAQCB2b2lkIFJlbmRl
ckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSog
b2xkU3R5bGUpCiAgICAgZWxzZSBpZiAobV9iYWNraW5nKQogICAgICAgICBtX2JhY2tpbmctPnVw
ZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSgpOwogICAgIGVsc2UgaWYgKG9sZFN0eWxlICYmIG9s
ZFN0eWxlLT5vdmVyZmxvd1goKSAhPSByZW5kZXJlcigpLT5zdHlsZSgpLT5vdmVyZmxvd1goKSkg
ewotICAgICAgICBpZiAoc3RhY2tpbmdDb250ZXh0KCktPmhhc0NvbXBvc2l0aW5nRGVzY2VuZGFu
dCgpKQorICAgICAgICBpZiAoc3RhY2tpbmdDb250YWluZXIoKS0+aGFzQ29tcG9zaXRpbmdEZXNj
ZW5kYW50KCkpCiAgICAgICAgICAgICBjb21wb3NpdG9yKCktPnNldENvbXBvc2l0aW5nTGF5ZXJz
TmVlZFJlYnVpbGQoKTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmgKaW5kZXggODZlNzQyMWYyZWZkZmY4ZTc1NzZiYzNkZTkyNGUxOTkxNTJmYTdmNS4u
MjNlODZhODA5OWMwZDJiOWZlMGYxYTE3ZWIwMzkwYTBkZjQwZTU1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQyNywxOCArNDI3LDIzIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGNsZWFyQmxvY2tTZWxlY3Rpb25HYXBzQm91bmRzKCk7CiAgICAgdm9pZCByZXBhaW50
QmxvY2tTZWxlY3Rpb25HYXBzKCk7CiAKLSAgICAvLyBHZXQgdGhlIGVuY2xvc2luZyBzdGFja2lu
ZyBjb250ZXh0IGZvciB0aGlzIGxheWVyLiAgQSBzdGFja2luZyBjb250ZXh0IGlzIGEgbGF5ZXIK
LSAgICAvLyB0aGF0IGhhcyBhIG5vbi1hdXRvIHotaW5kZXguCi0gICAgUmVuZGVyTGF5ZXIqIHN0
YWNraW5nQ29udGV4dCgpIGNvbnN0OworICAgIC8vIEEgc3RhY2tpbmcgY29udGV4dCBpcyBhIGxh
eWVyIHRoYXQgaGFzIGEgbm9uLWF1dG8gei1pbmRleC4KICAgICBib29sIGlzU3RhY2tpbmdDb250
ZXh0KCkgY29uc3QgeyByZXR1cm4gaXNTdGFja2luZ0NvbnRleHQocmVuZGVyZXIoKS0+c3R5bGUo
KSk7IH0KIAorICAgIC8vIEEgc3RhY2tpbmcgY29udGFpbmVyIGNhbiBoYXZlIHotb3JkZXIgbGlz
dHMuIEFsbCBzdGFja2luZyBjb250ZXh0cyBhcmUKKyAgICAvLyBzdGFja2luZyBjb250YWluZXJz
LCBidXQgdGhlIGNvbnZlcnNlIGlzIG5vdCB0cnVlLgorICAgIGJvb2wgaXNTdGFja2luZ0NvbnRh
aW5lcigpIGNvbnN0IHsgcmV0dXJuIGlzU3RhY2tpbmdDb250ZXh0KCkgfHwgbmVlZHNDb21wb3Np
dGVkU2Nyb2xsaW5nKCk7IH0KKworICAgIC8vIEdldHMgdGhlIGVuY2xvc2luZyBzdGFja2luZyBj
b250YWluZXIgZm9yIHRoaXMgbGF5ZXIuCisgICAgUmVuZGVyTGF5ZXIqIHN0YWNraW5nQ29udGFp
bmVyKCkgY29uc3Q7CisKICAgICB2b2lkIGRpcnR5Wk9yZGVyTGlzdHMoKTsKLSAgICB2b2lkIGRp
cnR5U3RhY2tpbmdDb250ZXh0Wk9yZGVyTGlzdHMoKTsKKyAgICB2b2lkIGRpcnR5U3RhY2tpbmdD
b250YWluZXJaT3JkZXJMaXN0cygpOwogCiAgICAgVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pP
cmRlckxpc3QoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX3pPcmRlckxpc3RzRGly
dHkpOwotICAgICAgICBBU1NFUlQoaXNTdGFja2luZ0NvbnRleHQoKSB8fCAhbV9wb3NaT3JkZXJM
aXN0KTsKKyAgICAgICAgQVNTRVJUKGlzU3RhY2tpbmdDb250YWluZXIoKSB8fCAhbV9wb3NaT3Jk
ZXJMaXN0KTsKICAgICAgICAgcmV0dXJuIG1fcG9zWk9yZGVyTGlzdC5nZXQoKTsKICAgICB9CiAK
QEAgLTQ0Nyw3ICs0NTIsNyBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPFJlbmRlckxheWVyKj4qIG5l
Z1pPcmRlckxpc3QoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX3pPcmRlckxpc3Rz
RGlydHkpOwotICAgICAgICBBU1NFUlQoaXNTdGFja2luZ0NvbnRleHQoKSB8fCAhbV9uZWdaT3Jk
ZXJMaXN0KTsKKyAgICAgICAgQVNTRVJUKGlzU3RhY2tpbmdDb250YWluZXIoKSB8fCAhbV9uZWda
T3JkZXJMaXN0KTsKICAgICAgICAgcmV0dXJuIG1fbmVnWk9yZGVyTGlzdC5nZXQoKTsKICAgICB9
CiAKQEAgLTc1MywxNCArNzU4LDE4IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgorICAg
IGVudW0gQ29sbGVjdExheWVyc0JlaGF2aW9yIHsgU3RvcEF0U3RhY2tpbmdDb250ZXh0cywgU3Rv
cEF0U3RhY2tpbmdDb250YWluZXJzIH07CisKICAgICB2b2lkIHVwZGF0ZVpPcmRlckxpc3RzKCk7
CiAgICAgdm9pZCByZWJ1aWxkWk9yZGVyTGlzdHMoKTsKKyAgICB2b2lkIHJlYnVpbGRaT3JkZXJM
aXN0cyhDb2xsZWN0TGF5ZXJzQmVoYXZpb3IsIE93blB0cjxWZWN0b3I8UmVuZGVyTGF5ZXIqPiA+
JiwgT3duUHRyPFZlY3RvcjxSZW5kZXJMYXllcio+ID4mKTsKICAgICB2b2lkIGNsZWFyWk9yZGVy
TGlzdHMoKTsKIAogICAgIHZvaWQgdXBkYXRlTm9ybWFsRmxvd0xpc3QoKTsKIAogICAgIGJvb2wg
aXNTdGFja2luZ0NvbnRleHQoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdCB7IHJldHVy
biAhc3R5bGUtPmhhc0F1dG9aSW5kZXgoKSB8fCBpc1Jvb3RMYXllcigpOyB9Ci0gICAgYm9vbCBp
c0RpcnR5U3RhY2tpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV96T3JkZXJMaXN0c0RpcnR5
ICYmIGlzU3RhY2tpbmdDb250ZXh0KCk7IH0KKworICAgIGJvb2wgaXNEaXJ0eVN0YWNraW5nQ29u
dGFpbmVyKCkgY29uc3QgeyByZXR1cm4gbV96T3JkZXJMaXN0c0RpcnR5ICYmIGlzU3RhY2tpbmdD
b250YWluZXIoKTsgfQogCiAgICAgdm9pZCBzZXRBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5n
TGF5ZXJEZXNjZW5kYW50KCk7CiAgICAgdm9pZCBkaXJ0eUFuY2VzdG9yQ2hhaW5IYXNTZWxmUGFp
bnRpbmdMYXllckRlc2NlbmRhbnRTdGF0dXMoKTsKQEAgLTgyNCw3ICs4MzMsNyBAQCBwcml2YXRl
OgogICAgIExheW91dFVuaXQgcmVuZGVyQm94WCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlckJveExv
Y2F0aW9uKCkueCgpOyB9CiAgICAgTGF5b3V0VW5pdCByZW5kZXJCb3hZKCkgY29uc3QgeyByZXR1
cm4gcmVuZGVyQm94TG9jYXRpb24oKS55KCk7IH0KIAotICAgIHZvaWQgY29sbGVjdExheWVycyhi
b29sIGluY2x1ZGVIaWRkZW5MYXllcnMsIE93blB0cjxWZWN0b3I8UmVuZGVyTGF5ZXIqPiA+Jiwg
T3duUHRyPFZlY3RvcjxSZW5kZXJMYXllcio+ID4mKTsKKyAgICB2b2lkIGNvbGxlY3RMYXllcnMo
Ym9vbCBpbmNsdWRlSGlkZGVuTGF5ZXJzLCBDb2xsZWN0TGF5ZXJzQmVoYXZpb3IsIE93blB0cjxW
ZWN0b3I8UmVuZGVyTGF5ZXIqPiA+JiwgT3duUHRyPFZlY3RvcjxSZW5kZXJMYXllcio+ID4mKTsK
IAogICAgIHZvaWQgdXBkYXRlQ29tcG9zaXRpbmdBbmRMYXllckxpc3RzSWZOZWVkZWQoKTsKIApA
QCAtOTg1LDggKzk5NCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtdXN0Q29tcG9zaXRlRm9ySW5k
aXJlY3RSZWFzb25zKCkgY29uc3QgeyByZXR1cm4gbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
OyB9CiAjZW5kaWYKIAotICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB6IG9yZGVyaW5nIHdvdWxkIG5v
dCBjaGFuZ2UgaWYgdGhpcyBsYXllciB3ZXJlIHRvIGVzdGFibGlzaCBhIHN0YWNraW5nIGNvbnRl
eHQuCi0gICAgYm9vbCBjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkgY29uc3Q7
CisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHogb3JkZXJpbmcgd291bGQgbm90IGNoYW5nZSBpZiB0
aGlzIGxheWVyIHdlcmUgYSBzdGFja2luZyBjb250YWluZXIuCisgICAgYm9vbCBjYW5CZVN0YWNr
aW5nQ29udGFpbmVyKCkgY29uc3Q7CiAKICAgICBmcmllbmQgY2xhc3MgUmVuZGVyTGF5ZXJCYWNr
aW5nOwogICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJMYXllckNvbXBvc2l0b3I7CkBAIC0xMTUzLDcg
KzExNjIsNyBAQCBwcml2YXRlOgogCiBpbmxpbmUgdm9pZCBSZW5kZXJMYXllcjo6Y2xlYXJaT3Jk
ZXJMaXN0cygpCiB7Ci0gICAgQVNTRVJUKCFpc1N0YWNraW5nQ29udGV4dCgpKTsKKyAgICBBU1NF
UlQoIWlzU3RhY2tpbmdDb250YWluZXIoKSk7CiAKICAgICBtX3Bvc1pPcmRlckxpc3QuY2xlYXIo
KTsKICAgICBtX25lZ1pPcmRlckxpc3QuY2xlYXIoKTsKQEAgLTExNjQsNyArMTE3Myw3IEBAIGlu
bGluZSB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVaT3JkZXJMaXN0cygpCiAgICAgaWYgKCFtX3pP
cmRlckxpc3RzRGlydHkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghaXNTdGFja2luZ0Nv
bnRleHQoKSkgeworICAgIGlmICghaXNTdGFja2luZ0NvbnRhaW5lcigpKSB7CiAgICAgICAgIGNs
ZWFyWk9yZGVyTGlzdHMoKTsKICAgICAgICAgbV96T3JkZXJMaXN0c0RpcnR5ID0gZmFsc2U7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggNmU1ZGU0MjEyN2ZjMjQ5ZDg4OTZjZTllNzM4MWMzZDliMDEwNjli
Yi4uNTc2Zjg0M2ZlNzQ5MWE5NjI0NjdjZTE0YWZmYTEyOTJhYzI3MjE2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTU2NSw3ICs1
NjUsNyBAQCBzdGF0aWMgSW50UmVjdCBjbGlwQm94KFJlbmRlckJveCogcmVuZGVyZXIpCiB2b2lk
IFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KCkKIHsKICAg
ICAvLyBJZiB3ZSBoYXZlbid0IGJ1aWx0IHotb3JkZXIgbGlzdHMgeWV0LCB3YWl0IHVudGlsIGxh
dGVyLgotICAgIGlmIChtX293bmluZ0xheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpICYmIG1fb3du
aW5nTGF5ZXItPm1fek9yZGVyTGlzdHNEaXJ0eSkKKyAgICBpZiAobV9vd25pbmdMYXllci0+aXNT
dGFja2luZ0NvbnRhaW5lcigpICYmIG1fb3duaW5nTGF5ZXItPm1fek9yZGVyTGlzdHNEaXJ0eSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gU2V0IHRyYW5zZm9ybSBwcm9wZXJ0eSwgaWYgaXQg
aXMgbm90IGFuaW1hdGluZy4gV2UgaGF2ZSB0byBkbyB0aGlzIGhlcmUgYmVjYXVzZSB0aGUgdHJh
bnNmb3JtCkBAIC0xMjY1LDcgKzEyNjUsNyBAQCBmbG9hdCBSZW5kZXJMYXllckJhY2tpbmc6OmNv
bXBvc2l0aW5nT3BhY2l0eShmbG9hdCByZW5kZXJlck9wYWNpdHkpIGNvbnN0CiAgICAgZm9yIChS
ZW5kZXJMYXllciogY3VyciA9IG1fb3duaW5nTGF5ZXItPnBhcmVudCgpOyBjdXJyOyBjdXJyID0g
Y3Vyci0+cGFyZW50KCkpIHsKICAgICAgICAgLy8gV2Ugb25seSBjYXJlIGFib3V0IHBhcmVudHMg
dGhhdCBhcmUgc3RhY2tpbmcgY29udGV4dHMuCiAgICAgICAgIC8vIFJlY2FsbCB0aGF0IG9wYWNp
dHkgY3JlYXRlcyBzdGFja2luZyBjb250ZXh0LgotICAgICAgICBpZiAoIWN1cnItPmlzU3RhY2tp
bmdDb250ZXh0KCkpCisgICAgICAgIGlmICghY3Vyci0+aXNTdGFja2luZ0NvbnRhaW5lcigpKQog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAogICAgICAgICAvLyBJZiB3ZSBmb3VuZCBh
IGNvbXBvc2l0aW5nIGxheWVyLCB3ZSB3YW50IHRvIGNvbXB1dGUgb3BhY2l0eQpAQCAtMTQ3NSw3
ICsxNDc1LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6Omhhc1Zpc2libGVOb25Db21wb3Np
dGluZ0Rlc2NlbmRhbnRMYXllcnMoKSBjb25zdAogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYg
KG1fb3duaW5nTGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpIHsKKyAgICBpZiAobV9vd25pbmdM
YXllci0+aXNTdGFja2luZ0NvbnRhaW5lcigpKSB7CiAgICAgICAgIGlmICghbV9vd25pbmdMYXll
ci0+aGFzVmlzaWJsZURlc2NlbmRhbnQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAppbmRleCAzMDljMjEyM2I0NDZlNDA5ODczYmRkNWY4ZTYxNWNjMWNhODNjMTE5Li4yZmJjZWU2
N2MyMTM5OTIxNjU2MWI3ODY1NTkzOGIzZTNjZWJkOGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNDMzLDYgKzQzMyw5
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhD
b21wb3NpdGluZ1VwZGF0ZVR5cGUgdXBkYXRlCiAKICAgICAgICAgbmVlZEdlb21ldHJ5VXBkYXRl
ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGluZ1VwZGF0ZU9uQ29t
cG9zaXRlZFNjcm9sbDoKKyAgICAgICAgbmVlZEdlb21ldHJ5VXBkYXRlID0gdHJ1ZTsKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgaWYgKCFjaGVja0ZvckhpZXJhcmNoeVVwZGF0ZSAmJiAh
bmVlZEdlb21ldHJ5VXBkYXRlKQpAQCAtNzMzLDcgKzczNiw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpsYXllcldpbGxCZVJlbW92ZWQoUmVuZGVyTGF5ZXIqIHBhcmVudCwgUmVuZGVy
TGF5ZXIqCiBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjplbmNsb3NpbmdOb25T
dGFja2luZ0NsaXBwaW5nTGF5ZXIoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyKSBjb25zdAogewog
ICAgIGZvciAoUmVuZGVyTGF5ZXIqIGN1cnIgPSBsYXllci0+cGFyZW50KCk7IGN1cnIgIT0gMDsg
Y3VyciA9IGN1cnItPnBhcmVudCgpKSB7Ci0gICAgICAgIGlmIChjdXJyLT5pc1N0YWNraW5nQ29u
dGV4dCgpKQorICAgICAgICBpZiAoY3Vyci0+aXNTdGFja2luZ0NvbnRhaW5lcigpKQogICAgICAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgaWYgKGN1cnItPnJlbmRlcmVyKCktPmhhc0NsaXBP
ck92ZXJmbG93Q2xpcCgpKQpAQCAtNzgwLDcgKzc4Myw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjphZGRUb092ZXJsYXBNYXBSZWN1cnNpdmUoT3ZlcmxhcE1hcCYgb3ZlcmxhcE1hcCwg
UmVuCiAgICAgTGF5ZXJMaXN0TXV0YXRpb25EZXRlY3RvciBtdXRhdGlvbkNoZWNrZXIobGF5ZXIp
OwogI2VuZGlmCiAKLSAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpIHsKKyAgICBp
ZiAobGF5ZXItPmlzU3RhY2tpbmdDb250YWluZXIoKSkgewogICAgICAgICBpZiAoVmVjdG9yPFJl
bmRlckxheWVyKj4qIG5lZ1pPcmRlckxpc3QgPSBsYXllci0+bmVnWk9yZGVyTGlzdCgpKSB7CiAg
ICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBuZWdaT3JkZXJMaXN0LT5zaXplKCk7CiAgICAg
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKQEAgLTc5OCw3
ICs4MDEsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6YWRkVG9PdmVybGFwTWFwUmVj
dXJzaXZlKE92ZXJsYXBNYXAmIG92ZXJsYXBNYXAsIFJlbgogICAgICAgICB9CiAgICAgfQogCi0g
ICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAgaWYgKGxheWVyLT5pc1N0
YWNraW5nQ29udGFpbmVyKCkpIHsKICAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBw
b3NaT3JkZXJMaXN0ID0gbGF5ZXItPnBvc1pPcmRlckxpc3QoKSkgewogICAgICAgICAgICAgc2l6
ZV90IGxpc3RTaXplID0gcG9zWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CkBAIC04ODMsNyArODg2LDcgQEAgdm9p
ZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhS
ZW5kZXJMYXllciogYW5jZXN0b3IKIAogICAgIGJvb2wgYW55RGVzY2VuZGFudEhhczNEVHJhbnNm
b3JtID0gZmFsc2U7CiAKLSAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpIHsKKyAg
ICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250YWluZXIoKSkgewogICAgICAgICBpZiAoVmVjdG9y
PFJlbmRlckxheWVyKj4qIG5lZ1pPcmRlckxpc3QgPSBsYXllci0+bmVnWk9yZGVyTGlzdCgpKSB7
CiAgICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBuZWdaT3JkZXJMaXN0LT5zaXplKCk7CiAg
ICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKQEAgLTkx
NSw3ICs5MTgsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0
aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBhbmNlc3RvcgogICAgICAgICB9CiAgICAgfQog
Ci0gICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAgaWYgKGxheWVyLT5p
c1N0YWNraW5nQ29udGFpbmVyKCkpIHsKICAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+
KiBwb3NaT3JkZXJMaXN0ID0gbGF5ZXItPnBvc1pPcmRlckxpc3QoKSkgewogICAgICAgICAgICAg
c2l6ZV90IGxpc3RTaXplID0gcG9zWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CkBAIC0xMDk2LDcgKzEwOTksNyBA
QCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVl
KFJlbmRlckxheWVyKiBsYXllciwgVmVjdAogICAgIExheWVyTGlzdE11dGF0aW9uRGV0ZWN0b3Ig
bXV0YXRpb25DaGVja2VyKGxheWVyKTsKICNlbmRpZgogCi0gICAgaWYgKGxheWVyLT5pc1N0YWNr
aW5nQ29udGV4dCgpKSB7CisgICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGFpbmVyKCkpIHsK
ICAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0gbGF5ZXIt
Pm5lZ1pPcmRlckxpc3QoKSkgewogICAgICAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gbmVnWk9y
ZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0
U2l6ZTsgKytpKSB7CkBAIC0xMTE4LDcgKzExMjEsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyKiBsYXllciwgVmVj
dAogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRl
eHQoKSkgeworICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRhaW5lcigpKSB7CiAgICAgICAg
IGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlzdCA9IGxheWVyLT5wb3NaT3Jk
ZXJMaXN0KCkpIHsKICAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IHBvc1pPcmRlckxpc3Qt
PnNpemUoKTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsr
aSkgewpAQCAtMTMzNCw3ICsxMzM3LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUxheWVyVHJlZUdlb21ldHJ5KFJlbmRlckxheWVyKiBsYXllciwgaW50IGRlcHQKICAgICBM
YXllckxpc3RNdXRhdGlvbkRldGVjdG9yIG11dGF0aW9uQ2hlY2tlcihsYXllcik7CiAjZW5kaWYK
IAotICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkgeworICAgIGlmIChsYXllci0+
aXNTdGFja2luZ0NvbnRhaW5lcigpKSB7CiAgICAgICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIq
PiogbmVnWk9yZGVyTGlzdCA9IGxheWVyLT5uZWdaT3JkZXJMaXN0KCkpIHsKICAgICAgICAgICAg
IHNpemVfdCBsaXN0U2l6ZSA9IG5lZ1pPcmRlckxpc3QtPnNpemUoKTsKICAgICAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkKQEAgLTEzNDgsNyArMTM1MSw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllclRyZWVHZW9tZXRyeShSZW5k
ZXJMYXllciogbGF5ZXIsIGludCBkZXB0CiAgICAgICAgICAgICB1cGRhdGVMYXllclRyZWVHZW9t
ZXRyeShub3JtYWxGbG93TGlzdC0+YXQoaSksIGRlcHRoICsgMSk7CiAgICAgfQogICAgIAotICAg
IGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkgeworICAgIGlmIChsYXllci0+aXNTdGFj
a2luZ0NvbnRhaW5lcigpKSB7CiAgICAgICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogcG9z
Wk9yZGVyTGlzdCA9IGxheWVyLT5wb3NaT3JkZXJMaXN0KCkpIHsKICAgICAgICAgICAgIHNpemVf
dCBsaXN0U2l6ZSA9IHBvc1pPcmRlckxpc3QtPnNpemUoKTsKICAgICAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkKQEAgLTEzODUsNyArMTM4OCw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0Rlc2NlbmRhbnRHZW9tZXRy
eShSZW5kZXJMYXllciogY29tCiAgICAgTGF5ZXJMaXN0TXV0YXRpb25EZXRlY3RvciBtdXRhdGlv
bkNoZWNrZXIobGF5ZXIpOwogI2VuZGlmCiAgICAgCi0gICAgaWYgKGxheWVyLT5pc1N0YWNraW5n
Q29udGV4dCgpKSB7CisgICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGFpbmVyKCkpIHsKICAg
ICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0gbGF5ZXItPm5l
Z1pPcmRlckxpc3QoKSkgewogICAgICAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gbmVnWk9yZGVy
TGlzdC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6
ZTsgKytpKQpAQCAtMTM5OSw3ICsxNDAyLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnVwZGF0ZUNvbXBvc2l0aW5nRGVzY2VuZGFudEdlb21ldHJ5KFJlbmRlckxheWVyKiBjb20KICAg
ICAgICAgICAgIHVwZGF0ZUNvbXBvc2l0aW5nRGVzY2VuZGFudEdlb21ldHJ5KGNvbXBvc2l0aW5n
QW5jZXN0b3IsIG5vcm1hbEZsb3dMaXN0LT5hdChpKSwgY29tcG9zaXRlZENoaWxkcmVuT25seSk7
CiAgICAgfQogICAgIAotICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkgeworICAg
IGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRhaW5lcigpKSB7CiAgICAgICAgIGlmIChWZWN0b3I8
UmVuZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlzdCA9IGxheWVyLT5wb3NaT3JkZXJMaXN0KCkpIHsK
ICAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IHBvc1pPcmRlckxpc3QtPnNpemUoKTsKICAg
ICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkKQEAgLTIwMzMs
NyArMjAzNiw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0
aW5nRm9yUG9zaXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlCiAgICAgCiAgICAgRVBvc2l0aW9u
IHBvc2l0aW9uID0gcmVuZGVyZXItPnN0eWxlKCktPnBvc2l0aW9uKCk7CiAgICAgYm9vbCBpc0Zp
eGVkID0gcmVuZGVyZXItPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIHBvc2l0aW9uID09IEZp
eGVkUG9zaXRpb247Ci0gICAgaWYgKGlzRml4ZWQgJiYgIWxheWVyLT5pc1N0YWNraW5nQ29udGV4
dCgpKQorICAgIGlmIChpc0ZpeGVkICYmICFsYXllci0+aXNTdGFja2luZ0NvbnRhaW5lcigpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgYm9vbCBpc1N0aWNreSA9IHJlbmRlcmVy
LT5pc0luRmxvd1Bvc2l0aW9uZWQoKSAmJiBwb3NpdGlvbiA9PSBTdGlja3lQb3NpdGlvbjsKQEAg
LTI2NDIsNyArMjY0NSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllckhhczNE
Q29udGVudChjb25zdCBSZW5kZXJMYXllciogbGF5ZXIpIGNvbnN0CiAgICAgTGF5ZXJMaXN0TXV0
YXRpb25EZXRlY3RvciBtdXRhdGlvbkNoZWNrZXIoY29uc3RfY2FzdDxSZW5kZXJMYXllcio+KGxh
eWVyKSk7CiAjZW5kaWYKIAotICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkgewor
ICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRhaW5lcigpKSB7CiAgICAgICAgIGlmIChWZWN0
b3I8UmVuZGVyTGF5ZXIqPiogbmVnWk9yZGVyTGlzdCA9IGxheWVyLT5uZWdaT3JkZXJMaXN0KCkp
IHsKICAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5lZ1pPcmRlckxpc3QtPnNpemUoKTsK
ICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgewpAQCAt
MjY5Miw4ICsyNjk1LDggQEAgc3RhdGljIGJvb2wgaXNSb290bW9zdEZpeGVkT3JTdGlja3lMYXll
cihSZW5kZXJMYXllciogbGF5ZXIpCiAgICAgaWYgKGxheWVyLT5yZW5kZXJlcigpLT5zdHlsZSgp
LT5wb3NpdGlvbigpICE9IEZpeGVkUG9zaXRpb24pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGZvciAoUmVuZGVyTGF5ZXIqIHN0YWNraW5nQ29udGV4dCA9IGxheWVyLT5zdGFja2luZ0Nv
bnRleHQoKTsgc3RhY2tpbmdDb250ZXh0OyBzdGFja2luZ0NvbnRleHQgPSBzdGFja2luZ0NvbnRl
eHQtPnN0YWNraW5nQ29udGV4dCgpKSB7Ci0gICAgICAgIGlmIChzdGFja2luZ0NvbnRleHQtPmlz
Q29tcG9zaXRlZCgpICYmIHN0YWNraW5nQ29udGV4dC0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+cG9z
aXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uKQorICAgIGZvciAoUmVuZGVyTGF5ZXIqIHN0YWNraW5n
Q29udGFpbmVyID0gbGF5ZXItPnN0YWNraW5nQ29udGFpbmVyKCk7IHN0YWNraW5nQ29udGFpbmVy
OyBzdGFja2luZ0NvbnRhaW5lciA9IHN0YWNraW5nQ29udGFpbmVyLT5zdGFja2luZ0NvbnRhaW5l
cigpKSB7CisgICAgICAgIGlmIChzdGFja2luZ0NvbnRhaW5lci0+aXNDb21wb3NpdGVkKCkgJiYg
c3RhY2tpbmdDb250YWluZXItPnJlbmRlcmVyKCktPnN0eWxlKCktPnBvc2l0aW9uKCkgPT0gRml4
ZWRQb3NpdGlvbikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCBlOWJi
MDFhNDkyOTJkYzY3MTE2Njg1ZGM4NWE5MmY5MWY3MjhkYmY5Li42N2Q1NTMxMDQzZWE3NzY3ZTA1
YjczN2Q0MTY5MWQyOGQzMzE1MTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC01MSw3ICs1MSw4IEBAIGVudW0gQ29tcG9zaXRp
bmdVcGRhdGVUeXBlIHsKICAgICBDb21wb3NpdGluZ1VwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UsCiAg
ICAgQ29tcG9zaXRpbmdVcGRhdGVBZnRlckxheW91dCwKICAgICBDb21wb3NpdGluZ1VwZGF0ZU9u
SGl0VGVzdCwKLSAgICBDb21wb3NpdGluZ1VwZGF0ZU9uU2Nyb2xsCisgICAgQ29tcG9zaXRpbmdV
cGRhdGVPblNjcm9sbCwKKyAgICBDb21wb3NpdGluZ1VwZGF0ZU9uQ29tcG9zaXRlZFNjcm9sbAog
fTsKIAogLy8gUmVuZGVyTGF5ZXJDb21wb3NpdG9yIG1hbmFnZXMgdGhlIGhpZXJhcmNoeSBvZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdC5jcHAKaW5kZXggNzk3YWVlMzUyYjBlYjA4MzI0ZjU4Y2E5YjNmZDIyZmJmNWNhZjk2YS4u
MTc2NTQ0MmY4N2E4YzM0ZWFiMWRmMWY4ZDcyN2ZhYTc1MmJlMDQ3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBA
IC00ODAsNyArNDgwLDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlT2Zmc2V0RnJvbVZpZXdwb3J0Rm9y
U2VsZihSZW5kZXJMYXllciogcmVuZGVyTGF5ZXIpCiAgICAgaWYgKCFyZW5kZXJMYXllci0+cmVu
ZGVyZXIoKS0+Y29udGFpbmVyKCktPmlzUmVuZGVyVmlldygpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoIXJlbmRlckxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKQorICAgIGlmICghcmVu
ZGVyTGF5ZXItPmlzU3RhY2tpbmdDb250YWluZXIoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyID0gdG9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIoYmFja2luZy0+Z3JhcGhpY3NMYXllcigpKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZmU4NDBhOTJk
NDI4MmNiZWIyZGI2ZjYzNjM5ZmU1NDY5NWM3ZDQ3Li5jM2ZmNGY5YTNhZTc3NGIwZGE2N2FkYmE4
OWJiNTI2YTVkZjNkY2Y1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMDEtMjEgIEdsZW5u
IEhhcnRtYW5uICA8aGFydG1hbm5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBEb24ndCBvdmVy
bGFwIHRlc3QgZm9yIGNvbXBvc2l0ZWQgc2Nyb2xsIERJVnMgYWZ0ZXIgc2Nyb2xsCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc0NzEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBkb24ndCBuZWVkIHRv
IHBlcmZvcm0gb3ZlcmxhcCB0ZXN0aW5nIGZvciBjb21wb3NpdGVkIHNjcm9sbCBESVZzCisgICAg
ICAgIGFmdGVyIHNjcm9sbCwgYmVjYXVzZSBjb21wb3NpdGVkIGxheWVycyBzY3JvbGwgYXMgb25l
LiBUaGVyZSBzaG91bGQgYmUKKyAgICAgICAgbm8gbmVlZCB0byByZWNhbGN1bGF0ZSBvdmVybGFw
IHNpbmNlIHRoZSBsYXllcnMgd29uJ3QgYmUgbW92aW5nCisgICAgICAgIHJlbGF0aXZlIHRvIGVh
Y2ggb3RoZXIsIHNvIHRoZSBwcmV2aW91cyBvdmVybGFwIGRhdGEgaXMgc3RpbGwgdmFsaWQuCisK
KyAgICAgICAgKiBjb21wb3NpdGluZy9vdmVyZmxvdy9jb21wb3NpdGVkLXNjcm9sbGluZy1jcmVh
dGVzLWEtc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNv
bXBvc2l0aW5nL292ZXJmbG93L2NvbXBvc2l0ZWQtc2Nyb2xsaW5nLWNyZWF0ZXMtYS1zdGFja2lu
Zy1jb250ZXh0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL292ZXJmbG93
L2NvbXBvc2l0ZWQtc2Nyb2xsaW5nLWNyZWF0ZXMtYS1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisKIDIwMTMtMDEtMjEgIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogbW9kaWZ5IGdlbmVyYXRlX3Byb3Rv
Y29sX2V4dGVybnMucHkgdG8gZ2VuZXJhdGUgSlNPTiB0eXBlZGVmJ3MgZm9yIEBjb25zdHJ1Y3Rv
cnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbXBvc2l0
ZWQtc2Nyb2xsaW5nLWNyZWF0ZXMtYS1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbXBvc2l0ZWQtc2Nyb2xsaW5nLWNyZWF0
ZXMtYS1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTgzOGU4NGIx
ODBlOTEwNzBmN2MyNmQwMDZjYTU1N2ZhYjMyNWE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29tcG9zaXRlZC1zY3JvbGxpbmctY3JlYXRlcy1h
LXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTQgQEAKKyhHcmFwaGlj
c0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxkcmVu
IDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAu
MDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAz
MDAuMDApCisgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAg
ICAgICAoY2hpbGRyZW4gMgorICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgICAgICAoYm91bmRz
IDIwMC4wMCAxNTAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAg
ICAgIChib3VuZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEp
CisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAocG9zaXRpb24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1
LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4
Ni4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQor
ICAgICAgKQorICAgICkKKyAgKQorKQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL292ZXJmbG93L2NvbXBvc2l0ZWQtc2Nyb2xsaW5nLWNyZWF0ZXMtYS1zdGFja2luZy1j
b250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9jb21wb3NpdGVk
LXNjcm9sbGluZy1jcmVhdGVzLWEtc3RhY2tpbmctY29udGV4dC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3
ZjhlYjlmZWNmNTgzNjBkMDA3OTQ4N2Q0NWUyMWIzMjA2NmQyMzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9jb21wb3NpdGVkLXNjcm9sbGluZy1j
cmVhdGVzLWEtc3RhY2tpbmctY29udGV4dC5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzwhRE9DVFlQ
RSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisg
ICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKworPGh0bWwgbGFuZz0i
ZW4iPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+CisgIDx0aXRsZT5Db21wb3NpdGVkIHNjcm9sbGlu
ZyBjcmVhdGVzIGEgc3RhY2tpbmcgY29udGV4dC48L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4
dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgIC5jb250YWluZXIgeworICAgICAgd2lkdGg6IDIw
MHB4OworICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAg
ICBtYXJnaW46IDIwcHg7CisgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9CisK
KyAgICAuY29tcG9zaXRlZCB7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDE1
MHB4OworICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CisgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICB9CisKKyAgICAubm90LWNvbXBvc2l0ZWQgeworICAg
ICAgd2lkdGg6IDIwMHB4OworICAgICAgaGVpZ2h0OiAxNTBweDsKKyAgICAgIGJhY2tncm91bmQt
Y29sb3I6IGJsdWU7CisgICAgfQorCisgICAgLmluLWZsb3ctcG9zaXRpb25lZCB7CisgICAgICBw
b3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICB9CisKKyAgICAu
Zml4ZWQgeworICAgICAgei1pbmRleDogLTE7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmVkOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKHRydWUpOworCisgICAgZnVuY3Rpb24gZG9UZXN0
KCkKKyAgICB7CisgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKworICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdmFyIGxheWVyVHJlZSA9IHdpbmRvdy5pbnRlcm5h
bHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKKyAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyk7CisgICAgICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUobGF5ZXJUcmVlICsgJ1xuJyk7CisgICAgICAgIHByZS5hcHBlbmRDaGls
ZCh0ZXh0KTsKKyAgICAgIH0KKyAgICB9CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsIGRvVGVzdCwgZmFsc2UpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9ImluLWZsb3ctcG9zaXRpb25l
ZCI+CisgICAgICA8ZGl2IGNsYXNzPSJmaXhlZCI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29tcG9zaXRlZCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibm90LWNvbXBvc2l0
ZWQiPjwvZGl2PgorICA8L2Rpdj4KKyAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8L2JvZHk+
Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDA1MjhlNzkxZjI2NGExOTc4ZDc4MDQxNzU5NjM1OTRiM2Q3NDkyMGYuLmQy
YWJiNGMwYzYxYWEwZmU3NGMwNzJjMTY2ZDMxZjM3YTQ0ZDk1ZGIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzYyNyw2ICszNjI3LDkg
QEAgd2Via2l0Lm9yZy9iLzkyOTY4IGh0dHAvdGVzdHMvYXBwY2FjaGUvYWJvcnQtY2FjaGUtb25w
cm9ncmVzcy5odG1sCiAjIFNjcm9sbGluZyBjb250ZW50IGRyYXdzIGJlbmVhdGggc2Nyb2xsYmFy
cyBpbiBjb21wb3NpdGVkIHNjcm9sbGluZyBtb2RlLgogd2Via2l0Lm9yZy9iLzEwMzE1NiBwbGF0
Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9jb21wb3NpdGVkc2Nyb2xsaW5nL3Njcm9sbGJhcnMv
Y3VzdG9tLXNjcm9sbGJhci13aXRoLWluY29tcGxldGUtc3R5bGUuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogCisjIFJlcXVpcmVzIGFuIHVwZGF0ZWQgYmFzZWxpbmUgYWZ0ZXIgMTA2MTQyLgor
d2Via2l0Lm9yZy9iLzEwNjgyMCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9jb21wb3Np
dGVkc2Nyb2xsaW5nL292ZXJmbG93L292ZXJmbG93LXNjcm9sbC5odG1sIFsgRmFpbHVyZSBdCisK
ICMgRmFpbHMgZHVlIHRvIEJ1ZyA4NTg1Ni4KIHdlYmtpdC5vcmcvYi84NTg1NiBbIFdpbiBNYWMg
QW5kcm9pZCBdIGZhc3QvYmxvY2svZmxvYXQvMDI4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
IHdlYmtpdC5vcmcvYi84NTg1NiBbIFdpbiBNYWMgQW5kcm9pZCBdIGZhc3QvYmxvY2svZmxvYXQv
MDI2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9jb21wb3NpdGluZy9vdmVyZmxvdy9jb21wb3NpdGVkLXNjcm9sbGluZy1jcmVh
dGVzLWEtc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29tcG9zaXRlZC1zY3JvbGxpbmctY3JlYXRlcy1h
LXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0YTJmOWI5YmFkNGI0
YmNmN2MzYjQ1M2Y1OGZiYjQ1YjhmNjJmMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29tcG9zaXRlZC1zY3JvbGxpbmct
Y3JlYXRlcy1hLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAK
KyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEK
KyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAg
KGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
MjguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAg
ICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRz
IDIwMC4wMCAzMDAuMDApCisgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICAgICAgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAgICAgICAgICkK
KyAgICAgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgICAg
ICAoYm91bmRzIDIwMC4wMCAxNTAuMDApCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwor
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183986</attachid>
            <date>2013-01-22 07:41:07 -0800</date>
            <delta_ts>2013-01-22 10:27:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107471-20130122103801.patch</filename>
            <type>text/plain</type>
            <size>53310</size>
            <attacher name="Glenn Hartmann">hartmanng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM2Y2JkMjE4ZWQ2MTM3
MTE3MTc2NGZiNWU5YjlkNmExNDRiZDAzNC4uM2FjZjA0Njk1MTQzOGQ0M2E0NGE4YWI0ZDNlYWEx
NDY4YmU1OGI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDEzLTAxLTIyICBHbGVu
biBIYXJ0bWFubiAgPGhhcnRtYW5uZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3Qgb3Zl
cmxhcCB0ZXN0IGZvciBjb21wb3NpdGVkIHNjcm9sbCBESVZzIGFmdGVyIHNjcm9sbAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NDcxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgZG9uJ3QgbmVlZCB0
byB0ZXN0IGZvciBvdmVybGFwIGFmdGVyIHNjcm9sbCB3aGVuIGJvdGgKKyAgICAgICAgdXNlc0Nv
bXBvc2l0ZWRTY3JvbGxpbmcgYW5kICFoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudAor
ICAgICAgICBiZWNhdXNlOgorCisgICAgICAgIGEpIFNpbmNlIHdlJ3JlIHVzaW5nIGNvbXBvc2l0
ZWQtc2Nyb2xsaW5nLCB0aGUgY29tcG9zaXRlZCByZWdpb24KKyAgICAgICAgcHJlc2VudGVkIGJ5
IHRoZSBjb21wb3NpdGVkLXNjcm9sbGluZyBlbGVtZW50IHRvIG90aGVyIG5vbi1kZXNjZW5kYW50
CisgICAgICAgIGxheWVycyBkb2Vzbid0IGNoYW5nZSBkdXJpbmcgY29tcG9zaXRlZCBzY3JvbGxp
bmcgKGl0J3MgYWx3YXlzIHRoZQorICAgICAgICBlbnRpcmUgc2Nyb2xsIGxheWVyKSwgYW5kCisK
KyAgICAgICAgYikgU2luY2Ugd2UgaGF2ZSBubyBvdXQgb2YgZmxvdyBwb3NpdGlvbmVkIGRlc2Nl
bmRhbnRzLCB0aGUgc2Nyb2xsaW5nCisgICAgICAgIGRlc2NlbmRhbnRzIGFsbCBtb3ZlIHRvZ2V0
aGVyLCBzbyB0aGVpciBvdmVybGFwIHdpdGggcmVzcGVjdCB0byBlYWNoCisgICAgICAgIG90aGVy
IGNhbm5vdCBjaGFuZ2UuCisKKyAgICAgICAgU28gbm8gZGVzY2VuZGFudHMgbm9yIGFueSBub24t
ZGVzY2VuZGFudHMgY2FuIGhhdmUgdGhlaXIgb3ZlcmxhcAorICAgICAgICBhZmZlY3RlZCwgc28g
aXQncyBzYWZlIHRvIHNraXAgdGVzdGluZy4KKworICAgICAgICBUZXN0OiBjb21wb3NpdGluZy9v
dmVyZmxvdy9jb21wb3NpdGVkLXNjcm9sbGluZy1jcmVhdGVzLWEtc3RhY2tpbmctY29udGV4dC5o
dG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9y
TGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6UmVuZGVyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlRGVzY2VuZGFudHNBcmVDb250aWd1
b3VzSW5TdGFja2luZ09yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRh
dGVQYWdpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYW5CZVN0YWNr
aW5nQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzZXRIYXNWaXNp
YmxlQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHkzRFRyYW5z
Zm9ybWVkRGVzY2VuZGFudFN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
c3RhY2tpbmdDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcG9zaXRpbmdDb250YWlu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6ZXhwYW5kQ2xpcFJlY3RGb3JEZXNjZW5kYW50c0FuZFJl
ZmxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmFkZENoaWxkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Ny
b2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludFBhZ2luYXRlZENoaWxk
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmhpdFRlc3RQYWdpbmF0ZWRD
aGlsZExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVMYXll
ckJvdW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlaT3JkZXJMaXN0
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlTdGFja2luZ0NvbnRhaW5l
clpPcmRlckxpc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZWJ1aWxkWk9y
ZGVyTGlzdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNvbGxlY3RMYXllcnMp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyTGlzdHNJZk5lZWRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdBbmRM
YXllckxpc3RzSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0
ZVN0YWNraW5nQ29udGV4dHNBZnRlclN0eWxlQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpzdHlsZUNoYW5nZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OmlzU3RhY2tpbmdDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnBvc1pPcmRlckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om5lZ1pPcmRl
ckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmlzRGlydHlTdGFja2luZ0Nv
bnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2xlYXJaT3JkZXJMaXN0
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlWk9yZGVyTGlzdHMpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjb21wb3NpdGluZ09wYWNpdHkp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpoYXNWaXNpYmxlTm9uQ29t
cG9zaXRpbmdEZXNjZW5kYW50TGF5ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRv
cjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjplbmNsb3NpbmdOb25TdGFja2luZ0NsaXBwaW5nTGF5ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphZGRUb092ZXJsYXBNYXBSZWN1cnNp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29t
cG9zaXRpbmdSZXF1aXJlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllclRyZWVHZW9tZXRyeSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nRGVzY2Vu
ZGFudEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6
cmVxdWlyZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJIYXMzRENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
aXNSb290bW9zdEZpeGVkT3JTdGlja3lMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oOgorCiAyMDEzLTAxLTE4ICBBbmRyZXkgQWRhaWtpbiAgPGFhbmRy
ZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vZGlmeSBnZW5lcmF0
ZV9wcm90b2NvbF9leHRlcm5zLnB5IHRvIGdlbmVyYXRlIEpTT04gdHlwZWRlZidzIGZvciBAY29u
c3RydWN0b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWQ0NGQ0YzBhZjVlNDhiODQxMDYzZDMxODczOGQ4MDYy
ZmY1NDk5ZC4uNzYwMzJiNDNhMDFjMmRiYjk3Yjk5OTBiZmI5MmQzOWJhMzdhZTAzNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAxLTIyICBHbGVubiBIYXJ0bWFubiAgPGhhcnRt
YW5uZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3Qgb3ZlcmxhcCB0ZXN0IGZvciBjb21w
b3NpdGVkIHNjcm9sbCBESVZzIGFmdGVyIHNjcm9sbAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgZG9uJ3QgbmVlZCB0byB0ZXN0IGZvciBvdmVybGFw
IGFmdGVyIHNjcm9sbCB3aGVuIGJvdGgKKyAgICAgICAgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcg
YW5kICFoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudAorICAgICAgICBiZWNhdXNlOgor
CisgICAgICAgIGEpIFNpbmNlIHdlJ3JlIHVzaW5nIGNvbXBvc2l0ZWQtc2Nyb2xsaW5nLCB0aGUg
Y29tcG9zaXRlZCByZWdpb24KKyAgICAgICAgcHJlc2VudGVkIGJ5IHRoZSBjb21wb3NpdGVkLXNj
cm9sbGluZyBlbGVtZW50IHRvIG90aGVyIG5vbi1kZXNjZW5kYW50CisgICAgICAgIGxheWVycyBk
b2Vzbid0IGNoYW5nZSBkdXJpbmcgY29tcG9zaXRlZCBzY3JvbGxpbmcgKGl0J3MgYWx3YXlzIHRo
ZQorICAgICAgICBlbnRpcmUgc2Nyb2xsIGxheWVyKSwgYW5kCisKKyAgICAgICAgYikgU2luY2Ug
d2UgaGF2ZSBubyBvdXQgb2YgZmxvdyBwb3NpdGlvbmVkIGRlc2NlbmRhbnRzLCB0aGUgc2Nyb2xs
aW5nCisgICAgICAgIGRlc2NlbmRhbnRzIGFsbCBtb3ZlIHRvZ2V0aGVyLCBzbyB0aGVpciBvdmVy
bGFwIHdpdGggcmVzcGVjdCB0byBlYWNoCisgICAgICAgIG90aGVyIGNhbm5vdCBjaGFuZ2UuCisK
KyAgICAgICAgU28gbm8gZGVzY2VuZGFudHMgbm9yIGFueSBub24tZGVzY2VuZGFudHMgY2FuIGhh
dmUgdGhlaXIgb3ZlcmxhcAorICAgICAgICBhZmZlY3RlZCwgc28gaXQncyBzYWZlIHRvIHNraXAg
dGVzdGluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OnVwZGF0
ZU9mZnNldEZyb21WaWV3cG9ydEZvclNlbGYpOgorCiAyMDEzLTAxLTIxICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTM5NzgxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckxheWVyVHJlZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKaW5kZXggZjU1ODNjOGEzNWFmOTA5YWY3NzQ0MTM0OGEw
ZjBhYzNjY2M2ZTZkYi4uYzc3ZDExOGRlNmUwMjhjMzZiMWM0MGVkYjhhNTgwNmQwMWVhOWJiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVl
QWdlbnQuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6TGF5
ZXJUcmVlOjpMYXllcj4gSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm8KICAg
ICBpZiAocmVuZGVyTGF5ZXItPnJlZmxlY3Rpb25MYXllcigpKQogICAgICAgICBjaGlsZHJlbkFy
cmF5LT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9yTGF5ZXIocmVuZGVyTGF5ZXItPnJlZmxlY3Rpb25M
YXllcigpKSk7CiAKLSAgICBpZiAocmVuZGVyTGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpIHsK
KyAgICBpZiAocmVuZGVyTGF5ZXItPmlzU3RhY2tpbmdDb250YWluZXIoKSkgewogICAgICAgICBp
ZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIG5lZ1pPcmRlckxpc3QgPSByZW5kZXJMYXllci0+bmVn
Wk9yZGVyTGlzdCgpKSB7CiAgICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBuZWdaT3JkZXJM
aXN0LT5zaXplKCk7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXpl
OyArK2kpCkBAIC0xNjMsNyArMTYzLDcgQEAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6TGF5ZXJU
cmVlOjpMYXllcj4gSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm8KICAgICAg
ICAgICAgIGNoaWxkcmVuQXJyYXktPmFkZEl0ZW0oYnVpbGRPYmplY3RGb3JMYXllcihub3JtYWxG
bG93TGlzdC0+YXQoaSkpKTsKICAgICB9CiAgICAgCi0gICAgaWYgKHJlbmRlckxheWVyLT5pc1N0
YWNraW5nQ29udGV4dCgpKSB7CisgICAgaWYgKHJlbmRlckxheWVyLT5pc1N0YWNraW5nQ29udGFp
bmVyKCkpIHsKICAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBwb3NaT3JkZXJMaXN0
ID0gcmVuZGVyTGF5ZXItPnBvc1pPcmRlckxpc3QoKSkgewogICAgICAgICAgICAgc2l6ZV90IGxp
c3RTaXplID0gcG9zWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKaW5kZXggYjg5Y2NkMzE3NDQzYTJiZTFiY2EwNTEwMmJjOWE4YjFhMzdlOGJiYS4u
ZjNhMWI5ZjcxMjAxYWQxM2UwMzQ4NjAwNjZjNmRlYmJmYTkyNTA2NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xOTYsOSArMTk2LDkgQEAgUmVuZGVyTGF5
ZXI6OlJlbmRlckxheWVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlbmRlcmVyKQogICAgIG1f
aXNOb3JtYWxGbG93T25seSA9IHNob3VsZEJlTm9ybWFsRmxvd09ubHkoKTsKICAgICBtX2lzU2Vs
ZlBhaW50aW5nTGF5ZXIgPSBzaG91bGRCZVNlbGZQYWludGluZ0xheWVyKCk7CiAKLSAgICAvLyBO
b24tc3RhY2tpbmcgY29udGV4dHMgc2hvdWxkIGhhdmUgZW1wdHkgei1vcmRlciBsaXN0cy4gQXMg
dGhpcyBpcyBhbHJlYWR5IHRoZSBjYXNlLAorICAgIC8vIE5vbi1zdGFja2luZyBjb250YWluZXJz
IHNob3VsZCBoYXZlIGVtcHR5IHotb3JkZXIgbGlzdHMuIEFzIHRoaXMgaXMgYWxyZWFkeSB0aGUg
Y2FzZSwKICAgICAvLyB0aGVyZSBpcyBubyBuZWVkIHRvIGRpcnR5IC8gcmVjb21wdXRlIHRoZXNl
IGxpc3RzLgotICAgIG1fek9yZGVyTGlzdHNEaXJ0eSA9IGlzU3RhY2tpbmdDb250ZXh0KCk7Cisg
ICAgbV96T3JkZXJMaXN0c0RpcnR5ID0gaXNTdGFja2luZ0NvbnRhaW5lcigpOwogCiAgICAgU2Ny
b2xsYWJsZUFyZWE6OnNldENvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKGZhbHNlKTsK
IApAQCAtNTIyLDEwICs1MjIsMTAgQEAgYm9vbCBSZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0CiAgICAgICAgICYmIHJlbmRl
cmVyKCktPmZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+YWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpOwogfQogCi0vLyBJZiB3ZSBhcmUgYSBzdGFja2lu
ZyBjb250ZXh0LCB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBkZXRlcm1pbmUgaWYgb3VyCisvLyBJ
ZiB3ZSBhcmUgYSBzdGFja2luZyBjb250YWluZXIsIHRoZW4gdGhpcyBmdW5jdGlvbiB3aWxsIGRl
dGVybWluZSBpZiBvdXIKIC8vIGRlc2NlbmRhbnRzIGZvciBhIGNvbnRpZ3VvdXMgYmxvY2sgaW4g
c3RhY2tpbmcgb3JkZXIuIFRoaXMgaXMgcmVxdWlyZWQgaW4KLS8vIG9yZGVyIGZvciBhbiBlbGVt
ZW50IHRvIGJlIHNhZmVseSBwcm9tb3RlZCB0byBhIHN0YWNraW5nIGNvbnRleHQuIEl0IGlzIHNh
ZmUKLS8vIHRvIGJlY29tZSBhIHN0YWNraW5nIGNvbnRleHQgaWYgdGhpcyBjaGFuZ2Ugd291bGQg
bm90IGFsdGVyIHRoZSBzdGFja2luZworLy8gb3JkZXIgZm9yIGFuIGVsZW1lbnQgdG8gYmUgc2Fm
ZWx5IHByb21vdGVkIHRvIGEgc3RhY2tpbmcgY29udGFpbmVyLiBJdCBpcyBzYWZlCisvLyB0byBi
ZWNvbWUgYSBzdGFja2luZyBjb250YWluZXIgaWYgdGhpcyBjaGFuZ2Ugd291bGQgbm90IGFsdGVy
IHRoZSBzdGFja2luZwogLy8gb3JkZXIgb2YgbGF5ZXJzIG9uIHRoZSBwYWdlLiBUaGF0IGNhbiBv
bmx5IGhhcHBlbiBpZiBhIG5vbi1kZXNjZW5kYW50IGFwcGVhcgogLy8gYmV0d2VlbiB1cyBhbmQg
b3VyIGRlc2NlbmRhbnRzIGluIHN0YWNraW5nIG9yZGVyLiBIZXJlJ3MgYW4gZXhhbXBsZToKIC8v
CkBAIC01MzgsOCArNTM4LDggQEAgYm9vbCBSZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0CiAvLyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNQogLy8KIC8vIEkndmUgbGFiZWxlZCBvdXIgbm9ybWFsIGZsb3cg
ZGVzY2VuZGFudHMgQSwgQiwgQywgYW5kIEQsIG91ciBzdGFja2luZwotLy8gY29udGV4dCBkZXNj
ZW5kYW50cyB3aXRoIHRoZWlyIHogaW5kaWNlcywgYW5kIHVzIHdpdGggJ3RoaXMnICh3ZSdyZSBh
Ci0vLyBzdGFja2luZyBjb250ZXh0IGFuZCBvdXIgekluZGV4IGRvZXNuJ3QgbWF0dGVyIGhlcmUp
LiBUaGVzZSBub2RlcyBhcHBlYXIgaW4KKy8vIGNvbnRhaW5lciBkZXNjZW5kYW50cyB3aXRoIHRo
ZWlyIHogaW5kaWNlcywgYW5kIHVzIHdpdGggJ3RoaXMnICh3ZSdyZSBhCisvLyBzdGFja2luZyBj
b250YWluZXIgYW5kIG91ciB6SW5kZXggZG9lc24ndCBtYXR0ZXIgaGVyZSkuIFRoZXNlIG5vZGVz
IGFwcGVhciBpbgogLy8gdGhyZWUgbGlzdHM6IHBvc1pPcmRlciwgbmVnWk9yZGVyLCBhbmQgbm9y
bWFsIGZsb3cgKGtlZXAgaW4gbWluZCB0aGF0IG5vcm1hbAogLy8gZmxvdyBsYXllcnMgZG9uJ3Qg
b3ZlcmxhcCkuIFNvIGlmIHdlIGFycmFuZ2UgdGhlc2UgbGlzdHMgaW4gb3JkZXIgd2UgZ2V0IG91
cgogLy8gc3RhY2tpbmcgb3JkZXI6CkBAIC01NTUsMTAgKzU1NSwxMCBAQCBib29sIFJlbmRlckxh
eWVyOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkgY29u
c3QKIC8vCiAvLyBOb3RlIHRoYXQgdGhlIG5vcm1hbCBmbG93IGRlc2NlbmRhbnRzIGNhbiBzaGFy
ZSBhbiBpbmRleCBiZWNhdXNlIHRoZXkgZG9uJ3QKIC8vIHN0YWNrL292ZXJsYXAuIE5vdyBvdXIg
cHJvYmxlbSBiZWNvbWVzIHZlcnkgc2ltcGxlOiBhIGxheWVyIGNhbiBzYWZlbHkgYmVjb21lCi0v
LyBhIHN0YWNraW5nIGNvbnRleHQgaWYgdGhlIHN0YWNraW5nLW9yZGVyIGluZGljZXMgb2YgaXQg
YW5kIGl0cyBkZXNjZW5kYW50cworLy8gYSBzdGFja2luZyBjb250YWluZXIgaWYgdGhlIHN0YWNr
aW5nLW9yZGVyIGluZGljZXMgb2YgaXQgYW5kIGl0cyBkZXNjZW5kYW50cwogLy8gYXBwZWFyIGlu
IGEgY29udGlndW91cyBibG9jayBpbiB0aGUgbGlzdCBvZiBzdGFja2luZyBpbmRpY2VzLiBUaGlz
IHByb2JsZW0KIC8vIGNhbiBiZSBzb2x2ZWQgdmVyeSBlZmZpY2llbnRseSBieSBjYWxjdWxhdGlu
ZyB0aGUgbWluL21heCBzdGFja2luZyBpbmRpY2VzIGluCi0vLyB0aGUgc3VidHJlZSwgYW5kIHRo
ZSBudW1iZXIgc3RhY2tpbmcgY29udGV4dCBkZXNjZW5kYW50cy4gT25jZSB3ZSBoYXZlIHRoaXMK
Ky8vIHRoZSBzdWJ0cmVlLCBhbmQgdGhlIG51bWJlciBzdGFja2luZyBjb250YWluZXIgZGVzY2Vu
ZGFudHMuIE9uY2Ugd2UgaGF2ZSB0aGlzCiAvLyBpbmZvcm1hdGlvbiwgd2Uga25vdyB0aGF0IHRo
ZSBzdWJ0cmVlJ3MgaW5kaWNlcyBmb3JtIGEgY29udGlndW91cyBibG9jayBpZjoKIC8vCiAvLyAg
ICAgICAgICAgbWF4U3RhY2tJbmRleCAtIG1pblN0YWNrSW5kZXggPT0gbnVtU0NEZXNjZW5kYW50
cwpAQCAtNTczLDcgKzU3Myw3IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSBjb25zdAogLy8gID09PT4gICAgICAgICAg
ICAgICAgICAgICAgMSAtICgtMSkgPT0gMgogLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDIgPT0gMgogLy8KLS8vICBTaW5jZSB0aGlzIGlzIHRydWUsIEEgY2FuIHNhZmVseSBi
ZWNvbWUgYSBzdGFja2luZyBjb250ZXh0LgorLy8gIFNpbmNlIHRoaXMgaXMgdHJ1ZSwgQSBjYW4g
c2FmZWx5IGJlY29tZSBhIHN0YWNraW5nIGNvbnRhaW5lci4KIC8vICBOb3csIGZvciBub2RlIEMg
d2UgaGF2ZToKIC8vCiAvLyAgIG1heFN0YWNrSW5kZXggPSA0CkBAIC01ODUsNyArNTg1LDcgQEAg
Ym9vbCBSZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xs
RW5hYmxlZCgpIGNvbnN0CiAvLyAgPT09PiAgICAgICAgICAgICAgICAgICAgICAgICA0IC0gMCA9
PSAyCiAvLyAgPT09PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCA9PSAyCiAvLwotLy8g
U2luY2UgdGhpcyBpcyBmYWxzZSwgQyBjYW5ub3QgYmUgc2FmZWx5IHByb21vdGVkIHRvIGEgc3Rh
Y2tpbmcgY29udGV4dC4gVGhpcworLy8gU2luY2UgdGhpcyBpcyBmYWxzZSwgQyBjYW5ub3QgYmUg
c2FmZWx5IHByb21vdGVkIHRvIGEgc3RhY2tpbmcgY29udGFpbmVyLiBUaGlzCiAvLyBoYXBwZW5l
ZCBiZWNhdXNlIG9mIHRoZSBlbGVtZW50cyB3aXRoIHotaW5kZXggNSBhbmQgMC4gTm93IGlmIDUg
aGFkIGJlZW4gYQogLy8gY2hpbGQgb2YgQyByYXRoZXIgdGhhbiBELCBhbmQgQSBoYWQgbm8gY2hp
bGQgd2l0aCBaIGluZGV4IDAsIHdlIHdvdWxkIGhhdmUgaGFkOgogLy8KQEAgLTYwNywyNSArNjA3
LDI5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0lu
U3RhY2tpbmdPcmRlcigpCiAgICAgQVNTRVJUKCFtX25vcm1hbEZsb3dMaXN0RGlydHkpOwogICAg
IEFTU0VSVCghbV96T3JkZXJMaXN0c0RpcnR5KTsKIAorICAgIE93blB0cjxWZWN0b3I8UmVuZGVy
TGF5ZXIqPiA+IHBvc1pPcmRlckxpc3Q7CisgICAgT3duUHRyPFZlY3RvcjxSZW5kZXJMYXllcio+
ID4gbmVnWk9yZGVyTGlzdDsKKyAgICByZWJ1aWxkWk9yZGVyTGlzdHMoU3RvcEF0U3RhY2tpbmdD
b250ZXh0cywgcG9zWk9yZGVyTGlzdCwgbmVnWk9yZGVyTGlzdCk7CisKICAgICAvLyBDcmVhdGUg
YSByZXZlcnNlIGxvb2t1cC4KICAgICBIYXNoTWFwPGNvbnN0IFJlbmRlckxheWVyKiwgaW50PiBs
b29rdXA7CiAKLSAgICBpZiAobV9uZWdaT3JkZXJMaXN0KSB7CisgICAgaWYgKG5lZ1pPcmRlckxp
c3QpIHsKICAgICAgICAgaW50IHN0YWNraW5nT3JkZXJJbmRleCA9IC0xOwotICAgICAgICBzaXpl
X3QgbGlzdFNpemUgPSBtX25lZ1pPcmRlckxpc3QtPnNpemUoKTsKKyAgICAgICAgc2l6ZV90IGxp
c3RTaXplID0gbmVnWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGxpc3RTaXplOyArK2kpIHsKLSAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJyZW50
TGF5ZXIgPSBtX25lZ1pPcmRlckxpc3QtPmF0KGxpc3RTaXplIC0gaSAtIDEpOworICAgICAgICAg
ICAgUmVuZGVyTGF5ZXIqIGN1cnJlbnRMYXllciA9IG5lZ1pPcmRlckxpc3QtPmF0KGxpc3RTaXpl
IC0gaSAtIDEpOwogICAgICAgICAgICAgaWYgKCFjdXJyZW50TGF5ZXItPmlzU3RhY2tpbmdDb250
ZXh0KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBsb29rdXAuc2V0
KGN1cnJlbnRMYXllciwgc3RhY2tpbmdPcmRlckluZGV4LS0pOwogICAgICAgICB9CiAgICAgfQog
Ci0gICAgaWYgKG1fcG9zWk9yZGVyTGlzdCkgewotICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBt
X3Bvc1pPcmRlckxpc3QtPnNpemUoKTsKKyAgICBpZiAocG9zWk9yZGVyTGlzdCkgeworICAgICAg
ICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0LT5zaXplKCk7CiAgICAgICAgIGludCBz
dGFja2luZ09yZGVySW5kZXggPSAxOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxp
c3RTaXplOyArK2kpIHsKLSAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJyZW50TGF5ZXIgPSBt
X3Bvc1pPcmRlckxpc3QtPmF0KGkpOworICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1cnJlbnRM
YXllciA9IHBvc1pPcmRlckxpc3QtPmF0KGkpOwogICAgICAgICAgICAgaWYgKCFjdXJyZW50TGF5
ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICBsb29rdXAuc2V0KGN1cnJlbnRMYXllciwgc3RhY2tpbmdPcmRlckluZGV4KyspOwpA
QCAtOTE1LDIxICs5MTksMjEgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlUGFnaW5hdGlvbigp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBJZiB3ZSdyZSBub3Qgbm9ybWFsIGZs
b3csIHRoZW4gd2UgbmVlZCB0byBsb29rIGZvciBhIG11bHRpLWNvbHVtbiBvYmplY3QgYmV0d2Vl
biB1cyBhbmQgb3VyIHN0YWNraW5nIGNvbnRleHQuCi0gICAgUmVuZGVyTGF5ZXIqIGFuY2VzdG9y
U3RhY2tpbmdDb250ZXh0ID0gc3RhY2tpbmdDb250ZXh0KCk7CisgICAgLy8gSWYgd2UncmUgbm90
IG5vcm1hbCBmbG93LCB0aGVuIHdlIG5lZWQgdG8gbG9vayBmb3IgYSBtdWx0aS1jb2x1bW4gb2Jq
ZWN0IGJldHdlZW4gdXMgYW5kIG91ciBzdGFja2luZyBjb250YWluZXIuCisgICAgUmVuZGVyTGF5
ZXIqIGFuY2VzdG9yU3RhY2tpbmdDb250YWluZXIgPSBzdGFja2luZ0NvbnRhaW5lcigpOwogICAg
IGZvciAoUmVuZGVyTGF5ZXIqIGN1cnIgPSBwYXJlbnQoKTsgY3VycjsgY3VyciA9IGN1cnItPnBh
cmVudCgpKSB7CiAgICAgICAgIGlmIChjdXJyLT5yZW5kZXJlcigpLT5oYXNDb2x1bW5zKCkpIHsK
ICAgICAgICAgICAgIG1faXNQYWdpbmF0ZWQgPSBjaGVja0NvbnRhaW5pbmdCbG9ja0NoYWluRm9y
UGFnaW5hdGlvbihyZW5kZXJlcigpLCBjdXJyLT5yZW5kZXJCb3goKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGN1cnIgPT0gYW5jZXN0b3JTdGFja2luZ0Nv
bnRleHQpCisgICAgICAgIGlmIChjdXJyID09IGFuY2VzdG9yU3RhY2tpbmdDb250YWluZXIpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgfQogfQogCi1ib29sIFJlbmRlckxheWVyOjpjYW5TYWZl
bHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXI6OmNh
bkJlU3RhY2tpbmdDb250YWluZXIoKSBjb25zdAogewotICAgIGlmIChpc1N0YWNraW5nQ29udGV4
dCgpIHx8ICFzdGFja2luZ0NvbnRleHQoKSkKKyAgICBpZiAoaXNTdGFja2luZ0NvbnRleHQoKSB8
fCAhc3RhY2tpbmdDb250YWluZXIoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1
cm4gbV9kZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXI7CkBAIC05NDcsOSAr
OTUxLDkgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2V0SGFzVmlzaWJsZUNvbnRlbnQoKQogICAgIGNv
bXB1dGVSZXBhaW50UmVjdHMocmVuZGVyZXIoKS0+Y29udGFpbmVyRm9yUmVwYWludCgpKTsKICAg
ICBpZiAoIWlzTm9ybWFsRmxvd09ubHkoKSkgewogICAgICAgICAvLyBXZSBkb24ndCBjb2xsZWN0
IGludmlzaWJsZSBsYXllcnMgaW4gei1vcmRlciBsaXN0cyBpZiB3ZSBhcmUgbm90IGluIGNvbXBv
c2l0aW5nIG1vZGUuCi0gICAgICAgIC8vIEFzIHdlIGJlY2FtZSB2aXNpYmxlLCB3ZSBuZWVkIHRv
IGRpcnR5IG91ciBzdGFja2luZyBjb250ZXh0cyBhbmNlc3RvcnMgdG8gYmUgcHJvcGVybHkKKyAg
ICAgICAgLy8gQXMgd2UgYmVjYW1lIHZpc2libGUsIHdlIG5lZWQgdG8gZGlydHkgb3VyIHN0YWNr
aW5nIGNvbnRhaW5lcnMgYW5jZXN0b3JzIHRvIGJlIHByb3Blcmx5CiAgICAgICAgIC8vIGNvbGxl
Y3RlZC4gRklYTUU6IFdoZW4gY29tcG9zaXRpbmcsIHdlIGNvdWxkIHNraXAgdGhpcyBkaXJ0eWlu
ZyBwaGFzZS4KLSAgICAgICAgZm9yIChSZW5kZXJMYXllciogc2MgPSBzdGFja2luZ0NvbnRleHQo
KTsgc2M7IHNjID0gc2MtPnN0YWNraW5nQ29udGV4dCgpKSB7CisgICAgICAgIGZvciAoUmVuZGVy
TGF5ZXIqIHNjID0gc3RhY2tpbmdDb250YWluZXIoKTsgc2M7IHNjID0gc2MtPnN0YWNraW5nQ29u
dGFpbmVyKCkpIHsKICAgICAgICAgICAgIHNjLT5kaXJ0eVpPcmRlckxpc3RzKCk7CiAgICAgICAg
ICAgICBpZiAoc2MtPmhhc1Zpc2libGVDb250ZW50KCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7
CkBAIC0xMDY4LDE1ICsxMDcyLDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRh
bnREZXBlbmRlbnRGbGFncyhIYXNoU2V0PGNvbnN0IFJlbmRlck9iamVjdCo+KiBvCiAKIHZvaWQg
UmVuZGVyTGF5ZXI6OmRpcnR5M0RUcmFuc2Zvcm1lZERlc2NlbmRhbnRTdGF0dXMoKQogewotICAg
IFJlbmRlckxheWVyKiBjdXJyID0gc3RhY2tpbmdDb250ZXh0KCk7CisgICAgUmVuZGVyTGF5ZXIq
IGN1cnIgPSBzdGFja2luZ0NvbnRhaW5lcigpOwogICAgIGlmIChjdXJyKQogICAgICAgICBjdXJy
LT5tXzNEVHJhbnNmb3JtZWREZXNjZW5kYW50U3RhdHVzRGlydHkgPSB0cnVlOwogICAgICAgICAK
ICAgICAvLyBUaGlzIHByb3BhZ2F0ZXMgdXAgdGhyb3VnaCBwcmVzZXJ2ZS0zZCBoaWVyYXJjaGll
cyB0byB0aGUgZW5jbG9zaW5nIGZsYXR0ZW5pbmcgbGF5ZXIuCi0gICAgLy8gTm90ZSB0aGF0IHBy
ZXNlcnZlczNEKCkgY3JlYXRlcyBzdGFja2luZyBjb250ZXh0LCBzbyB3ZSBjYW4ganVzdCBydW4g
dXAgdGhlIHN0YWNraW5nIGNvbnRleHRzLgorICAgIC8vIE5vdGUgdGhhdCBwcmVzZXJ2ZXMzRCgp
IGNyZWF0ZXMgc3RhY2tpbmcgY29udGV4dCwgc28gd2UgY2FuIGp1c3QgcnVuIHVwIHRoZSBzdGFj
a2luZyBjb250YWluZXJzLgogICAgIHdoaWxlIChjdXJyICYmIGN1cnItPnByZXNlcnZlczNEKCkp
IHsKICAgICAgICAgY3Vyci0+bV8zRFRyYW5zZm9ybWVkRGVzY2VuZGFudFN0YXR1c0RpcnR5ID0g
dHJ1ZTsKLSAgICAgICAgY3VyciA9IGN1cnItPnN0YWNraW5nQ29udGV4dCgpOworICAgICAgICBj
dXJyID0gY3Vyci0+c3RhY2tpbmdDb250YWluZXIoKTsKICAgICB9CiB9CiAKQEAgLTEyMzksMTMg
KzEyNDMsMTMgQEAgRmxvYXRQb2ludCBSZW5kZXJMYXllcjo6cGVyc3BlY3RpdmVPcmlnaW4oKSBj
b25zdAogICAgICAgICAgICAgICAgICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgoc3R5bGUtPnBl
cnNwZWN0aXZlT3JpZ2luWSgpLCBib3JkZXJCb3guaGVpZ2h0KCkpKTsKIH0KIAotUmVuZGVyTGF5
ZXIqIFJlbmRlckxheWVyOjpzdGFja2luZ0NvbnRleHQoKSBjb25zdAorUmVuZGVyTGF5ZXIqIFJl
bmRlckxheWVyOjpzdGFja2luZ0NvbnRhaW5lcigpIGNvbnN0CiB7CiAgICAgUmVuZGVyTGF5ZXIq
IGxheWVyID0gcGFyZW50KCk7Ci0gICAgd2hpbGUgKGxheWVyICYmICFsYXllci0+aXNTdGFja2lu
Z0NvbnRleHQoKSkKKyAgICB3aGlsZSAobGF5ZXIgJiYgIWxheWVyLT5pc1N0YWNraW5nQ29udGFp
bmVyKCkpCiAgICAgICAgIGxheWVyID0gbGF5ZXItPnBhcmVudCgpOwogCi0gICAgQVNTRVJUKCFs
YXllciB8fCBsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSk7CisgICAgQVNTRVJUKCFsYXllciB8
fCBsYXllci0+aXNTdGFja2luZ0NvbnRhaW5lcigpKTsKICAgICByZXR1cm4gbGF5ZXI7CiB9CiAK
QEAgLTEyOTUsNyArMTI5OSw3IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5n
VHJhbnNmb3JtZWRBbmNlc3RvcigpIGNvbnN0CiAKIHN0YXRpYyBpbmxpbmUgY29uc3QgUmVuZGVy
TGF5ZXIqIGNvbXBvc2l0aW5nQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikKIHsK
LSAgICByZXR1cm4gbGF5ZXItPmlzTm9ybWFsRmxvd09ubHkoKSA/IGxheWVyLT5wYXJlbnQoKSA6
IGxheWVyLT5zdGFja2luZ0NvbnRleHQoKTsKKyAgICByZXR1cm4gbGF5ZXItPmlzTm9ybWFsRmxv
d09ubHkoKSA/IGxheWVyLT5wYXJlbnQoKSA6IGxheWVyLT5zdGFja2luZ0NvbnRhaW5lcigpOwog
fQogCiBpbmxpbmUgYm9vbCBSZW5kZXJMYXllcjo6c2hvdWxkUmVwYWludEFmdGVyTGF5b3V0KCkg
Y29uc3QKQEAgLTE1MDksNyArMTUxMyw3IEBAIHN0YXRpYyB2b2lkIGV4cGFuZENsaXBSZWN0Rm9y
RGVzY2VuZGFudHNBbmRSZWZsZWN0aW9uKExheW91dFJlY3QmIGNsaXBSZWN0LCBjb25zCiAgICAg
Ly8gbm8gbmVlZCB0byBleGFtaW5lIGNoaWxkIGxheWVycykuCiAgICAgaWYgKCFsYXllci0+cmVu
ZGVyZXIoKS0+aGFzTWFzaygpKSB7CiAgICAgICAgIC8vIE5vdGU6IHdlIGRvbid0IGhhdmUgdG8g
d2FsayB6LW9yZGVyIGxpc3RzIHNpbmNlIHRyYW5zcGFyZW50IGVsZW1lbnRzIGFsd2F5cyBlc3Rh
Ymxpc2gKLSAgICAgICAgLy8gYSBzdGFja2luZyBjb250ZXh0LiAgVGhpcyBtZWFucyB3ZSBjYW4g
anVzdCB3YWxrIHRoZSBsYXllciB0cmVlIGRpcmVjdGx5LgorICAgICAgICAvLyBhIHN0YWNraW5n
IGNvbnRhaW5lci4gVGhpcyBtZWFucyB3ZSBjYW4ganVzdCB3YWxrIHRoZSBsYXllciB0cmVlIGRp
cmVjdGx5LgogICAgICAgICBmb3IgKFJlbmRlckxheWVyKiBjdXJyID0gbGF5ZXItPmZpcnN0Q2hp
bGQoKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgICAgIGlm
ICghbGF5ZXItPnJlZmxlY3Rpb24oKSB8fCBsYXllci0+cmVmbGVjdGlvbkxheWVyKCkgIT0gY3Vy
cikKICAgICAgICAgICAgICAgICBjbGlwUmVjdC51bml0ZSh0cmFuc3BhcmVuY3lDbGlwQm94KGN1
cnIsIHJvb3RMYXllciwgcGFpbnRCZWhhdmlvcikpOwpAQCAtMTYyNCwxMCArMTYyOCwxMCBAQCB2
b2lkIFJlbmRlckxheWVyOjphZGRDaGlsZChSZW5kZXJMYXllciogY2hpbGQsIFJlbmRlckxheWVy
KiBiZWZvcmVDaGlsZCkKICAgICAgICAgZGlydHlOb3JtYWxGbG93TGlzdCgpOwogCiAgICAgaWYg
KCFjaGlsZC0+aXNOb3JtYWxGbG93T25seSgpIHx8IGNoaWxkLT5maXJzdENoaWxkKCkpIHsKLSAg
ICAgICAgLy8gRGlydHkgdGhlIHotb3JkZXIgbGlzdCBpbiB3aGljaCB3ZSBhcmUgY29udGFpbmVk
LiAgVGhlIHN0YWNraW5nQ29udGV4dCgpIGNhbiBiZSBudWxsIGluIHRoZQotICAgICAgICAvLyBj
YXNlIHdoZXJlIHdlJ3JlIGJ1aWxkaW5nIHVwIGdlbmVyYXRlZCBjb250ZW50IGxheWVycy4gIFRo
aXMgaXMgb2ssIHNpbmNlIHRoZSBsaXN0cyB3aWxsIHN0YXJ0CisgICAgICAgIC8vIERpcnR5IHRo
ZSB6LW9yZGVyIGxpc3QgaW4gd2hpY2ggd2UgYXJlIGNvbnRhaW5lZC4gVGhlIHN0YWNraW5nQ29u
dGFpbmVyKCkgY2FuIGJlIG51bGwgaW4gdGhlCisgICAgICAgIC8vIGNhc2Ugd2hlcmUgd2UncmUg
YnVpbGRpbmcgdXAgZ2VuZXJhdGVkIGNvbnRlbnQgbGF5ZXJzLiBUaGlzIGlzIG9rLCBzaW5jZSB0
aGUgbGlzdHMgd2lsbCBzdGFydAogICAgICAgICAvLyBvZmYgZGlydHkgaW4gdGhhdCBjYXNlIGFu
eXdheS4KLSAgICAgICAgY2hpbGQtPmRpcnR5U3RhY2tpbmdDb250ZXh0Wk9yZGVyTGlzdHMoKTsK
KyAgICAgICAgY2hpbGQtPmRpcnR5U3RhY2tpbmdDb250YWluZXJaT3JkZXJMaXN0cygpOwogICAg
IH0KIAogICAgIGNoaWxkLT51cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKTsKQEAgLTE2
NjgsOCArMTY3Miw4IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6cmVtb3ZlQ2hpbGQoUmVu
ZGVyTGF5ZXIqIG9sZENoaWxkKQogICAgIGlmICghb2xkQ2hpbGQtPmlzTm9ybWFsRmxvd09ubHko
KSB8fCBvbGRDaGlsZC0+Zmlyc3RDaGlsZCgpKSB7IAogICAgICAgICAvLyBEaXJ0eSB0aGUgei1v
cmRlciBsaXN0IGluIHdoaWNoIHdlIGFyZSBjb250YWluZWQuICBXaGVuIGNhbGxlZCB2aWEgdGhl
CiAgICAgICAgIC8vIHJlYXR0YWNobWVudCBwcm9jZXNzIGluIHJlbW92ZU9ubHlUaGlzTGF5ZXIs
IHRoZSBsYXllciBtYXkgYWxyZWFkeSBiZSBkaXNjb25uZWN0ZWQKLSAgICAgICAgLy8gZnJvbSB0
aGUgbWFpbiBsYXllciB0cmVlLCBzbyB3ZSBuZWVkIHRvIG51bGwtY2hlY2sgdGhlIHxzdGFja2lu
Z0NvbnRleHR8IHZhbHVlLgotICAgICAgICBvbGRDaGlsZC0+ZGlydHlTdGFja2luZ0NvbnRleHRa
T3JkZXJMaXN0cygpOworICAgICAgICAvLyBmcm9tIHRoZSBtYWluIGxheWVyIHRyZWUsIHNvIHdl
IG5lZWQgdG8gbnVsbC1jaGVjayB0aGUgfHN0YWNraW5nQ29udGFpbmVyfCB2YWx1ZS4KKyAgICAg
ICAgb2xkQ2hpbGQtPmRpcnR5U3RhY2tpbmdDb250YWluZXJaT3JkZXJMaXN0cygpOwogICAgIH0K
IAogICAgIGlmICgob2xkQ2hpbGQtPnJlbmRlcmVyKCkgJiYgb2xkQ2hpbGQtPnJlbmRlcmVyKCkt
PmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB8fCBvbGRDaGlsZC0+aGFzT3V0T2ZGbG93UG9zaXRp
b25lZERlc2NlbmRhbnQoKSkKQEAgLTE5MDQsNyArMTkwOCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6
OnVwZGF0ZU5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpCiAgICAgICAgIG1fbmVlZHNDb21wb3Np
dGVkU2Nyb2xsaW5nID0gZmFsc2U7CiAgICAgZWxzZSB7CiAgICAgICAgIGJvb2wgZm9yY2VVc2VD
b21wb3NpdGVkU2Nyb2xsaW5nID0gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Ny
b2xsRW5hYmxlZCgpCi0gICAgICAgICAgICAmJiBjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdD
b250ZXh0KCkKKyAgICAgICAgICAgICYmIGNhbkJlU3RhY2tpbmdDb250YWluZXIoKQogICAgICAg
ICAgICAgJiYgIWhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KCk7CiAKICNpZiBFTkFC
TEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQpAQCAtMTkxMiwxMCArMTkxNiwyNSBA
QCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVOZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKQogI2Vs
c2UKICAgICAgICAgbV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcgPSBmb3JjZVVzZUNvbXBvc2l0
ZWRTY3JvbGxpbmc7CiAjZW5kaWYKKyAgICAgICAgbV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcg
PSB0cnVlOwogICAgIH0KIAotICAgIGlmIChvbGROZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcgIT0g
bV9uZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcpCisgICAgaWYgKG9sZE5lZWRzQ29tcG9zaXRlZFNj
cm9sbGluZyAhPSBtX25lZWRzQ29tcG9zaXRlZFNjcm9sbGluZykgewogICAgICAgICB1cGRhdGVT
ZWxmUGFpbnRpbmdMYXllcigpOworICAgICAgICBpZiAoaXNTdGFja2luZ0NvbnRhaW5lcigpKQor
ICAgICAgICAgICAgZGlydHlaT3JkZXJMaXN0cygpOworCisgICAgICAgIFJlbmRlckxheWVyKiBz
YyA9IHBhcmVudCgpOworICAgICAgICB3aGlsZSAoc2MgJiYgIXNjLT5pc1N0YWNraW5nQ29udGV4
dCgpKQorICAgICAgICAgICAgc2MgPSBzYy0+cGFyZW50KCk7CisgICAgICAgIAorICAgICAgICBp
ZiAoc2MpIHsKKyAgICAgICAgICAgIHNjLT5kaXJ0eVpPcmRlckxpc3RzKCk7CisgICAgICAgICAg
ICBzYy0+ZGlydHlOb3JtYWxGbG93TGlzdCgpOworICAgICAgICB9CisgICAgICAgIGNvbXBvc2l0
b3IoKS0+c2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOworICAgICAgICBjb21wb3Np
dG9yKCktPnNldFNob3VsZFJlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0KCk7CisgICAg
fQogfQogI2VuZGlmCiAKQEAgLTIyMTcsMTIgKzIyMzYsMTUgQEAgdm9pZCBSZW5kZXJMYXllcjo6
dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbCgpCiB7CiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChjb21wb3NpdG9yKCktPmluQ29tcG9zaXRpbmdNb2Rl
KCkpIHsKLSAgICAgICAgLy8gT3VyIHN0YWNraW5nIGNvbnRleHQgaXMgZ3VhcmFudGVlZCB0byBj
b250YWluIGFsbCBvZiBvdXIgZGVzY2VuZGFudHMgdGhhdCBtYXkgbmVlZAorICAgICAgICAvLyBP
dXIgc3RhY2tpbmcgY29udGFpbmVyIGlzIGd1YXJhbnRlZWQgdG8gY29udGFpbiBhbGwgb2Ygb3Vy
IGRlc2NlbmRhbnRzIHRoYXQgbWF5IG5lZWQKICAgICAgICAgLy8gcmVwb3NpdGlvbmluZywgc28g
dXBkYXRlIGNvbXBvc2l0aW5nIGxheWVycyBmcm9tIHRoZXJlLgotICAgICAgICBpZiAoUmVuZGVy
TGF5ZXIqIGNvbXBvc2l0aW5nQW5jZXN0b3IgPSBzdGFja2luZ0NvbnRleHQoKS0+ZW5jbG9zaW5n
Q29tcG9zaXRpbmdMYXllcigpKSB7Ci0gICAgICAgICAgICBpZiAoY29tcG9zaXRvcigpLT5jb21w
b3NpdGluZ0NvbnN1bHRzT3ZlcmxhcCgpKQotICAgICAgICAgICAgICAgIGNvbXBvc2l0b3IoKS0+
dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVPblNjcm9sbCwgY29tcG9z
aXRpbmdBbmNlc3Rvcik7Ci0gICAgICAgICAgICBlbHNlCisgICAgICAgIGlmIChSZW5kZXJMYXll
ciogY29tcG9zaXRpbmdBbmNlc3RvciA9IHN0YWNraW5nQ29udGFpbmVyKCktPmVuY2xvc2luZ0Nv
bXBvc2l0aW5nTGF5ZXIoKSkgeworICAgICAgICAgICAgaWYgKGNvbXBvc2l0b3IoKS0+Y29tcG9z
aXRpbmdDb25zdWx0c092ZXJsYXAoKSkgeworICAgICAgICAgICAgICAgIGlmICh1c2VzQ29tcG9z
aXRlZFNjcm9sbGluZygpICYmICFoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCgpKQor
ICAgICAgICAgICAgICAgICAgICBjb21wb3NpdG9yKCktPnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJz
KENvbXBvc2l0aW5nVXBkYXRlT25Db21wb3NpdGVkU2Nyb2xsLCBjb21wb3NpdGluZ0FuY2VzdG9y
KTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGNvbXBvc2l0b3Io
KS0+dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVPblNjcm9sbCwgY29t
cG9zaXRpbmdBbmNlc3Rvcik7CisgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBj
b21wb3NpdGluZ0FuY2VzdG9yLT5iYWNraW5nKCktPnVwZGF0ZUFmdGVyTGF5b3V0KFJlbmRlckxh
eWVyQmFja2luZzo6SXNVcGRhdGVSb290KTsKICAgICAgICAgfQogICAgIH0KQEAgLTM4NDIsNyAr
Mzg2NCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50UGFnaW5hdGVkQ2hpbGRMYXllcihSZW5k
ZXJMYXllciogY2hpbGRMYXllciwgR3JhcGhpY3NDb250CiB7CiAgICAgLy8gV2UgbmVlZCB0byBk
byBtdWx0aXBsZSBwYXNzZXMsIGJyZWFraW5nIHVwIG91ciBjaGlsZCBsYXllciBpbnRvIHN0cmlw
cy4KICAgICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiBjb2x1bW5MYXllcnM7Ci0gICAgUmVuZGVyTGF5
ZXIqIGFuY2VzdG9yTGF5ZXIgPSBpc05vcm1hbEZsb3dPbmx5KCkgPyBwYXJlbnQoKSA6IHN0YWNr
aW5nQ29udGV4dCgpOworICAgIFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyID0gaXNOb3JtYWxG
bG93T25seSgpID8gcGFyZW50KCkgOiBzdGFja2luZ0NvbnRhaW5lcigpOwogICAgIGZvciAoUmVu
ZGVyTGF5ZXIqIGN1cnIgPSBjaGlsZExheWVyLT5wYXJlbnQoKTsgY3VycjsgY3VyciA9IGN1cnIt
PnBhcmVudCgpKSB7CiAgICAgICAgIGlmIChjdXJyLT5yZW5kZXJlcigpLT5oYXNDb2x1bW5zKCkg
JiYgY2hlY2tDb250YWluaW5nQmxvY2tDaGFpbkZvclBhZ2luYXRpb24oY2hpbGRMYXllci0+cmVu
ZGVyZXIoKSwgY3Vyci0+cmVuZGVyQm94KCkpKQogICAgICAgICAgICAgY29sdW1uTGF5ZXJzLmFw
cGVuZChjdXJyKTsKQEAgLTQzNTYsNyArNDM3OCw3IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXll
cjo6aGl0VGVzdFBhZ2luYXRlZENoaWxkTGF5ZXIoUmVuZGVyTGF5ZXIqIGNoaWxkTGF5ZXIsIFJl
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IExheW91dFJlY3QmIGhpdFRlc3RSZWN0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGhpdFRl
c3RMb2NhdGlvbiwgY29uc3QgSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlKiB0cmFuc2Zvcm1TdGF0
ZSwgZG91YmxlKiB6T2Zmc2V0KQogewogICAgIFZlY3RvcjxSZW5kZXJMYXllcio+IGNvbHVtbkxh
eWVyczsKLSAgICBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciA9IGlzTm9ybWFsRmxvd09ubHko
KSA/IHBhcmVudCgpIDogc3RhY2tpbmdDb250ZXh0KCk7CisgICAgUmVuZGVyTGF5ZXIqIGFuY2Vz
dG9yTGF5ZXIgPSBpc05vcm1hbEZsb3dPbmx5KCkgPyBwYXJlbnQoKSA6IHN0YWNraW5nQ29udGFp
bmVyKCk7CiAgICAgZm9yIChSZW5kZXJMYXllciogY3VyciA9IGNoaWxkTGF5ZXItPnBhcmVudCgp
OyBjdXJyOyBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsKICAgICAgICAgaWYgKGN1cnItPnJlbmRl
cmVyKCktPmhhc0NvbHVtbnMoKSAmJiBjaGVja0NvbnRhaW5pbmdCbG9ja0NoYWluRm9yUGFnaW5h
dGlvbihjaGlsZExheWVyLT5yZW5kZXJlcigpLCBjdXJyLT5yZW5kZXJCb3goKSkpCiAgICAgICAg
ICAgICBjb2x1bW5MYXllcnMuYXBwZW5kKGN1cnIpOwpAQCAtNDkxOCw3ICs0OTQwLDcgQEAgSW50
UmVjdCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlTGF5ZXJCb3VuZHMoY29uc3QgUmVuZGVyTGF5ZXIq
IGFuY2VzdG9yTGF5ZXIsIGNvbnMKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICBBU1NFUlQo
aXNTdGFja2luZ0NvbnRleHQoKSB8fCAoIXBvc1pPcmRlckxpc3QoKSB8fCAhcG9zWk9yZGVyTGlz
dCgpLT5zaXplKCkpKTsKKyAgICBBU1NFUlQoaXNTdGFja2luZ0NvbnRhaW5lcigpIHx8ICghcG9z
Wk9yZGVyTGlzdCgpIHx8ICFwb3NaT3JkZXJMaXN0KCktPnNpemUoKSkpOwogCiAjaWYgIUFTU0VS
VF9ESVNBQkxFRAogICAgIExheWVyTGlzdE11dGF0aW9uRGV0ZWN0b3IgbXV0YXRpb25DaGVja2Vy
KGNvbnN0X2Nhc3Q8UmVuZGVyTGF5ZXIqPih0aGlzKSk7CkBAIC01MDk5LDcgKzUxMjEsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgY29tcGFyZVpJbmRleChSZW5kZXJMYXllciogZmlyc3QsIFJlbmRl
ckxheWVyKiBzZWNvbmQpCiB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxpc3RzKCkKIHsK
ICAgICBBU1NFUlQobV9sYXllckxpc3RNdXRhdGlvbkFsbG93ZWQpOwotICAgIEFTU0VSVChpc1N0
YWNraW5nQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoaXNTdGFja2luZ0NvbnRhaW5lcigpKTsKIAog
ICAgIGlmIChtX3Bvc1pPcmRlckxpc3QpCiAgICAgICAgIG1fcG9zWk9yZGVyTGlzdC0+Y2xlYXIo
KTsKQEAgLTUxMTYsOSArNTEzOCw5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlz
dHMoKQogI2VuZGlmCiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5U3RhY2tpbmdDb250ZXh0
Wk9yZGVyTGlzdHMoKQordm9pZCBSZW5kZXJMYXllcjo6ZGlydHlTdGFja2luZ0NvbnRhaW5lclpP
cmRlckxpc3RzKCkKIHsKLSAgICBSZW5kZXJMYXllciogc2MgPSBzdGFja2luZ0NvbnRleHQoKTsK
KyAgICBSZW5kZXJMYXllciogc2MgPSBzdGFja2luZ0NvbnRhaW5lcigpOwogICAgIGlmIChzYykK
ICAgICAgICAgc2MtPmRpcnR5Wk9yZGVyTGlzdHMoKTsKIH0KQEAgLTUxNDMsOCArNTE2NSwxMyBA
QCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KCkKIHZvaWQgUmVuZGVyTGF5
ZXI6OnJlYnVpbGRaT3JkZXJMaXN0cygpCiB7CiAgICAgQVNTRVJUKG1fbGF5ZXJMaXN0TXV0YXRp
b25BbGxvd2VkKTsKLSAgICBBU1NFUlQoaXNEaXJ0eVN0YWNraW5nQ29udGV4dCgpKTsKKyAgICBB
U1NFUlQoaXNEaXJ0eVN0YWNraW5nQ29udGFpbmVyKCkpOworICAgIHJlYnVpbGRaT3JkZXJMaXN0
cyhTdG9wQXRTdGFja2luZ0NvbnRhaW5lcnMsIG1fcG9zWk9yZGVyTGlzdCwgbV9uZWdaT3JkZXJM
aXN0KTsKKyAgICBtX3pPcmRlckxpc3RzRGlydHkgPSBmYWxzZTsKK30KIAordm9pZCBSZW5kZXJM
YXllcjo6cmVidWlsZFpPcmRlckxpc3RzKENvbGxlY3RMYXllcnNCZWhhdmlvciBiZWhhdmlvciwg
T3duUHRyPFZlY3RvcjxSZW5kZXJMYXllcio+ID4mIHBvc1pPcmRlckxpc3QsIE93blB0cjxWZWN0
b3I8UmVuZGVyTGF5ZXIqPiA+JiBuZWdaT3JkZXJMaXN0KQorewogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBib29sIGluY2x1ZGVIaWRkZW5MYXllcnMgPSBjb21wb3NpdG9y
KCktPmluQ29tcG9zaXRpbmdNb2RlKCk7CiAjZWxzZQpAQCAtNTE1MiwxNCArNTE3OSwxNCBAQCB2
b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxkWk9yZGVyTGlzdHMoKQogI2VuZGlmCiAgICAgZm9yIChS
ZW5kZXJMYXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpKQogICAgICAgICBpZiAoIW1fcmVmbGVjdGlvbiB8fCByZWZsZWN0aW9uTGF5
ZXIoKSAhPSBjaGlsZCkKLSAgICAgICAgICAgIGNoaWxkLT5jb2xsZWN0TGF5ZXJzKGluY2x1ZGVI
aWRkZW5MYXllcnMsIG1fcG9zWk9yZGVyTGlzdCwgbV9uZWdaT3JkZXJMaXN0KTsKKyAgICAgICAg
ICAgIGNoaWxkLT5jb2xsZWN0TGF5ZXJzKGluY2x1ZGVIaWRkZW5MYXllcnMsIGJlaGF2aW9yLCBw
b3NaT3JkZXJMaXN0LCBuZWdaT3JkZXJMaXN0KTsKIAogICAgIC8vIFNvcnQgdGhlIHR3byBsaXN0
cy4KLSAgICBpZiAobV9wb3NaT3JkZXJMaXN0KQotICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KG1f
cG9zWk9yZGVyTGlzdC0+YmVnaW4oKSwgbV9wb3NaT3JkZXJMaXN0LT5lbmQoKSwgY29tcGFyZVpJ
bmRleCk7CisgICAgaWYgKHBvc1pPcmRlckxpc3QpCisgICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQo
cG9zWk9yZGVyTGlzdC0+YmVnaW4oKSwgcG9zWk9yZGVyTGlzdC0+ZW5kKCksIGNvbXBhcmVaSW5k
ZXgpOwogCi0gICAgaWYgKG1fbmVnWk9yZGVyTGlzdCkKLSAgICAgICAgc3RkOjpzdGFibGVfc29y
dChtX25lZ1pPcmRlckxpc3QtPmJlZ2luKCksIG1fbmVnWk9yZGVyTGlzdC0+ZW5kKCksIGNvbXBh
cmVaSW5kZXgpOworICAgIGlmIChuZWdaT3JkZXJMaXN0KQorICAgICAgICBzdGQ6OnN0YWJsZV9z
b3J0KG5lZ1pPcmRlckxpc3QtPmJlZ2luKCksIG5lZ1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJl
WkluZGV4KTsKIAogI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkKICAgICAvLyBBcHBlbmQgbGF5
ZXJzIGZvciB0b3AgbGF5ZXIgZWxlbWVudHMgYWZ0ZXIgbm9ybWFsIGxheWVyIGNvbGxlY3Rpb24s
IHRvIGVuc3VyZSB0aGV5IGFyZSBvbiB0b3AgcmVnYXJkbGVzcyBvZiB6LWluZGV4ZXMuCkBAIC01
MTk4LDcgKzUyMjUsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVOb3JtYWxGbG93TGlzdCgp
CiAgICAgbV9ub3JtYWxGbG93TGlzdERpcnR5ID0gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyTGF5
ZXI6OmNvbGxlY3RMYXllcnMoYm9vbCBpbmNsdWRlSGlkZGVuTGF5ZXJzLCBPd25QdHI8VmVjdG9y
PFJlbmRlckxheWVyKj4gPiYgcG9zQnVmZmVyLCBPd25QdHI8VmVjdG9yPFJlbmRlckxheWVyKj4g
PiYgbmVnQnVmZmVyKQordm9pZCBSZW5kZXJMYXllcjo6Y29sbGVjdExheWVycyhib29sIGluY2x1
ZGVIaWRkZW5MYXllcnMsIENvbGxlY3RMYXllcnNCZWhhdmlvciBiZWhhdmlvciwgT3duUHRyPFZl
Y3RvcjxSZW5kZXJMYXllcio+ID4mIHBvc0J1ZmZlciwgT3duUHRyPFZlY3RvcjxSZW5kZXJMYXll
cio+ID4mIG5lZ0J1ZmZlcikKIHsKICNpZiBFTkFCTEUoRElBTE9HX0VMRU1FTlQpCiAgICAgaWYg
KGlzSW5Ub3BMYXllcigpKQpAQCAtNTIwNyw4ICs1MjM0LDkgQEAgdm9pZCBSZW5kZXJMYXllcjo6
Y29sbGVjdExheWVycyhib29sIGluY2x1ZGVIaWRkZW5MYXllcnMsIE93blB0cjxWZWN0b3I8UmVu
ZGVyTGEKIAogICAgIHVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncygpOwogCisgICAgYm9v
bCBpc1N0YWNraW5nID0gYmVoYXZpb3IgPT0gU3RvcEF0U3RhY2tpbmdDb250ZXh0cyA/IGlzU3Rh
Y2tpbmdDb250ZXh0KCkgOiBpc1N0YWNraW5nQ29udGFpbmVyKCk7CiAgICAgLy8gT3ZlcmZsb3cg
bGF5ZXJzIGFyZSBqdXN0IHBhaW50ZWQgYnkgdGhlaXIgZW5jbG9zaW5nIGxheWVycywgc28gdGhl
eSBkb24ndCBnZXQgcHV0IGluIHpvcmRlciBsaXN0cy4KLSAgICBib29sIGluY2x1ZGVIaWRkZW5M
YXllciA9IGluY2x1ZGVIaWRkZW5MYXllcnMgfHwgKG1faGFzVmlzaWJsZUNvbnRlbnQgfHwgKG1f
aGFzVmlzaWJsZURlc2NlbmRhbnQgJiYgaXNTdGFja2luZ0NvbnRleHQoKSkpOworICAgIGJvb2wg
aW5jbHVkZUhpZGRlbkxheWVyID0gaW5jbHVkZUhpZGRlbkxheWVycyB8fCAobV9oYXNWaXNpYmxl
Q29udGVudCB8fCAobV9oYXNWaXNpYmxlRGVzY2VuZGFudCAmJiBpc1N0YWNraW5nKSk7CiAgICAg
aWYgKGluY2x1ZGVIaWRkZW5MYXllciAmJiAhaXNOb3JtYWxGbG93T25seSgpICYmICFyZW5kZXJl
cigpLT5pc1JlbmRlckZsb3dUaHJlYWQoKSkgewogICAgICAgICAvLyBEZXRlcm1pbmUgd2hpY2gg
YnVmZmVyIHRoZSBjaGlsZCBzaG91bGQgYmUgaW4uCiAgICAgICAgIE93blB0cjxWZWN0b3I8UmVu
ZGVyTGF5ZXIqPiA+JiBidWZmZXIgPSAoekluZGV4KCkgPj0gMCkgPyBwb3NCdWZmZXIgOiBuZWdC
dWZmZXI7CkBAIC01MjIyLDEyICs1MjUwLDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNvbGxlY3RM
YXllcnMoYm9vbCBpbmNsdWRlSGlkZGVuTGF5ZXJzLCBPd25QdHI8VmVjdG9yPFJlbmRlckxhCiAg
ICAgfQogCiAgICAgLy8gUmVjdXIgaW50byBvdXIgY2hpbGRyZW4gdG8gY29sbGVjdCBtb3JlIGxh
eWVycywgYnV0IG9ubHkgaWYgd2UgZG9uJ3QgZXN0YWJsaXNoCi0gICAgLy8gYSBzdGFja2luZyBj
b250ZXh0LgotICAgIGlmICgoaW5jbHVkZUhpZGRlbkxheWVycyB8fCBtX2hhc1Zpc2libGVEZXNj
ZW5kYW50KSAmJiAhaXNTdGFja2luZ0NvbnRleHQoKSkgeworICAgIC8vIGEgc3RhY2tpbmcgY29u
dGV4dC9jb250YWluZXIuCisgICAgaWYgKChpbmNsdWRlSGlkZGVuTGF5ZXJzIHx8IG1faGFzVmlz
aWJsZURlc2NlbmRhbnQpICYmICFpc1N0YWNraW5nKSB7CiAgICAgICAgIGZvciAoUmVuZGVyTGF5
ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxp
bmcoKSkgewogICAgICAgICAgICAgLy8gSWdub3JlIHJlZmxlY3Rpb25zLgogICAgICAgICAgICAg
aWYgKCFtX3JlZmxlY3Rpb24gfHwgcmVmbGVjdGlvbkxheWVyKCkgIT0gY2hpbGQpCi0gICAgICAg
ICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMoaW5jbHVkZUhpZGRlbkxheWVycywgcG9zQnVm
ZmVyLCBuZWdCdWZmZXIpOworICAgICAgICAgICAgICAgIGNoaWxkLT5jb2xsZWN0TGF5ZXJzKGlu
Y2x1ZGVIaWRkZW5MYXllcnMsIGJlaGF2aW9yLCBwb3NCdWZmZXIsIG5lZ0J1ZmZlcik7CiAgICAg
ICAgIH0KICAgICB9CiB9CkBAIC01MjM1LDcgKzUyNjMsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpj
b2xsZWN0TGF5ZXJzKGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycywgT3duUHRyPFZlY3RvcjxSZW5k
ZXJMYQogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKCkKIHsKICAg
ICBib29sIHNob3VsZFVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRl
ciA9IGlzU3RhY2tpbmdDb250ZXh0KCkgJiYgKG1fek9yZGVyTGlzdHNEaXJ0eSB8fCBtX25vcm1h
bEZsb3dMaXN0RGlydHkpOwotCiAgICAgdXBkYXRlWk9yZGVyTGlzdHMoKTsKICAgICB1cGRhdGVO
b3JtYWxGbG93TGlzdCgpOwogCkBAIC01MjQ0LDE1ICs1MjcxLDIwIEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OnVwZGF0ZUxheWVyTGlzdHNJZk5lZWRlZCgpCiAgICAgICAgIHJlZmxlY3Rpb25MYXllci0+
dXBkYXRlTm9ybWFsRmxvd0xpc3QoKTsKICAgICB9CiAKLSAgICBpZiAoc2hvdWxkVXBkYXRlRGVz
Y2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyKQorICAgIGlmIChzaG91bGRVcGRh
dGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIpIHsKICAgICAgICAgdXBk
YXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyKCk7CisgICAgICAgIC8v
IFRoZSBhYm92ZSBmdW5jdGlvbiBjYW4gY2F1c2UgdXMgdG8gdXBkYXRlIG1fbmVlZHNDb21wb3Np
dGVkU2Nyb2xsaW5nCisgICAgICAgIC8vIGFuZCBkaXJ0eSBvdXIgbGF5ZXIgbGlzdHMuIFJlZnJl
c2ggdGhlbSBpZiBuZWNlc3NhcnkuCisgICAgICAgIHVwZGF0ZVpPcmRlckxpc3RzKCk7CisgICAg
ICAgIHVwZGF0ZU5vcm1hbEZsb3dMaXN0KCk7CisgICAgfQogfQogCiB2b2lkIFJlbmRlckxheWVy
Ojp1cGRhdGVDb21wb3NpdGluZ0FuZExheWVyTGlzdHNJZk5lZWRlZCgpCiB7CiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChjb21wb3NpdG9yKCktPmluQ29tcG9zaXRp
bmdNb2RlKCkpIHsKLSAgICAgICAgaWYgKGlzRGlydHlTdGFja2luZ0NvbnRleHQoKSB8fCBtX25v
cm1hbEZsb3dMaXN0RGlydHkpCisgICAgICAgIGlmIChpc0RpcnR5U3RhY2tpbmdDb250YWluZXIo
KSB8fCBtX25vcm1hbEZsb3dMaXN0RGlydHkpCiAgICAgICAgICAgICBjb21wb3NpdG9yKCktPnVw
ZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlT25IaXRUZXN0LCB0aGlzKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTUzNzMsNyArNTQwNSw3IEBAIHZvaWQgUmVuZGVy
TGF5ZXI6OnVwZGF0ZVN0YWNraW5nQ29udGV4dHNBZnRlclN0eWxlQ2hhbmdlKGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTCiAgICAgYm9vbCB3YXNTdGFja2luZ0NvbnRleHQgPSBpc1N0YWNraW5nQ29u
dGV4dChvbGRTdHlsZSk7CiAgICAgYm9vbCBpc1N0YWNraW5nQ29udGV4dCA9IHRoaXMtPmlzU3Rh
Y2tpbmdDb250ZXh0KCk7CiAgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0ICE9IHdhc1N0YWNraW5n
Q29udGV4dCkgewotICAgICAgICBkaXJ0eVN0YWNraW5nQ29udGV4dFpPcmRlckxpc3RzKCk7Cisg
ICAgICAgIGRpcnR5U3RhY2tpbmdDb250YWluZXJaT3JkZXJMaXN0cygpOwogICAgICAgICBpZiAo
aXNTdGFja2luZ0NvbnRleHQpCiAgICAgICAgICAgICBkaXJ0eVpPcmRlckxpc3RzKCk7CiAgICAg
ICAgIGVsc2UKQEAgLTUzODQsNyArNTQxNiw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVN0
YWNraW5nQ29udGV4dHNBZnRlclN0eWxlQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTCiAg
ICAgLy8gRklYTUU6IFJlbmRlckxheWVyIGFscmVhZHkgaGFuZGxlcyB2aXNpYmlsaXR5IGNoYW5n
ZXMgdGhyb3VnaCBvdXIgdmlzaWJsaXR5IGRpcnR5IGJpdHMuIFRoaXMgbG9naWMgY291bGQKICAg
ICAvLyBsaWtlbHkgYmUgZm9sZGVkIGFsb25nIHdpdGggdGhlIHJlc3QuCiAgICAgaWYgKG9sZFN0
eWxlLT56SW5kZXgoKSAhPSByZW5kZXJlcigpLT5zdHlsZSgpLT56SW5kZXgoKSB8fCBvbGRTdHls
ZS0+dmlzaWJpbGl0eSgpICE9IHJlbmRlcmVyKCktPnN0eWxlKCktPnZpc2liaWxpdHkoKSkgewot
ICAgICAgICBkaXJ0eVN0YWNraW5nQ29udGV4dFpPcmRlckxpc3RzKCk7CisgICAgICAgIGRpcnR5
U3RhY2tpbmdDb250YWluZXJaT3JkZXJMaXN0cygpOwogICAgICAgICBpZiAoaXNTdGFja2luZ0Nv
bnRleHQpCiAgICAgICAgICAgICBkaXJ0eVpPcmRlckxpc3RzKCk7CiAgICAgfQpAQCAtNTQ4MCw3
ICs1NTEyLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2VkKFN0eWxlRGlmZmVyZW5j
ZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQogICAgICAgICBSZW5kZXJMYXllciogcCA9
IHBhcmVudCgpOwogICAgICAgICBpZiAocCkKICAgICAgICAgICAgIHAtPmRpcnR5Tm9ybWFsRmxv
d0xpc3QoKTsKLSAgICAgICAgZGlydHlTdGFja2luZ0NvbnRleHRaT3JkZXJMaXN0cygpOworICAg
ICAgICBkaXJ0eVN0YWNraW5nQ29udGFpbmVyWk9yZGVyTGlzdHMoKTsKICAgICB9CiAKICAgICBp
ZiAocmVuZGVyZXIoKS0+c3R5bGUoKS0+b3ZlcmZsb3dYKCkgPT0gT01BUlFVRUUgJiYgcmVuZGVy
ZXIoKS0+c3R5bGUoKS0+bWFycXVlZUJlaGF2aW9yKCkgIT0gTU5PTkUgJiYgcmVuZGVyZXIoKS0+
aXNCb3goKSkgewpAQCAtNTUzNCw3ICs1NTY2LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c3R5bGVD
aGFuZ2VkKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQogICAg
IGVsc2UgaWYgKG1fYmFja2luZykKICAgICAgICAgbV9iYWNraW5nLT51cGRhdGVHcmFwaGljc0xh
eWVyR2VvbWV0cnkoKTsKICAgICBlbHNlIGlmIChvbGRTdHlsZSAmJiBvbGRTdHlsZS0+b3ZlcmZs
b3dYKCkgIT0gcmVuZGVyZXIoKS0+c3R5bGUoKS0+b3ZlcmZsb3dYKCkpIHsKLSAgICAgICAgaWYg
KHN0YWNraW5nQ29udGV4dCgpLT5oYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoKSkKKyAgICAgICAg
aWYgKHN0YWNraW5nQ29udGFpbmVyKCktPmhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudCgpKQogICAg
ICAgICAgICAgY29tcG9zaXRvcigpLT5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7
CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4
IDg2ZTc0MjFmMmVmZGZmOGU3NTc2YmMzZGU5MjRlMTk5MTUyZmE3ZjUuLjIzZTg2YTgwOTljMGQy
YjlmZTBmMWExN2ViMDM5MGEwZGY0MGU1NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCkBAIC00MjcsMTggKzQyNywyMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckJs
b2NrU2VsZWN0aW9uR2Fwc0JvdW5kcygpOwogICAgIHZvaWQgcmVwYWludEJsb2NrU2VsZWN0aW9u
R2FwcygpOwogCi0gICAgLy8gR2V0IHRoZSBlbmNsb3Npbmcgc3RhY2tpbmcgY29udGV4dCBmb3Ig
dGhpcyBsYXllci4gIEEgc3RhY2tpbmcgY29udGV4dCBpcyBhIGxheWVyCi0gICAgLy8gdGhhdCBo
YXMgYSBub24tYXV0byB6LWluZGV4LgotICAgIFJlbmRlckxheWVyKiBzdGFja2luZ0NvbnRleHQo
KSBjb25zdDsKKyAgICAvLyBBIHN0YWNraW5nIGNvbnRleHQgaXMgYSBsYXllciB0aGF0IGhhcyBh
IG5vbi1hdXRvIHotaW5kZXguCiAgICAgYm9vbCBpc1N0YWNraW5nQ29udGV4dCgpIGNvbnN0IHsg
cmV0dXJuIGlzU3RhY2tpbmdDb250ZXh0KHJlbmRlcmVyKCktPnN0eWxlKCkpOyB9CiAKKyAgICAv
LyBBIHN0YWNraW5nIGNvbnRhaW5lciBjYW4gaGF2ZSB6LW9yZGVyIGxpc3RzLiBBbGwgc3RhY2tp
bmcgY29udGV4dHMgYXJlCisgICAgLy8gc3RhY2tpbmcgY29udGFpbmVycywgYnV0IHRoZSBjb252
ZXJzZSBpcyBub3QgdHJ1ZS4KKyAgICBib29sIGlzU3RhY2tpbmdDb250YWluZXIoKSBjb25zdCB7
IHJldHVybiBpc1N0YWNraW5nQ29udGV4dCgpIHx8IG5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygp
OyB9CisKKyAgICAvLyBHZXRzIHRoZSBlbmNsb3Npbmcgc3RhY2tpbmcgY29udGFpbmVyIGZvciB0
aGlzIGxheWVyLgorICAgIFJlbmRlckxheWVyKiBzdGFja2luZ0NvbnRhaW5lcigpIGNvbnN0Owor
CiAgICAgdm9pZCBkaXJ0eVpPcmRlckxpc3RzKCk7Ci0gICAgdm9pZCBkaXJ0eVN0YWNraW5nQ29u
dGV4dFpPcmRlckxpc3RzKCk7CisgICAgdm9pZCBkaXJ0eVN0YWNraW5nQ29udGFpbmVyWk9yZGVy
TGlzdHMoKTsKIAogICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBwb3NaT3JkZXJMaXN0KCkgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV96T3JkZXJMaXN0c0RpcnR5KTsKLSAgICAgICAg
QVNTRVJUKGlzU3RhY2tpbmdDb250ZXh0KCkgfHwgIW1fcG9zWk9yZGVyTGlzdCk7CisgICAgICAg
IEFTU0VSVChpc1N0YWNraW5nQ29udGFpbmVyKCkgfHwgIW1fcG9zWk9yZGVyTGlzdCk7CiAgICAg
ICAgIHJldHVybiBtX3Bvc1pPcmRlckxpc3QuZ2V0KCk7CiAgICAgfQogCkBAIC00NDcsNyArNDUy
LDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0KCkg
Y29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV96T3JkZXJMaXN0c0RpcnR5KTsKLSAgICAg
ICAgQVNTRVJUKGlzU3RhY2tpbmdDb250ZXh0KCkgfHwgIW1fbmVnWk9yZGVyTGlzdCk7CisgICAg
ICAgIEFTU0VSVChpc1N0YWNraW5nQ29udGFpbmVyKCkgfHwgIW1fbmVnWk9yZGVyTGlzdCk7CiAg
ICAgICAgIHJldHVybiBtX25lZ1pPcmRlckxpc3QuZ2V0KCk7CiAgICAgfQogCkBAIC03NTMsMTQg
Kzc1OCwxOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKKyAgICBlbnVtIENvbGxlY3RM
YXllcnNCZWhhdmlvciB7IFN0b3BBdFN0YWNraW5nQ29udGV4dHMsIFN0b3BBdFN0YWNraW5nQ29u
dGFpbmVycyB9OworCiAgICAgdm9pZCB1cGRhdGVaT3JkZXJMaXN0cygpOwogICAgIHZvaWQgcmVi
dWlsZFpPcmRlckxpc3RzKCk7CisgICAgdm9pZCByZWJ1aWxkWk9yZGVyTGlzdHMoQ29sbGVjdExh
eWVyc0JlaGF2aW9yLCBPd25QdHI8VmVjdG9yPFJlbmRlckxheWVyKj4gPiYsIE93blB0cjxWZWN0
b3I8UmVuZGVyTGF5ZXIqPiA+Jik7CiAgICAgdm9pZCBjbGVhclpPcmRlckxpc3RzKCk7CiAKICAg
ICB2b2lkIHVwZGF0ZU5vcm1hbEZsb3dMaXN0KCk7CiAKICAgICBib29sIGlzU3RhY2tpbmdDb250
ZXh0KGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QgeyByZXR1cm4gIXN0eWxlLT5oYXNB
dXRvWkluZGV4KCkgfHwgaXNSb290TGF5ZXIoKTsgfQotICAgIGJvb2wgaXNEaXJ0eVN0YWNraW5n
Q29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fek9yZGVyTGlzdHNEaXJ0eSAmJiBpc1N0YWNraW5n
Q29udGV4dCgpOyB9CisKKyAgICBib29sIGlzRGlydHlTdGFja2luZ0NvbnRhaW5lcigpIGNvbnN0
IHsgcmV0dXJuIG1fek9yZGVyTGlzdHNEaXJ0eSAmJiBpc1N0YWNraW5nQ29udGFpbmVyKCk7IH0K
IAogICAgIHZvaWQgc2V0QW5jZXN0b3JDaGFpbkhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFu
dCgpOwogICAgIHZvaWQgZGlydHlBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNj
ZW5kYW50U3RhdHVzKCk7CkBAIC04MjQsNyArODMzLDcgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRV
bml0IHJlbmRlckJveFgoKSBjb25zdCB7IHJldHVybiByZW5kZXJCb3hMb2NhdGlvbigpLngoKTsg
fQogICAgIExheW91dFVuaXQgcmVuZGVyQm94WSgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlckJveExv
Y2F0aW9uKCkueSgpOyB9CiAKLSAgICB2b2lkIGNvbGxlY3RMYXllcnMoYm9vbCBpbmNsdWRlSGlk
ZGVuTGF5ZXJzLCBPd25QdHI8VmVjdG9yPFJlbmRlckxheWVyKj4gPiYsIE93blB0cjxWZWN0b3I8
UmVuZGVyTGF5ZXIqPiA+Jik7CisgICAgdm9pZCBjb2xsZWN0TGF5ZXJzKGJvb2wgaW5jbHVkZUhp
ZGRlbkxheWVycywgQ29sbGVjdExheWVyc0JlaGF2aW9yLCBPd25QdHI8VmVjdG9yPFJlbmRlckxh
eWVyKj4gPiYsIE93blB0cjxWZWN0b3I8UmVuZGVyTGF5ZXIqPiA+Jik7CiAKICAgICB2b2lkIHVw
ZGF0ZUNvbXBvc2l0aW5nQW5kTGF5ZXJMaXN0c0lmTmVlZGVkKCk7CiAKQEAgLTk4NSw4ICs5OTQs
OCBAQCBwcml2YXRlOgogICAgIGJvb2wgbXVzdENvbXBvc2l0ZUZvckluZGlyZWN0UmVhc29ucygp
IGNvbnN0IHsgcmV0dXJuIG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjsgfQogI2VuZGlmCiAK
LSAgICAvLyBSZXR1cm5zIHRydWUgaWYgeiBvcmRlcmluZyB3b3VsZCBub3QgY2hhbmdlIGlmIHRo
aXMgbGF5ZXIgd2VyZSB0byBlc3RhYmxpc2ggYSBzdGFja2luZyBjb250ZXh0LgotICAgIGJvb2wg
Y2FuU2FmZWx5RXN0YWJsaXNoQVN0YWNraW5nQ29udGV4dCgpIGNvbnN0OworICAgIC8vIFJldHVy
bnMgdHJ1ZSBpZiB6IG9yZGVyaW5nIHdvdWxkIG5vdCBjaGFuZ2UgaWYgdGhpcyBsYXllciB3ZXJl
IGEgc3RhY2tpbmcgY29udGFpbmVyLgorICAgIGJvb2wgY2FuQmVTdGFja2luZ0NvbnRhaW5lcigp
IGNvbnN0OwogCiAgICAgZnJpZW5kIGNsYXNzIFJlbmRlckxheWVyQmFja2luZzsKICAgICBmcmll
bmQgY2xhc3MgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOwpAQCAtMTE1Myw3ICsxMTYyLDcgQEAgcHJp
dmF0ZToKIAogaW5saW5lIHZvaWQgUmVuZGVyTGF5ZXI6OmNsZWFyWk9yZGVyTGlzdHMoKQogewot
ICAgIEFTU0VSVCghaXNTdGFja2luZ0NvbnRleHQoKSk7CisgICAgQVNTRVJUKCFpc1N0YWNraW5n
Q29udGFpbmVyKCkpOwogCiAgICAgbV9wb3NaT3JkZXJMaXN0LmNsZWFyKCk7CiAgICAgbV9uZWda
T3JkZXJMaXN0LmNsZWFyKCk7CkBAIC0xMTY0LDcgKzExNzMsNyBAQCBpbmxpbmUgdm9pZCBSZW5k
ZXJMYXllcjo6dXBkYXRlWk9yZGVyTGlzdHMoKQogICAgIGlmICghbV96T3JkZXJMaXN0c0RpcnR5
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWlzU3RhY2tpbmdDb250ZXh0KCkpIHsKKyAg
ICBpZiAoIWlzU3RhY2tpbmdDb250YWluZXIoKSkgewogICAgICAgICBjbGVhclpPcmRlckxpc3Rz
KCk7CiAgICAgICAgIG1fek9yZGVyTGlzdHNEaXJ0eSA9IGZhbHNlOwogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmlu
ZGV4IDZlNWRlNDIxMjdmYzI0OWQ4ODk2Y2U5ZTczODFjM2Q5YjAxMDY5YmIuLjU3NmY4NDNmZTc0
OTFhOTYyNDY3Y2UxNGFmZmExMjkyYWMyNzIxNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC01NjUsNyArNTY1LDcgQEAgc3RhdGlj
IEludFJlY3QgY2xpcEJveChSZW5kZXJCb3gqIHJlbmRlcmVyKQogdm9pZCBSZW5kZXJMYXllckJh
Y2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSgpCiB7CiAgICAgLy8gSWYgd2UgaGF2
ZW4ndCBidWlsdCB6LW9yZGVyIGxpc3RzIHlldCwgd2FpdCB1bnRpbCBsYXRlci4KLSAgICBpZiAo
bV9vd25pbmdMYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSAmJiBtX293bmluZ0xheWVyLT5tX3pP
cmRlckxpc3RzRGlydHkpCisgICAgaWYgKG1fb3duaW5nTGF5ZXItPmlzU3RhY2tpbmdDb250YWlu
ZXIoKSAmJiBtX293bmluZ0xheWVyLT5tX3pPcmRlckxpc3RzRGlydHkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIC8vIFNldCB0cmFuc2Zvcm0gcHJvcGVydHksIGlmIGl0IGlzIG5vdCBhbmltYXRp
bmcuIFdlIGhhdmUgdG8gZG8gdGhpcyBoZXJlIGJlY2F1c2UgdGhlIHRyYW5zZm9ybQpAQCAtMTI2
NSw3ICsxMjY1LDcgQEAgZmxvYXQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjb21wb3NpdGluZ09wYWNp
dHkoZmxvYXQgcmVuZGVyZXJPcGFjaXR5KSBjb25zdAogICAgIGZvciAoUmVuZGVyTGF5ZXIqIGN1
cnIgPSBtX293bmluZ0xheWVyLT5wYXJlbnQoKTsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudCgp
KSB7CiAgICAgICAgIC8vIFdlIG9ubHkgY2FyZSBhYm91dCBwYXJlbnRzIHRoYXQgYXJlIHN0YWNr
aW5nIGNvbnRleHRzLgogICAgICAgICAvLyBSZWNhbGwgdGhhdCBvcGFjaXR5IGNyZWF0ZXMgc3Rh
Y2tpbmcgY29udGV4dC4KLSAgICAgICAgaWYgKCFjdXJyLT5pc1N0YWNraW5nQ29udGV4dCgpKQor
ICAgICAgICBpZiAoIWN1cnItPmlzU3RhY2tpbmdDb250YWluZXIoKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAKICAgICAgICAgLy8gSWYgd2UgZm91bmQgYSBjb21wb3NpdGluZyBs
YXllciwgd2Ugd2FudCB0byBjb21wdXRlIG9wYWNpdHkKQEAgLTE0NzUsNyArMTQ3NSw3IEBAIGJv
b2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpoYXNWaXNpYmxlTm9uQ29tcG9zaXRpbmdEZXNjZW5kYW50
TGF5ZXJzKCkgY29uc3QKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChtX293bmluZ0xheWVy
LT5pc1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAgaWYgKG1fb3duaW5nTGF5ZXItPmlzU3RhY2tp
bmdDb250YWluZXIoKSkgewogICAgICAgICBpZiAoIW1fb3duaW5nTGF5ZXItPmhhc1Zpc2libGVE
ZXNjZW5kYW50KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMzA5YzIx
MjNiNDQ2ZTQwOTg3M2JkZDVmOGU2MTVjYzFjYTgzYzExOS4uMmZiY2VlNjdjMjEzOTkyMTY1NjFi
Nzg2NTU5MzhiM2UzY2ViZDhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTQzMyw2ICs0MzMsOSBAQCB2b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRh
dGVUeXBlIHVwZGF0ZQogCiAgICAgICAgIG5lZWRHZW9tZXRyeVVwZGF0ZSA9IHRydWU7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9zaXRpbmdVcGRhdGVPbkNvbXBvc2l0ZWRTY3JvbGw6
CisgICAgICAgIG5lZWRHZW9tZXRyeVVwZGF0ZSA9IHRydWU7CisgICAgICAgIGJyZWFrOwogICAg
IH0KIAogICAgIGlmICghY2hlY2tGb3JIaWVyYXJjaHlVcGRhdGUgJiYgIW5lZWRHZW9tZXRyeVVw
ZGF0ZSkKQEAgLTczMyw3ICs3MzYsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5
ZXJXaWxsQmVSZW1vdmVkKFJlbmRlckxheWVyKiBwYXJlbnQsIFJlbmRlckxheWVyKgogUmVuZGVy
TGF5ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZW5jbG9zaW5nTm9uU3RhY2tpbmdDbGlwcGlu
Z0xheWVyKGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikgY29uc3QKIHsKICAgICBmb3IgKFJlbmRl
ckxheWVyKiBjdXJyID0gbGF5ZXItPnBhcmVudCgpOyBjdXJyICE9IDA7IGN1cnIgPSBjdXJyLT5w
YXJlbnQoKSkgewotICAgICAgICBpZiAoY3Vyci0+aXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICAg
ICAgaWYgKGN1cnItPmlzU3RhY2tpbmdDb250YWluZXIoKSkKICAgICAgICAgICAgIHJldHVybiAw
OwogCiAgICAgICAgIGlmIChjdXJyLT5yZW5kZXJlcigpLT5oYXNDbGlwT3JPdmVyZmxvd0NsaXAo
KSkKQEAgLTc4MCw3ICs3ODMsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6YWRkVG9P
dmVybGFwTWFwUmVjdXJzaXZlKE92ZXJsYXBNYXAmIG92ZXJsYXBNYXAsIFJlbgogICAgIExheWVy
TGlzdE11dGF0aW9uRGV0ZWN0b3IgbXV0YXRpb25DaGVja2VyKGxheWVyKTsKICNlbmRpZgogCi0g
ICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAgaWYgKGxheWVyLT5pc1N0
YWNraW5nQ29udGFpbmVyKCkpIHsKICAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBu
ZWdaT3JkZXJMaXN0ID0gbGF5ZXItPm5lZ1pPcmRlckxpc3QoKSkgewogICAgICAgICAgICAgc2l6
ZV90IGxpc3RTaXplID0gbmVnWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CkBAIC03OTgsNyArODAxLDcgQEAgdm9p
ZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFkZFRvT3ZlcmxhcE1hcFJlY3Vyc2l2ZShPdmVybGFw
TWFwJiBvdmVybGFwTWFwLCBSZW4KICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChsYXllci0+
aXNTdGFja2luZ0NvbnRleHQoKSkgeworICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRhaW5l
cigpKSB7CiAgICAgICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlzdCA9
IGxheWVyLT5wb3NaT3JkZXJMaXN0KCkpIHsKICAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9
IHBvc1pPcmRlckxpc3QtPnNpemUoKTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbGlzdFNpemU7ICsraSkgewpAQCAtODgzLDcgKzg4Niw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFu
Y2VzdG9yCiAKICAgICBib29sIGFueURlc2NlbmRhbnRIYXMzRFRyYW5zZm9ybSA9IGZhbHNlOwog
Ci0gICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAgaWYgKGxheWVyLT5p
c1N0YWNraW5nQ29udGFpbmVyKCkpIHsKICAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+
KiBuZWdaT3JkZXJMaXN0ID0gbGF5ZXItPm5lZ1pPcmRlckxpc3QoKSkgewogICAgICAgICAgICAg
c2l6ZV90IGxpc3RTaXplID0gbmVnWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CkBAIC05MTUsNyArOTE4LDcgQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50
cyhSZW5kZXJMYXllciogYW5jZXN0b3IKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChsYXll
ci0+aXNTdGFja2luZ0NvbnRleHQoKSkgeworICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRh
aW5lcigpKSB7CiAgICAgICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlz
dCA9IGxheWVyLT5wb3NaT3JkZXJMaXN0KCkpIHsKICAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6
ZSA9IHBvc1pPcmRlckxpc3QtPnNpemUoKTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGlzdFNpemU7ICsraSkgewpAQCAtMTA5Niw3ICsxMDk5LDcgQEAgdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJlZShSZW5kZXJMYXllciog
bGF5ZXIsIFZlY3QKICAgICBMYXllckxpc3RNdXRhdGlvbkRldGVjdG9yIG11dGF0aW9uQ2hlY2tl
cihsYXllcik7CiAjZW5kaWYKIAotICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkg
eworICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRhaW5lcigpKSB7CiAgICAgICAgIGlmIChW
ZWN0b3I8UmVuZGVyTGF5ZXIqPiogbmVnWk9yZGVyTGlzdCA9IGxheWVyLT5uZWdaT3JkZXJMaXN0
KCkpIHsKICAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5lZ1pPcmRlckxpc3QtPnNpemUo
KTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgewpA
QCAtMTExOCw3ICsxMTIxLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYnVpbGRD
b21wb3NpdGluZ0xheWVyVHJlZShSZW5kZXJMYXllciogbGF5ZXIsIFZlY3QKICAgICAgICAgfQog
ICAgIH0KICAgICAKLSAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpIHsKKyAgICBp
ZiAobGF5ZXItPmlzU3RhY2tpbmdDb250YWluZXIoKSkgewogICAgICAgICBpZiAoVmVjdG9yPFJl
bmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSBsYXllci0+cG9zWk9yZGVyTGlzdCgpKSB7CiAg
ICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0LT5zaXplKCk7CiAgICAg
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKQEAgLTEzMzQs
NyArMTMzNyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllclRyZWVH
ZW9tZXRyeShSZW5kZXJMYXllciogbGF5ZXIsIGludCBkZXB0CiAgICAgTGF5ZXJMaXN0TXV0YXRp
b25EZXRlY3RvciBtdXRhdGlvbkNoZWNrZXIobGF5ZXIpOwogI2VuZGlmCiAKLSAgICBpZiAobGF5
ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpIHsKKyAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250
YWluZXIoKSkgewogICAgICAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIG5lZ1pPcmRlckxp
c3QgPSBsYXllci0+bmVnWk9yZGVyTGlzdCgpKSB7CiAgICAgICAgICAgICBzaXplX3QgbGlzdFNp
emUgPSBuZWdaT3JkZXJMaXN0LT5zaXplKCk7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGxpc3RTaXplOyArK2kpCkBAIC0xMzQ4LDcgKzEzNTEsNyBAQCB2b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJUcmVlR2VvbWV0cnkoUmVuZGVyTGF5ZXIqIGxheWVy
LCBpbnQgZGVwdAogICAgICAgICAgICAgdXBkYXRlTGF5ZXJUcmVlR2VvbWV0cnkobm9ybWFsRmxv
d0xpc3QtPmF0KGkpLCBkZXB0aCArIDEpOwogICAgIH0KICAgICAKLSAgICBpZiAobGF5ZXItPmlz
U3RhY2tpbmdDb250ZXh0KCkpIHsKKyAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250YWluZXIo
KSkgewogICAgICAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSBs
YXllci0+cG9zWk9yZGVyTGlzdCgpKSB7CiAgICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBw
b3NaT3JkZXJMaXN0LT5zaXplKCk7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGxpc3RTaXplOyArK2kpCkBAIC0xMzg1LDcgKzEzODgsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdEZXNjZW5kYW50R2VvbWV0cnkoUmVuZGVyTGF5ZXIq
IGNvbQogICAgIExheWVyTGlzdE11dGF0aW9uRGV0ZWN0b3IgbXV0YXRpb25DaGVja2VyKGxheWVy
KTsKICNlbmRpZgogICAgIAotICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkgewor
ICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRhaW5lcigpKSB7CiAgICAgICAgIGlmIChWZWN0
b3I8UmVuZGVyTGF5ZXIqPiogbmVnWk9yZGVyTGlzdCA9IGxheWVyLT5uZWdaT3JkZXJMaXN0KCkp
IHsKICAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5lZ1pPcmRlckxpc3QtPnNpemUoKTsK
ICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkKQEAgLTEz
OTksNyArMTQwMiw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3Np
dGluZ0Rlc2NlbmRhbnRHZW9tZXRyeShSZW5kZXJMYXllciogY29tCiAgICAgICAgICAgICB1cGRh
dGVDb21wb3NpdGluZ0Rlc2NlbmRhbnRHZW9tZXRyeShjb21wb3NpdGluZ0FuY2VzdG9yLCBub3Jt
YWxGbG93TGlzdC0+YXQoaSksIGNvbXBvc2l0ZWRDaGlsZHJlbk9ubHkpOwogICAgIH0KICAgICAK
LSAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpIHsKKyAgICBpZiAobGF5ZXItPmlz
U3RhY2tpbmdDb250YWluZXIoKSkgewogICAgICAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4q
IHBvc1pPcmRlckxpc3QgPSBsYXllci0+cG9zWk9yZGVyTGlzdCgpKSB7CiAgICAgICAgICAgICBz
aXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0LT5zaXplKCk7CiAgICAgICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpCkBAIC0yMDMzLDcgKzIwMzYsNyBAQCBi
b29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9u
KFJlbmRlck9iamVjdCogcmVuZGVyZQogICAgIAogICAgIEVQb3NpdGlvbiBwb3NpdGlvbiA9IHJl
bmRlcmVyLT5zdHlsZSgpLT5wb3NpdGlvbigpOwogICAgIGJvb2wgaXNGaXhlZCA9IHJlbmRlcmVy
LT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBwb3NpdGlvbiA9PSBGaXhlZFBvc2l0aW9uOwot
ICAgIGlmIChpc0ZpeGVkICYmICFsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICBpZiAo
aXNGaXhlZCAmJiAhbGF5ZXItPmlzU3RhY2tpbmdDb250YWluZXIoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIAogICAgIGJvb2wgaXNTdGlja3kgPSByZW5kZXJlci0+aXNJbkZsb3dQb3Np
dGlvbmVkKCkgJiYgcG9zaXRpb24gPT0gU3RpY2t5UG9zaXRpb247CkBAIC0yNjQyLDcgKzI2NDUs
NyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJIYXMzRENvbnRlbnQoY29uc3Qg
UmVuZGVyTGF5ZXIqIGxheWVyKSBjb25zdAogICAgIExheWVyTGlzdE11dGF0aW9uRGV0ZWN0b3Ig
bXV0YXRpb25DaGVja2VyKGNvbnN0X2Nhc3Q8UmVuZGVyTGF5ZXIqPihsYXllcikpOwogI2VuZGlm
CiAKLSAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpIHsKKyAgICBpZiAobGF5ZXIt
PmlzU3RhY2tpbmdDb250YWluZXIoKSkgewogICAgICAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVy
Kj4qIG5lZ1pPcmRlckxpc3QgPSBsYXllci0+bmVnWk9yZGVyTGlzdCgpKSB7CiAgICAgICAgICAg
ICBzaXplX3QgbGlzdFNpemUgPSBuZWdaT3JkZXJMaXN0LT5zaXplKCk7CiAgICAgICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKQEAgLTI2OTIsOCArMjY5NSw4
IEBAIHN0YXRpYyBib29sIGlzUm9vdG1vc3RGaXhlZE9yU3RpY2t5TGF5ZXIoUmVuZGVyTGF5ZXIq
IGxheWVyKQogICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+cG9zaXRpb24oKSAh
PSBGaXhlZFBvc2l0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBmb3IgKFJlbmRl
ckxheWVyKiBzdGFja2luZ0NvbnRleHQgPSBsYXllci0+c3RhY2tpbmdDb250ZXh0KCk7IHN0YWNr
aW5nQ29udGV4dDsgc3RhY2tpbmdDb250ZXh0ID0gc3RhY2tpbmdDb250ZXh0LT5zdGFja2luZ0Nv
bnRleHQoKSkgewotICAgICAgICBpZiAoc3RhY2tpbmdDb250ZXh0LT5pc0NvbXBvc2l0ZWQoKSAm
JiBzdGFja2luZ0NvbnRleHQtPnJlbmRlcmVyKCktPnN0eWxlKCktPnBvc2l0aW9uKCkgPT0gRml4
ZWRQb3NpdGlvbikKKyAgICBmb3IgKFJlbmRlckxheWVyKiBzdGFja2luZ0NvbnRhaW5lciA9IGxh
eWVyLT5zdGFja2luZ0NvbnRhaW5lcigpOyBzdGFja2luZ0NvbnRhaW5lcjsgc3RhY2tpbmdDb250
YWluZXIgPSBzdGFja2luZ0NvbnRhaW5lci0+c3RhY2tpbmdDb250YWluZXIoKSkgeworICAgICAg
ICBpZiAoc3RhY2tpbmdDb250YWluZXItPmlzQ29tcG9zaXRlZCgpICYmIHN0YWNraW5nQ29udGFp
bmVyLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24pCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggZTliYjAxYTQ5MjkyZGM2NzEx
NjY4NWRjODVhOTJmOTFmNzI4ZGJmOS4uNjdkNTUzMTA0M2VhNzc2N2UwNWI3MzdkNDE2OTFkMjhk
MzMxNTEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuaApAQCAtNTEsNyArNTEsOCBAQCBlbnVtIENvbXBvc2l0aW5nVXBkYXRlVHlwZSB7
CiAgICAgQ29tcG9zaXRpbmdVcGRhdGVBZnRlclN0eWxlQ2hhbmdlLAogICAgIENvbXBvc2l0aW5n
VXBkYXRlQWZ0ZXJMYXlvdXQsCiAgICAgQ29tcG9zaXRpbmdVcGRhdGVPbkhpdFRlc3QsCi0gICAg
Q29tcG9zaXRpbmdVcGRhdGVPblNjcm9sbAorICAgIENvbXBvc2l0aW5nVXBkYXRlT25TY3JvbGws
CisgICAgQ29tcG9zaXRpbmdVcGRhdGVPbkNvbXBvc2l0ZWRTY3JvbGwKIH07CiAKIC8vIFJlbmRl
ckxheWVyQ29tcG9zaXRvciBtYW5hZ2VzIHRoZSBoaWVyYXJjaHkgb2YKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCmluZGV4
IDc5N2FlZTM1MmIwZWIwODMyNGY1OGNhOWIzZmQyMmZiZjVjYWY5NmEuLjE3NjU0NDJmODdhOGMz
NGVhYjFkZjFmOGQ3MjdmYWE3NTJiZTA0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcApAQCAtNDgwLDcgKzQ4MCw3
IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZU9mZnNldEZyb21WaWV3cG9ydEZvclNlbGYoUmVuZGVyTGF5
ZXIqIHJlbmRlckxheWVyKQogICAgIGlmICghcmVuZGVyTGF5ZXItPnJlbmRlcmVyKCktPmNvbnRh
aW5lcigpLT5pc1JlbmRlclZpZXcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFyZW5k
ZXJMYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICBpZiAoIXJlbmRlckxheWVyLT5pc1N0
YWNraW5nQ29udGFpbmVyKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllciogZ3JhcGhpY3NMYXllciA9IHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGJh
Y2tpbmctPmdyYXBoaWNzTGF5ZXIoKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2ZlODQwYTkyZDQyODJjYmViMmRiNmY2
MzYzOWZlNTQ2OTVjN2Q0Ny4uYjQ0NzQ5NTNjNWM3MDcyZjU3Nzg4MzNjYmNlNTgwNWUzNjRmNGIy
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAxLTIyICBHbGVubiBIYXJ0bWFubiAgPGhh
cnRtYW5uZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3Qgb3ZlcmxhcCB0ZXN0IGZvciBj
b21wb3NpdGVkIHNjcm9sbCBESVZzIGFmdGVyIHNjcm9sbAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgZG9uJ3QgbmVlZCB0byB0ZXN0IGZvciBvdmVy
bGFwIGFmdGVyIHNjcm9sbCB3aGVuIGJvdGgKKyAgICAgICAgdXNlc0NvbXBvc2l0ZWRTY3JvbGxp
bmcgYW5kICFoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudAorICAgICAgICBiZWNhdXNl
OgorCisgICAgICAgIGEpIFNpbmNlIHdlJ3JlIHVzaW5nIGNvbXBvc2l0ZWQtc2Nyb2xsaW5nLCB0
aGUgY29tcG9zaXRlZCByZWdpb24KKyAgICAgICAgcHJlc2VudGVkIGJ5IHRoZSBjb21wb3NpdGVk
LXNjcm9sbGluZyBlbGVtZW50IHRvIG90aGVyIG5vbi1kZXNjZW5kYW50CisgICAgICAgIGxheWVy
cyBkb2Vzbid0IGNoYW5nZSBkdXJpbmcgY29tcG9zaXRlZCBzY3JvbGxpbmcgKGl0J3MgYWx3YXlz
IHRoZQorICAgICAgICBlbnRpcmUgc2Nyb2xsIGxheWVyKSwgYW5kCisKKyAgICAgICAgYikgU2lu
Y2Ugd2UgaGF2ZSBubyBvdXQgb2YgZmxvdyBwb3NpdGlvbmVkIGRlc2NlbmRhbnRzLCB0aGUgc2Ny
b2xsaW5nCisgICAgICAgIGRlc2NlbmRhbnRzIGFsbCBtb3ZlIHRvZ2V0aGVyLCBzbyB0aGVpciBv
dmVybGFwIHdpdGggcmVzcGVjdCB0byBlYWNoCisgICAgICAgIG90aGVyIGNhbm5vdCBjaGFuZ2Uu
CisKKyAgICAgICAgU28gbm8gZGVzY2VuZGFudHMgbm9yIGFueSBub24tZGVzY2VuZGFudHMgY2Fu
IGhhdmUgdGhlaXIgb3ZlcmxhcAorICAgICAgICBhZmZlY3RlZCwgc28gaXQncyBzYWZlIHRvIHNr
aXAgdGVzdGluZy4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL292ZXJmbG93L2NvbXBvc2l0ZWQt
c2Nyb2xsaW5nLWNyZWF0ZXMtYS1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29tcG9zaXRlZC1zY3JvbGxpbmctY3Jl
YXRlcy1hLXN0YWNraW5nLWNvbnRleHQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvY29tcG9z
aXRpbmcvb3ZlcmZsb3cvY29tcG9zaXRlZC1zY3JvbGxpbmctY3JlYXRlcy1hLXN0YWNraW5nLWNv
bnRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMy0wMS0yMSAgQW5kcmV5IEFkYWlraW4g
IDxhYW5kcmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb2RpZnkg
Z2VuZXJhdGVfcHJvdG9jb2xfZXh0ZXJucy5weSB0byBnZW5lcmF0ZSBKU09OIHR5cGVkZWYncyBm
b3IgQGNvbnN0cnVjdG9ycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3Zl
cmZsb3cvY29tcG9zaXRlZC1zY3JvbGxpbmctY3JlYXRlcy1hLXN0YWNraW5nLWNvbnRleHQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29tcG9zaXRlZC1z
Y3JvbGxpbmctY3JlYXRlcy1hLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU5ODM4ZTg0YjE4MGU5MTA3MGY3YzI2ZDAwNmNhNTU3ZmFiMzI1YTYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9jb21wb3NpdGVkLXNjcm9s
bGluZy1jcmVhdGVzLWEtc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
NCBAQAorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRy
ZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisg
ICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3Np
dGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIuMDApCisgICAg
ICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiA0CisgICAgICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxLjAwKQorICAg
ICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJl
biAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChi
b3VuZHMgMjAwLjAwIDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAyCisgICAgICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQor
ICAgICAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAg
ICAgICAgIChib3VuZHMgMjAwLjAwIDE1MC4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICkK
KyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3NpdGlvbiAxLjAwIDE4Ni4w
MCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAxODUuMDAgMTUuMDApCisgICAgICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVy
CisgICAgICAgICAgICAgIChwb3NpdGlvbiAxODYuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAxNS4wMCAxODUuMDApCisgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChwb3Np
dGlvbiAxODYuMDAgMTg2LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDE1LjAwIDE1LjAwKQor
ICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAg
KQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29tcG9zaXRlZC1zY3JvbGxpbmctY3JlYXRl
cy1hLXN0YWNraW5nLWNvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJm
bG93L2NvbXBvc2l0ZWQtc2Nyb2xsaW5nLWNyZWF0ZXMtYS1zdGFja2luZy1jb250ZXh0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjdmOGViOWZlY2Y1ODM2MGQwMDc5NDg3ZDQ1ZTIxYjMyMDY2ZDIzMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbXBvc2l0
ZWQtc2Nyb2xsaW5nLWNyZWF0ZXMtYS1zdGFja2luZy1jb250ZXh0Lmh0bWwKQEAgLTAsMCArMSw3
NiBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNp
dGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgor
Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1U
eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz4KKyAgPHRpdGxlPkNvbXBv
c2l0ZWQgc2Nyb2xsaW5nIGNyZWF0ZXMgYSBzdGFja2luZyBjb250ZXh0LjwvdGl0bGU+CisgIDxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmNvbnRhaW5lciB7Cisg
ICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgb3ZlcmZsb3c6
IHNjcm9sbDsKKyAgICAgIG1hcmdpbjogMjBweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgIH0KKworICAgIC5jb21wb3NpdGVkIHsKKyAgICAgIHdpZHRoOiAyMDBweDsKKyAg
ICAgIGhlaWdodDogMTUwcHg7CisgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigw
KTsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgIH0KKworICAgIC5ub3QtY29t
cG9zaXRlZCB7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDE1MHB4OworICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICB9CisKKyAgICAuaW4tZmxvdy1wb3NpdGlv
bmVkIHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOwor
ICAgIH0KKworICAgIC5maXhlZCB7CisgICAgICB6LWluZGV4OiAtMTsKKyAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIGhlaWdodDogMzAwcHg7Cisg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQodHJ1ZSk7CisKKyAgICBm
dW5jdGlvbiBkb1Rlc3QoKQorICAgIHsKKyAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwor
CisgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICB2YXIgbGF5ZXJUcmVlID0g
d2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOworICAgICAgICB2YXIg
cHJlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKTsKKyAgICAgICAgdmFyIHRl
eHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShsYXllclRyZWUgKyAnXG4nKTsKKyAgICAgICAg
cHJlLmFwcGVuZENoaWxkKHRleHQpOworICAgICAgfQorICAgIH0KKworICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CisgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+CisgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iaW4t
Zmxvdy1wb3NpdGlvbmVkIj4KKyAgICAgIDxkaXYgY2xhc3M9ImZpeGVkIj48L2Rpdj4KKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb21wb3NpdGVkIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJub3QtY29tcG9zaXRlZCI+PC9kaXY+CisgIDwvZGl2PgorICA8cHJlIGlkPSJjb25zb2xlIj48
L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDUyOGU3OTFmMjY0YTE5NzhkNzgwNDE3NTk2MzU5
NGIzZDc0OTIwZi4uZDJhYmI0YzBjNjFhYTBmZTc0YzA3MmMxNjZkMzFmMzdhNDRkOTVkYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0z
NjI3LDYgKzM2MjcsOSBAQCB3ZWJraXQub3JnL2IvOTI5NjggaHR0cC90ZXN0cy9hcHBjYWNoZS9h
Ym9ydC1jYWNoZS1vbnByb2dyZXNzLmh0bWwKICMgU2Nyb2xsaW5nIGNvbnRlbnQgZHJhd3MgYmVu
ZWF0aCBzY3JvbGxiYXJzIGluIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIG1vZGUuCiB3ZWJraXQub3Jn
L2IvMTAzMTU2IHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2NvbXBvc2l0ZWRzY3JvbGxp
bmcvc2Nyb2xsYmFycy9jdXN0b20tc2Nyb2xsYmFyLXdpdGgtaW5jb21wbGV0ZS1zdHlsZS5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKKyMgUmVxdWlyZXMgYW4gdXBkYXRlZCBiYXNlbGluZSBh
ZnRlciAxMDYxNDIuCit3ZWJraXQub3JnL2IvMTA2ODIwIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1
YWwvZ3B1L2NvbXBvc2l0ZWRzY3JvbGxpbmcvb3ZlcmZsb3cvb3ZlcmZsb3ctc2Nyb2xsLmh0bWwg
WyBGYWlsdXJlIF0KKwogIyBGYWlscyBkdWUgdG8gQnVnIDg1ODU2Lgogd2Via2l0Lm9yZy9iLzg1
ODU2IFsgV2luIE1hYyBBbmRyb2lkIF0gZmFzdC9ibG9jay9mbG9hdC8wMjguaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzg1ODU2IFsgV2luIE1hYyBBbmRyb2lkIF0gZmFz
dC9ibG9jay9mbG9hdC8wMjYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbXBvc2l0ZWQt
c2Nyb2xsaW5nLWNyZWF0ZXMtYS1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9vdmVyZmxvdy9jb21wb3NpdGVkLXNjcm9s
bGluZy1jcmVhdGVzLWEtc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTRhMmY5YjliYWQ0YjRiY2Y3YzNiNDUzZjU4ZmJiNDViOGY2MmYxNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9vdmVyZmxvdy9jb21wb3Np
dGVkLXNjcm9sbGluZy1jcmVhdGVzLWEtc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzOCBAQAorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQor
ICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2
MDAuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiAyOC4wMCAyMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMi4wMCAyMDIu
MDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAx
LjAwKQorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAgICAgICAgICAg
IChjaGlsZHJlbiAxCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgICAgIChib3VuZHMgMjAwLjAwIDMwMC4wMCkKKyAgICAgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICAgICAgIChjaGlsZHJlbiAyCisgICAgICAgICAgICAgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAgICAgKGJvdW5kcyAyMDIuMDAg
MjAyLjAwKQorICAgICAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAg
ICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDE1MC4wMCkKKyAgICAgICAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAg
ICkKKyAgKQorKQorCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184006</attachid>
            <date>2013-01-22 10:27:58 -0800</date>
            <delta_ts>2013-01-29 07:34:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107471-20130122132452.patch</filename>
            <type>text/plain</type>
            <size>53173</size>
            <attacher name="Glenn Hartmann">hartmanng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM2Y2JkMjE4ZWQ2MTM3
MTE3MTc2NGZiNWU5YjlkNmExNDRiZDAzNC4uMTkzZGU0ZGUwMjc2MjJjMTYyYTQ0YjM3OGI5N2Zi
ZjNlMDFmMjQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDEzLTAxLTIyICBHbGVu
biBIYXJ0bWFubiAgPGhhcnRtYW5uZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3Qgb3Zl
cmxhcCB0ZXN0IGZvciBjb21wb3NpdGVkIHNjcm9sbCBESVZzIGFmdGVyIHNjcm9sbAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NDcxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgZG9uJ3QgbmVlZCB0
byB0ZXN0IGZvciBvdmVybGFwIGFmdGVyIHNjcm9sbCB3aGVuIGJvdGgKKyAgICAgICAgdXNlc0Nv
bXBvc2l0ZWRTY3JvbGxpbmcgYW5kICFoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudAor
ICAgICAgICBiZWNhdXNlOgorCisgICAgICAgIGEpIFNpbmNlIHdlJ3JlIHVzaW5nIGNvbXBvc2l0
ZWQtc2Nyb2xsaW5nLCB0aGUgY29tcG9zaXRlZCBlZ2lvbgorICAgICAgICBwcmVzZW50ZWQgYnkg
dGhlIGNvbXBvc2l0ZWQtc2Nyb2xsaW5nIGVsZW1lbnQgdG8gb3RoZXIgb24tZGVzY2VuZGFudAor
ICAgICAgICBsYXllcnMgZG9lc24ndCBjaGFuZ2UgZHVyaW5nIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
IChpdCdzIGx3YXlzIHRoZQorICAgICAgICBlbnRpcmUgc2Nyb2xsIGxheWVyKSwgYW5kCisKKyAg
ICAgICAgYikgU2luY2Ugd2UgaGF2ZSBubyBvdXQgb2YgZmxvdyBwb3NpdGlvbmVkIGRlc2NlbmRh
bnRzLCB0aGUgY3JvbGxpbmcKKyAgICAgICAgZGVzY2VuZGFudHMgYWxsIG1vdmUgdG9nZXRoZXIs
IHNvIHRoZWlyIG92ZXJsYXAgd2l0aCByZXNwZWN0IG8gZWFjaAorICAgICAgICBvdGhlciBjYW5u
b3QgY2hhbmdlLgorCisgICAgICAgIFNvIG5vIGRlc2NlbmRhbnRzIG5vciBhbnkgbm9uLWRlc2Nl
bmRhbnRzIGNhbiBoYXZlIHRoZWlyIHZlcmxhcAorICAgICAgICBhZmZlY3RlZCwgc28gaXQncyBz
YWZlIHRvIHNraXAgdGVzdGluZy4KKworICAgICAgICBUZXN0OiBjb21wb3NpdGluZy9vdmVyZmxv
dy9jb21wb3NpdGVkLXNjcm9sbGluZy1jcmVhdGVzLWEtc3RhY2tpbmctY29udGV4dC5odG1sCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTGF5ZXIp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6UmVuZGVyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5T
dGFja2luZ09yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVQYWdp
bmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYW5CZVN0YWNraW5nQ29u
dGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzZXRIYXNWaXNpYmxlQ29u
dGVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHkzRFRyYW5zZm9ybWVk
RGVzY2VuZGFudFN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c3RhY2tp
bmdDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcG9zaXRpbmdDb250YWluZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6ZXhwYW5kQ2xpcFJlY3RGb3JEZXNjZW5kYW50c0FuZFJlZmxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmFkZENoaWxkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6dXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xsKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludFBhZ2luYXRlZENoaWxkTGF5ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmhpdFRlc3RQYWdpbmF0ZWRDaGlsZExh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVMYXllckJvdW5k
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlaT3JkZXJMaXN0cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlydHlTdGFja2luZ0NvbnRhaW5lclpPcmRl
ckxpc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZWJ1aWxkWk9yZGVyTGlz
dHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNvbGxlY3RMYXllcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyTGlzdHNJZk5lZWRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdBbmRMYXllckxp
c3RzSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZVN0YWNr
aW5nQ29udGV4dHNBZnRlclN0eWxlQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpzdHlsZUNoYW5nZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgor
ICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Omlz
U3RhY2tpbmdDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBvc1pP
cmRlckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om5lZ1pPcmRlckxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmlzRGlydHlTdGFja2luZ0NvbnRhaW5l
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2xlYXJaT3JkZXJMaXN0cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlWk9yZGVyTGlzdHMpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjb21wb3NpdGluZ09wYWNpdHkpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpoYXNWaXNpYmxlTm9uQ29tcG9zaXRp
bmdEZXNjZW5kYW50TGF5ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBk
YXRlQ29tcG9zaXRpbmdMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjplbmNsb3NpbmdOb25TdGFja2luZ0NsaXBwaW5nTGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphZGRUb092ZXJsYXBNYXBSZWN1cnNpdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRp
bmdSZXF1aXJlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllclRyZWVHZW9tZXRyeSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nRGVzY2VuZGFudEdl
b21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWly
ZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6bGF5ZXJIYXMzRENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNSb290
bW9zdEZpeGVkT3JTdGlja3lMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oOgorCiAyMDEzLTAxLTE4ICBBbmRyZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vZGlmeSBnZW5lcmF0ZV9wcm90
b2NvbF9leHRlcm5zLnB5IHRvIGdlbmVyYXRlIEpTT04gdHlwZWRlZidzIGZvciBAY29uc3RydWN0
b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggYWQ0NGQ0YzBhZjVlNDhiODQxMDYzZDMxODczOGQ4MDYyZmY1NDk5
ZC4uNDgwZjVlOGUxYTk5OGY5ZjQ2NWQ5NGYxMzNiYjllMmE5MWExNTY3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI5IEBACisyMDEzLTAxLTIyICBHbGVubiBIYXJ0bWFubiAgPGhhcnRtYW5uZ0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3Qgb3ZlcmxhcCB0ZXN0IGZvciBjb21wb3NpdGVk
IHNjcm9sbCBESVZzIGFmdGVyIHNjcm9sbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2UgZG9uJ3QgbmVlZCB0byB0ZXN0IGZvciBvdmVybGFwIGFmdGVy
IHNjcm9sbCB3aGVuIGJvdGgKKyAgICAgICAgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcgYW5kICFo
YXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudAorICAgICAgICBiZWNhdXNlOgorCisgICAg
ICAgIGEpIFNpbmNlIHdlJ3JlIHVzaW5nIGNvbXBvc2l0ZWQtc2Nyb2xsaW5nLCB0aGUgY29tcG9z
aXRlZCBlZ2lvbgorICAgICAgICBwcmVzZW50ZWQgYnkgdGhlIGNvbXBvc2l0ZWQtc2Nyb2xsaW5n
IGVsZW1lbnQgdG8gb3RoZXIgb24tZGVzY2VuZGFudAorICAgICAgICBsYXllcnMgZG9lc24ndCBj
aGFuZ2UgZHVyaW5nIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIChpdCdzIGx3YXlzIHRoZQorICAgICAg
ICBlbnRpcmUgc2Nyb2xsIGxheWVyKSwgYW5kCisKKyAgICAgICAgYikgU2luY2Ugd2UgaGF2ZSBu
byBvdXQgb2YgZmxvdyBwb3NpdGlvbmVkIGRlc2NlbmRhbnRzLCB0aGUgY3JvbGxpbmcKKyAgICAg
ICAgZGVzY2VuZGFudHMgYWxsIG1vdmUgdG9nZXRoZXIsIHNvIHRoZWlyIG92ZXJsYXAgd2l0aCBy
ZXNwZWN0IG8gZWFjaAorICAgICAgICBvdGhlciBjYW5ub3QgY2hhbmdlLgorCisgICAgICAgIFNv
IG5vIGRlc2NlbmRhbnRzIG5vciBhbnkgbm9uLWRlc2NlbmRhbnRzIGNhbiBoYXZlIHRoZWlyIHZl
cmxhcAorICAgICAgICBhZmZlY3RlZCwgc28gaXQncyBzYWZlIHRvIHNraXAgdGVzdGluZy4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OnVwZGF0ZU9mZnNldEZyb21W
aWV3cG9ydEZvclNlbGYpOgorCiAyMDEzLTAxLTIxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM5
NzgxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVy
VHJlZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRy
ZWVBZ2VudC5jcHAKaW5kZXggZjU1ODNjOGEzNWFmOTA5YWY3NzQ0MTM0OGEwZjBhYzNjY2M2ZTZk
Yi4uYzc3ZDExOGRlNmUwMjhjMzZiMWM0MGVkYjhhNTgwNmQwMWVhOWJiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCkBA
IC0xNDksNyArMTQ5LDcgQEAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6TGF5ZXJUcmVlOjpMYXll
cj4gSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm8KICAgICBpZiAocmVuZGVy
TGF5ZXItPnJlZmxlY3Rpb25MYXllcigpKQogICAgICAgICBjaGlsZHJlbkFycmF5LT5hZGRJdGVt
KGJ1aWxkT2JqZWN0Rm9yTGF5ZXIocmVuZGVyTGF5ZXItPnJlZmxlY3Rpb25MYXllcigpKSk7CiAK
LSAgICBpZiAocmVuZGVyTGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpIHsKKyAgICBpZiAocmVu
ZGVyTGF5ZXItPmlzU3RhY2tpbmdDb250YWluZXIoKSkgewogICAgICAgICBpZiAoVmVjdG9yPFJl
bmRlckxheWVyKj4qIG5lZ1pPcmRlckxpc3QgPSByZW5kZXJMYXllci0+bmVnWk9yZGVyTGlzdCgp
KSB7CiAgICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBuZWdaT3JkZXJMaXN0LT5zaXplKCk7
CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpCkBAIC0x
NjMsNyArMTYzLDcgQEAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6TGF5ZXJUcmVlOjpMYXllcj4g
SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm8KICAgICAgICAgICAgIGNoaWxk
cmVuQXJyYXktPmFkZEl0ZW0oYnVpbGRPYmplY3RGb3JMYXllcihub3JtYWxGbG93TGlzdC0+YXQo
aSkpKTsKICAgICB9CiAgICAgCi0gICAgaWYgKHJlbmRlckxheWVyLT5pc1N0YWNraW5nQ29udGV4
dCgpKSB7CisgICAgaWYgKHJlbmRlckxheWVyLT5pc1N0YWNraW5nQ29udGFpbmVyKCkpIHsKICAg
ICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBwb3NaT3JkZXJMaXN0ID0gcmVuZGVyTGF5
ZXItPnBvc1pPcmRlckxpc3QoKSkgewogICAgICAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gcG9z
Wk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBs
aXN0U2l6ZTsgKytpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5k
ZXggYjg5Y2NkMzE3NDQzYTJiZTFiY2EwNTEwMmJjOWE4YjFhMzdlOGJiYS4uZGRlN2M2ZTkyZTQ0
YWQzZmNmOWQyNWVjMzUxNGZhOTE5Y2M1ZTcxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCkBAIC0xOTYsOSArMTk2LDkgQEAgUmVuZGVyTGF5ZXI6OlJlbmRlckxh
eWVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlbmRlcmVyKQogICAgIG1faXNOb3JtYWxGbG93
T25seSA9IHNob3VsZEJlTm9ybWFsRmxvd09ubHkoKTsKICAgICBtX2lzU2VsZlBhaW50aW5nTGF5
ZXIgPSBzaG91bGRCZVNlbGZQYWludGluZ0xheWVyKCk7CiAKLSAgICAvLyBOb24tc3RhY2tpbmcg
Y29udGV4dHMgc2hvdWxkIGhhdmUgZW1wdHkgei1vcmRlciBsaXN0cy4gQXMgdGhpcyBpcyBhbHJl
YWR5IHRoZSBjYXNlLAorICAgIC8vIE5vbi1zdGFja2luZyBjb250YWluZXJzIHNob3VsZCBoYXZl
IGVtcHR5IHotb3JkZXIgbGlzdHMuIEFzIHRoaXMgaXMgYWxyZWFkeSB0aGUgY2FzZSwKICAgICAv
LyB0aGVyZSBpcyBubyBuZWVkIHRvIGRpcnR5IC8gcmVjb21wdXRlIHRoZXNlIGxpc3RzLgotICAg
IG1fek9yZGVyTGlzdHNEaXJ0eSA9IGlzU3RhY2tpbmdDb250ZXh0KCk7CisgICAgbV96T3JkZXJM
aXN0c0RpcnR5ID0gaXNTdGFja2luZ0NvbnRhaW5lcigpOwogCiAgICAgU2Nyb2xsYWJsZUFyZWE6
OnNldENvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKGZhbHNlKTsKIApAQCAtNTIyLDEw
ICs1MjIsMTAgQEAgYm9vbCBSZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92
ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0CiAgICAgICAgICYmIHJlbmRlcmVyKCktPmZyYW1l
KCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93
U2Nyb2xsRW5hYmxlZCgpOwogfQogCi0vLyBJZiB3ZSBhcmUgYSBzdGFja2luZyBjb250ZXh0LCB0
aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBkZXRlcm1pbmUgaWYgb3VyCisvLyBJZiB3ZSBhcmUgYSBz
dGFja2luZyBjb250YWluZXIsIHRoZW4gdGhpcyBmdW5jdGlvbiB3aWxsIGRldGVybWluZSBpZiBv
dXIKIC8vIGRlc2NlbmRhbnRzIGZvciBhIGNvbnRpZ3VvdXMgYmxvY2sgaW4gc3RhY2tpbmcgb3Jk
ZXIuIFRoaXMgaXMgcmVxdWlyZWQgaW4KLS8vIG9yZGVyIGZvciBhbiBlbGVtZW50IHRvIGJlIHNh
ZmVseSBwcm9tb3RlZCB0byBhIHN0YWNraW5nIGNvbnRleHQuIEl0IGlzIHNhZmUKLS8vIHRvIGJl
Y29tZSBhIHN0YWNraW5nIGNvbnRleHQgaWYgdGhpcyBjaGFuZ2Ugd291bGQgbm90IGFsdGVyIHRo
ZSBzdGFja2luZworLy8gb3JkZXIgZm9yIGFuIGVsZW1lbnQgdG8gYmUgc2FmZWx5IHByb21vdGVk
IHRvIGEgc3RhY2tpbmcgY29udGFpbmVyLiBJdCBpcyBzYWZlCisvLyB0byBiZWNvbWUgYSBzdGFj
a2luZyBjb250YWluZXIgaWYgdGhpcyBjaGFuZ2Ugd291bGQgbm90IGFsdGVyIHRoZSBzdGFja2lu
ZwogLy8gb3JkZXIgb2YgbGF5ZXJzIG9uIHRoZSBwYWdlLiBUaGF0IGNhbiBvbmx5IGhhcHBlbiBp
ZiBhIG5vbi1kZXNjZW5kYW50IGFwcGVhcgogLy8gYmV0d2VlbiB1cyBhbmQgb3VyIGRlc2NlbmRh
bnRzIGluIHN0YWNraW5nIG9yZGVyLiBIZXJlJ3MgYW4gZXhhbXBsZToKIC8vCkBAIC01MzgsOCAr
NTM4LDggQEAgYm9vbCBSZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJm
bG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0CiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNQogLy8KIC8vIEkndmUgbGFiZWxlZCBvdXIgbm9ybWFsIGZsb3cgZGVzY2VuZGFudHMg
QSwgQiwgQywgYW5kIEQsIG91ciBzdGFja2luZwotLy8gY29udGV4dCBkZXNjZW5kYW50cyB3aXRo
IHRoZWlyIHogaW5kaWNlcywgYW5kIHVzIHdpdGggJ3RoaXMnICh3ZSdyZSBhCi0vLyBzdGFja2lu
ZyBjb250ZXh0IGFuZCBvdXIgekluZGV4IGRvZXNuJ3QgbWF0dGVyIGhlcmUpLiBUaGVzZSBub2Rl
cyBhcHBlYXIgaW4KKy8vIGNvbnRhaW5lciBkZXNjZW5kYW50cyB3aXRoIHRoZWlyIHogaW5kaWNl
cywgYW5kIHVzIHdpdGggJ3RoaXMnICh3ZSdyZSBhCisvLyBzdGFja2luZyBjb250YWluZXIgYW5k
IG91ciB6SW5kZXggZG9lc24ndCBtYXR0ZXIgaGVyZSkuIFRoZXNlIG5vZGVzIGFwcGVhciBpbgog
Ly8gdGhyZWUgbGlzdHM6IHBvc1pPcmRlciwgbmVnWk9yZGVyLCBhbmQgbm9ybWFsIGZsb3cgKGtl
ZXAgaW4gbWluZCB0aGF0IG5vcm1hbAogLy8gZmxvdyBsYXllcnMgZG9uJ3Qgb3ZlcmxhcCkuIFNv
IGlmIHdlIGFycmFuZ2UgdGhlc2UgbGlzdHMgaW4gb3JkZXIgd2UgZ2V0IG91cgogLy8gc3RhY2tp
bmcgb3JkZXI6CkBAIC01NTUsMTAgKzU1NSwxMCBAQCBib29sIFJlbmRlckxheWVyOjphY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkgY29uc3QKIC8vCiAvLyBO
b3RlIHRoYXQgdGhlIG5vcm1hbCBmbG93IGRlc2NlbmRhbnRzIGNhbiBzaGFyZSBhbiBpbmRleCBi
ZWNhdXNlIHRoZXkgZG9uJ3QKIC8vIHN0YWNrL292ZXJsYXAuIE5vdyBvdXIgcHJvYmxlbSBiZWNv
bWVzIHZlcnkgc2ltcGxlOiBhIGxheWVyIGNhbiBzYWZlbHkgYmVjb21lCi0vLyBhIHN0YWNraW5n
IGNvbnRleHQgaWYgdGhlIHN0YWNraW5nLW9yZGVyIGluZGljZXMgb2YgaXQgYW5kIGl0cyBkZXNj
ZW5kYW50cworLy8gYSBzdGFja2luZyBjb250YWluZXIgaWYgdGhlIHN0YWNraW5nLW9yZGVyIGlu
ZGljZXMgb2YgaXQgYW5kIGl0cyBkZXNjZW5kYW50cwogLy8gYXBwZWFyIGluIGEgY29udGlndW91
cyBibG9jayBpbiB0aGUgbGlzdCBvZiBzdGFja2luZyBpbmRpY2VzLiBUaGlzIHByb2JsZW0KIC8v
IGNhbiBiZSBzb2x2ZWQgdmVyeSBlZmZpY2llbnRseSBieSBjYWxjdWxhdGluZyB0aGUgbWluL21h
eCBzdGFja2luZyBpbmRpY2VzIGluCi0vLyB0aGUgc3VidHJlZSwgYW5kIHRoZSBudW1iZXIgc3Rh
Y2tpbmcgY29udGV4dCBkZXNjZW5kYW50cy4gT25jZSB3ZSBoYXZlIHRoaXMKKy8vIHRoZSBzdWJ0
cmVlLCBhbmQgdGhlIG51bWJlciBzdGFja2luZyBjb250YWluZXIgZGVzY2VuZGFudHMuIE9uY2Ug
d2UgaGF2ZSB0aGlzCiAvLyBpbmZvcm1hdGlvbiwgd2Uga25vdyB0aGF0IHRoZSBzdWJ0cmVlJ3Mg
aW5kaWNlcyBmb3JtIGEgY29udGlndW91cyBibG9jayBpZjoKIC8vCiAvLyAgICAgICAgICAgbWF4
U3RhY2tJbmRleCAtIG1pblN0YWNrSW5kZXggPT0gbnVtU0NEZXNjZW5kYW50cwpAQCAtNTczLDcg
KzU3Myw3IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVy
Zmxvd1Njcm9sbEVuYWJsZWQoKSBjb25zdAogLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAg
MSAtICgtMSkgPT0gMgogLy8gID09PT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgPT0g
MgogLy8KLS8vICBTaW5jZSB0aGlzIGlzIHRydWUsIEEgY2FuIHNhZmVseSBiZWNvbWUgYSBzdGFj
a2luZyBjb250ZXh0LgorLy8gIFNpbmNlIHRoaXMgaXMgdHJ1ZSwgQSBjYW4gc2FmZWx5IGJlY29t
ZSBhIHN0YWNraW5nIGNvbnRhaW5lci4KIC8vICBOb3csIGZvciBub2RlIEMgd2UgaGF2ZToKIC8v
CiAvLyAgIG1heFN0YWNrSW5kZXggPSA0CkBAIC01ODUsNyArNTg1LDcgQEAgYm9vbCBSZW5kZXJM
YXllcjo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNv
bnN0CiAvLyAgPT09PiAgICAgICAgICAgICAgICAgICAgICAgICA0IC0gMCA9PSAyCiAvLyAgPT09
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCA9PSAyCiAvLwotLy8gU2luY2UgdGhpcyBp
cyBmYWxzZSwgQyBjYW5ub3QgYmUgc2FmZWx5IHByb21vdGVkIHRvIGEgc3RhY2tpbmcgY29udGV4
dC4gVGhpcworLy8gU2luY2UgdGhpcyBpcyBmYWxzZSwgQyBjYW5ub3QgYmUgc2FmZWx5IHByb21v
dGVkIHRvIGEgc3RhY2tpbmcgY29udGFpbmVyLiBUaGlzCiAvLyBoYXBwZW5lZCBiZWNhdXNlIG9m
IHRoZSBlbGVtZW50cyB3aXRoIHotaW5kZXggNSBhbmQgMC4gTm93IGlmIDUgaGFkIGJlZW4gYQog
Ly8gY2hpbGQgb2YgQyByYXRoZXIgdGhhbiBELCBhbmQgQSBoYWQgbm8gY2hpbGQgd2l0aCBaIGlu
ZGV4IDAsIHdlIHdvdWxkIGhhdmUgaGFkOgogLy8KQEAgLTYwNywyNSArNjA3LDI5IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tpbmdPcmRl
cigpCiAgICAgQVNTRVJUKCFtX25vcm1hbEZsb3dMaXN0RGlydHkpOwogICAgIEFTU0VSVCghbV96
T3JkZXJMaXN0c0RpcnR5KTsKIAorICAgIE93blB0cjxWZWN0b3I8UmVuZGVyTGF5ZXIqPiA+IHBv
c1pPcmRlckxpc3Q7CisgICAgT3duUHRyPFZlY3RvcjxSZW5kZXJMYXllcio+ID4gbmVnWk9yZGVy
TGlzdDsKKyAgICByZWJ1aWxkWk9yZGVyTGlzdHMoU3RvcEF0U3RhY2tpbmdDb250ZXh0cywgcG9z
Wk9yZGVyTGlzdCwgbmVnWk9yZGVyTGlzdCk7CisKICAgICAvLyBDcmVhdGUgYSByZXZlcnNlIGxv
b2t1cC4KICAgICBIYXNoTWFwPGNvbnN0IFJlbmRlckxheWVyKiwgaW50PiBsb29rdXA7CiAKLSAg
ICBpZiAobV9uZWdaT3JkZXJMaXN0KSB7CisgICAgaWYgKG5lZ1pPcmRlckxpc3QpIHsKICAgICAg
ICAgaW50IHN0YWNraW5nT3JkZXJJbmRleCA9IC0xOwotICAgICAgICBzaXplX3QgbGlzdFNpemUg
PSBtX25lZ1pPcmRlckxpc3QtPnNpemUoKTsKKyAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gbmVn
Wk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RT
aXplOyArK2kpIHsKLSAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJyZW50TGF5ZXIgPSBtX25l
Z1pPcmRlckxpc3QtPmF0KGxpc3RTaXplIC0gaSAtIDEpOworICAgICAgICAgICAgUmVuZGVyTGF5
ZXIqIGN1cnJlbnRMYXllciA9IG5lZ1pPcmRlckxpc3QtPmF0KGxpc3RTaXplIC0gaSAtIDEpOwog
ICAgICAgICAgICAgaWYgKCFjdXJyZW50TGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpCiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBsb29rdXAuc2V0KGN1cnJlbnRMYXll
ciwgc3RhY2tpbmdPcmRlckluZGV4LS0pOwogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKG1f
cG9zWk9yZGVyTGlzdCkgewotICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBtX3Bvc1pPcmRlckxp
c3QtPnNpemUoKTsKKyAgICBpZiAocG9zWk9yZGVyTGlzdCkgeworICAgICAgICBzaXplX3QgbGlz
dFNpemUgPSBwb3NaT3JkZXJMaXN0LT5zaXplKCk7CiAgICAgICAgIGludCBzdGFja2luZ09yZGVy
SW5kZXggPSAxOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kp
IHsKLSAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJyZW50TGF5ZXIgPSBtX3Bvc1pPcmRlckxp
c3QtPmF0KGkpOworICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1cnJlbnRMYXllciA9IHBvc1pP
cmRlckxpc3QtPmF0KGkpOwogICAgICAgICAgICAgaWYgKCFjdXJyZW50TGF5ZXItPmlzU3RhY2tp
bmdDb250ZXh0KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBsb29r
dXAuc2V0KGN1cnJlbnRMYXllciwgc3RhY2tpbmdPcmRlckluZGV4KyspOwpAQCAtOTE1LDIxICs5
MTksMjEgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlUGFnaW5hdGlvbigpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICAvLyBJZiB3ZSdyZSBub3Qgbm9ybWFsIGZsb3csIHRoZW4gd2Ug
bmVlZCB0byBsb29rIGZvciBhIG11bHRpLWNvbHVtbiBvYmplY3QgYmV0d2VlbiB1cyBhbmQgb3Vy
IHN0YWNraW5nIGNvbnRleHQuCi0gICAgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yU3RhY2tpbmdDb250
ZXh0ID0gc3RhY2tpbmdDb250ZXh0KCk7CisgICAgLy8gSWYgd2UncmUgbm90IG5vcm1hbCBmbG93
LCB0aGVuIHdlIG5lZWQgdG8gbG9vayBmb3IgYSBtdWx0aS1jb2x1bW4gb2JqZWN0IGJldHdlZW4g
dXMgYW5kIG91ciBzdGFja2luZyBjb250YWluZXIuCisgICAgUmVuZGVyTGF5ZXIqIGFuY2VzdG9y
U3RhY2tpbmdDb250YWluZXIgPSBzdGFja2luZ0NvbnRhaW5lcigpOwogICAgIGZvciAoUmVuZGVy
TGF5ZXIqIGN1cnIgPSBwYXJlbnQoKTsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudCgpKSB7CiAg
ICAgICAgIGlmIChjdXJyLT5yZW5kZXJlcigpLT5oYXNDb2x1bW5zKCkpIHsKICAgICAgICAgICAg
IG1faXNQYWdpbmF0ZWQgPSBjaGVja0NvbnRhaW5pbmdCbG9ja0NoYWluRm9yUGFnaW5hdGlvbihy
ZW5kZXJlcigpLCBjdXJyLT5yZW5kZXJCb3goKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KLSAgICAgICAgaWYgKGN1cnIgPT0gYW5jZXN0b3JTdGFja2luZ0NvbnRleHQpCisgICAg
ICAgIGlmIChjdXJyID09IGFuY2VzdG9yU3RhY2tpbmdDb250YWluZXIpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgfQogfQogCi1ib29sIFJlbmRlckxheWVyOjpjYW5TYWZlbHlFc3RhYmxpc2hB
U3RhY2tpbmdDb250ZXh0KCkgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXI6OmNhbkJlU3RhY2tpbmdD
b250YWluZXIoKSBjb25zdAogewotICAgIGlmIChpc1N0YWNraW5nQ29udGV4dCgpIHx8ICFzdGFj
a2luZ0NvbnRleHQoKSkKKyAgICBpZiAoaXNTdGFja2luZ0NvbnRleHQoKSB8fCAhc3RhY2tpbmdD
b250YWluZXIoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gbV9kZXNjZW5k
YW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXI7CkBAIC05NDcsOSArOTUxLDkgQEAgdm9p
ZCBSZW5kZXJMYXllcjo6c2V0SGFzVmlzaWJsZUNvbnRlbnQoKQogICAgIGNvbXB1dGVSZXBhaW50
UmVjdHMocmVuZGVyZXIoKS0+Y29udGFpbmVyRm9yUmVwYWludCgpKTsKICAgICBpZiAoIWlzTm9y
bWFsRmxvd09ubHkoKSkgewogICAgICAgICAvLyBXZSBkb24ndCBjb2xsZWN0IGludmlzaWJsZSBs
YXllcnMgaW4gei1vcmRlciBsaXN0cyBpZiB3ZSBhcmUgbm90IGluIGNvbXBvc2l0aW5nIG1vZGUu
Ci0gICAgICAgIC8vIEFzIHdlIGJlY2FtZSB2aXNpYmxlLCB3ZSBuZWVkIHRvIGRpcnR5IG91ciBz
dGFja2luZyBjb250ZXh0cyBhbmNlc3RvcnMgdG8gYmUgcHJvcGVybHkKKyAgICAgICAgLy8gQXMg
d2UgYmVjYW1lIHZpc2libGUsIHdlIG5lZWQgdG8gZGlydHkgb3VyIHN0YWNraW5nIGNvbnRhaW5l
cnMgYW5jZXN0b3JzIHRvIGJlIHByb3Blcmx5CiAgICAgICAgIC8vIGNvbGxlY3RlZC4gRklYTUU6
IFdoZW4gY29tcG9zaXRpbmcsIHdlIGNvdWxkIHNraXAgdGhpcyBkaXJ0eWluZyBwaGFzZS4KLSAg
ICAgICAgZm9yIChSZW5kZXJMYXllciogc2MgPSBzdGFja2luZ0NvbnRleHQoKTsgc2M7IHNjID0g
c2MtPnN0YWNraW5nQ29udGV4dCgpKSB7CisgICAgICAgIGZvciAoUmVuZGVyTGF5ZXIqIHNjID0g
c3RhY2tpbmdDb250YWluZXIoKTsgc2M7IHNjID0gc2MtPnN0YWNraW5nQ29udGFpbmVyKCkpIHsK
ICAgICAgICAgICAgIHNjLT5kaXJ0eVpPcmRlckxpc3RzKCk7CiAgICAgICAgICAgICBpZiAoc2Mt
Pmhhc1Zpc2libGVDb250ZW50KCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDY4LDE1
ICsxMDcyLDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRG
bGFncyhIYXNoU2V0PGNvbnN0IFJlbmRlck9iamVjdCo+KiBvCiAKIHZvaWQgUmVuZGVyTGF5ZXI6
OmRpcnR5M0RUcmFuc2Zvcm1lZERlc2NlbmRhbnRTdGF0dXMoKQogewotICAgIFJlbmRlckxheWVy
KiBjdXJyID0gc3RhY2tpbmdDb250ZXh0KCk7CisgICAgUmVuZGVyTGF5ZXIqIGN1cnIgPSBzdGFj
a2luZ0NvbnRhaW5lcigpOwogICAgIGlmIChjdXJyKQogICAgICAgICBjdXJyLT5tXzNEVHJhbnNm
b3JtZWREZXNjZW5kYW50U3RhdHVzRGlydHkgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBUaGlz
IHByb3BhZ2F0ZXMgdXAgdGhyb3VnaCBwcmVzZXJ2ZS0zZCBoaWVyYXJjaGllcyB0byB0aGUgZW5j
bG9zaW5nIGZsYXR0ZW5pbmcgbGF5ZXIuCi0gICAgLy8gTm90ZSB0aGF0IHByZXNlcnZlczNEKCkg
Y3JlYXRlcyBzdGFja2luZyBjb250ZXh0LCBzbyB3ZSBjYW4ganVzdCBydW4gdXAgdGhlIHN0YWNr
aW5nIGNvbnRleHRzLgorICAgIC8vIE5vdGUgdGhhdCBwcmVzZXJ2ZXMzRCgpIGNyZWF0ZXMgc3Rh
Y2tpbmcgY29udGV4dCwgc28gd2UgY2FuIGp1c3QgcnVuIHVwIHRoZSBzdGFja2luZyBjb250YWlu
ZXJzLgogICAgIHdoaWxlIChjdXJyICYmIGN1cnItPnByZXNlcnZlczNEKCkpIHsKICAgICAgICAg
Y3Vyci0+bV8zRFRyYW5zZm9ybWVkRGVzY2VuZGFudFN0YXR1c0RpcnR5ID0gdHJ1ZTsKLSAgICAg
ICAgY3VyciA9IGN1cnItPnN0YWNraW5nQ29udGV4dCgpOworICAgICAgICBjdXJyID0gY3Vyci0+
c3RhY2tpbmdDb250YWluZXIoKTsKICAgICB9CiB9CiAKQEAgLTEyMzksMTMgKzEyNDMsMTMgQEAg
RmxvYXRQb2ludCBSZW5kZXJMYXllcjo6cGVyc3BlY3RpdmVPcmlnaW4oKSBjb25zdAogICAgICAg
ICAgICAgICAgICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgoc3R5bGUtPnBlcnNwZWN0aXZlT3Jp
Z2luWSgpLCBib3JkZXJCb3guaGVpZ2h0KCkpKTsKIH0KIAotUmVuZGVyTGF5ZXIqIFJlbmRlckxh
eWVyOjpzdGFja2luZ0NvbnRleHQoKSBjb25zdAorUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpz
dGFja2luZ0NvbnRhaW5lcigpIGNvbnN0CiB7CiAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gcGFy
ZW50KCk7Ci0gICAgd2hpbGUgKGxheWVyICYmICFsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkK
KyAgICB3aGlsZSAobGF5ZXIgJiYgIWxheWVyLT5pc1N0YWNraW5nQ29udGFpbmVyKCkpCiAgICAg
ICAgIGxheWVyID0gbGF5ZXItPnBhcmVudCgpOwogCi0gICAgQVNTRVJUKCFsYXllciB8fCBsYXll
ci0+aXNTdGFja2luZ0NvbnRleHQoKSk7CisgICAgQVNTRVJUKCFsYXllciB8fCBsYXllci0+aXNT
dGFja2luZ0NvbnRhaW5lcigpKTsKICAgICByZXR1cm4gbGF5ZXI7CiB9CiAKQEAgLTEyOTUsNyAr
MTI5OSw3IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nVHJhbnNmb3JtZWRB
bmNlc3RvcigpIGNvbnN0CiAKIHN0YXRpYyBpbmxpbmUgY29uc3QgUmVuZGVyTGF5ZXIqIGNvbXBv
c2l0aW5nQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikKIHsKLSAgICByZXR1cm4g
bGF5ZXItPmlzTm9ybWFsRmxvd09ubHkoKSA/IGxheWVyLT5wYXJlbnQoKSA6IGxheWVyLT5zdGFj
a2luZ0NvbnRleHQoKTsKKyAgICByZXR1cm4gbGF5ZXItPmlzTm9ybWFsRmxvd09ubHkoKSA/IGxh
eWVyLT5wYXJlbnQoKSA6IGxheWVyLT5zdGFja2luZ0NvbnRhaW5lcigpOwogfQogCiBpbmxpbmUg
Ym9vbCBSZW5kZXJMYXllcjo6c2hvdWxkUmVwYWludEFmdGVyTGF5b3V0KCkgY29uc3QKQEAgLTE1
MDksNyArMTUxMyw3IEBAIHN0YXRpYyB2b2lkIGV4cGFuZENsaXBSZWN0Rm9yRGVzY2VuZGFudHNB
bmRSZWZsZWN0aW9uKExheW91dFJlY3QmIGNsaXBSZWN0LCBjb25zCiAgICAgLy8gbm8gbmVlZCB0
byBleGFtaW5lIGNoaWxkIGxheWVycykuCiAgICAgaWYgKCFsYXllci0+cmVuZGVyZXIoKS0+aGFz
TWFzaygpKSB7CiAgICAgICAgIC8vIE5vdGU6IHdlIGRvbid0IGhhdmUgdG8gd2FsayB6LW9yZGVy
IGxpc3RzIHNpbmNlIHRyYW5zcGFyZW50IGVsZW1lbnRzIGFsd2F5cyBlc3RhYmxpc2gKLSAgICAg
ICAgLy8gYSBzdGFja2luZyBjb250ZXh0LiAgVGhpcyBtZWFucyB3ZSBjYW4ganVzdCB3YWxrIHRo
ZSBsYXllciB0cmVlIGRpcmVjdGx5LgorICAgICAgICAvLyBhIHN0YWNraW5nIGNvbnRhaW5lci4g
VGhpcyBtZWFucyB3ZSBjYW4ganVzdCB3YWxrIHRoZSBsYXllciB0cmVlIGRpcmVjdGx5LgogICAg
ICAgICBmb3IgKFJlbmRlckxheWVyKiBjdXJyID0gbGF5ZXItPmZpcnN0Q2hpbGQoKTsgY3Vycjsg
Y3VyciA9IGN1cnItPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgICAgIGlmICghbGF5ZXItPnJl
ZmxlY3Rpb24oKSB8fCBsYXllci0+cmVmbGVjdGlvbkxheWVyKCkgIT0gY3VycikKICAgICAgICAg
ICAgICAgICBjbGlwUmVjdC51bml0ZSh0cmFuc3BhcmVuY3lDbGlwQm94KGN1cnIsIHJvb3RMYXll
ciwgcGFpbnRCZWhhdmlvcikpOwpAQCAtMTYyNCwxMCArMTYyOCwxMCBAQCB2b2lkIFJlbmRlckxh
eWVyOjphZGRDaGlsZChSZW5kZXJMYXllciogY2hpbGQsIFJlbmRlckxheWVyKiBiZWZvcmVDaGls
ZCkKICAgICAgICAgZGlydHlOb3JtYWxGbG93TGlzdCgpOwogCiAgICAgaWYgKCFjaGlsZC0+aXNO
b3JtYWxGbG93T25seSgpIHx8IGNoaWxkLT5maXJzdENoaWxkKCkpIHsKLSAgICAgICAgLy8gRGly
dHkgdGhlIHotb3JkZXIgbGlzdCBpbiB3aGljaCB3ZSBhcmUgY29udGFpbmVkLiAgVGhlIHN0YWNr
aW5nQ29udGV4dCgpIGNhbiBiZSBudWxsIGluIHRoZQotICAgICAgICAvLyBjYXNlIHdoZXJlIHdl
J3JlIGJ1aWxkaW5nIHVwIGdlbmVyYXRlZCBjb250ZW50IGxheWVycy4gIFRoaXMgaXMgb2ssIHNp
bmNlIHRoZSBsaXN0cyB3aWxsIHN0YXJ0CisgICAgICAgIC8vIERpcnR5IHRoZSB6LW9yZGVyIGxp
c3QgaW4gd2hpY2ggd2UgYXJlIGNvbnRhaW5lZC4gVGhlIHN0YWNraW5nQ29udGFpbmVyKCkgY2Fu
IGJlIG51bGwgaW4gdGhlCisgICAgICAgIC8vIGNhc2Ugd2hlcmUgd2UncmUgYnVpbGRpbmcgdXAg
Z2VuZXJhdGVkIGNvbnRlbnQgbGF5ZXJzLiBUaGlzIGlzIG9rLCBzaW5jZSB0aGUgbGlzdHMgd2ls
bCBzdGFydAogICAgICAgICAvLyBvZmYgZGlydHkgaW4gdGhhdCBjYXNlIGFueXdheS4KLSAgICAg
ICAgY2hpbGQtPmRpcnR5U3RhY2tpbmdDb250ZXh0Wk9yZGVyTGlzdHMoKTsKKyAgICAgICAgY2hp
bGQtPmRpcnR5U3RhY2tpbmdDb250YWluZXJaT3JkZXJMaXN0cygpOwogICAgIH0KIAogICAgIGNo
aWxkLT51cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKTsKQEAgLTE2NjgsOCArMTY3Miw4
IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6cmVtb3ZlQ2hpbGQoUmVuZGVyTGF5ZXIqIG9s
ZENoaWxkKQogICAgIGlmICghb2xkQ2hpbGQtPmlzTm9ybWFsRmxvd09ubHkoKSB8fCBvbGRDaGls
ZC0+Zmlyc3RDaGlsZCgpKSB7IAogICAgICAgICAvLyBEaXJ0eSB0aGUgei1vcmRlciBsaXN0IGlu
IHdoaWNoIHdlIGFyZSBjb250YWluZWQuICBXaGVuIGNhbGxlZCB2aWEgdGhlCiAgICAgICAgIC8v
IHJlYXR0YWNobWVudCBwcm9jZXNzIGluIHJlbW92ZU9ubHlUaGlzTGF5ZXIsIHRoZSBsYXllciBt
YXkgYWxyZWFkeSBiZSBkaXNjb25uZWN0ZWQKLSAgICAgICAgLy8gZnJvbSB0aGUgbWFpbiBsYXll
ciB0cmVlLCBzbyB3ZSBuZWVkIHRvIG51bGwtY2hlY2sgdGhlIHxzdGFja2luZ0NvbnRleHR8IHZh
bHVlLgotICAgICAgICBvbGRDaGlsZC0+ZGlydHlTdGFja2luZ0NvbnRleHRaT3JkZXJMaXN0cygp
OworICAgICAgICAvLyBmcm9tIHRoZSBtYWluIGxheWVyIHRyZWUsIHNvIHdlIG5lZWQgdG8gbnVs
bC1jaGVjayB0aGUgfHN0YWNraW5nQ29udGFpbmVyfCB2YWx1ZS4KKyAgICAgICAgb2xkQ2hpbGQt
PmRpcnR5U3RhY2tpbmdDb250YWluZXJaT3JkZXJMaXN0cygpOwogICAgIH0KIAogICAgIGlmICgo
b2xkQ2hpbGQtPnJlbmRlcmVyKCkgJiYgb2xkQ2hpbGQtPnJlbmRlcmVyKCktPmlzT3V0T2ZGbG93
UG9zaXRpb25lZCgpKSB8fCBvbGRDaGlsZC0+aGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRh
bnQoKSkKQEAgLTE5MDQsNyArMTkwOCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZU5lZWRz
Q29tcG9zaXRlZFNjcm9sbGluZygpCiAgICAgICAgIG1fbmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5n
ID0gZmFsc2U7CiAgICAgZWxzZSB7CiAgICAgICAgIGJvb2wgZm9yY2VVc2VDb21wb3NpdGVkU2Ny
b2xsaW5nID0gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgp
Ci0gICAgICAgICAgICAmJiBjYW5TYWZlbHlFc3RhYmxpc2hBU3RhY2tpbmdDb250ZXh0KCkKKyAg
ICAgICAgICAgICYmIGNhbkJlU3RhY2tpbmdDb250YWluZXIoKQogICAgICAgICAgICAgJiYgIWhh
c091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KCk7CiAKICNpZiBFTkFCTEUoQUNDRUxFUkFU
RURfT1ZFUkZMT1dfU0NST0xMSU5HKQpAQCAtMTkxNCw4ICsxOTE4LDIyIEBAIHZvaWQgUmVuZGVy
TGF5ZXI6OnVwZGF0ZU5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpCiAjZW5kaWYKICAgICB9CiAK
LSAgICBpZiAob2xkTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nICE9IG1fbmVlZHNDb21wb3NpdGVk
U2Nyb2xsaW5nKQorICAgIGlmIChvbGROZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcgIT0gbV9uZWVk
c0NvbXBvc2l0ZWRTY3JvbGxpbmcpIHsKICAgICAgICAgdXBkYXRlU2VsZlBhaW50aW5nTGF5ZXIo
KTsKKyAgICAgICAgaWYgKGlzU3RhY2tpbmdDb250YWluZXIoKSkKKyAgICAgICAgICAgIGRpcnR5
Wk9yZGVyTGlzdHMoKTsKKworICAgICAgICBSZW5kZXJMYXllciogc2MgPSBwYXJlbnQoKTsKKyAg
ICAgICAgd2hpbGUgKHNjICYmICFzYy0+aXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAgICAg
IHNjID0gc2MtPnBhcmVudCgpOworICAgICAgICAKKyAgICAgICAgaWYgKHNjKSB7CisgICAgICAg
ICAgICBzYy0+ZGlydHlaT3JkZXJMaXN0cygpOworICAgICAgICAgICAgc2MtPmRpcnR5Tm9ybWFs
Rmxvd0xpc3QoKTsKKyAgICAgICAgfQorICAgICAgICBjb21wb3NpdG9yKCktPnNldENvbXBvc2l0
aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKKyAgICAgICAgY29tcG9zaXRvcigpLT5zZXRTaG91bGRS
ZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCgpOworICAgIH0KIH0KICNlbmRpZgogCkBA
IC0yMjE3LDEyICsyMjM1LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUNvbXBvc2l0aW5n
TGF5ZXJzQWZ0ZXJTY3JvbGwoKQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBpZiAoY29tcG9zaXRvcigpLT5pbkNvbXBvc2l0aW5nTW9kZSgpKSB7Ci0gICAgICAgIC8v
IE91ciBzdGFja2luZyBjb250ZXh0IGlzIGd1YXJhbnRlZWQgdG8gY29udGFpbiBhbGwgb2Ygb3Vy
IGRlc2NlbmRhbnRzIHRoYXQgbWF5IG5lZWQKKyAgICAgICAgLy8gT3VyIHN0YWNraW5nIGNvbnRh
aW5lciBpcyBndWFyYW50ZWVkIHRvIGNvbnRhaW4gYWxsIG9mIG91ciBkZXNjZW5kYW50cyB0aGF0
IG1heSBuZWVkCiAgICAgICAgIC8vIHJlcG9zaXRpb25pbmcsIHNvIHVwZGF0ZSBjb21wb3NpdGlu
ZyBsYXllcnMgZnJvbSB0aGVyZS4KLSAgICAgICAgaWYgKFJlbmRlckxheWVyKiBjb21wb3NpdGlu
Z0FuY2VzdG9yID0gc3RhY2tpbmdDb250ZXh0KCktPmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXIo
KSkgewotICAgICAgICAgICAgaWYgKGNvbXBvc2l0b3IoKS0+Y29tcG9zaXRpbmdDb25zdWx0c092
ZXJsYXAoKSkKLSAgICAgICAgICAgICAgICBjb21wb3NpdG9yKCktPnVwZGF0ZUNvbXBvc2l0aW5n
TGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlT25TY3JvbGwsIGNvbXBvc2l0aW5nQW5jZXN0b3IpOwot
ICAgICAgICAgICAgZWxzZQorICAgICAgICBpZiAoUmVuZGVyTGF5ZXIqIGNvbXBvc2l0aW5nQW5j
ZXN0b3IgPSBzdGFja2luZ0NvbnRhaW5lcigpLT5lbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyKCkp
IHsKKyAgICAgICAgICAgIGlmIChjb21wb3NpdG9yKCktPmNvbXBvc2l0aW5nQ29uc3VsdHNPdmVy
bGFwKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAodXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSAm
JiAhaGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQoKSkKKyAgICAgICAgICAgICAgICAg
ICAgY29tcG9zaXRvcigpLT51cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0
ZU9uQ29tcG9zaXRlZFNjcm9sbCwgY29tcG9zaXRpbmdBbmNlc3Rvcik7CisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb21wb3NpdG9yKCktPnVwZGF0ZUNvbXBvc2l0
aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlT25TY3JvbGwsIGNvbXBvc2l0aW5nQW5jZXN0b3Ip
OworICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgY29tcG9zaXRpbmdBbmNlc3Rv
ci0+YmFja2luZygpLT51cGRhdGVBZnRlckxheW91dChSZW5kZXJMYXllckJhY2tpbmc6OklzVXBk
YXRlUm9vdCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0zODQyLDcgKzM4NjMsNyBAQCB2b2lkIFJl
bmRlckxheWVyOjpwYWludFBhZ2luYXRlZENoaWxkTGF5ZXIoUmVuZGVyTGF5ZXIqIGNoaWxkTGF5
ZXIsIEdyYXBoaWNzQ29udAogewogICAgIC8vIFdlIG5lZWQgdG8gZG8gbXVsdGlwbGUgcGFzc2Vz
LCBicmVha2luZyB1cCBvdXIgY2hpbGQgbGF5ZXIgaW50byBzdHJpcHMuCiAgICAgVmVjdG9yPFJl
bmRlckxheWVyKj4gY29sdW1uTGF5ZXJzOwotICAgIFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVy
ID0gaXNOb3JtYWxGbG93T25seSgpID8gcGFyZW50KCkgOiBzdGFja2luZ0NvbnRleHQoKTsKKyAg
ICBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciA9IGlzTm9ybWFsRmxvd09ubHkoKSA/IHBhcmVu
dCgpIDogc3RhY2tpbmdDb250YWluZXIoKTsKICAgICBmb3IgKFJlbmRlckxheWVyKiBjdXJyID0g
Y2hpbGRMYXllci0+cGFyZW50KCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYXJlbnQoKSkgewogICAg
ICAgICBpZiAoY3Vyci0+cmVuZGVyZXIoKS0+aGFzQ29sdW1ucygpICYmIGNoZWNrQ29udGFpbmlu
Z0Jsb2NrQ2hhaW5Gb3JQYWdpbmF0aW9uKGNoaWxkTGF5ZXItPnJlbmRlcmVyKCksIGN1cnItPnJl
bmRlckJveCgpKSkKICAgICAgICAgICAgIGNvbHVtbkxheWVycy5hcHBlbmQoY3Vycik7CkBAIC00
MzU2LDcgKzQzNzcsNyBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmhpdFRlc3RQYWdpbmF0
ZWRDaGlsZExheWVyKFJlbmRlckxheWVyKiBjaGlsZExheWVyLCBSZQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMYXlvdXRSZWN0JiBo
aXRUZXN0UmVjdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBoaXRUZXN0TG9jYXRpb24sIGNvbnN0
IEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZSogdHJhbnNmb3JtU3RhdGUsIGRvdWJsZSogek9mZnNl
dCkKIHsKICAgICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiBjb2x1bW5MYXllcnM7Ci0gICAgUmVuZGVy
TGF5ZXIqIGFuY2VzdG9yTGF5ZXIgPSBpc05vcm1hbEZsb3dPbmx5KCkgPyBwYXJlbnQoKSA6IHN0
YWNraW5nQ29udGV4dCgpOworICAgIFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyID0gaXNOb3Jt
YWxGbG93T25seSgpID8gcGFyZW50KCkgOiBzdGFja2luZ0NvbnRhaW5lcigpOwogICAgIGZvciAo
UmVuZGVyTGF5ZXIqIGN1cnIgPSBjaGlsZExheWVyLT5wYXJlbnQoKTsgY3VycjsgY3VyciA9IGN1
cnItPnBhcmVudCgpKSB7CiAgICAgICAgIGlmIChjdXJyLT5yZW5kZXJlcigpLT5oYXNDb2x1bW5z
KCkgJiYgY2hlY2tDb250YWluaW5nQmxvY2tDaGFpbkZvclBhZ2luYXRpb24oY2hpbGRMYXllci0+
cmVuZGVyZXIoKSwgY3Vyci0+cmVuZGVyQm94KCkpKQogICAgICAgICAgICAgY29sdW1uTGF5ZXJz
LmFwcGVuZChjdXJyKTsKQEAgLTQ5MTgsNyArNDkzOSw3IEBAIEludFJlY3QgUmVuZGVyTGF5ZXI6
OmNhbGN1bGF0ZUxheWVyQm91bmRzKGNvbnN0IFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyLCBj
b25zCiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgQVNTRVJUKGlzU3RhY2tpbmdDb250ZXh0
KCkgfHwgKCFwb3NaT3JkZXJMaXN0KCkgfHwgIXBvc1pPcmRlckxpc3QoKS0+c2l6ZSgpKSk7Cisg
ICAgQVNTRVJUKGlzU3RhY2tpbmdDb250YWluZXIoKSB8fCAoIXBvc1pPcmRlckxpc3QoKSB8fCAh
cG9zWk9yZGVyTGlzdCgpLT5zaXplKCkpKTsKIAogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICBM
YXllckxpc3RNdXRhdGlvbkRldGVjdG9yIG11dGF0aW9uQ2hlY2tlcihjb25zdF9jYXN0PFJlbmRl
ckxheWVyKj4odGhpcykpOwpAQCAtNTA5OSw3ICs1MTIwLDcgQEAgc3RhdGljIGlubGluZSBib29s
IGNvbXBhcmVaSW5kZXgoUmVuZGVyTGF5ZXIqIGZpcnN0LCBSZW5kZXJMYXllciogc2Vjb25kKQog
dm9pZCBSZW5kZXJMYXllcjo6ZGlydHlaT3JkZXJMaXN0cygpCiB7CiAgICAgQVNTRVJUKG1fbGF5
ZXJMaXN0TXV0YXRpb25BbGxvd2VkKTsKLSAgICBBU1NFUlQoaXNTdGFja2luZ0NvbnRleHQoKSk7
CisgICAgQVNTRVJUKGlzU3RhY2tpbmdDb250YWluZXIoKSk7CiAKICAgICBpZiAobV9wb3NaT3Jk
ZXJMaXN0KQogICAgICAgICBtX3Bvc1pPcmRlckxpc3QtPmNsZWFyKCk7CkBAIC01MTE2LDkgKzUx
MzcsOSBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxpc3RzKCkKICNlbmRpZgogfQog
Ci12b2lkIFJlbmRlckxheWVyOjpkaXJ0eVN0YWNraW5nQ29udGV4dFpPcmRlckxpc3RzKCkKK3Zv
aWQgUmVuZGVyTGF5ZXI6OmRpcnR5U3RhY2tpbmdDb250YWluZXJaT3JkZXJMaXN0cygpCiB7Ci0g
ICAgUmVuZGVyTGF5ZXIqIHNjID0gc3RhY2tpbmdDb250ZXh0KCk7CisgICAgUmVuZGVyTGF5ZXIq
IHNjID0gc3RhY2tpbmdDb250YWluZXIoKTsKICAgICBpZiAoc2MpCiAgICAgICAgIHNjLT5kaXJ0
eVpPcmRlckxpc3RzKCk7CiB9CkBAIC01MTQzLDggKzUxNjQsMTMgQEAgdm9pZCBSZW5kZXJMYXll
cjo6ZGlydHlOb3JtYWxGbG93TGlzdCgpCiB2b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxkWk9yZGVy
TGlzdHMoKQogewogICAgIEFTU0VSVChtX2xheWVyTGlzdE11dGF0aW9uQWxsb3dlZCk7Ci0gICAg
QVNTRVJUKGlzRGlydHlTdGFja2luZ0NvbnRleHQoKSk7CisgICAgQVNTRVJUKGlzRGlydHlTdGFj
a2luZ0NvbnRhaW5lcigpKTsKKyAgICByZWJ1aWxkWk9yZGVyTGlzdHMoU3RvcEF0U3RhY2tpbmdD
b250YWluZXJzLCBtX3Bvc1pPcmRlckxpc3QsIG1fbmVnWk9yZGVyTGlzdCk7CisgICAgbV96T3Jk
ZXJMaXN0c0RpcnR5ID0gZmFsc2U7Cit9CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGRaT3Jk
ZXJMaXN0cyhDb2xsZWN0TGF5ZXJzQmVoYXZpb3IgYmVoYXZpb3IsIE93blB0cjxWZWN0b3I8UmVu
ZGVyTGF5ZXIqPiA+JiBwb3NaT3JkZXJMaXN0LCBPd25QdHI8VmVjdG9yPFJlbmRlckxheWVyKj4g
PiYgbmVnWk9yZGVyTGlzdCkKK3sKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgYm9vbCBpbmNsdWRlSGlkZGVuTGF5ZXJzID0gY29tcG9zaXRvcigpLT5pbkNvbXBvc2l0aW5n
TW9kZSgpOwogI2Vsc2UKQEAgLTUxNTIsMTQgKzUxNzgsMTQgQEAgdm9pZCBSZW5kZXJMYXllcjo6
cmVidWlsZFpPcmRlckxpc3RzKCkKICNlbmRpZgogICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxk
ID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKICAg
ICAgICAgaWYgKCFtX3JlZmxlY3Rpb24gfHwgcmVmbGVjdGlvbkxheWVyKCkgIT0gY2hpbGQpCi0g
ICAgICAgICAgICBjaGlsZC0+Y29sbGVjdExheWVycyhpbmNsdWRlSGlkZGVuTGF5ZXJzLCBtX3Bv
c1pPcmRlckxpc3QsIG1fbmVnWk9yZGVyTGlzdCk7CisgICAgICAgICAgICBjaGlsZC0+Y29sbGVj
dExheWVycyhpbmNsdWRlSGlkZGVuTGF5ZXJzLCBiZWhhdmlvciwgcG9zWk9yZGVyTGlzdCwgbmVn
Wk9yZGVyTGlzdCk7CiAKICAgICAvLyBTb3J0IHRoZSB0d28gbGlzdHMuCi0gICAgaWYgKG1fcG9z
Wk9yZGVyTGlzdCkKLSAgICAgICAgc3RkOjpzdGFibGVfc29ydChtX3Bvc1pPcmRlckxpc3QtPmJl
Z2luKCksIG1fcG9zWk9yZGVyTGlzdC0+ZW5kKCksIGNvbXBhcmVaSW5kZXgpOworICAgIGlmIChw
b3NaT3JkZXJMaXN0KQorICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KHBvc1pPcmRlckxpc3QtPmJl
Z2luKCksIHBvc1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4KTsKIAotICAgIGlmICht
X25lZ1pPcmRlckxpc3QpCi0gICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQobV9uZWdaT3JkZXJMaXN0
LT5iZWdpbigpLCBtX25lZ1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4KTsKKyAgICBp
ZiAobmVnWk9yZGVyTGlzdCkKKyAgICAgICAgc3RkOjpzdGFibGVfc29ydChuZWdaT3JkZXJMaXN0
LT5iZWdpbigpLCBuZWdaT3JkZXJMaXN0LT5lbmQoKSwgY29tcGFyZVpJbmRleCk7CiAKICNpZiBF
TkFCTEUoRElBTE9HX0VMRU1FTlQpCiAgICAgLy8gQXBwZW5kIGxheWVycyBmb3IgdG9wIGxheWVy
IGVsZW1lbnRzIGFmdGVyIG5vcm1hbCBsYXllciBjb2xsZWN0aW9uLCB0byBlbnN1cmUgdGhleSBh
cmUgb24gdG9wIHJlZ2FyZGxlc3Mgb2Ygei1pbmRleGVzLgpAQCAtNTE5OCw3ICs1MjI0LDcgQEAg
dm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTm9ybWFsRmxvd0xpc3QoKQogICAgIG1fbm9ybWFsRmxv
d0xpc3REaXJ0eSA9IGZhbHNlOwogfQogCi12b2lkIFJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJz
KGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycywgT3duUHRyPFZlY3RvcjxSZW5kZXJMYXllcio+ID4m
IHBvc0J1ZmZlciwgT3duUHRyPFZlY3RvcjxSZW5kZXJMYXllcio+ID4mIG5lZ0J1ZmZlcikKK3Zv
aWQgUmVuZGVyTGF5ZXI6OmNvbGxlY3RMYXllcnMoYm9vbCBpbmNsdWRlSGlkZGVuTGF5ZXJzLCBD
b2xsZWN0TGF5ZXJzQmVoYXZpb3IgYmVoYXZpb3IsIE93blB0cjxWZWN0b3I8UmVuZGVyTGF5ZXIq
PiA+JiBwb3NCdWZmZXIsIE93blB0cjxWZWN0b3I8UmVuZGVyTGF5ZXIqPiA+JiBuZWdCdWZmZXIp
CiB7CiAjaWYgRU5BQkxFKERJQUxPR19FTEVNRU5UKQogICAgIGlmIChpc0luVG9wTGF5ZXIoKSkK
QEAgLTUyMDcsOCArNTIzMyw5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNvbGxlY3RMYXllcnMoYm9v
bCBpbmNsdWRlSGlkZGVuTGF5ZXJzLCBPd25QdHI8VmVjdG9yPFJlbmRlckxhCiAKICAgICB1cGRh
dGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKTsKIAorICAgIGJvb2wgaXNTdGFja2luZyA9IGJl
aGF2aW9yID09IFN0b3BBdFN0YWNraW5nQ29udGV4dHMgPyBpc1N0YWNraW5nQ29udGV4dCgpIDog
aXNTdGFja2luZ0NvbnRhaW5lcigpOwogICAgIC8vIE92ZXJmbG93IGxheWVycyBhcmUganVzdCBw
YWludGVkIGJ5IHRoZWlyIGVuY2xvc2luZyBsYXllcnMsIHNvIHRoZXkgZG9uJ3QgZ2V0IHB1dCBp
biB6b3JkZXIgbGlzdHMuCi0gICAgYm9vbCBpbmNsdWRlSGlkZGVuTGF5ZXIgPSBpbmNsdWRlSGlk
ZGVuTGF5ZXJzIHx8IChtX2hhc1Zpc2libGVDb250ZW50IHx8IChtX2hhc1Zpc2libGVEZXNjZW5k
YW50ICYmIGlzU3RhY2tpbmdDb250ZXh0KCkpKTsKKyAgICBib29sIGluY2x1ZGVIaWRkZW5MYXll
ciA9IGluY2x1ZGVIaWRkZW5MYXllcnMgfHwgKG1faGFzVmlzaWJsZUNvbnRlbnQgfHwgKG1faGFz
VmlzaWJsZURlc2NlbmRhbnQgJiYgaXNTdGFja2luZykpOwogICAgIGlmIChpbmNsdWRlSGlkZGVu
TGF5ZXIgJiYgIWlzTm9ybWFsRmxvd09ubHkoKSAmJiAhcmVuZGVyZXIoKS0+aXNSZW5kZXJGbG93
VGhyZWFkKCkpIHsKICAgICAgICAgLy8gRGV0ZXJtaW5lIHdoaWNoIGJ1ZmZlciB0aGUgY2hpbGQg
c2hvdWxkIGJlIGluLgogICAgICAgICBPd25QdHI8VmVjdG9yPFJlbmRlckxheWVyKj4gPiYgYnVm
ZmVyID0gKHpJbmRleCgpID49IDApID8gcG9zQnVmZmVyIDogbmVnQnVmZmVyOwpAQCAtNTIyMiwx
MiArNTI0OSwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJzKGJvb2wgaW5jbHVk
ZUhpZGRlbkxheWVycywgT3duUHRyPFZlY3RvcjxSZW5kZXJMYQogICAgIH0KIAogICAgIC8vIFJl
Y3VyIGludG8gb3VyIGNoaWxkcmVuIHRvIGNvbGxlY3QgbW9yZSBsYXllcnMsIGJ1dCBvbmx5IGlm
IHdlIGRvbid0IGVzdGFibGlzaAotICAgIC8vIGEgc3RhY2tpbmcgY29udGV4dC4KLSAgICBpZiAo
KGluY2x1ZGVIaWRkZW5MYXllcnMgfHwgbV9oYXNWaXNpYmxlRGVzY2VuZGFudCkgJiYgIWlzU3Rh
Y2tpbmdDb250ZXh0KCkpIHsKKyAgICAvLyBhIHN0YWNraW5nIGNvbnRleHQvY29udGFpbmVyLgor
ICAgIGlmICgoaW5jbHVkZUhpZGRlbkxheWVycyB8fCBtX2hhc1Zpc2libGVEZXNjZW5kYW50KSAm
JiAhaXNTdGFja2luZykgewogICAgICAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAg
ICAgIC8vIElnbm9yZSByZWZsZWN0aW9ucy4KICAgICAgICAgICAgIGlmICghbV9yZWZsZWN0aW9u
IHx8IHJlZmxlY3Rpb25MYXllcigpICE9IGNoaWxkKQotICAgICAgICAgICAgICAgIGNoaWxkLT5j
b2xsZWN0TGF5ZXJzKGluY2x1ZGVIaWRkZW5MYXllcnMsIHBvc0J1ZmZlciwgbmVnQnVmZmVyKTsK
KyAgICAgICAgICAgICAgICBjaGlsZC0+Y29sbGVjdExheWVycyhpbmNsdWRlSGlkZGVuTGF5ZXJz
LCBiZWhhdmlvciwgcG9zQnVmZmVyLCBuZWdCdWZmZXIpOwogICAgICAgICB9CiAgICAgfQogfQpA
QCAtNTIzNSw3ICs1MjYyLDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y29sbGVjdExheWVycyhib29s
IGluY2x1ZGVIaWRkZW5MYXllcnMsIE93blB0cjxWZWN0b3I8UmVuZGVyTGEKIHZvaWQgUmVuZGVy
TGF5ZXI6OnVwZGF0ZUxheWVyTGlzdHNJZk5lZWRlZCgpCiB7CiAgICAgYm9vbCBzaG91bGRVcGRh
dGVEZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIgPSBpc1N0YWNraW5nQ29u
dGV4dCgpICYmIChtX3pPcmRlckxpc3RzRGlydHkgfHwgbV9ub3JtYWxGbG93TGlzdERpcnR5KTsK
LQogICAgIHVwZGF0ZVpPcmRlckxpc3RzKCk7CiAgICAgdXBkYXRlTm9ybWFsRmxvd0xpc3QoKTsK
IApAQCAtNTI0NCwxNSArNTI3MCwyMCBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllckxp
c3RzSWZOZWVkZWQoKQogICAgICAgICByZWZsZWN0aW9uTGF5ZXItPnVwZGF0ZU5vcm1hbEZsb3dM
aXN0KCk7CiAgICAgfQogCi0gICAgaWYgKHNob3VsZFVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGln
dW91c0luU3RhY2tpbmdPcmRlcikKKyAgICBpZiAoc2hvdWxkVXBkYXRlRGVzY2VuZGFudHNBcmVD
b250aWd1b3VzSW5TdGFja2luZ09yZGVyKSB7CiAgICAgICAgIHVwZGF0ZURlc2NlbmRhbnRzQXJl
Q29udGlndW91c0luU3RhY2tpbmdPcmRlcigpOworICAgICAgICAvLyBUaGUgYWJvdmUgZnVuY3Rp
b24gY2FuIGNhdXNlIHVzIHRvIHVwZGF0ZSBtX25lZWRzQ29tcG9zaXRlZFNjcm9sbGluZworICAg
ICAgICAvLyBhbmQgZGlydHkgb3VyIGxheWVyIGxpc3RzLiBSZWZyZXNoIHRoZW0gaWYgbmVjZXNz
YXJ5LgorICAgICAgICB1cGRhdGVaT3JkZXJMaXN0cygpOworICAgICAgICB1cGRhdGVOb3JtYWxG
bG93TGlzdCgpOworICAgIH0KIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRp
bmdBbmRMYXllckxpc3RzSWZOZWVkZWQoKQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBpZiAoY29tcG9zaXRvcigpLT5pbkNvbXBvc2l0aW5nTW9kZSgpKSB7Ci0gICAg
ICAgIGlmIChpc0RpcnR5U3RhY2tpbmdDb250ZXh0KCkgfHwgbV9ub3JtYWxGbG93TGlzdERpcnR5
KQorICAgICAgICBpZiAoaXNEaXJ0eVN0YWNraW5nQ29udGFpbmVyKCkgfHwgbV9ub3JtYWxGbG93
TGlzdERpcnR5KQogICAgICAgICAgICAgY29tcG9zaXRvcigpLT51cGRhdGVDb21wb3NpdGluZ0xh
eWVycyhDb21wb3NpdGluZ1VwZGF0ZU9uSGl0VGVzdCwgdGhpcyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC01MzczLDcgKzU0MDQsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVTdGFj
a2luZ0NvbnRleHRzQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBSZW5kZXJTdHlsZSogb2xkUwogICAg
IGJvb2wgd2FzU3RhY2tpbmdDb250ZXh0ID0gaXNTdGFja2luZ0NvbnRleHQob2xkU3R5bGUpOwog
ICAgIGJvb2wgaXNTdGFja2luZ0NvbnRleHQgPSB0aGlzLT5pc1N0YWNraW5nQ29udGV4dCgpOwog
ICAgIGlmIChpc1N0YWNraW5nQ29udGV4dCAhPSB3YXNTdGFja2luZ0NvbnRleHQpIHsKLSAgICAg
ICAgZGlydHlTdGFja2luZ0NvbnRleHRaT3JkZXJMaXN0cygpOworICAgICAgICBkaXJ0eVN0YWNr
aW5nQ29udGFpbmVyWk9yZGVyTGlzdHMoKTsKICAgICAgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0
KQogICAgICAgICAgICAgZGlydHlaT3JkZXJMaXN0cygpOwogICAgICAgICBlbHNlCkBAIC01Mzg0
LDcgKzU0MTUsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVTdGFja2luZ0NvbnRleHRzQWZ0
ZXJTdHlsZUNoYW5nZShjb25zdCBSZW5kZXJTdHlsZSogb2xkUwogICAgIC8vIEZJWE1FOiBSZW5k
ZXJMYXllciBhbHJlYWR5IGhhbmRsZXMgdmlzaWJpbGl0eSBjaGFuZ2VzIHRocm91Z2ggb3VyIHZp
c2libGl0eSBkaXJ0eSBiaXRzLiBUaGlzIGxvZ2ljIGNvdWxkCiAgICAgLy8gbGlrZWx5IGJlIGZv
bGRlZCBhbG9uZyB3aXRoIHRoZSByZXN0LgogICAgIGlmIChvbGRTdHlsZS0+ekluZGV4KCkgIT0g
cmVuZGVyZXIoKS0+c3R5bGUoKS0+ekluZGV4KCkgfHwgb2xkU3R5bGUtPnZpc2liaWxpdHkoKSAh
PSByZW5kZXJlcigpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkpIHsKLSAgICAgICAgZGlydHlTdGFj
a2luZ0NvbnRleHRaT3JkZXJMaXN0cygpOworICAgICAgICBkaXJ0eVN0YWNraW5nQ29udGFpbmVy
Wk9yZGVyTGlzdHMoKTsKICAgICAgICAgaWYgKGlzU3RhY2tpbmdDb250ZXh0KQogICAgICAgICAg
ICAgZGlydHlaT3JkZXJMaXN0cygpOwogICAgIH0KQEAgLTU0ODAsNyArNTUxMSw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZChTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0
eWxlKiBvbGRTdHlsZSkKICAgICAgICAgUmVuZGVyTGF5ZXIqIHAgPSBwYXJlbnQoKTsKICAgICAg
ICAgaWYgKHApCiAgICAgICAgICAgICBwLT5kaXJ0eU5vcm1hbEZsb3dMaXN0KCk7Ci0gICAgICAg
IGRpcnR5U3RhY2tpbmdDb250ZXh0Wk9yZGVyTGlzdHMoKTsKKyAgICAgICAgZGlydHlTdGFja2lu
Z0NvbnRhaW5lclpPcmRlckxpc3RzKCk7CiAgICAgfQogCiAgICAgaWYgKHJlbmRlcmVyKCktPnN0
eWxlKCktPm92ZXJmbG93WCgpID09IE9NQVJRVUVFICYmIHJlbmRlcmVyKCktPnN0eWxlKCktPm1h
cnF1ZWVCZWhhdmlvcigpICE9IE1OT05FICYmIHJlbmRlcmVyKCktPmlzQm94KCkpIHsKQEAgLTU1
MzQsNyArNTU2NSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZChTdHlsZURpZmZl
cmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKICAgICBlbHNlIGlmIChtX2JhY2tp
bmcpCiAgICAgICAgIG1fYmFja2luZy0+dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KCk7CiAg
ICAgZWxzZSBpZiAob2xkU3R5bGUgJiYgb2xkU3R5bGUtPm92ZXJmbG93WCgpICE9IHJlbmRlcmVy
KCktPnN0eWxlKCktPm92ZXJmbG93WCgpKSB7Ci0gICAgICAgIGlmIChzdGFja2luZ0NvbnRleHQo
KS0+aGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50KCkpCisgICAgICAgIGlmIChzdGFja2luZ0NvbnRh
aW5lcigpLT5oYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoKSkKICAgICAgICAgICAgIGNvbXBvc2l0
b3IoKS0+c2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOwogICAgIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCA4NmU3NDIxZjJlZmRmZjhl
NzU3NmJjM2RlOTI0ZTE5OTE1MmZhN2Y1Li4yM2U4NmE4MDk5YzBkMmI5ZmUwZjFhMTdlYjAzOTBh
MGRmNDBlNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDI3
LDE4ICs0MjcsMjMgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJCbG9ja1NlbGVjdGlvbkdhcHNC
b3VuZHMoKTsKICAgICB2b2lkIHJlcGFpbnRCbG9ja1NlbGVjdGlvbkdhcHMoKTsKIAotICAgIC8v
IEdldCB0aGUgZW5jbG9zaW5nIHN0YWNraW5nIGNvbnRleHQgZm9yIHRoaXMgbGF5ZXIuICBBIHN0
YWNraW5nIGNvbnRleHQgaXMgYSBsYXllcgotICAgIC8vIHRoYXQgaGFzIGEgbm9uLWF1dG8gei1p
bmRleC4KLSAgICBSZW5kZXJMYXllciogc3RhY2tpbmdDb250ZXh0KCkgY29uc3Q7CisgICAgLy8g
QSBzdGFja2luZyBjb250ZXh0IGlzIGEgbGF5ZXIgdGhhdCBoYXMgYSBub24tYXV0byB6LWluZGV4
LgogICAgIGJvb2wgaXNTdGFja2luZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBpc1N0YWNraW5n
Q29udGV4dChyZW5kZXJlcigpLT5zdHlsZSgpKTsgfQogCisgICAgLy8gQSBzdGFja2luZyBjb250
YWluZXIgY2FuIGhhdmUgei1vcmRlciBsaXN0cy4gQWxsIHN0YWNraW5nIGNvbnRleHRzIGFyZQor
ICAgIC8vIHN0YWNraW5nIGNvbnRhaW5lcnMsIGJ1dCB0aGUgY29udmVyc2UgaXMgbm90IHRydWUu
CisgICAgYm9vbCBpc1N0YWNraW5nQ29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4gaXNTdGFja2lu
Z0NvbnRleHQoKSB8fCBuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsgfQorCisgICAgLy8gR2V0
cyB0aGUgZW5jbG9zaW5nIHN0YWNraW5nIGNvbnRhaW5lciBmb3IgdGhpcyBsYXllci4KKyAgICBS
ZW5kZXJMYXllciogc3RhY2tpbmdDb250YWluZXIoKSBjb25zdDsKKwogICAgIHZvaWQgZGlydHla
T3JkZXJMaXN0cygpOwotICAgIHZvaWQgZGlydHlTdGFja2luZ0NvbnRleHRaT3JkZXJMaXN0cygp
OworICAgIHZvaWQgZGlydHlTdGFja2luZ0NvbnRhaW5lclpPcmRlckxpc3RzKCk7CiAKICAgICBW
ZWN0b3I8UmVuZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlzdCgpIGNvbnN0CiAgICAgewogICAgICAg
ICBBU1NFUlQoIW1fek9yZGVyTGlzdHNEaXJ0eSk7Ci0gICAgICAgIEFTU0VSVChpc1N0YWNraW5n
Q29udGV4dCgpIHx8ICFtX3Bvc1pPcmRlckxpc3QpOworICAgICAgICBBU1NFUlQoaXNTdGFja2lu
Z0NvbnRhaW5lcigpIHx8ICFtX3Bvc1pPcmRlckxpc3QpOwogICAgICAgICByZXR1cm4gbV9wb3Na
T3JkZXJMaXN0LmdldCgpOwogICAgIH0KIApAQCAtNDQ3LDcgKzQ1Miw3IEBAIHB1YmxpYzoKICAg
ICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbmVnWk9yZGVyTGlzdCgpIGNvbnN0CiAgICAgewogICAg
ICAgICBBU1NFUlQoIW1fek9yZGVyTGlzdHNEaXJ0eSk7Ci0gICAgICAgIEFTU0VSVChpc1N0YWNr
aW5nQ29udGV4dCgpIHx8ICFtX25lZ1pPcmRlckxpc3QpOworICAgICAgICBBU1NFUlQoaXNTdGFj
a2luZ0NvbnRhaW5lcigpIHx8ICFtX25lZ1pPcmRlckxpc3QpOwogICAgICAgICByZXR1cm4gbV9u
ZWdaT3JkZXJMaXN0LmdldCgpOwogICAgIH0KIApAQCAtNzUzLDE0ICs3NTgsMTggQEAgcHVibGlj
OgogI2VuZGlmCiAKIHByaXZhdGU6CisgICAgZW51bSBDb2xsZWN0TGF5ZXJzQmVoYXZpb3IgeyBT
dG9wQXRTdGFja2luZ0NvbnRleHRzLCBTdG9wQXRTdGFja2luZ0NvbnRhaW5lcnMgfTsKKwogICAg
IHZvaWQgdXBkYXRlWk9yZGVyTGlzdHMoKTsKICAgICB2b2lkIHJlYnVpbGRaT3JkZXJMaXN0cygp
OworICAgIHZvaWQgcmVidWlsZFpPcmRlckxpc3RzKENvbGxlY3RMYXllcnNCZWhhdmlvciwgT3du
UHRyPFZlY3RvcjxSZW5kZXJMYXllcio+ID4mLCBPd25QdHI8VmVjdG9yPFJlbmRlckxheWVyKj4g
PiYpOwogICAgIHZvaWQgY2xlYXJaT3JkZXJMaXN0cygpOwogCiAgICAgdm9pZCB1cGRhdGVOb3Jt
YWxGbG93TGlzdCgpOwogCiAgICAgYm9vbCBpc1N0YWNraW5nQ29udGV4dChjb25zdCBSZW5kZXJT
dHlsZSogc3R5bGUpIGNvbnN0IHsgcmV0dXJuICFzdHlsZS0+aGFzQXV0b1pJbmRleCgpIHx8IGlz
Um9vdExheWVyKCk7IH0KLSAgICBib29sIGlzRGlydHlTdGFja2luZ0NvbnRleHQoKSBjb25zdCB7
IHJldHVybiBtX3pPcmRlckxpc3RzRGlydHkgJiYgaXNTdGFja2luZ0NvbnRleHQoKTsgfQorCisg
ICAgYm9vbCBpc0RpcnR5U3RhY2tpbmdDb250YWluZXIoKSBjb25zdCB7IHJldHVybiBtX3pPcmRl
ckxpc3RzRGlydHkgJiYgaXNTdGFja2luZ0NvbnRhaW5lcigpOyB9CiAKICAgICB2b2lkIHNldEFu
Y2VzdG9yQ2hhaW5IYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQoKTsKICAgICB2b2lkIGRp
cnR5QW5jZXN0b3JDaGFpbkhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudFN0YXR1cygpOwpA
QCAtODI0LDcgKzgzMyw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCByZW5kZXJCb3hYKCkg
Y29uc3QgeyByZXR1cm4gcmVuZGVyQm94TG9jYXRpb24oKS54KCk7IH0KICAgICBMYXlvdXRVbml0
IHJlbmRlckJveFkoKSBjb25zdCB7IHJldHVybiByZW5kZXJCb3hMb2NhdGlvbigpLnkoKTsgfQog
Ci0gICAgdm9pZCBjb2xsZWN0TGF5ZXJzKGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycywgT3duUHRy
PFZlY3RvcjxSZW5kZXJMYXllcio+ID4mLCBPd25QdHI8VmVjdG9yPFJlbmRlckxheWVyKj4gPiYp
OworICAgIHZvaWQgY29sbGVjdExheWVycyhib29sIGluY2x1ZGVIaWRkZW5MYXllcnMsIENvbGxl
Y3RMYXllcnNCZWhhdmlvciwgT3duUHRyPFZlY3RvcjxSZW5kZXJMYXllcio+ID4mLCBPd25QdHI8
VmVjdG9yPFJlbmRlckxheWVyKj4gPiYpOwogCiAgICAgdm9pZCB1cGRhdGVDb21wb3NpdGluZ0Fu
ZExheWVyTGlzdHNJZk5lZWRlZCgpOwogCkBAIC05ODUsOCArOTk0LDggQEAgcHJpdmF0ZToKICAg
ICBib29sIG11c3RDb21wb3NpdGVGb3JJbmRpcmVjdFJlYXNvbnMoKSBjb25zdCB7IHJldHVybiBt
X2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb247IH0KICNlbmRpZgogCi0gICAgLy8gUmV0dXJucyB0
cnVlIGlmIHogb3JkZXJpbmcgd291bGQgbm90IGNoYW5nZSBpZiB0aGlzIGxheWVyIHdlcmUgdG8g
ZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dC4KLSAgICBib29sIGNhblNhZmVseUVzdGFibGlz
aEFTdGFja2luZ0NvbnRleHQoKSBjb25zdDsKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgeiBvcmRl
cmluZyB3b3VsZCBub3QgY2hhbmdlIGlmIHRoaXMgbGF5ZXIgd2VyZSBhIHN0YWNraW5nIGNvbnRh
aW5lci4KKyAgICBib29sIGNhbkJlU3RhY2tpbmdDb250YWluZXIoKSBjb25zdDsKIAogICAgIGZy
aWVuZCBjbGFzcyBSZW5kZXJMYXllckJhY2tpbmc7CiAgICAgZnJpZW5kIGNsYXNzIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjsKQEAgLTExNTMsNyArMTE2Miw3IEBAIHByaXZhdGU6CiAKIGlubGluZSB2
b2lkIFJlbmRlckxheWVyOjpjbGVhclpPcmRlckxpc3RzKCkKIHsKLSAgICBBU1NFUlQoIWlzU3Rh
Y2tpbmdDb250ZXh0KCkpOworICAgIEFTU0VSVCghaXNTdGFja2luZ0NvbnRhaW5lcigpKTsKIAog
ICAgIG1fcG9zWk9yZGVyTGlzdC5jbGVhcigpOwogICAgIG1fbmVnWk9yZGVyTGlzdC5jbGVhcigp
OwpAQCAtMTE2NCw3ICsxMTczLDcgQEAgaW5saW5lIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVpP
cmRlckxpc3RzKCkKICAgICBpZiAoIW1fek9yZGVyTGlzdHNEaXJ0eSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKCFpc1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAgaWYgKCFpc1N0YWNraW5n
Q29udGFpbmVyKCkpIHsKICAgICAgICAgY2xlYXJaT3JkZXJMaXN0cygpOwogICAgICAgICBtX3pP
cmRlckxpc3RzRGlydHkgPSBmYWxzZTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA2ZTVkZTQyMTI3ZmMy
NDlkODg5NmNlOWU3MzgxYzNkOWIwMTA2OWJiLi41NzZmODQzZmU3NDkxYTk2MjQ2N2NlMTRhZmZh
MTI5MmFjMjcyMTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcApAQCAtNTY1LDcgKzU2NSw3IEBAIHN0YXRpYyBJbnRSZWN0IGNsaXBCb3go
UmVuZGVyQm94KiByZW5kZXJlcikKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFw
aGljc0xheWVyR2VvbWV0cnkoKQogewogICAgIC8vIElmIHdlIGhhdmVuJ3QgYnVpbHQgei1vcmRl
ciBsaXN0cyB5ZXQsIHdhaXQgdW50aWwgbGF0ZXIuCi0gICAgaWYgKG1fb3duaW5nTGF5ZXItPmlz
U3RhY2tpbmdDb250ZXh0KCkgJiYgbV9vd25pbmdMYXllci0+bV96T3JkZXJMaXN0c0RpcnR5KQor
ICAgIGlmIChtX293bmluZ0xheWVyLT5pc1N0YWNraW5nQ29udGFpbmVyKCkgJiYgbV9vd25pbmdM
YXllci0+bV96T3JkZXJMaXN0c0RpcnR5KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBTZXQg
dHJhbnNmb3JtIHByb3BlcnR5LCBpZiBpdCBpcyBub3QgYW5pbWF0aW5nLiBXZSBoYXZlIHRvIGRv
IHRoaXMgaGVyZSBiZWNhdXNlIHRoZSB0cmFuc2Zvcm0KQEAgLTEyNjUsNyArMTI2NSw3IEBAIGZs
b2F0IFJlbmRlckxheWVyQmFja2luZzo6Y29tcG9zaXRpbmdPcGFjaXR5KGZsb2F0IHJlbmRlcmVy
T3BhY2l0eSkgY29uc3QKICAgICBmb3IgKFJlbmRlckxheWVyKiBjdXJyID0gbV9vd25pbmdMYXll
ci0+cGFyZW50KCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYXJlbnQoKSkgewogICAgICAgICAvLyBX
ZSBvbmx5IGNhcmUgYWJvdXQgcGFyZW50cyB0aGF0IGFyZSBzdGFja2luZyBjb250ZXh0cy4KICAg
ICAgICAgLy8gUmVjYWxsIHRoYXQgb3BhY2l0eSBjcmVhdGVzIHN0YWNraW5nIGNvbnRleHQuCi0g
ICAgICAgIGlmICghY3Vyci0+aXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAgaWYgKCFjdXJy
LT5pc1N0YWNraW5nQ29udGFpbmVyKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
CiAgICAgICAgIC8vIElmIHdlIGZvdW5kIGEgY29tcG9zaXRpbmcgbGF5ZXIsIHdlIHdhbnQgdG8g
Y29tcHV0ZSBvcGFjaXR5CkBAIC0xNDc1LDcgKzE0NzUsNyBAQCBib29sIFJlbmRlckxheWVyQmFj
a2luZzo6aGFzVmlzaWJsZU5vbkNvbXBvc2l0aW5nRGVzY2VuZGFudExheWVycygpIGNvbnN0CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAobV9vd25pbmdMYXllci0+aXNTdGFja2luZ0NvbnRl
eHQoKSkgeworICAgIGlmIChtX293bmluZ0xheWVyLT5pc1N0YWNraW5nQ29udGFpbmVyKCkpIHsK
ICAgICAgICAgaWYgKCFtX293bmluZ0xheWVyLT5oYXNWaXNpYmxlRGVzY2VuZGFudCgpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDMwOWMyMTIzYjQ0NmU0MDk4NzNiZGQ1
ZjhlNjE1Y2MxY2E4M2MxMTkuLjJmYmNlZTY3YzIxMzk5MjE2NTYxYjc4NjU1OTM4YjNlM2NlYmQ4
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCkBAIC00MzMsNiArNDMzLDkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZSB1cGRhdGUKIAog
ICAgICAgICBuZWVkR2VvbWV0cnlVcGRhdGUgPSB0cnVlOwogICAgICAgICBicmVhazsKKyAgICBj
YXNlIENvbXBvc2l0aW5nVXBkYXRlT25Db21wb3NpdGVkU2Nyb2xsOgorICAgICAgICBuZWVkR2Vv
bWV0cnlVcGRhdGUgPSB0cnVlOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBpZiAoIWNo
ZWNrRm9ySGllcmFyY2h5VXBkYXRlICYmICFuZWVkR2VvbWV0cnlVcGRhdGUpCkBAIC03MzMsNyAr
NzM2LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyV2lsbEJlUmVtb3ZlZChS
ZW5kZXJMYXllciogcGFyZW50LCBSZW5kZXJMYXllcioKIFJlbmRlckxheWVyKiBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmVuY2xvc2luZ05vblN0YWNraW5nQ2xpcHBpbmdMYXllcihjb25zdCBSZW5k
ZXJMYXllciogbGF5ZXIpIGNvbnN0CiB7CiAgICAgZm9yIChSZW5kZXJMYXllciogY3VyciA9IGxh
eWVyLT5wYXJlbnQoKTsgY3VyciAhPSAwOyBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsKLSAgICAg
ICAgaWYgKGN1cnItPmlzU3RhY2tpbmdDb250ZXh0KCkpCisgICAgICAgIGlmIChjdXJyLT5pc1N0
YWNraW5nQ29udGFpbmVyKCkpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICBpZiAo
Y3Vyci0+cmVuZGVyZXIoKS0+aGFzQ2xpcE9yT3ZlcmZsb3dDbGlwKCkpCkBAIC03ODAsNyArNzgz
LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFkZFRvT3ZlcmxhcE1hcFJlY3Vyc2l2
ZShPdmVybGFwTWFwJiBvdmVybGFwTWFwLCBSZW4KICAgICBMYXllckxpc3RNdXRhdGlvbkRldGVj
dG9yIG11dGF0aW9uQ2hlY2tlcihsYXllcik7CiAjZW5kaWYKIAotICAgIGlmIChsYXllci0+aXNT
dGFja2luZ0NvbnRleHQoKSkgeworICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRhaW5lcigp
KSB7CiAgICAgICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbmVnWk9yZGVyTGlzdCA9IGxh
eWVyLT5uZWdaT3JkZXJMaXN0KCkpIHsKICAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5l
Z1pPcmRlckxpc3QtPnNpemUoKTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bGlzdFNpemU7ICsraSkgewpAQCAtNzk4LDcgKzgwMSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjphZGRUb092ZXJsYXBNYXBSZWN1cnNpdmUoT3ZlcmxhcE1hcCYgb3ZlcmxhcE1hcCwg
UmVuCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0
KCkpIHsKKyAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250YWluZXIoKSkgewogICAgICAgICBp
ZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSBsYXllci0+cG9zWk9yZGVy
TGlzdCgpKSB7CiAgICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0LT5z
aXplKCk7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kp
IHsKQEAgLTg4Myw3ICs4ODYsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0
ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBhbmNlc3RvcgogCiAgICAgYm9v
bCBhbnlEZXNjZW5kYW50SGFzM0RUcmFuc2Zvcm0gPSBmYWxzZTsKIAotICAgIGlmIChsYXllci0+
aXNTdGFja2luZ0NvbnRleHQoKSkgeworICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRhaW5l
cigpKSB7CiAgICAgICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbmVnWk9yZGVyTGlzdCA9
IGxheWVyLT5uZWdaT3JkZXJMaXN0KCkpIHsKICAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9
IG5lZ1pPcmRlckxpc3QtPnNpemUoKTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbGlzdFNpemU7ICsraSkgewpAQCAtOTE1LDcgKzkxOCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFu
Y2VzdG9yCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250
ZXh0KCkpIHsKKyAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250YWluZXIoKSkgewogICAgICAg
ICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSBsYXllci0+cG9zWk9y
ZGVyTGlzdCgpKSB7CiAgICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0
LT5zaXplKCk7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyAr
K2kpIHsKQEAgLTEwOTYsNyArMTA5OSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpy
ZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTGF5ZXIqIGxheWVyLCBWZWN0CiAgICAg
TGF5ZXJMaXN0TXV0YXRpb25EZXRlY3RvciBtdXRhdGlvbkNoZWNrZXIobGF5ZXIpOwogI2VuZGlm
CiAKLSAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpIHsKKyAgICBpZiAobGF5ZXIt
PmlzU3RhY2tpbmdDb250YWluZXIoKSkgewogICAgICAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVy
Kj4qIG5lZ1pPcmRlckxpc3QgPSBsYXllci0+bmVnWk9yZGVyTGlzdCgpKSB7CiAgICAgICAgICAg
ICBzaXplX3QgbGlzdFNpemUgPSBuZWdaT3JkZXJMaXN0LT5zaXplKCk7CiAgICAgICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKQEAgLTExMTgsNyArMTEyMSw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRy
ZWUoUmVuZGVyTGF5ZXIqIGxheWVyLCBWZWN0CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAg
aWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAgaWYgKGxheWVyLT5pc1N0YWNr
aW5nQ29udGFpbmVyKCkpIHsKICAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBwb3Na
T3JkZXJMaXN0ID0gbGF5ZXItPnBvc1pPcmRlckxpc3QoKSkgewogICAgICAgICAgICAgc2l6ZV90
IGxpc3RTaXplID0gcG9zWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CkBAIC0xMzM0LDcgKzEzMzcsNyBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJUcmVlR2VvbWV0cnkoUmVuZGVyTGF5
ZXIqIGxheWVyLCBpbnQgZGVwdAogICAgIExheWVyTGlzdE11dGF0aW9uRGV0ZWN0b3IgbXV0YXRp
b25DaGVja2VyKGxheWVyKTsKICNlbmRpZgogCi0gICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29u
dGV4dCgpKSB7CisgICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGFpbmVyKCkpIHsKICAgICAg
ICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0gbGF5ZXItPm5lZ1pP
cmRlckxpc3QoKSkgewogICAgICAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gbmVnWk9yZGVyTGlz
dC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsg
KytpKQpAQCAtMTM0OCw3ICsxMzUxLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUxheWVyVHJlZUdlb21ldHJ5KFJlbmRlckxheWVyKiBsYXllciwgaW50IGRlcHQKICAgICAg
ICAgICAgIHVwZGF0ZUxheWVyVHJlZUdlb21ldHJ5KG5vcm1hbEZsb3dMaXN0LT5hdChpKSwgZGVw
dGggKyAxKTsKICAgICB9CiAgICAgCi0gICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgp
KSB7CisgICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGFpbmVyKCkpIHsKICAgICAgICAgaWYg
KFZlY3RvcjxSZW5kZXJMYXllcio+KiBwb3NaT3JkZXJMaXN0ID0gbGF5ZXItPnBvc1pPcmRlckxp
c3QoKSkgewogICAgICAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gcG9zWk9yZGVyTGlzdC0+c2l6
ZSgpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKQpA
QCAtMTM4NSw3ICsxMzg4LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNv
bXBvc2l0aW5nRGVzY2VuZGFudEdlb21ldHJ5KFJlbmRlckxheWVyKiBjb20KICAgICBMYXllckxp
c3RNdXRhdGlvbkRldGVjdG9yIG11dGF0aW9uQ2hlY2tlcihsYXllcik7CiAjZW5kaWYKICAgICAK
LSAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpIHsKKyAgICBpZiAobGF5ZXItPmlz
U3RhY2tpbmdDb250YWluZXIoKSkgewogICAgICAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4q
IG5lZ1pPcmRlckxpc3QgPSBsYXllci0+bmVnWk9yZGVyTGlzdCgpKSB7CiAgICAgICAgICAgICBz
aXplX3QgbGlzdFNpemUgPSBuZWdaT3JkZXJMaXN0LT5zaXplKCk7CiAgICAgICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpCkBAIC0xMzk5LDcgKzE0MDIsNyBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdEZXNjZW5kYW50R2Vv
bWV0cnkoUmVuZGVyTGF5ZXIqIGNvbQogICAgICAgICAgICAgdXBkYXRlQ29tcG9zaXRpbmdEZXNj
ZW5kYW50R2VvbWV0cnkoY29tcG9zaXRpbmdBbmNlc3Rvciwgbm9ybWFsRmxvd0xpc3QtPmF0KGkp
LCBjb21wb3NpdGVkQ2hpbGRyZW5Pbmx5KTsKICAgICB9CiAgICAgCi0gICAgaWYgKGxheWVyLT5p
c1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGFpbmVy
KCkpIHsKICAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBwb3NaT3JkZXJMaXN0ID0g
bGF5ZXItPnBvc1pPcmRlckxpc3QoKSkgewogICAgICAgICAgICAgc2l6ZV90IGxpc3RTaXplID0g
cG9zWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBsaXN0U2l6ZTsgKytpKQpAQCAtMjAzMyw3ICsyMDM2LDcgQEAgYm9vbCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbihSZW5kZXJPYmplY3QqIHJl
bmRlcmUKICAgICAKICAgICBFUG9zaXRpb24gcG9zaXRpb24gPSByZW5kZXJlci0+c3R5bGUoKS0+
cG9zaXRpb24oKTsKICAgICBib29sIGlzRml4ZWQgPSByZW5kZXJlci0+aXNPdXRPZkZsb3dQb3Np
dGlvbmVkKCkgJiYgcG9zaXRpb24gPT0gRml4ZWRQb3NpdGlvbjsKLSAgICBpZiAoaXNGaXhlZCAm
JiAhbGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpCisgICAgaWYgKGlzRml4ZWQgJiYgIWxheWVy
LT5pc1N0YWNraW5nQ29udGFpbmVyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAg
ICBib29sIGlzU3RpY2t5ID0gcmVuZGVyZXItPmlzSW5GbG93UG9zaXRpb25lZCgpICYmIHBvc2l0
aW9uID09IFN0aWNreVBvc2l0aW9uOwpAQCAtMjY0Miw3ICsyNjQ1LDcgQEAgYm9vbCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmxheWVySGFzM0RDb250ZW50KGNvbnN0IFJlbmRlckxheWVyKiBsYXll
cikgY29uc3QKICAgICBMYXllckxpc3RNdXRhdGlvbkRldGVjdG9yIG11dGF0aW9uQ2hlY2tlcihj
b25zdF9jYXN0PFJlbmRlckxheWVyKj4obGF5ZXIpKTsKICNlbmRpZgogCi0gICAgaWYgKGxheWVy
LT5pc1N0YWNraW5nQ29udGV4dCgpKSB7CisgICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGFp
bmVyKCkpIHsKICAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0
ID0gbGF5ZXItPm5lZ1pPcmRlckxpc3QoKSkgewogICAgICAgICAgICAgc2l6ZV90IGxpc3RTaXpl
ID0gbmVnWk9yZGVyTGlzdC0+c2l6ZSgpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBsaXN0U2l6ZTsgKytpKSB7CkBAIC0yNjkyLDggKzI2OTUsOCBAQCBzdGF0aWMgYm9vbCBp
c1Jvb3Rtb3N0Rml4ZWRPclN0aWNreUxheWVyKFJlbmRlckxheWVyKiBsYXllcikKICAgICBpZiAo
bGF5ZXItPnJlbmRlcmVyKCktPnN0eWxlKCktPnBvc2l0aW9uKCkgIT0gRml4ZWRQb3NpdGlvbikK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZm9yIChSZW5kZXJMYXllciogc3RhY2tpbmdD
b250ZXh0ID0gbGF5ZXItPnN0YWNraW5nQ29udGV4dCgpOyBzdGFja2luZ0NvbnRleHQ7IHN0YWNr
aW5nQ29udGV4dCA9IHN0YWNraW5nQ29udGV4dC0+c3RhY2tpbmdDb250ZXh0KCkpIHsKLSAgICAg
ICAgaWYgKHN0YWNraW5nQ29udGV4dC0+aXNDb21wb3NpdGVkKCkgJiYgc3RhY2tpbmdDb250ZXh0
LT5yZW5kZXJlcigpLT5zdHlsZSgpLT5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24pCisgICAg
Zm9yIChSZW5kZXJMYXllciogc3RhY2tpbmdDb250YWluZXIgPSBsYXllci0+c3RhY2tpbmdDb250
YWluZXIoKTsgc3RhY2tpbmdDb250YWluZXI7IHN0YWNraW5nQ29udGFpbmVyID0gc3RhY2tpbmdD
b250YWluZXItPnN0YWNraW5nQ29udGFpbmVyKCkpIHsKKyAgICAgICAgaWYgKHN0YWNraW5nQ29u
dGFpbmVyLT5pc0NvbXBvc2l0ZWQoKSAmJiBzdGFja2luZ0NvbnRhaW5lci0+cmVuZGVyZXIoKS0+
c3R5bGUoKS0+cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oCmluZGV4IGU5YmIwMWE0OTI5MmRjNjcxMTY2ODVkYzg1YTkyZjkxZjcy
OGRiZjkuLjY3ZDU1MzEwNDNlYTc3NjdlMDViNzM3ZDQxNjkxZDI4ZDMzMTUxM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTUx
LDcgKzUxLDggQEAgZW51bSBDb21wb3NpdGluZ1VwZGF0ZVR5cGUgewogICAgIENvbXBvc2l0aW5n
VXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSwKICAgICBDb21wb3NpdGluZ1VwZGF0ZUFmdGVyTGF5b3V0
LAogICAgIENvbXBvc2l0aW5nVXBkYXRlT25IaXRUZXN0LAotICAgIENvbXBvc2l0aW5nVXBkYXRl
T25TY3JvbGwKKyAgICBDb21wb3NpdGluZ1VwZGF0ZU9uU2Nyb2xsLAorICAgIENvbXBvc2l0aW5n
VXBkYXRlT25Db21wb3NpdGVkU2Nyb2xsCiB9OwogCiAvLyBSZW5kZXJMYXllckNvbXBvc2l0b3Ig
bWFuYWdlcyB0aGUgaGllcmFyY2h5IG9mCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhv
c3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAppbmRleCA3OTdhZWUzNTJiMGViMDgz
MjRmNThjYTliM2ZkMjJmYmY1Y2FmOTZhLi4xNzY1NDQyZjg3YThjMzRlYWIxZGYxZjhkNzI3ZmFh
NzUyYmUwNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTQ4MCw3ICs0ODAsNyBAQCBzdGF0aWMgdm9pZCB1
cGRhdGVPZmZzZXRGcm9tVmlld3BvcnRGb3JTZWxmKFJlbmRlckxheWVyKiByZW5kZXJMYXllcikK
ICAgICBpZiAoIXJlbmRlckxheWVyLT5yZW5kZXJlcigpLT5jb250YWluZXIoKS0+aXNSZW5kZXJW
aWV3KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghcmVuZGVyTGF5ZXItPmlzU3RhY2tp
bmdDb250ZXh0KCkpCisgICAgaWYgKCFyZW5kZXJMYXllci0+aXNTdGFja2luZ0NvbnRhaW5lcigp
KQogICAgICAgICByZXR1cm47CiAKICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGdyYXBo
aWNzTGF5ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihiYWNraW5nLT5ncmFwaGljc0xh
eWVyKCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGNmZTg0MGE5MmQ0MjgyY2JlYjJkYjZmNjM2MzlmZTU0Njk1YzdkNDcu
LjI0YmFlMmY0YzZhYTM2OTNhYzVkYjY1ZTcwOTRlMTdhOTU3NjgyMzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMSBAQAorMjAxMy0wMS0yMiAgR2xlbm4gSGFydG1hbm4gIDxoYXJ0bWFubmdAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIERvbid0IG92ZXJsYXAgdGVzdCBmb3IgY29tcG9zaXRlZCBzY3JvbGwg
RElWcyBhZnRlciBzY3JvbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNzQ3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdlIGRvbid0IG5lZWQgdG8gdGVzdCBmb3Igb3ZlcmxhcCBhZnRlciBzY3JvbGwg
d2hlbiBib3RoCisgICAgICAgIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nIGFuZCAhaGFzT3V0T2ZG
bG93UG9zaXRpb25lZERlc2NlbmRhbnQKKyAgICAgICAgYmVjYXVzZToKKworICAgICAgICBhKSBT
aW5jZSB3ZSdyZSB1c2luZyBjb21wb3NpdGVkLXNjcm9sbGluZywgdGhlIGNvbXBvc2l0ZWQgZWdp
b24KKyAgICAgICAgcHJlc2VudGVkIGJ5IHRoZSBjb21wb3NpdGVkLXNjcm9sbGluZyBlbGVtZW50
IHRvIG90aGVyIG9uLWRlc2NlbmRhbnQKKyAgICAgICAgbGF5ZXJzIGRvZXNuJ3QgY2hhbmdlIGR1
cmluZyBjb21wb3NpdGVkIHNjcm9sbGluZyAoaXQncyBsd2F5cyB0aGUKKyAgICAgICAgZW50aXJl
IHNjcm9sbCBsYXllciksIGFuZAorCisgICAgICAgIGIpIFNpbmNlIHdlIGhhdmUgbm8gb3V0IG9m
IGZsb3cgcG9zaXRpb25lZCBkZXNjZW5kYW50cywgdGhlIGNyb2xsaW5nCisgICAgICAgIGRlc2Nl
bmRhbnRzIGFsbCBtb3ZlIHRvZ2V0aGVyLCBzbyB0aGVpciBvdmVybGFwIHdpdGggcmVzcGVjdCBv
IGVhY2gKKyAgICAgICAgb3RoZXIgY2Fubm90IGNoYW5nZS4KKworICAgICAgICBTbyBubyBkZXNj
ZW5kYW50cyBub3IgYW55IG5vbi1kZXNjZW5kYW50cyBjYW4gaGF2ZSB0aGVpciB2ZXJsYXAKKyAg
ICAgICAgYWZmZWN0ZWQsIHNvIGl0J3Mgc2FmZSB0byBza2lwIHRlc3RpbmcuCisKKyAgICAgICAg
KiBjb21wb3NpdGluZy9vdmVyZmxvdy9jb21wb3NpdGVkLXNjcm9sbGluZy1jcmVhdGVzLWEtc3Rh
Y2tpbmctY29udGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5n
L292ZXJmbG93L2NvbXBvc2l0ZWQtc2Nyb2xsaW5nLWNyZWF0ZXMtYS1zdGFja2luZy1jb250ZXh0
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbXBvc2l0
ZWQtc2Nyb2xsaW5nLWNyZWF0ZXMtYS1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisKIDIwMTMtMDEtMjEgIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogbW9kaWZ5IGdlbmVyYXRlX3Byb3RvY29sX2V4dGVy
bnMucHkgdG8gZ2VuZXJhdGUgSlNPTiB0eXBlZGVmJ3MgZm9yIEBjb25zdHJ1Y3RvcnMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbXBvc2l0ZWQtc2Nyb2xs
aW5nLWNyZWF0ZXMtYS1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL292ZXJmbG93L2NvbXBvc2l0ZWQtc2Nyb2xsaW5nLWNyZWF0ZXMtYS1zdGFj
a2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTgzOGU4NGIxODBlOTEwNzBm
N2MyNmQwMDZjYTU1N2ZhYjMyNWE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvb3ZlcmZsb3cvY29tcG9zaXRlZC1zY3JvbGxpbmctY3JlYXRlcy1hLXN0YWNraW5n
LWNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTQgQEAKKyhHcmFwaGljc0xheWVyCisg
IChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAuMDApCisgICAg
ICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgICAoY2hpbGRyZW4gNAorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
ICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAu
MDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChH
cmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAzMDAuMDApCisg
ICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAgICAgICAoY2hp
bGRyZW4gMgorICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAg
ICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAgICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAx
NTAuMDApCisgICAgICAgICAgICAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAg
ICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAg
ICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgICAgICAocG9zaXRpb24gMS4wMCAxODYuMDApCisgICAgICAgICAgICAgIChib3Vu
ZHMgMTg1LjAwIDE1LjAwKQorICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAg
ICAgICApCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRp
b24gMTg2LjAwIDEuMDApCisgICAgICAgICAgICAgIChib3VuZHMgMTUuMDAgMTg1LjAwKQorICAg
ICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICApCisgICAgICAgICAgICAo
R3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAocG9zaXRpb24gMTg2LjAwIDE4Ni4wMCkKKyAg
ICAgICAgICAgICAgKGJvdW5kcyAxNS4wMCAxNS4wMCkKKyAgICAgICAgICAgICAgKGRyYXdzQ29u
dGVudCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQor
ICAgICkKKyAgKQorKQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL292
ZXJmbG93L2NvbXBvc2l0ZWQtc2Nyb2xsaW5nLWNyZWF0ZXMtYS1zdGFja2luZy1jb250ZXh0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9jb21wb3NpdGVkLXNjcm9sbGlu
Zy1jcmVhdGVzLWEtc3RhY2tpbmctY29udGV4dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3ZjhlYjlmZWNm
NTgzNjBkMDA3OTQ4N2Q0NWUyMWIzMjA2NmQyMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9jb21wb3NpdGVkLXNjcm9sbGluZy1jcmVhdGVzLWEt
c3RhY2tpbmctY29udGV4dC5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzwhRE9DVFlQRSBodG1sIFBV
QkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAiaHR0cDov
L3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PXV0Zi04Ii8+CisgIDx0aXRsZT5Db21wb3NpdGVkIHNjcm9sbGluZyBjcmVhdGVz
IGEgc3RhY2tpbmcgY29udGV4dC48L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1l
ZGlhPSJzY3JlZW4iPgorICAgIC5jb250YWluZXIgeworICAgICAgd2lkdGg6IDIwMHB4OworICAg
ICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICBtYXJnaW46
IDIwcHg7CisgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9CisKKyAgICAuY29t
cG9zaXRlZCB7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDE1MHB4OworICAg
ICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CisgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbjsKKyAgICB9CisKKyAgICAubm90LWNvbXBvc2l0ZWQgeworICAgICAgd2lkdGg6
IDIwMHB4OworICAgICAgaGVpZ2h0OiAxNTBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJs
dWU7CisgICAgfQorCisgICAgLmluLWZsb3ctcG9zaXRpb25lZCB7CisgICAgICBwb3NpdGlvbjog
cmVsYXRpdmU7CisgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICB9CisKKyAgICAuZml4ZWQgewor
ICAgICAgei1pbmRleDogLTE7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICB3aWR0
aDogMjAwcHg7CisgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjog
cmVkOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
d2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3Zl
cmZsb3dTY3JvbGxFbmFibGVkKHRydWUpOworCisgICAgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICB7
CisgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKworICAgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgdmFyIGxheWVyVHJlZSA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJU
cmVlQXNUZXh0KGRvY3VtZW50KTsKKyAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb25zb2xlJyk7CisgICAgICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUobGF5ZXJUcmVlICsgJ1xuJyk7CisgICAgICAgIHByZS5hcHBlbmRDaGlsZCh0ZXh0KTsK
KyAgICAgIH0KKyAgICB9CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRv
VGVzdCwgZmFsc2UpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9ImluLWZsb3ctcG9zaXRpb25lZCI+CisgICAg
ICA8ZGl2IGNsYXNzPSJmaXhlZCI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29tcG9zaXRlZCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibm90LWNvbXBvc2l0ZWQiPjwvZGl2
PgorICA8L2Rpdj4KKyAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDA1MjhlNzkxZjI2NGExOTc4ZDc4MDQxNzU5NjM1OTRiM2Q3NDkyMGYuLmQyYWJiNGMwYzYx
YWEwZmU3NGMwNzJjMTY2ZDMxZjM3YTQ0ZDk1ZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzYyNyw2ICszNjI3LDkgQEAgd2Via2l0
Lm9yZy9iLzkyOTY4IGh0dHAvdGVzdHMvYXBwY2FjaGUvYWJvcnQtY2FjaGUtb25wcm9ncmVzcy5o
dG1sCiAjIFNjcm9sbGluZyBjb250ZW50IGRyYXdzIGJlbmVhdGggc2Nyb2xsYmFycyBpbiBjb21w
b3NpdGVkIHNjcm9sbGluZyBtb2RlLgogd2Via2l0Lm9yZy9iLzEwMzE1NiBwbGF0Zm9ybS9jaHJv
bWl1bS92aXJ0dWFsL2dwdS9jb21wb3NpdGVkc2Nyb2xsaW5nL3Njcm9sbGJhcnMvY3VzdG9tLXNj
cm9sbGJhci13aXRoLWluY29tcGxldGUtc3R5bGUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQog
CisjIFJlcXVpcmVzIGFuIHVwZGF0ZWQgYmFzZWxpbmUgYWZ0ZXIgMTA2MTQyLgord2Via2l0Lm9y
Zy9iLzEwNjgyMCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9jb21wb3NpdGVkc2Nyb2xs
aW5nL292ZXJmbG93L292ZXJmbG93LXNjcm9sbC5odG1sIFsgRmFpbHVyZSBdCisKICMgRmFpbHMg
ZHVlIHRvIEJ1ZyA4NTg1Ni4KIHdlYmtpdC5vcmcvYi84NTg1NiBbIFdpbiBNYWMgQW5kcm9pZCBd
IGZhc3QvYmxvY2svZmxvYXQvMDI4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi84NTg1NiBbIFdpbiBNYWMgQW5kcm9pZCBdIGZhc3QvYmxvY2svZmxvYXQvMDI2Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9jb21wb3NpdGluZy9vdmVyZmxvdy9jb21wb3NpdGVkLXNjcm9sbGluZy1jcmVhdGVzLWEtc3Rh
Y2tpbmctY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29t
cG9zaXRpbmcvb3ZlcmZsb3cvY29tcG9zaXRlZC1zY3JvbGxpbmctY3JlYXRlcy1hLXN0YWNraW5n
LWNvbnRleHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0YTJmOWI5YmFkNGI0YmNmN2MzYjQ1
M2Y1OGZiYjQ1YjhmNjJmMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvY29tcG9zaXRpbmcvb3ZlcmZsb3cvY29tcG9zaXRlZC1zY3JvbGxpbmctY3JlYXRlcy1h
LXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKKyhHcmFwaGlj
c0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxkcmVu
IDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjAu
MDApCisgICAgICAgICAgKGJvdW5kcyAyMDIuMDAgMjAyLjAwKQorICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDEuMDAgMS4wMCkKKyAgICAgICAgICAgICAgKGJv
dW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAz
MDAuMDApCisgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAg
ICAgICAoY2hpbGRyZW4gMgorICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgICAgICAgICAgICAgIChib3VuZHMgMjAyLjAwIDIwMi4wMCkKKyAgICAgICAgICAgICAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgICAgICAoYm91bmRz
IDIwMC4wMCAxNTAuMDApCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAg
ICkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185246</attachid>
            <date>2013-01-29 07:34:43 -0800</date>
            <delta_ts>2013-01-29 08:47:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107471-20130129103129.patch</filename>
            <type>text/plain</type>
            <size>4303</size>
            <attacher name="Glenn Hartmann">hartmanng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGMyOTI4MTg1OTZhMzhl
OTFiNWU1MGFlNjViOWE5NjFhZTIxNTQzNy4uN2YzNjkxYTIxNjhjYzdiNTE5OTU1MTUxOGE2NTdj
MmQ0YjZiNjY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAxLTI5ICBHbGVu
biBIYXJ0bWFubiAgPGhhcnRtYW5uZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3Qgb3Zl
cmxhcCB0ZXN0IGZvciBjb21wb3NpdGVkIHNjcm9sbCBESVZzIGFmdGVyIHNjcm9sbAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NDcxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgZG9uJ3QgbmVlZCB0
byB0ZXN0IGZvciBvdmVybGFwIGFmdGVyIHNjcm9sbCB3aGVuIGJvdGgKKyAgICAgICAgdXNlc0Nv
bXBvc2l0ZWRTY3JvbGxpbmcgYW5kICFoYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudAor
ICAgICAgICBiZWNhdXNlOgorCisgICAgICAgIGEpIFNpbmNlIHdlJ3JlIHVzaW5nIGNvbXBvc2l0
ZWQtc2Nyb2xsaW5nLCB0aGUgY29tcG9zaXRlZCByZWdpb24KKyAgICAgICAgcHJlc2VudGVkIGJ5
IHRoZSBjb21wb3NpdGVkLXNjcm9sbGluZyBlbGVtZW50IHRvIG90aGVyIG9uLWRlc2NlbmRhbnQK
KyAgICAgICAgbGF5ZXJzIGRvZXNuJ3QgY2hhbmdlIGR1cmluZyBjb21wb3NpdGVkIHNjcm9sbGlu
ZyAoaXQncyBhbHdheXMgdGhlCisgICAgICAgIGVudGlyZSBzY3JvbGwgbGF5ZXIpLCBhbmQKKwor
ICAgICAgICBiKSBTaW5jZSB3ZSBoYXZlIG5vIG91dCBvZiBmbG93IHBvc2l0aW9uZWQgZGVzY2Vu
ZGFudHMsIHRoZSBzY3JvbGxpbmcKKyAgICAgICAgZGVzY2VuZGFudHMgYWxsIG1vdmUgdG9nZXRo
ZXIsIHNvIHRoZWlyIG92ZXJsYXAgd2l0aCByZXNwZWN0IHRvIGVhY2gKKyAgICAgICAgb3RoZXIg
Y2Fubm90IGNoYW5nZS4KKworICAgICAgICBTbyBubyBkZXNjZW5kYW50cyBub3IgYW55IG5vbi1k
ZXNjZW5kYW50cyBjYW4gaGF2ZSB0aGVpciBvdmVybGFwCisgICAgICAgIGFmZmVjdGVkLCBzbyBp
dCdzIHNhZmUgdG8gc2tpcCB0ZXN0aW5nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAobm8gY2hh
bmdlIGluIGJlaGF2aW91cikuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJz
QWZ0ZXJTY3JvbGwpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21w
b3NpdGluZ0xheWVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5oOgorCiAyMDEzLTAxLTI5ICBWbGFkaXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdyb25nIGluZGVudCBpbiBTdHls
ZXMgc2lkZWJhciBwYW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApp
bmRleCA0NWVlMzViMzkzM2Q4MTYxMjdlNWY5NjQ2YWIxMDY2NWY3ZTU0OTUxLi40YTQ5ODM3MGFk
MWZiZWQ5MjFlNTYwMmIwYmEzMzJjZjY2NjUwZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKQEAgLTIyNDQsOSArMjI0NCwxMiBAQCB2b2lkIFJlbmRlckxheWVy
Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xsKCkKICAgICAgICAgLy8gT3VyIHN0
YWNraW5nIGNvbnRhaW5lciBpcyBndWFyYW50ZWVkIHRvIGNvbnRhaW4gYWxsIG9mIG91ciBkZXNj
ZW5kYW50cyB0aGF0IG1heSBuZWVkCiAgICAgICAgIC8vIHJlcG9zaXRpb25pbmcsIHNvIHVwZGF0
ZSBjb21wb3NpdGluZyBsYXllcnMgZnJvbSB0aGVyZS4KICAgICAgICAgaWYgKFJlbmRlckxheWVy
KiBjb21wb3NpdGluZ0FuY2VzdG9yID0gc3RhY2tpbmdDb250YWluZXIoKS0+ZW5jbG9zaW5nQ29t
cG9zaXRpbmdMYXllcigpKSB7Ci0gICAgICAgICAgICBpZiAoY29tcG9zaXRvcigpLT5jb21wb3Np
dGluZ0NvbnN1bHRzT3ZlcmxhcCgpKQotICAgICAgICAgICAgICAgIGNvbXBvc2l0b3IoKS0+dXBk
YXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVPblNjcm9sbCwgY29tcG9zaXRp
bmdBbmNlc3Rvcik7Ci0gICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBpZiAoY29tcG9zaXRv
cigpLT5jb21wb3NpdGluZ0NvbnN1bHRzT3ZlcmxhcCgpKSB7CisgICAgICAgICAgICAgICAgaWYg
KHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgJiYgIWhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNj
ZW5kYW50KCkpCisgICAgICAgICAgICAgICAgICAgIGNvbXBvc2l0b3IoKS0+dXBkYXRlQ29tcG9z
aXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVPbkNvbXBvc2l0ZWRTY3JvbGwsIGNvbXBvc2l0
aW5nQW5jZXN0b3IpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
Y29tcG9zaXRvcigpLT51cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZU9u
U2Nyb2xsLCBjb21wb3NpdGluZ0FuY2VzdG9yKTsKKyAgICAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgICAgIGNvbXBvc2l0aW5nQW5jZXN0b3ItPmJhY2tpbmcoKS0+dXBkYXRlQWZ0ZXJMYXlv
dXQoUmVuZGVyTGF5ZXJCYWNraW5nOjpJc1VwZGF0ZVJvb3QpOwogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAppbmRleCAzYmM5ZjU5NDY2MmE5ODNmNzQ5ZDNmYmIwODQ5NmJkYWQzM2ZhNDIyLi41NjI2M2M1
ZWQ2M2MwZTdkYWYyN2Q2OGIyYmY1ZDEyYWZhOTFkZDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNDMzLDYgKzQzMyw5
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhD
b21wb3NpdGluZ1VwZGF0ZVR5cGUgdXBkYXRlCiAKICAgICAgICAgbmVlZEdlb21ldHJ5VXBkYXRl
ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGluZ1VwZGF0ZU9uQ29t
cG9zaXRlZFNjcm9sbDoKKyAgICAgICAgbmVlZEdlb21ldHJ5VXBkYXRlID0gdHJ1ZTsKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgaWYgKCFjaGVja0ZvckhpZXJhcmNoeVVwZGF0ZSAmJiAh
bmVlZEdlb21ldHJ5VXBkYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oCmluZGV4IGU5YmIwMWE0OTI5MmRjNjcxMTY2ODVkYzg1YTkyZjkx
ZjcyOGRiZjkuLjY3ZDU1MzEwNDNlYTc3NjdlMDViNzM3ZDQxNjkxZDI4ZDMzMTUxM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAg
LTUxLDcgKzUxLDggQEAgZW51bSBDb21wb3NpdGluZ1VwZGF0ZVR5cGUgewogICAgIENvbXBvc2l0
aW5nVXBkYXRlQWZ0ZXJTdHlsZUNoYW5nZSwKICAgICBDb21wb3NpdGluZ1VwZGF0ZUFmdGVyTGF5
b3V0LAogICAgIENvbXBvc2l0aW5nVXBkYXRlT25IaXRUZXN0LAotICAgIENvbXBvc2l0aW5nVXBk
YXRlT25TY3JvbGwKKyAgICBDb21wb3NpdGluZ1VwZGF0ZU9uU2Nyb2xsLAorICAgIENvbXBvc2l0
aW5nVXBkYXRlT25Db21wb3NpdGVkU2Nyb2xsCiB9OwogCiAvLyBSZW5kZXJMYXllckNvbXBvc2l0
b3IgbWFuYWdlcyB0aGUgaGllcmFyY2h5IG9mCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185252</attachid>
            <date>2013-01-29 08:47:05 -0800</date>
            <delta_ts>2013-01-29 09:05:52 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-107471-20130129114351.patch</filename>
            <type>text/plain</type>
            <size>4302</size>
            <attacher name="Glenn Hartmann">hartmanng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGMyOTI4MTg1OTZhMzhl
OTFiNWU1MGFlNjViOWE5NjFhZTIxNTQzNy4uMGRlNzg0Zjc4ZTEyYWUxMzU4Y2RmNGQ1MjY1ZmJh
ODI0ZDk2ZTU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAxLTI5ICBHbGVu
biBIYXJ0bWFubiAgPGhhcnRtYW5uZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3Qgb3Zl
cmxhcCB0ZXN0IGZvciBjb21wb3NpdGVkIHNjcm9sbCBESVZzIGFmdGVyIHNjcm9sbAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NDcxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFdlIGRvbid0IG5lZWQgdG8g
dGVzdCBmb3Igb3ZlcmxhcCBhZnRlciBzY3JvbGwgd2hlbiBib3RoCisgICAgICAgIHVzZXNDb21w
b3NpdGVkU2Nyb2xsaW5nIGFuZCAhaGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQKKyAg
ICAgICAgYmVjYXVzZToKKworICAgICAgICBhKSBTaW5jZSB3ZSdyZSB1c2luZyBjb21wb3NpdGVk
LXNjcm9sbGluZywgdGhlIGNvbXBvc2l0ZWQgcmVnaW9uCisgICAgICAgIHByZXNlbnRlZCBieSB0
aGUgY29tcG9zaXRlZC1zY3JvbGxpbmcgZWxlbWVudCB0byBvdGhlciBub24tZGVzY2VuZGFudAor
ICAgICAgICBsYXllcnMgZG9lc24ndCBjaGFuZ2UgZHVyaW5nIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
IChpdCdzIGFsd2F5cyB0aGUKKyAgICAgICAgZW50aXJlIHNjcm9sbCBsYXllciksIGFuZAorCisg
ICAgICAgIGIpIFNpbmNlIHdlIGhhdmUgbm8gb3V0IG9mIGZsb3cgcG9zaXRpb25lZCBkZXNjZW5k
YW50cywgdGhlIHNjcm9sbGluZworICAgICAgICBkZXNjZW5kYW50cyBhbGwgbW92ZSB0b2dldGhl
ciwgc28gdGhlaXIgb3ZlcmxhcCB3aXRoIHJlc3BlY3QgdG8gZWFjaAorICAgICAgICBvdGhlciBj
YW5ub3QgY2hhbmdlLgorCisgICAgICAgIFNvIG5vIGRlc2NlbmRhbnRzIG5vciBhbnkgbm9uLWRl
c2NlbmRhbnRzIGNhbiBoYXZlIHRoZWlyIG92ZXJsYXAKKyAgICAgICAgYWZmZWN0ZWQsIHNvIGl0
J3Mgc2FmZSB0byBza2lwIHRlc3RpbmcuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChubyBjaGFu
Z2UgaW4gYmVoYXZpb3VyKS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNB
ZnRlclNjcm9sbCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBv
c2l0aW5nTGF5ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Lmg6CisKIDIwMTMtMDEtMjkgIFZsYWRpc2xhdiBLYXpuYWNoZWV2ICA8a2F6bmFjaGVldkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogV3JvbmcgaW5kZW50IGluIFN0eWxl
cyBzaWRlYmFyIHBhbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmlu
ZGV4IDQ1ZWUzNWIzOTMzZDgxNjEyN2U1Zjk2NDZhYjEwNjY1ZjdlNTQ5NTEuLjRhNDk4MzcwYWQx
ZmJlZDkyMWU1NjAyYjBiYTMzMmNmNjY2NTBkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcApAQCAtMjI0NCw5ICsyMjQ0LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6
OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGwoKQogICAgICAgICAvLyBPdXIgc3Rh
Y2tpbmcgY29udGFpbmVyIGlzIGd1YXJhbnRlZWQgdG8gY29udGFpbiBhbGwgb2Ygb3VyIGRlc2Nl
bmRhbnRzIHRoYXQgbWF5IG5lZWQKICAgICAgICAgLy8gcmVwb3NpdGlvbmluZywgc28gdXBkYXRl
IGNvbXBvc2l0aW5nIGxheWVycyBmcm9tIHRoZXJlLgogICAgICAgICBpZiAoUmVuZGVyTGF5ZXIq
IGNvbXBvc2l0aW5nQW5jZXN0b3IgPSBzdGFja2luZ0NvbnRhaW5lcigpLT5lbmNsb3NpbmdDb21w
b3NpdGluZ0xheWVyKCkpIHsKLSAgICAgICAgICAgIGlmIChjb21wb3NpdG9yKCktPmNvbXBvc2l0
aW5nQ29uc3VsdHNPdmVybGFwKCkpCi0gICAgICAgICAgICAgICAgY29tcG9zaXRvcigpLT51cGRh
dGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZU9uU2Nyb2xsLCBjb21wb3NpdGlu
Z0FuY2VzdG9yKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlmIChjb21wb3NpdG9y
KCktPmNvbXBvc2l0aW5nQ29uc3VsdHNPdmVybGFwKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAo
dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSAmJiAhaGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2Nl
bmRhbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgY29tcG9zaXRvcigpLT51cGRhdGVDb21wb3Np
dGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZU9uQ29tcG9zaXRlZFNjcm9sbCwgY29tcG9zaXRp
bmdBbmNlc3Rvcik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBj
b21wb3NpdG9yKCktPnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlT25T
Y3JvbGwsIGNvbXBvc2l0aW5nQW5jZXN0b3IpOworICAgICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICAgICAgY29tcG9zaXRpbmdBbmNlc3Rvci0+YmFja2luZygpLT51cGRhdGVBZnRlckxheW91
dChSZW5kZXJMYXllckJhY2tpbmc6OklzVXBkYXRlUm9vdCk7CiAgICAgICAgIH0KICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
CmluZGV4IDNiYzlmNTk0NjYyYTk4M2Y3NDlkM2ZiYjA4NDk2YmRhZDMzZmE0MjIuLjU2MjYzYzVl
ZDYzYzBlN2RhZjI3ZDY4YjJiZjVkMTJhZmE5MWRkMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC00MzMsNiArNDMzLDkg
QEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENv
bXBvc2l0aW5nVXBkYXRlVHlwZSB1cGRhdGUKIAogICAgICAgICBuZWVkR2VvbWV0cnlVcGRhdGUg
PSB0cnVlOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0aW5nVXBkYXRlT25Db21w
b3NpdGVkU2Nyb2xsOgorICAgICAgICBuZWVkR2VvbWV0cnlVcGRhdGUgPSB0cnVlOworICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBpZiAoIWNoZWNrRm9ySGllcmFyY2h5VXBkYXRlICYmICFu
ZWVkR2VvbWV0cnlVcGRhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggZTliYjAxYTQ5MjkyZGM2NzExNjY4NWRjODVhOTJmOTFm
NzI4ZGJmOS4uNjdkNTUzMTA0M2VhNzc2N2UwNWI3MzdkNDE2OTFkMjhkMzMxNTEzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAt
NTEsNyArNTEsOCBAQCBlbnVtIENvbXBvc2l0aW5nVXBkYXRlVHlwZSB7CiAgICAgQ29tcG9zaXRp
bmdVcGRhdGVBZnRlclN0eWxlQ2hhbmdlLAogICAgIENvbXBvc2l0aW5nVXBkYXRlQWZ0ZXJMYXlv
dXQsCiAgICAgQ29tcG9zaXRpbmdVcGRhdGVPbkhpdFRlc3QsCi0gICAgQ29tcG9zaXRpbmdVcGRh
dGVPblNjcm9sbAorICAgIENvbXBvc2l0aW5nVXBkYXRlT25TY3JvbGwsCisgICAgQ29tcG9zaXRp
bmdVcGRhdGVPbkNvbXBvc2l0ZWRTY3JvbGwKIH07CiAKIC8vIFJlbmRlckxheWVyQ29tcG9zaXRv
ciBtYW5hZ2VzIHRoZSBoaWVyYXJjaHkgb2YK
</data>

          </attachment>
      

    </bug>

</bugzilla>