<?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>29984</bug_id>
          
          <creation_ts>2009-10-01 14:57:32 -0700</creation_ts>
          <short_desc>If visibility changes while an accelerated animation is running, element jumps around</short_desc>
          <delta_ts>2015-03-17 10:33:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>71164</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>jamesr</cc>
    
    <cc>j.isorce</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>wavded</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>151704</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-10-01 14:57:32 -0700</bug_when>
    <thetext>The attached testcase changes &apos;visibility&apos; in the middle of an accelerated animation; this causes the element to jump around incorrectly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151705</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-10-01 14:57:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/7269294&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151706</commentid>
    <comment_count>2</comment_count>
      <attachid>40479</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-10-01 15:00:16 -0700</bug_when>
    <thetext>Created attachment 40479
Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152946</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-10-06 21:57:52 -0700</bug_when>
    <thetext>The issue here is that we&apos;re setting animations on GraphicsLayer that are not in the tree, because the RenderLayer z-order list logic does not include layers with visiblility:hidden. And because the layers are not in the tree, we get no started callback, so this breaks all subsequent animation (see bug 26770).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154212</commentid>
    <comment_count>4</comment_count>
      <attachid>41070</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-10-12 17:30:02 -0700</bug_when>
    <thetext>Created attachment 41070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154930</commentid>
    <comment_count>5</comment_count>
      <attachid>41249</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-10-15 16:00:54 -0700</bug_when>
    <thetext>Created attachment 41249
WIP patch

Stashing work in progress here. There are still a number of issues with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435301</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-11 16:42:17 -0700</bug_when>
    <thetext>*** Bug 64166 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491974</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-27 14:45:13 -0700</bug_when>
    <thetext>Some visibility issues fixed by the patch in bug 38829.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492750</commentid>
    <comment_count>8</comment_count>
      <attachid>112934</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-28 16:03:48 -0700</bug_when>
    <thetext>Created attachment 112934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492762</commentid>
    <comment_count>9</comment_count>
      <attachid>112934</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-10-28 16:14:26 -0700</bug_when>
    <thetext>Comment on attachment 112934
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492769</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-28 16:18:49 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/98776</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492828</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-28 17:33:41 -0700</bug_when>
    <thetext>This caused lots of assertions, rolling out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495031</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-11-02 16:32:52 -0700</bug_when>
    <thetext>This patch has a problem. RenderLayerCompositor::computeCompositingRequirements() calls updateBacking() which can enter compositing mode. This happens in the middle of walking layers via the z-order tree, but invalidates the z-order trees. Oops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495064</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-11-02 16:56:41 -0700</bug_when>
    <thetext>For iframes and video we may make them compositing during computeCompositingRequirements(), not just as a result of RenderLayer::styleChanged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495920</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-03 17:30:26 -0700</bug_when>
    <thetext>Was it rolled out? I don&apos;t see a rollout revision on the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495926</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-11-03 17:32:49 -0700</bug_when>
    <thetext>It was, not sure why sheriffbot didn&apos;t note that here. Rollout was bug 71164.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>40479</attachid>
            <date>2009-10-01 15:00:16 -0700</date>
            <delta_ts>2009-10-01 15:00:16 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>visibility-hardware.html</filename>
            <type>text/html</type>
            <size>1370</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIKICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cgo8aHRtbCBs
YW5nPSJlbiI+CjxoZWFkPgogIDx0aXRsZT5WaXNpYmlsaXR5IGFuaW1hdGlvbjwvdGl0bGU+CiAg
PHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KICAgIC5jb250YWluZXIgewog
ICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICB3aWR0aDogNjAwcHg7CiAgICAgIG1hcmdpbjogMjBw
eDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CiAgICB9CiAgICAKICAgIC5ib3ggewog
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgaGVpZ2h0
OiAxMDBweDsKICAgIH0KICAgIAogICAgLmluY29taW5nIHsKICAgICAgYmFja2dyb3VuZC1jb2xv
cjogYmx1ZTsKICAgICAgLXdlYmtpdC1hbmltYXRpb246IG1vdmUgMnMgbGluZWFyLCBpbmNvbWlu
Zy12aXNpYmlsaXR5IDJzIGxpbmVhcjsKICAgIH0KCiAgICAub3V0Z29pbmcgewogICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7CiAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBtb3ZlIDJzIGxpbmVh
ciwgb3V0Z29pbmctdmlzaWJpbGl0eSAycyBsaW5lYXI7CiAgICB9CiAgICAKICAgIEAtd2Via2l0
LWtleWZyYW1lcyBtb3ZlCiAgICB7CiAgICAJMCUJeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNs
YXRlKDAsIDApIHJvdGF0ZSgwKTsgfQogICAgCTEwMCV7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFu
c2xhdGUoNTAwcHgsIDApIHJvdGF0ZSgyMGRlZyk7IH0KICAgIH0KCiAgICBALXdlYmtpdC1rZXlm
cmFtZXMgb3V0Z29pbmctdmlzaWJpbGl0eQogICAgewogICAgCTAlCXsgdmlzaWJpbGl0eTogdmlz
aWJsZTsgfQogICAgCTUwJQl7IHZpc2liaWxpdHk6IHZpc2libGU7IH0KICAgIAk1MSUgeyB2aXNp
YmlsaXR5OiBoaWRkZW47IH0KICAgIAkxMDAleyB2aXNpYmlsaXR5OiBoaWRkZW47IH0KICAgIH0K
CiAgICBALXdlYmtpdC1rZXlmcmFtZXMgaW5jb21pbmctdmlzaWJpbGl0eQogICAgewogICAgCTAl
CXsgdmlzaWJpbGl0eTogaGlkZGVuOyB9CiAgICAJNTAlCXsgdmlzaWJpbGl0eTogaGlkZGVuOyB9
CiAgICAJNTElIHsgdmlzaWJpbGl0eTogdmlzaWJsZTsgfQogICAgCTEwMCV7IHZpc2liaWxpdHk6
IHZpc2libGU7IH0KICAgIH0KICAgIAogIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+Cgo8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgogIDxkaXYgY2xhc3M9ImluY29taW5nIGJveCI+CiAgPC9kaXY+CiAg
PGRpdiBjbGFzcz0ib3V0Z29pbmcgYm94Ij4KICA8L2Rpdj4KPC9kaXY+CjwvYm9keT4KPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41070</attachid>
            <date>2009-10-12 17:30:02 -0700</date>
            <delta_ts>2009-10-14 10:55:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>29984_patch.txt</filename>
            <type>text/plain</type>
            <size>21427</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNDI2MWRiLi5mNmUwZDgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMTAt
MTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdmlzaWJpbGl0eSBjaGFuZ2Vz
IHdoaWxlIGFuIGFjY2VsZXJhdGVkIGFuaW1hdGlvbiBpcyBydW5uaW5nLCBlbGVtZW50IGp1bXBz
IGFyb3VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjk5ODQKKyAgICAgICAgCisgICAgICAgIFRlc3RjYXNlIHRoYXQgdG9nZ2xlcyB2aXNpYmlsdHkg
ZHVyaW5nIGEgdHJhbnNmb3JtIGFuaW1hdGlvbi4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL3Zp
c2liaWxpdHktYW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9j
b21wb3NpdGluZy92aXNpYmlsaXR5LWFuaW1hdGlvbi1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL3Zpc2liaWxpdHktYW5pbWF0aW9u
LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5n
L3Zpc2liaWxpdHktYW5pbWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMDktMTAtMTIg
IEFuZHJhcyBCZWNzaSAgPGJlY3NpLmFuZHJhc0BzdHVkLnUtc3plZ2VkLmh1PgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFRvciBBcm5lIFZlc3Riw7guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy92aXNpYmlsaXR5LWFuaW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvdmlzaWJpbGl0eS1hbmltYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5hMWY0NjkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvdmlzaWJpbGl0eS1hbmltYXRpb24uaHRtbApAQCAtMCwwICsxLDEzNSBAQAorPCFET0NU
WVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIK
KyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5n
PSJlbiI+Cis8aGVhZD4KKyAgPHRpdGxlPlZpc2liaWxpdHkgYW5pbWF0aW9uPC90aXRsZT4KKyAg
PHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAjY29udGFpbmVyIHsK
KyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICB3
aWR0aDogNjAwcHg7CisgICAgICBtYXJnaW46IDIwcHg7CisgICAgICBib3JkZXI6IDFweCBzb2xp
ZCBibGFjazsKKyAgICB9CisgICAgCisgICAgLmJveCB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgICB0b3A6IDA7CisgICAgICB3aWR0aDogODBweDsKKyAgICAgIGhlaWdodDogODBw
eDsKKyAgICB9CisgICAgCisgICAgLmluY29taW5nMSwgLmluY29taW5nMiB7CisgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBibHVlOworICAgIH0KKyAgICAKKyAgICAuaW5jb21pbmcxIHsKKyAgICAg
IHRvcDogMTAwcHg7CisgICAgfQorCisgICAgLmluY29taW5nMiB7CisgICAgICB0b3A6IDIwMHB4
OworICAgIH0KKworICAgIC5vdXRnb2luZyB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
CisgICAgfQorICAgIAorICAgICNjb250YWluZXIgPiAuYm94IHsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLWR1cmF0aW9uOiAwLjVzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1
bmN0aW9uOiBsaW5lYXI7CisgICAgfQorCisgICAgI2NvbnRhaW5lci5hbmltYXRpbmcgLmluY29t
aW5nMSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBtb3ZlLCBpbmNvbWluZzEtdmlz
aWJpbGl0eTsKKyAgICB9CisKKyAgICAjY29udGFpbmVyLmFuaW1hdGluZyAuaW5jb21pbmcyIHsK
KyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG1vdmUsIGluY29taW5nMi12aXNpYmlsaXR5
OworICAgIH0KKworICAgICNjb250YWluZXIuYW5pbWF0aW5nIC5vdXRnb2luZyB7CisgICAgICAt
d2Via2l0LWFuaW1hdGlvbi1uYW1lOiBtb3ZlLCBvdXRnb2luZy12aXNpYmlsaXR5OworICAgIH0K
KyAgICAKKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgbW92ZQorICAgIHsKKyAgICAgIDAlICB7IC13
ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgcm90YXRlKDApOyB9CisgICAgICAxMDAl
eyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MDBweCkgcm90YXRlKDIwZGVnKTsgfQor
ICAgIH0KKworICAgIEAtd2Via2l0LWtleWZyYW1lcyBvdXRnb2luZy12aXNpYmlsaXR5CisgICAg
eworICAgICAgMCUgIHsgdmlzaWJpbGl0eTogdmlzaWJsZTsgfQorICAgICAgNDUlIHsgdmlzaWJp
bGl0eTogdmlzaWJsZTsgfQorICAgICAgNDYlIHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9CisgICAg
ICAxMDAleyB2aXNpYmlsaXR5OiBoaWRkZW47IH0KKyAgICB9CisKKyAgICBALXdlYmtpdC1rZXlm
cmFtZXMgaW5jb21pbmcxLXZpc2liaWxpdHkKKyAgICB7CisgICAgICAwJSAgeyB2aXNpYmlsaXR5
OiBoaWRkZW47IH0KKyAgICAgIDQ1JSB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfQorICAgICAgNDYl
IHsgdmlzaWJpbGl0eTogdmlzaWJsZTsgfQorICAgICAgMTAwJXsgdmlzaWJpbGl0eTogdmlzaWJs
ZTsgfQorICAgIH0KKworICAgIEAtd2Via2l0LWtleWZyYW1lcyBpbmNvbWluZzItdmlzaWJpbGl0
eQorICAgIHsKKyAgICAgIDAlICB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfQorICAgICAgNTUlIHsg
dmlzaWJpbGl0eTogaGlkZGVuOyB9CisgICAgICA1NiUgeyB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9
CisgICAgICAxMDAleyB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9CisgICAgfQorICA8L3N0eWxlPgor
ICAKKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgdmFyIGhhc1BhdXNlQW5pbWF0aW9u
QVBJID0gKCdsYXlvdXRUZXN0Q29udHJvbGxlcicgaW4gd2luZG93KSAmJiAoJ3BhdXNlQW5pbWF0
aW9uQXRUaW1lT25FbGVtZW50V2l0aElkJyBpbiBsYXlvdXRUZXN0Q29udHJvbGxlcik7CisKKyAg
ICAgIGZ1bmN0aW9uIHN0YXJ0QW5pbWF0aW9ucygpCisgICAgICB7CisgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmNsYXNzTmFtZSA9ICdhbmltYXRpbmcnOwor
ICAgICAgICAgIAorICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgaWYgKGhhc1BhdXNlQW5pbWF0aW9uQVBJKSB7CisgICAgICAgICAgICAgIC8vIFN0
b3AgYWxsIHRoZSBhbmltYXRpb25zIHNvIHRoYXQgdGhlIHNuYXBzaG90IGlzIGNvbnNpc3RlbnQK
KyAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucGF1c2VBbmltYXRpb25BdFRpbWVP
bkVsZW1lbnRXaXRoSWQoJ21vdmUnLCAwLjI1LCAnaW5jb21pbmcnKTsKKyAgICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIucGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQo
J2luY29taW5nMS12aXNpYmlsaXR5JywgMC4yNSwgJ2luY29taW5nJyk7CisKKyAgICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRo
SWQoJ21vdmUnLCAwLjI1LCAnaW5jb21pbmcyJyk7CisgICAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKCdpbmNvbWluZzIt
dmlzaWJpbGl0eScsIDAuMjUsICdpbmNvbWluZzInKTsKKworICAgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgnbW92ZScs
IDAuMjUsICdvdXRnb2luZycpOworICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5w
YXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgnb3V0Z29pbmctdmlzaWJpbGl0eScs
IDAuMjUsICdvdXRnb2luZycpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICB9LCAxMDApOworICAg
ICAgfQorICAgICAgCisgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHN0YXJ0
QW5pbWF0aW9ucywgZmFsc2UpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8cD5U
aGUgc25hcHNob3Qgc2hvdWxkIHNob3cgb25lIGJsdWUgYm94IGluIHRoZSBtaWRkbGUuPC9wPgor
PGRpdiBpZD0iY29udGFpbmVyIj4KKyAgPGRpdiBpZD0ib3V0Z29pbmciIGNsYXNzPSJvdXRnb2lu
ZyBib3giPgorICAgIG91dGdvaW5nCisgIDwvZGl2PgorICA8ZGl2IGlkPSJpbmNvbWluZyIgY2xh
c3M9ImluY29taW5nMSBib3giPgorICAgIGluY29taW5nCisgIDwvZGl2PgorICA8ZGl2IGlkPSJp
bmNvbWluZzIiIGNsYXNzPSJpbmNvbWluZzIgYm94Ij4KKyAgICBpbmNvbWluZworICA8L2Rpdj4K
KzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvY29tcG9zaXRpbmcvdmlzaWJpbGl0eS1hbmltYXRpb24tZXhwZWN0ZWQuY2hlY2tz
dW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvdmlzaWJpbGl0eS1hbmlt
YXRpb24tZXhwZWN0ZWQuY2hlY2tzdW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNDc3NTU1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9j
b21wb3NpdGluZy92aXNpYmlsaXR5LWFuaW1hdGlvbi1leHBlY3RlZC5jaGVja3N1bQpAQCAtMCww
ICsxIEBACitjNzdlODUyMjFiNjYyMzQ3ZDRjMzRmYWU1ODRlNmFjMwpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3Np
dGluZy92aXNpYmlsaXR5LWFuaW1hdGlvbi1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvY29tcG9zaXRpbmcvdmlzaWJpbGl0eS1hbmltYXRpb24tZXhwZWN0ZWQucG5nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmMDliMWUKQmluYXJ5IGZpbGVzIC9k
ZXYvbnVsbCBhbmQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvdmlzaWJp
bGl0eS1hbmltYXRpb24tZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL3Zpc2liaWxpdHktYW5pbWF0aW9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy92aXNpYmlsaXR5LWFu
aW1hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NGVjZDY5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21w
b3NpdGluZy92aXNpYmlsaXR5LWFuaW1hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBA
QAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgzNzYKKyAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgODAweDM3NgorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2
KSBzaXplIDc4NHgzNDAKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgx
OAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNDR4MTgKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNDQ6ICJUaGUgc25hcHNob3Qgc2hvdWxkIHNo
b3cgb25lIGJsdWUgYm94IGluIHRoZSBtaWRkbGUuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMzYwKSBzaXplIDc4NHgwCitsYXllciBhdCAoMjgsNTQpIHNpemUgNjAyeDMwMgorICBS
ZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDIwLDM4KSBzaXplIDYw
MngzMDIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgyOSw1NSkgc2l6
ZSA4MHg4MAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDEsMSkgc2l6ZSA4
MHg4MCBbYmdjb2xvcj0jRkYwMDAwXQorICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDU2eDE4CisgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1NjogIm91dGdvaW5nIgor
bGF5ZXIgYXQgKDI5LDE1NSkgc2l6ZSA4MHg4MAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkg
e0RJVn0gYXQgKDEsMTAxKSBzaXplIDgweDgwIFtiZ2NvbG9yPSMwMDAwRkZdCisgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTl4MTgKKyAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDU5OiAiaW5jb21pbmciCitsYXllciBhdCAoMjksMjU1KSBzaXplIDgweDgwCisgIFJl
bmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMSwyMDEpIHNpemUgODB4ODAgW2JnY29s
b3I9IzAwMDBGRl0KKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1OXgxOAor
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTk6ICJpbmNvbWluZyIKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmExMDE2OC4uNTU4
MDMxYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0NCBAQAorMjAwOS0xMC0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJZiB2aXNpYmlsaXR5IGNoYW5nZXMgd2hpbGUgYW4gYWNjZWxlcmF0ZWQgYW5pbWF0
aW9uIGlzIHJ1bm5pbmcsIGVsZW1lbnQganVtcHMgYXJvdW5kCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTk4NAorICAgICAgICAKKyAgICAgICAgUmVu
ZGVyTGF5ZXIgaGFzIGFuIG9wdGltaXphdGlvbiB3aGVyZSBsYXllcnMgd2l0aCBub24tdmlzaWJs
ZSBjb250ZW50IG9yIGNoaWxkcmVuCisgICAgICAgIGFyZSBleGNsdWRlZCBmcm9tIHRoZSB6LW9y
ZGVyIGxpc3RzLiBUaGlzIHJlc3VsdHMgaW4gdW5wYXJlbnRlZCBjb21wb3NpdGluZyBsYXllcnMs
CisgICAgICAgIHdoaWNoIGZhaWwgdG8gc3RhcnQgYW5pbWF0aW9ucyBjb3JyZWN0bHkgKGluIHRo
ZSBjYXNlIHdoZXJlIHRoZXkgYXJlIG1hZGUgdmlzaWJsZSBwYXJ0d2F5CisgICAgICAgIHRocm91
Z2ggdGhlIGFuaW1hdGlvbikuIFNvIHdlIHR1cm4gb2ZmIHRoZSBSZW5kZXJMYXllciB2aXNpYmls
aXR5IG9wdGltaXphdGlvbiB3aGVuIHdlCisgICAgICAgIGhhdmUgY29tcG9zaXRpbmcgbGF5ZXJz
LgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL3Zpc2liaWxpdHktYW5pbWF0aW9uLmh0bWwK
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6Omhhc1Zpc2libGVEZXNjZW5kYW50KTogZXhwb3NlIHRoZSBmbGFnLgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6ZGlydHlaT3JkZXJMaXN0c0luY2x1ZGluZ0Rlc2NlbmRhbnRzKTogcmVjdXJzaXZl
bHkgc2V0IHRoZSBiaXQKKyAgICAgICAgdG8gbm90ZSB0aGF0IHotb3JkZXIgbGlzdHMgYXJlIGRp
cnR5LCBzbyB0aGF0IHdlIGNhbiByZWJ1aWxkIHRoZW0gYWxsIHdpdGggdGhlIG5ldworICAgICAg
ICBzZXR0aW5ncyBmb3Igd2hldGhlciB0byBpZ25vcmUgaGlkZGVuIGxheWVycy4KKyAgICAgICAg
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlWk9yZGVyTGlzdHMpOiBhc2sg
dGhlIGNvbXBvc2l0b3Igd2hldGhlciB3ZSBzaG91bGQgaW5jbHVkZQorICAgICAgICBub24tdmlz
aWJsZSBsYXllcnMuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6bGF5ZXJPckRlc2NlbmRh
bnRWaXNpYmxlKTogbmV3IGlubGluZSBoZWxwZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6Y29sbGVjdExheWVycyk6IHVzZSBsYXllck9yRGVzY2VuZGFudFZpc2libGUoKSB0byBj
bGFyaWZ5IGxvZ2ljLCB3aGlsZQorICAgICAgICBjb25zdWx0aW5nIGluY2x1ZGVOb25WaXNpYmxl
TGF5ZXJzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OlJlbmRlckxheWVyQ29t
cG9zaXRvcik6IEluaXRpYWxpemUgbV96T3JkZXJMaXN0c0luY2x1ZGVBbGxMYXllcnMuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5
ZXJzKTogaWYgY29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKCkgcmV0dXJucworICAgICAg
ICB3aXRoIG11c3RSZWNvbXB1dGVMYXllckxpc3RzIHNldCB0byB0cnVlLCB3ZSBoYXZlIHRvIGRv
IGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cygpIGEgc2Vjb25kIHRpbWUKKyAgICAgICAg
YWZ0ZXIgZGlydHlpbmcgYWxsIG9mIHRoZSB6LW9yZGVyIGxpc3RzLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMp
OgorICAgICAgICBEZXRlY3Qgd2hlbiBhIGxheWVyIG5lZWRzIHRvIGNvbXBvc2l0ZSB3aGljaCBp
cyBhZmZlY3RlZCBieSB0aGUgUmVuZGVyTGF5ZXIgdmlzaWJpbGl0eSBvcHRpbWl6YXRpb24sCisg
ICAgICAgIGFuZCBpbiB0aGF0IGNhc2UgcmV0dXJuIGVhcmx5IGFuZCBkbyBhIHNlY29uZCBwYXNz
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6ek9yZGVyTGlzdHNJbmNsdWRlQWxsTGF5
ZXJzKTogRmxhZyB0aGF0IHN0b3JlcyB3aGV0aGVyIHRoZSBjdXJyZW50CisgICAgICAgIHotb3Jk
ZXIgbGlzdHMgaGF2ZSBiZWVuIGJ1aWx0IHdpdGggdGhlIHZpc2liaWxpdHkgb3B0aW1pemF0aW9u
IGluIHBsYWNlLgorCiAyMDA5LTEwLTEyICBDYW1lcm9uIE1jQ29ybWFjayAgPGNhbUBtY2MuaWQu
YXU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKaW5kZXggOTM1NmM3MC4uMzFjNjFkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcApAQCAtMzA3Niw2ICszMDc2LDE0IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5U3RhY2tp
bmdDb250ZXh0Wk9yZGVyTGlzdHMoKQogICAgICAgICBzYy0+ZGlydHlaT3JkZXJMaXN0cygpOwog
fQogCit2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxpc3RzSW5jbHVkaW5nRGVzY2VuZGFu
dHMoKQoreworICAgIGRpcnR5Wk9yZGVyTGlzdHMoKTsKKworICAgIGZvciAoUmVuZGVyTGF5ZXIq
IGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmco
KSkKKyAgICAgICAgY2hpbGQtPmRpcnR5Wk9yZGVyTGlzdHNJbmNsdWRpbmdEZXNjZW5kYW50cygp
OworfQorCiB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KCkKIHsKICAgICBp
ZiAobV9ub3JtYWxGbG93TGlzdCkKQEAgLTMwOTMsOSArMzEwMSwxNiBAQCB2b2lkIFJlbmRlckxh
eWVyOjp1cGRhdGVaT3JkZXJMaXN0cygpCiAgICAgaWYgKCFpc1N0YWNraW5nQ29udGV4dCgpIHx8
ICFtX3pPcmRlckxpc3RzRGlydHkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGJvb2wgaW5jbHVk
ZU5vblZpc2libGVMYXllcnMgPQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAg
ICAgICAgY29tcG9zaXRvcigpLT56T3JkZXJMaXN0c0luY2x1ZGVBbGxMYXllcnMoKTsKKyNlbHNl
CisgICAgICAgIGZhbHNlOworI2VuZGlmCisKICAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9
IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAg
ICAgIGlmICghbV9yZWZsZWN0aW9uIHx8IHJlZmxlY3Rpb25MYXllcigpICE9IGNoaWxkKQotICAg
ICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMobV9wb3NaT3JkZXJMaXN0LCBtX25lZ1pPcmRl
ckxpc3QpOworICAgICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMobV9wb3NaT3JkZXJMaXN0
LCBtX25lZ1pPcmRlckxpc3QsIGluY2x1ZGVOb25WaXNpYmxlTGF5ZXJzKTsKIAogICAgIC8vIFNv
cnQgdGhlIHR3byBsaXN0cy4KICAgICBpZiAobV9wb3NaT3JkZXJMaXN0KQpAQCAtMzEyNCwxMiAr
MzEzOSwxNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVOb3JtYWxGbG93TGlzdCgpCiAgICAg
bV9ub3JtYWxGbG93TGlzdERpcnR5ID0gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OmNv
bGxlY3RMYXllcnMoVmVjdG9yPFJlbmRlckxheWVyKj4qJiBwb3NCdWZmZXIsIFZlY3RvcjxSZW5k
ZXJMYXllcio+KiYgbmVnQnVmZmVyKQorc3RhdGljIGlubGluZSBib29sIGxheWVyT3JEZXNjZW5k
YW50VmlzaWJsZShSZW5kZXJMYXllciogbGF5ZXIpCit7CisgICAgcmV0dXJuIGxheWVyLT5oYXNW
aXNpYmxlQ29udGVudCgpIHx8IChsYXllci0+aGFzVmlzaWJsZURlc2NlbmRhbnQoKSAmJiBsYXll
ci0+aXNTdGFja2luZ0NvbnRleHQoKSk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNvbGxlY3RM
YXllcnMoVmVjdG9yPFJlbmRlckxheWVyKj4qJiBwb3NCdWZmZXIsIFZlY3RvcjxSZW5kZXJMYXll
cio+KiYgbmVnQnVmZmVyLCBib29sIGluY2x1ZGVOb25WaXNpYmxlTGF5ZXJzKQogewogICAgIHVw
ZGF0ZVZpc2liaWxpdHlTdGF0dXMoKTsKIAotICAgIC8vIE92ZXJmbG93IGxheWVycyBhcmUganVz
dCBwYWludGVkIGJ5IHRoZWlyIGVuY2xvc2luZyBsYXllcnMsIHNvIHRoZXkgZG9uJ3QgZ2V0IHB1
dCBpbiB6b3JkZXIgbGlzdHMuCi0gICAgaWYgKChtX2hhc1Zpc2libGVDb250ZW50IHx8IChtX2hh
c1Zpc2libGVEZXNjZW5kYW50ICYmIGlzU3RhY2tpbmdDb250ZXh0KCkpKSAmJiAhaXNOb3JtYWxG
bG93T25seSgpKSB7CisgICAgLy8gTm9ybWFsIGZsb3cgbGF5ZXJzIGFyZSBqdXN0IHBhaW50ZWQg
YnkgdGhlaXIgZW5jbG9zaW5nIGxheWVycywgc28gdGhleSBkb24ndCBnZXQgcHV0IGluIHpvcmRl
ciBsaXN0cy4KKyAgICBpZiAoIWlzTm9ybWFsRmxvd09ubHkoKSAmJiAoaW5jbHVkZU5vblZpc2li
bGVMYXllcnMgfHwgbGF5ZXJPckRlc2NlbmRhbnRWaXNpYmxlKHRoaXMpKSkgewogICAgICAgICAv
LyBEZXRlcm1pbmUgd2hpY2ggYnVmZmVyIHRoZSBjaGlsZCBzaG91bGQgYmUgaW4uCiAgICAgICAg
IFZlY3RvcjxSZW5kZXJMYXllcio+KiYgYnVmZmVyID0gKHpJbmRleCgpID49IDApID8gcG9zQnVm
ZmVyIDogbmVnQnVmZmVyOwogCkBAIC0zMTQzLDExICszMTYzLDExIEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OmNvbGxlY3RMYXllcnMoVmVjdG9yPFJlbmRlckxheWVyKj4qJiBwb3NCdWZmZXIsIFZlY3Rv
cjxSZW5kZXJMCiAKICAgICAvLyBSZWN1ciBpbnRvIG91ciBjaGlsZHJlbiB0byBjb2xsZWN0IG1v
cmUgbGF5ZXJzLCBidXQgb25seSBpZiB3ZSBkb24ndCBlc3RhYmxpc2gKICAgICAvLyBhIHN0YWNr
aW5nIGNvbnRleHQuCi0gICAgaWYgKG1faGFzVmlzaWJsZURlc2NlbmRhbnQgJiYgIWlzU3RhY2tp
bmdDb250ZXh0KCkpIHsKKyAgICBpZiAoIWlzU3RhY2tpbmdDb250ZXh0KCkgJiYgKGluY2x1ZGVO
b25WaXNpYmxlTGF5ZXJzIHwgbV9oYXNWaXNpYmxlRGVzY2VuZGFudCkpIHsKICAgICAgICAgZm9y
IChSZW5kZXJMYXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxk
LT5uZXh0U2libGluZygpKSB7CiAgICAgICAgICAgICAvLyBJZ25vcmUgcmVmbGVjdGlvbnMuCiAg
ICAgICAgICAgICBpZiAoIW1fcmVmbGVjdGlvbiB8fCByZWZsZWN0aW9uTGF5ZXIoKSAhPSBjaGls
ZCkKLSAgICAgICAgICAgICAgICBjaGlsZC0+Y29sbGVjdExheWVycyhwb3NCdWZmZXIsIG5lZ0J1
ZmZlcik7CisgICAgICAgICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMocG9zQnVmZmVyLCBu
ZWdCdWZmZXIsIGluY2x1ZGVOb25WaXNpYmxlTGF5ZXJzKTsKICAgICAgICAgfQogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDlkMjIxMmIuLjc1ZjliZDkgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaApAQCAtMzE4LDYgKzMxOCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGly
dHlaT3JkZXJMaXN0cygpOwogICAgIHZvaWQgZGlydHlTdGFja2luZ0NvbnRleHRaT3JkZXJMaXN0
cygpOworICAgIHZvaWQgZGlydHlaT3JkZXJMaXN0c0luY2x1ZGluZ0Rlc2NlbmRhbnRzKCk7CiAg
ICAgdm9pZCB1cGRhdGVaT3JkZXJMaXN0cygpOwogICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBw
b3NaT3JkZXJMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9wb3NaT3JkZXJMaXN0OyB9CiAgICAgVmVj
dG9yPFJlbmRlckxheWVyKj4qIG5lZ1pPcmRlckxpc3QoKSBjb25zdCB7IHJldHVybiBtX25lZ1pP
cmRlckxpc3Q7IH0KQEAgLTMyNyw2ICszMjgsNyBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPFJlbmRl
ckxheWVyKj4qIG5vcm1hbEZsb3dMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9ub3JtYWxGbG93TGlz
dDsgfQogCiAgICAgYm9vbCBoYXNWaXNpYmxlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFz
VmlzaWJsZUNvbnRlbnQ7IH0KKyAgICBib29sIGhhc1Zpc2libGVEZXNjZW5kYW50KCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNWaXNpYmxlRGVzY2VuZGFudDsgfQogICAgIHZvaWQgc2V0SGFzVmlzaWJs
ZUNvbnRlbnQoYm9vbCk7CiAgICAgdm9pZCBkaXJ0eVZpc2libGVDb250ZW50U3RhdHVzKCk7CiAK
QEAgLTQ0OCw3ICs0NTAsNyBAQCBwcml2YXRlOgogICAgIGludCByZW5kZXJCb3hYKCkgY29uc3Qg
eyByZXR1cm4gcmVuZGVyZXIoKS0+aXNCb3goKSA/IHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT54
KCkgOiAwOyB9CiAgICAgaW50IHJlbmRlckJveFkoKSBjb25zdCB7IHJldHVybiByZW5kZXJlcigp
LT5pc0JveCgpID8gdG9SZW5kZXJCb3gocmVuZGVyZXIoKSktPnkoKSA6IDA7IH0KIAotICAgIHZv
aWQgY29sbGVjdExheWVycyhWZWN0b3I8UmVuZGVyTGF5ZXIqPiomLCBWZWN0b3I8UmVuZGVyTGF5
ZXIqPiomKTsKKyAgICB2b2lkIGNvbGxlY3RMYXllcnMoVmVjdG9yPFJlbmRlckxheWVyKj4qJiwg
VmVjdG9yPFJlbmRlckxheWVyKj4qJiwgYm9vbCBpbmNsdWRlTm9uVmlzaWJsZUxheWVycyk7CiAK
ICAgICB2b2lkIHVwZGF0ZUxheWVyTGlzdHNJZk5lZWRlZCgpOwogICAgIHZvaWQgdXBkYXRlQ29t
cG9zaXRpbmdBbmRMYXllckxpc3RzSWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDUyMDEyODcuLmU4NjI2NDUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtODMsNiArODMsNyBAQCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OlJlbmRlckxheWVyQ29tcG9zaXRvcihSZW5kZXJWaWV3KiBy
ZW5kZXJWaWV3KQogICAgICwgbV9jb21wb3NpdGluZyhmYWxzZSkKICAgICAsIG1fcm9vdExheWVy
QXR0YWNoZWQoZmFsc2UpCiAgICAgLCBtX2NvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoZmFs
c2UpCisgICAgLCBtX3pPcmRlckxpc3RzSW5jbHVkZUFsbExheWVycyhmYWxzZSkKICNpZiBQUk9G
SUxFX0xBWUVSX1JFQlVJTEQKICAgICAsIG1fcm9vdExheWVyVXBkYXRlQ291bnQoMCkKICNlbmRp
ZiAvLyBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKQEAgLTE2NiwxMiArMTY3LDIwIEBAIHZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhSZW5kZXJMYXllciog
dXBkYXRlUm9vdCkKICAgICB7CiAgICAgICAgIENvbXBvc2l0aW5nU3RhdGUgY29tcFN0YXRlKHVw
ZGF0ZVJvb3QpOwogICAgICAgICBib29sIGxheWVyc0NoYW5nZWQ7Ci0gICAgICAgIGlmIChtX2Nv
bXBvc2l0aW5nQ29uc3VsdHNPdmVybGFwKSB7Ci0gICAgICAgICAgICBPdmVybGFwTWFwIG92ZXJs
YXBUZXN0UmVxdWVzdE1hcDsKLSAgICAgICAgICAgIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVt
ZW50cyh1cGRhdGVSb290LCAmb3ZlcmxhcFRlc3RSZXF1ZXN0TWFwLCBjb21wU3RhdGUsIGxheWVy
c0NoYW5nZWQpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGNvbXB1dGVDb21wb3NpdGlu
Z1JlcXVpcmVtZW50cyh1cGRhdGVSb290LCAwLCBjb21wU3RhdGUsIGxheWVyc0NoYW5nZWQpOwot
ICAgICAgICAKKyAgICAgICAgYm9vbCBtdXN0UmVjb21wdXRlTGF5ZXJMaXN0czsKKyAgICAgICAg
ZG8geworICAgICAgICAgICAgbXVzdFJlY29tcHV0ZUxheWVyTGlzdHMgPSBmYWxzZTsKKyAgICAg
ICAgICAgIGlmIChtX2NvbXBvc2l0aW5nQ29uc3VsdHNPdmVybGFwKSB7CisgICAgICAgICAgICAg
ICAgT3ZlcmxhcE1hcCBvdmVybGFwVGVzdFJlcXVlc3RNYXA7CisgICAgICAgICAgICAgICAgY29t
cHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKHVwZGF0ZVJvb3QsICZvdmVybGFwVGVzdFJlcXVl
c3RNYXAsIGNvbXBTdGF0ZSwgbXVzdFJlY29tcHV0ZUxheWVyTGlzdHMsIGxheWVyc0NoYW5nZWQp
OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgY29tcHV0ZUNvbXBvc2l0aW5n
UmVxdWlyZW1lbnRzKHVwZGF0ZVJvb3QsIDAsIGNvbXBTdGF0ZSwgbXVzdFJlY29tcHV0ZUxheWVy
TGlzdHMsIGxheWVyc0NoYW5nZWQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobXVz
dFJlY29tcHV0ZUxheWVyTGlzdHMpCisgICAgICAgICAgICAgICAgdXBkYXRlUm9vdC0+ZGlydHla
T3JkZXJMaXN0c0luY2x1ZGluZ0Rlc2NlbmRhbnRzKCk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgIH0gd2hpbGUgKG11c3RSZWNvbXB1dGVMYXllckxpc3RzKTsKKwogICAgICAgICBuZWVkTGF5
ZXJSZWJ1aWxkIHw9IGxheWVyc0NoYW5nZWQ7CiAgICAgfQogCkBAIC0xODQsNyArMTkzLDcgQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKFJlbmRl
ckxheWVyKiB1cGRhdGVSb290KQogI2lmIFBST0ZJTEVfTEFZRVJfUkVCVUlMRAogICAgIGRvdWJs
ZSBlbmRUaW1lID0gV1RGOjpjdXJyZW50VGltZSgpOwogICAgIGlmICh1cGRhdGVSb290ID09IHJv
b3RSZW5kZXJMYXllcigpKQotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVwZGF0ZSAlZDogY29t
cHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzIGZvciB0aGUgd29ybGQgdG9vayAlZm1zXG4iLAor
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVwZGF0ZSAlZDogdXBkYXRlQ29tcG9zaXRpbmdMYXll
cnMgZm9yIHRoZSB3b3JsZCB0b29rICVmbXNcbiIsCiAgICAgICAgICAgICAgICAgICAgIG1fcm9v
dExheWVyVXBkYXRlQ291bnQsIDEwMDAuMCAqIChlbmRUaW1lIC0gc3RhcnRUaW1lKSk7CiAjZW5k
aWYKICAgICBBU1NFUlQodXBkYXRlUm9vdCB8fCAhbV9jb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1
aWxkKTsKQEAgLTQxOCw3ICs0MjcsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6b3Zl
cmxhcHNDb21wb3NpdGVkTGF5ZXJzKE92ZXJsYXBNYXAmIG92ZXJsYXBNYXAsIGNvbgogLy8gICAg
ICBtdXN0IGJlIGNvbXBvc2l0aW5nIHNvIHRoYXQgaXRzIGNvbnRlbnRzIHJlbmRlciBvdmVyIHRo
YXQgY2hpbGQuCiAvLyAgICAgIFRoaXMgaW1wbGllcyB0aGF0IGl0cyBwb3NpdGl2ZSB6LWluZGV4
IGNoaWxkcmVuIG11c3QgYWxzbyBiZSBjb21wb3NpdGluZy4KIC8vCi12b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBs
YXllciwgT3ZlcmxhcE1hcCogb3ZlcmxhcE1hcCwgc3RydWN0IENvbXBvc2l0aW5nU3RhdGUmIGNv
bXBvc2l0aW5nU3RhdGUsIGJvb2wmIGxheWVyc0NoYW5nZWQpCit2b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBsYXll
ciwgT3ZlcmxhcE1hcCogb3ZlcmxhcE1hcCwgc3RydWN0IENvbXBvc2l0aW5nU3RhdGUmIGNvbXBv
c2l0aW5nU3RhdGUsIGJvb2wmIG11c3RSZWNvbXB1dGVMYXllckxpc3RzLCBib29sJiBsYXllcnND
aGFuZ2VkKQogewogICAgIGxheWVyLT51cGRhdGVMYXllclBvc2l0aW9uKCk7CiAgICAgbGF5ZXIt
PnVwZGF0ZVpPcmRlckxpc3RzKCk7CkBAIC00NTAsNiArNDU5LDE0IEBAIHZvaWQgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIq
IGxheWVyLCBPCiAKICAgICBjb25zdCBib29sIHdpbGxCZUNvbXBvc2l0ZWQgPSBuZWVkc1RvQmVD
b21wb3NpdGVkKGxheWVyKTsKICAgICBpZiAod2lsbEJlQ29tcG9zaXRlZCkgeworICAgICAgICAv
LyBXaGVuIGNvbXBvc2l0aW5nLCB3ZSBuZWVkIHRvIHR1cm4gb2ZmIHRoZSBSZW5kZXJMYXllciB2
aXNpYmlsaXR5IG9wdGltaXphdGlvbiwgc28gd2UKKyAgICAgICAgLy8gaGF2ZSB0byBiYWlsIGhl
cmUsIHJlYnVpbGQgdGhlIHotb3JkZXIgbGlzdHMsIGFuZCBzdGFydCBvdmVyLgorICAgICAgICBp
ZiAoIW1fek9yZGVyTGlzdHNJbmNsdWRlQWxsTGF5ZXJzICYmICghbGF5ZXItPmhhc1Zpc2libGVD
b250ZW50KCkgfHwgIWxheWVyLT5oYXNWaXNpYmxlRGVzY2VuZGFudCgpKSkgeworICAgICAgICAg
ICAgbV96T3JkZXJMaXN0c0luY2x1ZGVBbGxMYXllcnMgPSB0cnVlOworICAgICAgICAgICAgbXVz
dFJlY29tcHV0ZUxheWVyTGlzdHMgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgICAgICAKICAgICAgICAgLy8gVGVsbCB0aGUgcGFyZW50IGl0IGhhcyBjb21w
b3NpdGluZyBkZXNjZW5kYW50cy4KICAgICAgICAgY29tcG9zaXRpbmdTdGF0ZS5tX3N1YnRyZWVJ
c0NvbXBvc2l0aW5nID0gdHJ1ZTsKICAgICAgICAgLy8gVGhpcyBsYXllciBub3cgYWN0cyBhcyB0
aGUgYW5jZXN0b3IgZm9yIGtpZHMuCkBAIC00NzIsNyArNDg5LDkgQEAgdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciog
bGF5ZXIsIE8KICAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5lZ1pPcmRlckxpc3QtPnNp
emUoKTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkg
ewogICAgICAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJMYXllciA9IG5lZ1pPcmRlckxpc3Qt
PmF0KGkpOwotICAgICAgICAgICAgICAgIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhj
dXJMYXllciwgb3ZlcmxhcE1hcCwgY2hpbGRTdGF0ZSwgbGF5ZXJzQ2hhbmdlZCk7CisgICAgICAg
ICAgICAgICAgY29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKGN1ckxheWVyLCBvdmVybGFw
TWFwLCBjaGlsZFN0YXRlLCBtdXN0UmVjb21wdXRlTGF5ZXJMaXN0cywgbGF5ZXJzQ2hhbmdlZCk7
CisgICAgICAgICAgICAgICAgaWYgKG11c3RSZWNvbXB1dGVMYXllckxpc3RzKQorICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIHRvIG1h
a2UgYSBsYXllciBmb3IgdGhpcyBjaGlsZCwgbWFrZSBvbmUgbm93IHNvIHdlIGNhbiBoYXZlIGEg
Y29udGVudHMgbGF5ZXIKICAgICAgICAgICAgICAgICAvLyAoc2luY2Ugd2UgbmVlZCB0byBlbnN1
cmUgdGhhdCB0aGUgLXZlIHotb3JkZXIgY2hpbGQgcmVuZGVycyB1bmRlcm5lYXRoIG91ciBjb250
ZW50cykuCkBAIC00OTIsNyArNTExLDkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNv
bXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5ZXIsIE8KICAgICAg
ICAgc2l6ZV90IGxpc3RTaXplID0gbm9ybWFsRmxvd0xpc3QtPnNpemUoKTsKICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBSZW5kZXJM
YXllciogY3VyTGF5ZXIgPSBub3JtYWxGbG93TGlzdC0+YXQoaSk7Ci0gICAgICAgICAgICBjb21w
dXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoY3VyTGF5ZXIsIG92ZXJsYXBNYXAsIGNoaWxkU3Rh
dGUsIGxheWVyc0NoYW5nZWQpOworICAgICAgICAgICAgY29tcHV0ZUNvbXBvc2l0aW5nUmVxdWly
ZW1lbnRzKGN1ckxheWVyLCBvdmVybGFwTWFwLCBjaGlsZFN0YXRlLCBtdXN0UmVjb21wdXRlTGF5
ZXJMaXN0cywgbGF5ZXJzQ2hhbmdlZCk7CisgICAgICAgICAgICBpZiAobXVzdFJlY29tcHV0ZUxh
eWVyTGlzdHMpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogCkBA
IC01MDEsNyArNTIyLDkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21w
b3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5ZXIsIE8KICAgICAgICAgICAgIHNp
emVfdCBsaXN0U2l6ZSA9IHBvc1pPcmRlckxpc3QtPnNpemUoKTsKICAgICAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgewogICAgICAgICAgICAgICAgIFJlbmRl
ckxheWVyKiBjdXJMYXllciA9IHBvc1pPcmRlckxpc3QtPmF0KGkpOwotICAgICAgICAgICAgICAg
IGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhjdXJMYXllciwgb3ZlcmxhcE1hcCwgY2hp
bGRTdGF0ZSwgbGF5ZXJzQ2hhbmdlZCk7CisgICAgICAgICAgICAgICAgY29tcHV0ZUNvbXBvc2l0
aW5nUmVxdWlyZW1lbnRzKGN1ckxheWVyLCBvdmVybGFwTWFwLCBjaGlsZFN0YXRlLCBtdXN0UmVj
b21wdXRlTGF5ZXJMaXN0cywgbGF5ZXJzQ2hhbmdlZCk7CisgICAgICAgICAgICAgICAgaWYgKG11
c3RSZWNvbXB1dGVMYXllckxpc3RzKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oCmluZGV4IGE4MDlhNzAuLmQwZjg2OTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC02Myw2ICs2Myw5IEBAIHB1YmxpYzoKICAgICAK
ICAgICAvLyBDb3B5IHRoZSBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZEZsYWcgZnJvbSBT
ZXR0aW5ncwogICAgIHZvaWQgY2FjaGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZEZsYWco
KTsKKyAgICAKKyAgICAvLyBJbmRpY2F0ZXMgdGhhdCBSZW5kZXJMYXllciBzaG91bGQgbm90IGV4
Y2x1ZGUgbm9uLXZpc2libGUgbGF5ZXJzIGZyb20gdGhlIHotb3JkZXIgbGlzdHMuCisgICAgYm9v
bCB6T3JkZXJMaXN0c0luY2x1ZGVBbGxMYXllcnMoKSBjb25zdCB7IHJldHVybiBtX3pPcmRlckxp
c3RzSW5jbHVkZUFsbExheWVyczsgfQogCiAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIGxheWVyIGhp
ZXJhcmNoeSBuZWVkcyB0byBiZSB1cGRhdGVkIChjb21wb3NpdGluZyBsYXllcnMgaGF2ZSBiZWVu
CiAgICAgLy8gY3JlYXRlZCwgZGVzdHJveWVkIG9yIHJlLXBhcmVudGVkKS4KQEAgLTE0NSw4ICsx
NDgsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGFkZFRvT3ZlcmxhcE1hcChPdmVybGFw
TWFwJiwgUmVuZGVyTGF5ZXIqLCBJbnRSZWN0JiBsYXllckJvdW5kcywgYm9vbCYgYm91bmRzQ29t
cHV0ZWQpOwogICAgIHN0YXRpYyBib29sIG92ZXJsYXBzQ29tcG9zaXRlZExheWVycyhPdmVybGFw
TWFwJiwgY29uc3QgSW50UmVjdCYgbGF5ZXJCb3VuZHMpOwogCi0gICAgLy8gUmV0dXJucyB0cnVl
IGlmIGFueSBsYXllcidzIGNvbXBvc2l0aW5nIGNoYW5nZWQKLSAgICB2b2lkIGNvbXB1dGVDb21w
b3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciosIE92ZXJsYXBNYXAqLCBzdHJ1Y3QgQ29t
cG9zaXRpbmdTdGF0ZSYsIGJvb2wmIGxheWVyc0NoYW5nZWQpOworICAgIHZvaWQgY29tcHV0ZUNv
bXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiwgT3ZlcmxhcE1hcCosIHN0cnVjdCBD
b21wb3NpdGluZ1N0YXRlJiwgYm9vbCYgcmVjb21wdXRlTGF5ZXJMaXN0cywgYm9vbCYgbGF5ZXJz
Q2hhbmdlZCk7CiAgICAgdm9pZCByZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTGF5
ZXIqIGxheWVyLCBzdHJ1Y3QgQ29tcG9zaXRpbmdTdGF0ZSYsIGJvb2wgdXBkYXRlSGllcmFyY2h5
KTsKIAogICAgIC8vIEhvb2sgY29tcG9zaXRpbmcgbGF5ZXJzIHRvZ2V0aGVyCkBAIC0xNzUsNiAr
MTc3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY29tcG9zaXRpbmc7CiAgICAgYm9vbCBtX3Jv
b3RMYXllckF0dGFjaGVkOwogICAgIGJvb2wgbV9jb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxk
OworICAgIGJvb2wgbV96T3JkZXJMaXN0c0luY2x1ZGVBbGxMYXllcnM7CiAgICAgCiAjaWYgUFJP
RklMRV9MQVlFUl9SRUJVSUxECiAgICAgaW50IG1fcm9vdExheWVyVXBkYXRlQ291bnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41249</attachid>
            <date>2009-10-15 16:00:54 -0700</date>
            <delta_ts>2011-10-28 13:05:51 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip_visibility.txt</filename>
            <type>text/plain</type>
            <size>29021</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMjc1NDQwLi40ODc3MjUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMTAt
MTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdmlzaWJpbGl0eSBjaGFuZ2Vz
IHdoaWxlIGFuIGFjY2VsZXJhdGVkIGFuaW1hdGlvbiBpcyBydW5uaW5nLCBlbGVtZW50IGp1bXBz
IGFyb3VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjk5ODQKKyAgICAgICAgCisgICAgICAgIFRlc3RjYXNlIHRoYXQgdG9nZ2xlcyB2aXNpYmlsdHkg
ZHVyaW5nIGEgdHJhbnNmb3JtIGFuaW1hdGlvbi4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL3Zp
c2liaWxpdHktYW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9j
b21wb3NpdGluZy92aXNpYmlsaXR5LWFuaW1hdGlvbi1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL3Zpc2liaWxpdHktYW5pbWF0aW9u
LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5n
L3Zpc2liaWxpdHktYW5pbWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMDktMTAtMTQg
IERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1h
cmsgUm93ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Zpc2liaWxpdHkt
YW5pbWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aXNpYmlsaXR5LWFuaW1h
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExZjQ2OTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aXNpYmlsaXR5LWFuaW1h
dGlvbi5odG1sCkBAIC0wLDAgKzEsMTM1IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1cz
Qy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3Jn
L1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8dGl0
bGU+VmlzaWJpbGl0eSBhbmltYXRpb248L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
IG1lZGlhPSJzY3JlZW4iPgorICAgICNjb250YWluZXIgeworICAgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgIHdpZHRoOiA2MDBweDsKKyAgICAgIG1h
cmdpbjogMjBweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICAK
KyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIHRvcDogMDsKKyAg
ICAgIHdpZHRoOiA4MHB4OworICAgICAgaGVpZ2h0OiA4MHB4OworICAgIH0KKyAgICAKKyAgICAu
aW5jb21pbmcxLCAuaW5jb21pbmcyIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cisg
ICAgfQorICAgIAorICAgIC5pbmNvbWluZzEgeworICAgICAgdG9wOiAxMDBweDsKKyAgICB9CisK
KyAgICAuaW5jb21pbmcyIHsKKyAgICAgIHRvcDogMjAwcHg7CisgICAgfQorCisgICAgLm91dGdv
aW5nIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICB9CisgICAgCisgICAgI2Nv
bnRhaW5lciA+IC5ib3ggeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuNXM7
CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKKyAgICB9
CisKKyAgICAjY29udGFpbmVyLmFuaW1hdGluZyAuaW5jb21pbmcxIHsKKyAgICAgIC13ZWJraXQt
YW5pbWF0aW9uLW5hbWU6IG1vdmUsIGluY29taW5nMS12aXNpYmlsaXR5OworICAgIH0KKworICAg
ICNjb250YWluZXIuYW5pbWF0aW5nIC5pbmNvbWluZzIgeworICAgICAgLXdlYmtpdC1hbmltYXRp
b24tbmFtZTogbW92ZSwgaW5jb21pbmcyLXZpc2liaWxpdHk7CisgICAgfQorCisgICAgI2NvbnRh
aW5lci5hbmltYXRpbmcgLm91dGdvaW5nIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6
IG1vdmUsIG91dGdvaW5nLXZpc2liaWxpdHk7CisgICAgfQorICAgIAorICAgIEAtd2Via2l0LWtl
eWZyYW1lcyBtb3ZlCisgICAgeworICAgICAgMCUgIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5z
bGF0ZSgwLCAwKSByb3RhdGUoMCk7IH0KKyAgICAgIDEwMCV7IC13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGVYKDUwMHB4KSByb3RhdGUoMjBkZWcpOyB9CisgICAgfQorCisgICAgQC13ZWJraXQt
a2V5ZnJhbWVzIG91dGdvaW5nLXZpc2liaWxpdHkKKyAgICB7CisgICAgICAwJSAgeyB2aXNpYmls
aXR5OiB2aXNpYmxlOyB9CisgICAgICA0NSUgeyB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9CisgICAg
ICA0NiUgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH0KKyAgICAgIDEwMCV7IHZpc2liaWxpdHk6IGhp
ZGRlbjsgfQorICAgIH0KKworICAgIEAtd2Via2l0LWtleWZyYW1lcyBpbmNvbWluZzEtdmlzaWJp
bGl0eQorICAgIHsKKyAgICAgIDAlICB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfQorICAgICAgNDUl
IHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9CisgICAgICA0NiUgeyB2aXNpYmlsaXR5OiB2aXNpYmxl
OyB9CisgICAgICAxMDAleyB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9CisgICAgfQorCisgICAgQC13
ZWJraXQta2V5ZnJhbWVzIGluY29taW5nMi12aXNpYmlsaXR5CisgICAgeworICAgICAgMCUgIHsg
dmlzaWJpbGl0eTogaGlkZGVuOyB9CisgICAgICA1NSUgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH0K
KyAgICAgIDU2JSB7IHZpc2liaWxpdHk6IHZpc2libGU7IH0KKyAgICAgIDEwMCV7IHZpc2liaWxp
dHk6IHZpc2libGU7IH0KKyAgICB9CisgIDwvc3R5bGU+CisgIAorICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworCisgICAgICB2YXIgaGFzUGF1c2VBbmltYXRpb25BUEkgPSAoJ2xheW91dFRlc3RDb250
cm9sbGVyJyBpbiB3aW5kb3cpICYmICgncGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRo
SWQnIGluIGxheW91dFRlc3RDb250cm9sbGVyKTsKKworICAgICAgZnVuY3Rpb24gc3RhcnRBbmlt
YXRpb25zKCkKKyAgICAgIHsKKyAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29u
dGFpbmVyJykuY2xhc3NOYW1lID0gJ2FuaW1hdGluZyc7CisgICAgICAgICAgCisgICAgICAgICAg
d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoaGFzUGF1c2VB
bmltYXRpb25BUEkpIHsKKyAgICAgICAgICAgICAgLy8gU3RvcCBhbGwgdGhlIGFuaW1hdGlvbnMg
c28gdGhhdCB0aGUgc25hcHNob3QgaXMgY29uc2lzdGVudAorICAgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgnbW92ZScs
IDAuMjUsICdpbmNvbWluZycpOworICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5w
YXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgnaW5jb21pbmcxLXZpc2liaWxpdHkn
LCAwLjI1LCAnaW5jb21pbmcnKTsKKworICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5wYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgnbW92ZScsIDAuMjUsICdpbmNv
bWluZzInKTsKKyAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucGF1c2VBbmltYXRp
b25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoJ2luY29taW5nMi12aXNpYmlsaXR5JywgMC4yNSwgJ2lu
Y29taW5nMicpOworCisgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnBhdXNlQW5p
bWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKCdtb3ZlJywgMC4yNSwgJ291dGdvaW5nJyk7Cisg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnBhdXNlQW5pbWF0aW9uQXRUaW1lT25F
bGVtZW50V2l0aElkKCdvdXRnb2luZy12aXNpYmlsaXR5JywgMC4yNSwgJ291dGdvaW5nJyk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgIH0sIDEwMCk7CisgICAgICB9CisgICAgICAKKyAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc3RhcnRBbmltYXRpb25zLCBmYWxzZSk7Cisg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxwPlRoZSBzbmFwc2hvdCBzaG91bGQgc2hv
dyBvbmUgYmx1ZSBib3ggaW4gdGhlIG1pZGRsZS48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiPgor
ICA8ZGl2IGlkPSJvdXRnb2luZyIgY2xhc3M9Im91dGdvaW5nIGJveCI+CisgICAgb3V0Z29pbmcK
KyAgPC9kaXY+CisgIDxkaXYgaWQ9ImluY29taW5nIiBjbGFzcz0iaW5jb21pbmcxIGJveCI+Cisg
ICAgaW5jb21pbmcKKyAgPC9kaXY+CisgIDxkaXYgaWQ9ImluY29taW5nMiIgY2xhc3M9ImluY29t
aW5nMiBib3giPgorICAgIGluY29taW5nCisgIDwvZGl2PgorPC9kaXY+CisKKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy92
aXNpYmlsaXR5LWFuaW1hdGlvbi1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9jb21wb3NpdGluZy92aXNpYmlsaXR5LWFuaW1hdGlvbi1leHBlY3RlZC5jaGVja3N1
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Nzc1NTVlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL3Zpc2liaWxpdHkt
YW5pbWF0aW9uLWV4cGVjdGVkLmNoZWNrc3VtCkBAIC0wLDAgKzEgQEAKK2M3N2U4NTIyMWI2NjIz
NDdkNGMzNGZhZTU4NGU2YWMzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL3Zpc2liaWxpdHktYW5pbWF0
aW9uLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy92
aXNpYmlsaXR5LWFuaW1hdGlvbi1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZWYwOWIxZQpCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy92aXNpYmlsaXR5LWFuaW1hdGlvbi1leHBlY3Rl
ZC5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9z
aXRpbmcvdmlzaWJpbGl0eS1hbmltYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2NvbXBvc2l0aW5nL3Zpc2liaWxpdHktYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWNkNjk0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL3Zpc2liaWxpdHktYW5p
bWF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDM3NgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
Mzc2CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDM0MAorICAgICAg
UmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM0NHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDM0NDogIlRoZSBzbmFwc2hvdCBzaG91bGQgc2hvdyBvbmUgYmx1ZSBib3ggaW4gdGhl
IG1pZGRsZS4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNjApIHNpemUgNzg0eDAK
K2xheWVyIGF0ICgyOCw1NCkgc2l6ZSA2MDJ4MzAyCisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBw
b3NpdGlvbmVkKSB7RElWfSBhdCAoMjAsMzgpIHNpemUgNjAyeDMwMiBbYm9yZGVyOiAoMXB4IHNv
bGlkICMwMDAwMDApXQorbGF5ZXIgYXQgKDI5LDU1KSBzaXplIDgweDgwCisgIFJlbmRlckJsb2Nr
IChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMSwxKSBzaXplIDgweDgwIFtiZ2NvbG9yPSNGRjAwMDBd
CisgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTZ4MTgKKyAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDU2OiAib3V0Z29pbmciCitsYXllciBhdCAoMjksMTU1KSBzaXpl
IDgweDgwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMSwxMDEpIHNpemUg
ODB4ODAgW2JnY29sb3I9IzAwMDBGRl0KKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSA1OXgxOAorICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTk6ICJpbmNvbWluZyIK
K2xheWVyIGF0ICgyOSwyNTUpIHNpemUgODB4ODAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQp
IHtESVZ9IGF0ICgxLDIwMSkgc2l6ZSA4MHg4MCBbYmdjb2xvcj0jMDAwMEZGXQorICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU5eDE4CisgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA1OTogImluY29taW5nIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZWU1YmQxLi43NzNkNWJiIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisy
MDA5LTEwLTEyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHZpc2liaWxpdHkg
Y2hhbmdlcyB3aGlsZSBhbiBhY2NlbGVyYXRlZCBhbmltYXRpb24gaXMgcnVubmluZywgZWxlbWVu
dCBqdW1wcyBhcm91bmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI5OTg0CisgICAgICAgIAorICAgICAgICBSZW5kZXJMYXllciBoYXMgYW4gb3B0aW1p
emF0aW9uIHdoZXJlIGxheWVycyB3aXRoIG5vbi12aXNpYmxlIGNvbnRlbnQgb3IgY2hpbGRyZW4K
KyAgICAgICAgYXJlIGV4Y2x1ZGVkIGZyb20gdGhlIHotb3JkZXIgbGlzdHMuIFRoaXMgcmVzdWx0
cyBpbiB1bnBhcmVudGVkIGNvbXBvc2l0aW5nIGxheWVycywKKyAgICAgICAgd2hpY2ggZmFpbCB0
byBzdGFydCBhbmltYXRpb25zIGNvcnJlY3RseSAoaW4gdGhlIGNhc2Ugd2hlcmUgdGhleSBhcmUg
bWFkZSB2aXNpYmxlIHBhcnR3YXkKKyAgICAgICAgdGhyb3VnaCB0aGUgYW5pbWF0aW9uKS4gU28g
d2UgdHVybiBvZmYgdGhlIFJlbmRlckxheWVyIHZpc2liaWxpdHkgb3B0aW1pemF0aW9uIHdoZW4g
d2UKKyAgICAgICAgaGF2ZSBjb21wb3NpdGluZyBsYXllcnMuCisKKyAgICAgICAgVGVzdDogY29t
cG9zaXRpbmcvdmlzaWJpbGl0eS1hbmltYXRpb24uaHRtbAorCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aGFzVmlzaWJs
ZURlc2NlbmRhbnQpOiBleHBvc2UgdGhlIGZsYWcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxp
c3RzSW5jbHVkaW5nRGVzY2VuZGFudHMpOiByZWN1cnNpdmVseSBzZXQgdGhlIGJpdAorICAgICAg
ICB0byBub3RlIHRoYXQgei1vcmRlciBsaXN0cyBhcmUgZGlydHksIHNvIHRoYXQgd2UgY2FuIHJl
YnVpbGQgdGhlbSBhbGwgd2l0aCB0aGUgbmV3CisgICAgICAgIHNldHRpbmdzIGZvciB3aGV0aGVy
IHRvIGlnbm9yZSBoaWRkZW4gbGF5ZXJzLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjp1cGRhdGVaT3JkZXJMaXN0cyk6IGFzayB0aGUgY29tcG9zaXRvciB3aGV0aGVy
IHdlIHNob3VsZCBpbmNsdWRlCisgICAgICAgIG5vbi12aXNpYmxlIGxheWVycy4KKyAgICAgICAg
CisgICAgICAgIChXZWJDb3JlOjpsYXllck9yRGVzY2VuZGFudFZpc2libGUpOiBuZXcgaW5saW5l
IGhlbHBlci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJzKTog
dXNlIGxheWVyT3JEZXNjZW5kYW50VmlzaWJsZSgpIHRvIGNsYXJpZnkgbG9naWMsIHdoaWxlCisg
ICAgICAgIGNvbnN1bHRpbmcgaW5jbHVkZU5vblZpc2libGVMYXllcnMuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yKTogSW5pdGlhbGl6ZSBt
X3pPcmRlckxpc3RzSW5jbHVkZUFsbExheWVycy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMpOiBpZiBjb21wdXRlQ29tcG9z
aXRpbmdSZXF1aXJlbWVudHMoKSByZXR1cm5zCisgICAgICAgIHdpdGggbXVzdFJlY29tcHV0ZUxh
eWVyTGlzdHMgc2V0IHRvIHRydWUsIHdlIGhhdmUgdG8gZG8gY29tcHV0ZUNvbXBvc2l0aW5nUmVx
dWlyZW1lbnRzKCkgYSBzZWNvbmQgdGltZQorICAgICAgICBhZnRlciBkaXJ0eWluZyBhbGwgb2Yg
dGhlIHotb3JkZXIgbGlzdHMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0
b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyk6CisgICAgICAgIERldGVjdCB3aGVu
IGEgbGF5ZXIgbmVlZHMgdG8gY29tcG9zaXRlIHdoaWNoIGlzIGFmZmVjdGVkIGJ5IHRoZSBSZW5k
ZXJMYXllciB2aXNpYmlsaXR5IG9wdGltaXphdGlvbiwKKyAgICAgICAgYW5kIGluIHRoYXQgY2Fz
ZSByZXR1cm4gZWFybHkgYW5kIGRvIGEgc2Vjb25kIHBhc3MuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjp6T3JkZXJMaXN0c0luY2x1ZGVBbGxMYXllcnMpOiBGbGFnIHRoYXQgc3RvcmVz
IHdoZXRoZXIgdGhlIGN1cnJlbnQKKyAgICAgICAgei1vcmRlciBsaXN0cyBoYXZlIGJlZW4gYnVp
bHQgd2l0aCB0aGUgdmlzaWJpbGl0eSBvcHRpbWl6YXRpb24gaW4gcGxhY2UuCisKIDIwMDktMTAt
MTQgIEtldmluIERlY2tlciAgPGtkZWNrZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlcnN0
YW1wZWQgYnkgSm9uIEhvbmV5Y3V0dC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA5
MzU2YzcwLi45MmU1YTg0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xNjMsNiAr
MTYzLDcgQEAgUmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiBy
ZW5kZXJlcikKICAgICAsIG1faGFzVmlzaWJsZUNvbnRlbnQoZmFsc2UpCiAgICAgLCBtX3Zpc2li
bGVEZXNjZW5kYW50U3RhdHVzRGlydHkoZmFsc2UpCiAgICAgLCBtX2hhc1Zpc2libGVEZXNjZW5k
YW50KGZhbHNlKQorICAgICwgbV96T3JkZXJMaXN0c09taXRIaWRkZW5EZXNjZW5kYW50KGZhbHNl
KQogICAgICwgbV8zRFRyYW5zZm9ybWVkRGVzY2VuZGFudFN0YXR1c0RpcnR5KHRydWUpCiAgICAg
LCBtX2hhczNEVHJhbnNmb3JtZWREZXNjZW5kYW50KGZhbHNlKQogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKQEAgLTMwNzYsNiArMzA3NywxNCBAQCB2b2lkIFJlbmRlckxheWVyOjpk
aXJ0eVN0YWNraW5nQ29udGV4dFpPcmRlckxpc3RzKCkKICAgICAgICAgc2MtPmRpcnR5Wk9yZGVy
TGlzdHMoKTsKIH0KIAordm9pZCBSZW5kZXJMYXllcjo6ZGlydHlaT3JkZXJMaXN0c0luY2x1ZGlu
Z0Rlc2NlbmRhbnRzKCkKK3sKKyAgICBkaXJ0eVpPcmRlckxpc3RzKCk7CisKKyAgICBmb3IgKFJl
bmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5l
eHRTaWJsaW5nKCkpCisgICAgICAgIGNoaWxkLT5kaXJ0eVpPcmRlckxpc3RzSW5jbHVkaW5nRGVz
Y2VuZGFudHMoKTsKK30KKwogdm9pZCBSZW5kZXJMYXllcjo6ZGlydHlOb3JtYWxGbG93TGlzdCgp
CiB7CiAgICAgaWYgKG1fbm9ybWFsRmxvd0xpc3QpCkBAIC0zMDkzLDkgKzMxMDIsMTkgQEAgdm9p
ZCBSZW5kZXJMYXllcjo6dXBkYXRlWk9yZGVyTGlzdHMoKQogICAgIGlmICghaXNTdGFja2luZ0Nv
bnRleHQoKSB8fCAhbV96T3JkZXJMaXN0c0RpcnR5KQogICAgICAgICByZXR1cm47CiAKKyAgICBi
b29sIGluY2x1ZGVOb25WaXNpYmxlTGF5ZXJzID0KKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisgICAgICAgIGNvbXBvc2l0b3IoKS0+aW5jbHVkZUhpZGRlbkxheWVyc0luWk9yZGVy
TGlzdHMoKTsKKyNlbHNlCisgICAgICAgIGZhbHNlOworI2VuZGlmCisKKyAgICBib29sIHNraXBw
ZWRIaWRkZW5MYXllcnMgPSBmYWxzZTsKICAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZp
cnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAg
IGlmICghbV9yZWZsZWN0aW9uIHx8IHJlZmxlY3Rpb25MYXllcigpICE9IGNoaWxkKQotICAgICAg
ICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMobV9wb3NaT3JkZXJMaXN0LCBtX25lZ1pPcmRlckxp
c3QpOworICAgICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMobV9wb3NaT3JkZXJMaXN0LCBt
X25lZ1pPcmRlckxpc3QsIHNraXBwZWRIaWRkZW5MYXllcnMsIGluY2x1ZGVOb25WaXNpYmxlTGF5
ZXJzKTsKKworICAgIG1fek9yZGVyTGlzdHNPbWl0SGlkZGVuRGVzY2VuZGFudCA9IHNraXBwZWRI
aWRkZW5MYXllcnM7CiAKICAgICAvLyBTb3J0IHRoZSB0d28gbGlzdHMuCiAgICAgaWYgKG1fcG9z
Wk9yZGVyTGlzdCkKQEAgLTMxMjQsMzEgKzMxNDMsNDIgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBk
YXRlTm9ybWFsRmxvd0xpc3QoKQogICAgIG1fbm9ybWFsRmxvd0xpc3REaXJ0eSA9IGZhbHNlOwog
fQogCi12b2lkIFJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJzKFZlY3RvcjxSZW5kZXJMYXllcio+
KiYgcG9zQnVmZmVyLCBWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIG5lZ0J1ZmZlcikKK3N0YXRpYyBp
bmxpbmUgYm9vbCBsYXllck9yRGVzY2VuZGFudFZpc2libGUoUmVuZGVyTGF5ZXIqIGxheWVyKQor
eworICAgIHJldHVybiBsYXllci0+aGFzVmlzaWJsZUNvbnRlbnQoKSB8fCAobGF5ZXItPmhhc1Zp
c2libGVEZXNjZW5kYW50KCkgJiYgbGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpOworfQorCit2
b2lkIFJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJzKFZlY3RvcjxSZW5kZXJMYXllcio+KiYgcG9z
QnVmZmVyLCBWZWN0b3I8UmVuZGVyTGF5ZXIqPiomIG5lZ0J1ZmZlciwgYm9vbCYgc2tpcHBlZEhp
ZGRlbkxheWVycywgYm9vbCBpbmNsdWRlTm9uVmlzaWJsZUxheWVycykKIHsKICAgICB1cGRhdGVW
aXNpYmlsaXR5U3RhdHVzKCk7CiAKLSAgICAvLyBPdmVyZmxvdyBsYXllcnMgYXJlIGp1c3QgcGFp
bnRlZCBieSB0aGVpciBlbmNsb3NpbmcgbGF5ZXJzLCBzbyB0aGV5IGRvbid0IGdldCBwdXQgaW4g
em9yZGVyIGxpc3RzLgotICAgIGlmICgobV9oYXNWaXNpYmxlQ29udGVudCB8fCAobV9oYXNWaXNp
YmxlRGVzY2VuZGFudCAmJiBpc1N0YWNraW5nQ29udGV4dCgpKSkgJiYgIWlzTm9ybWFsRmxvd09u
bHkoKSkgewotICAgICAgICAvLyBEZXRlcm1pbmUgd2hpY2ggYnVmZmVyIHRoZSBjaGlsZCBzaG91
bGQgYmUgaW4uCi0gICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiYgYnVmZmVyID0gKHpJbmRl
eCgpID49IDApID8gcG9zQnVmZmVyIDogbmVnQnVmZmVyOworICAgIC8vIE5vcm1hbCBmbG93IGxh
eWVycyBhcmUganVzdCBwYWludGVkIGJ5IHRoZWlyIGVuY2xvc2luZyBsYXllcnMsIHNvIHRoZXkg
ZG9uJ3QgZ2V0IHB1dCBpbiB6b3JkZXIgbGlzdHMuCisgICAgaWYgKCFpc05vcm1hbEZsb3dPbmx5
KCkpIHsKKyAgICAgICAgaWYgKGluY2x1ZGVOb25WaXNpYmxlTGF5ZXJzIHx8IGxheWVyT3JEZXNj
ZW5kYW50VmlzaWJsZSh0aGlzKSkgeworICAgICAgICAgICAgLy8gRGV0ZXJtaW5lIHdoaWNoIGJ1
ZmZlciB0aGUgY2hpbGQgc2hvdWxkIGJlIGluLgorICAgICAgICAgICAgVmVjdG9yPFJlbmRlckxh
eWVyKj4qJiBidWZmZXIgPSAoekluZGV4KCkgPj0gMCkgPyBwb3NCdWZmZXIgOiBuZWdCdWZmZXI7
CiAKLSAgICAgICAgLy8gQ3JlYXRlIHRoZSBidWZmZXIgaWYgaXQgZG9lc24ndCBleGlzdCB5ZXQu
Ci0gICAgICAgIGlmICghYnVmZmVyKQotICAgICAgICAgICAgYnVmZmVyID0gbmV3IFZlY3RvcjxS
ZW5kZXJMYXllcio+OwotICAgICAgICAKLSAgICAgICAgLy8gQXBwZW5kIG91cnNlbHZlcyBhdCB0
aGUgZW5kIG9mIHRoZSBhcHByb3ByaWF0ZSBidWZmZXIuCi0gICAgICAgIGJ1ZmZlci0+YXBwZW5k
KHRoaXMpOworICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBidWZmZXIgaWYgaXQgZG9lc24ndCBl
eGlzdCB5ZXQuCisgICAgICAgICAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgICAgICAgICBidWZm
ZXIgPSBuZXcgVmVjdG9yPFJlbmRlckxheWVyKj47CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IC8vIEFwcGVuZCBvdXJzZWx2ZXMgYXQgdGhlIGVuZCBvZiB0aGUgYXBwcm9wcmlhdGUgYnVmZmVy
LgorICAgICAgICAgICAgYnVmZmVyLT5hcHBlbmQodGhpcyk7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgc2tpcHBlZEhpZGRlbkxheWVycyA9IHRydWU7CiAgICAgfQogCiAgICAgLy8gUmVj
dXIgaW50byBvdXIgY2hpbGRyZW4gdG8gY29sbGVjdCBtb3JlIGxheWVycywgYnV0IG9ubHkgaWYg
d2UgZG9uJ3QgZXN0YWJsaXNoCiAgICAgLy8gYSBzdGFja2luZyBjb250ZXh0LgotICAgIGlmICht
X2hhc1Zpc2libGVEZXNjZW5kYW50ICYmICFpc1N0YWNraW5nQ29udGV4dCgpKSB7Ci0gICAgICAg
IGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICAgICAgLy8gSWdub3JlIHJlZmxlY3Rpb25z
LgotICAgICAgICAgICAgaWYgKCFtX3JlZmxlY3Rpb24gfHwgcmVmbGVjdGlvbkxheWVyKCkgIT0g
Y2hpbGQpCi0gICAgICAgICAgICAgICAgY2hpbGQtPmNvbGxlY3RMYXllcnMocG9zQnVmZmVyLCBu
ZWdCdWZmZXIpOwotICAgICAgICB9CisgICAgaWYgKCFpc1N0YWNraW5nQ29udGV4dCgpKSB7Cisg
ICAgICAgIGlmIChpbmNsdWRlTm9uVmlzaWJsZUxheWVycyB8IG1faGFzVmlzaWJsZURlc2NlbmRh
bnQpIHsKKyAgICAgICAgICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgICAg
IC8vIElnbm9yZSByZWZsZWN0aW9ucy4KKyAgICAgICAgICAgICAgICBpZiAoIW1fcmVmbGVjdGlv
biB8fCByZWZsZWN0aW9uTGF5ZXIoKSAhPSBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgY2hp
bGQtPmNvbGxlY3RMYXllcnMocG9zQnVmZmVyLCBuZWdCdWZmZXIsIHNraXBwZWRIaWRkZW5MYXll
cnMsIGluY2x1ZGVOb25WaXNpYmxlTGF5ZXJzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBza2lwcGVkSGlkZGVuTGF5ZXJzID0gdHJ1ZTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IGU2YTE1YzUuLjg5MWYxNGUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaApAQCAtMzE4LDEwICszMTgsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBk
aXJ0eVpPcmRlckxpc3RzKCk7CiAgICAgdm9pZCBkaXJ0eVN0YWNraW5nQ29udGV4dFpPcmRlckxp
c3RzKCk7CisgICAgdm9pZCBkaXJ0eVpPcmRlckxpc3RzSW5jbHVkaW5nRGVzY2VuZGFudHMoKTsK
ICAgICB2b2lkIHVwZGF0ZVpPcmRlckxpc3RzKCk7CiAgICAgVmVjdG9yPFJlbmRlckxheWVyKj4q
IHBvc1pPcmRlckxpc3QoKSBjb25zdCB7IHJldHVybiBtX3Bvc1pPcmRlckxpc3Q7IH0KICAgICBW
ZWN0b3I8UmVuZGVyTGF5ZXIqPiogbmVnWk9yZGVyTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbmVn
Wk9yZGVyTGlzdDsgfQogCisgICAgdm9pZCBjb2xsZWN0TGF5ZXJzKFZlY3RvcjxSZW5kZXJMYXll
cio+KiYgcG9zWk9yZGVyTGlzdCwgVmVjdG9yPFJlbmRlckxheWVyKj4qJiBuZWdaT3JkZXJMaXN0
LCBib29sJiBza2lwcGVkSGlkZGVuTGF5ZXJzLCBib29sIGluY2x1ZGVOb25WaXNpYmxlTGF5ZXJz
KTsKKwogICAgIHZvaWQgZGlydHlOb3JtYWxGbG93TGlzdCgpOwogICAgIHZvaWQgdXBkYXRlTm9y
bWFsRmxvd0xpc3QoKTsKICAgICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbm9ybWFsRmxvd0xpc3Qo
KSBjb25zdCB7IHJldHVybiBtX25vcm1hbEZsb3dMaXN0OyB9CkBAIC0zMzAsNiArMzMzLDcgQEAg
cHVibGljOgogICAgIGJvb2wgaGFzVmlzaWJsZURlc2NlbmRhbnQoKSBjb25zdCB7IHJldHVybiBt
X2hhc1Zpc2libGVEZXNjZW5kYW50OyB9CiAgICAgdm9pZCBzZXRIYXNWaXNpYmxlQ29udGVudChi
b29sKTsKICAgICB2b2lkIGRpcnR5VmlzaWJsZUNvbnRlbnRTdGF0dXMoKTsKKyAgICBib29sIHpP
cmRlckxpc3RzT21pdEhpZGRlbkRlc2NlbmRhbnQoKSBjb25zdCB7IHJldHVybiBtX3pPcmRlckxp
c3RzT21pdEhpZGRlbkRlc2NlbmRhbnQ7IH0KIAogICAgIC8vIEdldHMgdGhlIG5lYXJlc3QgZW5j
bG9zaW5nIHBvc2l0aW9uZWQgYW5jZXN0b3IgbGF5ZXIgKGFsc28gaW5jbHVkZXMKICAgICAvLyB0
aGUgPGh0bWw+IGxheWVyIGFuZCB0aGUgcm9vdCBsYXllcikuCkBAIC00NDksOCArNDUzLDYgQEAg
cHJpdmF0ZToKICAgICBpbnQgcmVuZGVyQm94WCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVyKCkt
PmlzQm94KCkgPyB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+eCgpIDogMDsgfQogICAgIGludCBy
ZW5kZXJCb3hZKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS0+aXNCb3goKSA/IHRvUmVuZGVy
Qm94KHJlbmRlcmVyKCkpLT55KCkgOiAwOyB9CiAKLSAgICB2b2lkIGNvbGxlY3RMYXllcnMoVmVj
dG9yPFJlbmRlckxheWVyKj4qJiwgVmVjdG9yPFJlbmRlckxheWVyKj4qJik7Ci0KICAgICB2b2lk
IHVwZGF0ZUxheWVyTGlzdHNJZk5lZWRlZCgpOwogICAgIHZvaWQgdXBkYXRlQ29tcG9zaXRpbmdB
bmRMYXllckxpc3RzSWZOZWVkZWQoKTsKICAgICAKQEAgLTYxNSwxMCArNjE3LDEyIEBAIHByb3Rl
Y3RlZDoKICAgICBib29sIG1fb3ZlcmZsb3dTdGF0dXNEaXJ0eSA6IDE7CiAgICAgYm9vbCBtX2hv
cml6b250YWxPdmVyZmxvdyA6IDE7CiAgICAgYm9vbCBtX3ZlcnRpY2FsT3ZlcmZsb3cgOiAxOwor
CiAgICAgYm9vbCBtX3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkgOiAxOwogICAgIGJvb2wgbV9o
YXNWaXNpYmxlQ29udGVudCA6IDE7CiAgICAgYm9vbCBtX3Zpc2libGVEZXNjZW5kYW50U3RhdHVz
RGlydHkgOiAxOwogICAgIGJvb2wgbV9oYXNWaXNpYmxlRGVzY2VuZGFudCA6IDE7CisgICAgYm9v
bCBtX3pPcmRlckxpc3RzT21pdEhpZGRlbkRlc2NlbmRhbnQgOiAxOyAvLyBTZXQgb24gYSBzdGFj
a2luZyBjb250ZXh0IHdoZW4gdGhlIHotb3JkZXIgbGlzdHMgb21pdCBhIGhpZGRlbiBkZXNjZW5k
YW50LgogCiAgICAgYm9vbCBtXzNEVHJhbnNmb3JtZWREZXNjZW5kYW50U3RhdHVzRGlydHkgOiAx
OwogICAgIGJvb2wgbV9oYXMzRFRyYW5zZm9ybWVkRGVzY2VuZGFudCA6IDE7ICAvLyBTZXQgb24g
YSBzdGFja2luZyBjb250ZXh0IGxheWVyIHRoYXQgaGFzIDNEIGRlc2NlbmRhbnRzIGFueXdoZXJl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA1MjAx
Mjg3Li4yMmRkMWZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKQEAgLTgzLDYgKzgzLDcgQEAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3IoUmVuZGVyVmlldyogcmVuZGVyVmlldykKICAgICAsIG1fY29tcG9zaXRpbmco
ZmFsc2UpCiAgICAgLCBtX3Jvb3RMYXllckF0dGFjaGVkKGZhbHNlKQogICAgICwgbV9jb21wb3Np
dGluZ0xheWVyc05lZWRSZWJ1aWxkKGZhbHNlKQorICAgICwgbV9pbmNsdWRlSGlkZGVuTGF5ZXJz
SW5aT3JkZXJMaXN0cyhmYWxzZSkKICNpZiBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKICAgICAsIG1f
cm9vdExheWVyVXBkYXRlQ291bnQoMCkKICNlbmRpZiAvLyBQUk9GSUxFX0xBWUVSX1JFQlVJTEQK
QEAgLTE2NiwxMiArMTY3LDIwIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVD
b21wb3NpdGluZ0xheWVycyhSZW5kZXJMYXllciogdXBkYXRlUm9vdCkKICAgICB7CiAgICAgICAg
IENvbXBvc2l0aW5nU3RhdGUgY29tcFN0YXRlKHVwZGF0ZVJvb3QpOwogICAgICAgICBib29sIGxh
eWVyc0NoYW5nZWQ7Ci0gICAgICAgIGlmIChtX2NvbXBvc2l0aW5nQ29uc3VsdHNPdmVybGFwKSB7
Ci0gICAgICAgICAgICBPdmVybGFwTWFwIG92ZXJsYXBUZXN0UmVxdWVzdE1hcDsKLSAgICAgICAg
ICAgIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyh1cGRhdGVSb290LCAmb3ZlcmxhcFRl
c3RSZXF1ZXN0TWFwLCBjb21wU3RhdGUsIGxheWVyc0NoYW5nZWQpOwotICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyh1cGRhdGVSb290LCAw
LCBjb21wU3RhdGUsIGxheWVyc0NoYW5nZWQpOwotICAgICAgICAKKyAgICAgICAgYm9vbCBtdXN0
UmVjb21wdXRlTGF5ZXJMaXN0czsKKyAgICAgICAgZG8geworICAgICAgICAgICAgbXVzdFJlY29t
cHV0ZUxheWVyTGlzdHMgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChtX2NvbXBvc2l0aW5nQ29u
c3VsdHNPdmVybGFwKSB7CisgICAgICAgICAgICAgICAgT3ZlcmxhcE1hcCBvdmVybGFwVGVzdFJl
cXVlc3RNYXA7CisgICAgICAgICAgICAgICAgY29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRz
KHVwZGF0ZVJvb3QsICZvdmVybGFwVGVzdFJlcXVlc3RNYXAsIGNvbXBTdGF0ZSwgbXVzdFJlY29t
cHV0ZUxheWVyTGlzdHMsIGxheWVyc0NoYW5nZWQpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgY29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKHVwZGF0ZVJvb3QsIDAs
IGNvbXBTdGF0ZSwgbXVzdFJlY29tcHV0ZUxheWVyTGlzdHMsIGxheWVyc0NoYW5nZWQpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBpZiAobXVzdFJlY29tcHV0ZUxheWVyTGlzdHMpCisgICAg
ICAgICAgICAgICAgdXBkYXRlUm9vdC0+ZGlydHlaT3JkZXJMaXN0c0luY2x1ZGluZ0Rlc2NlbmRh
bnRzKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIH0gd2hpbGUgKG11c3RSZWNvbXB1dGVM
YXllckxpc3RzKTsKKwogICAgICAgICBuZWVkTGF5ZXJSZWJ1aWxkIHw9IGxheWVyc0NoYW5nZWQ7
CiAgICAgfQogCkBAIC0xODQsNyArMTkzLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKFJlbmRlckxheWVyKiB1cGRhdGVSb290KQogI2lmIFBS
T0ZJTEVfTEFZRVJfUkVCVUlMRAogICAgIGRvdWJsZSBlbmRUaW1lID0gV1RGOjpjdXJyZW50VGlt
ZSgpOwogICAgIGlmICh1cGRhdGVSb290ID09IHJvb3RSZW5kZXJMYXllcigpKQotICAgICAgICBm
cHJpbnRmKHN0ZGVyciwgIlVwZGF0ZSAlZDogY29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRz
IGZvciB0aGUgd29ybGQgdG9vayAlZm1zXG4iLAorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVw
ZGF0ZSAlZDogdXBkYXRlQ29tcG9zaXRpbmdMYXllcnMgZm9yIHRoZSB3b3JsZCB0b29rICVmbXNc
biIsCiAgICAgICAgICAgICAgICAgICAgIG1fcm9vdExheWVyVXBkYXRlQ291bnQsIDEwMDAuMCAq
IChlbmRUaW1lIC0gc3RhcnRUaW1lKSk7CiAjZW5kaWYKICAgICBBU1NFUlQodXBkYXRlUm9vdCB8
fCAhbV9jb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKTsKQEAgLTQwOSw2ICs0MTgsMTIgQEAg
Ym9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Om92ZXJsYXBzQ29tcG9zaXRlZExheWVycyhPdmVy
bGFwTWFwJiBvdmVybGFwTWFwLCBjb24KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKy8vIEhlbHBl
ciBmb3IgdGhlIHNvcnRpbmcgb2YgbGF5ZXJzIGJ5IHotaW5kZXguCitzdGF0aWMgaW5saW5lIGJv
b2wgY29tcGFyZVpJbmRleChSZW5kZXJMYXllciogZmlyc3QsIFJlbmRlckxheWVyKiBzZWNvbmQp
Cit7CisgICAgcmV0dXJuIGZpcnN0LT56SW5kZXgoKSA8IHNlY29uZC0+ekluZGV4KCk7Cit9CisK
IC8vICBSZWN1cnNlIHRocm91Z2ggdGhlIGxheWVycyBpbiB6LWluZGV4IGFuZCBvdmVyZmxvdyBv
cmRlciAod2hpY2ggaXMgZXF1aXZhbGVudCB0byBwYWludGluZyBvcmRlcikKIC8vICBGb3IgdGhl
IHotb3JkZXIgY2hpbGRyZW4gb2YgYSBjb21wb3NpdGluZyBsYXllcjoKIC8vICAgICAgSWYgYSBj
aGlsZCBsYXllcnMgaGFzIGEgY29tcG9zaXRpbmcgbGF5ZXIsIHRoZW4gYWxsIHN1YnNlcXVlbnQg
bGF5ZXJzIG11c3QKQEAgLTQxOCwxMSArNDMzLDM0IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpvdmVybGFwc0NvbXBvc2l0ZWRMYXllcnMoT3ZlcmxhcE1hcCYgb3ZlcmxhcE1hcCwgY29u
CiAvLyAgICAgIG11c3QgYmUgY29tcG9zaXRpbmcgc28gdGhhdCBpdHMgY29udGVudHMgcmVuZGVy
IG92ZXIgdGhhdCBjaGlsZC4KIC8vICAgICAgVGhpcyBpbXBsaWVzIHRoYXQgaXRzIHBvc2l0aXZl
IHotaW5kZXggY2hpbGRyZW4gbXVzdCBhbHNvIGJlIGNvbXBvc2l0aW5nLgogLy8KLXZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVy
TGF5ZXIqIGxheWVyLCBPdmVybGFwTWFwKiBvdmVybGFwTWFwLCBzdHJ1Y3QgQ29tcG9zaXRpbmdT
dGF0ZSYgY29tcG9zaXRpbmdTdGF0ZSwgYm9vbCYgbGF5ZXJzQ2hhbmdlZCkKK3ZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5
ZXIqIGxheWVyLCBPdmVybGFwTWFwKiBvdmVybGFwTWFwLCBzdHJ1Y3QgQ29tcG9zaXRpbmdTdGF0
ZSYgY29tcG9zaXRpbmdTdGF0ZSwgYm9vbCYgbXVzdFJlY29tcHV0ZUxheWVyTGlzdHMsIGJvb2wm
IGxheWVyc0NoYW5nZWQpCiB7CiAgICAgbGF5ZXItPnVwZGF0ZUxheWVyUG9zaXRpb24oKTsKICAg
ICBsYXllci0+dXBkYXRlWk9yZGVyTGlzdHMoKTsKICAgICBsYXllci0+dXBkYXRlTm9ybWFsRmxv
d0xpc3QoKTsKKworICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBwb3NaT3JkZXJMaXN0ID0gMDsK
KyAgICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbmVnWk9yZGVyTGlzdCA9IDA7CisgICAgYm9vbCBi
dWlsdE5ld0xpc3RzID0gZmFsc2U7CisgICAgCisgICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29u
dGV4dCgpKSB7CisgICAgICAgIGlmIChsYXllci0+ek9yZGVyTGlzdHNPbWl0SGlkZGVuRGVzY2Vu
ZGFudCgpKSB7CisgICAgICAgICAgICBib29sIHNraXBwZWRIaWRkZW5MYXllcnMgPSBmYWxzZTsK
KyAgICAgICAgICAgIGxheWVyLT5jb2xsZWN0TGF5ZXJzKHBvc1pPcmRlckxpc3QsIG5lZ1pPcmRl
ckxpc3QsIHNraXBwZWRIaWRkZW5MYXllcnMsIHRydWUgLyogaW5jbHVkZU5vblZpc2libGVMYXll
cnMgKi8pOworCisgICAgICAgICAgICAvLyBTb3J0IHRoZSB0d28gbGlzdHMuCisgICAgICAgICAg
ICBpZiAocG9zWk9yZGVyTGlzdCkKKyAgICAgICAgICAgICAgICBzdGQ6OnN0YWJsZV9zb3J0KHBv
c1pPcmRlckxpc3QtPmJlZ2luKCksIHBvc1pPcmRlckxpc3QtPmVuZCgpLCBjb21wYXJlWkluZGV4
KTsKKworICAgICAgICAgICAgaWYgKG5lZ1pPcmRlckxpc3QpCisgICAgICAgICAgICAgICAgc3Rk
OjpzdGFibGVfc29ydChuZWdaT3JkZXJMaXN0LT5iZWdpbigpLCBuZWdaT3JkZXJMaXN0LT5lbmQo
KSwgY29tcGFyZVpJbmRleCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJ1aWx0TmV3TGlz
dHMgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcG9zWk9yZGVyTGlzdCA9
IGxheWVyLT5wb3NaT3JkZXJMaXN0KCk7CisgICAgICAgICAgICBuZWdaT3JkZXJMaXN0ID0gbGF5
ZXItPm5lZ1pPcmRlckxpc3QoKTsKKyAgICAgICAgfQorICAgIH0KICAgICAKICAgICAvLyBDbGVh
ciB0aGUgZmxhZwogICAgIGxheWVyLT5zZXRIYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoZmFsc2Up
OwpAQCAtNDQ4LDggKzQ4NiwxOCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0
ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBsYXllciwgTwogICAgICsrY2hp
bGRTdGF0ZS5tX2RlcHRoOwogI2VuZGlmCiAKLSAgICBjb25zdCBib29sIHdpbGxCZUNvbXBvc2l0
ZWQgPSBuZWVkc1RvQmVDb21wb3NpdGVkKGxheWVyKTsKKyAgICBib29sIHdpbGxCZUNvbXBvc2l0
ZWQgPSBuZWVkc1RvQmVDb21wb3NpdGVkKGxheWVyKTsKICAgICBpZiAod2lsbEJlQ29tcG9zaXRl
ZCkgeworICAgICAgICAvLyBBcyBzb29uIGFzIHdlIGRldGVybWluZSB0aGF0IHdlIGFyZSBnb2lu
ZyB0byBnbyBpbnRvIGNvbXBvc2l0aW5nIG1vZGUsIGlmIGFueSB6LW9yZGVyCisgICAgICAgIC8v
IGxpc3RzIG9taXQgdmlzaWJpbGl0eTpoaWRkZW4gbGF5ZXJzLCB0aGVuIHdlIG5lZWQgdG8gYmFp
bCwgcmVzZXQgdGhlIHotb3JkZXIgbGlzdHMgYW5kCisgICAgICAgIC8vIHN0YXJ0IGFnYWluLiBX
ZSBoYXZlIHRvIGJlIHRoaXMgZHJhY29uaWFuIGJlY2F1c2Ugd2UgYXJlIGl0ZXJhdGluZyB2aWEg
dGhlIHotb3JkZXIgbGlzdHMsCisgICAgICAgIC8vIGFuZCBuZWVkIHRvIGVuc3VyZSB0aGF0IHdl
IGRvbid0IHNraXAgaGlkZGVuIGxheWVycy4KKyAgICAgICAgaWYgKCFtX2luY2x1ZGVIaWRkZW5M
YXllcnNJblpPcmRlckxpc3RzKSB7CisgICAgICAgICAgICBtX2luY2x1ZGVIaWRkZW5MYXllcnNJ
blpPcmRlckxpc3RzID0gdHJ1ZTsKKyAgICAgICAgICAgIG11c3RSZWNvbXB1dGVMYXllckxpc3Rz
ID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsgLy8gQkFECisgICAgICAgIH0KKyAgICAgICAg
ICAgIAogICAgICAgICAvLyBUZWxsIHRoZSBwYXJlbnQgaXQgaGFzIGNvbXBvc2l0aW5nIGRlc2Nl
bmRhbnRzLgogICAgICAgICBjb21wb3NpdGluZ1N0YXRlLm1fc3VidHJlZUlzQ29tcG9zaXRpbmcg
PSB0cnVlOwogICAgICAgICAvLyBUaGlzIGxheWVyIG5vdyBhY3RzIGFzIHRoZSBhbmNlc3RvciBm
b3Iga2lkcy4KQEAgLTQ2NiwyMyArNTE0LDIzIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGxheWVyLCBPCiAg
ICAgICAgIGNoaWxkU3RhdGUubV9zdWJ0cmVlSXNDb21wb3NpdGluZyA9IHRydWU7CiAjZW5kaWYK
IAotICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkgewotICAgICAgICBBU1NFUlQo
IWxheWVyLT5tX3pPcmRlckxpc3RzRGlydHkpOwotICAgICAgICBpZiAoVmVjdG9yPFJlbmRlckxh
eWVyKj4qIG5lZ1pPcmRlckxpc3QgPSBsYXllci0+bmVnWk9yZGVyTGlzdCgpKSB7Ci0gICAgICAg
ICAgICBzaXplX3QgbGlzdFNpemUgPSBuZWdaT3JkZXJMaXN0LT5zaXplKCk7Ci0gICAgICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKLSAgICAgICAgICAgICAg
ICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSBuZWdaT3JkZXJMaXN0LT5hdChpKTsKLSAgICAgICAg
ICAgICAgICBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoY3VyTGF5ZXIsIG92ZXJsYXBN
YXAsIGNoaWxkU3RhdGUsIGxheWVyc0NoYW5nZWQpOwotCi0gICAgICAgICAgICAgICAgLy8gSWYg
d2UgaGF2ZSB0byBtYWtlIGEgbGF5ZXIgZm9yIHRoaXMgY2hpbGQsIG1ha2Ugb25lIG5vdyBzbyB3
ZSBjYW4gaGF2ZSBhIGNvbnRlbnRzIGxheWVyCi0gICAgICAgICAgICAgICAgLy8gKHNpbmNlIHdl
IG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIC12ZSB6LW9yZGVyIGNoaWxkIHJlbmRlcnMgdW5kZXJu
ZWF0aCBvdXIgY29udGVudHMpLgotICAgICAgICAgICAgICAgIGlmIChjaGlsZFN0YXRlLm1fc3Vi
dHJlZUlzQ29tcG9zaXRpbmcpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBsYXllciBj
b21wb3NpdGluZwotICAgICAgICAgICAgICAgICAgICBsYXllci0+c2V0TXVzdE92ZXJsYXBDb21w
b3NpdGVkTGF5ZXJzKHRydWUpOwotICAgICAgICAgICAgICAgICAgICBjaGlsZFN0YXRlLm1fY29t
cG9zaXRpbmdBbmNlc3RvciA9IGxheWVyOwotICAgICAgICAgICAgICAgICAgICBpZiAob3Zlcmxh
cE1hcCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGFkZFRvT3ZlcmxhcE1hcCgqb3ZlcmxhcE1h
cCwgbGF5ZXIsIGFic0JvdW5kcywgaGF2ZUNvbXB1dGVkQm91bmRzKTsKLSAgICAgICAgICAgICAg
ICB9CisgICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpICYmIG5lZ1pPcmRlckxpc3Qp
IHsKKyAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gbmVnWk9yZGVyTGlzdC0+c2l6ZSgpOworICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKKyAgICAgICAgICAg
IFJlbmRlckxheWVyKiBjdXJMYXllciA9IG5lZ1pPcmRlckxpc3QtPmF0KGkpOworICAgICAgICAg
ICAgY29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKGN1ckxheWVyLCBvdmVybGFwTWFwLCBj
aGlsZFN0YXRlLCBtdXN0UmVjb21wdXRlTGF5ZXJMaXN0cywgbGF5ZXJzQ2hhbmdlZCk7CisgICAg
ICAgICAgICBpZiAobXVzdFJlY29tcHV0ZUxheWVyTGlzdHMpCisgICAgICAgICAgICAgICAgcmV0
dXJuOyAvLyBCQUQKKworICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSB0byBtYWtlIGEgbGF5ZXIg
Zm9yIHRoaXMgY2hpbGQsIG1ha2Ugb25lIG5vdyBzbyB3ZSBjYW4gaGF2ZSBhIGNvbnRlbnRzIGxh
eWVyCisgICAgICAgICAgICAvLyAoc2luY2Ugd2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgLXZl
IHotb3JkZXIgY2hpbGQgcmVuZGVycyB1bmRlcm5lYXRoIG91ciBjb250ZW50cykuCisgICAgICAg
ICAgICBpZiAoY2hpbGRTdGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nKSB7CisgICAgICAgICAg
ICAgICAgLy8gbWFrZSBsYXllciBjb21wb3NpdGluZworICAgICAgICAgICAgICAgIGxheWVyLT5z
ZXRNdXN0T3ZlcmxhcENvbXBvc2l0ZWRMYXllcnModHJ1ZSk7CisgICAgICAgICAgICAgICAgd2ls
bEJlQ29tcG9zaXRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgY2hpbGRTdGF0ZS5tX2NvbXBv
c2l0aW5nQW5jZXN0b3IgPSBsYXllcjsKKyAgICAgICAgICAgICAgICBpZiAob3ZlcmxhcE1hcCkK
KyAgICAgICAgICAgICAgICAgICAgYWRkVG9PdmVybGFwTWFwKCpvdmVybGFwTWFwLCBsYXllciwg
YWJzQm91bmRzLCBoYXZlQ29tcHV0ZWRCb3VuZHMpOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgfQpAQCAtNDkyLDE3ICs1NDAsMTkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5ZXIsIE8KICAg
ICAgICAgc2l6ZV90IGxpc3RTaXplID0gbm9ybWFsRmxvd0xpc3QtPnNpemUoKTsKICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBSZW5k
ZXJMYXllciogY3VyTGF5ZXIgPSBub3JtYWxGbG93TGlzdC0+YXQoaSk7Ci0gICAgICAgICAgICBj
b21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoY3VyTGF5ZXIsIG92ZXJsYXBNYXAsIGNoaWxk
U3RhdGUsIGxheWVyc0NoYW5nZWQpOworICAgICAgICAgICAgY29tcHV0ZUNvbXBvc2l0aW5nUmVx
dWlyZW1lbnRzKGN1ckxheWVyLCBvdmVybGFwTWFwLCBjaGlsZFN0YXRlLCBtdXN0UmVjb21wdXRl
TGF5ZXJMaXN0cywgbGF5ZXJzQ2hhbmdlZCk7CisgICAgICAgICAgICBpZiAobXVzdFJlY29tcHV0
ZUxheWVyTGlzdHMpCisgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBCQUQKICAgICAgICAgfQog
ICAgIH0KIAotICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkgewotICAgICAgICBp
ZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSBsYXllci0+cG9zWk9yZGVy
TGlzdCgpKSB7Ci0gICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0LT5z
aXplKCk7Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kp
IHsKLSAgICAgICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSBwb3NaT3JkZXJMaXN0
LT5hdChpKTsKLSAgICAgICAgICAgICAgICBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMo
Y3VyTGF5ZXIsIG92ZXJsYXBNYXAsIGNoaWxkU3RhdGUsIGxheWVyc0NoYW5nZWQpOwotICAgICAg
ICAgICAgfQorICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSAmJiBwb3NaT3JkZXJM
aXN0KSB7CisgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IHBvc1pPcmRlckxpc3QtPnNpemUoKTsK
KyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAg
ICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSBwb3NaT3JkZXJMaXN0LT5hdChpKTsKKyAgICAg
ICAgICAgIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhjdXJMYXllciwgb3ZlcmxhcE1h
cCwgY2hpbGRTdGF0ZSwgbXVzdFJlY29tcHV0ZUxheWVyTGlzdHMsIGxheWVyc0NoYW5nZWQpOwor
ICAgICAgICAgICAgaWYgKG11c3RSZWNvbXB1dGVMYXllckxpc3RzKQorICAgICAgICAgICAgICAg
IHJldHVybjsgLy8gQkFECiAgICAgICAgIH0KICAgICB9CiAKQEAgLTUxMSw2ICs1NjEsMTUgQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50
cyhSZW5kZXJMYXllciogbGF5ZXIsIE8KICAgICAvLyB0aGUgY2hpbGQgbGF5ZXJzIGFyZSBvcGFx
dWUsIHRoZW4gcmVuZGVyZWQgd2l0aCBvcGFjaXR5IG9uIHRoaXMgbGF5ZXIuCiAgICAgaWYgKGNo
aWxkU3RhdGUubV9zdWJ0cmVlSXNDb21wb3NpdGluZyAmJiByZXF1aXJlc0NvbXBvc2l0aW5nV2hl
bkRlc2NlbmRhbnRzQXJlQ29tcG9zaXRpbmcobGF5ZXItPnJlbmRlcmVyKCkpKSB7CiAgICAgICAg
IGxheWVyLT5zZXRNdXN0T3ZlcmxhcENvbXBvc2l0ZWRMYXllcnModHJ1ZSk7CisgICAgICAgIHdp
bGxCZUNvbXBvc2l0ZWQgPSB0cnVlOworCisgICAgICAgIC8vIElmIHdlIGFyZSBub3cgZ29pbmcg
aW50byBjb21wb3NpdGluZyBtb2RlLCAKKyAgICAgICAgaWYgKCFtX2luY2x1ZGVIaWRkZW5MYXll
cnNJblpPcmRlckxpc3RzKSB7CisgICAgICAgICAgICBtX2luY2x1ZGVIaWRkZW5MYXllcnNJblpP
cmRlckxpc3RzID0gdHJ1ZTsKKyAgICAgICAgICAgIG11c3RSZWNvbXB1dGVMYXllckxpc3RzID0g
dHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsgLy8gQkFECisgICAgICAgIH0KKwogICAgICAgICBp
ZiAob3ZlcmxhcE1hcCkKICAgICAgICAgICAgIGFkZFRvT3ZlcmxhcE1hcCgqb3ZlcmxhcE1hcCwg
bGF5ZXIsIGFic0JvdW5kcywgaGF2ZUNvbXB1dGVkQm91bmRzKTsKICAgICB9CkBAIC01MjAsNyAr
NTc5LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1Jl
cXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5ZXIsIE8KICAgICAgICAgY29tcG9zaXRpbmdTdGF0
ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nID0gdHJ1ZTsKIAogICAgIC8vIElmIHRoZSBsYXllciBp
cyBnb2luZyBpbnRvIGNvbXBvc2l0aW5nIG1vZGUsIHJlcGFpbnQgaXRzIG9sZCBsb2NhdGlvbi4K
LSAgICBpZiAoIWxheWVyLT5pc0NvbXBvc2l0ZWQoKSAmJiBuZWVkc1RvQmVDb21wb3NpdGVkKGxh
eWVyKSkKKyAgICBpZiAoIWxheWVyLT5pc0NvbXBvc2l0ZWQoKSAmJiB3aWxsQmVDb21wb3NpdGVk
KQogICAgICAgICByZXBhaW50T25Db21wb3NpdGluZ0NoYW5nZShsYXllcik7CiAKICAgICAvLyBT
ZXQgdGhlIGZsYWcgdG8gc2F5IHRoYXQgdGhpcyBTQyBoYXMgY29tcG9zaXRpbmcgY2hpbGRyZW4u
CkBAIC01MzEsNiArNTkwLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRl
Q29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGxheWVyLCBPCiAgICAgLy8gVXBk
YXRlIGJhY2tpbmcgbm93LCBzbyB0aGF0IHdlIGNhbiB1c2UgaXNDb21wb3NpdGVkKCkgcmVsaWFi
bHkgZHVyaW5nIHRyZWUgdHJhdmVyc2FsIGluIHJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJlZSgp
LgogICAgIGlmICh1cGRhdGVCYWNraW5nKGxheWVyLCBDb21wb3NpdGluZ0NoYW5nZVJlcGFpbnRO
b3cpKQogICAgICAgICBsYXllcnNDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgCisgICAgaWYgKGJ1
aWx0TmV3TGlzdHMpIHsKKyAgICAgICAgZGVsZXRlIHBvc1pPcmRlckxpc3Q7CisgICAgICAgIGRl
bGV0ZSBuZWdaT3JkZXJMaXN0OworICAgIH0KIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnNldENvbXBvc2l0aW5nUGFyZW50KFJlbmRlckxheWVyKiBjaGlsZExheWVyLCBSZW5kZXJM
YXllciogcGFyZW50TGF5ZXIpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5oCmluZGV4IGE4MDlhNzAuLjU0YTY3ODQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oCkBAIC02Myw3ICs2MywxMCBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8g
Q29weSB0aGUgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWRGbGFnIGZyb20gU2V0dGluZ3MK
ICAgICB2b2lkIGNhY2hlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWRGbGFnKCk7Ci0KKyAg
ICAKKyAgICAvLyBJbmRpY2F0ZXMgdGhhdCBSZW5kZXJMYXllciBzaG91bGQgbm90IGV4Y2x1ZGUg
bm9uLXZpc2libGUgbGF5ZXJzIGZyb20gdGhlIHotb3JkZXIgbGlzdHMuCisgICAgYm9vbCBpbmNs
dWRlSGlkZGVuTGF5ZXJzSW5aT3JkZXJMaXN0cygpIGNvbnN0IHsgcmV0dXJuIG1faW5jbHVkZUhp
ZGRlbkxheWVyc0luWk9yZGVyTGlzdHM7IH0KKyAgICAKICAgICAvLyBDYWxsZWQgd2hlbiB0aGUg
bGF5ZXIgaGllcmFyY2h5IG5lZWRzIHRvIGJlIHVwZGF0ZWQgKGNvbXBvc2l0aW5nIGxheWVycyBo
YXZlIGJlZW4KICAgICAvLyBjcmVhdGVkLCBkZXN0cm95ZWQgb3IgcmUtcGFyZW50ZWQpLgogICAg
IHZvaWQgc2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZChib29sIG5lZWRSZWJ1aWxkID0g
dHJ1ZSk7CkBAIC0xNDUsOCArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBhZGRU
b092ZXJsYXBNYXAoT3ZlcmxhcE1hcCYsIFJlbmRlckxheWVyKiwgSW50UmVjdCYgbGF5ZXJCb3Vu
ZHMsIGJvb2wmIGJvdW5kc0NvbXB1dGVkKTsKICAgICBzdGF0aWMgYm9vbCBvdmVybGFwc0NvbXBv
c2l0ZWRMYXllcnMoT3ZlcmxhcE1hcCYsIGNvbnN0IEludFJlY3QmIGxheWVyQm91bmRzKTsKIAot
ICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgbGF5ZXIncyBjb21wb3NpdGluZyBjaGFuZ2VkCi0g
ICAgdm9pZCBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqLCBPdmVy
bGFwTWFwKiwgc3RydWN0IENvbXBvc2l0aW5nU3RhdGUmLCBib29sJiBsYXllcnNDaGFuZ2VkKTsK
KyAgICB2b2lkIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciosIE92
ZXJsYXBNYXAqLCBzdHJ1Y3QgQ29tcG9zaXRpbmdTdGF0ZSYsIGJvb2wmIHJlY29tcHV0ZUxheWVy
TGlzdHMsIGJvb2wmIGxheWVyc0NoYW5nZWQpOwogICAgIHZvaWQgcmVidWlsZENvbXBvc2l0aW5n
TGF5ZXJUcmVlKFJlbmRlckxheWVyKiBsYXllciwgc3RydWN0IENvbXBvc2l0aW5nU3RhdGUmLCBi
b29sIHVwZGF0ZUhpZXJhcmNoeSk7CiAKICAgICAvLyBIb29rIGNvbXBvc2l0aW5nIGxheWVycyB0
b2dldGhlcgpAQCAtMTc2LDYgKzE3OCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Jvb3RMYXll
ckF0dGFjaGVkOwogICAgIGJvb2wgbV9jb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkOwogICAg
IAorICAgIGJvb2wgbV9pbmNsdWRlSGlkZGVuTGF5ZXJzSW5aT3JkZXJMaXN0czsKKyAgICAKICNp
ZiBQUk9GSUxFX0xBWUVSX1JFQlVJTEQKICAgICBpbnQgbV9yb290TGF5ZXJVcGRhdGVDb3VudDsK
ICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112934</attachid>
            <date>2011-10-28 16:03:48 -0700</date>
            <delta_ts>2013-05-08 09:32:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-29984-20111028160347.patch</filename>
            <type>text/plain</type>
            <size>13392</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3NjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZjUxZTliYTdmODI0YTAy
YzRlMDc3OWFmZWUwOTkzNjhmNzA0MTQyLi44YWYyNjYwMzk0YTE5YmVmYmI4ODhiMWVhZDBkNTEy
MzAwMWZhZmI0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzAgQEAKIDIwMTEtMTAtMjggIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKKyAgICAgICAgSWYgdmlzaWJpbGl0
eSBjaGFuZ2VzIHdoaWxlIGFuIGFjY2VsZXJhdGVkIGFuaW1hdGlvbiBpcyBydW5uaW5nLCBlbGVt
ZW50IGp1bXBzIGFyb3VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Mjk5ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgCisgICAgICAgIENvbXBvc2l0aW5nIG5vdyBhZmZlY3RzIHdoZXRoZXIgUmVuZGVyTGF5
ZXJzIGZvciB2aXNpYmlsaXR5OmhpZGRlbiBlbGVtZW50cworICAgICAgICBhcmUgaW5jbHVkZWQg
aW4gei1vcmRlciBsaXN0cy4gU28gd2UgaGF2ZSB0byBkaXJ0eSB0aG9zZSBsaXN0cyB3aGVuIHdl
IGVudGVyCisgICAgICAgIGNvbXBvcHNpdGluZyBtb2RlLgorCisgICAgICAgIFRlc3Q6IGNvbXBv
c2l0aW5nL3Zpc2liaWxpdHkvYW5pbWF0aW9uLXZpc2liaWxpdHkuaHRtbAorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Ojp1cGRhdGVWaXNpYmlsaXR5U3RhdHVzKTogUmVtb3ZlZCB0cmFpbGluZyB3aGl0ZXNwYWNlLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMpOiBDYWxsIGRp
cnR5Wk9yZGVyTGlzdHNJbnRlcm5hbCgpLCB3aGljaCBkb2Vzbid0IGhhdmUKKyAgICAgICAgdG8g
cGluZyB0aGUgY29tcG9zaXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkaXJ0
eVpPcmRlckxpc3RzSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRp
cnR5Wk9yZGVyTGlzdHNJbmNsdWRpbmdEZXNjZW5kYW50cyk6IFJlY3Vyc2l2ZWx5IGRpcnR5IHot
b3JkZXIKKyAgICAgICAgbGlzdHMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuYWJsZUNvbXBvc2l0aW5nTW9kZSk6
IFdoZW4gZ29pbmcgaW50byBjb21wb3NpdGluZyBtb2RlLAorICAgICAgICBkaXJ0eSBhbGwgei1v
cmRlciBsaXN0cy4KKworMjAxMS0xMC0yOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KKwogICAgICAgICBSZW1vdmUgTGVvcGFyZC1vbmx5IGNvZGUgZnJvbSBHcmFwaGlj
c0xheWVyQ0EKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcxMTQxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGYy
OWU2ZGNhMjlmNzZhMzMyYjM4ZWQ1YjNmNTE0NGIwZTgwOGU3ODkuLmY2YTU1YjcxYjQwMWU0OTM0
YzcxOWJjNGE0ZjY4NzVlZTVmMTU5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcApAQCAtNjE3LDcgKzYxNyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVZp
c2liaWxpdHlTdGF0dXMoKQogICAgIGlmIChtX3Zpc2libGVEZXNjZW5kYW50U3RhdHVzRGlydHkp
IHsKICAgICAgICAgbV9oYXNWaXNpYmxlRGVzY2VuZGFudCA9IGZhbHNlOwogICAgICAgICBmb3Ig
KFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgICAgIGNoaWxkLT51cGRhdGVWaXNpYmlsaXR5U3Rh
dHVzKCk7ICAgICAgICAKKyAgICAgICAgICAgIGNoaWxkLT51cGRhdGVWaXNpYmlsaXR5U3RhdHVz
KCk7CiAgICAgICAgICAgICBpZiAoY2hpbGQtPm1faGFzVmlzaWJsZUNvbnRlbnQgfHwgY2hpbGQt
Pm1faGFzVmlzaWJsZURlc2NlbmRhbnQpIHsKICAgICAgICAgICAgICAgICBtX2hhc1Zpc2libGVE
ZXNjZW5kYW50ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM5NzAsMTYgKzM5
NzAsMjkgQEAgc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVaSW5kZXgoUmVuZGVyTGF5ZXIqIGZp
cnN0LCBSZW5kZXJMYXllciogc2Vjb25kKQogCiB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVpPcmRl
ckxpc3RzKCkKIHsKKyAgICBkaXJ0eVpPcmRlckxpc3RzSW50ZXJuYWwoKTsKKyAgICAKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKCFyZW5kZXJlcigpLT5kb2N1bWVu
dEJlaW5nRGVzdHJveWVkKCkpCisgICAgICAgIGNvbXBvc2l0b3IoKS0+c2V0Q29tcG9zaXRpbmdM
YXllcnNOZWVkUmVidWlsZCgpOworI2VuZGlmCit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5
Wk9yZGVyTGlzdHNJbnRlcm5hbCgpCit7CiAgICAgaWYgKG1fcG9zWk9yZGVyTGlzdCkKICAgICAg
ICAgbV9wb3NaT3JkZXJMaXN0LT5jbGVhcigpOwogICAgIGlmIChtX25lZ1pPcmRlckxpc3QpCiAg
ICAgICAgIG1fbmVnWk9yZGVyTGlzdC0+Y2xlYXIoKTsKICAgICBtX3pPcmRlckxpc3RzRGlydHkg
PSB0cnVlOworfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmICgh
cmVuZGVyZXIoKS0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQotICAgICAgICBjb21wb3NpdG9y
KCktPnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKLSNlbmRpZgordm9pZCBSZW5k
ZXJMYXllcjo6ZGlydHlaT3JkZXJMaXN0c0luY2x1ZGluZ0Rlc2NlbmRhbnRzKCkKK3sKKyAgICBk
aXJ0eVpPcmRlckxpc3RzSW50ZXJuYWwoKTsKKworICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxk
ID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKKyAg
ICAgICAgY2hpbGQtPmRpcnR5Wk9yZGVyTGlzdHNJbmNsdWRpbmdEZXNjZW5kYW50cygpOwogfQog
CiB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVN0YWNraW5nQ29udGV4dFpPcmRlckxpc3RzKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNjJlZjQ0NGI5NjY3Y2FjYTNl
YWM4N2QwYmUxNDg2ZDJmY2MyMmU3Yy4uZmIxNWFkYTIyYjdjMTNjNTk2M2QwMWY2YTU4YzJjZDEz
MmYzYjYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTM3Niw2
ICszNzYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N0YWNraW5nQ29udGV4dCgpIGNvbnN0IHsg
cmV0dXJuICFoYXNBdXRvWkluZGV4KCkgfHwgcmVuZGVyZXIoKS0+aXNSZW5kZXJWaWV3KCk7IH0K
IAogICAgIHZvaWQgZGlydHlaT3JkZXJMaXN0cygpOworICAgIHZvaWQgZGlydHlaT3JkZXJMaXN0
c0luY2x1ZGluZ0Rlc2NlbmRhbnRzKCk7CiAgICAgdm9pZCBkaXJ0eVN0YWNraW5nQ29udGV4dFpP
cmRlckxpc3RzKCk7CiAgICAgdm9pZCB1cGRhdGVaT3JkZXJMaXN0cygpOwogICAgIFZlY3RvcjxS
ZW5kZXJMYXllcio+KiBwb3NaT3JkZXJMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9wb3NaT3JkZXJM
aXN0OyB9CkBAIC01NDAsNiArNTQxLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFBhcmVudChS
ZW5kZXJMYXllciogcGFyZW50KTsKICAgICB2b2lkIHNldEZpcnN0Q2hpbGQoUmVuZGVyTGF5ZXIq
IGZpcnN0KSB7IG1fZmlyc3QgPSBmaXJzdDsgfQogICAgIHZvaWQgc2V0TGFzdENoaWxkKFJlbmRl
ckxheWVyKiBsYXN0KSB7IG1fbGFzdCA9IGxhc3Q7IH0KKyAgICAKKyAgICB2b2lkIGRpcnR5Wk9y
ZGVyTGlzdHNJbnRlcm5hbCgpOwogCiAgICAgTGF5b3V0UG9pbnQgcmVuZGVyQm94TG9jYXRpb24o
KSBjb25zdCB7IHJldHVybiByZW5kZXJlcigpLT5pc0JveCgpID8gdG9SZW5kZXJCb3gocmVuZGVy
ZXIoKSktPmxvY2F0aW9uKCkgOiBMYXlvdXRQb2ludCgpOyB9CiAgICAgTGF5b3V0VW5pdCByZW5k
ZXJCb3hYKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyQm94TG9jYXRpb24oKS54KCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5k
ZXggNmFiNTBjYmRiMmQyNDY0MGUxZDFlMDQ4MTc4MmI2N2Y3NDM4NzdhYS4uZGNiNzYzMGE5ZGFk
M2MyYjhiYjU1ZjA0NTNjYTZiMDMxMjE4MmQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTEyNCw2ICsxMjQsOCBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZW5hYmxlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW5h
YmxlIC8qID0gdHJ1ZSAqLykKICAgICAgICAgCiAgICAgICAgIGlmIChtX2NvbXBvc2l0aW5nKSB7
CiAgICAgICAgICAgICBlbnN1cmVSb290TGF5ZXIoKTsKKyAgICAgICAgICAgIC8vIENvbXBvc2l0
aW5nIGFmZmVjdHMgd2hldGhlciB2aXNpYmlsaXR5OmhpZGRlbiBsYXllcnMgYXJlIGluY2x1ZGVk
IGluIHotb3JkZXIgbGlzdHMsIHNvIHdlIGhhdmUgdG8gZGlydHkgdGhlIGxpc3RzIGhlcmUuCisg
ICAgICAgICAgICByb290UmVuZGVyTGF5ZXIoKS0+ZGlydHlaT3JkZXJMaXN0c0luY2x1ZGluZ0Rl
c2NlbmRhbnRzKCk7CiAgICAgICAgICAgICBub3RpZnlJRnJhbWVzT2ZDb21wb3NpdGluZ0NoYW5n
ZSgpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGRlc3Ryb3lSb290TGF5ZXIoKTsKQEAg
LTExMjQsNyArMTEyNiw2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21w
b3NpdGluZ0Rlc2NlbmRhbnRHZW9tZXRyeShSZW5kZXJMYXllciogY29tCiAgICAgfQogfQogCi0K
IHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXBhaW50Q29tcG9zaXRlZExheWVyc0Fic29s
dXRlUmVjdChjb25zdCBMYXlvdXRSZWN0JiBhYnNSZWN0KQogewogICAgIHJlY3Vyc2l2ZVJlcGFp
bnRMYXllclJlY3Qocm9vdFJlbmRlckxheWVyKCksIGFic1JlY3QpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVmZjcwNWZj
MmNlYzBlYWE4ODBmY2I4MzdkNGMzZWY3NWRmMzZmMDYuLmY5NmQ2ZGMzMGU3MGM0ODU5NjAzNDkz
Njk4NDUxMDIyY2U1YmM4ZDcgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0xMC0yOCAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBJZiB2aXNpYmls
aXR5IGNoYW5nZXMgd2hpbGUgYW4gYWNjZWxlcmF0ZWQgYW5pbWF0aW9uIGlzIHJ1bm5pbmcsIGVs
ZW1lbnQganVtcHMgYXJvdW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yOTk4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
ICAgICAgICAKKyAgICAgICAgQWRkIHRlc3RjYXNlIGZvciB2aXNpYmlsaXR5IGNoYW5naW5nIGlu
IHRoZSBtaWRkbGUgb2YgYW4gYWNjZWxlcmF0ZWQgYW5pbWF0aW9uLgorCisgICAgICAgICogYW5p
bWF0aW9ucy9yZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qczogQWRkIHNvbWUgY29u
c3RhbnRzIGZvciByZWFkYWJpbGl0eS4KKyAgICAgICAgKGNoZWNrRXhwZWN0ZWRWYWx1ZSk6IEFk
ZCBzdXBwb3J0IGZvciB0ZXN0aW5nICd2aXNpYmlsaXR5Jy4KKyAgICAgICAgKiBjb21wb3NpdGlu
Zy92aXNpYmlsaXR5L2FuaW1hdGlvbi12aXNpYmlsaXR5LWV4cGVjdGVkLnBuZzogQWRkZWQuCisg
ICAgICAgICogY29tcG9zaXRpbmcvdmlzaWJpbGl0eS9hbmltYXRpb24tdmlzaWJpbGl0eS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL3Zpc2liaWxpdHkvYW5pbWF0
aW9uLXZpc2liaWxpdHkuaHRtbDogQWRkZWQuCisKIDIwMTEtMTAtMjggIEpvaG4gR3JlZ2cgIDxq
b2hubnlnQGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1o
ZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9yZXNvdXJjZXMvYW5pbWF0aW9uLXRl
c3QtaGVscGVycy5qcwppbmRleCBlMTVlMWIwMzZmNzQ5MDNlNjkxYTgyY2FiZTE3NjNlZTlhNGY4
ODcwLi42NTQxMzcwMWM1ODQwZWUzYzQ1ZjYwMTE4ZjU4N2MxZGFiNzVjNzY0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJz
LmpzCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0
LWhlbHBlcnMuanMKQEAgLTMzLDYgKzMzLDkgQEAgRnVuY3Rpb24gcGFyYW1ldGVyczoKIAogKi8K
IAorY29uc3QgZG9QaXhlbFRlc3QgPSB0cnVlOworY29uc3QgZG9udERvUGl4ZWxUZXN0ID0gZmFs
c2U7CisKIGZ1bmN0aW9uIGlzQ2xvc2VFbm91Z2goYWN0dWFsLCBkZXNpcmVkLCB0b2xlcmFuY2Up
CiB7CiAgICAgdmFyIGRpZmYgPSBNYXRoLmFicyhhY3R1YWwgLSBkZXNpcmVkKTsKQEAgLTE0MCw2
ICsxNDMsMjAgQEAgZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZhbHVlKGV4cGVjdGVkLCBpbmRleCkK
ICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBwYXNzID0gaXNDbG9zZUVub3Vn
aChjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpOworICAgIH0gZWxzZSBp
ZiAocHJvcGVydHkgPT0gInZpc2liaWxpdHkiKSB7CisgICAgICAgIHZhciBlbGVtZW50OworICAg
ICAgICBpZiAoaWZyYW1lSWQpCisgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoaWZyYW1lSWQpLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50
SWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoZWxlbWVudElkKTsKKworICAgICAgICBjb21wdXRlZFZhbHVlID0gd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZWxlbWVudCkudmlzaWJpbGl0eTsKKyAgICAgICAgaWYgKGNvbXBhcmVF
bGVtZW50cykgeworICAgICAgICAgICAgY29tcHV0ZWRWYWx1ZTIgPSB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQyKSkudmlzaWJpbGl0eTsK
KyAgICAgICAgICAgIHBhc3MgPSBjb21wdXRlZFZhbHVlID09IGNvbXB1dGVkVmFsdWUyOworICAg
ICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBhc3MgPSBjb21wdXRlZFZhbHVlID09
IGV4cGVjdGVkVmFsdWU7CiAgICAgfSBlbHNlIHsKICAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAg
ICAgIGlmIChpZnJhbWVJZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Zp
c2liaWxpdHkvYW5pbWF0aW9uLXZpc2liaWxpdHktZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvdmlzaWJpbGl0eS9hbmltYXRpb24tdmlzaWJpbGl0eS1leHBlY3RlZC5wbmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODFjN2Y3YzJjMTQ2YmE5NjllNmFlNGIxMGYzMjIxYjllODg0NWIyYgpHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMTE1NjkKemNtZUhOWDtmMyE3UVB1STI/VXUxbz5aPDM7IzQz
cTNre2JeSyNAVSlxOWBFKig1TSZgNWFePk0hVEtLYVh2SCNHCnpYLWckQ0l4dU14RFBSWkRSU3s2
fmxweGN4WCNobmFEMT4qZCFwKUVPX3Iwfj1USzhBKC1zXyZkX3hXPH0tdXJ5Iwp6V2N2R2hzdykz
WTgyfHVQWiFoLSkwRHVEbDAyQGtGZjtGWFEpOHBXdVozIU5zMzU7WFdqMSUjUnU+ZGBpViRGemwK
enUoT1lgLWVxSEpNV00mVVEwUHxsTklQNDV5QkxPQHtSRWBqMjN5KDBiYVY2ZmM1PyYkJiMrPmND
ISt4JThGTX5wCnpfKFkkLXd0T2hNcUghZDlfZlpXSl47cUdsc0s1bGJAPj9mOVp8Xjx5aGklSmR1
ZCpMdjUxMDBzTllmZSNQcVNJTwp6eU9VbEtzRVkqaCh7cnI5N3BlQVcoYERCKGpDfCZldTIrXj4/
PjdzP3dKbWZFRkhTal9PXiRfTVVPYXVNUHVvSUcKekoyPXA8eUt8eylPbmRrPkNmdlluJElgTD0r
NWd6RWNaKDthKjRMYWVlU0xRUXJrO310UT48YTBvWTd6VUhDYmNFCnowT1ZoPT1gdEVRYyRzPGxh
ZXxoM0FhbEJjViQ8Mns2Q1laR0NtOX5LWEVDQFZJbDBDY1cyfGtVUWNAP08ramFOOAp6Uj49TW1R
I2BCczxOO1RFJXh1Zm1CSipxfnAycT07QGhGZEdeOEFjcHtKR2IoI3ZkPWRFVVRNVCZ5NmtCX3go
TEoKej4kIyFCbXZLMjBLPnVCNW4lKjZrKXszfUwrdEYmOUd9bTV9ZFd8aTJDWmBnWm0hIzM5Qj9x
QEBuaWBuZ2p0cmB8CnpJPzA/KyFEV19DXmh3fE43ZDJLezMjX2RVJlc9amB6czVAXy1FO0glX1Bs
QW9HYmshN0NYQ3VwWXFreHJBXkR3IQp6eGllWWdETWQ0cTg9Rz9iLS1IJEk0aVNtUWRWZXRmc1Zn
Yks4UnpBaW9AV3JYUmIxI3dyazY2aFlHcG5mXm97bUAKel9sVEpnbCt0V0o7SkNIO3FTVX1NYDRg
JnkqNjxCO1ZhPWBjOyYrd0xPYjdGQj56d2F5c2VUZTV5fiV5cS1tRiErCnprKTI1WXpXVVVOVUU2
cnMjI28qVEYraVIqLXNCWT97aXxQa3oral43TF91SzVRbGlTa1ReRldJJnVXSH0rcG89cAp6JWVK
M1hfQipmSlN0NUErXk1tSmc4b3pOKUAxKmk3MUFCWV5HPTFkck5EfGQ1JGVNSFEoT1dFX3hFLXFD
bzlyKm8KemEoRiVEdVZTV0BsckVXZ2FvQSN6UH15PCskakk5XlZ4OVJKPEdmRFlJZ2l4TUdraHlQ
bURhK19weDIxX2VObUVYCnoke3xUZFV0Iy18cll8biFpX0dSZiVkNkdXWipKbEByRypmOCtfPUl4
elZ+ezlBQW1FQl4ofm9RUzNJcnBsfWMoeAp6e2ltN3Z5dldaQntCfGdfejlFTn5raThxY298LXAw
PTFYejYwdGIjdkZscTQpdilraWRaZTBGSlZzMDAjNnN8QSkKeko+RmRSdlFePzNzV0NOdHIkazMm
PXYzTGxEUmRNdT5PUEM1d2BXc0JjJWxVSnV1WWZfSEN9KCEhYGw5NWxWZmFeCno8bXg0KnRII08k
byFgPVMwUlJZaXlTb0c+VzJCPHFgdWJwPHVMNXBTM01JRFRIKkRgfk5MYE1Wdz8qOztveWNEbAp6
JShXbFE5ZGlHKnMofmR+ZFI2UjlSMGttcmZXaE03aFp6aTRrU2FiWih8OWtlWUdxWCUlbk0hYSQ1
JnUySD1tPmoKejhkbEdyUStVWXxUM1V8YDBjUil9KyEqNj1uKShPM2YwPElzNyo+JCopR1pPNSlT
TXdUcWc2ajNCbWBiTEFgKFk8Cno0XkotMDR8d09JNVJEI35Nb0A0b3lUcmt+cld8KzlLJSZGb3h+
M0gqdGY3YEFNQk83TFhza15Mak5yJlZLX3AxYgp6eiQqUUdANWcyRUZBUDJlS3ZveXY2eF5vejIh
VGJ0bn0rVklOSUBKSmxxNXZAa0QkbVRINiVXdFBoQj0lY0tUPnIKelNtaTFmd1hvUCg8KnhGa2J5
Ty1PfDgxTz09Ujl3YkQ8USU3aGpIMTw/YFkxO09aaXBvY099YjxZTUxeVWZjXkdtCno2PztNTGln
VSl3S2JKI1NIY3pXbkZQektBJUZSTU9FZyE8OFJ2fUIpd1M9QmFRQHhSPmdhSmFwQXc5KWNMREs7
UAp6YzR+NTshY19DJSo9eVg3U0l8NlBNPW5UbXEtbX5NMklJNlhwfWRHbkVrclk4OT5LWFNTfWEx
Sz0ybWtzWFlqTS0KejNZc0slNitDLVRxNXp9O1l9KXdKcT1NJFFpWEokOW1UJDU7M2xJYC1qbz12
RWJ1dkBYOTEjTDNFd2lReT4mRnV8CnpPYExGMCZgaVZnPSV9enowS3tIZDRANG5DQV5NMWI3K3Bv
XmhvK0V1JnxMS1luNkFZUV9aQmBCQkpRd2A/Q21xYgp6OX5OPlZ3fUl2U3FVUDs0QFZfZ2chVUVq
Y2VDZkMxK2AjOEFnKnsmSmQ/WmpfJT5qZDBMOzFhUytEYVVJa0p4Yj8KelJYKXMtWjUod2hkekdf
UndqaDd1M2MpMF8pKGNyR0EjbH58a05LQyFTeygpOTV7MktWbGVzb1hTailqUTU5TT9xCnp5JEsj
MzZMSGxEWCopdTdFVE5GSCk0RlQ8bjB1TG4oY0JxcWY+ZDR9VCo4aTlPKDg5akkkVT90enQyTTJq
KS02KAp6YTRAIyMyb2hVNVI+YFh8czFSe3s0WCUyOy1xITUzKngoNVBxPkl9JTV5IXo4VCt+aGRC
cVROPkptJjVKNTUjZmYKel82V3szK2ZqMlFIV3YmSTFxQjVLVGAyJDt7ZF9vUlBRZXE9TTJwM3Yp
ZHhhTHZPMCtOREh0cjt5YTh4T09IQGJPCnpkXnsxfGAqNj89QXFiKG5XR28ofjRscjFoSXNqMlZn
e1kyRjJQa3lfQTBWUkMhR0QhSHhXIzxwMHwyRGxfamR0TQp6NSpzRDRRRHpfSVl0Znxwe19HM29Z
Zi0peXpBYzZGd0oyWnZ7dmlLPCNAQkxKZlE0ZVB1SSNSPTkoKUhIQGI+VV4KSnVYbHx8fDJKeDRE
PmVXQwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvdmlzaWJpbGl0eS9hbmltYXRpb24tdmlzaWJpbGl0eS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy92aXNpYmlsaXR5L2FuaW1hdGlvbi12aXNpYmlsaXR5LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MmRhY2EwMDJhNDk1YmY5YmE0N2FmM2QzMzc4NmQwNTBj
NTZjMTE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdmlzaWJp
bGl0eS9hbmltYXRpb24tdmlzaWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitQ
QVNTIC0gInZpc2liaWxpdHkiIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDAuNzVzIHNh
dyBzb21ldGhpbmcgY2xvc2UgdG86IHZpc2libGUKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtLjQi
IHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDAuNzVzIHNhdyBzb21ldGhpbmcgY2xvc2Ug
dG86IDM3NQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aXNpYmlsaXR5
L2FuaW1hdGlvbi12aXNpYmlsaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aXNp
YmlsaXR5L2FuaW1hdGlvbi12aXNpYmlsaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhlNjI4ZTZkNjcx
ZjFjYjA5ZDRmNGYwMTU3OTc3YjY2OTU3ZWI2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3Zpc2liaWxpdHkvYW5pbWF0aW9uLXZpc2liaWxpdHkuaHRtbApAQCAt
MCwwICsxLDc0IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxl
PlZpc2liaWxpdHkgYW5pbWF0aW9uPC90aXRsZT4KKyAgPHN0eWxlPgorICAgIC5jb250YWluZXIg
eworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAg
IHdpZHRoOiA2MDBweDsKKyAgICAgIG1hcmdpbjogMjBweDsKKyAgICAgIGJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOworICAgIH0KKyAgICAKKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQor
ICAgIC5pbmRpY2F0b3IgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgbGVm
dDogMzc1cHg7CisgICAgfQorICAgICNib3ggeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW47CisgICAgICAtd2Via2l0LWFuaW1hdGlvbjogbW92ZSAxcyBsaW5lYXIsIHJldmVhbCAxcyBs
aW5lYXI7CisgICAgfQorCisgICAgQC13ZWJraXQta2V5ZnJhbWVzIG1vdmUKKyAgICB7CisgICAg
ICAwJSAgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfQorICAgICAgMTAwJXsg
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAwcHgpOyB9CisgICAgfQorCisgICAgQC13
ZWJraXQta2V5ZnJhbWVzIHJldmVhbAorICAgIHsKKyAgICAgIDAlICB7IHZpc2liaWxpdHk6IGhp
ZGRlbjsgfQorICAgICAgNTAlIHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9CisgICAgICA1MSUgeyB2
aXNpYmlsaXR5OiB2aXNpYmxlOyB9CisgICAgICAxMDAleyB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9
CisgICAgfQorICAgIAorICAgICNyZXN1bHQuaGlkZGVuIHsKKyAgICAgIG9wYWNpdHk6IDA7IC8q
IEhpZGUgaW4gcGl4ZWwgcmVzdWx0ICovCisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNy
Yz0iLi4vLi4vYW5pbWF0aW9ucy9yZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyI+
PC9zY3JpcHQ+CisgIDxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgCisg
ICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAvLyBbYW5pbWF0aW9uLW5hbWUsIHRp
bWUsIGVsZW1lbnQtaWQsIHByb3BlcnR5LCBleHBlY3RlZC12YWx1ZSwgdG9sZXJhbmNlXQorICAg
ICAgWyJyZXZlYWwiLCAwLjc1LCAiYm94IiwgInZpc2liaWxpdHkiLCAndmlzaWJsZSddLAorICAg
ICAgWyJtb3ZlIiwgMC43NSwgImJveCIsICJ3ZWJraXRUcmFuc2Zvcm0uNCIsIDM3NSwgMTBdLAor
ICAgIF07CisgIAorICAgIHZhciBkaXNhYmxlUGF1c2VBUEkgPSBmYWxzZTsKKyAgICBydW5Bbmlt
YXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzLCBudWxsLCBudWxsLCBkaXNhYmxlUGF1c2VBUEksIGRv
UGl4ZWxUZXN0KTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgPGRpdiBjbGFzcz0iaW5kaWNhdG9yIGJveCI+PC9kaXY+CisgIDxkaXYg
aWQ9ImJveCIgY2xhc3M9ImJveCI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9k
aXY+Cis8c2NyaXB0PgorICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5jbGFzc05hbWUgPSAnaGlkZGVuJzsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>