<?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>88230</bug_id>
          
          <creation_ts>2012-06-04 07:14:27 -0700</creation_ts>
          <short_desc>[GTK] new test svg/stroke/non-scaling-stroke-pattern.svg fails</short_desc>
          <delta_ts>2020-06-19 00:39:19 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>87008</blocked>
    
    <blocked>104528</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="János Badics">jbadics</reporter>
          <assigned_to name="Philip Rogers">pdr</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>dpino</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jussi.kukkonen</cc>
    
    <cc>krit</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>pdr</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>640556</commentid>
    <comment_count>0</comment_count>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-06-04 07:14:27 -0700</bug_when>
    <thetext>This new test: svg/stroke/non-scaling-stroke-pattern.svg fails after introduced in r119391 on Qt, GTK and EFL platforms.
See http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt%20Release%20-%20Qt5-WebKit1/r119392%20(8214)/svg/stroke/non-scaling-stroke-pattern-diffs.html

https://bugs.webkit.org/show_bug.cgi?id=87925</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640566</commentid>
    <comment_count>1</comment_count>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-06-04 07:23:14 -0700</bug_when>
    <thetext>I&apos;m sorry for copying wrong links. Let me correct:

This new test: svg/stroke/non-scaling-stroke-pattern.svg fails after introduced in r119391 on Qt, GTK and EFL platforms.
See http://build.webkit.sed.hu/results/x86-32%20Linux%20Qt%20Release%20-%20Qt5-WebKit1/r119392%20(8214)/svg/stroke/non-scaling-stroke

https://bugs.webkit.org/show_bug.cgi?id=88198</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640572</commentid>
    <comment_count>2</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-06-04 07:29:08 -0700</bug_when>
    <thetext>I&apos;ll have a patch up in a few minutes to fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640575</commentid>
    <comment_count>3</comment_count>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-06-04 07:32:35 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I&apos;ll have a patch up in a few minutes to fix this.

Thank you for the quick reply and for looking into it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640596</commentid>
    <comment_count>4</comment_count>
      <attachid>145588</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-06-04 08:12:56 -0700</bug_when>
    <thetext>Created attachment 145588
Update test expectations after 119392</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640597</commentid>
    <comment_count>5</comment_count>
      <attachid>145588</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-06-04 08:13:50 -0700</bug_when>
    <thetext>Comment on attachment 145588
Update test expectations after 119392

Wrong patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640599</commentid>
    <comment_count>6</comment_count>
      <attachid>145590</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-06-04 08:14:27 -0700</bug_when>
    <thetext>Created attachment 145590
Update test expectations after 119392</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640621</commentid>
    <comment_count>7</comment_count>
      <attachid>145590</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-04 08:51:13 -0700</bug_when>
    <thetext>Comment on attachment 145590
Update test expectations after 119392

Clearing flags on attachment: 145590

Committed r119402: &lt;http://trac.webkit.org/changeset/119402&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640622</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-04 08:51:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641193</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-06-04 22:17:33 -0700</bug_when>
    <thetext>I guess you want to keep this bug open, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641806</commentid>
    <comment_count>10</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-06-05 12:34:10 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I guess you want to keep this bug open, right?

Absolutely, thanks Philippe!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671700</commentid>
    <comment_count>11</comment_count>
      <attachid>152860</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-07-17 16:07:10 -0700</bug_when>
    <thetext>Created attachment 152860
Update TestExpectations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671792</commentid>
    <comment_count>12</comment_count>
      <attachid>152860</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-17 17:30:51 -0700</bug_when>
    <thetext>Comment on attachment 152860
Update TestExpectations

Clearing flags on attachment: 152860

Committed r122903: &lt;http://trac.webkit.org/changeset/122903&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671793</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-17 17:30:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672106</commentid>
    <comment_count>14</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-07-18 01:10:24 -0700</bug_when>
    <thetext>It is still valid, but CQ closed it when landing expectations update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672422</commentid>
    <comment_count>15</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-07-18 09:17:19 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; It is still valid, but CQ closed it when landing expectations update.

Is it still valid? I thought one of the refactorings I&apos;ve been doing in RenderSVGShape fixed it, as the test is now passing on Saf/mac, Cr/linux, Cr/win, and the QT/EFL/GTK bots look to be happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726798</commentid>
    <comment_count>16</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-09-24 10:04:33 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; It is still valid, but CQ closed it when landing expectations update.
&gt; 
&gt; Is it still valid? I thought one of the refactorings I&apos;ve been doing in RenderSVGShape fixed it, as the test is now passing on Saf/mac, Cr/linux, Cr/win, and the QT/EFL/GTK bots look to be happy.

For some reason, the test started being flaky on the EFL bots since r129371 on the WK2 bot: &lt;http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Debug%20WK2/builds/3534/steps/layout-test/logs/stdio&gt; and r129372 on the WK1 bot: &lt;http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Debug/builds/6296/steps/layout-test/logs/stdio&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726808</commentid>
    <comment_count>17</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-09-24 10:17:08 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; (In reply to comment #14)
&gt; &gt; &gt; It is still valid, but CQ closed it when landing expectations update.
&gt; &gt; 
&gt; &gt; Is it still valid? I thought one of the refactorings I&apos;ve been doing in RenderSVGShape fixed it, as the test is now passing on Saf/mac, Cr/linux, Cr/win, and the QT/EFL/GTK bots look to be happy.
&gt; 
&gt; For some reason, the test started being flaky on the EFL bots since r129371 on the WK2 bot: &lt;http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Debug%20WK2/builds/3534/steps/layout-test/logs/stdio&gt; and r129372 on the WK1 bot: &lt;http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Debug/builds/6296/steps/layout-test/logs/stdio&gt;

And then the flakiness mysteriously stopped in r129380 for the WK1 bot and 129377	for WK2...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787437</commentid>
    <comment_count>18</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-12-10 10:00:29 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; (In reply to comment #15)
&gt; &gt; &gt; (In reply to comment #14)
&gt; &gt; &gt; &gt; It is still valid, but CQ closed it when landing expectations update.
&gt; &gt; &gt; 
&gt; &gt; &gt; Is it still valid? I thought one of the refactorings I&apos;ve been doing in RenderSVGShape fixed it, as the test is now passing on Saf/mac, Cr/linux, Cr/win, and the QT/EFL/GTK bots look to be happy.
&gt; &gt; 
&gt; &gt; For some reason, the test started being flaky on the EFL bots since r129371 on the WK2 bot: &lt;http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Debug%20WK2/builds/3534/steps/layout-test/logs/stdio&gt; and r129372 on the WK1 bot: &lt;http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Debug/builds/6296/steps/layout-test/logs/stdio&gt;
&gt; 
&gt; And then the flakiness mysteriously stopped in r129380 for the WK1 bot and 129377    for WK2...

This may have been some other test leaving bad state around. I watch this code pretty closely and I don&apos;t think there have been any changes here.

Mind if we close this again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798336</commentid>
    <comment_count>19</comment_count>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-12-31 05:34:09 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; This may have been some other test leaving bad state around. I watch this code pretty closely and I don&apos;t think there have been any changes here.
&gt; 
&gt; Mind if we close this again?

The test is _very_ flaky on all EFL and GTK bots. I think that&apos;s perfectly valid reason to keep a bug open and as this bug wasn&apos;t used to fix any particular issue so far it could as well be this one, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798337</commentid>
    <comment_count>20</comment_count>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-12-31 05:52:07 -0800</bug_when>
    <thetext>I can reproduce this with --iterations=3 (or larger). For some reason the third one and all subsequent iterations will always fail here.

The failure is interesting: there are visual artifacts around the square (I assume this is the pattern area). These artifacts change depending on the number of iterations I tell test runner to do, but they are totally reproducible: e.g. the result for iteration 4 will always be the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798346</commentid>
    <comment_count>21</comment_count>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-12-31 06:18:01 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; The failure is interesting: there are visual artifacts around the square (I assume this is the pattern area). These artifacts change depending on the number of iterations I tell test runner to do, but they are totally reproducible: e.g. the result for iteration 4 will always be the same.

This works in minibrowser as well: refresh the window a few times and the problems start appearing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664277</commentid>
    <comment_count>22</comment_count>
    <who name="Diego Pino">dpino</who>
    <bug_when>2020-06-19 00:38:14 -0700</bug_when>
    <thetext>The test(s) filed under this bug have been consistently passing for the last 4000 revisions. Marking bug as fixed.

Committed r263254: &lt;https://trac.webkit.org/changeset/263254&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664291</commentid>
    <comment_count>23</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-19 00:39:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/64522650&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145588</attachid>
            <date>2012-06-04 08:12:56 -0700</date>
            <delta_ts>2012-06-04 08:14:27 -0700</delta_ts>
            <desc>Update test expectations after 119392</desc>
            <filename>88231.1.patch</filename>
            <type>text/plain</type>
            <size>46712</size>
            <attacher name="Philip Rogers">pdr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExOTM5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc2IEBACisyMDEyLTA2LTA0ICBQaGlsaXAg
Um9nZXJzICA8cGRyQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgUmVuZGVyU1ZHe1No
YXBlLFJlY3QsRWxsaXBzZSxQYXRofSB0byBiZSBsZXNzIGNvdXBsZWQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODIzMQorCisgICAgICAgIE5vdGU6
IFRoaXMgaXMgYSBwcmV2aWV3IHBhdGNoIGFuZCBpcyBub3QgeWV0IHJlYWR5IGZvciByZXZpZXcu
CisKKyAgICAgICAgMSkgTW92ZSBtYXJrZXIgYW5kIHplcm8tbGVuZ3RoIHN1YnBhdGggY29kZSBv
dXQgb2YgUmVuZGVyU1ZHU2hhcGUgYW5kIGludG8gUmVuZGVyU1ZHUGF0aC4KKyAgICAgICAgMikg
UmVmYWN0b3Igbm9uLXNjYWxpbmcgc3VicGF0aCBjb2RlIGludG8ge2FwcGx5LHVuYXBwbHl9Tm9u
U2NhbGluZ1RyYW5zZm9ybS4KKyAgICAgICAgICAgVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBj
bGVhbmx5IGZpeCBub24tc2NhbGluZyB6ZXJvLWxlbmd0aCBzdWJwYXRocyB3aGljaCB3ZXJlCisg
ICAgICAgICAgIHByZXZpb3VzbHkgYnJva2VuLgorICAgICAgICAzKSBSZWZhY3RvciBob3cgUmVu
ZGVyU1ZHU2hhcGUgZmFsbGJhY2sgYW5kIGhhc1BhdGgoKSB3b3JrLgorICAgICAgICAgIEluIG9u
ZSBjZW50cmFsaXplZCBwbGFjZSAoY3JlYXRlU2hhcGUpLCBSZW5kZXJTVkdFbGxpcHNlIGFuZCBS
ZW5kZXJTVkdSZWN0CisgICAgICAgICAgY29udHJvbCBpZiBmYWxsYmFjayB0byBTaGFwZSBvY2N1
cnMgYW5kIGlmIHRoZXkgbmVlZCBhIHBhdGggaW4gYWRkaXRpb24gdG8gdGhlaXIgZmFzdC1wYXRo
cy4KKworICAgICAgICBVbmZvcnR1bmF0ZWx5IHRoZXNlIHJlZmFjdG9yaW5ncyB3ZXJlIHRvbyBj
b3VwbGVkIHRvIHNwbGl0IGludG8gbXVsdGlwbGUgcGF0Y2hlcy4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKwor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRWxsaXBzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdFbGxpcHNlOjpjcmVhdGVTaGFwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTVkdFbGxpcHNlOjpzaGFwZURlcGVuZGVudFN0cm9rZUNvbnRhaW5zKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0VsbGlwc2UuaDoKKyAgICAgICAgKFJlbmRlclNW
R0VsbGlwc2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdQYXRoOjpjcmVhdGVTaGFwZSk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1BhdGg6OmlzRW1wdHkpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUGF0aDo6c3Ryb2tlU2hhcGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHUGF0aDo6c3Ryb2tlQm91bmRpbmdCb3gpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU1ZHUGF0aDo6c2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdQYXRoOjpvYmplY3RCb3VuZGluZ0JveCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdQYXRoOjp6ZXJvTGVuZ3RoTGluZWNhcFBhdGgpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHUGF0aDo6c2hvdWxkU3Ryb2tlWmVyb0xlbmd0aFN1YnBhdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUGF0aDo6emVyb0xlbmd0aFN1YnBhdGhSZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1BhdGg6OnByb2Nlc3NaZXJvTGVuZ3RoU3VicGF0
aHMpOgorICAgICAgICAoV2ViQ29yZTo6bWFya2VyRm9yVHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTVkdQYXRoOjpzaG91bGRHZW5lcmF0ZU1hcmtlclBvc2l0aW9ucyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdQYXRoOjptYXJrZXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR1BhdGg6OmFwcGx5Tm9uU2NhbGluZ1N0cm9rZVRyYW5zZm9ybSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdQYXRoOjpkcmF3TWFya2Vycyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTVkdQYXRoOjpwcm9jZXNzTWFya2VyUG9zaXRpb25zKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguaDoKKyAgICAgICAgKFJlbmRlclNWR1BhdGgpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTVkdSZWN0OjpjcmVhdGVTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdSZWN0OjpmaWxsU2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVjdDo6c3Ry
b2tlU2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVjdDo6c2hhcGVEZXBlbmRl
bnRTdHJva2VDb250YWlucyk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0
Lmg6CisgICAgICAgIChSZW5kZXJTVkdSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjpjcmVh
dGVTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdTaGFwZTo6aXNFbXB0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdTaGFwZTo6b2JqZWN0Qm91bmRpbmdCb3gpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdTaGFwZTo6c3Ryb2tl
Qm91bmRpbmdCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHU2hhcGU6OnNoYXBlRGVw
ZW5kZW50U3Ryb2tlQ29udGFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHU2hhcGU6
OnNoYXBlRGVwZW5kZW50RmlsbENvbnRhaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNW
R1NoYXBlOjpzdHJva2VDb250YWlucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdTaGFw
ZTo6YXBwbHlOb25TY2FsaW5nU3Ryb2tlVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR1NoYXBlOjpmaWxsU2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHU2hh
cGU6OnN0cm9rZVNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjpmaWxs
QW5kU3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdTaGFwZTo6cGFpbnQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHU2hhcGU6OnVwZGF0ZUNhY2hlZEJvdW5kYXJp
ZXMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaDoKKyAgICAgICAg
KFJlbmRlclNWR1NoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjp1bmFw
cGx5Tm9uU2NhbGluZ1N0cm9rZVRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdTaGFwZTo6ZHJhd01hcmtlcnMpOgorCiAyMDEyLTA2LTA0ICBEb21pbmlrIFLDtnR0c2NoZXMg
IDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0NhaXJvXSBJbXBsZW1l
bnRhdGlvbiBvZiBHcmFwaGljc0NvbnRleHQgZG9lcyBub3Qgc2F2ZS9yZXN0b3JlIEltYWdlSW50
ZXJwb2xhdGlvbiBjb3JyZWN0bHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHRWxsaXBzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdFbGxpcHNlLmNwcAkocmV2aXNpb24gMTE5MzkxKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdFbGxpcHNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjEsNiArNjEsMTQgQEAgdm9pZCBSZW5kZXJTVkdFbGxpcHNlOjpjcmVhdGVTaGFwZSgp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICAvLyBUaGUgb3B0aW1pemVkIHNoYXBlRGVw
ZW5kZW50U3Ryb2tlQ29udGFpbnMgdGVzdCBoZXJlIGRvZXMgbm90IHN1cHBvcnQKKyAgICAvLyB0
aGVzZSBwcm9wZXJ0aWVzIHNvIGNyZWF0ZSBhIGZhbGxiYWNrIHBhdGggaW4gUmVuZGVyU1ZHU2hh
cGUgaWYgbmVlZGVkLgorICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9IHN0eWxl
KCktPnN2Z1N0eWxlKCk7CisgICAgdXNlUGF0aFN0cm9rZUNvbnRhaW5zID0gIXN2Z1N0eWxlLT5z
dHJva2VEYXNoQXJyYXkoKS5pc0VtcHR5KCkgfHwgc3ZnU3R5bGUtPnN0cm9rZU1pdGVyTGltaXQo
KSAhPSBzdmdTdHlsZS0+aW5pdGlhbFN0cm9rZU1pdGVyTGltaXQoKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHx8IHN2Z1N0eWxlLT5qb2luU3R5bGUoKSAhPSBzdmdTdHlsZS0+aW5pdGlh
bEpvaW5TdHlsZSgpIHx8IHN2Z1N0eWxlLT5jYXBTdHlsZSgpICE9IHN2Z1N0eWxlLT5pbml0aWFs
Q2FwU3R5bGUoKTsKKyAgICBpZiAodXNlUGF0aFN0cm9rZUNvbnRhaW5zKQorICAgICAgICBSZW5k
ZXJTVkdTaGFwZTo6Y3JlYXRlU2hhcGUoKTsKKwogICAgIGNhbGN1bGF0ZVJhZGlpQW5kQ2VudGVy
KCk7CiAKICAgICAvLyBTcGVjOiAiQSB2YWx1ZSBvZiB6ZXJvIGRpc2FibGVzIHJlbmRlcmluZyBv
ZiB0aGUgZWxlbWVudC4iCkBAIC02OSw3ICs3Nyw3IEBAIHZvaWQgUmVuZGVyU1ZHRWxsaXBzZTo6
Y3JlYXRlU2hhcGUoKQogCiAgICAgbV9ib3VuZGluZ0JveCA9IEZsb2F0UmVjdChtX2NlbnRlci54
KCkgLSBtX3JhZGlpLndpZHRoKCksIG1fY2VudGVyLnkoKSAtIG1fcmFkaWkuaGVpZ2h0KCksIDIg
KiBtX3JhZGlpLndpZHRoKCksIDIgKiBtX3JhZGlpLmhlaWdodCgpKTsKICAgICBtX291dGVyU3Ry
b2tlUmVjdCA9IG1fYm91bmRpbmdCb3g7Ci0gICAgaWYgKHN0eWxlKCktPnN2Z1N0eWxlKCktPmhh
c1N0cm9rZSgpKQorICAgIGlmIChzdmdTdHlsZS0+aGFzU3Ryb2tlKCkpCiAgICAgICAgIG1fb3V0
ZXJTdHJva2VSZWN0LmluZmxhdGUoc3Ryb2tlV2lkdGgoKSAvIDIpOwogfQogCkBAIC0xMzEsNyAr
MTM5LDcgQEAgdm9pZCBSZW5kZXJTVkdFbGxpcHNlOjpzdHJva2VTaGFwZShHcmFwaAogCiBib29s
IFJlbmRlclNWR0VsbGlwc2U6OnNoYXBlRGVwZW5kZW50U3Ryb2tlQ29udGFpbnMoY29uc3QgRmxv
YXRQb2ludCYgcG9pbnQpIGNvbnN0CiB7Ci0gICAgaWYgKGlzUGFpbnRpbmdGYWxsYmFjaygpKQor
ICAgIGlmIChpc1BhaW50aW5nRmFsbGJhY2soKSB8fCB1c2VQYXRoU3Ryb2tlQ29udGFpbnMpCiAg
ICAgICAgIHJldHVybiBSZW5kZXJTVkdTaGFwZTo6c2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlu
cyhwb2ludCk7CiAKICAgICBmbG9hdCBoYWxmU3Ryb2tlV2lkdGggPSBzdHJva2VXaWR0aCgpIC8g
MjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRWxsaXBzZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRWxs
aXBzZS5oCShyZXZpc2lvbiAxMTkzOTEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0VsbGlwc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsNyBAQCBwcml2
YXRlOgogICAgIEZsb2F0UmVjdCBtX291dGVyU3Ryb2tlUmVjdDsKICAgICBGbG9hdFBvaW50IG1f
Y2VudGVyOwogICAgIEZsb2F0U2l6ZSBtX3JhZGlpOworICAgIGJvb2wgdXNlUGF0aFN0cm9rZUNv
bnRhaW5zOwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdQYXRoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1BhdGguY3BwCShyZXZpc2lvbiAxMTkzOTEpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4ICsz
MCwxMyBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUGF0aC5oIgogCisj
aW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIuaCIKKyNpbmNsdWRlICJTVkdNYXJrZXJE
YXRhLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdSZXNvdXJj
ZXMuaCIKKyNpbmNsdWRlICJTVkdSZXNvdXJjZXNDYWNoZS5oIgogI2luY2x1ZGUgIlNWR1N0eWxl
ZFRyYW5zZm9ybWFibGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHU3VicGF0aERhdGEuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NCw2ICs0OSwyMjkgQEAgUmVuZGVyU1ZHUGF0aDo6
flJlbmRlclNWR1BhdGgoKQogewogfQogCit2b2lkIFJlbmRlclNWR1BhdGg6OmNyZWF0ZVNoYXBl
KCkKK3sKKyAgICBSZW5kZXJTVkdTaGFwZTo6Y3JlYXRlU2hhcGUoKTsKKyAgICBwcm9jZXNzWmVy
b0xlbmd0aFN1YnBhdGhzKCk7CisgICAgcHJvY2Vzc01hcmtlclBvc2l0aW9ucygpOworfQorCiti
b29sIFJlbmRlclNWR1BhdGg6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJldHVybiBwYXRoKCku
aXNFbXB0eSgpICYmIG1femVyb0xlbmd0aExpbmVjYXBMb2NhdGlvbnMuaXNFbXB0eSgpOworfQor
Cit2b2lkIFJlbmRlclNWR1BhdGg6OnN0cm9rZVNoYXBlKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCkgY29uc3QKK3sKKyAgICBpZiAoIXN0eWxlKCktPnN2Z1N0eWxlKCktPmhhc1Zpc2libGVTdHJv
a2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29udGV4dC0+c3Ryb2tlUGF0aChwYXRoKCkp
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV96ZXJvTGVuZ3RoTGluZWNhcExvY2F0aW9u
cy5zaXplKCk7ICsraSkgeworICAgICAgICBQYXRoKiBwYXRoID0gemVyb0xlbmd0aExpbmVjYXBQ
YXRoKG1femVyb0xlbmd0aExpbmVjYXBMb2NhdGlvbnNbaV0pOworICAgICAgICBjb250ZXh0LT5z
YXZlKCk7CisgICAgICAgIGNvbnRleHQtPmNsaXBQYXRoKCpwYXRoLCBSVUxFX05PTlpFUk8pOwor
ICAgICAgICBjb250ZXh0LT5zdHJva2VQYXRoKCpwYXRoKTsKKyAgICAgICAgY29udGV4dC0+cmVz
dG9yZSgpOworICAgIH0KK30KKworRmxvYXRSZWN0IFJlbmRlclNWR1BhdGg6OnN0cm9rZUJvdW5k
aW5nQm94KCkgY29uc3QKK3sKKyAgICBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdCb3ggPSBGbG9h
dFJlY3QoKTsKKyAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBzdHlsZSgpLT5z
dmdTdHlsZSgpOworICAgIGZsb2F0IHN0cm9rZVdpZHRoID0gdGhpcy0+c3Ryb2tlV2lkdGgoKTsK
KworICAgIGlmIChzdmdTdHlsZS0+aGFzU3Ryb2tlKCkpIHsKKyAgICAgICAgQm91bmRpbmdSZWN0
U3Ryb2tlU3R5bGVBcHBsaWVyIHN0cm9rZVN0eWxlKHRoaXMsIHN0eWxlKCkpOworICAgICAgICBz
dHJva2VCb3VuZGluZ0JveC51bml0ZShwYXRoKCkuc3Ryb2tlQm91bmRpbmdSZWN0KCZzdHJva2VT
dHlsZSkpOworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV96ZXJvTGVuZ3RoTGlu
ZWNhcExvY2F0aW9ucy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIHN0cm9rZUJvdW5kaW5nQm94
LnVuaXRlKHplcm9MZW5ndGhTdWJwYXRoUmVjdChtX3plcm9MZW5ndGhMaW5lY2FwTG9jYXRpb25z
W2ldLCBzdHJva2VXaWR0aCkpOworICAgIH0KKworICAgIGlmICghbV9tYXJrZXJQb3NpdGlvbnMu
aXNFbXB0eSgpKQorICAgICAgICBzdHJva2VCb3VuZGluZ0JveC51bml0ZShtYXJrZXJSZWN0KHN0
cm9rZVdpZHRoKSk7CisKKyAgICByZXR1cm4gc3Ryb2tlQm91bmRpbmdCb3g7Cit9CisKK2Jvb2wg
UmVuZGVyU1ZHUGF0aDo6c2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyhjb25zdCBGbG9hdFBv
aW50JiBwb2ludCkgY29uc3QKK3sKKyAgICBBU1NFUlQoc3R5bGUoKS0+c3ZnU3R5bGUoKS0+aGFz
U3Ryb2tlKCkpOworCisgICAgZmxvYXQgc3Ryb2tlV2lkdGggPSB0aGlzLT5zdHJva2VXaWR0aCgp
OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3plcm9MZW5ndGhMaW5lY2FwTG9jYXRp
b25zLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChzdHlsZSgpLT5zdmdTdHlsZSgpLT5jYXBT
dHlsZSgpID09IFNxdWFyZUNhcCkgeworICAgICAgICAgICAgaWYgKHplcm9MZW5ndGhTdWJwYXRo
UmVjdChtX3plcm9MZW5ndGhMaW5lY2FwTG9jYXRpb25zW2ldLCBzdHJva2VXaWR0aCkuY29udGFp
bnMocG9pbnQpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgQVNTRVJUKHN0eWxlKCktPnN2Z1N0eWxlKCktPmNhcFN0eWxlKCkgPT0g
Um91bmRDYXApOworICAgICAgICAgICAgRmxvYXRQb2ludCByYWRpdXNWZWN0b3IocG9pbnQueCgp
IC0gbV96ZXJvTGVuZ3RoTGluZWNhcExvY2F0aW9uc1tpXS54KCksIHBvaW50LnkoKSAtICBtX3pl
cm9MZW5ndGhMaW5lY2FwTG9jYXRpb25zW2ldLnkoKSk7CisgICAgICAgICAgICBpZiAocmFkaXVz
VmVjdG9yLmxlbmd0aFNxdWFyZWQoKSA8IHN0cm9rZVdpZHRoICogc3Ryb2tlV2lkdGggKiAuMjVm
KQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAg
cmV0dXJuIFJlbmRlclNWR1NoYXBlOjpzaGFwZURlcGVuZGVudFN0cm9rZUNvbnRhaW5zKHBvaW50
KTsKK30KKworRmxvYXRSZWN0IFJlbmRlclNWR1BhdGg6Om9iamVjdEJvdW5kaW5nQm94KCkgY29u
c3QKK3sKKyAgICBGbG9hdFJlY3QgZmlsbEJvdW5kaW5nQm94ID0gUmVuZGVyU1ZHU2hhcGU6Om9i
amVjdEJvdW5kaW5nQm94KCk7CisKKyAgICAvLyBBZGQgemVyby1sZW5ndGggc3ViLXBhdGggbGlu
ZWNhcHMgdG8gdGhlIGZpbGwgYm94CisgICAgZmxvYXQgc3Ryb2tlV2lkdGggPSB0aGlzLT5zdHJv
a2VXaWR0aCgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV96ZXJvTGVuZ3RoTGluZWNh
cExvY2F0aW9ucy5zaXplKCk7ICsraSkKKyAgICAgICAgZmlsbEJvdW5kaW5nQm94LnVuaXRlKHpl
cm9MZW5ndGhTdWJwYXRoUmVjdChtX3plcm9MZW5ndGhMaW5lY2FwTG9jYXRpb25zW2ldLCBzdHJv
a2VXaWR0aCkpOworCisgICAgcmV0dXJuIGZpbGxCb3VuZGluZ0JveDsKK30KKworUGF0aCogUmVu
ZGVyU1ZHUGF0aDo6emVyb0xlbmd0aExpbmVjYXBQYXRoKGNvbnN0IEZsb2F0UG9pbnQmIGxpbmVj
YXBQb3NpdGlvbikgY29uc3QKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFBhdGgsIHRlbXBQ
YXRoLCAoKSk7CisKKyAgICB0ZW1wUGF0aC5jbGVhcigpOworICAgIGZsb2F0IHN0cm9rZVdpZHRo
ID0gdGhpcy0+c3Ryb2tlV2lkdGgoKTsKKyAgICBpZiAoc3R5bGUoKS0+c3ZnU3R5bGUoKS0+Y2Fw
U3R5bGUoKSA9PSBTcXVhcmVDYXApCisgICAgICAgIHRlbXBQYXRoLmFkZFJlY3QoemVyb0xlbmd0
aFN1YnBhdGhSZWN0KGxpbmVjYXBQb3NpdGlvbiwgc3Ryb2tlV2lkdGgpKTsKKyAgICBlbHNlCisg
ICAgICAgIHRlbXBQYXRoLmFkZEVsbGlwc2UoemVyb0xlbmd0aFN1YnBhdGhSZWN0KGxpbmVjYXBQ
b3NpdGlvbiwgc3Ryb2tlV2lkdGgpKTsKKworICAgIHJldHVybiAmdGVtcFBhdGg7Cit9CisKK2Jv
b2wgUmVuZGVyU1ZHUGF0aDo6c2hvdWxkU3Ryb2tlWmVyb0xlbmd0aFN1YnBhdGgoKSBjb25zdAor
eworICAgIC8vIFNwZWMoMTEuNCk6IEFueSB6ZXJvIGxlbmd0aCBzdWJwYXRoIHNoYWxsIG5vdCBi
ZSBzdHJva2VkIGlmIHRoZSAic3Ryb2tlLWxpbmVjYXAiIHByb3BlcnR5IGhhcyBhIHZhbHVlIG9m
IGJ1dHQKKyAgICAvLyBidXQgc2hhbGwgYmUgc3Ryb2tlZCBpZiB0aGUgInN0cm9rZS1saW5lY2Fw
IiBwcm9wZXJ0eSBoYXMgYSB2YWx1ZSBvZiByb3VuZCBvciBzcXVhcmUKKyAgICByZXR1cm4gc3R5
bGUoKS0+c3ZnU3R5bGUoKS0+aGFzU3Ryb2tlKCkgJiYgc3R5bGUoKS0+c3ZnU3R5bGUoKS0+Y2Fw
U3R5bGUoKSAhPSBCdXR0Q2FwOworfQorCitGbG9hdFJlY3QgUmVuZGVyU1ZHUGF0aDo6emVyb0xl
bmd0aFN1YnBhdGhSZWN0KGNvbnN0IEZsb2F0UG9pbnQmIGxpbmVjYXBQb3NpdGlvbiwgZmxvYXQg
c3Ryb2tlV2lkdGgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEZsb2F0UmVjdChsaW5lY2FwUG9zaXRp
b24ueCgpIC0gc3Ryb2tlV2lkdGggLyAyLCBsaW5lY2FwUG9zaXRpb24ueSgpIC0gc3Ryb2tlV2lk
dGggLyAyLCBzdHJva2VXaWR0aCwgc3Ryb2tlV2lkdGgpOworfQorCit2b2lkIFJlbmRlclNWR1Bh
dGg6OnByb2Nlc3NaZXJvTGVuZ3RoU3VicGF0aHMoKQoreworICAgIG1femVyb0xlbmd0aExpbmVj
YXBMb2NhdGlvbnMuY2xlYXIoKTsKKworICAgIGZsb2F0IHN0cm9rZVdpZHRoID0gdGhpcy0+c3Ry
b2tlV2lkdGgoKTsKKyAgICBpZiAoIXN0cm9rZVdpZHRoIHx8ICFzaG91bGRTdHJva2VaZXJvTGVu
Z3RoU3VicGF0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTVkdTdWJwYXRoRGF0YSBzdWJw
YXRoRGF0YShtX3plcm9MZW5ndGhMaW5lY2FwTG9jYXRpb25zKTsKKyAgICBwYXRoKCkuYXBwbHko
JnN1YnBhdGhEYXRhLCBTVkdTdWJwYXRoRGF0YTo6dXBkYXRlRnJvbVBhdGhFbGVtZW50KTsKKyAg
ICBzdWJwYXRoRGF0YS5wYXRoSXNEb25lKCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgUmVuZGVyU1ZH
UmVzb3VyY2VNYXJrZXIqIG1hcmtlckZvclR5cGUoU1ZHTWFya2VyVHlwZSB0eXBlLCBSZW5kZXJT
VkdSZXNvdXJjZU1hcmtlciogbWFya2VyU3RhcnQsIFJlbmRlclNWR1Jlc291cmNlTWFya2VyKiBt
YXJrZXJNaWQsIFJlbmRlclNWR1Jlc291cmNlTWFya2VyKiBtYXJrZXJFbmQpCit7CisgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgY2FzZSBTdGFydE1hcmtlcjoKKyAgICAgICAgcmV0dXJuIG1hcmtl
clN0YXJ0OworICAgIGNhc2UgTWlkTWFya2VyOgorICAgICAgICByZXR1cm4gbWFya2VyTWlkOwor
ICAgIGNhc2UgRW5kTWFya2VyOgorICAgICAgICByZXR1cm4gbWFya2VyRW5kOworICAgIH0KKwor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQorCitib29sIFJlbmRl
clNWR1BhdGg6OnNob3VsZEdlbmVyYXRlTWFya2VyUG9zaXRpb25zKCkgY29uc3QKK3sKKyAgICBp
ZiAoIXN0eWxlKCktPnN2Z1N0eWxlKCktPmhhc01hcmtlcnMoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0
aWNfY2FzdDxTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudCo+KG5vZGUoKSk7CisgICAgaWYg
KCFlbGVtZW50LT5zdXBwb3J0c01hcmtlcnMoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgU1ZHUmVzb3VyY2VzKiByZXNvdXJjZXMgPSBTVkdSZXNvdXJjZXNDYWNoZTo6Y2FjaGVkUmVz
b3VyY2VzRm9yUmVuZGVyT2JqZWN0KHRoaXMpOworICAgIGlmICghcmVzb3VyY2VzKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gcmVzb3VyY2VzLT5tYXJrZXJTdGFydCgpIHx8
IHJlc291cmNlcy0+bWFya2VyTWlkKCkgfHwgcmVzb3VyY2VzLT5tYXJrZXJFbmQoKTsKK30KKwor
RmxvYXRSZWN0IFJlbmRlclNWR1BhdGg6Om1hcmtlclJlY3QoZmxvYXQgc3Ryb2tlV2lkdGgpIGNv
bnN0Cit7CisgICAgQVNTRVJUKCFtX21hcmtlclBvc2l0aW9ucy5pc0VtcHR5KCkpOworCisgICAg
U1ZHUmVzb3VyY2VzKiByZXNvdXJjZXMgPSBTVkdSZXNvdXJjZXNDYWNoZTo6Y2FjaGVkUmVzb3Vy
Y2VzRm9yUmVuZGVyT2JqZWN0KHRoaXMpOworICAgIEFTU0VSVChyZXNvdXJjZXMpOworCisgICAg
UmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIqIG1hcmtlclN0YXJ0ID0gcmVzb3VyY2VzLT5tYXJrZXJT
dGFydCgpOworICAgIFJlbmRlclNWR1Jlc291cmNlTWFya2VyKiBtYXJrZXJNaWQgPSByZXNvdXJj
ZXMtPm1hcmtlck1pZCgpOworICAgIFJlbmRlclNWR1Jlc291cmNlTWFya2VyKiBtYXJrZXJFbmQg
PSByZXNvdXJjZXMtPm1hcmtlckVuZCgpOworICAgIEFTU0VSVChtYXJrZXJTdGFydCB8fCBtYXJr
ZXJNaWQgfHwgbWFya2VyRW5kKTsKKworICAgIEZsb2F0UmVjdCBib3VuZGFyaWVzOworICAgIHVu
c2lnbmVkIHNpemUgPSBtX21hcmtlclBvc2l0aW9ucy5zaXplKCk7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBpZiAoUmVuZGVyU1ZHUmVzb3VyY2VN
YXJrZXIqIG1hcmtlciA9IG1hcmtlckZvclR5cGUobV9tYXJrZXJQb3NpdGlvbnNbaV0udHlwZSwg
bWFya2VyU3RhcnQsIG1hcmtlck1pZCwgbWFya2VyRW5kKSkKKyAgICAgICAgICAgIGJvdW5kYXJp
ZXMudW5pdGUobWFya2VyLT5tYXJrZXJCb3VuZGFyaWVzKG1hcmtlci0+bWFya2VyVHJhbnNmb3Jt
YXRpb24obV9tYXJrZXJQb3NpdGlvbnNbaV0ub3JpZ2luLCBtX21hcmtlclBvc2l0aW9uc1tpXS5h
bmdsZSwgc3Ryb2tlV2lkdGgpKSk7CisgICAgfQorICAgIHJldHVybiBib3VuZGFyaWVzOworfQor
Cit2b2lkIFJlbmRlclNWR1BhdGg6OmFwcGx5Tm9uU2NhbGluZ1N0cm9rZVRyYW5zZm9ybShjb25z
dCBBZmZpbmVUcmFuc2Zvcm0qIHN0cm9rZVRyYW5zZm9ybSwgYm9vbCBpbnZlcnNlKQoreworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPEZsb2F0UG9pbnQ+LCBwcmVUcmFuc2Zvcm1aZXJv
TGVuZ3RoTGluZWNhcExvY2F0aW9ucywgKCkpOworICAgIFJlbmRlclNWR1NoYXBlOjphcHBseU5v
blNjYWxpbmdTdHJva2VUcmFuc2Zvcm0oc3Ryb2tlVHJhbnNmb3JtLCBpbnZlcnNlKTsKKworICAg
IGlmIChpbnZlcnNlKQorICAgICAgICBtX3plcm9MZW5ndGhMaW5lY2FwTG9jYXRpb25zID0gcHJl
VHJhbnNmb3JtWmVyb0xlbmd0aExpbmVjYXBMb2NhdGlvbnM7CisgICAgZWxzZSB7CisgICAgICAg
IEFTU0VSVChzdHJva2VUcmFuc2Zvcm0pOworICAgICAgICBpZiAoIXN0cm9rZVRyYW5zZm9ybSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcHJlVHJhbnNmb3JtWmVyb0xlbmd0aExpbmVj
YXBMb2NhdGlvbnMgPSBtX3plcm9MZW5ndGhMaW5lY2FwTG9jYXRpb25zOworICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1femVyb0xlbmd0aExpbmVjYXBMb2NhdGlvbnMuc2l6ZSgpOyAr
K2kpCisgICAgICAgICAgICBtX3plcm9MZW5ndGhMaW5lY2FwTG9jYXRpb25zW2ldID0gcHJlVHJh
bnNmb3JtWmVyb0xlbmd0aExpbmVjYXBMb2NhdGlvbnNbaV0ubWF0cml4VHJhbnNmb3JtKCpzdHJv
a2VUcmFuc2Zvcm0pOworICAgIH0KK30KKwordm9pZCBSZW5kZXJTVkdQYXRoOjpkcmF3TWFya2Vy
cyhQYWludEluZm8mIHBhaW50SW5mbykKK3sKKyAgICBpZiAobV9tYXJrZXJQb3NpdGlvbnMuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTVkdSZXNvdXJjZXMqIHJlc291cmNlcyA9
IFNWR1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJPYmplY3QodGhpcyk7
CisgICAgaWYgKCFyZXNvdXJjZXMpCisgICAgICAgIHJldHVybjsKKworICAgIFJlbmRlclNWR1Jl
c291cmNlTWFya2VyKiBtYXJrZXJTdGFydCA9IHJlc291cmNlcy0+bWFya2VyU3RhcnQoKTsKKyAg
ICBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlciogbWFya2VyTWlkID0gcmVzb3VyY2VzLT5tYXJrZXJN
aWQoKTsKKyAgICBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlciogbWFya2VyRW5kID0gcmVzb3VyY2Vz
LT5tYXJrZXJFbmQoKTsKKyAgICBpZiAoIW1hcmtlclN0YXJ0ICYmICFtYXJrZXJNaWQgJiYgIW1h
cmtlckVuZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZmxvYXQgc3Ryb2tlV2lkdGggPSB0aGlz
LT5zdHJva2VXaWR0aCgpOworICAgIHVuc2lnbmVkIHNpemUgPSBtX21hcmtlclBvc2l0aW9ucy5z
aXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAg
ICBpZiAoUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIqIG1hcmtlciA9IG1hcmtlckZvclR5cGUobV9t
YXJrZXJQb3NpdGlvbnNbaV0udHlwZSwgbWFya2VyU3RhcnQsIG1hcmtlck1pZCwgbWFya2VyRW5k
KSkKKyAgICAgICAgICAgIG1hcmtlci0+ZHJhdyhwYWludEluZm8sIG1hcmtlci0+bWFya2VyVHJh
bnNmb3JtYXRpb24obV9tYXJrZXJQb3NpdGlvbnNbaV0ub3JpZ2luLCBtX21hcmtlclBvc2l0aW9u
c1tpXS5hbmdsZSwgc3Ryb2tlV2lkdGgpKTsKKyAgICB9Cit9CisKK3ZvaWQgUmVuZGVyU1ZHUGF0
aDo6cHJvY2Vzc01hcmtlclBvc2l0aW9ucygpCit7CisgICAgbV9tYXJrZXJQb3NpdGlvbnMuY2xl
YXIoKTsKKworICAgIGlmICghc2hvdWxkR2VuZXJhdGVNYXJrZXJQb3NpdGlvbnMoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgU1ZHTWFya2VyRGF0YSBtYXJrZXJEYXRhKG1fbWFya2VyUG9zaXRp
b25zKTsKKyAgICBwYXRoKCkuYXBwbHkoJm1hcmtlckRhdGEsIFNWR01hcmtlckRhdGE6OnVwZGF0
ZUZyb21QYXRoRWxlbWVudCk7CisgICAgbWFya2VyRGF0YS5wYXRoSXNEb25lKCk7Cit9CisKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShTVkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1BhdGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1BhdGguaAkocmV2aXNpb24gMTE5MzkxKQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiUmVuZGVyU1ZHU2hhcGUuaCIK
KyNpbmNsdWRlICJTVkdNYXJrZXJEYXRhLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MzYsOSArMzcsMzQgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclNWR1BhdGgoU1ZHU3R5
bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJTVkdQYXRoKCk7
CiAKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlOb25TY2FsaW5nU3Ryb2tlVHJh
bnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSosIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBk
cmF3TWFya2VycyhQYWludEluZm8mKTsKKwogcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlU2hhcGUoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdQYXRoKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0
dXJuICJSZW5kZXJTVkdQYXRoIjsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5KCkgY29uc3Q7
CisKKyAgICB2aXJ0dWFsIHZvaWQgc3Ryb2tlU2hhcGUoR3JhcGhpY3NDb250ZXh0KikgY29uc3Q7
CisKKyAgICB2aXJ0dWFsIGJvb2wgc2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyhjb25zdCBG
bG9hdFBvaW50JikgY29uc3Q7CisKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBvYmplY3RCb3VuZGlu
Z0JveCgpIGNvbnN0OworICAgIHZpcnR1YWwgRmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkg
Y29uc3Q7CisKKyAgICBQYXRoKiB6ZXJvTGVuZ3RoTGluZWNhcFBhdGgoY29uc3QgRmxvYXRQb2lu
dCYpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkU3Ryb2tlWmVyb0xlbmd0aFN1YnBhdGgoKSBjb25z
dDsKKyAgICBGbG9hdFJlY3QgemVyb0xlbmd0aFN1YnBhdGhSZWN0KGNvbnN0IEZsb2F0UG9pbnQm
LCBmbG9hdCkgY29uc3Q7CisgICAgdm9pZCBwcm9jZXNzWmVyb0xlbmd0aFN1YnBhdGhzKCk7CisK
KyAgICBib29sIHNob3VsZEdlbmVyYXRlTWFya2VyUG9zaXRpb25zKCkgY29uc3Q7CisgICAgRmxv
YXRSZWN0IG1hcmtlclJlY3QoZmxvYXQgc3Ryb2tlV2lkdGgpIGNvbnN0OworICAgIHZvaWQgcHJv
Y2Vzc01hcmtlclBvc2l0aW9ucygpOworCisgICAgVmVjdG9yPEZsb2F0UG9pbnQ+IG1femVyb0xl
bmd0aExpbmVjYXBMb2NhdGlvbnM7CisgICAgVmVjdG9yPE1hcmtlclBvc2l0aW9uPiBtX21hcmtl
clBvc2l0aW9uczsKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZWN0LmNwcAkocmV2aXNpb24gMTE5MzkxKQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIs
NiArNjIsMTQgQEAgdm9pZCBSZW5kZXJTVkdSZWN0OjpjcmVhdGVTaGFwZSgpCiAgICAgICAgcmV0
dXJuOwogICAgIH0KIAorICAgIC8vIFRoZSBvcHRpbWl6ZWQgc2hhcGVEZXBlbmRlbnRTdHJva2VD
b250YWlucyB0ZXN0IGhlcmUgZG9lcyBub3Qgc3VwcG9ydAorICAgIC8vIHRoZXNlIHByb3BlcnRp
ZXMgc28gY3JlYXRlIGEgZmFsbGJhY2sgcGF0aCBpbiBSZW5kZXJTVkdTaGFwZSBpZiBuZWVkZWQu
CisgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5bGUoKS0+c3ZnU3R5bGUo
KTsKKyAgICB1c2VQYXRoU3Ryb2tlQ29udGFpbnMgPSAhc3ZnU3R5bGUtPnN0cm9rZURhc2hBcnJh
eSgpLmlzRW1wdHkoKSB8fCBzdmdTdHlsZS0+c3Ryb2tlTWl0ZXJMaW1pdCgpICE9IHN2Z1N0eWxl
LT5pbml0aWFsU3Ryb2tlTWl0ZXJMaW1pdCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fHwgc3ZnU3R5bGUtPmpvaW5TdHlsZSgpICE9IHN2Z1N0eWxlLT5pbml0aWFsSm9pblN0eWxlKCkg
fHwgc3ZnU3R5bGUtPmNhcFN0eWxlKCkgIT0gc3ZnU3R5bGUtPmluaXRpYWxDYXBTdHlsZSgpOwor
ICAgIGlmICh1c2VQYXRoU3Ryb2tlQ29udGFpbnMpCisgICAgICAgIFJlbmRlclNWR1NoYXBlOjpj
cmVhdGVTaGFwZSgpOworCiAgICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0KHJlY3Qp
OwogICAgIEZsb2F0U2l6ZSBib3VuZGluZ0JveFNpemUocmVjdC0+d2lkdGgoKS52YWx1ZShsZW5n
dGhDb250ZXh0KSwgcmVjdC0+aGVpZ2h0KCkudmFsdWUobGVuZ3RoQ29udGV4dCkpOwogICAgIGlm
IChib3VuZGluZ0JveFNpemUuaXNFbXB0eSgpKQpAQCAtNzQsNyArODIsNyBAQCB2b2lkIFJlbmRl
clNWR1JlY3Q6OmNyZWF0ZVNoYXBlKCkKICAgICBtX2lubmVyU3Ryb2tlUmVjdCA9IG1fYm91bmRp
bmdCb3g7CiAgICAgbV9vdXRlclN0cm9rZVJlY3QgPSBtX2JvdW5kaW5nQm94OwogCi0gICAgaWYg
KHN0eWxlKCktPnN2Z1N0eWxlKCktPmhhc1N0cm9rZSgpKSB7CisgICAgaWYgKHN2Z1N0eWxlLT5o
YXNTdHJva2UoKSkgewogICAgICAgICBmbG9hdCBzdHJva2VXaWR0aCA9IHRoaXMtPnN0cm9rZVdp
ZHRoKCk7CiAgICAgICAgIG1faW5uZXJTdHJva2VSZWN0LmluZmxhdGUoLXN0cm9rZVdpZHRoIC8g
Mik7CiAgICAgICAgIG1fb3V0ZXJTdHJva2VSZWN0LmluZmxhdGUoc3Ryb2tlV2lkdGggLyAyKTsK
QEAgLTg0LDcgKzkyLDcgQEAgdm9pZCBSZW5kZXJTVkdSZWN0OjpjcmVhdGVTaGFwZSgpCiAKICNp
ZiBVU0UoQ0cpCiAgICAgLy8gQ29yZUdyYXBoaWNzIGNhbiBpbmZsYXRlIHRoZSBzdHJva2UgYnkg
MXB4IHdoZW4gZHJhd2luZyBhIHJlY3RhbmdsZSB3aXRoIGFudGlhbGlhc2luZyBkaXNhYmxlZCBh
dCBub24taW50ZWdlciBjb29yZGluYXRlcywgd2UgbmVlZCB0byBjb21wZW5zYXRlLgotICAgIGlm
IChzdHlsZSgpLT5zdmdTdHlsZSgpLT5zaGFwZVJlbmRlcmluZygpID09IFNSX0NSSVNQRURHRVMp
CisgICAgaWYgKHN2Z1N0eWxlLT5zaGFwZVJlbmRlcmluZygpID09IFNSX0NSSVNQRURHRVMpCiAg
ICAgICAgIG1fc3Ryb2tlQm91bmRpbmdSZWN0LmluZmxhdGUoMSk7CiAjZW5kaWYKIH0KQEAgLTEw
NSwzOSArMTEzLDM5IEBAIEZsb2F0UmVjdCBSZW5kZXJTVkdSZWN0OjpzdHJva2VCb3VuZGluZ0IK
IAogdm9pZCBSZW5kZXJTVkdSZWN0OjpmaWxsU2hhcGUoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
KSBjb25zdAogewotICAgIGlmICghaXNQYWludGluZ0ZhbGxiYWNrKCkpIHsKKyAgICBpZiAoaXNQ
YWludGluZ0ZhbGxiYWNrKCkpIHsKKyAgICAgICAgUmVuZGVyU1ZHU2hhcGU6OmZpbGxTaGFwZShj
b250ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICNpZiBVU0UoQ0cpCi0gICAgICAgIC8v
IEZJWE1FOiBDRyBpbXBsZW1lbnRhdGlvbiBvZiBHcmFwaGljc0NvbnRleHRDRzo6ZmlsbFJlY3Qg
aGFzIGFuIG93bgotICAgICAgICAvLyBzaGFkb3cgZHJhd2luZyBtZXRob2QsIHdoaWNoIGRyYXdz
IGFuIGV4dHJhIHNoYWRvdy4KLSAgICAgICAgLy8gVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIHN3
aXRjaGluZyBvZmYgdGhlIGV4dHJhIHNoYWRvdy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODk5Ci0gICAgICAgIGlmIChjb250ZXh0LT5oYXNT
aGFkb3coKSkgewotICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKCpjb250ZXh0KTsKLSAgICAgICAgICAgIGNvbnRleHQtPmNsZWFyU2hhZG93KCk7Ci0gICAg
ICAgICAgICBjb250ZXh0LT5maWxsUmVjdChtX2JvdW5kaW5nQm94KTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotI2VuZGlmCisgICAgLy8gRklYTUU6IENHIGltcGxlbWVudGF0aW9u
IG9mIEdyYXBoaWNzQ29udGV4dENHOjpmaWxsUmVjdCBoYXMgYW4gb3duCisgICAgLy8gc2hhZG93
IGRyYXdpbmcgbWV0aG9kLCB3aGljaCBkcmF3cyBhbiBleHRyYSBzaGFkb3cuCisgICAgLy8gVGhp
cyBpcyBhIHdvcmthcm91bmQgZm9yIHN3aXRjaGluZyBvZmYgdGhlIGV4dHJhIHNoYWRvdy4KKyAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4OTkKKyAgICBp
ZiAoY29udGV4dC0+aGFzU2hhZG93KCkpIHsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKKyAgICAgICAgY29udGV4dC0+Y2xlYXJTaGFkb3co
KTsKICAgICAgICAgY29udGV4dC0+ZmlsbFJlY3QobV9ib3VuZGluZ0JveCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgUmVuZGVyU1ZHU2hhcGU6OmZpbGxTaGFwZShjb250ZXh0KTsKKyNl
bmRpZgorICAgIGNvbnRleHQtPmZpbGxSZWN0KG1fYm91bmRpbmdCb3gpOwogfQogCiB2b2lkIFJl
bmRlclNWR1JlY3Q6OnN0cm9rZVNoYXBlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkgY29uc3QK
IHsKICAgICBpZiAoIXN0eWxlKCktPnN2Z1N0eWxlKCktPmhhc1Zpc2libGVTdHJva2UoKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIGlmICghaXNQYWludGluZ0ZhbGxiYWNrKCkpIHsKLSAgICAgICAg
Y29udGV4dC0+c3Ryb2tlUmVjdChtX2JvdW5kaW5nQm94LCBzdHJva2VXaWR0aCgpKTsKKyAgICBp
ZiAoaXNQYWludGluZ0ZhbGxiYWNrKCkpIHsKKyAgICAgICAgUmVuZGVyU1ZHU2hhcGU6OnN0cm9r
ZVNoYXBlKGNvbnRleHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIFJlbmRlclNWR1No
YXBlOjpzdHJva2VTaGFwZShjb250ZXh0KTsKKyAgICBjb250ZXh0LT5zdHJva2VSZWN0KG1fYm91
bmRpbmdCb3gsIHN0cm9rZVdpZHRoKCkpOwogfQogCiBib29sIFJlbmRlclNWR1JlY3Q6OnNoYXBl
RGVwZW5kZW50U3Ryb2tlQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0CiB7
Ci0gICAgaWYgKGlzUGFpbnRpbmdGYWxsYmFjaygpKQorICAgIGlmIChpc1BhaW50aW5nRmFsbGJh
Y2soKSB8fCB1c2VQYXRoU3Ryb2tlQ29udGFpbnMpCiAgICAgICAgIHJldHVybiBSZW5kZXJTVkdT
aGFwZTo6c2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyhwb2ludCk7CiAKICAgICByZXR1cm4g
bV9vdXRlclN0cm9rZVJlY3QuY29udGFpbnMocG9pbnQsIEZsb2F0UmVjdDo6SW5zaWRlT3JPblN0
cm9rZSkgJiYgIW1faW5uZXJTdHJva2VSZWN0LmNvbnRhaW5zKHBvaW50LCBGbG9hdFJlY3Q6Oklu
c2lkZUJ1dE5vdE9uU3Ryb2tlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVjdC5oCShyZXZpc2lvbiAxMTkzOTEpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1JlY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYs
NyBAQCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCBtX2lubmVyU3Ryb2tlUmVjdDsKICAgICBGbG9h
dFJlY3QgbV9vdXRlclN0cm9rZVJlY3Q7CiAgICAgRmxvYXRSZWN0IG1fc3Ryb2tlQm91bmRpbmdS
ZWN0OworICAgIGJvb2wgdXNlUGF0aFN0cm9rZUNvbnRhaW5zOwogfTsKIAogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAJKHJldmlz
aW9uIDExOTM5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hh
cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxNCArMzcsMTEgQEAKICNpbmNsdWRlICJMYXlv
dXRSZXBhaW50ZXIuaCIKICNpbmNsdWRlICJQb2ludGVyRXZlbnRzSGl0UnVsZXMuaCIKICNpbmNs
dWRlICJSZW5kZXJTVkdDb250YWluZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZU1h
cmtlci5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5oIgogI2luY2x1
ZGUgIlNWR1BhdGhEYXRhLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyaW5nQ29udGV4dC5oIgotI2lu
Y2x1ZGUgIlNWR1Jlc291cmNlcy5oIgogI2luY2x1ZGUgIlNWR1Jlc291cmNlc0NhY2hlLmgiCiAj
aW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdT
dWJwYXRoRGF0YS5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3QuaCIKICNpbmNsdWRlICJT
VkdVUklSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJTdHJva2VTdHlsZUFwcGxpZXIuaCIKQEAgLTY5
LDE3ICs2NiwxNSBAQCB2b2lkIFJlbmRlclNWR1NoYXBlOjpjcmVhdGVTaGFwZSgpCiB7CiAgICAg
QVNTRVJUKCFtX3BhdGgpOwogICAgIG1fcGF0aCA9IGFkb3B0UHRyKG5ldyBQYXRoKTsKLSAgICBB
U1NFUlQoaXNFbXB0eSgpKTsKKyAgICBBU1NFUlQoUmVuZGVyU1ZHU2hhcGU6OmlzRW1wdHkoKSk7
CiAKICAgICBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19j
YXN0PFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Kj4obm9kZSgpKTsKICAgICB1cGRhdGVQ
YXRoRnJvbUdyYXBoaWNzRWxlbWVudChlbGVtZW50LCBwYXRoKCkpOwotICAgIHByb2Nlc3NaZXJv
TGVuZ3RoU3VicGF0aHMoKTsKLSAgICBwcm9jZXNzTWFya2VyUG9zaXRpb25zKCk7CiB9CiAKIGJv
b2wgUmVuZGVyU1ZHU2hhcGU6OmlzRW1wdHkoKSBjb25zdAogewotICAgIHJldHVybiBtX3BhdGgt
PmlzRW1wdHkoKTsKKyAgICByZXR1cm4gcGF0aCgpLmlzRW1wdHkoKTsKIH0KIAogdm9pZCBSZW5k
ZXJTVkdTaGFwZTo6ZmlsbFNoYXBlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkgY29uc3QKQEAg
LTg5LDcgKzg0LDE3IEBAIHZvaWQgUmVuZGVyU1ZHU2hhcGU6OmZpbGxTaGFwZShHcmFwaGljc0MK
IAogRmxvYXRSZWN0IFJlbmRlclNWR1NoYXBlOjpvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fcGF0aC0+ZmFzdEJvdW5kaW5nUmVjdCgpOworICAgIHJldHVybiBwYXRo
KCkuZmFzdEJvdW5kaW5nUmVjdCgpOworfQorCitGbG9hdFJlY3QgUmVuZGVyU1ZHU2hhcGU6OnN0
cm9rZUJvdW5kaW5nQm94KCkgY29uc3QKK3sKKyAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3Zn
U3R5bGUgPSBzdHlsZSgpLT5zdmdTdHlsZSgpOworICAgIGlmIChzdmdTdHlsZS0+aGFzU3Ryb2tl
KCkpIHsKKyAgICAgICAgQm91bmRpbmdSZWN0U3Ryb2tlU3R5bGVBcHBsaWVyIHN0cm9rZVN0eWxl
KHRoaXMsIHN0eWxlKCkpOworICAgICAgICByZXR1cm4gcGF0aCgpLnN0cm9rZUJvdW5kaW5nUmVj
dCgmc3Ryb2tlU3R5bGUpOworICAgIH0KKyAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiB9CiAKIHZv
aWQgUmVuZGVyU1ZHU2hhcGU6OnN0cm9rZVNoYXBlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkg
Y29uc3QKQEAgLTEwMCwyMyArMTA1LDEzIEBAIHZvaWQgUmVuZGVyU1ZHU2hhcGU6OnN0cm9rZVNo
YXBlKEdyYXBoaWMKIAogYm9vbCBSZW5kZXJTVkdTaGFwZTo6c2hhcGVEZXBlbmRlbnRTdHJva2VD
b250YWlucyhjb25zdCBGbG9hdFBvaW50JiBwb2ludCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9w
YXRoKTsKICAgICBCb3VuZGluZ1JlY3RTdHJva2VTdHlsZUFwcGxpZXIgYXBwbGllcih0aGlzLCBz
dHlsZSgpKTsKLQotICAgIGlmIChoYXNOb25TY2FsaW5nU3Ryb2tlKCkpIHsKLSAgICAgICAgQWZm
aW5lVHJhbnNmb3JtIG5vblNjYWxpbmdUcmFuc2Zvcm0gPSBub25TY2FsaW5nU3Ryb2tlVHJhbnNm
b3JtKCk7Ci0gICAgICAgIFBhdGgqIHVzZVBhdGggPSBub25TY2FsaW5nU3Ryb2tlUGF0aChtX3Bh
dGguZ2V0KCksIG5vblNjYWxpbmdUcmFuc2Zvcm0pOwotCi0gICAgICAgIHJldHVybiB1c2VQYXRo
LT5zdHJva2VDb250YWlucygmYXBwbGllciwgbm9uU2NhbGluZ1RyYW5zZm9ybS5tYXBQb2ludChw
b2ludCkpOwotICAgIH0KLQotICAgIHJldHVybiBtX3BhdGgtPnN0cm9rZUNvbnRhaW5zKCZhcHBs
aWVyLCBwb2ludCk7CisgICAgcmV0dXJuIHBhdGgoKS5zdHJva2VDb250YWlucygmYXBwbGllciwg
cG9pbnQpOwogfQogCiBib29sIFJlbmRlclNWR1NoYXBlOjpzaGFwZURlcGVuZGVudEZpbGxDb250
YWlucyhjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgV2luZFJ1bGUgZmlsbFJ1bGUpIGNv
bnN0CiB7Ci0gICAgQVNTRVJUKG1fcGF0aCk7Ci0gICAgcmV0dXJuIG1fcGF0aC0+Y29udGFpbnMo
cG9pbnQsIGZpbGxSdWxlKTsKKyAgICByZXR1cm4gcGF0aCgpLmNvbnRhaW5zKHBvaW50LCBmaWxs
UnVsZSk7CiB9CiAKIGJvb2wgUmVuZGVyU1ZHU2hhcGU6OmZpbGxDb250YWlucyhjb25zdCBGbG9h
dFBvaW50JiBwb2ludCwgYm9vbCByZXF1aXJlc0ZpbGwsIGNvbnN0IFdpbmRSdWxlIGZpbGxSdWxl
KQpAQCAtMTMzLDM0ICsxMjgsMjEgQEAgYm9vbCBSZW5kZXJTVkdTaGFwZTo6ZmlsbENvbnRhaW5z
KGNvbnN0IAogCiBib29sIFJlbmRlclNWR1NoYXBlOjpzdHJva2VDb250YWlucyhjb25zdCBGbG9h
dFBvaW50JiBwb2ludCwgYm9vbCByZXF1aXJlc1N0cm9rZSkKIHsKLSAgICBpZiAoIXN0cm9rZUJv
dW5kaW5nQm94KCkuY29udGFpbnMocG9pbnQpKQorICAgIGlmICghbV9zdHJva2VCb3VuZGluZ0Jv
eC5jb250YWlucyhwb2ludCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIENvbG9yIGZh
bGxiYWNrQ29sb3I7CiAgICAgaWYgKHJlcXVpcmVzU3Ryb2tlICYmICFSZW5kZXJTVkdSZXNvdXJj
ZTo6c3Ryb2tlUGFpbnRpbmdSZXNvdXJjZSh0aGlzLCBzdHlsZSgpLCBmYWxsYmFja0NvbG9yKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0
eWxlID0gc3R5bGUoKS0+c3ZnU3R5bGUoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1f
emVyb0xlbmd0aExpbmVjYXBMb2NhdGlvbnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQVNTRVJU
KHN0eWxlKCktPnN2Z1N0eWxlKCktPmhhc1N0cm9rZSgpKTsKLSAgICAgICAgZmxvYXQgc3Ryb2tl
V2lkdGggPSB0aGlzLT5zdHJva2VXaWR0aCgpOwotICAgICAgICBpZiAoc3R5bGUoKS0+c3ZnU3R5
bGUoKS0+Y2FwU3R5bGUoKSA9PSBTcXVhcmVDYXApIHsKLSAgICAgICAgICAgIGlmICh6ZXJvTGVu
Z3RoU3VicGF0aFJlY3QobV96ZXJvTGVuZ3RoTGluZWNhcExvY2F0aW9uc1tpXSwgc3Ryb2tlV2lk
dGgpLmNvbnRhaW5zKHBvaW50KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVChzdHlsZSgpLT5zdmdTdHlsZSgpLT5jYXBT
dHlsZSgpID09IFJvdW5kQ2FwKTsKLSAgICAgICAgICAgIEZsb2F0UG9pbnQgcmFkaXVzVmVjdG9y
KHBvaW50LngoKSAtIG1femVyb0xlbmd0aExpbmVjYXBMb2NhdGlvbnNbaV0ueCgpLCBwb2ludC55
KCkgLSAgbV96ZXJvTGVuZ3RoTGluZWNhcExvY2F0aW9uc1tpXS55KCkpOwotICAgICAgICAgICAg
aWYgKHJhZGl1c1ZlY3Rvci5sZW5ndGhTcXVhcmVkKCkgPCBzdHJva2VXaWR0aCAqIHN0cm9rZVdp
ZHRoICogLjI1ZikKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAg
IGlmIChzdHlsZSgpLT5zdmdTdHlsZSgpLT5oYXNTdHJva2UoKSAmJiBoYXNOb25TY2FsaW5nU3Ry
b2tlKCkpIHsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG5vblNjYWxpbmdUcmFuc2Zvcm0gPSBu
b25TY2FsaW5nU3Ryb2tlVHJhbnNmb3JtKCk7CisgICAgICAgIGFwcGx5Tm9uU2NhbGluZ1N0cm9r
ZVRyYW5zZm9ybSgmbm9uU2NhbGluZ1RyYW5zZm9ybSk7CisgICAgICAgIGJvb2wgY29udGFpbnMg
PSAgc2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyhub25TY2FsaW5nVHJhbnNmb3JtLm1hcFBv
aW50KHBvaW50KSk7CisgICAgICAgIHVuYXBwbHlOb25TY2FsaW5nU3Ryb2tlVHJhbnNmb3JtKCk7
CisgICAgICAgIHJldHVybiBjb250YWluczsKICAgICB9CiAKLSAgICBpZiAoIXN2Z1N0eWxlLT5z
dHJva2VEYXNoQXJyYXkoKS5pc0VtcHR5KCkgfHwgc3ZnU3R5bGUtPnN0cm9rZU1pdGVyTGltaXQo
KSAhPSBzdmdTdHlsZS0+aW5pdGlhbFN0cm9rZU1pdGVyTGltaXQoKQotICAgICAgICB8fCBzdmdT
dHlsZS0+am9pblN0eWxlKCkgIT0gc3ZnU3R5bGUtPmluaXRpYWxKb2luU3R5bGUoKSB8fCBzdmdT
dHlsZS0+Y2FwU3R5bGUoKSAhPSBzdmdTdHlsZS0+aW5pdGlhbENhcFN0eWxlKCkpIHsKLSAgICAg
ICAgaWYgKCFtX3BhdGgpCi0gICAgICAgICAgICBSZW5kZXJTVkdTaGFwZTo6Y3JlYXRlU2hhcGUo
KTsKLSAgICAgICAgcmV0dXJuIFJlbmRlclNWR1NoYXBlOjpzaGFwZURlcGVuZGVudFN0cm9rZUNv
bnRhaW5zKHBvaW50KTsKLSAgICB9CiAgICAgcmV0dXJuIHNoYXBlRGVwZW5kZW50U3Ryb2tlQ29u
dGFpbnMocG9pbnQpOwogfQogCkBAIC0yMDUsMjQgKzE4NywyMSBAQCB2b2lkIFJlbmRlclNWR1No
YXBlOjpsYXlvdXQoKQogICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAotUGF0aCogUmVu
ZGVyU1ZHU2hhcGU6Om5vblNjYWxpbmdTdHJva2VQYXRoKGNvbnN0IFBhdGgqIHBhdGgsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgc3Ryb2tlVHJhbnNmb3JtKSBjb25zdAotewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoUGF0aCwgdGVtcFBhdGgsICgpKTsKLQotICAgIHRlbXBQYXRoID0gKnBhdGg7
Ci0gICAgdGVtcFBhdGgudHJhbnNmb3JtKHN0cm9rZVRyYW5zZm9ybSk7Ci0KLSAgICByZXR1cm4g
JnRlbXBQYXRoOwotfQotCi1ib29sIFJlbmRlclNWR1NoYXBlOjpzZXR1cE5vblNjYWxpbmdTdHJv
a2VDb250ZXh0KEFmZmluZVRyYW5zZm9ybSYgc3Ryb2tlVHJhbnNmb3JtLCBHcmFwaGljc0NvbnRl
eHRTdGF0ZVNhdmVyJiBzdGF0ZVNhdmVyKQordm9pZCBSZW5kZXJTVkdTaGFwZTo6YXBwbHlOb25T
Y2FsaW5nU3Ryb2tlVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSogc3Ryb2tlVHJhbnNm
b3JtLCBib29sIGludmVyc2UpCiB7Ci0gICAgaWYgKCFzdHJva2VUcmFuc2Zvcm0uaXNJbnZlcnRp
YmxlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFBh
dGgsIHByZVRyYW5zZm9ybVBhdGgsICgpKTsKKyAgICBQYXRoKiBwYXRoID0gJnRoaXMtPnBhdGgo
KTsKIAotICAgIHN0YXRlU2F2ZXIuc2F2ZSgpOwotICAgIHN0YXRlU2F2ZXIuY29udGV4dCgpLT5j
b25jYXRDVE0oc3Ryb2tlVHJhbnNmb3JtLmludmVyc2UoKSk7Ci0gICAgcmV0dXJuIHRydWU7Cisg
ICAgaWYgKGludmVyc2UpIHsKKyAgICAgICAgcGF0aC0+Y2xlYXIoKTsKKyAgICAgICAgbV9wYXRo
ID0gYWRvcHRQdHIobmV3IFBhdGgocHJlVHJhbnNmb3JtUGF0aCkpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIEFTU0VSVChzdHJva2VUcmFuc2Zvcm0pOworICAgICAgICBpZiAoIXN0cm9rZVRyYW5z
Zm9ybSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcHJlVHJhbnNmb3JtUGF0aCA9ICpw
YXRoOworICAgICAgICBwYXRoLT50cmFuc2Zvcm0oKnN0cm9rZVRyYW5zZm9ybSk7CisgICAgfQog
fQogCiBBZmZpbmVUcmFuc2Zvcm0gUmVuZGVyU1ZHU2hhcGU6Om5vblNjYWxpbmdTdHJva2VUcmFu
c2Zvcm0oKSBjb25zdApAQCAtMjMxLDczICsyMTAsMjkgQEAgQWZmaW5lVHJhbnNmb3JtIFJlbmRl
clNWR1NoYXBlOjpub25TY2FsaQogICAgIHJldHVybiBlbGVtZW50LT5nZXRTY3JlZW5DVE0oU1ZH
TG9jYXRhYmxlOjpEaXNhbGxvd1N0eWxlVXBkYXRlKTsKIH0KIAotYm9vbCBSZW5kZXJTVkdTaGFw
ZTo6c2hvdWxkU3Ryb2tlWmVyb0xlbmd0aFN1YnBhdGgoKSBjb25zdAotewotICAgIC8vIFNwZWMo
MTEuNCk6IEFueSB6ZXJvIGxlbmd0aCBzdWJwYXRoIHNoYWxsIG5vdCBiZSBzdHJva2VkIGlmIHRo
ZSAic3Ryb2tlLWxpbmVjYXAiIHByb3BlcnR5IGhhcyBhIHZhbHVlIG9mIGJ1dHQKLSAgICAvLyBi
dXQgc2hhbGwgYmUgc3Ryb2tlZCBpZiB0aGUgInN0cm9rZS1saW5lY2FwIiBwcm9wZXJ0eSBoYXMg
YSB2YWx1ZSBvZiByb3VuZCBvciBzcXVhcmUKLSAgICByZXR1cm4gc3R5bGUoKS0+c3ZnU3R5bGUo
KS0+aGFzU3Ryb2tlKCkgJiYgc3R5bGUoKS0+c3ZnU3R5bGUoKS0+Y2FwU3R5bGUoKSAhPSBCdXR0
Q2FwOwotfQotCi1ib29sIFJlbmRlclNWR1NoYXBlOjpzaG91bGRHZW5lcmF0ZU1hcmtlclBvc2l0
aW9ucygpIGNvbnN0Ci17Ci0gICAgaWYgKCFzdHlsZSgpLT5zdmdTdHlsZSgpLT5oYXNNYXJrZXJz
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1l
bnQqPihub2RlKCkpOwotICAgIGlmICghZWxlbWVudC0+c3VwcG9ydHNNYXJrZXJzKCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIFNWR1Jlc291cmNlcyogcmVzb3VyY2VzID0gU1ZHUmVz
b3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNlc0ZvclJlbmRlck9iamVjdCh0aGlzKTsKLSAgICBp
ZiAoIXJlc291cmNlcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHJlc291
cmNlcy0+bWFya2VyU3RhcnQoKSB8fCByZXNvdXJjZXMtPm1hcmtlck1pZCgpIHx8IHJlc291cmNl
cy0+bWFya2VyRW5kKCk7Ci19Ci0KLUZsb2F0UmVjdCBSZW5kZXJTVkdTaGFwZTo6emVyb0xlbmd0
aFN1YnBhdGhSZWN0KGNvbnN0IEZsb2F0UG9pbnQmIGxpbmVjYXBQb3NpdGlvbiwgZmxvYXQgc3Ry
b2tlV2lkdGgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZsb2F0UmVjdChsaW5lY2FwUG9zaXRpb24u
eCgpIC0gc3Ryb2tlV2lkdGggLyAyLCBsaW5lY2FwUG9zaXRpb24ueSgpIC0gc3Ryb2tlV2lkdGgg
LyAyLCBzdHJva2VXaWR0aCwgc3Ryb2tlV2lkdGgpOwotfQotCi1QYXRoKiBSZW5kZXJTVkdTaGFw
ZTo6emVyb0xlbmd0aExpbmVjYXBQYXRoKGNvbnN0IEZsb2F0UG9pbnQmIGxpbmVjYXBQb3NpdGlv
bikKLXsKLSAgICAvLyBTcGVjKDExLjQpOiBBbnkgemVybyBsZW5ndGggc3VicGF0aCBzaGFsbCBu
b3QgYmUgc3Ryb2tlZCBpZiB0aGUgInN0cm9rZS1saW5lY2FwIiBwcm9wZXJ0eSBoYXMgYSB2YWx1
ZSBvZiBidXR0Ci0gICAgLy8gYnV0IHNoYWxsIGJlIHN0cm9rZWQgaWYgdGhlICJzdHJva2UtbGlu
ZWNhcCIgcHJvcGVydHkgaGFzIGEgdmFsdWUgb2Ygcm91bmQgb3Igc3F1YXJlCi0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChQYXRoLCB0ZW1wUGF0aCwgKCkpOwotCi0gICAgdGVtcFBhdGguY2xlYXIo
KTsKLSAgICBmbG9hdCBzdHJva2VXaWR0aCA9IHRoaXMtPnN0cm9rZVdpZHRoKCk7Ci0gICAgaWYg
KHN0eWxlKCktPnN2Z1N0eWxlKCktPmNhcFN0eWxlKCkgPT0gU3F1YXJlQ2FwKQotICAgICAgICB0
ZW1wUGF0aC5hZGRSZWN0KHplcm9MZW5ndGhTdWJwYXRoUmVjdChsaW5lY2FwUG9zaXRpb24sIHN0
cm9rZVdpZHRoKSk7Ci0gICAgZWxzZQotICAgICAgICB0ZW1wUGF0aC5hZGRFbGxpcHNlKHplcm9M
ZW5ndGhTdWJwYXRoUmVjdChsaW5lY2FwUG9zaXRpb24sIHN0cm9rZVdpZHRoKSk7Ci0KLSAgICBy
ZXR1cm4gJnRlbXBQYXRoOwotfQotCi12b2lkIFJlbmRlclNWR1NoYXBlOjpmaWxsU2hhcGUoUmVu
ZGVyU3R5bGUqIHN0eWxlLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFBhdGgqIHBhdGgsIFJl
bmRlclNWR1NoYXBlKiBzaGFwZSkKK3ZvaWQgUmVuZGVyU1ZHU2hhcGU6OmZpbGxTaGFwZShSZW5k
ZXJTdHlsZSogc3R5bGUsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUmVuZGVyU1ZHU2hhcGUq
IHNoYXBlKQogewogICAgIENvbG9yIGZhbGxiYWNrQ29sb3I7CiAgICAgaWYgKFJlbmRlclNWR1Jl
c291cmNlKiBmaWxsUGFpbnRpbmdSZXNvdXJjZSA9IFJlbmRlclNWR1Jlc291cmNlOjpmaWxsUGFp
bnRpbmdSZXNvdXJjZSh0aGlzLCBzdHlsZSwgZmFsbGJhY2tDb2xvcikpIHsKICAgICAgICAgaWYg
KGZpbGxQYWludGluZ1Jlc291cmNlLT5hcHBseVJlc291cmNlKHRoaXMsIHN0eWxlLCBjb250ZXh0
LCBBcHBseVRvRmlsbE1vZGUpKQotICAgICAgICAgICAgZmlsbFBhaW50aW5nUmVzb3VyY2UtPnBv
c3RBcHBseVJlc291cmNlKHRoaXMsIGNvbnRleHQsIEFwcGx5VG9GaWxsTW9kZSwgcGF0aCwgc2hh
cGUpOworICAgICAgICAgICAgZmlsbFBhaW50aW5nUmVzb3VyY2UtPnBvc3RBcHBseVJlc291cmNl
KHRoaXMsIGNvbnRleHQsIEFwcGx5VG9GaWxsTW9kZSwgMCwgc2hhcGUpOwogICAgICAgICBlbHNl
IGlmIChmYWxsYmFja0NvbG9yLmlzVmFsaWQoKSkgewogICAgICAgICAgICAgUmVuZGVyU1ZHUmVz
b3VyY2VTb2xpZENvbG9yKiBmYWxsYmFja1Jlc291cmNlID0gUmVuZGVyU1ZHUmVzb3VyY2U6OnNo
YXJlZFNvbGlkUGFpbnRpbmdSZXNvdXJjZSgpOwogICAgICAgICAgICAgZmFsbGJhY2tSZXNvdXJj
ZS0+c2V0Q29sb3IoZmFsbGJhY2tDb2xvcik7CiAgICAgICAgICAgICBpZiAoZmFsbGJhY2tSZXNv
dXJjZS0+YXBwbHlSZXNvdXJjZSh0aGlzLCBzdHlsZSwgY29udGV4dCwgQXBwbHlUb0ZpbGxNb2Rl
KSkKLSAgICAgICAgICAgICAgICBmYWxsYmFja1Jlc291cmNlLT5wb3N0QXBwbHlSZXNvdXJjZSh0
aGlzLCBjb250ZXh0LCBBcHBseVRvRmlsbE1vZGUsIHBhdGgsIHNoYXBlKTsKKyAgICAgICAgICAg
ICAgICBmYWxsYmFja1Jlc291cmNlLT5wb3N0QXBwbHlSZXNvdXJjZSh0aGlzLCBjb250ZXh0LCBB
cHBseVRvRmlsbE1vZGUsIDAsIHNoYXBlKTsKICAgICAgICAgfQogICAgIH0KIH0KIAotdm9pZCBS
ZW5kZXJTVkdTaGFwZTo6c3Ryb2tlUGF0aChSZW5kZXJTdHlsZSogc3R5bGUsIEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgUGF0aCogcGF0aCwgUmVuZGVyU1ZHUmVzb3VyY2UqIHN0cm9rZVBhaW50
aW5nUmVzb3VyY2UsCit2b2lkIFJlbmRlclNWR1NoYXBlOjpzdHJva2VTaGFwZShSZW5kZXJTdHls
ZSogc3R5bGUsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUmVuZGVyU1ZHUmVzb3VyY2UqIHN0
cm9rZVBhaW50aW5nUmVzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IENvbG9yJiBmYWxsYmFja0NvbG9yLCBpbnQgYXBwbHlNb2RlKQogewogICAgIGlmICghc3R5
bGUtPnN2Z1N0eWxlKCktPmhhc1Zpc2libGVTdHJva2UoKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaWYgKHN0cm9rZVBhaW50aW5nUmVzb3VyY2UtPmFwcGx5UmVzb3VyY2UodGhpcywgc3R5bGUs
IGNvbnRleHQsIGFwcGx5TW9kZSkpIHsKLSAgICAgICAgc3Ryb2tlUGFpbnRpbmdSZXNvdXJjZS0+
cG9zdEFwcGx5UmVzb3VyY2UodGhpcywgY29udGV4dCwgYXBwbHlNb2RlLCBwYXRoLCB0aGlzKTsK
KyAgICAgICAgc3Ryb2tlUGFpbnRpbmdSZXNvdXJjZS0+cG9zdEFwcGx5UmVzb3VyY2UodGhpcywg
Y29udGV4dCwgYXBwbHlNb2RlLCAwLCB0aGlzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMzA3LDQwICsyNDIsMzQgQEAgdm9pZCBSZW5kZXJTVkdTaGFwZTo6c3Ryb2tlUGF0aChSZW5k
ZXJTdAogICAgIFJlbmRlclNWR1Jlc291cmNlU29saWRDb2xvciogZmFsbGJhY2tSZXNvdXJjZSA9
IFJlbmRlclNWR1Jlc291cmNlOjpzaGFyZWRTb2xpZFBhaW50aW5nUmVzb3VyY2UoKTsKICAgICBm
YWxsYmFja1Jlc291cmNlLT5zZXRDb2xvcihmYWxsYmFja0NvbG9yKTsKICAgICBpZiAoZmFsbGJh
Y2tSZXNvdXJjZS0+YXBwbHlSZXNvdXJjZSh0aGlzLCBzdHlsZSwgY29udGV4dCwgYXBwbHlNb2Rl
KSkKLSAgICAgICAgZmFsbGJhY2tSZXNvdXJjZS0+cG9zdEFwcGx5UmVzb3VyY2UodGhpcywgY29u
dGV4dCwgYXBwbHlNb2RlLCBwYXRoLCB0aGlzKTsKKyAgICAgICAgZmFsbGJhY2tSZXNvdXJjZS0+
cG9zdEFwcGx5UmVzb3VyY2UodGhpcywgY29udGV4dCwgYXBwbHlNb2RlLCAwLCB0aGlzKTsKIH0K
IAogdm9pZCBSZW5kZXJTVkdTaGFwZTo6ZmlsbEFuZFN0cm9rZVBhdGgoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0KQogewogICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IHRoaXMtPnN0eWxlKCk7CiAK
LSAgICBmaWxsU2hhcGUoc3R5bGUsIGNvbnRleHQsIDAsIHRoaXMpOworICAgIGZpbGxTaGFwZShz
dHlsZSwgY29udGV4dCwgdGhpcyk7CiAKICAgICBDb2xvciBmYWxsYmFja0NvbG9yID0gQ29sb3Io
KTsKICAgICBSZW5kZXJTVkdSZXNvdXJjZSogc3Ryb2tlUGFpbnRpbmdSZXNvdXJjZSA9IFJlbmRl
clNWR1Jlc291cmNlOjpzdHJva2VQYWludGluZ1Jlc291cmNlKHRoaXMsIHN0eWxlLCBmYWxsYmFj
a0NvbG9yKTsKICAgICBpZiAoIXN0cm9rZVBhaW50aW5nUmVzb3VyY2UpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFBhdGgqIHVzZVBhdGggPSBtX3BhdGguZ2V0KCk7Ci0gICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0LCBmYWxzZSk7Ci0gICAgQWZmaW5lVHJh
bnNmb3JtIG5vblNjYWxpbmdUcmFuc2Zvcm07Ci0KICAgICBpZiAoaGFzTm9uU2NhbGluZ1N0cm9r
ZSgpKSB7Ci0gICAgICAgIG5vblNjYWxpbmdUcmFuc2Zvcm0gPSBub25TY2FsaW5nU3Ryb2tlVHJh
bnNmb3JtKCk7Ci0gICAgICAgIGlmICghc2V0dXBOb25TY2FsaW5nU3Ryb2tlQ29udGV4dChub25T
Y2FsaW5nVHJhbnNmb3JtLCBzdGF0ZVNhdmVyKSkKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG5v
blNjYWxpbmdUcmFuc2Zvcm0gPSBub25TY2FsaW5nU3Ryb2tlVHJhbnNmb3JtKCk7CisgICAgICAg
IGlmICghbm9uU2NhbGluZ1RyYW5zZm9ybS5pc0ludmVydGlibGUoKSkKICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgdXNlUGF0aCA9IG5vblNjYWxpbmdTdHJva2VQYXRoKHVzZVBhdGgsIG5v
blNjYWxpbmdUcmFuc2Zvcm0pOworICAgICAgICBjb250ZXh0LT5zYXZlKCk7CisgICAgICAgIGNv
bnRleHQtPmNvbmNhdENUTShub25TY2FsaW5nVHJhbnNmb3JtLmludmVyc2UoKSk7CisgICAgICAg
IGFwcGx5Tm9uU2NhbGluZ1N0cm9rZVRyYW5zZm9ybSgmbm9uU2NhbGluZ1RyYW5zZm9ybSk7CiAg
ICAgfQogCi0gICAgc3Ryb2tlUGF0aChzdHlsZSwgY29udGV4dCwgdXNlUGF0aCwgc3Ryb2tlUGFp
bnRpbmdSZXNvdXJjZSwgZmFsbGJhY2tDb2xvciwgQXBwbHlUb1N0cm9rZU1vZGUpOworICAgIHN0
cm9rZVNoYXBlKHN0eWxlLCBjb250ZXh0LCBzdHJva2VQYWludGluZ1Jlc291cmNlLCBmYWxsYmFj
a0NvbG9yLCBBcHBseVRvU3Ryb2tlTW9kZSk7CiAKLSAgICAvLyBTcGVjKDExLjQpOiBBbnkgemVy
byBsZW5ndGggc3VicGF0aCBzaGFsbCBub3QgYmUgc3Ryb2tlZCBpZiB0aGUgInN0cm9rZS1saW5l
Y2FwIiBwcm9wZXJ0eSBoYXMgYSB2YWx1ZSBvZiBidXR0Ci0gICAgLy8gYnV0IHNoYWxsIGJlIHN0
cm9rZWQgaWYgdGhlICJzdHJva2UtbGluZWNhcCIgcHJvcGVydHkgaGFzIGEgdmFsdWUgb2Ygcm91
bmQgb3Igc3F1YXJlCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3plcm9MZW5ndGhMaW5l
Y2FwTG9jYXRpb25zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIFBhdGgqIHVzZVBhdGggPSB6ZXJv
TGVuZ3RoTGluZWNhcFBhdGgobV96ZXJvTGVuZ3RoTGluZWNhcExvY2F0aW9uc1tpXSk7Ci0gICAg
ICAgIGlmIChoYXNOb25TY2FsaW5nU3Ryb2tlKCkpCi0gICAgICAgICAgICB1c2VQYXRoID0gbm9u
U2NhbGluZ1N0cm9rZVBhdGgodXNlUGF0aCwgbm9uU2NhbGluZ1RyYW5zZm9ybSk7Ci0gICAgICAg
IHN0cm9rZVBhdGgoc3R5bGUsIGNvbnRleHQsIHVzZVBhdGgsIHN0cm9rZVBhaW50aW5nUmVzb3Vy
Y2UsIGZhbGxiYWNrQ29sb3IsIEFwcGx5VG9GaWxsTW9kZSk7CisgICAgaWYgKGhhc05vblNjYWxp
bmdTdHJva2UoKSkgeworICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisgICAgICAgIHVuYXBw
bHlOb25TY2FsaW5nU3Ryb2tlVHJhbnNmb3JtKCk7CiAgICAgfQogfQogCkBAIC0zNjcsOCArMjk2
LDcgQEAgdm9pZCBSZW5kZXJTVkdTaGFwZTo6cGFpbnQoUGFpbnRJbmZvJiBwYQogICAgICAgICAg
ICAgICAgICAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMoZmFs
c2UpOwogCiAgICAgICAgICAgICAgICAgZmlsbEFuZFN0cm9rZVBhdGgoY2hpbGRQYWludEluZm8u
Y29udGV4dCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFtX21hcmtlclBvc2l0aW9ucy5pc0VtcHR5
KCkpCi0gICAgICAgICAgICAgICAgICAgIGRyYXdNYXJrZXJzKGNoaWxkUGFpbnRJbmZvKTsKKyAg
ICAgICAgICAgICAgICBkcmF3TWFya2VycyhjaGlsZFBhaW50SW5mbyk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KIApAQCAtNDEzLDQ3ICszNDEsMTEgQEAgYm9vbCBSZW5kZXJTVkdTaGFwZTo6
bm9kZUF0RmxvYXRQb2ludChjbwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGlubGlu
ZSBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlciogbWFya2VyRm9yVHlwZShTVkdNYXJrZXJUeXBlIHR5
cGUsIFJlbmRlclNWR1Jlc291cmNlTWFya2VyKiBtYXJrZXJTdGFydCwgUmVuZGVyU1ZHUmVzb3Vy
Y2VNYXJrZXIqIG1hcmtlck1pZCwgUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIqIG1hcmtlckVuZCkK
LXsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIFN0YXJ0TWFya2VyOgotICAgICAgICBy
ZXR1cm4gbWFya2VyU3RhcnQ7Ci0gICAgY2FzZSBNaWRNYXJrZXI6Ci0gICAgICAgIHJldHVybiBt
YXJrZXJNaWQ7Ci0gICAgY2FzZSBFbmRNYXJrZXI6Ci0gICAgICAgIHJldHVybiBtYXJrZXJFbmQ7
Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0K
LUZsb2F0UmVjdCBSZW5kZXJTVkdTaGFwZTo6bWFya2VyUmVjdChmbG9hdCBzdHJva2VXaWR0aCkg
Y29uc3QKLXsKLSAgICBBU1NFUlQoIW1fbWFya2VyUG9zaXRpb25zLmlzRW1wdHkoKSk7Ci0KLSAg
ICBTVkdSZXNvdXJjZXMqIHJlc291cmNlcyA9IFNWR1Jlc291cmNlc0NhY2hlOjpjYWNoZWRSZXNv
dXJjZXNGb3JSZW5kZXJPYmplY3QodGhpcyk7Ci0gICAgQVNTRVJUKHJlc291cmNlcyk7Ci0KLSAg
ICBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlciogbWFya2VyU3RhcnQgPSByZXNvdXJjZXMtPm1hcmtl
clN0YXJ0KCk7Ci0gICAgUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIqIG1hcmtlck1pZCA9IHJlc291
cmNlcy0+bWFya2VyTWlkKCk7Ci0gICAgUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIqIG1hcmtlckVu
ZCA9IHJlc291cmNlcy0+bWFya2VyRW5kKCk7Ci0gICAgQVNTRVJUKG1hcmtlclN0YXJ0IHx8IG1h
cmtlck1pZCB8fCBtYXJrZXJFbmQpOwotCi0gICAgRmxvYXRSZWN0IGJvdW5kYXJpZXM7Ci0gICAg
dW5zaWduZWQgc2l6ZSA9IG1fbWFya2VyUG9zaXRpb25zLnNpemUoKTsKLSAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIGlmIChSZW5kZXJTVkdSZXNvdXJj
ZU1hcmtlciogbWFya2VyID0gbWFya2VyRm9yVHlwZShtX21hcmtlclBvc2l0aW9uc1tpXS50eXBl
LCBtYXJrZXJTdGFydCwgbWFya2VyTWlkLCBtYXJrZXJFbmQpKQotICAgICAgICAgICAgYm91bmRh
cmllcy51bml0ZShtYXJrZXItPm1hcmtlckJvdW5kYXJpZXMobWFya2VyLT5tYXJrZXJUcmFuc2Zv
cm1hdGlvbihtX21hcmtlclBvc2l0aW9uc1tpXS5vcmlnaW4sIG1fbWFya2VyUG9zaXRpb25zW2ld
LmFuZ2xlLCBzdHJva2VXaWR0aCkpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGJvdW5kYXJpZXM7Ci19
Ci0KIHZvaWQgUmVuZGVyU1ZHU2hhcGU6OnVwZGF0ZUNhY2hlZEJvdW5kYXJpZXMoKQogewogICAg
IGlmIChpc0VtcHR5KCkpIHsKICAgICAgICAgbV9maWxsQm91bmRpbmdCb3ggPSBGbG9hdFJlY3Qo
KTsKLSAgICAgICAgbV9zdHJva2VBbmRNYXJrZXJCb3VuZGluZ0JveCA9IEZsb2F0UmVjdCgpOwor
ICAgICAgICBtX3N0cm9rZUJvdW5kaW5nQm94ID0gRmxvYXRSZWN0KCk7CiAgICAgICAgIG1fcmVw
YWludEJvdW5kaW5nQm94ID0gRmxvYXRSZWN0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC00NjEsMTggKzM1MywyMCBAQCB2b2lkIFJlbmRlclNWR1NoYXBlOjp1cGRhdGVDYWNoZWRCb3Vu
ZGFyCiAgICAgLy8gQ2FjaGUgX3VuY2xpcHBlZF8gZmlsbCBib3VuZGluZyBib3gsIHVzZWQgZm9y
IGNhbGN1bGF0aW9ucyBpbiByZXNvdXJjZXMKICAgICBtX2ZpbGxCb3VuZGluZ0JveCA9IG9iamVj
dEJvdW5kaW5nQm94KCk7CiAKLSAgICAvLyBBZGQgemVyby1sZW5ndGggc3ViLXBhdGggbGluZWNh
cHMgdG8gdGhlIGZpbGwgYm94Ci0gICAgLy8gRklYTUU6IHplcm8tbGVuZ3RoIHN1YnBhdGhzIGRv
IG5vdCByZXNwZWN0IHZlY3Rvci1lZmZlY3QgPSBub24tc2NhbGluZy1zdHJva2UuCi0gICAgZmxv
YXQgc3Ryb2tlV2lkdGggPSB0aGlzLT5zdHJva2VXaWR0aCgpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV96ZXJvTGVuZ3RoTGluZWNhcExvY2F0aW9ucy5zaXplKCk7ICsraSkKLSAgICAg
ICAgbV9maWxsQm91bmRpbmdCb3gudW5pdGUoemVyb0xlbmd0aFN1YnBhdGhSZWN0KG1femVyb0xl
bmd0aExpbmVjYXBMb2NhdGlvbnNbaV0sIHN0cm9rZVdpZHRoKSk7Ci0KLSAgICAvLyBDYWNoZSBf
dW5jbGlwcGVkXyBzdHJva2UgYm91bmRpbmcgYm94LCB1c2VkIGZvciBjYWxjdWxhdGlvbnMgaW4g
cmVzb3VyY2VzIChpbmNsdWRlcyBtYXJrZXIgYm91bmRhcmllcykKLSAgICBtX3N0cm9rZUFuZE1h
cmtlckJvdW5kaW5nQm94ID0gbV9maWxsQm91bmRpbmdCb3g7Ci0gICAgaWYgKGhhc1BhdGgoKSkK
LSAgICAgICAgaW5mbGF0ZVdpdGhTdHJva2VBbmRNYXJrZXJCb3VuZHMoKTsKKyAgICAvLyBDYWNo
ZSBfdW5jbGlwcGVkXyBzdHJva2UgYm91bmRpbmcgYm94LCB1c2VkIGZvciBjYWxjdWxhdGlvbnMg
aW4gcmVzb3VyY2VzCisgICAgbV9zdHJva2VCb3VuZGluZ0JveCA9IG1fZmlsbEJvdW5kaW5nQm94
OworICAgIGlmICh0aGlzLT5zdHlsZSgpLT5zdmdTdHlsZSgpLT5oYXNTdHJva2UoKSAmJiBoYXNO
b25TY2FsaW5nU3Ryb2tlKCkpIHsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG5vblNjYWxpbmdU
cmFuc2Zvcm0gPSBub25TY2FsaW5nU3Ryb2tlVHJhbnNmb3JtKCk7CisgICAgICAgIGlmIChub25T
Y2FsaW5nVHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgpKSB7CisgICAgICAgICAgICBhcHBseU5vblNj
YWxpbmdTdHJva2VUcmFuc2Zvcm0oJm5vblNjYWxpbmdUcmFuc2Zvcm0pOworICAgICAgICAgICAg
bV9zdHJva2VCb3VuZGluZ0JveC51bml0ZShub25TY2FsaW5nVHJhbnNmb3JtLmludmVyc2UoKS5t
YXBSZWN0KHN0cm9rZUJvdW5kaW5nQm94KCkpKTsKKyAgICAgICAgICAgIHVuYXBwbHlOb25TY2Fs
aW5nU3Ryb2tlVHJhbnNmb3JtKCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgbV9z
dHJva2VCb3VuZGluZ0JveC51bml0ZShzdHJva2VCb3VuZGluZ0JveCgpKTsKKwogICAgIC8vIENh
Y2hlIHNtYWxsZXN0IHBvc3NpYmxlIHJlcGFpbnQgcmVjdGFuZ2xlCi0gICAgbV9yZXBhaW50Qm91
bmRpbmdCb3ggPSBzdHJva2VCb3VuZGluZ0JveCgpOworICAgIG1fcmVwYWludEJvdW5kaW5nQm94
ID0gbV9zdHJva2VCb3VuZGluZ0JveDsKICAgICBTVkdSZW5kZXJTdXBwb3J0OjppbnRlcnNlY3RS
ZXBhaW50UmVjdFdpdGhSZXNvdXJjZXModGhpcywgbV9yZXBhaW50Qm91bmRpbmdCb3gpOwogfQog
CkBAIC00ODMsNzkgKzM3Nyw2IEBAIGZsb2F0IFJlbmRlclNWR1NoYXBlOjpzdHJva2VXaWR0aCgp
IGNvbnMKICAgICByZXR1cm4gc3R5bGUoKS0+c3ZnU3R5bGUoKS0+c3Ryb2tlV2lkdGgoKS52YWx1
ZShsZW5ndGhDb250ZXh0KTsKIH0KIAotdm9pZCBSZW5kZXJTVkdTaGFwZTo6aW5mbGF0ZVdpdGhT
dHJva2VBbmRNYXJrZXJCb3VuZHMoKQotewotICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdT
dHlsZSA9IHN0eWxlKCktPnN2Z1N0eWxlKCk7Ci0gICAgaWYgKHN2Z1N0eWxlLT5oYXNTdHJva2Uo
KSkgewotICAgICAgICBCb3VuZGluZ1JlY3RTdHJva2VTdHlsZUFwcGxpZXIgc3Ryb2tlU3R5bGUo
dGhpcywgc3R5bGUoKSk7Ci0KLSAgICAgICAgLy8gU1ZHMS4yIFRpbnkgb25seSBkZWZpbmVzIG5v
biBzY2FsaW5nIHN0cm9rZSBmb3IgdGhlIHN0cm9rZSBidXQgbm90IG1hcmtlcnMuCi0gICAgICAg
IGlmIChoYXNOb25TY2FsaW5nU3Ryb2tlKCkpIHsKLSAgICAgICAgICAgIEFmZmluZVRyYW5zZm9y
bSBub25TY2FsaW5nVHJhbnNmb3JtID0gbm9uU2NhbGluZ1N0cm9rZVRyYW5zZm9ybSgpOwotICAg
ICAgICAgICAgaWYgKG5vblNjYWxpbmdUcmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkpIHsKLSAgICAg
ICAgICAgICAgICBQYXRoKiB1c2VQYXRoID0gbm9uU2NhbGluZ1N0cm9rZVBhdGgobV9wYXRoLmdl
dCgpLCBub25TY2FsaW5nVHJhbnNmb3JtKTsKLSAgICAgICAgICAgICAgICBGbG9hdFJlY3Qgc3Ry
b2tlQm91bmRpbmdSZWN0ID0gdXNlUGF0aC0+c3Ryb2tlQm91bmRpbmdSZWN0KCZzdHJva2VTdHls
ZSk7Ci0gICAgICAgICAgICAgICAgc3Ryb2tlQm91bmRpbmdSZWN0ID0gbm9uU2NhbGluZ1RyYW5z
Zm9ybS5pbnZlcnNlKCkubWFwUmVjdChzdHJva2VCb3VuZGluZ1JlY3QpOwotICAgICAgICAgICAg
ICAgIG1fc3Ryb2tlQW5kTWFya2VyQm91bmRpbmdCb3gudW5pdGUoc3Ryb2tlQm91bmRpbmdSZWN0
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX3N0cm9rZUFu
ZE1hcmtlckJvdW5kaW5nQm94LnVuaXRlKHBhdGgoKS5zdHJva2VCb3VuZGluZ1JlY3QoJnN0cm9r
ZVN0eWxlKSk7Ci0gICAgfQotICAgIGlmICghbV9tYXJrZXJQb3NpdGlvbnMuaXNFbXB0eSgpKQot
ICAgICAgICBtX3N0cm9rZUFuZE1hcmtlckJvdW5kaW5nQm94LnVuaXRlKG1hcmtlclJlY3Qoc3Ry
b2tlV2lkdGgoKSkpOwotfQotCi12b2lkIFJlbmRlclNWR1NoYXBlOjpkcmF3TWFya2VycyhQYWlu
dEluZm8mIHBhaW50SW5mbykKLXsKLSAgICBBU1NFUlQoIW1fbWFya2VyUG9zaXRpb25zLmlzRW1w
dHkoKSk7Ci0KLSAgICBTVkdSZXNvdXJjZXMqIHJlc291cmNlcyA9IFNWR1Jlc291cmNlc0NhY2hl
OjpjYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJPYmplY3QodGhpcyk7Ci0gICAgaWYgKCFyZXNvdXJj
ZXMpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlbmRlclNWR1Jlc291cmNlTWFya2VyKiBtYXJr
ZXJTdGFydCA9IHJlc291cmNlcy0+bWFya2VyU3RhcnQoKTsKLSAgICBSZW5kZXJTVkdSZXNvdXJj
ZU1hcmtlciogbWFya2VyTWlkID0gcmVzb3VyY2VzLT5tYXJrZXJNaWQoKTsKLSAgICBSZW5kZXJT
VkdSZXNvdXJjZU1hcmtlciogbWFya2VyRW5kID0gcmVzb3VyY2VzLT5tYXJrZXJFbmQoKTsKLSAg
ICBpZiAoIW1hcmtlclN0YXJ0ICYmICFtYXJrZXJNaWQgJiYgIW1hcmtlckVuZCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgZmxvYXQgc3Ryb2tlV2lkdGggPSB0aGlzLT5zdHJva2VXaWR0aCgpOwot
ICAgIHVuc2lnbmVkIHNpemUgPSBtX21hcmtlclBvc2l0aW9ucy5zaXplKCk7Ci0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBpZiAoUmVuZGVyU1ZHUmVz
b3VyY2VNYXJrZXIqIG1hcmtlciA9IG1hcmtlckZvclR5cGUobV9tYXJrZXJQb3NpdGlvbnNbaV0u
dHlwZSwgbWFya2VyU3RhcnQsIG1hcmtlck1pZCwgbWFya2VyRW5kKSkKLSAgICAgICAgICAgIG1h
cmtlci0+ZHJhdyhwYWludEluZm8sIG1hcmtlci0+bWFya2VyVHJhbnNmb3JtYXRpb24obV9tYXJr
ZXJQb3NpdGlvbnNbaV0ub3JpZ2luLCBtX21hcmtlclBvc2l0aW9uc1tpXS5hbmdsZSwgc3Ryb2tl
V2lkdGgpKTsKLSAgICB9Ci19Ci0KLXZvaWQgUmVuZGVyU1ZHU2hhcGU6OnByb2Nlc3NaZXJvTGVu
Z3RoU3VicGF0aHMoKQotewotICAgIG1femVyb0xlbmd0aExpbmVjYXBMb2NhdGlvbnMuY2xlYXIo
KTsKLQotICAgIGZsb2F0IHN0cm9rZVdpZHRoID0gdGhpcy0+c3Ryb2tlV2lkdGgoKTsKLSAgICBp
ZiAoIXN0cm9rZVdpZHRoIHx8ICFzaG91bGRTdHJva2VaZXJvTGVuZ3RoU3VicGF0aCgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQobV9wYXRoKTsKLQotICAgIFNWR1N1YnBhdGhEYXRh
IHN1YnBhdGhEYXRhKG1femVyb0xlbmd0aExpbmVjYXBMb2NhdGlvbnMpOwotICAgIG1fcGF0aC0+
YXBwbHkoJnN1YnBhdGhEYXRhLCBTVkdTdWJwYXRoRGF0YTo6dXBkYXRlRnJvbVBhdGhFbGVtZW50
KTsKLSAgICBzdWJwYXRoRGF0YS5wYXRoSXNEb25lKCk7Ci19Ci0KLXZvaWQgUmVuZGVyU1ZHU2hh
cGU6OnByb2Nlc3NNYXJrZXJQb3NpdGlvbnMoKQotewotICAgIG1fbWFya2VyUG9zaXRpb25zLmNs
ZWFyKCk7Ci0KLSAgICBpZiAoIXNob3VsZEdlbmVyYXRlTWFya2VyUG9zaXRpb25zKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIEFTU0VSVChtX3BhdGgpOwotCi0gICAgU1ZHTWFya2VyRGF0YSBt
YXJrZXJEYXRhKG1fbWFya2VyUG9zaXRpb25zKTsKLSAgICBtX3BhdGgtPmFwcGx5KCZtYXJrZXJE
YXRhLCBTVkdNYXJrZXJEYXRhOjp1cGRhdGVGcm9tUGF0aEVsZW1lbnQpOwotICAgIG1hcmtlckRh
dGEucGF0aElzRG9uZSgpOwotfQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaAkocmV2aXNp
b24gMTE5MzkxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFw
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiQWZmaW5lVHJh
bnNmb3JtLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuaCIKLSNpbmNsdWRlICJTVkdNYXJrZXJEYXRhLmgiCiAjaW5jbHVkZSAiU3Ryb2tl
U3R5bGVBcHBsaWVyLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KQEAgLTg3LDE0ICs4NiwxNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lk
IGNyZWF0ZVNoYXBlKCk7CiAgICAgdmlydHVhbCBib29sIGlzRW1wdHkoKSBjb25zdDsKICAgICB2
aXJ0dWFsIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0OwotICAgIHZpcnR1YWwg
RmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gbV9zdHJva2VBbmRN
YXJrZXJCb3VuZGluZ0JveDsgfQotICAgIHZvaWQgc2V0U3Ryb2tlQW5kTWFya2VyQm91bmRpbmdC
b3goRmxvYXRSZWN0IHJlY3QpIHsgbV9zdHJva2VBbmRNYXJrZXJCb3VuZGluZ0JveCA9IHJlY3Q7
IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBzaGFwZURlcGVuZGVudFN0cm9rZUNvbnRhaW5zKGNvbnN0IEZsb2F0UG9p
bnQmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hhcGVEZXBlbmRlbnRGaWxsQ29udGFpbnMo
Y29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IFdpbmRSdWxlKSBjb25zdDsKICAgICBmbG9hdCBzdHJv
a2VXaWR0aCgpIGNvbnN0OwogICAgIHZvaWQgc2V0SXNQYWludGluZ0ZhbGxiYWNrKGJvb2wgaXNG
YWxsYmFjaykgeyBtX2ZpbGxGYWxsYmFjayA9IGlzRmFsbGJhY2s7IH0KICAgICBib29sIGhhc1Bh
dGgoKSBjb25zdCB7IHJldHVybiBtX3BhdGguZ2V0KCk7IH0KICAgICBib29sIGhhc05vblNjYWxp
bmdTdHJva2UoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLT5zdmdTdHlsZSgpLT52ZWN0b3JFZmZl
Y3QoKSA9PSBWRV9OT05fU0NBTElOR19TVFJPS0U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlO
b25TY2FsaW5nU3Ryb2tlVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSogc3Ryb2tlVHJh
bnNmb3JtID0gMCwgYm9vbCBpbnZlcnNlID0gZmFsc2UpOworICAgIHZvaWQgdW5hcHBseU5vblNj
YWxpbmdTdHJva2VUcmFuc2Zvcm0oKSB7IGFwcGx5Tm9uU2NhbGluZ1N0cm9rZVRyYW5zZm9ybSgw
LCB0cnVlKTsgfQorICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBtb3ZlZCB0byBSZW5kZXJT
VkdQYXRoLgorICAgIHZpcnR1YWwgdm9pZCBkcmF3TWFya2VycyhQYWludEluZm8mIHBhaW50SW5m
bykgeyB9CiAKIHByaXZhdGU6CiAgICAgLy8gSGl0LWRldGVjdGlvbiBzZXBhcmF0ZWQgZm9yIHRo
ZSBmaWxsIGFuZCB0aGUgc3Ryb2tlCkBAIC0xMTcsMzMgKzExOSwxNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgdXBkYXRlQ2FjaGVkQm91bmRhcmllcygpOwogCiAgICAgQWZmaW5lVHJhbnNmb3JtIG5v
blNjYWxpbmdTdHJva2VUcmFuc2Zvcm0oKSBjb25zdDsKLSAgICBib29sIHNldHVwTm9uU2NhbGlu
Z1N0cm9rZUNvbnRleHQoQWZmaW5lVHJhbnNmb3JtJiwgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
ciYpOwotICAgIFBhdGgqIG5vblNjYWxpbmdTdHJva2VQYXRoKGNvbnN0IFBhdGgqLCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mKSBjb25zdDsKIAotICAgIFBhdGgqIHplcm9MZW5ndGhMaW5lY2FwUGF0
aChjb25zdCBGbG9hdFBvaW50Jik7Ci0gICAgYm9vbCBzaG91bGRTdHJva2VaZXJvTGVuZ3RoU3Vi
cGF0aCgpIGNvbnN0OwotICAgIEZsb2F0UmVjdCB6ZXJvTGVuZ3RoU3VicGF0aFJlY3QoY29uc3Qg
RmxvYXRQb2ludCYsIGZsb2F0KSBjb25zdDsKLSAgICB2b2lkIHByb2Nlc3NaZXJvTGVuZ3RoU3Vi
cGF0aHMoKTsKLQotICAgIGJvb2wgc2hvdWxkR2VuZXJhdGVNYXJrZXJQb3NpdGlvbnMoKSBjb25z
dDsKLSAgICBGbG9hdFJlY3QgbWFya2VyUmVjdChmbG9hdCBzdHJva2VXaWR0aCkgY29uc3Q7Ci0g
ICAgdm9pZCBwcm9jZXNzTWFya2VyUG9zaXRpb25zKCk7Ci0KLSAgICB2b2lkIGZpbGxTaGFwZShS
ZW5kZXJTdHlsZSosIEdyYXBoaWNzQ29udGV4dCosIFBhdGgqLCBSZW5kZXJTVkdTaGFwZSopOwot
ICAgIHZvaWQgc3Ryb2tlUGF0aChSZW5kZXJTdHlsZSosIEdyYXBoaWNzQ29udGV4dCosIFBhdGgq
LCBSZW5kZXJTVkdSZXNvdXJjZSosCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0IENvbG9yJiwg
aW50KTsKKyAgICB2b2lkIGZpbGxTaGFwZShSZW5kZXJTdHlsZSosIEdyYXBoaWNzQ29udGV4dCos
IFJlbmRlclNWR1NoYXBlKik7CisgICAgdm9pZCBzdHJva2VTaGFwZShSZW5kZXJTdHlsZSosIEdy
YXBoaWNzQ29udGV4dCosIFJlbmRlclNWR1Jlc291cmNlKiwgY29uc3QgQ29sb3ImLCBpbnQpOwog
ICAgIHZvaWQgZmlsbEFuZFN0cm9rZVBhdGgoR3JhcGhpY3NDb250ZXh0Kik7Ci0gICAgdm9pZCBp
bmZsYXRlV2l0aFN0cm9rZUFuZE1hcmtlckJvdW5kcygpOwotICAgIHZvaWQgZHJhd01hcmtlcnMo
UGFpbnRJbmZvJik7CiAKIHByaXZhdGU6CiAgICAgRmxvYXRSZWN0IG1fZmlsbEJvdW5kaW5nQm94
OwotICAgIEZsb2F0UmVjdCBtX3N0cm9rZUFuZE1hcmtlckJvdW5kaW5nQm94OworICAgIEZsb2F0
UmVjdCBtX3N0cm9rZUJvdW5kaW5nQm94OwogICAgIEZsb2F0UmVjdCBtX3JlcGFpbnRCb3VuZGlu
Z0JveDsKICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9sb2NhbFRyYW5zZm9ybTsKICAgICBPd25QdHI8
UGF0aD4gbV9wYXRoOwotICAgIFZlY3RvcjxGbG9hdFBvaW50PiBtX3plcm9MZW5ndGhMaW5lY2Fw
TG9jYXRpb25zOwotICAgIFZlY3RvcjxNYXJrZXJQb3NpdGlvbj4gbV9tYXJrZXJQb3NpdGlvbnM7
CiAKICAgICBib29sIG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlIDogMTsKICAgICBib29sIG1fbmVl
ZHNTaGFwZVVwZGF0ZSA6IDE7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTkzOTIpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNi0w
NCAgUGhpbGlwIFJvZ2VycyAgPHBkckBnb29nbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIFJl
bmRlclNWR3tTaGFwZSxSZWN0LEVsbGlwc2UsUGF0aH0gdG8gYmUgbGVzcyBjb3VwbGVkLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgyMzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogc3ZnL3N0cm9rZS9ub24tc2NhbGluZy1zdHJva2UtcGF0dGVy
bi1leHBlY3RlZC5zdmc6CisgICAgICAgICogc3ZnL3N0cm9rZS9ub24tc2NhbGluZy1zdHJva2Ut
cGF0dGVybi5zdmc6CisKIDIwMTItMDYtMDQgIERvbWluaWsgUsO2dHRzY2hlcyAgPGRvbWluaWsu
cm90dHNjaGVzQGludGVsLmNvbT4KIAogICAgICAgICBbQ2Fpcm9dIEltcGxlbWVudGF0aW9uIG9m
IEdyYXBoaWNzQ29udGV4dCBkb2VzIG5vdCBzYXZlL3Jlc3RvcmUgSW1hZ2VJbnRlcnBvbGF0aW9u
IGNvcnJlY3RseQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0
RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMTkzOTEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMjI3LDggKzEyMjcs
NiBAQCBCVUdXSzgxMjQwIE1BQyA6IHN2Zy90ZXh0L2JpZGktcmVvcmRlci12CiAKIEJVR1dLODEy
NDMgOiBzdmcvcmVwYWludC9yZXBhaW50aW5nLWFmdGVyLWFuaW1hdGlvbi1lbGVtZW50LXJlbW92
YWwuc3ZnID0gUEFTUyBJTUFHRQogCi1CVUdXSzg4MTk4IDogc3ZnL3N0cm9rZS9ub24tc2NhbGlu
Zy1zdHJva2UtcGF0dGVybi5zdmcgPSBQQVNTIElNQUdFCi0KIEJVR1dLODE0OTMgTElOVVggOiBz
dmcvY3VzdG9tL2pzLWxhdGUtZ3JhZGllbnQtY3JlYXRpb24uc3ZnID0gUEFTUyBJTUFHRQogCiAv
LyBGbGFreSBvbiBMaW51eCBhZnRlciBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8x
MTIwMjIKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCShy
ZXZpc2lvbiAxMTkzOTEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTk5LDggKzE5OSw2IEBAIEJVR1dLODUwMzggOiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3IKIEJVR1dLODU0MDEgOiBtZWRpYS92aWRlby1jb2xvcnNw
YWNlLXl1djQyMC5odG1sID0gVEVYVAogQlVHV0s4NTQwMSA6IG1lZGlhL3ZpZGVvLWNvbG9yc3Bh
Y2UteXV2NDIyLmh0bWwgPSBURVhUCiAKLUJVR1dLODgxOTggOiBzdmcvc3Ryb2tlL25vbi1zY2Fs
aW5nLXN0cm9rZS1wYXR0ZXJuLnN2ZyA9IFBBU1MgSU1BR0UKLQogQlVHV0s4NTQwNCA6IGZhc3Qv
bG9hZGVyL2phdmFzY3JpcHQtdXJsLWluLWVtYmVkLmh0bWwgPSBURVhUIFBBU1MKIAogQlVHV0s4
NTQwOCA6IHN2Zy9iYXRpay90ZXh0L2xvbmdUZXh0T25QYXRoLnN2ZyA9IFRFWFQgUEFTUwpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL3N0cm9rZS9ub24tc2NhbGluZy1zdHJva2UtcGF0dGVybi1leHBl
Y3RlZC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL3N0cm9rZS9ub24tc2NhbGlu
Zy1zdHJva2UtcGF0dGVybi1leHBlY3RlZC5zdmcJKHJldmlzaW9uIDExOTM5MSkKKysrIExheW91
dFRlc3RzL3N2Zy9zdHJva2Uvbm9uLXNjYWxpbmctc3Ryb2tlLXBhdHRlcm4tZXhwZWN0ZWQuc3Zn
CSh3b3JraW5nIGNvcHkpCkBAIC00LDMgKzQsOSBAQAogICAgIDwvZz4KIDwvc3ZnPgogCis8c3Zn
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGxpbmsiPgorICAgIDxnIHRyYW5zZm9ybT0ic2NhbGUoMikiPgorICAg
ICAgICA8cmVjdCB4PSIyMCIgeT0iMjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJn
cmVlbiIgc3Ryb2tlPSIjMDgwIiBzdHJva2Utd2lkdGg9IjEwIi8+CisgICAgPC9nPgorPC9zdmc+
CisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9zdHJva2Uvbm9uLXNjYWxpbmctc3Ryb2tlLXBhdHRl
cm4uc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9zdHJva2Uvbm9uLXNjYWxpbmct
c3Ryb2tlLXBhdHRlcm4uc3ZnCShyZXZpc2lvbiAxMTkzOTEpCisrKyBMYXlvdXRUZXN0cy9zdmcv
c3Ryb2tlL25vbi1zY2FsaW5nLXN0cm9rZS1wYXR0ZXJuLnN2Zwkod29ya2luZyBjb3B5KQpAQCAt
MTgsMyArMTgsMjMgQEAKICAgICAgICAgPHJlY3QgeD0iMjAiIHk9IjIwIiB3aWR0aD0iMTAwIiBo
ZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iIHN0cm9rZT0idXJsKCNwYXR0ZXJuKSIgc3Ryb2tlLXdp
ZHRoPSIyMCIvPgogICAgIDwvZz4KIDwvc3ZnPgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4K
KyAgICA8IS0tIFRlc3Qgc2hvdWxkIHJlc3VsdCBpbiBhIDIwMCoyMDAgZ3JlZW4gc3F1YXJlIHdp
dGggYSAyMHB4IGxpZ2h0LWdyZWVuIHN0cm9rZS4gLS0+CisgICAgPHN0eWxlIHR5cGU9InRleHQv
Y3NzIiA+CisgICAgICAgIDwhW0NEQVRBWworICAgICAgICByZWN0LCBwYXRoIHsKKyAgICAgICAg
ICAgIHN0cm9rZS13aWR0aDogIDIwOworICAgICAgICAgICAgdmVjdG9yLWVmZmVjdDogbm9uLXNj
YWxpbmctc3Ryb2tlOworICAgICAgICB9CisgICAgICAgIF1dPgorICAgIDwvc3R5bGU+CisgICAg
PGRlZnM+CisgICAgICAgIDxwYXR0ZXJuIGlkPSJwYXR0ZXJuIiB4PSIwIiB5PSIwIiB3aWR0aD0i
NSIgaGVpZ2h0PSIyMCIgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CisgICAgICAgICAg
ICA8cGF0aCBkPSJNMCAwIEwgNSAwIEwgNSAxIEwgMCAxIiBzdHJva2U9IiMwODAiIC8+CisgICAg
ICAgICAgICA8cmVjdCB4PSIwIiB5PSIyMCIgd2lkdGg9IjUiIGhlaWdodD0iMTAiIHN0cm9rZT0i
IzA4MCIgLz4KKyAgICAgICAgPC9wYXR0ZXJuPgorICAgIDwvZGVmcz4KKyAgICA8ZyB0cmFuc2Zv
cm09InNjYWxlKDIpIj4KKyAgICAgICAgPHJlY3QgeD0iMjAiIHk9IjIwIiB3aWR0aD0iMTAwIiBo
ZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iIHN0cm9rZT0idXJsKCNwYXR0ZXJuKSIgc3Ryb2tlLXdp
ZHRoPSIyMCIvPgorICAgIDwvZz4KKzwvc3ZnPgo=
</data>
<flag name="commit-queue"
          id="152725"
          type_id="3"
          status="-"
          setter="pdr"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145590</attachid>
            <date>2012-06-04 08:14:27 -0700</date>
            <delta_ts>2012-06-04 08:51:12 -0700</delta_ts>
            <desc>Update test expectations after 119392</desc>
            <filename>88230.1.patch</filename>
            <type>text/plain</type>
            <size>2583</size>
            <attacher name="Philip Rogers">pdr</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDExOTM5NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA2LTA0ICBQaGlsaXAgUm9nZXJzICA8
cGRyQGdvb2dsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIHRlc3QgZXhwZWN0YXRpb25zIGFmdGVy
IDExOTM5MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODgyMzAKKworICAgICAgICBVbnJldmlld2VkIHVwZGF0ZSBvZiB0ZXN0IGV4cGVjdGF0aW9ucy4K
KworICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RF
eHBlY3RhdGlvbnM6CisKIDIwMTItMDYtMDQgIEp1c3RpbiBOb3Zvc2FkICA8anVub3ZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIENhbnZhcyAyRCAtIFNvdXJjZSByZWN0YW5nbGVzIHRoYXQgb3Zl
cmxhcCB0aGUgc291cmNlIGltYWdlIGJvdW5kYXJ5LCBub3Qgc3VwcG9ydGVkIGJ5IGRyYXdJbWFn
ZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlz
aW9uIDExOTM5MikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25z
CSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5NSw4IEBAIEJVR1dLODY2MjMgOiBlZGl0aW5nL3Bh
c3RlYm9hcmQvZHJvcC10ZXgKIEJVR1dLODY2MjMgOiBlZGl0aW5nL3Bhc3RlYm9hcmQvZ2V0LWRh
dGEtdGV4dC1wbGFpbi1kcm9wLmh0bWwgPSBURVhUCiBCVUdXSzg2NjIzIDogaHR0cC90ZXN0cy9s
b2NhbC9maWxlYXBpL2ZpbGUtbGFzdC1tb2RpZmllZC1hZnRlci1kZWxldGUuaHRtbCA9IFRFWFQK
IAorQlVHV0s4ODE5OCA6IHN2Zy9zdHJva2Uvbm9uLXNjYWxpbmctc3Ryb2tlLXBhdHRlcm4uc3Zn
ID0gUEFTUyBJTUFHRQorCiAvLyBNaXNzaW5nIGRyYWcnbidkcm9wLCBuZWVkcyBiYXNlbGluZXMK
IEJVR1dLODY2MjMgOiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1kcm9wLWRlYWQtZnJhbWUuaHRt
bCA9IE1JU1NJTkcKIEJVR1dLODY2MjMgOiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1kcm9wLW1v
ZGlmaWVzLXBhZ2UuaHRtbCA9IE1JU1NJTkcKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMTkzOTIpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNDI2LDYgKzQyNiw4
IEBAIEJVR1dLODAyNDYgREVCVUcgOiBmYXN0L2Nzcy9ob3Zlci11cGRhdGUKIAogQlVHV0s4MzY4
MyA6IGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0aW5nLWVtcHR5LWh0bWwtZmFsbHMtYmFjay10by10
ZXh0Lmh0bWwgPSBQQVNTIFRFWFQKIAorQlVHV0s4ODE5OCA6IHN2Zy9zdHJva2Uvbm9uLXNjYWxp
bmctc3Ryb2tlLXBhdHRlcm4uc3ZnID0gUEFTUyBJTUFHRQorCiBCVUdXSzUxMDI3IDogcGx1Z2lu
cy9yZWZjb3VudC1sZWFrcy5odG1sID0gUEFTUyBURVhUCiBCVUdXSzgwMTU4IDogcGx1Z2lucy9u
ZXRzY2FwZS1wbHVnaW4tcGFnZS1jYWNoZS13b3Jrcy5odG1sID0gUEFTUyBURVhUCiAKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTE5Mzky
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBj
b3B5KQpAQCAtNzEsNiArNzEsOCBAQCBCVUdXSzg2MTM3IDogaWV0ZXN0Y2VudGVyL2NzczMvbmFt
ZXNwYWNlCiBCVUdXSzg2MTM5IDogaWV0ZXN0Y2VudGVyL2NzczMvbmFtZXNwYWNlcy9wcmVmaXgt
MDEwLnhtbCA9IElNQUdFCiBCVUdXSzg2MTQyIDogaWV0ZXN0Y2VudGVyL2NzczMvbmFtZXNwYWNl
cy9zeW50YXgtMDIxLnhtbCA9IElNQUdFCiAKK0JVR1dLODgxOTggOiBzdmcvc3Ryb2tlL25vbi1z
Y2FsaW5nLXN0cm9rZS1wYXR0ZXJuLnN2ZyA9IFBBU1MgSU1BR0UKKwogLy8gQ1NTIFZhcmlhYmxl
cyBhcmUgbm90IHlldCBlbmFibGVkLgogQlVHV0s4NTU4MCBTS0lQIDogZmFzdC9jc3MvdmFyaWFi
bGVzID0gUEFTUyBGQUlMCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152860</attachid>
            <date>2012-07-17 16:07:10 -0700</date>
            <delta_ts>2012-07-17 17:30:51 -0700</delta_ts>
            <desc>Update TestExpectations</desc>
            <filename>88230.2.patch</filename>
            <type>text/plain</type>
            <size>3985</size>
            <attacher name="Philip Rogers">pdr</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyMjg4MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA3LTE3ICBQaGlsaXAgUm9nZXJzICA8
cGRyQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGVudHJpZXMgaW4gVGVzdEV4cGVjdGF0
aW9ucyBmb3IgcGFzc2luZyBub24tc2NhbGluZy1zdHJva2UtcGF0dGVybi5zdmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MjMwCisKKyAgICAgICAg
VW5yZXZpZXdlZCB1cGRhdGUgb2YgdGVzdCBleHBlY2F0YXRpb25zLgorCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTA3LTE3ICBFbWlsIEEgRWtsdW5k
ICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlIGNh
dXNlcyBvdmVyZmxvdyB3aXRoIHN1YnBpeGVsIGxheW91dApJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMjI4NzYpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjIzLDggKzEyMjMsNiBAQCBCVUdXSzgxMjQwIE1BQyA6IHN2Zy90ZXh0L2Jp
ZGktcmVvcmRlci12CiAKIEJVR1dLODEyNDMgOiBzdmcvcmVwYWludC9yZXBhaW50aW5nLWFmdGVy
LWFuaW1hdGlvbi1lbGVtZW50LXJlbW92YWwuc3ZnID0gUEFTUyBJTUFHRQogCi1CVUdXSzg4MTk4
IDogc3ZnL3N0cm9rZS9ub24tc2NhbGluZy1zdHJva2UtcGF0dGVybi5zdmcgPSBQQVNTIElNQUdF
Ci0KIEJVR1dLODE0OTMgTElOVVggOiBzdmcvY3VzdG9tL2pzLWxhdGUtZ3JhZGllbnQtY3JlYXRp
b24uc3ZnID0gUEFTUyBJTUFHRQogCiAvLyBGbGFreSBvbiBMaW51eCBhZnRlciBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8xMTIwMjIKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMjI4NzYpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTAxLDggKzEw
MSw2IEBAIEJVR1dLODY2MjMgOiBmYXN0L2RvbS9zaGFkb3cvZHJvcC1ldmVudC0KIEJVR1dLODY2
MjMgOiBmYXN0L2V2ZW50cy9kcmFnLWRpc3BsYXktbm9uZS1lbGVtZW50Lmh0bWwgPSBURVhUCiBC
VUdXSzg2NjIzIDogaHR0cC90ZXN0cy9sb2NhbC9maWxlYXBpL2ZpbGUtbGFzdC1tb2RpZmllZC1h
ZnRlci1kZWxldGUuaHRtbCA9IFRFWFQKIAotQlVHV0s4ODE5OCA6IHN2Zy9zdHJva2Uvbm9uLXNj
YWxpbmctc3Ryb2tlLXBhdHRlcm4uc3ZnID0gUEFTUyBJTUFHRQotCiAvLyBNaXNzaW5nIGRyYWcn
bidkcm9wLCBuZWVkcyBiYXNlbGluZXMKIEJVR1dLODY2MjMgOiBlZGl0aW5nL3Bhc3RlYm9hcmQv
ZHJhZy1kcm9wLWRlYWQtZnJhbWUuaHRtbCA9IE1JU1NJTkcKIEJVR1dLODY2MjMgOiBlZGl0aW5n
L3Bhc3RlYm9hcmQvZHJhZy1kcm9wLW1vZGlmaWVzLXBhZ2UuaHRtbCA9IE1JU1NJTkcKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMjI4
NzYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwkod29ya2lu
ZyBjb3B5KQpAQCAtNDIyLDcgKzQyMiw2IEBAIEJVR1dLNzgzNDQgOiBmYXN0L3RleHQvaW50ZXJu
YXRpb25hbC9pbmwKIEJVR1dLODAyNDYgOiBmYXN0L2Nzcy9ob3Zlci11cGRhdGUuaHRtbCA9IFBB
U1MgVEVYVAogCiBCVUdXSzg2OTcxIDogc3ZnL2N1c3RvbS9ub24tc2NhbGluZy1zdHJva2UtbWFy
a2Vycy5zdmcgPSBQQVNTIFRFWFQKLUJVR1dLODgxOTggOiBzdmcvc3Ryb2tlL25vbi1zY2FsaW5n
LXN0cm9rZS1wYXR0ZXJuLnN2ZyA9IFBBU1MgSU1BR0UKIAogQlVHV0s4OTY1MCA6IHN2Zy9XM0Mt
U1ZHLTEuMS9hbmltYXRlLWVsZW0tMzItdC5zdmcgPSBQQVNTIFRFWFQKIEJVR1dLODk2NTAgOiBz
dmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTMzLXQuc3ZnID0gUEFTUyBURVhUCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTIyODc2
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcg
Y29weSkKQEAgLTIxMCw4ICsyMTAsNiBAQCBCVUdXSzg1MDM4IDogaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yCiBCVUdXSzg1NDAxIDogbWVkaWEvdmlkZW8tY29sb3JzcGFjZS15dXY0MjAuaHRt
bCA9IFRFWFQKIEJVR1dLODU0MDEgOiBtZWRpYS92aWRlby1jb2xvcnNwYWNlLXl1djQyMi5odG1s
ID0gVEVYVAogCi1CVUdXSzg4MTk4IDogc3ZnL3N0cm9rZS9ub24tc2NhbGluZy1zdHJva2UtcGF0
dGVybi5zdmcgPSBQQVNTIElNQUdFCi0KIEJVR1dLODU0MDQgOiBmYXN0L2xvYWRlci9qYXZhc2Ny
aXB0LXVybC1pbi1lbWJlZC5odG1sID0gVEVYVCBQQVNTCiAKIEJVR1dLODU0MDggOiBzdmcvYmF0
aWsvdGV4dC9sb25nVGV4dE9uUGF0aC5zdmcgPSBURVhUIFBBU1MKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTIyODc2KQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNzAs
OCArNzAsNiBAQCBCVUdXSzg2MTM3IDogaWV0ZXN0Y2VudGVyL2NzczMvbmFtZXNwYWNlCiBCVUdX
Szg2MTM5IDogaWV0ZXN0Y2VudGVyL2NzczMvbmFtZXNwYWNlcy9wcmVmaXgtMDEwLnhtbCA9IElN
QUdFCiBCVUdXSzg2MTQyIDogaWV0ZXN0Y2VudGVyL2NzczMvbmFtZXNwYWNlcy9zeW50YXgtMDIx
LnhtbCA9IElNQUdFCiAKLUJVR1dLODgxOTggOiBzdmcvc3Ryb2tlL25vbi1zY2FsaW5nLXN0cm9r
ZS1wYXR0ZXJuLnN2ZyA9IFBBU1MgSU1BR0UKLQogLy8gQ1NTIFZhcmlhYmxlcyBhcmUgbm90IHll
dCBlbmFibGVkLgogQlVHV0s4NTU4MCBTS0lQIDogZmFzdC9jc3MvdmFyaWFibGVzID0gUEFTUwog
QlVHV0s4NTU4MCBTS0lQIDogaW5zcGVjdG9yL3N0eWxlcy92YXJpYWJsZXMgPSBQQVNTCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>