<?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>80988</bug_id>
          
          <creation_ts>2012-03-13 08:21:40 -0700</creation_ts>
          <short_desc>[Chromium] GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query support.</short_desc>
          <delta_ts>2012-03-21 13:09:12 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>81561</dependson>
          <blocked>81004</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Reveman">reveman</reporter>
          <assigned_to name="David Reveman">reveman</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>577332</commentid>
    <comment_count>0</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-13 08:21:40 -0700</bug_when>
    <thetext>Expose EXT_occlusion_query extensions to WebKit compositor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577347</commentid>
    <comment_count>1</comment_count>
      <attachid>131623</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-13 08:33:18 -0700</bug_when>
    <thetext>Created attachment 131623
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577356</commentid>
    <comment_count>2</comment_count>
      <attachid>131625</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-13 08:43:59 -0700</bug_when>
    <thetext>Created attachment 131625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577390</commentid>
    <comment_count>3</comment_count>
      <attachid>131630</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-13 09:01:30 -0700</bug_when>
    <thetext>Created attachment 131630
Patch

Fix typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577501</commentid>
    <comment_count>4</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-13 10:27:53 -0700</bug_when>
    <thetext>Enne, are you comfortable reviewing WGC3D extensions? @kbr is out. Happy to bounce to James but I know his queue is deep.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577528</commentid>
    <comment_count>5</comment_count>
      <attachid>131630</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-13 10:45:02 -0700</bug_when>
    <thetext>Comment on attachment 131630
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/Extensions3DChromium.h:49
&gt; +    //   GL_CHROMIUM_fence

Is this what you want to call it? GL_CHROMIM_commands_issued_occlusion_query?

&gt; Source/WebKit/chromium/tests/FakeWebGraphicsContext3D.h:258
&gt; +    virtual WebGLId createQueryEXT() { return 1; }

Is 1 a safe return value?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577615</commentid>
    <comment_count>6</comment_count>
      <attachid>131630</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-13 11:51:36 -0700</bug_when>
    <thetext>Comment on attachment 131630
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/Extensions3DChromium.h:90
&gt; +        // GL_CHROMIUM_fence
&gt; +        COMMANDS_ISSUED_CHROMIUM = 0x84F2

Where does this get used? Are there not fence setting or checking functions?

&gt;&gt; Source/WebKit/chromium/tests/FakeWebGraphicsContext3D.h:258
&gt;&gt; +    virtual WebGLId createQueryEXT() { return 1; }
&gt; 
&gt; Is 1 a safe return value?

For this fake WGC3D, yes.  It&apos;s what we do above for other object-creating functions.  If some test needs to create real IDs, it can override and do that itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577635</commentid>
    <comment_count>7</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-13 12:06:20 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 131630 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131630&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/Extensions3DChromium.h:49
&gt; &gt; +    //   GL_CHROMIUM_fence
&gt; 
&gt; Is this what you want to call it? GL_CHROMIM_commands_issued_occlusion_query?

Maybe GL_CHROMIM_occlusion_query_commands_issued in that case but in this patch I&apos;m just being consistent with the extension name in Gregg&apos;s CL  http://codereview.chromium.org/9694025/ so lets move the name discussion over there instead.

&gt; 
&gt; &gt; Source/WebKit/chromium/tests/FakeWebGraphicsContext3D.h:258
&gt; &gt; +    virtual WebGLId createQueryEXT() { return 1; }
&gt; 
&gt; Is 1 a safe return value?

not used at the moment and returning 1 is consistent with the other fake createX() functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577642</commentid>
    <comment_count>8</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-13 12:10:55 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 131630 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131630&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/Extensions3DChromium.h:90
&gt; &gt; +        // GL_CHROMIUM_fence
&gt; &gt; +        COMMANDS_ISSUED_CHROMIUM = 0x84F2
&gt; 
&gt; Where does this get used? Are there not fence setting or checking functions?

The name doesn&apos;t currently reflect this but it&apos;s an extension on top of the GL_EXT_occlusion_query extension. You can find a usage example in this patch: https://bugs.webkit.org/show_bug.cgi?id=81004 and maybe also as part of the unit test for this CL: http://codereview.chromium.org/9694025/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578056</commentid>
    <comment_count>9</comment_count>
      <attachid>131763</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-13 17:45:16 -0700</bug_when>
    <thetext>Created attachment 131763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581499</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-18 15:23:04 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org, abarth@webkit.org or jamesr@chromium.org before submitting because this patch contains changes to the Chromium platform API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581500</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-18 15:23:25 -0700</bug_when>
    <thetext>Attachment 131763 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platf...&quot; exit_code: 1
Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581507</commentid>
    <comment_count>12</comment_count>
      <attachid>132504</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-18 16:07:34 -0700</bug_when>
    <thetext>Created attachment 132504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581515</commentid>
    <comment_count>13</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-18 16:24:21 -0700</bug_when>
    <thetext>Please review the patch. The following chromium change need to land before we can put it in the commit queue.

https://chromiumcodereview.appspot.com/9719030/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581833</commentid>
    <comment_count>14</comment_count>
      <attachid>132504</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-19 08:48:04 -0700</bug_when>
    <thetext>Comment on attachment 132504
Patch

Sure! Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581839</commentid>
    <comment_count>15</comment_count>
      <attachid>132504</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-19 08:55:24 -0700</bug_when>
    <thetext>Comment on attachment 132504
Patch

All required chromium side changes have landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581840</commentid>
    <comment_count>16</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-19 09:00:22 -0700</bug_when>
    <thetext>jamesr: Can you approve the WebGraphicsContext3D API changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581928</commentid>
    <comment_count>17</comment_count>
      <attachid>132504</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-19 10:38:01 -0700</bug_when>
    <thetext>Comment on attachment 132504
Patch

Looks OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581971</commentid>
    <comment_count>18</comment_count>
      <attachid>132504</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-19 11:28:00 -0700</bug_when>
    <thetext>Comment on attachment 132504
Patch

Clearing flags on attachment: 132504

Committed r111207: &lt;http://trac.webkit.org/changeset/111207&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581972</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-19 11:28:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582038</commentid>
    <comment_count>20</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-19 12:19:51 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582039</commentid>
    <comment_count>21</comment_count>
      <attachid>132625</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-19 12:19:54 -0700</bug_when>
    <thetext>Created attachment 132625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582041</commentid>
    <comment_count>22</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-19 12:20:58 -0700</bug_when>
    <thetext>Whoops, wrong bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582268</commentid>
    <comment_count>23</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-19 14:38:27 -0700</bug_when>
    <thetext>Rolled out in bug 81561.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583271</commentid>
    <comment_count>24</comment_count>
      <attachid>132862</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-20 11:25:01 -0700</bug_when>
    <thetext>Created attachment 132862
Patch

Add base implementations of EXT_occlusion_query functions to be consistent with other extensions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583281</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 11:27:30 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583290</commentid>
    <comment_count>26</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-20 11:35:26 -0700</bug_when>
    <thetext>API changes ok. Didn&apos;t look at impl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583295</commentid>
    <comment_count>27</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-20 11:39:03 -0700</bug_when>
    <thetext>How were missing implementations causing test errors? Or, am I misunderstanding what the problem was?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583306</commentid>
    <comment_count>28</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-20 11:50:29 -0700</bug_when>
    <thetext>Spent a significant amount of time looking at what could possible cause the runtime problem that was the reason for reverting this patch. The only difference I&apos;ve found compared to other extensions is the lack of base implementations for functions in WebGraphicsContext3D.h. I changed this in the latest patch to be consistent with other extension functions, although I&apos;m not sure how this change can affect a runtime error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583314</commentid>
    <comment_count>29</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-20 11:55:19 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; Spent a significant amount of time looking at what could possible cause the runtime problem that was the reason for reverting this patch. The only difference I&apos;ve found compared to other extensions is the lack of base implementations for functions in WebGraphicsContext3D.h. I changed this in the latest patch to be consistent with other extension functions, although I&apos;m not sure how this change can affect a runtime error.

Yeah, it certainly doesn&apos;t sound like that would result in runtime errors.

If you haven&apos;t already, could you run a try job with this patch to run whatever tests were failing just as a sanity check? If that passes, I&apos;m happy to re-R+/CQ+ this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584519</commentid>
    <comment_count>30</comment_count>
      <attachid>132862</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-21 12:50:03 -0700</bug_when>
    <thetext>Comment on attachment 132862
Patch

http://build.chromium.org/p/tryserver.chromium/builders/mac_gpu/builds/92 looks clean.  Let&apos;s try this again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584543</commentid>
    <comment_count>31</comment_count>
      <attachid>132862</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 13:09:06 -0700</bug_when>
    <thetext>Comment on attachment 132862
Patch

Clearing flags on attachment: 132862

Committed r111597: &lt;http://trac.webkit.org/changeset/111597&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584544</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 13:09:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131623</attachid>
            <date>2012-03-13 08:33:18 -0700</date>
            <delta_ts>2012-03-13 08:43:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80988-20120313113313.patch</filename>
            <type>text/plain</type>
            <size>10969</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA4ZWI3MTFhYWY2MTM3
MzQzOGRkNWU4ZTA4ZDU2ZjZiNjk1NWFjODIyLi4zMTQxNzc4MTI0YzgyNWNjMGQ0ZWI5ZjdhZWZj
MWIxYzY5ODE4YTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0xMyAg
RGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1
bV0gR0xfRVhUX29jY2x1c2lvbl9xdWVyeV9ib29sZWFuIGFuZCBHTF9DSFJPTUlVTV9mZW5jZSBz
dXBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODA5ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGNocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAgICAoV2ViR3Jh
cGhpY3NDb250ZXh0M0QpOgorCiAyMDEyLTAzLTA4ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXNlIGFuIGV4cGxpY2l0IGF0dHJpYnV0ZSB0byBzaWdu
YWwgdGhhdCBhIGNvbnRleHQgcHJlZmVycyB0byB1c2UgYSBkaXNjcmV0ZSBHUFUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA2MGViMDUyZmYyOTNlMmYxMjM0NDE0ZGI1MzkzODFiN2YyZWNjOTJhLi4xYmY0YTA0NjY2
NTJlOGViY2M0MWIyYWY2ZDVhNTMyYjQyZjUyNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMDMtMTMgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbQ2hyb21pdW1dIEdMX0VYVF9vY2NsdXNpb25fcXVlcnlfYm9vbGVhbiBhbmQgR0xf
Q0hST01JVU1fZmVuY2Ugc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgwOTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oOgorICAgICAgICAoRXh0
ZW5zaW9uczNEQ2hyb21pdW0pOgorCiAyMDEyLTAzLTEyICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEluZmluaXRlIHJlcGFpbnQgbG9vcCB3aXRoIFNW
R0ltYWdlQ2FjaGUgYW5kIGRlZmVycmVkIHJlcGFpbnQgdGltZXJzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDIwNGZjMTE5ZmM5ZGZiOWRkZmJmMTI4YTYwZDY0MTQ2ZGFmNTc5YTUuLjU0
ZWUwMzc2MmQwM2E1ZTJkY2MxZGRmYWJjMTdjY2ZlNzdiODllNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMDMtMTMgIERhdmlkIFJldmVtYW4gIDxy
ZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEdMX0VYVF9vY2NsdXNp
b25fcXVlcnlfYm9vbGVhbiBhbmQgR0xfQ0hST01JVU1fZmVuY2Ugc3VwcG9ydC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwOTg4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvRXh0ZW5zaW9uczNE
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNEQ2hyb21pdW06OmNy
ZWF0ZVF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXh0
ZW5zaW9uczNEQ2hyb21pdW06OmRlbGV0ZVF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4
dGVuc2lvbnMzRENocm9taXVtOjppc1F1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
c2lvbnMzRENocm9taXVtOjpiZWdpblF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
c2lvbnMzRENocm9taXVtOjplbmRRdWVyeUVYVCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNp
b25zM0RDaHJvbWl1bTo6Z2V0UXVlcnlpdkVYVCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNp
b25zM0RDaHJvbWl1bTo6Z2V0UXVlcnlPYmplY3R1aXZFWFQpOgorICAgICAgICAqIHNyYy9HcmFw
aGljc0NvbnRleHQzRENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHNyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaDoKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZSk6CisgICAgICAgICogdGVzdHMvRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNELmg6
CisgICAgICAgIChXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlUXVlcnlF
WFQpOgorICAgICAgICAoV2ViS2l0OjpGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0Q6OmRlbGV0ZVF1
ZXJ5RVhUKToKKyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjppc1F1
ZXJ5RVhUKToKKyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpiZWdp
blF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpl
bmRRdWVyeUVYVCk6CisgICAgICAgIChXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6
Z2V0UXVlcnlpdkVYVCk6CisgICAgICAgIChXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQz
RDo6Z2V0UXVlcnlPYmplY3R1aXZFWFQpOgorICAgICAgICAoRmFrZVdlYkdyYXBoaWNzQ29udGV4
dDNEKToKKwogMjAxMi0wMy0xMiAgTmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0Nocm9taXVtXSBGb3JjZSBjb21wb3NpdGVBbmRSZWFkYmFjayB0aHJvdWdoIHJlZ3Vs
YXIgc2NoZWR1bGluZyBmbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggMjc0YzI3OTRjMTgxMTIwOGIxNTMy
OTFmOWI2YWQxNmRjYmQ0MTRiZi4uZWE0MzhkZWU2ZDA0MGRmMjgxNWFmYjk3NDk2NjNlOTRmYTRi
NDBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFw
aGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
R3JhcGhpY3NDb250ZXh0M0QuaApAQCAtMzk4LDYgKzM5OCwxNCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHRleFN0b3JhZ2UyREVYVChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZl
bHMsIFdHQzNEdWludCBpbnRlcm5hbGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdHQzNEaW50IHdpZHRoLCBXR0MzRGludCBoZWlnaHQpIHsgfQogCisgICAgLy8gR0xf
RVhUX29jY2x1c2lvbl9xdWVyeQorICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVRdWVyeUVYVCgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUXVlcnlFWFQoV2ViR0xJZCBxdWVyeSkgPSAw
OworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzUXVlcnlFWFQoV2ViR0xJZCBxdWVyeSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBiZWdpblF1ZXJ5RVhUKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdM
SWQgcXVlcnkpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kUXVlcnlFWFQoV0dDM0RlbnVtIHRh
cmdldCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRRdWVyeWl2RVhUKFdHQzNEZW51bSB0YXJn
ZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHBhcmFtcykgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBnZXRRdWVyeU9iamVjdHVpdkVYVChXZWJHTElkIHF1ZXJ5LCBXR0MzRGVudW0gcG5hbWUs
IFdHQzNEdWludCogcGFyYW1zKSA9IDA7CiAKICNpZiBXRUJLSVRfVVNJTkdfU0tJQQogICAgIEdy
R0xJbnRlcmZhY2UqIGNyZWF0ZUdyR0xJbnRlcmZhY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RD
aHJvbWl1bS5oCmluZGV4IDUzMzIyZjBmMjVlZDQwN2EyNWU2YjYyMzI3ZTg3MTI4OWQxOGJkNWEu
LjJkMmY2MWI5YWUwZDk2Njk3ZDNiYWFlZmQzOWE2YWQxZTg4ZWYyMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9t
aXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0
ZW5zaW9uczNEQ2hyb21pdW0uaApAQCAtNDYsOCArNDYsMTAgQEAgcHVibGljOgogICAgIC8vICAg
R0xfQ0hST01JVU1fcmF0ZV9saW1pdF9vZmZzY3JlZW5fY29udGV4dAogICAgIC8vICAgR0xfQ0hS
T01JVU1fcGFpbnRfZnJhbWVidWZmZXJfY2FudmFzCiAgICAgLy8gICBHTF9DSFJPTUlVTV9pb3N1
cmZhY2UgKE1hYyBPUyBYIHNwZWNpZmljKQorICAgIC8vICAgR0xfQ0hST01JVU1fZmVuY2UKICAg
ICAvLyAgIEdMX0FOR0xFX3RleHR1cmVfdXNhZ2UKICAgICAvLyAgIEdMX0VYVF90ZXh0dXJlX3N0
b3JhZ2UKKyAgICAvLyAgIEdMX0VYVF9vY2NsdXNpb25fcXVlcnlfYm9vbGVhbgogCiAgICAgLy8g
RXh0ZW5zaW9uczNEIG1ldGhvZHMuCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzKGNvbnN0IFN0
cmluZyYpOwpAQCAtNzUsNyArNzcsMTcgQEAgcHVibGljOgogICAgICAgICBHTF9GUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX0FOR0xFID0gMHg5M0EzLAogCiAgICAgICAgIC8vIEdMX0VYVF90ZXh0dXJl
X3N0b3JhZ2UKLSAgICAgICAgQkdSQThfRVhUID0gMHg5M0ExCisgICAgICAgIEJHUkE4X0VYVCA9
IDB4OTNBMSwKKworICAgICAgICAvLyBHTF9FWFRfb2NjbHVzaW9uX3F1ZXJ5X2Jvb2xlYW4KKyAg
ICAgICAgQU5ZX1NBTVBMRVNfUEFTU0VEX0VYVCA9IDB4OEMyRiwKKyAgICAgICAgQU5ZX1NBTVBM
RVNfUEFTU0VEX0NPTlNFUlZBVElWRV9FWFQgPSAweDhENkEsCisgICAgICAgIENVUlJFTlRfUVVF
UllfRVhUID0gMHg4ODY1LAorICAgICAgICBRVUVSWV9SRVNVTFRfRVhUID0gMHg4ODY2LAorICAg
ICAgICBRVUVSWV9SRVNVTFRfQVZBSUxBQkxFX0VYVCA9IDB4ODg2NworCisgICAgICAgIC8vIEdM
X0NIUk9NSVVNX2ZlbmNlCisgICAgICAgIEdMX0NPTU1BTkRTX0lTU1VFRF9DSFJPTUlVTSA9IDB4
ODRGMgogICAgIH07CiAKICAgICAvLyBHTF9DSFJPTUlVTV9wb3N0X3N1Yl9idWZmZXIKQEAgLTEy
MCw2ICsxMzIsMTUgQEAgcHVibGljOgogICAgIC8vIEdMX0VYVF90ZXh0dXJlX3N0b3JhZ2UKICAg
ICB2b2lkIHRleFN0b3JhZ2UyREVYVCh1bnNpZ25lZCB0YXJnZXQsIGludCBsZXZlbHMsIHVuc2ln
bmVkIGludGVybmFsZm9ybWF0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogCisgICAgLy8gR0xf
RVhUX29jY2x1c2lvbl9xdWVyeQorICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlUXVlcnlFWFQo
KTsKKyAgICB2b2lkIGRlbGV0ZVF1ZXJ5RVhUKFBsYXRmb3JtM0RPYmplY3QpOworICAgIEdDM0Ri
b29sZWFuIGlzUXVlcnlFWFQoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdm9pZCBiZWdpblF1ZXJ5
RVhUKEdDM0RlbnVtLCBQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIGVuZFF1ZXJ5RVhUKEdD
M0RlbnVtKTsKKyAgICB2b2lkIGdldFF1ZXJ5aXZFWFQoR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNE
aW50Kik7CisgICAgdm9pZCBnZXRRdWVyeU9iamVjdHVpdkVYVChQbGF0Zm9ybTNET2JqZWN0LCBH
QzNEZW51bSwgR0MzRHVpbnQqKTsKKwogcHJpdmF0ZToKICAgICAvLyBJbnN0YW5jZXMgb2YgdGhp
cyBjbGFzcyBhcmUgc3RyaWN0bHkgb3duZWQgYnkgdGhlIEdyYXBoaWNzQ29udGV4dDNEIGltcGxl
bWVudGF0aW9uIGFuZCBkbyBub3QKICAgICAvLyBuZWVkIHRvIGJlIGluc3RhbnRpYXRlZCBieSBh
bnkgb3RoZXIgY29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4
dGVuc2lvbnMzRENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVu
c2lvbnMzRENocm9taXVtLmNwcAppbmRleCA3MzM5N2JkMmIxNmE3Y2NjZmExODJiYTEyNzY4ZGEw
YzdhNTg3NmRiLi42YjU2Y2NhMGM5ODFkMGMwMWU0M2NiYzA4YjViYzA0MTRmY2ExNzQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0u
Y3BwCkBAIC0xNjAsNiArMTYwLDQxIEBAIHZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OnRleFN0
b3JhZ2UyREVYVCh1bnNpZ25lZCBpbnQgdGFyZ2V0LCBpbnQgbGV2ZWxzLCB1bnNpCiAgICAgbV9w
cml2YXRlLT50ZXhTdG9yYWdlMkRFWFQodGFyZ2V0LCBsZXZlbHMsIGludGVybmFsRm9ybWF0LCB3
aWR0aCwgaGVpZ2h0KTsKIH0KIAorUGxhdGZvcm0zRE9iamVjdCBFeHRlbnNpb25zM0RDaHJvbWl1
bTo6Y3JlYXRlUXVlcnlFWFQoKQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmNyZWF0ZVF1ZXJ5
RVhUKCk7Cit9CisKK3ZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmRlbGV0ZVF1ZXJ5RVhUKFBs
YXRmb3JtM0RPYmplY3QgcXVlcnkpCit7CisgICAgbV9wcml2YXRlLT5kZWxldGVRdWVyeUVYVChx
dWVyeSk7Cit9CisKK0dDM0Rib29sZWFuIEV4dGVuc2lvbnMzRENocm9taXVtOjppc1F1ZXJ5RVhU
KFBsYXRmb3JtM0RPYmplY3QgcXVlcnkpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNRdWVy
eUVYVChxdWVyeSk7Cit9CisKK3ZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmJlZ2luUXVlcnlF
WFQoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0IHF1ZXJ5KQoreworICAgIG1fcHJp
dmF0ZS0+YmVnaW5RdWVyeUVYVCh0YXJnZXQsIHF1ZXJ5KTsKK30KKwordm9pZCBFeHRlbnNpb25z
M0RDaHJvbWl1bTo6ZW5kUXVlcnlFWFQoR0MzRGVudW0gdGFyZ2V0KQoreworICAgIG1fcHJpdmF0
ZS0+ZW5kUXVlcnlFWFQodGFyZ2V0KTsKK30KKwordm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6
Z2V0UXVlcnlpdkVYVChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiBw
YXJhbXMpCit7CisgICAgbV9wcml2YXRlLT5nZXRRdWVyeWl2RVhUKHRhcmdldCwgcG5hbWUsIHBh
cmFtcyk7Cit9CisKK3ZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmdldFF1ZXJ5T2JqZWN0dWl2
RVhUKFBsYXRmb3JtM0RPYmplY3QgcXVlcnksIEdDM0RlbnVtIHBuYW1lLCBHQzNEdWludCogcGFy
YW1zKQoreworICAgIG1fcHJpdmF0ZS0+Z2V0UXVlcnlPYmplY3R1aXZFWFQocXVlcnksIHBuYW1l
LCBwYXJhbXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGlj
c0NvbnRleHQzRENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBo
aWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCmluZGV4IDRiZmEyZTViY2YzMzViNDUwY2JhMTBjOTg0
Mzg0NDBiZjgwYTg4ZjUuLjkzZDljZDUzN2VjNTE1OGQ3OWY0OWExOGNmZjRiMjBjNmQ3YWYxN2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNE
Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29u
dGV4dDNEQ2hyb21pdW0uY3BwCkBAIC04ODksNiArODg5LDE0IEBAIERFTEVHQVRFX1RPX0lNUExf
MVIoZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFLCBQbGF0Zm9ybTNET2JqZWN0LCBTdHJp
bmcpCiBERUxFR0FURV9UT19JTVBMXzUodGV4SW1hZ2VJT1N1cmZhY2UyRENIUk9NSVVNLCBHQzNE
ZW51bSwgR0MzRGludCwgR0MzRGludCwgR0MzRHVpbnQsIEdDM0R1aW50KQogREVMRUdBVEVfVE9f
SU1QTF81KHRleFN0b3JhZ2UyREVYVCwgR0MzRGVudW0sIEdDM0RpbnQsIEdDM0R1aW50LCBHQzNE
aW50LCBHQzNEaW50KQogCitERUxFR0FURV9UT19JTVBMX1IoY3JlYXRlUXVlcnlFWFQsIFBsYXRm
b3JtM0RPYmplY3QpCitERUxFR0FURV9UT19JTVBMXzEoZGVsZXRlUXVlcnlFWFQsIFBsYXRmb3Jt
M0RPYmplY3QpCitERUxFR0FURV9UT19JTVBMXzFSKGlzUXVlcnlFWFQsIFBsYXRmb3JtM0RPYmpl
Y3QsIEdDM0Rib29sZWFuKQorREVMRUdBVEVfVE9fSU1QTF8yKGJlZ2luUXVlcnlFWFQsIEdDM0Rl
bnVtLCBQbGF0Zm9ybTNET2JqZWN0KQorREVMRUdBVEVfVE9fSU1QTF8xKGVuZFF1ZXJ5RVhULCBH
QzNEZW51bSkKK0RFTEVHQVRFX1RPX0lNUExfMyhnZXRRdWVyeWl2RVhULCBHQzNEZW51bSwgR0Mz
RGVudW0sIEdDM0RpbnQqKQorREVMRUdBVEVfVE9fSU1QTF8zKGdldFF1ZXJ5T2JqZWN0dWl2RVhU
LCBQbGF0Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0MzRHVpbnQqKQorCiAvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIC8vIEdyYXBoaWNzQ29udGV4dDNECiAvLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAppbmRleCBiZTlkYjQyODdkYjZl
ZmEzMjg1ZmNjYjg1NGZlYTM0ODNhZDE1YjZjLi4yOWJiNmVmNTIwYjAxZjAyMDgwYjkwNzkxYzZi
ZDVlNThlZGRiYzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9H
cmFwaGljc0NvbnRleHQzRFByaXZhdGUuaApAQCAtMzA3LDYgKzMwNywxNSBAQCBwdWJsaWM6CiAg
ICAgLy8gR0xfRVhUX3RleHR1cmVfc3RvcmFnZQogICAgIHZvaWQgdGV4U3RvcmFnZTJERVhUKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbHMsIEdDM0R1aW50IGludGVybmFsZm9ybWF0LCBH
QzNEaW50IHdpZHRoLCBHQzNEaW50IGhlaWdodCk7CiAKKyAgICAvLyBHTF9FWFRfb2NjbHVzaW9u
X3F1ZXJ5CisgICAgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVRdWVyeUVYVCgpOworICAgIHZvaWQg
ZGVsZXRlUXVlcnlFWFQoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgR0MzRGJvb2xlYW4gaXNRdWVy
eUVYVChQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIGJlZ2luUXVlcnlFWFQoR0MzRGVudW0s
IFBsYXRmb3JtM0RPYmplY3QpOworICAgIHZvaWQgZW5kUXVlcnlFWFQoR0MzRGVudW0pOworICAg
IHZvaWQgZ2V0UXVlcnlpdkVYVChHQzNEZW51bSwgR0MzRGVudW0sIEdDM0RpbnQqKTsKKyAgICB2
b2lkIGdldFF1ZXJ5T2JqZWN0dWl2RVhUKFBsYXRmb3JtM0RPYmplY3QsIEdDM0RlbnVtLCBHQzNE
dWludCopOworCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShQYXNzT3du
UHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+LCBib29sIHByZXNlcnZlRHJhd2luZ0J1
ZmZlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmFrZVdl
YkdyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VX
ZWJHcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDI2OGRjMWRhMzVkYmEzNTM1NTQ0ZTA5MzgxY2E1
MDdkMzRjYzgwNzMuLjJjMTYxYThiOGQ4YTA4NTdlYmY3YmI4YTc5MzA4OGQyMzhlOWU1YTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmFrZVdlYkdyYXBoaWNzQ29u
dGV4dDNELmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GYWtlV2ViR3JhcGhp
Y3NDb250ZXh0M0QuaApAQCAtMjU1LDYgKzI1NSwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHRleFN0b3JhZ2UyREVYVChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbHMsIFdH
QzNEdWludCBpbnRlcm5hbGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdHQzNEaW50IHdpZHRoLCBXR0MzRGludCBoZWlnaHQpIHsgfQogCisgICAgdmlydHVhbCBXZWJH
TElkIGNyZWF0ZVF1ZXJ5RVhUKCkgeyByZXR1cm4gMTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWxl
dGVRdWVyeUVYVChXZWJHTElkKSB7IH0KKyAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzUXVlcnlF
WFQoV2ViR0xJZCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBiZWdpblF1ZXJ5
RVhUKEdDM0RlbnVtLCBXZWJHTElkKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZW5kUXVlcnlFWFQo
R0MzRGVudW0pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBnZXRRdWVyeWl2RVhUKEdDM0RlbnVtLCBH
QzNEZW51bSwgR0MzRGludCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBnZXRRdWVyeU9iamVjdHVp
dkVYVChXZWJHTElkLCBHQzNEZW51bSwgR0MzRHVpbnQqKSB7IH0KKwogcHJvdGVjdGVkOgogICAg
IEF0dHJpYnV0ZXMgbV9hdHRyczsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131625</attachid>
            <date>2012-03-13 08:43:59 -0700</date>
            <delta_ts>2012-03-13 09:01:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80988-20120313114357.patch</filename>
            <type>text/plain</type>
            <size>10966</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA4ZWI3MTFhYWY2MTM3
MzQzOGRkNWU4ZTA4ZDU2ZjZiNjk1NWFjODIyLi4zMTQxNzc4MTI0YzgyNWNjMGQ0ZWI5ZjdhZWZj
MWIxYzY5ODE4YTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0xMyAg
RGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1
bV0gR0xfRVhUX29jY2x1c2lvbl9xdWVyeV9ib29sZWFuIGFuZCBHTF9DSFJPTUlVTV9mZW5jZSBz
dXBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODA5ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGNocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAgICAoV2ViR3Jh
cGhpY3NDb250ZXh0M0QpOgorCiAyMDEyLTAzLTA4ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXNlIGFuIGV4cGxpY2l0IGF0dHJpYnV0ZSB0byBzaWdu
YWwgdGhhdCBhIGNvbnRleHQgcHJlZmVycyB0byB1c2UgYSBkaXNjcmV0ZSBHUFUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA2MGViMDUyZmYyOTNlMmYxMjM0NDE0ZGI1MzkzODFiN2YyZWNjOTJhLi4xYmY0YTA0NjY2
NTJlOGViY2M0MWIyYWY2ZDVhNTMyYjQyZjUyNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMDMtMTMgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbQ2hyb21pdW1dIEdMX0VYVF9vY2NsdXNpb25fcXVlcnlfYm9vbGVhbiBhbmQgR0xf
Q0hST01JVU1fZmVuY2Ugc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgwOTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oOgorICAgICAgICAoRXh0
ZW5zaW9uczNEQ2hyb21pdW0pOgorCiAyMDEyLTAzLTEyICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEluZmluaXRlIHJlcGFpbnQgbG9vcCB3aXRoIFNW
R0ltYWdlQ2FjaGUgYW5kIGRlZmVycmVkIHJlcGFpbnQgdGltZXJzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDIwNGZjMTE5ZmM5ZGZiOWRkZmJmMTI4YTYwZDY0MTQ2ZGFmNTc5YTUuLjU0
ZWUwMzc2MmQwM2E1ZTJkY2MxZGRmYWJjMTdjY2ZlNzdiODllNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMDMtMTMgIERhdmlkIFJldmVtYW4gIDxy
ZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEdMX0VYVF9vY2NsdXNp
b25fcXVlcnlfYm9vbGVhbiBhbmQgR0xfQ0hST01JVU1fZmVuY2Ugc3VwcG9ydC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwOTg4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvRXh0ZW5zaW9uczNE
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNEQ2hyb21pdW06OmNy
ZWF0ZVF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXh0
ZW5zaW9uczNEQ2hyb21pdW06OmRlbGV0ZVF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4
dGVuc2lvbnMzRENocm9taXVtOjppc1F1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
c2lvbnMzRENocm9taXVtOjpiZWdpblF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
c2lvbnMzRENocm9taXVtOjplbmRRdWVyeUVYVCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNp
b25zM0RDaHJvbWl1bTo6Z2V0UXVlcnlpdkVYVCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNp
b25zM0RDaHJvbWl1bTo6Z2V0UXVlcnlPYmplY3R1aXZFWFQpOgorICAgICAgICAqIHNyYy9HcmFw
aGljc0NvbnRleHQzRENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHNyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaDoKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZSk6CisgICAgICAgICogdGVzdHMvRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNELmg6
CisgICAgICAgIChXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlUXVlcnlF
WFQpOgorICAgICAgICAoV2ViS2l0OjpGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0Q6OmRlbGV0ZVF1
ZXJ5RVhUKToKKyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjppc1F1
ZXJ5RVhUKToKKyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpiZWdp
blF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpl
bmRRdWVyeUVYVCk6CisgICAgICAgIChXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6
Z2V0UXVlcnlpdkVYVCk6CisgICAgICAgIChXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQz
RDo6Z2V0UXVlcnlPYmplY3R1aXZFWFQpOgorICAgICAgICAoRmFrZVdlYkdyYXBoaWNzQ29udGV4
dDNEKToKKwogMjAxMi0wMy0xMiAgTmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0Nocm9taXVtXSBGb3JjZSBjb21wb3NpdGVBbmRSZWFkYmFjayB0aHJvdWdoIHJlZ3Vs
YXIgc2NoZWR1bGluZyBmbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggMjc0YzI3OTRjMTgxMTIwOGIxNTMy
OTFmOWI2YWQxNmRjYmQ0MTRiZi4uZWE0MzhkZWU2ZDA0MGRmMjgxNWFmYjk3NDk2NjNlOTRmYTRi
NDBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFw
aGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
R3JhcGhpY3NDb250ZXh0M0QuaApAQCAtMzk4LDYgKzM5OCwxNCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHRleFN0b3JhZ2UyREVYVChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZl
bHMsIFdHQzNEdWludCBpbnRlcm5hbGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdHQzNEaW50IHdpZHRoLCBXR0MzRGludCBoZWlnaHQpIHsgfQogCisgICAgLy8gR0xf
RVhUX29jY2x1c2lvbl9xdWVyeQorICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVRdWVyeUVYVCgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUXVlcnlFWFQoV2ViR0xJZCBxdWVyeSkgPSAw
OworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzUXVlcnlFWFQoV2ViR0xJZCBxdWVyeSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBiZWdpblF1ZXJ5RVhUKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdM
SWQgcXVlcnkpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kUXVlcnlFWFQoV0dDM0RlbnVtIHRh
cmdldCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRRdWVyeWl2RVhUKFdHQzNEZW51bSB0YXJn
ZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHBhcmFtcykgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBnZXRRdWVyeU9iamVjdHVpdkVYVChXZWJHTElkIHF1ZXJ5LCBXR0MzRGVudW0gcG5hbWUs
IFdHQzNEdWludCogcGFyYW1zKSA9IDA7CiAKICNpZiBXRUJLSVRfVVNJTkdfU0tJQQogICAgIEdy
R0xJbnRlcmZhY2UqIGNyZWF0ZUdyR0xJbnRlcmZhY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RD
aHJvbWl1bS5oCmluZGV4IDUzMzIyZjBmMjVlZDQwN2EyNWU2YjYyMzI3ZTg3MTI4OWQxOGJkNWEu
LmE5NTlhNWNmYjFlZDI3ZDE5Y2UwNzBmMTQ2N2U1MTI4MmI5YTc4OGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9t
aXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0
ZW5zaW9uczNEQ2hyb21pdW0uaApAQCAtNDYsOCArNDYsMTAgQEAgcHVibGljOgogICAgIC8vICAg
R0xfQ0hST01JVU1fcmF0ZV9saW1pdF9vZmZzY3JlZW5fY29udGV4dAogICAgIC8vICAgR0xfQ0hS
T01JVU1fcGFpbnRfZnJhbWVidWZmZXJfY2FudmFzCiAgICAgLy8gICBHTF9DSFJPTUlVTV9pb3N1
cmZhY2UgKE1hYyBPUyBYIHNwZWNpZmljKQorICAgIC8vICAgR0xfQ0hST01JVU1fZmVuY2UKICAg
ICAvLyAgIEdMX0FOR0xFX3RleHR1cmVfdXNhZ2UKICAgICAvLyAgIEdMX0VYVF90ZXh0dXJlX3N0
b3JhZ2UKKyAgICAvLyAgIEdMX0VYVF9vY2NsdXNpb25fcXVlcnlfYm9vbGVhbgogCiAgICAgLy8g
RXh0ZW5zaW9uczNEIG1ldGhvZHMuCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzKGNvbnN0IFN0
cmluZyYpOwpAQCAtNzUsNyArNzcsMTcgQEAgcHVibGljOgogICAgICAgICBHTF9GUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX0FOR0xFID0gMHg5M0EzLAogCiAgICAgICAgIC8vIEdMX0VYVF90ZXh0dXJl
X3N0b3JhZ2UKLSAgICAgICAgQkdSQThfRVhUID0gMHg5M0ExCisgICAgICAgIEJHUkE4X0VYVCA9
IDB4OTNBMSwKKworICAgICAgICAvLyBHTF9FWFRfb2NjbHVzaW9uX3F1ZXJ5X2Jvb2xlYW4KKyAg
ICAgICAgQU5ZX1NBTVBMRVNfUEFTU0VEX0VYVCA9IDB4OEMyRiwKKyAgICAgICAgQU5ZX1NBTVBM
RVNfUEFTU0VEX0NPTlNFUlZBVElWRV9FWFQgPSAweDhENkEsCisgICAgICAgIENVUlJFTlRfUVVF
UllfRVhUID0gMHg4ODY1LAorICAgICAgICBRVUVSWV9SRVNVTFRfRVhUID0gMHg4ODY2LAorICAg
ICAgICBRVUVSWV9SRVNVTFRfQVZBSUxBQkxFX0VYVCA9IDB4ODg2NworCisgICAgICAgIC8vIEdM
X0NIUk9NSVVNX2ZlbmNlCisgICAgICAgIENPTU1BTkRTX0lTU1VFRF9DSFJPTUlVTSA9IDB4ODRG
MgogICAgIH07CiAKICAgICAvLyBHTF9DSFJPTUlVTV9wb3N0X3N1Yl9idWZmZXIKQEAgLTEyMCw2
ICsxMzIsMTUgQEAgcHVibGljOgogICAgIC8vIEdMX0VYVF90ZXh0dXJlX3N0b3JhZ2UKICAgICB2
b2lkIHRleFN0b3JhZ2UyREVYVCh1bnNpZ25lZCB0YXJnZXQsIGludCBsZXZlbHMsIHVuc2lnbmVk
IGludGVybmFsZm9ybWF0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogCisgICAgLy8gR0xfRVhU
X29jY2x1c2lvbl9xdWVyeQorICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlUXVlcnlFWFQoKTsK
KyAgICB2b2lkIGRlbGV0ZVF1ZXJ5RVhUKFBsYXRmb3JtM0RPYmplY3QpOworICAgIEdDM0Rib29s
ZWFuIGlzUXVlcnlFWFQoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdm9pZCBiZWdpblF1ZXJ5RVhU
KEdDM0RlbnVtLCBQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIGVuZFF1ZXJ5RVhUKEdDM0Rl
bnVtKTsKKyAgICB2b2lkIGdldFF1ZXJ5aXZFWFQoR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEaW50
Kik7CisgICAgdm9pZCBnZXRRdWVyeU9iamVjdHVpdkVYVChQbGF0Zm9ybTNET2JqZWN0LCBHQzNE
ZW51bSwgR0MzRHVpbnQqKTsKKwogcHJpdmF0ZToKICAgICAvLyBJbnN0YW5jZXMgb2YgdGhpcyBj
bGFzcyBhcmUgc3RyaWN0bHkgb3duZWQgYnkgdGhlIEdyYXBoaWNzQ29udGV4dDNEIGltcGxlbWVu
dGF0aW9uIGFuZCBkbyBub3QKICAgICAvLyBuZWVkIHRvIGJlIGluc3RhbnRpYXRlZCBieSBhbnkg
b3RoZXIgY29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVu
c2lvbnMzRENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVuc2lv
bnMzRENocm9taXVtLmNwcAppbmRleCA3MzM5N2JkMmIxNmE3Y2NjZmExODJiYTEyNzY4ZGEwYzdh
NTg3NmRiLi42YjU2Y2NhMGM5ODFkMGMwMWU0M2NiYzA4YjViYzA0MTRmY2ExNzQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3Bw
CkBAIC0xNjAsNiArMTYwLDQxIEBAIHZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OnRleFN0b3Jh
Z2UyREVYVCh1bnNpZ25lZCBpbnQgdGFyZ2V0LCBpbnQgbGV2ZWxzLCB1bnNpCiAgICAgbV9wcml2
YXRlLT50ZXhTdG9yYWdlMkRFWFQodGFyZ2V0LCBsZXZlbHMsIGludGVybmFsRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0KTsKIH0KIAorUGxhdGZvcm0zRE9iamVjdCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6
Y3JlYXRlUXVlcnlFWFQoKQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmNyZWF0ZVF1ZXJ5RVhU
KCk7Cit9CisKK3ZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmRlbGV0ZVF1ZXJ5RVhUKFBsYXRm
b3JtM0RPYmplY3QgcXVlcnkpCit7CisgICAgbV9wcml2YXRlLT5kZWxldGVRdWVyeUVYVChxdWVy
eSk7Cit9CisKK0dDM0Rib29sZWFuIEV4dGVuc2lvbnMzRENocm9taXVtOjppc1F1ZXJ5RVhUKFBs
YXRmb3JtM0RPYmplY3QgcXVlcnkpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNRdWVyeUVY
VChxdWVyeSk7Cit9CisKK3ZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmJlZ2luUXVlcnlFWFQo
R0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0IHF1ZXJ5KQoreworICAgIG1fcHJpdmF0
ZS0+YmVnaW5RdWVyeUVYVCh0YXJnZXQsIHF1ZXJ5KTsKK30KKwordm9pZCBFeHRlbnNpb25zM0RD
aHJvbWl1bTo6ZW5kUXVlcnlFWFQoR0MzRGVudW0gdGFyZ2V0KQoreworICAgIG1fcHJpdmF0ZS0+
ZW5kUXVlcnlFWFQodGFyZ2V0KTsKK30KKwordm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6Z2V0
UXVlcnlpdkVYVChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiBwYXJh
bXMpCit7CisgICAgbV9wcml2YXRlLT5nZXRRdWVyeWl2RVhUKHRhcmdldCwgcG5hbWUsIHBhcmFt
cyk7Cit9CisKK3ZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmdldFF1ZXJ5T2JqZWN0dWl2RVhU
KFBsYXRmb3JtM0RPYmplY3QgcXVlcnksIEdDM0RlbnVtIHBuYW1lLCBHQzNEdWludCogcGFyYW1z
KQoreworICAgIG1fcHJpdmF0ZS0+Z2V0UXVlcnlPYmplY3R1aXZFWFQocXVlcnksIHBuYW1lLCBw
YXJhbXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
V0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0Nv
bnRleHQzRENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNz
Q29udGV4dDNEQ2hyb21pdW0uY3BwCmluZGV4IDRiZmEyZTViY2YzMzViNDUwY2JhMTBjOTg0Mzg0
NDBiZjgwYTg4ZjUuLjkzZDljZDUzN2VjNTE1OGQ3OWY0OWExOGNmZjRiMjBjNmQ3YWYxN2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hy
b21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4
dDNEQ2hyb21pdW0uY3BwCkBAIC04ODksNiArODg5LDE0IEBAIERFTEVHQVRFX1RPX0lNUExfMVIo
Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFLCBQbGF0Zm9ybTNET2JqZWN0LCBTdHJpbmcp
CiBERUxFR0FURV9UT19JTVBMXzUodGV4SW1hZ2VJT1N1cmZhY2UyRENIUk9NSVVNLCBHQzNEZW51
bSwgR0MzRGludCwgR0MzRGludCwgR0MzRHVpbnQsIEdDM0R1aW50KQogREVMRUdBVEVfVE9fSU1Q
TF81KHRleFN0b3JhZ2UyREVYVCwgR0MzRGVudW0sIEdDM0RpbnQsIEdDM0R1aW50LCBHQzNEaW50
LCBHQzNEaW50KQogCitERUxFR0FURV9UT19JTVBMX1IoY3JlYXRlUXVlcnlFWFQsIFBsYXRmb3Jt
M0RPYmplY3QpCitERUxFR0FURV9UT19JTVBMXzEoZGVsZXRlUXVlcnlFWFQsIFBsYXRmb3JtM0RP
YmplY3QpCitERUxFR0FURV9UT19JTVBMXzFSKGlzUXVlcnlFWFQsIFBsYXRmb3JtM0RPYmplY3Qs
IEdDM0Rib29sZWFuKQorREVMRUdBVEVfVE9fSU1QTF8yKGJlZ2luUXVlcnlFWFQsIEdDM0RlbnVt
LCBQbGF0Zm9ybTNET2JqZWN0KQorREVMRUdBVEVfVE9fSU1QTF8xKGVuZFF1ZXJ5RVhULCBHQzNE
ZW51bSkKK0RFTEVHQVRFX1RPX0lNUExfMyhnZXRRdWVyeWl2RVhULCBHQzNEZW51bSwgR0MzRGVu
dW0sIEdDM0RpbnQqKQorREVMRUdBVEVfVE9fSU1QTF8zKGdldFF1ZXJ5T2JqZWN0dWl2RVhULCBQ
bGF0Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0MzRHVpbnQqKQorCiAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IC8vIEdyYXBoaWNzQ29udGV4dDNECiAvLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAppbmRleCBiZTlkYjQyODdkYjZlZmEz
Mjg1ZmNjYjg1NGZlYTM0ODNhZDE1YjZjLi4yOWJiNmVmNTIwYjAxZjAyMDgwYjkwNzkxYzZiZDVl
NThlZGRiYzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuaApAQCAtMzA3LDYgKzMwNywxNSBAQCBwdWJsaWM6CiAgICAg
Ly8gR0xfRVhUX3RleHR1cmVfc3RvcmFnZQogICAgIHZvaWQgdGV4U3RvcmFnZTJERVhUKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGludCBsZXZlbHMsIEdDM0R1aW50IGludGVybmFsZm9ybWF0LCBHQzNE
aW50IHdpZHRoLCBHQzNEaW50IGhlaWdodCk7CiAKKyAgICAvLyBHTF9FWFRfb2NjbHVzaW9uX3F1
ZXJ5CisgICAgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVRdWVyeUVYVCgpOworICAgIHZvaWQgZGVs
ZXRlUXVlcnlFWFQoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgR0MzRGJvb2xlYW4gaXNRdWVyeUVY
VChQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIGJlZ2luUXVlcnlFWFQoR0MzRGVudW0sIFBs
YXRmb3JtM0RPYmplY3QpOworICAgIHZvaWQgZW5kUXVlcnlFWFQoR0MzRGVudW0pOworICAgIHZv
aWQgZ2V0UXVlcnlpdkVYVChHQzNEZW51bSwgR0MzRGVudW0sIEdDM0RpbnQqKTsKKyAgICB2b2lk
IGdldFF1ZXJ5T2JqZWN0dWl2RVhUKFBsYXRmb3JtM0RPYmplY3QsIEdDM0RlbnVtLCBHQzNEdWlu
dCopOworCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShQYXNzT3duUHRy
PFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+LCBib29sIHByZXNlcnZlRHJhd2luZ0J1ZmZl
cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmFrZVdlYkdy
YXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VXZWJH
cmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDI2OGRjMWRhMzVkYmEzNTM1NTQ0ZTA5MzgxY2E1MDdk
MzRjYzgwNzMuLjJjMTYxYThiOGQ4YTA4NTdlYmY3YmI4YTc5MzA4OGQyMzhlOWU1YTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmFrZVdlYkdyYXBoaWNzQ29udGV4
dDNELmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GYWtlV2ViR3JhcGhpY3ND
b250ZXh0M0QuaApAQCAtMjU1LDYgKzI1NSwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHRleFN0b3JhZ2UyREVYVChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbHMsIFdHQzNE
dWludCBpbnRlcm5hbGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdH
QzNEaW50IHdpZHRoLCBXR0MzRGludCBoZWlnaHQpIHsgfQogCisgICAgdmlydHVhbCBXZWJHTElk
IGNyZWF0ZVF1ZXJ5RVhUKCkgeyByZXR1cm4gMTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWxldGVR
dWVyeUVYVChXZWJHTElkKSB7IH0KKyAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzUXVlcnlFWFQo
V2ViR0xJZCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBiZWdpblF1ZXJ5RVhU
KEdDM0RlbnVtLCBXZWJHTElkKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZW5kUXVlcnlFWFQoR0Mz
RGVudW0pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBnZXRRdWVyeWl2RVhUKEdDM0RlbnVtLCBHQzNE
ZW51bSwgR0MzRGludCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBnZXRRdWVyeU9iamVjdHVpdkVY
VChXZWJHTElkLCBHQzNEZW51bSwgR0MzRHVpbnQqKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIEF0
dHJpYnV0ZXMgbV9hdHRyczsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131630</attachid>
            <date>2012-03-13 09:01:30 -0700</date>
            <delta_ts>2012-03-13 17:45:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80988-20120313120129.patch</filename>
            <type>text/plain</type>
            <size>10967</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA4ZWI3MTFhYWY2MTM3
MzQzOGRkNWU4ZTA4ZDU2ZjZiNjk1NWFjODIyLi4zMTQxNzc4MTI0YzgyNWNjMGQ0ZWI5ZjdhZWZj
MWIxYzY5ODE4YTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0xMyAg
RGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1
bV0gR0xfRVhUX29jY2x1c2lvbl9xdWVyeV9ib29sZWFuIGFuZCBHTF9DSFJPTUlVTV9mZW5jZSBz
dXBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODA5ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGNocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAgICAoV2ViR3Jh
cGhpY3NDb250ZXh0M0QpOgorCiAyMDEyLTAzLTA4ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXNlIGFuIGV4cGxpY2l0IGF0dHJpYnV0ZSB0byBzaWdu
YWwgdGhhdCBhIGNvbnRleHQgcHJlZmVycyB0byB1c2UgYSBkaXNjcmV0ZSBHUFUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA2MGViMDUyZmYyOTNlMmYxMjM0NDE0ZGI1MzkzODFiN2YyZWNjOTJhLi4xYmY0YTA0NjY2
NTJlOGViY2M0MWIyYWY2ZDVhNTMyYjQyZjUyNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMDMtMTMgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbQ2hyb21pdW1dIEdMX0VYVF9vY2NsdXNpb25fcXVlcnlfYm9vbGVhbiBhbmQgR0xf
Q0hST01JVU1fZmVuY2Ugc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgwOTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oOgorICAgICAgICAoRXh0
ZW5zaW9uczNEQ2hyb21pdW0pOgorCiAyMDEyLTAzLTEyICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEluZmluaXRlIHJlcGFpbnQgbG9vcCB3aXRoIFNW
R0ltYWdlQ2FjaGUgYW5kIGRlZmVycmVkIHJlcGFpbnQgdGltZXJzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDIwNGZjMTE5ZmM5ZGZiOWRkZmJmMTI4YTYwZDY0MTQ2ZGFmNTc5YTUuLjU0
ZWUwMzc2MmQwM2E1ZTJkY2MxZGRmYWJjMTdjY2ZlNzdiODllNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMDMtMTMgIERhdmlkIFJldmVtYW4gIDxy
ZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEdMX0VYVF9vY2NsdXNp
b25fcXVlcnlfYm9vbGVhbiBhbmQgR0xfQ0hST01JVU1fZmVuY2Ugc3VwcG9ydC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwOTg4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvRXh0ZW5zaW9uczNE
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNEQ2hyb21pdW06OmNy
ZWF0ZVF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXh0
ZW5zaW9uczNEQ2hyb21pdW06OmRlbGV0ZVF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4
dGVuc2lvbnMzRENocm9taXVtOjppc1F1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
c2lvbnMzRENocm9taXVtOjpiZWdpblF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
c2lvbnMzRENocm9taXVtOjplbmRRdWVyeUVYVCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNp
b25zM0RDaHJvbWl1bTo6Z2V0UXVlcnlpdkVYVCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNp
b25zM0RDaHJvbWl1bTo6Z2V0UXVlcnlPYmplY3R1aXZFWFQpOgorICAgICAgICAqIHNyYy9HcmFw
aGljc0NvbnRleHQzRENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHNyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaDoKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZSk6CisgICAgICAgICogdGVzdHMvRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNELmg6
CisgICAgICAgIChXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlUXVlcnlF
WFQpOgorICAgICAgICAoV2ViS2l0OjpGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0Q6OmRlbGV0ZVF1
ZXJ5RVhUKToKKyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjppc1F1
ZXJ5RVhUKToKKyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpiZWdp
blF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpl
bmRRdWVyeUVYVCk6CisgICAgICAgIChXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6
Z2V0UXVlcnlpdkVYVCk6CisgICAgICAgIChXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQz
RDo6Z2V0UXVlcnlPYmplY3R1aXZFWFQpOgorICAgICAgICAoRmFrZVdlYkdyYXBoaWNzQ29udGV4
dDNEKToKKwogMjAxMi0wMy0xMiAgTmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0Nocm9taXVtXSBGb3JjZSBjb21wb3NpdGVBbmRSZWFkYmFjayB0aHJvdWdoIHJlZ3Vs
YXIgc2NoZWR1bGluZyBmbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggMjc0YzI3OTRjMTgxMTIwOGIxNTMy
OTFmOWI2YWQxNmRjYmQ0MTRiZi4uZWE0MzhkZWU2ZDA0MGRmMjgxNWFmYjk3NDk2NjNlOTRmYTRi
NDBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFw
aGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
R3JhcGhpY3NDb250ZXh0M0QuaApAQCAtMzk4LDYgKzM5OCwxNCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHRleFN0b3JhZ2UyREVYVChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZl
bHMsIFdHQzNEdWludCBpbnRlcm5hbGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdHQzNEaW50IHdpZHRoLCBXR0MzRGludCBoZWlnaHQpIHsgfQogCisgICAgLy8gR0xf
RVhUX29jY2x1c2lvbl9xdWVyeQorICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVRdWVyeUVYVCgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUXVlcnlFWFQoV2ViR0xJZCBxdWVyeSkgPSAw
OworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzUXVlcnlFWFQoV2ViR0xJZCBxdWVyeSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBiZWdpblF1ZXJ5RVhUKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdM
SWQgcXVlcnkpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kUXVlcnlFWFQoV0dDM0RlbnVtIHRh
cmdldCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRRdWVyeWl2RVhUKFdHQzNEZW51bSB0YXJn
ZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHBhcmFtcykgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBnZXRRdWVyeU9iamVjdHVpdkVYVChXZWJHTElkIHF1ZXJ5LCBXR0MzRGVudW0gcG5hbWUs
IFdHQzNEdWludCogcGFyYW1zKSA9IDA7CiAKICNpZiBXRUJLSVRfVVNJTkdfU0tJQQogICAgIEdy
R0xJbnRlcmZhY2UqIGNyZWF0ZUdyR0xJbnRlcmZhY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RD
aHJvbWl1bS5oCmluZGV4IDUzMzIyZjBmMjVlZDQwN2EyNWU2YjYyMzI3ZTg3MTI4OWQxOGJkNWEu
LjIxNzBhMDI5NjY0ZDMzNWE5ZDhjZDI1NjNiMTA4Y2NmZTkwM2U0MDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9t
aXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0
ZW5zaW9uczNEQ2hyb21pdW0uaApAQCAtNDYsOCArNDYsMTAgQEAgcHVibGljOgogICAgIC8vICAg
R0xfQ0hST01JVU1fcmF0ZV9saW1pdF9vZmZzY3JlZW5fY29udGV4dAogICAgIC8vICAgR0xfQ0hS
T01JVU1fcGFpbnRfZnJhbWVidWZmZXJfY2FudmFzCiAgICAgLy8gICBHTF9DSFJPTUlVTV9pb3N1
cmZhY2UgKE1hYyBPUyBYIHNwZWNpZmljKQorICAgIC8vICAgR0xfQ0hST01JVU1fZmVuY2UKICAg
ICAvLyAgIEdMX0FOR0xFX3RleHR1cmVfdXNhZ2UKICAgICAvLyAgIEdMX0VYVF90ZXh0dXJlX3N0
b3JhZ2UKKyAgICAvLyAgIEdMX0VYVF9vY2NsdXNpb25fcXVlcnlfYm9vbGVhbgogCiAgICAgLy8g
RXh0ZW5zaW9uczNEIG1ldGhvZHMuCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzKGNvbnN0IFN0
cmluZyYpOwpAQCAtNzUsNyArNzcsMTcgQEAgcHVibGljOgogICAgICAgICBHTF9GUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX0FOR0xFID0gMHg5M0EzLAogCiAgICAgICAgIC8vIEdMX0VYVF90ZXh0dXJl
X3N0b3JhZ2UKLSAgICAgICAgQkdSQThfRVhUID0gMHg5M0ExCisgICAgICAgIEJHUkE4X0VYVCA9
IDB4OTNBMSwKKworICAgICAgICAvLyBHTF9FWFRfb2NjbHVzaW9uX3F1ZXJ5X2Jvb2xlYW4KKyAg
ICAgICAgQU5ZX1NBTVBMRVNfUEFTU0VEX0VYVCA9IDB4OEMyRiwKKyAgICAgICAgQU5ZX1NBTVBM
RVNfUEFTU0VEX0NPTlNFUlZBVElWRV9FWFQgPSAweDhENkEsCisgICAgICAgIENVUlJFTlRfUVVF
UllfRVhUID0gMHg4ODY1LAorICAgICAgICBRVUVSWV9SRVNVTFRfRVhUID0gMHg4ODY2LAorICAg
ICAgICBRVUVSWV9SRVNVTFRfQVZBSUxBQkxFX0VYVCA9IDB4ODg2NywKKworICAgICAgICAvLyBH
TF9DSFJPTUlVTV9mZW5jZQorICAgICAgICBDT01NQU5EU19JU1NVRURfQ0hST01JVU0gPSAweDg0
RjIKICAgICB9OwogCiAgICAgLy8gR0xfQ0hST01JVU1fcG9zdF9zdWJfYnVmZmVyCkBAIC0xMjAs
NiArMTMyLDE1IEBAIHB1YmxpYzoKICAgICAvLyBHTF9FWFRfdGV4dHVyZV9zdG9yYWdlCiAgICAg
dm9pZCB0ZXhTdG9yYWdlMkRFWFQodW5zaWduZWQgdGFyZ2V0LCBpbnQgbGV2ZWxzLCB1bnNpZ25l
ZCBpbnRlcm5hbGZvcm1hdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKIAorICAgIC8vIEdMX0VY
VF9vY2NsdXNpb25fcXVlcnkKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVF1ZXJ5RVhUKCk7
CisgICAgdm9pZCBkZWxldGVRdWVyeUVYVChQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBHQzNEYm9v
bGVhbiBpc1F1ZXJ5RVhUKFBsYXRmb3JtM0RPYmplY3QpOworICAgIHZvaWQgYmVnaW5RdWVyeUVY
VChHQzNEZW51bSwgUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdm9pZCBlbmRRdWVyeUVYVChHQzNE
ZW51bSk7CisgICAgdm9pZCBnZXRRdWVyeWl2RVhUKEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGlu
dCopOworICAgIHZvaWQgZ2V0UXVlcnlPYmplY3R1aXZFWFQoUGxhdGZvcm0zRE9iamVjdCwgR0Mz
RGVudW0sIEdDM0R1aW50Kik7CisKIHByaXZhdGU6CiAgICAgLy8gSW5zdGFuY2VzIG9mIHRoaXMg
Y2xhc3MgYXJlIHN0cmljdGx5IG93bmVkIGJ5IHRoZSBHcmFwaGljc0NvbnRleHQzRCBpbXBsZW1l
bnRhdGlvbiBhbmQgZG8gbm90CiAgICAgLy8gbmVlZCB0byBiZSBpbnN0YW50aWF0ZWQgYnkgYW55
IG90aGVyIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FeHRl
bnNpb25zM0RDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FeHRlbnNp
b25zM0RDaHJvbWl1bS5jcHAKaW5kZXggNzMzOTdiZDJiMTZhN2NjY2ZhMTgyYmExMjc2OGRhMGM3
YTU4NzZkYi4uNmI1NmNjYTBjOTgxZDBjMDFlNDNjYmMwOGI1YmMwNDE0ZmNhMTc0MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVuc2lvbnMzRENocm9taXVtLmNw
cApAQCAtMTYwLDYgKzE2MCw0MSBAQCB2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjp0ZXhTdG9y
YWdlMkRFWFQodW5zaWduZWQgaW50IHRhcmdldCwgaW50IGxldmVscywgdW5zaQogICAgIG1fcHJp
dmF0ZS0+dGV4U3RvcmFnZTJERVhUKHRhcmdldCwgbGV2ZWxzLCBpbnRlcm5hbEZvcm1hdCwgd2lk
dGgsIGhlaWdodCk7CiB9CiAKK1BsYXRmb3JtM0RPYmplY3QgRXh0ZW5zaW9uczNEQ2hyb21pdW06
OmNyZWF0ZVF1ZXJ5RVhUKCkKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5jcmVhdGVRdWVyeUVY
VCgpOworfQorCit2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpkZWxldGVRdWVyeUVYVChQbGF0
Zm9ybTNET2JqZWN0IHF1ZXJ5KQoreworICAgIG1fcHJpdmF0ZS0+ZGVsZXRlUXVlcnlFWFQocXVl
cnkpOworfQorCitHQzNEYm9vbGVhbiBFeHRlbnNpb25zM0RDaHJvbWl1bTo6aXNRdWVyeUVYVChQ
bGF0Zm9ybTNET2JqZWN0IHF1ZXJ5KQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmlzUXVlcnlF
WFQocXVlcnkpOworfQorCit2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpiZWdpblF1ZXJ5RVhU
KEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCBxdWVyeSkKK3sKKyAgICBtX3ByaXZh
dGUtPmJlZ2luUXVlcnlFWFQodGFyZ2V0LCBxdWVyeSk7Cit9CisKK3ZvaWQgRXh0ZW5zaW9uczNE
Q2hyb21pdW06OmVuZFF1ZXJ5RVhUKEdDM0RlbnVtIHRhcmdldCkKK3sKKyAgICBtX3ByaXZhdGUt
PmVuZFF1ZXJ5RVhUKHRhcmdldCk7Cit9CisKK3ZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06Omdl
dFF1ZXJ5aXZFWFQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogcGFy
YW1zKQoreworICAgIG1fcHJpdmF0ZS0+Z2V0UXVlcnlpdkVYVCh0YXJnZXQsIHBuYW1lLCBwYXJh
bXMpOworfQorCit2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpnZXRRdWVyeU9iamVjdHVpdkVY
VChQbGF0Zm9ybTNET2JqZWN0IHF1ZXJ5LCBHQzNEZW51bSBwbmFtZSwgR0MzRHVpbnQqIHBhcmFt
cykKK3sKKyAgICBtX3ByaXZhdGUtPmdldFF1ZXJ5T2JqZWN0dWl2RVhUKHF1ZXJ5LCBwbmFtZSwg
cGFyYW1zKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3ND
b250ZXh0M0RDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGlj
c0NvbnRleHQzRENocm9taXVtLmNwcAppbmRleCA0YmZhMmU1YmNmMzM1YjQ1MGNiYTEwYzk4NDM4
NDQwYmY4MGE4OGY1Li45M2Q5Y2Q1MzdlYzUxNThkNzlmNDlhMThjZmY0YjIwYzZkN2FmMTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENo
cm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRl
eHQzRENocm9taXVtLmNwcApAQCAtODg5LDYgKzg4OSwxNCBAQCBERUxFR0FURV9UT19JTVBMXzFS
KGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSwgUGxhdGZvcm0zRE9iamVjdCwgU3RyaW5n
KQogREVMRUdBVEVfVE9fSU1QTF81KHRleEltYWdlSU9TdXJmYWNlMkRDSFJPTUlVTSwgR0MzRGVu
dW0sIEdDM0RpbnQsIEdDM0RpbnQsIEdDM0R1aW50LCBHQzNEdWludCkKIERFTEVHQVRFX1RPX0lN
UExfNSh0ZXhTdG9yYWdlMkRFWFQsIEdDM0RlbnVtLCBHQzNEaW50LCBHQzNEdWludCwgR0MzRGlu
dCwgR0MzRGludCkKIAorREVMRUdBVEVfVE9fSU1QTF9SKGNyZWF0ZVF1ZXJ5RVhULCBQbGF0Zm9y
bTNET2JqZWN0KQorREVMRUdBVEVfVE9fSU1QTF8xKGRlbGV0ZVF1ZXJ5RVhULCBQbGF0Zm9ybTNE
T2JqZWN0KQorREVMRUdBVEVfVE9fSU1QTF8xUihpc1F1ZXJ5RVhULCBQbGF0Zm9ybTNET2JqZWN0
LCBHQzNEYm9vbGVhbikKK0RFTEVHQVRFX1RPX0lNUExfMihiZWdpblF1ZXJ5RVhULCBHQzNEZW51
bSwgUGxhdGZvcm0zRE9iamVjdCkKK0RFTEVHQVRFX1RPX0lNUExfMShlbmRRdWVyeUVYVCwgR0Mz
RGVudW0pCitERUxFR0FURV9UT19JTVBMXzMoZ2V0UXVlcnlpdkVYVCwgR0MzRGVudW0sIEdDM0Rl
bnVtLCBHQzNEaW50KikKK0RFTEVHQVRFX1RPX0lNUExfMyhnZXRRdWVyeU9iamVjdHVpdkVYVCwg
UGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0sIEdDM0R1aW50KikKKwogLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAvLyBHcmFwaGljc0NvbnRleHQzRAogLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKaW5kZXggYmU5ZGI0Mjg3ZGI2ZWZh
MzI4NWZjY2I4NTRmZWEzNDgzYWQxNWI2Yy4uMjliYjZlZjUyMGIwMWYwMjA4MGI5MDc5MWM2YmQ1
ZTU4ZWRkYmM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlLmgKQEAgLTMwNyw2ICszMDcsMTUgQEAgcHVibGljOgogICAg
IC8vIEdMX0VYVF90ZXh0dXJlX3N0b3JhZ2UKICAgICB2b2lkIHRleFN0b3JhZ2UyREVYVChHQzNE
ZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWxzLCBHQzNEdWludCBpbnRlcm5hbGZvcm1hdCwgR0Mz
RGludCB3aWR0aCwgR0MzRGludCBoZWlnaHQpOwogCisgICAgLy8gR0xfRVhUX29jY2x1c2lvbl9x
dWVyeQorICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlUXVlcnlFWFQoKTsKKyAgICB2b2lkIGRl
bGV0ZVF1ZXJ5RVhUKFBsYXRmb3JtM0RPYmplY3QpOworICAgIEdDM0Rib29sZWFuIGlzUXVlcnlF
WFQoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdm9pZCBiZWdpblF1ZXJ5RVhUKEdDM0RlbnVtLCBQ
bGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIGVuZFF1ZXJ5RVhUKEdDM0RlbnVtKTsKKyAgICB2
b2lkIGdldFF1ZXJ5aXZFWFQoR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEaW50Kik7CisgICAgdm9p
ZCBnZXRRdWVyeU9iamVjdHVpdkVYVChQbGF0Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0MzRHVp
bnQqKTsKKwogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoUGFzc093blB0
cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiwgYm9vbCBwcmVzZXJ2ZURyYXdpbmdCdWZm
ZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VXZWJH
cmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GYWtlV2Vi
R3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCAyNjhkYzFkYTM1ZGJhMzUzNTU0NGUwOTM4MWNhNTA3
ZDM0Y2M4MDczLi4yYzE2MWE4YjhkOGEwODU3ZWJmN2JiOGE3OTMwODhkMjM4ZTllNWE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VXZWJHcmFwaGljc0NvbnRl
eHQzRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmFrZVdlYkdyYXBoaWNz
Q29udGV4dDNELmgKQEAgLTI1NSw2ICsyNTUsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCB0ZXhTdG9yYWdlMkRFWFQoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWxzLCBXR0Mz
RHVpbnQgaW50ZXJuYWxmb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
R0MzRGludCB3aWR0aCwgV0dDM0RpbnQgaGVpZ2h0KSB7IH0KIAorICAgIHZpcnR1YWwgV2ViR0xJ
ZCBjcmVhdGVRdWVyeUVYVCgpIHsgcmV0dXJuIDE7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
UXVlcnlFWFQoV2ViR0xJZCkgeyB9CisgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1F1ZXJ5RVhU
KFdlYkdMSWQpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYmVnaW5RdWVyeUVY
VChHQzNEZW51bSwgV2ViR0xJZCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGVuZFF1ZXJ5RVhUKEdD
M0RlbnVtKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UXVlcnlpdkVYVChHQzNEZW51bSwgR0Mz
RGVudW0sIEdDM0RpbnQqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UXVlcnlPYmplY3R1aXZF
WFQoV2ViR0xJZCwgR0MzRGVudW0sIEdDM0R1aW50KikgeyB9CisKIHByb3RlY3RlZDoKICAgICBB
dHRyaWJ1dGVzIG1fYXR0cnM7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131763</attachid>
            <date>2012-03-13 17:45:16 -0700</date>
            <delta_ts>2012-03-18 16:07:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80988-20120313204515.patch</filename>
            <type>text/plain</type>
            <size>11042</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA4ZWI3MTFhYWY2MTM3
MzQzOGRkNWU4ZTA4ZDU2ZjZiNjk1NWFjODIyLi5hZmZhYjYwYWI1NmMzYzVlZDg5OTA1NmIwOTYx
MTc4MWQ1ZWY0YmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0xMyAg
RGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1
bV0gR0xfRVhUX29jY2x1c2lvbl9xdWVyeV9ib29sZWFuIGFuZCBHTF9DSFJPTUlVTV9jb21tYW5k
X2J1ZmZlcl9xdWVyeSBzdXBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODA5ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oOgor
ICAgICAgICAoV2ViR3JhcGhpY3NDb250ZXh0M0QpOgorCiAyMDEyLTAzLTA4ICBKYW1lcyBSb2Jp
bnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXNlIGFuIGV4cGxpY2l0IGF0
dHJpYnV0ZSB0byBzaWduYWwgdGhhdCBhIGNvbnRleHQgcHJlZmVycyB0byB1c2UgYSBkaXNjcmV0
ZSBHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA2MGViMDUyZmYyOTNlMmYxMjM0NDE0ZGI1MzkzODFiN2YyZWNj
OTJhLi5mM2M0ZjI5Nzk4YzVjMGNiY2E0MzRiYjUzNWQ0MDBmOTYwNzUzZDhiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMTMgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEdMX0VYVF9vY2NsdXNpb25fcXVlcnlf
Ym9vbGVhbiBhbmQgR0xfQ0hST01JVU1fY29tbWFuZF9idWZmZXJfcXVlcnkgc3VwcG9ydC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwOTg4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LiAoT09QUyEpCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNp
b25zM0RDaHJvbWl1bS5oOgorICAgICAgICAoRXh0ZW5zaW9uczNEQ2hyb21pdW0pOgorCiAyMDEy
LTAzLTEyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IEluZmluaXRlIHJlcGFpbnQgbG9vcCB3aXRoIFNWR0ltYWdlQ2FjaGUgYW5kIGRlZmVycmVkIHJl
cGFpbnQgdGltZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDIwNGZjMTE5ZmM5ZGZi
OWRkZmJmMTI4YTYwZDY0MTQ2ZGFmNTc5YTUuLjJhMDRmZTc3Y2Y3ODE4NGYyZTRjMmI0Zjc1MmE2
YjUxNWI0NWFhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMTItMDMtMTMgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBbQ2hyb21pdW1dIEdMX0VYVF9vY2NsdXNpb25fcXVlcnlfYm9vbGVhbiBhbmQgR0xfQ0hS
T01JVU1fY29tbWFuZF9idWZmZXJfcXVlcnkgc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwOTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNEQ2hyb21pdW06OmNyZWF0ZVF1ZXJ5RVhU
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNEQ2hy
b21pdW06OmRlbGV0ZVF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRENo
cm9taXVtOjppc1F1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRENocm9t
aXVtOjpiZWdpblF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRENocm9t
aXVtOjplbmRRdWVyeUVYVCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RDaHJvbWl1
bTo6Z2V0UXVlcnlpdkVYVCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RDaHJvbWl1
bTo6Z2V0UXVlcnlPYmplY3R1aXZFWFQpOgorICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQz
RENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHNyYy9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuaDoKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSk6
CisgICAgICAgICogdGVzdHMvRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChX
ZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlUXVlcnlFWFQpOgorICAgICAg
ICAoV2ViS2l0OjpGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0Q6OmRlbGV0ZVF1ZXJ5RVhUKToKKyAg
ICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjppc1F1ZXJ5RVhUKToKKyAg
ICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpiZWdpblF1ZXJ5RVhUKToK
KyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjplbmRRdWVyeUVYVCk6
CisgICAgICAgIChXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6Z2V0UXVlcnlpdkVY
VCk6CisgICAgICAgIChXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6Z2V0UXVlcnlP
YmplY3R1aXZFWFQpOgorICAgICAgICAoRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEKToKKwogMjAx
Mi0wMy0xMiAgTmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBGb3JjZSBjb21wb3NpdGVBbmRSZWFkYmFjayB0aHJvdWdoIHJlZ3VsYXIgc2NoZWR1bGlu
ZyBmbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdy
YXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdy
YXBoaWNzQ29udGV4dDNELmgKaW5kZXggMjc0YzI3OTRjMTgxMTIwOGIxNTMyOTFmOWI2YWQxNmRj
YmQ0MTRiZi4uZWE0MzhkZWU2ZDA0MGRmMjgxNWFmYjk3NDk2NjNlOTRmYTRiNDBiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQz
RC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250
ZXh0M0QuaApAQCAtMzk4LDYgKzM5OCwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRl
eFN0b3JhZ2UyREVYVChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbHMsIFdHQzNEdWlu
dCBpbnRlcm5hbGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdHQzNE
aW50IHdpZHRoLCBXR0MzRGludCBoZWlnaHQpIHsgfQogCisgICAgLy8gR0xfRVhUX29jY2x1c2lv
bl9xdWVyeQorICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVRdWVyeUVYVCgpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlUXVlcnlFWFQoV2ViR0xJZCBxdWVyeSkgPSAwOworICAgIHZpcnR1
YWwgV0dDM0Rib29sZWFuIGlzUXVlcnlFWFQoV2ViR0xJZCBxdWVyeSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBiZWdpblF1ZXJ5RVhUKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdMSWQgcXVlcnkpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kUXVlcnlFWFQoV0dDM0RlbnVtIHRhcmdldCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBnZXRRdWVyeWl2RVhUKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51
bSBwbmFtZSwgV0dDM0RpbnQqIHBhcmFtcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRRdWVy
eU9iamVjdHVpdkVYVChXZWJHTElkIHF1ZXJ5LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEdWludCog
cGFyYW1zKSA9IDA7CiAKICNpZiBXRUJLSVRfVVNJTkdfU0tJQQogICAgIEdyR0xJbnRlcmZhY2Uq
IGNyZWF0ZUdyR0xJbnRlcmZhY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCmlu
ZGV4IDUzMzIyZjBmMjVlZDQwN2EyNWU2YjYyMzI3ZTg3MTI4OWQxOGJkNWEuLjQyODIxOWEyZTg0
YjAxZjZkMWNhZTg5NTgxYTk0YWZiMmVlZTgxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hy
b21pdW0uaApAQCAtNDYsOCArNDYsMTAgQEAgcHVibGljOgogICAgIC8vICAgR0xfQ0hST01JVU1f
cmF0ZV9saW1pdF9vZmZzY3JlZW5fY29udGV4dAogICAgIC8vICAgR0xfQ0hST01JVU1fcGFpbnRf
ZnJhbWVidWZmZXJfY2FudmFzCiAgICAgLy8gICBHTF9DSFJPTUlVTV9pb3N1cmZhY2UgKE1hYyBP
UyBYIHNwZWNpZmljKQorICAgIC8vICAgR0xfQ0hST01JVU1fY29tbWFuZF9idWZmZXJfcXVlcnkK
ICAgICAvLyAgIEdMX0FOR0xFX3RleHR1cmVfdXNhZ2UKICAgICAvLyAgIEdMX0VYVF90ZXh0dXJl
X3N0b3JhZ2UKKyAgICAvLyAgIEdMX0VYVF9vY2NsdXNpb25fcXVlcnlfYm9vbGVhbgogCiAgICAg
Ly8gRXh0ZW5zaW9uczNEIG1ldGhvZHMuCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzKGNvbnN0
IFN0cmluZyYpOwpAQCAtNzUsNyArNzcsMTcgQEAgcHVibGljOgogICAgICAgICBHTF9GUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0FOR0xFID0gMHg5M0EzLAogCiAgICAgICAgIC8vIEdMX0VYVF90ZXh0
dXJlX3N0b3JhZ2UKLSAgICAgICAgQkdSQThfRVhUID0gMHg5M0ExCisgICAgICAgIEJHUkE4X0VY
VCA9IDB4OTNBMSwKKworICAgICAgICAvLyBHTF9FWFRfb2NjbHVzaW9uX3F1ZXJ5X2Jvb2xlYW4K
KyAgICAgICAgQU5ZX1NBTVBMRVNfUEFTU0VEX0VYVCA9IDB4OEMyRiwKKyAgICAgICAgQU5ZX1NB
TVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRV9FWFQgPSAweDhENkEsCisgICAgICAgIENVUlJFTlRf
UVVFUllfRVhUID0gMHg4ODY1LAorICAgICAgICBRVUVSWV9SRVNVTFRfRVhUID0gMHg4ODY2LAor
ICAgICAgICBRVUVSWV9SRVNVTFRfQVZBSUxBQkxFX0VYVCA9IDB4ODg2NywKKworICAgICAgICAv
LyBHTF9DSFJPTUlVTV9jb21tYW5kX2J1ZmZlcl9xdWVyeQorICAgICAgICBDT01NQU5EU19JU1NV
RURfQ0hST01JVU0gPSAweDg0RjIKICAgICB9OwogCiAgICAgLy8gR0xfQ0hST01JVU1fcG9zdF9z
dWJfYnVmZmVyCkBAIC0xMjAsNiArMTMyLDE1IEBAIHB1YmxpYzoKICAgICAvLyBHTF9FWFRfdGV4
dHVyZV9zdG9yYWdlCiAgICAgdm9pZCB0ZXhTdG9yYWdlMkRFWFQodW5zaWduZWQgdGFyZ2V0LCBp
bnQgbGV2ZWxzLCB1bnNpZ25lZCBpbnRlcm5hbGZvcm1hdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0
KTsKIAorICAgIC8vIEdMX0VYVF9vY2NsdXNpb25fcXVlcnkKKyAgICBQbGF0Zm9ybTNET2JqZWN0
IGNyZWF0ZVF1ZXJ5RVhUKCk7CisgICAgdm9pZCBkZWxldGVRdWVyeUVYVChQbGF0Zm9ybTNET2Jq
ZWN0KTsKKyAgICBHQzNEYm9vbGVhbiBpc1F1ZXJ5RVhUKFBsYXRmb3JtM0RPYmplY3QpOworICAg
IHZvaWQgYmVnaW5RdWVyeUVYVChHQzNEZW51bSwgUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdm9p
ZCBlbmRRdWVyeUVYVChHQzNEZW51bSk7CisgICAgdm9pZCBnZXRRdWVyeWl2RVhUKEdDM0RlbnVt
LCBHQzNEZW51bSwgR0MzRGludCopOworICAgIHZvaWQgZ2V0UXVlcnlPYmplY3R1aXZFWFQoUGxh
dGZvcm0zRE9iamVjdCwgR0MzRGVudW0sIEdDM0R1aW50Kik7CisKIHByaXZhdGU6CiAgICAgLy8g
SW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgYXJlIHN0cmljdGx5IG93bmVkIGJ5IHRoZSBHcmFwaGlj
c0NvbnRleHQzRCBpbXBsZW1lbnRhdGlvbiBhbmQgZG8gbm90CiAgICAgLy8gbmVlZCB0byBiZSBp
bnN0YW50aWF0ZWQgYnkgYW55IG90aGVyIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAKaW5kZXggNzMzOTdiZDJiMTZhN2Nj
Y2ZhMTgyYmExMjc2OGRhMGM3YTU4NzZkYi4uNmI1NmNjYTBjOTgxZDBjMDFlNDNjYmMwOGI1YmMw
NDE0ZmNhMTc0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5z
aW9uczNEQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVu
c2lvbnMzRENocm9taXVtLmNwcApAQCAtMTYwLDYgKzE2MCw0MSBAQCB2b2lkIEV4dGVuc2lvbnMz
RENocm9taXVtOjp0ZXhTdG9yYWdlMkRFWFQodW5zaWduZWQgaW50IHRhcmdldCwgaW50IGxldmVs
cywgdW5zaQogICAgIG1fcHJpdmF0ZS0+dGV4U3RvcmFnZTJERVhUKHRhcmdldCwgbGV2ZWxzLCBp
bnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CiB9CiAKK1BsYXRmb3JtM0RPYmplY3QgRXh0
ZW5zaW9uczNEQ2hyb21pdW06OmNyZWF0ZVF1ZXJ5RVhUKCkKK3sKKyAgICByZXR1cm4gbV9wcml2
YXRlLT5jcmVhdGVRdWVyeUVYVCgpOworfQorCit2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpk
ZWxldGVRdWVyeUVYVChQbGF0Zm9ybTNET2JqZWN0IHF1ZXJ5KQoreworICAgIG1fcHJpdmF0ZS0+
ZGVsZXRlUXVlcnlFWFQocXVlcnkpOworfQorCitHQzNEYm9vbGVhbiBFeHRlbnNpb25zM0RDaHJv
bWl1bTo6aXNRdWVyeUVYVChQbGF0Zm9ybTNET2JqZWN0IHF1ZXJ5KQoreworICAgIHJldHVybiBt
X3ByaXZhdGUtPmlzUXVlcnlFWFQocXVlcnkpOworfQorCit2b2lkIEV4dGVuc2lvbnMzRENocm9t
aXVtOjpiZWdpblF1ZXJ5RVhUKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCBxdWVy
eSkKK3sKKyAgICBtX3ByaXZhdGUtPmJlZ2luUXVlcnlFWFQodGFyZ2V0LCBxdWVyeSk7Cit9CisK
K3ZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmVuZFF1ZXJ5RVhUKEdDM0RlbnVtIHRhcmdldCkK
K3sKKyAgICBtX3ByaXZhdGUtPmVuZFF1ZXJ5RVhUKHRhcmdldCk7Cit9CisKK3ZvaWQgRXh0ZW5z
aW9uczNEQ2hyb21pdW06OmdldFF1ZXJ5aXZFWFQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogcGFyYW1zKQoreworICAgIG1fcHJpdmF0ZS0+Z2V0UXVlcnlpdkVYVCh0
YXJnZXQsIHBuYW1lLCBwYXJhbXMpOworfQorCit2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpn
ZXRRdWVyeU9iamVjdHVpdkVYVChQbGF0Zm9ybTNET2JqZWN0IHF1ZXJ5LCBHQzNEZW51bSBwbmFt
ZSwgR0MzRHVpbnQqIHBhcmFtcykKK3sKKyAgICBtX3ByaXZhdGUtPmdldFF1ZXJ5T2JqZWN0dWl2
RVhUKHF1ZXJ5LCBwbmFtZSwgcGFyYW1zKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAppbmRleCA0YmZhMmU1YmNm
MzM1YjQ1MGNiYTEwYzk4NDM4NDQwYmY4MGE4OGY1Li45M2Q5Y2Q1MzdlYzUxNThkNzlmNDlhMThj
ZmY0YjIwYzZkN2FmMTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9H
cmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcApAQCAtODg5LDYgKzg4OSwxNCBAQCBE
RUxFR0FURV9UT19JTVBMXzFSKGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSwgUGxhdGZv
cm0zRE9iamVjdCwgU3RyaW5nKQogREVMRUdBVEVfVE9fSU1QTF81KHRleEltYWdlSU9TdXJmYWNl
MkRDSFJPTUlVTSwgR0MzRGVudW0sIEdDM0RpbnQsIEdDM0RpbnQsIEdDM0R1aW50LCBHQzNEdWlu
dCkKIERFTEVHQVRFX1RPX0lNUExfNSh0ZXhTdG9yYWdlMkRFWFQsIEdDM0RlbnVtLCBHQzNEaW50
LCBHQzNEdWludCwgR0MzRGludCwgR0MzRGludCkKIAorREVMRUdBVEVfVE9fSU1QTF9SKGNyZWF0
ZVF1ZXJ5RVhULCBQbGF0Zm9ybTNET2JqZWN0KQorREVMRUdBVEVfVE9fSU1QTF8xKGRlbGV0ZVF1
ZXJ5RVhULCBQbGF0Zm9ybTNET2JqZWN0KQorREVMRUdBVEVfVE9fSU1QTF8xUihpc1F1ZXJ5RVhU
LCBQbGF0Zm9ybTNET2JqZWN0LCBHQzNEYm9vbGVhbikKK0RFTEVHQVRFX1RPX0lNUExfMihiZWdp
blF1ZXJ5RVhULCBHQzNEZW51bSwgUGxhdGZvcm0zRE9iamVjdCkKK0RFTEVHQVRFX1RPX0lNUExf
MShlbmRRdWVyeUVYVCwgR0MzRGVudW0pCitERUxFR0FURV9UT19JTVBMXzMoZ2V0UXVlcnlpdkVY
VCwgR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEaW50KikKK0RFTEVHQVRFX1RPX0lNUExfMyhnZXRR
dWVyeU9iamVjdHVpdkVYVCwgUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0sIEdDM0R1aW50KikK
KwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBHcmFwaGljc0NvbnRleHQzRAogLy8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKaW5k
ZXggYmU5ZGI0Mjg3ZGI2ZWZhMzI4NWZjY2I4NTRmZWEzNDgzYWQxNWI2Yy4uMjliYjZlZjUyMGIw
MWYwMjA4MGI5MDc5MWM2YmQ1ZTU4ZWRkYmM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKQEAgLTMwNyw2ICszMDcs
MTUgQEAgcHVibGljOgogICAgIC8vIEdMX0VYVF90ZXh0dXJlX3N0b3JhZ2UKICAgICB2b2lkIHRl
eFN0b3JhZ2UyREVYVChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWxzLCBHQzNEdWludCBp
bnRlcm5hbGZvcm1hdCwgR0MzRGludCB3aWR0aCwgR0MzRGludCBoZWlnaHQpOwogCisgICAgLy8g
R0xfRVhUX29jY2x1c2lvbl9xdWVyeQorICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlUXVlcnlF
WFQoKTsKKyAgICB2b2lkIGRlbGV0ZVF1ZXJ5RVhUKFBsYXRmb3JtM0RPYmplY3QpOworICAgIEdD
M0Rib29sZWFuIGlzUXVlcnlFWFQoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdm9pZCBiZWdpblF1
ZXJ5RVhUKEdDM0RlbnVtLCBQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIGVuZFF1ZXJ5RVhU
KEdDM0RlbnVtKTsKKyAgICB2b2lkIGdldFF1ZXJ5aXZFWFQoR0MzRGVudW0sIEdDM0RlbnVtLCBH
QzNEaW50Kik7CisgICAgdm9pZCBnZXRRdWVyeU9iamVjdHVpdkVYVChQbGF0Zm9ybTNET2JqZWN0
LCBHQzNEZW51bSwgR0MzRHVpbnQqKTsKKwogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHQz
RFByaXZhdGUoUGFzc093blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiwgYm9vbCBw
cmVzZXJ2ZURyYXdpbmdCdWZmZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0Zha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9GYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCAyNjhkYzFkYTM1ZGJh
MzUzNTU0NGUwOTM4MWNhNTA3ZDM0Y2M4MDczLi4yYzE2MWE4YjhkOGEwODU3ZWJmN2JiOGE3OTMw
ODhkMjM4ZTllNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zh
a2VXZWJHcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNELmgKQEAgLTI1NSw2ICsyNTUsMTQgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCB0ZXhTdG9yYWdlMkRFWFQoV0dDM0RlbnVtIHRhcmdldCwgV0dD
M0RpbnQgbGV2ZWxzLCBXR0MzRHVpbnQgaW50ZXJuYWxmb3JtYXQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXR0MzRGludCB3aWR0aCwgV0dDM0RpbnQgaGVpZ2h0KSB7IH0KIAor
ICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVRdWVyeUVYVCgpIHsgcmV0dXJuIDE7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlUXVlcnlFWFQoV2ViR0xJZCkgeyB9CisgICAgdmlydHVhbCBHQzNE
Ym9vbGVhbiBpc1F1ZXJ5RVhUKFdlYkdMSWQpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgYmVnaW5RdWVyeUVYVChHQzNEZW51bSwgV2ViR0xJZCkgeyB9CisgICAgdmlydHVhbCB2
b2lkIGVuZFF1ZXJ5RVhUKEdDM0RlbnVtKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UXVlcnlp
dkVYVChHQzNEZW51bSwgR0MzRGVudW0sIEdDM0RpbnQqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
Z2V0UXVlcnlPYmplY3R1aXZFWFQoV2ViR0xJZCwgR0MzRGVudW0sIEdDM0R1aW50KikgeyB9CisK
IHByb3RlY3RlZDoKICAgICBBdHRyaWJ1dGVzIG1fYXR0cnM7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132504</attachid>
            <date>2012-03-18 16:07:34 -0700</date>
            <delta_ts>2012-03-19 12:19:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80988-20120318190733.patch</filename>
            <type>text/plain</type>
            <size>11318</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA4ZWI3MTFhYWY2MTM3
MzQzOGRkNWU4ZTA4ZDU2ZjZiNjk1NWFjODIyLi5lZDJkZGE3ODVhOTA4MjI3MjVjMjRlYzcwMzIx
MDRmZGI5NWJjODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMy0xOCAg
RGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1
bV0gR0xfRVhUX29jY2x1c2lvbl9xdWVyeV9ib29sZWFuIGFuZCBHTF9DSFJPTUlVTV9jb21tYW5k
X2J1ZmZlcl9xdWVyeSBzdXBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODA5ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgRVhUX29jY2x1c2lvbl9xdWVyeSBBUEkgdG8gV2ViR3JhcGhpY3ND
b250ZXh0M0QuCisKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0
M0QuaDoKKyAgICAgICAgKFdlYkdyYXBoaWNzQ29udGV4dDNEKToKKwogMjAxMi0wMy0wOCAgSmFt
ZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVzZSBhbiBleHBs
aWNpdCBhdHRyaWJ1dGUgdG8gc2lnbmFsIHRoYXQgYSBjb250ZXh0IHByZWZlcnMgdG8gdXNlIGEg
ZGlzY3JldGUgR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTAxZmRjMDMzZjJkMWNmMDhkMzczMmRkMzZmYTU4
Y2IwZTVlNmUwMC4uNjkwMjdhY2RmNTRkZmU1ZjhlYjI4NzY2ZTJmYTEyZjQ3NWMyMzhhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAzLTE4ICBEYXZpZCBSZXZlbWFuICA8cmV2
ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBHTF9FWFRfb2NjbHVzaW9u
X3F1ZXJ5X2Jvb2xlYW4gYW5kIEdMX0NIUk9NSVVNX2NvbW1hbmRfYnVmZmVyX3F1ZXJ5IHN1cHBv
cnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDk4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9z
ZSBFWFRfb2NjbHVzaW9uX3F1ZXJ5IEFQSSB0byBXZWJLaXQgY29tcG9zaXRvci4gQWRkCisgICAg
ICAgIEdMX0VYVF9vY2NsdXNpb25fcXVlcnlfYm9vbGVhbiBhbmQgR0xfQ0hST01JVU1fY29tbWFu
ZF9idWZmZXJfcXVlcnkKKyAgICAgICAgZW51bXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oOgorICAgICAgICAoRXh0ZW5zaW9u
czNEQ2hyb21pdW0pOgorCiAyMDEyLTAzLTE4ICBQcmF0aWsgU29sYW5raSAgPHBzb2xhbmtpQGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXggY29tcGlsZSB3aGVuIEZVTExTQ1JFRU5fQVBJIGlzIG5v
dCBlbmFibGVkIG9uIE1hYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzNTc5MWIyZjg4
MDdhYTVkZDk1MGMwMWM1NGU4NjhmY2Q0YWE2MWY1Li5mOTg3MTM4ZWExZWU4MzEzNWNlZDllMTM0
YWYwNDIxZmE0YTA0YTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1
IEBACisyMDEyLTAzLTE4ICBEYXZpZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW0Nocm9taXVtXSBHTF9FWFRfb2NjbHVzaW9uX3F1ZXJ5X2Jvb2xlYW4gYW5kIEdM
X0NIUk9NSVVNX2NvbW1hbmRfYnVmZmVyX3F1ZXJ5IHN1cHBvcnQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDk4OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBFWFRfb2NjbHVzaW9uX3F1ZXJ5
IEFQSSB0byBXZWJLaXQgY29tcG9zaXRvci4KKworICAgICAgICAqIHNyYy9FeHRlbnNpb25zM0RD
aHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RDaHJvbWl1bTo6Y3Jl
YXRlUXVlcnlFWFQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFeHRl
bnNpb25zM0RDaHJvbWl1bTo6ZGVsZXRlUXVlcnlFWFQpOgorICAgICAgICAoV2ViQ29yZTo6RXh0
ZW5zaW9uczNEQ2hyb21pdW06OmlzUXVlcnlFWFQpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uczNEQ2hyb21pdW06OmJlZ2luUXVlcnlFWFQpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uczNEQ2hyb21pdW06OmVuZFF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lv
bnMzRENocm9taXVtOjpnZXRRdWVyeWl2RVhUKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lv
bnMzRENocm9taXVtOjpnZXRRdWVyeU9iamVjdHVpdkVYVCk6CisgICAgICAgICogc3JjL0dyYXBo
aWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
c3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlKToKKyAgICAgICAgKiB0ZXN0cy9GYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QuaDoK
KyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVRdWVyeUVY
VCk6CisgICAgICAgIChXZWJLaXQ6OkZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6ZGVsZXRlUXVl
cnlFWFQpOgorICAgICAgICAoV2ViS2l0OjpGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0Q6OmlzUXVl
cnlFWFQpOgorICAgICAgICAoV2ViS2l0OjpGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0Q6OmJlZ2lu
UXVlcnlFWFQpOgorICAgICAgICAoV2ViS2l0OjpGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0Q6OmVu
ZFF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpn
ZXRRdWVyeWl2RVhUKToKKyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNE
OjpnZXRRdWVyeU9iamVjdHVpdkVYVCk6CisgICAgICAgIChGYWtlV2ViR3JhcGhpY3NDb250ZXh0
M0QpOgorCiAyMDEyLTAzLTE2ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW2Nocm9taXVtXSBVbmlmeSB0aGUgZHJhd2luZyBsb2dpYyBmb3IgZGlmZmVy
ZW50IGxheWVyIHR5cGVzIHRoYXQgb3V0cHV0IHRleHR1cmVzIHRvIHRoZSBjb21wb3NpdG9yCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29u
dGV4dDNELmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29u
dGV4dDNELmgKaW5kZXggMjc0YzI3OTRjMTgxMTIwOGIxNTMyOTFmOWI2YWQxNmRjYmQ0MTRiZi4u
ZWE0MzhkZWU2ZDA0MGRmMjgxNWFmYjk3NDk2NjNlOTRmYTRiNDBiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaApA
QCAtMzk4LDYgKzM5OCwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRleFN0b3JhZ2Uy
REVYVChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbHMsIFdHQzNEdWludCBpbnRlcm5h
bGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdHQzNEaW50IHdpZHRo
LCBXR0MzRGludCBoZWlnaHQpIHsgfQogCisgICAgLy8gR0xfRVhUX29jY2x1c2lvbl9xdWVyeQor
ICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVRdWVyeUVYVCgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlUXVlcnlFWFQoV2ViR0xJZCBxdWVyeSkgPSAwOworICAgIHZpcnR1YWwgV0dDM0Ri
b29sZWFuIGlzUXVlcnlFWFQoV2ViR0xJZCBxdWVyeSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBi
ZWdpblF1ZXJ5RVhUKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdMSWQgcXVlcnkpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZW5kUXVlcnlFWFQoV0dDM0RlbnVtIHRhcmdldCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBnZXRRdWVyeWl2RVhUKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwg
V0dDM0RpbnQqIHBhcmFtcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRRdWVyeU9iamVjdHVp
dkVYVChXZWJHTElkIHF1ZXJ5LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEdWludCogcGFyYW1zKSA9
IDA7CiAKICNpZiBXRUJLSVRfVVNJTkdfU0tJQQogICAgIEdyR0xJbnRlcmZhY2UqIGNyZWF0ZUdy
R0xJbnRlcmZhY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCmluZGV4IDUzMzIy
ZjBmMjVlZDQwN2EyNWU2YjYyMzI3ZTg3MTI4OWQxOGJkNWEuLjQyODIxOWEyZTg0YjAxZjZkMWNh
ZTg5NTgxYTk0YWZiMmVlZTgxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaApA
QCAtNDYsOCArNDYsMTAgQEAgcHVibGljOgogICAgIC8vICAgR0xfQ0hST01JVU1fcmF0ZV9saW1p
dF9vZmZzY3JlZW5fY29udGV4dAogICAgIC8vICAgR0xfQ0hST01JVU1fcGFpbnRfZnJhbWVidWZm
ZXJfY2FudmFzCiAgICAgLy8gICBHTF9DSFJPTUlVTV9pb3N1cmZhY2UgKE1hYyBPUyBYIHNwZWNp
ZmljKQorICAgIC8vICAgR0xfQ0hST01JVU1fY29tbWFuZF9idWZmZXJfcXVlcnkKICAgICAvLyAg
IEdMX0FOR0xFX3RleHR1cmVfdXNhZ2UKICAgICAvLyAgIEdMX0VYVF90ZXh0dXJlX3N0b3JhZ2UK
KyAgICAvLyAgIEdMX0VYVF9vY2NsdXNpb25fcXVlcnlfYm9vbGVhbgogCiAgICAgLy8gRXh0ZW5z
aW9uczNEIG1ldGhvZHMuCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzKGNvbnN0IFN0cmluZyYp
OwpAQCAtNzUsNyArNzcsMTcgQEAgcHVibGljOgogICAgICAgICBHTF9GUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX0FOR0xFID0gMHg5M0EzLAogCiAgICAgICAgIC8vIEdMX0VYVF90ZXh0dXJlX3N0b3Jh
Z2UKLSAgICAgICAgQkdSQThfRVhUID0gMHg5M0ExCisgICAgICAgIEJHUkE4X0VYVCA9IDB4OTNB
MSwKKworICAgICAgICAvLyBHTF9FWFRfb2NjbHVzaW9uX3F1ZXJ5X2Jvb2xlYW4KKyAgICAgICAg
QU5ZX1NBTVBMRVNfUEFTU0VEX0VYVCA9IDB4OEMyRiwKKyAgICAgICAgQU5ZX1NBTVBMRVNfUEFT
U0VEX0NPTlNFUlZBVElWRV9FWFQgPSAweDhENkEsCisgICAgICAgIENVUlJFTlRfUVVFUllfRVhU
ID0gMHg4ODY1LAorICAgICAgICBRVUVSWV9SRVNVTFRfRVhUID0gMHg4ODY2LAorICAgICAgICBR
VUVSWV9SRVNVTFRfQVZBSUxBQkxFX0VYVCA9IDB4ODg2NywKKworICAgICAgICAvLyBHTF9DSFJP
TUlVTV9jb21tYW5kX2J1ZmZlcl9xdWVyeQorICAgICAgICBDT01NQU5EU19JU1NVRURfQ0hST01J
VU0gPSAweDg0RjIKICAgICB9OwogCiAgICAgLy8gR0xfQ0hST01JVU1fcG9zdF9zdWJfYnVmZmVy
CkBAIC0xMjAsNiArMTMyLDE1IEBAIHB1YmxpYzoKICAgICAvLyBHTF9FWFRfdGV4dHVyZV9zdG9y
YWdlCiAgICAgdm9pZCB0ZXhTdG9yYWdlMkRFWFQodW5zaWduZWQgdGFyZ2V0LCBpbnQgbGV2ZWxz
LCB1bnNpZ25lZCBpbnRlcm5hbGZvcm1hdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKIAorICAg
IC8vIEdMX0VYVF9vY2NsdXNpb25fcXVlcnkKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVF1
ZXJ5RVhUKCk7CisgICAgdm9pZCBkZWxldGVRdWVyeUVYVChQbGF0Zm9ybTNET2JqZWN0KTsKKyAg
ICBHQzNEYm9vbGVhbiBpc1F1ZXJ5RVhUKFBsYXRmb3JtM0RPYmplY3QpOworICAgIHZvaWQgYmVn
aW5RdWVyeUVYVChHQzNEZW51bSwgUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdm9pZCBlbmRRdWVy
eUVYVChHQzNEZW51bSk7CisgICAgdm9pZCBnZXRRdWVyeWl2RVhUKEdDM0RlbnVtLCBHQzNEZW51
bSwgR0MzRGludCopOworICAgIHZvaWQgZ2V0UXVlcnlPYmplY3R1aXZFWFQoUGxhdGZvcm0zRE9i
amVjdCwgR0MzRGVudW0sIEdDM0R1aW50Kik7CisKIHByaXZhdGU6CiAgICAgLy8gSW5zdGFuY2Vz
IG9mIHRoaXMgY2xhc3MgYXJlIHN0cmljdGx5IG93bmVkIGJ5IHRoZSBHcmFwaGljc0NvbnRleHQz
RCBpbXBsZW1lbnRhdGlvbiBhbmQgZG8gbm90CiAgICAgLy8gbmVlZCB0byBiZSBpbnN0YW50aWF0
ZWQgYnkgYW55IG90aGVyIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAKaW5kZXggNzMzOTdiZDJiMTZhN2NjY2ZhMTgyYmEx
Mjc2OGRhMGM3YTU4NzZkYi4uNmI1NmNjYTBjOTgxZDBjMDFlNDNjYmMwOGI1YmMwNDE0ZmNhMTc0
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hy
b21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVuc2lvbnMzRENo
cm9taXVtLmNwcApAQCAtMTYwLDYgKzE2MCw0MSBAQCB2b2lkIEV4dGVuc2lvbnMzRENocm9taXVt
Ojp0ZXhTdG9yYWdlMkRFWFQodW5zaWduZWQgaW50IHRhcmdldCwgaW50IGxldmVscywgdW5zaQog
ICAgIG1fcHJpdmF0ZS0+dGV4U3RvcmFnZTJERVhUKHRhcmdldCwgbGV2ZWxzLCBpbnRlcm5hbEZv
cm1hdCwgd2lkdGgsIGhlaWdodCk7CiB9CiAKK1BsYXRmb3JtM0RPYmplY3QgRXh0ZW5zaW9uczNE
Q2hyb21pdW06OmNyZWF0ZVF1ZXJ5RVhUKCkKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5jcmVh
dGVRdWVyeUVYVCgpOworfQorCit2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpkZWxldGVRdWVy
eUVYVChQbGF0Zm9ybTNET2JqZWN0IHF1ZXJ5KQoreworICAgIG1fcHJpdmF0ZS0+ZGVsZXRlUXVl
cnlFWFQocXVlcnkpOworfQorCitHQzNEYm9vbGVhbiBFeHRlbnNpb25zM0RDaHJvbWl1bTo6aXNR
dWVyeUVYVChQbGF0Zm9ybTNET2JqZWN0IHF1ZXJ5KQoreworICAgIHJldHVybiBtX3ByaXZhdGUt
PmlzUXVlcnlFWFQocXVlcnkpOworfQorCit2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpiZWdp
blF1ZXJ5RVhUKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCBxdWVyeSkKK3sKKyAg
ICBtX3ByaXZhdGUtPmJlZ2luUXVlcnlFWFQodGFyZ2V0LCBxdWVyeSk7Cit9CisKK3ZvaWQgRXh0
ZW5zaW9uczNEQ2hyb21pdW06OmVuZFF1ZXJ5RVhUKEdDM0RlbnVtIHRhcmdldCkKK3sKKyAgICBt
X3ByaXZhdGUtPmVuZFF1ZXJ5RVhUKHRhcmdldCk7Cit9CisKK3ZvaWQgRXh0ZW5zaW9uczNEQ2hy
b21pdW06OmdldFF1ZXJ5aXZFWFQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0Mz
RGludCogcGFyYW1zKQoreworICAgIG1fcHJpdmF0ZS0+Z2V0UXVlcnlpdkVYVCh0YXJnZXQsIHBu
YW1lLCBwYXJhbXMpOworfQorCit2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpnZXRRdWVyeU9i
amVjdHVpdkVYVChQbGF0Zm9ybTNET2JqZWN0IHF1ZXJ5LCBHQzNEZW51bSBwbmFtZSwgR0MzRHVp
bnQqIHBhcmFtcykKK3sKKyAgICBtX3ByaXZhdGUtPmdldFF1ZXJ5T2JqZWN0dWl2RVhUKHF1ZXJ5
LCBwbmFtZSwgcGFyYW1zKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
R3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAppbmRleCAwZDBjMGM4MzY5YmU0NzY1NTMw
YWIyZTkyM2FmMTA5OGEyYjZiMjRhLi43NWU5N2E5ZDk5NWNlMjkyYzg4MTk2OTQ4NDNjMTMxMjcw
NGJmZThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0Nv
bnRleHQzRENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFw
aGljc0NvbnRleHQzRENocm9taXVtLmNwcApAQCAtODg5LDYgKzg4OSwxNCBAQCBERUxFR0FURV9U
T19JTVBMXzFSKGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSwgUGxhdGZvcm0zRE9iamVj
dCwgU3RyaW5nKQogREVMRUdBVEVfVE9fSU1QTF81KHRleEltYWdlSU9TdXJmYWNlMkRDSFJPTUlV
TSwgR0MzRGVudW0sIEdDM0RpbnQsIEdDM0RpbnQsIEdDM0R1aW50LCBHQzNEdWludCkKIERFTEVH
QVRFX1RPX0lNUExfNSh0ZXhTdG9yYWdlMkRFWFQsIEdDM0RlbnVtLCBHQzNEaW50LCBHQzNEdWlu
dCwgR0MzRGludCwgR0MzRGludCkKIAorREVMRUdBVEVfVE9fSU1QTF9SKGNyZWF0ZVF1ZXJ5RVhU
LCBQbGF0Zm9ybTNET2JqZWN0KQorREVMRUdBVEVfVE9fSU1QTF8xKGRlbGV0ZVF1ZXJ5RVhULCBQ
bGF0Zm9ybTNET2JqZWN0KQorREVMRUdBVEVfVE9fSU1QTF8xUihpc1F1ZXJ5RVhULCBQbGF0Zm9y
bTNET2JqZWN0LCBHQzNEYm9vbGVhbikKK0RFTEVHQVRFX1RPX0lNUExfMihiZWdpblF1ZXJ5RVhU
LCBHQzNEZW51bSwgUGxhdGZvcm0zRE9iamVjdCkKK0RFTEVHQVRFX1RPX0lNUExfMShlbmRRdWVy
eUVYVCwgR0MzRGVudW0pCitERUxFR0FURV9UT19JTVBMXzMoZ2V0UXVlcnlpdkVYVCwgR0MzRGVu
dW0sIEdDM0RlbnVtLCBHQzNEaW50KikKK0RFTEVHQVRFX1RPX0lNUExfMyhnZXRRdWVyeU9iamVj
dHVpdkVYVCwgUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0sIEdDM0R1aW50KikKKwogLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAvLyBHcmFwaGljc0NvbnRleHQzRAogLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKaW5kZXggYmU5ZGI0
Mjg3ZGI2ZWZhMzI4NWZjY2I4NTRmZWEzNDgzYWQxNWI2Yy4uMjliYjZlZjUyMGIwMWYwMjA4MGI5
MDc5MWM2YmQ1ZTU4ZWRkYmM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKQEAgLTMwNyw2ICszMDcsMTUgQEAgcHVi
bGljOgogICAgIC8vIEdMX0VYVF90ZXh0dXJlX3N0b3JhZ2UKICAgICB2b2lkIHRleFN0b3JhZ2Uy
REVYVChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWxzLCBHQzNEdWludCBpbnRlcm5hbGZv
cm1hdCwgR0MzRGludCB3aWR0aCwgR0MzRGludCBoZWlnaHQpOwogCisgICAgLy8gR0xfRVhUX29j
Y2x1c2lvbl9xdWVyeQorICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlUXVlcnlFWFQoKTsKKyAg
ICB2b2lkIGRlbGV0ZVF1ZXJ5RVhUKFBsYXRmb3JtM0RPYmplY3QpOworICAgIEdDM0Rib29sZWFu
IGlzUXVlcnlFWFQoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdm9pZCBiZWdpblF1ZXJ5RVhUKEdD
M0RlbnVtLCBQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIGVuZFF1ZXJ5RVhUKEdDM0RlbnVt
KTsKKyAgICB2b2lkIGdldFF1ZXJ5aXZFWFQoR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEaW50Kik7
CisgICAgdm9pZCBnZXRRdWVyeU9iamVjdHVpdkVYVChQbGF0Zm9ybTNET2JqZWN0LCBHQzNEZW51
bSwgR0MzRHVpbnQqKTsKKwogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUo
UGFzc093blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiwgYm9vbCBwcmVzZXJ2ZURy
YXdpbmdCdWZmZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0Zha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9GYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCAyNjhkYzFkYTM1ZGJhMzUzNTU0NGUw
OTM4MWNhNTA3ZDM0Y2M4MDczLi4yYzE2MWE4YjhkOGEwODU3ZWJmN2JiOGE3OTMwODhkMjM4ZTll
NWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VXZWJHcmFw
aGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmFrZVdl
YkdyYXBoaWNzQ29udGV4dDNELmgKQEAgLTI1NSw2ICsyNTUsMTQgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCB0ZXhTdG9yYWdlMkRFWFQoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2
ZWxzLCBXR0MzRHVpbnQgaW50ZXJuYWxmb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXR0MzRGludCB3aWR0aCwgV0dDM0RpbnQgaGVpZ2h0KSB7IH0KIAorICAgIHZpcnR1
YWwgV2ViR0xJZCBjcmVhdGVRdWVyeUVYVCgpIHsgcmV0dXJuIDE7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlUXVlcnlFWFQoV2ViR0xJZCkgeyB9CisgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBp
c1F1ZXJ5RVhUKFdlYkdMSWQpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYmVn
aW5RdWVyeUVYVChHQzNEZW51bSwgV2ViR0xJZCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGVuZFF1
ZXJ5RVhUKEdDM0RlbnVtKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UXVlcnlpdkVYVChHQzNE
ZW51bSwgR0MzRGVudW0sIEdDM0RpbnQqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UXVlcnlP
YmplY3R1aXZFWFQoV2ViR0xJZCwgR0MzRGVudW0sIEdDM0R1aW50KikgeyB9CisKIHByb3RlY3Rl
ZDoKICAgICBBdHRyaWJ1dGVzIG1fYXR0cnM7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132625</attachid>
            <date>2012-03-19 12:19:54 -0700</date>
            <delta_ts>2012-03-20 11:24:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80988-20120319121953.patch</filename>
            <type>text/plain</type>
            <size>87293</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBiMTE5MjEzZGE4M2Y2
ZGU5NTEzYWIxMzk5ZTIzNjRlMDYxY2MxN2QzLi5iNGFlM2RmYTgzMTkyZDQ2NGQ2MjQ4OTk4ZGMz
YzUzYjk4NTdmNWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMy0xOCAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gVHJhbnNmZXIgd2hlZWwgZmxpbmdzIHRvIG1haW4gdGhyZWFkIGlmIHdlIGhpdCBhIHJlZ2lv
biB0aGF0IGNhbid0IGJlIHNjcm9sbGVkIGZyb20gdGhlIGNvbXBvc2l0b3IgdGhyZWFkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTQ3OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVi
bGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYkxheWVyVHJlZVZpZXdD
bGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50Ojp0cmFuc2Zl
cldoZWVsRmxpbmdBbmltYXRpb24pOgorCiAyMDEyLTAzLTE5ICBEYXZpZCBSZXZlbWFuICA8cmV2
ZW1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBHTF9FWFRfb2NjbHVzaW9u
X3F1ZXJ5X2Jvb2xlYW4gYW5kIEdMX0NIUk9NSVVNX2NvbW1hbmRfYnVmZmVyX3F1ZXJ5IHN1cHBv
cnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNTY0ZjBkNWFkMTE3Zjk2MTFmOTljZDhjMTZhYjI1ZDk4OGZmMWQw
OS4uZTY2NjQxM2E5YjFiYmEyNTAwMTMzMzJjYmUyZTQ3ZTY1ZmJiNTg0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDY0IEBACisyMDEyLTAzLTE4ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBUcmFuc2ZlciB3aGVlbCBmbGluZ3MgdG8g
bWFpbiB0aHJlYWQgaWYgd2UgaGl0IGEgcmVnaW9uIHRoYXQgY2FuJ3QgYmUgc2Nyb2xsZWQgZnJv
bSB0aGUgY29tcG9zaXRvciB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgxNDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9BY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb246OkFj
dGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vQWN0aXZl
UGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uLmg6CisgICAgICAgIChBY3RpdmVQbGF0Zm9ybUdlc3R1
cmVBbmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUdlc3R1cmVDdXJ2
ZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSk6
CisgICAgICAgICogcGxhdGZvcm0vVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2hGbGluZ1BsYXRm
b3JtR2VzdHVyZUN1cnZlOjpUb3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL1RvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oOgorICAgICAgICAo
VG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlKToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNo
RmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3VtdWxhdGl2ZVNjcm9sbCk6CisgICAgICAgICog
cGxhdGZvcm0vV2hlZWxGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmg6CisgICAgICAgIChXZWJD
b3JlOjpXaGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OmN1bXVsYXRpdmVTY3JvbGwpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlR2VzdHVyZUFu
aW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb246
OmN1bXVsYXRpdmVTY3JvbGwpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVHZXN0dXJlQW5pbWF0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKENDQWN0aXZlR2VzdHVyZUFuaW1hdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb246OnN0YXJ0VGltZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NHZXN0dXJlQ3VydmUuaDoKKyAg
ICAgICAgKENDR2VzdHVyZUN1cnZlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0lucHV0SGFuZGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
VHJlZUhvc3Q6OnRyYW5zZmVyV2hlZWxGbGluZ0FuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuaDoKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdENsaWVudCk6CisgICAgICAgIChDQ0xheWVy
VHJlZUhvc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0xheWVyVHJlZUhvc3RJbXBsOjp0cmFuc2ZlcldoZWVsRmxpbmdBbmltYXRpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwu
aDoKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdEltcGxDbGllbnQpOgorICAgICAgICAoQ0NMYXll
clRyZWVIb3N0SW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTaW5nbGVUaHJlYWRQcm94eS5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQ
cm94eTo6dHJhbnNmZXJXaGVlbEZsaW5nQW5pbWF0aW9uVG9NYWluVGhyZWFkT25JbXBsVGhyZWFk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnRyYW5zZmVyV2hlZWxGbGlu
Z0FuaW1hdGlvblRvTWFpblRocmVhZE9uSW1wbFRocmVhZCk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnRyYW5zZmVyV2hlZWxGbGluZ0FuaW1h
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25C
ZWdpbkZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5Lmg6CisgICAgICAgIChDQ1RocmVhZFByb3h5KToKKwogMjAxMi0wMy0xOSAgRGF2
aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0g
R0xfRVhUX29jY2x1c2lvbl9xdWVyeV9ib29sZWFuIGFuZCBHTF9DSFJPTUlVTV9jb21tYW5kX2J1
ZmZlcl9xdWVyeSBzdXBwb3J0LgpAQCAtNzQ4LDYgKzgwOSwyNiBAQAogICAgICAgICAqIHN2Zy9n
cmFwaGljcy9TVkdJbWFnZS5jcHA6CiAgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6Y29tcHV0
ZUludHJpbnNpY0RpbWVuc2lvbnMpOgogCisyMDEyLTAzLTE3ICBKYW1lcyBSb2JpbnNvbiAgPGph
bWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBJbXBsZW1lbnQgZmxpbmct
Ynktd2hlZWwgb24gY29tcG9zaXRvciB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNDYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjb21wb3NpdG9yIHRocmVhZCBzdXBwb3J0IGZvciBh
IGZsaW5nIHR5cGUgaW1wbGVtZW50ZWQgYXMgYSBzZXF1ZW5jZSBvZiB3aGVlbCBzY3JvbGxzLiBD
b3ZlcmVkIGJ5IG5ldyB0ZXN0cworICAgICAgICBpbiBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVy
SW1wbFRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NJ
bnB1dEhhbmRsZXIuaDoKKyAgICAgICAgKENDSW5wdXRIYW5kbGVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNjaGVkdWxlQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdEltcGwuaDoKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdEltcGwpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uRHJhd0Fu
ZFN3YXApOgorCiAyMDEyLTAzLTE3ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBy
aW0uY29tPgogCiAgICAgICAgIEVuYWJsZSBhbmltVmFsIHN1cHBvcnQgZm9yIFNWR051bWJlck9w
dGlvbmFsTnVtYmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDY5ZGFhNDM3OWQ2MTc3
MTc2MWI2ZjRiMzM5MmEwNTMzOTFmZjUxZmYuLjUyMzBjZDg4MjBiYmI2YTVhZmZmNzhjMDE5N2Ni
MWIyYjAyMzdhOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAK
KzIwMTItMDMtMTggIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBbY2hyb21pdW1dIFRyYW5zZmVyIHdoZWVsIGZsaW5ncyB0byBtYWluIHRocmVhZCBpZiB3
ZSBoaXQgYSByZWdpb24gdGhhdCBjYW4ndCBiZSBzY3JvbGxlZCBmcm9tIHRoZSBjb21wb3NpdG9y
IHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODE0NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHNyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybUdlc3R1cmVUb0NDR2VzdHVyZUFkYXB0ZXI6OmN1bXVsYXRpdmVTY3JvbGwpOgor
ICAgICAgICAoUGxhdGZvcm1HZXN0dXJlVG9DQ0dlc3R1cmVBZGFwdGVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUlucHV0RXZlbnRJbnRl
cm5hbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpo
YW5kbGVHZXN0dXJlRmxpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW5wdXRI
YW5kbGVySW1wbDo6c2Nyb2xsQnkpOgorICAgICAgICAqIHNyYy9XZWJDb21wb3NpdG9ySW5wdXRI
YW5kbGVySW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjp0cmFuc2ZlcldoZWVsRmxpbmdB
bmltYXRpb24pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJUcmVl
Vmlld0ltcGwuaDoKKyAgICAgICAgKFdlYkxheWVyVHJlZVZpZXdJbXBsKToKKyAgICAgICAgKiBz
cmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmll
d0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2Nyb2xsQnkpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omdlc3R1cmVFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0cmFuc2ZlcldoZWVsRmxpbmdBbmltYXRp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBz
cmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViVmlld0lt
cGwpOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Q0NMYXllclRyZWVIb3N0SW1wbFRlc3Q6OnRyYW5zZmVyV2hlZWxGbGluZ0Fu
aW1hdGlvblRvTWFpblRocmVhZE9uSW1wbFRocmVhZCk6CisgICAgICAgICogdGVzdHMvQ0NMYXll
clRyZWVIb3N0VGVzdC5jcHA6CisgICAgICAgIChXVEY6Ok1vY2tMYXllclRyZWVIb3N0Q2xpZW50
Ojp0cmFuc2ZlcldoZWVsRmxpbmdBbmltYXRpb24pOgorICAgICAgICAoTW9ja0xheWVyVHJlZUhv
c3RDbGllbnQpOgorICAgICAgICAqIHRlc3RzL0Zha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkZha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQ6OnRyYW5zZmVyV2hl
ZWxGbGluZ0FuaW1hdGlvbik6CisgICAgICAgICogdGVzdHMvV2ViQ29tcG9zaXRvcklucHV0SGFu
ZGxlckltcGxUZXN0LmNwcDoKKwogMjAxMi0wMy0xOSAgRGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gR0xfRVhUX29jY2x1c2lvbl9xdWVy
eV9ib29sZWFuIGFuZCBHTF9DSFJPTUlVTV9jb21tYW5kX2J1ZmZlcl9xdWVyeSBzdXBwb3J0LgpA
QCAtMTI3LDYgKzE2NiwyOCBAQAogICAgICAgICAoV2ViQ29yZTo6YWRkVHJhbnNmb3JtQW5pbWF0
aW9uVG9MYXllcik6CiAgICAgICAgIChXZWJDb3JlOjpURVNUKToKIAorMjAxMi0wMy0xNyAgSmFt
ZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
SW1wbGVtZW50IGZsaW5nLWJ5LXdoZWVsIG9uIGNvbXBvc2l0b3IgdGhyZWFkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTQ2MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmbGluZy1ieS13
aGVlbCBhbmQgYmVlZiB1cCBleGlzdGluZyB1bml0IHRlc3QgY292ZXJhZ2UgY29uc2lkZXJhYmx5
IGJ5IHVzaW5nIGdtb2NrIGluc3RlYWQgb2YgbW9ja2luZworICAgICAgICBieSBoYW5kLgorCisg
ICAgICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUlucHV0RXZlbnQp
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGw6OmhhbmRsZUlucHV0RXZlbnRJbnRlcm5hbCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVHZXN0dXJlRmxpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6YW5pbWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpjYW5jZWxDdXJy
ZW50RmxpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1w
bDo6c2Nyb2xsQnkpOgorICAgICAgICAqIHNyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1w
bC5oOgorICAgICAgICAoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwpOgorICAgICAgICAq
IHRlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHA6CisKIDIwMTItMDMt
MTYgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hy
b21pdW1dIFVuaWZ5IHRoZSBkcmF3aW5nIGxvZ2ljIGZvciBkaWZmZXJlbnQgbGF5ZXIgdHlwZXMg
dGhhdCBvdXRwdXQgdGV4dHVyZXMgdG8gdGhlIGNvbXBvc2l0b3IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkK
aW5kZXggYWZhMTQ3MTNmNWQ2YWFjYjgzMTlkNzVhNjc3MzZhNmYyM2IxMzQ5YS4uOGVjZjg4MTNh
MDZmYTc2M2E2NDJkNGY4NmFjYjllODVhYjMwY2M2MiAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRm
b3JtL1BsYXRmb3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKQEAg
LTMxLDYgKzMxLDcgQEAKIHsKICAgICAndmFyaWFibGVzJzogewogICAgICAgICAncGxhdGZvcm1f
ZmlsZXMnOiBbCisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkFjdGl2ZVdoZWVsRmxp
bmdQYXJhbWV0ZXJzLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJDU3RyaW5n
LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJDYW52YXMuaCcsCiAgICAgICAg
ICAgICAnY2hyb21pdW0vcHVibGljL1dlYkNvbG9yLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycy5oIGIv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1l
dGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA1ZDMzYTU3ZDA4ZTMzZjE1OGYwZmFiMjhhNThlODVjYzFlOGNk
YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnNfaAorI2RlZmluZSBXZWJBY3RpdmVX
aGVlbEZsaW5nUGFyYW1ldGVyc19oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKworI2luY2x1
ZGUgIldlYkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJXZWJQb2ludC5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworc3RydWN0IFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzIHsKKyAgICBX
ZWJGbG9hdFBvaW50IGRlbHRhOworICAgIFdlYlBvaW50IHBvaW50OworICAgIFdlYlBvaW50IGds
b2JhbFBvaW50OworICAgIGludCBtb2RpZmllcnM7CisgICAgV2ViU2l6ZSBjdW11bGF0aXZlU2Ny
b2xsOworICAgIGRvdWJsZSBzdGFydFRpbWU7CisKKyAgICBXZWJBY3RpdmVXaGVlbEZsaW5nUGFy
YW1ldGVycygpCisgICAgICAgIDogbW9kaWZpZXJzKDApCisgICAgICAgICwgc3RhcnRUaW1lKDAp
CisgICAgeworICAgIH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaCBiL1NvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCmluZGV4IDVj
MGI5ZWY5YTJhMmM2MTNiMTE5MDBjMTNmODk4ZjIyODM5YjQ2NWIuLjQ4YmQ5ZGNmOTczYTcxN2Ey
N2I5MTk3NWY1NWJlODYwYzMyNDQzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCkBAIC0yNyw2ICsyNyw3
IEBACiAjZGVmaW5lIFdlYkxheWVyVHJlZVZpZXdDbGllbnRfaAogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKK3N0cnVjdCBXZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVyczsKIGNsYXNzIFdlYkdyYXBo
aWNzQ29udGV4dDNEOwogc3RydWN0IFdlYlNpemU7CiBjbGFzcyBXZWJUaHJlYWQ7CkBAIC01NSw2
ICs1NiwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFt
ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVTd2FwQnVmZmVycygpID0gMDsK
IAorICAgIC8vIFRyYW5zZmVycyBhbiBpbi1wcm9ncmVzcyB3aGVlbCBmbGluZyBhbmltYXRpb24g
dGhhdCB0aGUgV2ViTGF5ZXJUcmVlVmlldworICAgIC8vIGNhbiBubyBsb25nZXIgYWR2YW5jZSB0
byB0aGUgY2xpZW50IHRvIGZpbmlzaCBvdXQuCisgICAgLy8gRklYTUU6IFJlbW92ZSBkZWZhdWx0
IGltcGwgd2hlbiBjbGllbnRzIGFyZSBhbGwgdXBkYXRlZAorICAgIHZpcnR1YWwgdm9pZCB0cmFu
c2ZlcldoZWVsRmxpbmdBbmltYXRpb24oY29uc3QgV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRl
cnMmKSB7IH0KKwogICAgIC8vIFNjaGVkdWxlcyBhIGNvbXBvc2l0aW5nIHBhc3MsIG1lYW5pbmcg
dGhlIGNsaWVudCBzaG91bGQgY2FsbAogICAgIC8vIFdlYkxheWVyVHJlZVZpZXc6OmNvbXBvc2l0
ZSBhdCBhIGxhdGVyIHRpbWUuIFRoaXMgaXMgb25seSBjYWxsZWQgaWYgdGhlCiAgICAgLy8gY29t
cG9zaXRvciB0aHJlYWQgaXMgZGlzYWJsZWQ7IHdoZW4gZW5hYmxlZCwgdGhlIGNvbXBvc2l0b3Ig
d2lsbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDA2YmY5ZjA3MGJmODZmN2RlYjRmMDdhNDIwZjNhY2Zl
OWJiYTJlOTYuLmU2NWI3YjAwY2Q2YjczZTAyY2I2ZWE4MDQzM2Y3YWU4NDQzOGNmMmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTMzNTgsNiArMzM1OCw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvY2cvUGF0aENHLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUGF0dGVybkNHLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2cvVHJh
bnNmb3JtYXRpb25NYXRyaXhDRy5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0FjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52
YXNMYXllclRleHR1cmVVcGRhdGVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0JpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0FjdGl2ZVBsYXRmb3JtR2VzdHVy
ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9BY3RpdmVQbGF0Zm9ybUdl
c3R1cmVBbmltYXRpb24uY3BwCmluZGV4IDE4ZWM3ZWIzNGFlMmU0ZTA3YjU2YzE0YTNlMDJhMzM3
OGJhZDlkNTAuLjZhMDEzYWRmYjQ0NWQ2ZGM5NTNkNDM5NzhmNDk4NTAxMzdjYzBlZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0FjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1h
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQWN0aXZlUGxhdGZvcm1HZXN0
dXJlQW5pbWF0aW9uLmNwcApAQCAtMzcsNiArMzcsMTEgQEAgUGFzc093blB0cjxBY3RpdmVQbGF0
Zm9ybUdlc3R1cmVBbmltYXRpb24+IEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbjo6Y3Jl
YXQKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlv
bihjdXJ2ZSwgdGFyZ2V0KSk7CiB9CiAKK1Bhc3NPd25QdHI8QWN0aXZlUGxhdGZvcm1HZXN0dXJl
QW5pbWF0aW9uPiBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb246OmNyZWF0ZShQYXNzT3du
UHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjdXJ2ZSwgUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJn
ZXQqIHRhcmdldCwgZG91YmxlIHN0YXJ0VGltZSkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3
IEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbihjdXJ2ZSwgdGFyZ2V0LCBzdGFydFRpbWUp
KTsKK30KKwogQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uOjp+QWN0aXZlUGxhdGZvcm1H
ZXN0dXJlQW5pbWF0aW9uKCkKIHsKIH0KQEAgLTQ5LDYgKzU0LDE0IEBAIEFjdGl2ZVBsYXRmb3Jt
R2VzdHVyZUFuaW1hdGlvbjo6QWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uKFBhc3NPd25Q
dHI8UGxhdGZvCiB7CiB9CiAKK0FjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbjo6QWN0aXZl
UGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uKFBhc3NPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+
IGN1cnZlLCBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldCogdGFyZ2V0LCBkb3VibGUgc3RhcnRU
aW1lKQorICAgIDogbV9zdGFydFRpbWUoc3RhcnRUaW1lKQorICAgICwgbV93YWl0aW5nRm9yRmly
c3RUaWNrKGZhbHNlKQorICAgICwgbV9jdXJ2ZShjdXJ2ZSkKKyAgICAsIG1fdGFyZ2V0KHRhcmdl
dCkKK3sKK30KKwogYm9vbCBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb246OmFuaW1hdGUo
ZG91YmxlIHRpbWUpCiB7CiAgICAgaWYgKG1fd2FpdGluZ0ZvckZpcnN0VGljaykgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9BY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmlt
YXRpb24uaAppbmRleCA5ZDU2M2U0ODM2NjZkZDJhZGExYjViMDVlODk4NGRmMTViYWM3MDI0Li4y
MWYxOTljMDdhMWZjZjM0YzU4YzEyNDlmMmI4NGU0YzU3MTFiY2E0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9BY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9BY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb24u
aApAQCAtNDMsNiArNDMsNyBAQCBjbGFzcyBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb24g
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlv
bik7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8QWN0aXZlUGxhdGZvcm1HZXN0dXJl
QW5pbWF0aW9uPiBjcmVhdGUoUGFzc093blB0cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4sIFBsYXRm
b3JtR2VzdHVyZUN1cnZlVGFyZ2V0Kik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8QWN0aXZlUGxh
dGZvcm1HZXN0dXJlQW5pbWF0aW9uPiBjcmVhdGUoUGFzc093blB0cjxQbGF0Zm9ybUdlc3R1cmVD
dXJ2ZT4sIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0KiwgZG91YmxlIHN0YXJ0VGltZSk7CiAg
ICAgfkFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbigpOwogCiAgICAgYm9vbCBhbmltYXRl
KGRvdWJsZSB0aW1lKTsKQEAgLTUwLDYgKzUxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICAv
LyBBc3N1bWVzIGEgdmFsaWQgUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQgdGhhdCBvdXRsaXZl
cyB0aGUgYW5pbWF0aW9uLgogICAgIEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbihQYXNz
T3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiwgUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQq
KTsKKyAgICBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb24oUGFzc093blB0cjxQbGF0Zm9y
bUdlc3R1cmVDdXJ2ZT4sIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0KiwgZG91YmxlIHN0YXJ0
VGltZSk7CiAKICAgICBkb3VibGUgbV9zdGFydFRpbWU7CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JG
aXJzdFRpY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVh
ZENvcGllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaApp
bmRleCAzYjYwNzYxNDJjZGFhYzIxNGFkMDA5MzZmY2ZiM2M1MDRhM2ZkMTcwLi44OTYyY2VlOTQ0
ZjExOGM1ZjNlYTcxOWI4MzVjOWVmZjk4MjRjOGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTQxLDYgKzQxLDcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCisgICAgc3RydWN0IEFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzOwogICAgIGNs
YXNzIEludFJlY3Q7CiAgICAgY2xhc3MgSW50U2l6ZTsKICAgICBjbGFzcyBLVVJMOwpAQCAtNzAs
NiArNzEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnM+
IDogcHVibGljIENyb3NzVGhyZWFkQ29waWVyUGFzc1Rocm91Z2g8VGhyZWFkYWJsZUxvYWRlck9w
dGlvbnM+IHsKICAgICB9OwogCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3Bp
ZXJCYXNlPGZhbHNlLCBmYWxzZSwgQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnM+IDogcHVibGlj
IENyb3NzVGhyZWFkQ29waWVyUGFzc1Rocm91Z2g8QWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnM+
IHsKKyAgICB9OworCiAgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNl
PGZhbHNlLCBmYWxzZSwgSW50UmVjdD4gOiBwdWJsaWMgQ3Jvc3NUaHJlYWRDb3BpZXJQYXNzVGhy
b3VnaDxJbnRSZWN0PiB7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtR2VzdHVyZUN1cnZlLmgKaW5kZXggOTIyMTk5MTQ3OGVhOWMxODkzZjk2YjNmZjBlZWQ3
ZWY2NGM3N2M0Mi4uZTBlZDI0Mzk3ZmE4ODQ2ZDdhNGU0Njg4OTIxZjNiNmQzMjI4M2NhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1HZXN0dXJlQ3VydmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSW50U2l6ZTsKIGNs
YXNzIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0OwogCiAvLyBBYnN0cmFjdCBpbnRlcmZhY2Ug
Zm9yIGN1cnZlcyB1c2VkIGJ5IEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbi4gQQpAQCAt
MzksNiArNDAsOCBAQCBwdWJsaWM6CiAKICAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIGN1cnZlIGhh
cyBmaW5pc2hlZCBhbmQgY2FuIG5vIGxvbmdlciBiZSBhcHBsaWVkLgogICAgIHZpcnR1YWwgYm9v
bCBhcHBseShkb3VibGUgdGltZSwgUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQqKSA9IDA7CisK
KyAgICB2aXJ0dWFsIEludFNpemUgY3VtdWxhdGl2ZVNjcm9sbCgpIGNvbnN0ID0gMDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Ub3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuY3BwCmluZGV4IDA2ZWQ1NGFj
M2FjMDk2YmM0MGUxNjVlZTI1NDdjZGE1ZDkzNDYwNWMuLmQ1ZTYzMzZjMTBhMWZmNTRhNjFlNWZl
OWI3MjdhOGU1Mjc4NGIyNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Rv
dWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmNwcApAQCAtMzUsMTEgKzM1LDE3
IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIFBhc3NPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3Vy
dmU+IFRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKGNvbnN0IEZsb2F0UG9p
bnQmIHZlbG9jaXR5KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgVG91Y2hGbGluZ1BsYXRm
b3JtR2VzdHVyZUN1cnZlKHZlbG9jaXR5KSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUb3Vj
aEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUodmVsb2NpdHksIEludFNpemUoKSkpOwogfQogCi1U
b3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OlRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVD
dXJ2ZShjb25zdCBGbG9hdFBvaW50JiB2ZWxvY2l0eSkKK1Bhc3NPd25QdHI8UGxhdGZvcm1HZXN0
dXJlQ3VydmU+IFRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKGNvbnN0IEZs
b2F0UG9pbnQmIHZlbG9jaXR5LCBjb25zdCBJbnRTaXplJiBjdW11bGF0aXZlU2Nyb2xsKQorewor
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlKHZl
bG9jaXR5LCBjdW11bGF0aXZlU2Nyb2xsKSk7Cit9CisKK1RvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1
cmVDdXJ2ZTo6VG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlKGNvbnN0IEZsb2F0UG9pbnQm
IHZlbG9jaXR5LCBjb25zdCBJbnRTaXplJiBjdW11bGF0aXZlU2Nyb2xsKQogICAgIDogbV92ZWxv
Y2l0eSh2ZWxvY2l0eSkKKyAgICAsIG1fY3VtdWxhdGl2ZVNjcm9sbChjdW11bGF0aXZlU2Nyb2xs
KQogICAgICwgbV90aW1lU2NhbGVGYWN0b3IoMTAwMCAvIG1heCgxLmYsIG1heChmYWJzKHZlbG9j
aXR5LngoKSksIGZhYnModmVsb2NpdHkueSgpKSkpKQogewogICAgIEFTU0VSVCh2ZWxvY2l0eSAh
PSBGbG9hdFBvaW50Ojp6ZXJvKCkpOwpAQCAtNzIsNyArNzgsNyBAQCBib29sIFRvdWNoRmxpbmdQ
bGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6YXBwbHkoZG91YmxlIHRpbWUsIFBsYXRmb3JtR2VzdHVyZUN1
cnZlVGFyZwogICAgICAgICBkaXNwbGFjZW1lbnQgPSAxLjA7CiAKICAgICAvLyBLZWVwIHRyYWNr
IG9mIGludGVnZXIgcG9ydGlvbiBvZiBzY3JvbGwgdGh1cyBmYXIsIGFuZCBwcmVwYXJlIGluY3Jl
bWVudC4KLSAgICBJbnRQb2ludCBzY3JvbGwoZGlzcGxhY2VtZW50ICogbV92ZWxvY2l0eS54KCks
IGRpc3BsYWNlbWVudCAqIG1fdmVsb2NpdHkueSgpKTsKKyAgICBJbnRTaXplIHNjcm9sbChkaXNw
bGFjZW1lbnQgKiBtX3ZlbG9jaXR5LngoKSwgZGlzcGxhY2VtZW50ICogbV92ZWxvY2l0eS55KCkp
OwogICAgIEludFBvaW50IHNjcm9sbEluY3JlbWVudChzY3JvbGwgLSBtX2N1bXVsYXRpdmVTY3Jv
bGwpOwogICAgIG1fY3VtdWxhdGl2ZVNjcm9sbCA9IHNjcm9sbDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaApp
bmRleCBmZDUyYmM0ZWM3NGMwYjUyYjc1ODQ1YjQ2NjlmNjU2ZjA3ZDI1MGVlLi4xNmFlZmUyNTc0
ZTUxNzhhZDgzZTUxZDE4NzFkMmQzN2IyOGJkMzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Ub3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaApAQCAtNDEs
MTYgKzQxLDE4IEBAIGNsYXNzIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0OwogY2xhc3MgVG91
Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlIDogcHVibGljIFBsYXRmb3JtR2VzdHVyZUN1cnZl
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4g
Y3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHZlbG9jaXR5KTsKKyAgICBzdGF0aWMgUGFzc093blB0
cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHZlbG9jaXR5
LCBjb25zdCBJbnRTaXplJiBjdW11bGF0aXZlU2Nyb2xsKTsKICAgICB2aXJ0dWFsIH5Ub3VjaEZs
aW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBhcHBseShkb3Vi
bGUgdGltZSwgUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQqKTsKKyAgICB2aXJ0dWFsIEludFNp
emUgY3VtdWxhdGl2ZVNjcm9sbCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VtdWxhdGl2ZVNjcm9sbDsg
fQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZShjb25zdCBGbG9hdFBvaW50JiB2ZWxvY2l0eSk7CisgICAgVG91Y2hGbGluZ1BsYXRmb3JtR2Vz
dHVyZUN1cnZlKGNvbnN0IEZsb2F0UG9pbnQmIHZlbG9jaXR5LCBjb25zdCBJbnRTaXplJiBjdW11
bGF0aXZlU2Nyb2xsKTsKIAogICAgIEZsb2F0UG9pbnQgbV92ZWxvY2l0eTsKKyAgICBJbnRTaXpl
IG1fY3VtdWxhdGl2ZVNjcm9sbDsKICAgICBmbG9hdCBtX3RpbWVTY2FsZUZhY3RvcjsKLSAgICBJ
bnRQb2ludCBtX2N1bXVsYXRpdmVTY3JvbGw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaGVlbEZsaW5nUGxhdGZvcm1H
ZXN0dXJlQ3VydmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2hlZWxGbGluZ1BsYXRm
b3JtR2VzdHVyZUN1cnZlLmNwcAppbmRleCBjOWYxNzMyODk3OWNiN2M3MmZmMzlmN2VjYzIxMTEw
ZjQzM2JjMzk5Li5lYmQ3ODhmZTQ1OWE2YzgxN2JhYWVhMDhiMWE5ZWMyMzQ5MmViZjhhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJl
Q3VydmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1doZWVsRmxpbmdQbGF0Zm9y
bUdlc3R1cmVDdXJ2ZS5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgYm9vbCBXaGVlbEZsaW5nUGxhdGZv
cm1HZXN0dXJlQ3VydmU6OmFwcGx5KGRvdWJsZSB0aW1lLCBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRh
cmcKICAgICAvLyBGSVhNRTogY29uc2lkZXIgbWFraW5nIHRoZSB2YWx1ZSBvZiBzaWdtYSBzZXR0
YWJsZSBpbiB0aGUgY29uc3RydWN0b3IuCiAgICAgc3RhdGljIGRvdWJsZSB0d29TaWdtYVNxdWFy
ZWRJbnZlcnNlID0gMTY7IC8vIHNpZ21hID0gMC4yNQogICAgIGZsb2F0IGNkZiA9IDEgLSBleHAo
LXRpbWUgKiB0aW1lICogdHdvU2lnbWFTcXVhcmVkSW52ZXJzZSk7Ci0gICAgSW50UG9pbnQgc2Ny
b2xsKGNkZiAqIG1fdmVsb2NpdHkueCgpLCBjZGYgKiBtX3ZlbG9jaXR5LnkoKSk7CisgICAgSW50
U2l6ZSBzY3JvbGwoY2RmICogbV92ZWxvY2l0eS54KCksIGNkZiAqIG1fdmVsb2NpdHkueSgpKTsK
ICAgICBJbnRQb2ludCBzY3JvbGxJbmNyZW1lbnQoc2Nyb2xsIC0gbV9jdW11bGF0aXZlU2Nyb2xs
KTsKICAgICBtX2N1bXVsYXRpdmVTY3JvbGwgPSBzY3JvbGw7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1doZWVsRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2hlZWxGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgKaW5k
ZXggYjcyMTQ2MTY1MzMzZjIzYzhjOWJiZjZjMDFkZGJmMDY3YWVlMWFjMi4uMjlmMTUxZmMxYjJm
MDhhNTkxMmJlNTBmZjc5Y2M2OTViZDljNWFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vV2hlZWxGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vV2hlZWxGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgKQEAgLTQ0LDEy
ICs0NCwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2hlZWxGbGluZ1BsYXRmb3JtR2VzdHVy
ZUN1cnZlKCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHkoZG91YmxlIHRpbWUsIFBsYXRmb3Jt
R2VzdHVyZUN1cnZlVGFyZ2V0Kik7CisgICAgdmlydHVhbCBJbnRTaXplIGN1bXVsYXRpdmVTY3Jv
bGwoKSBjb25zdCB7IHJldHVybiBtX2N1bXVsYXRpdmVTY3JvbGw7IH0KIAogcHJpdmF0ZToKICAg
ICBXaGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUoY29uc3QgRmxvYXRQb2ludCYgdmVsb2Np
dHkpOwogCiAgICAgRmxvYXRQb2ludCBtX3ZlbG9jaXR5OwotICAgIEludFBvaW50IG1fY3VtdWxh
dGl2ZVNjcm9sbDsKKyAgICBJbnRTaXplIG1fY3VtdWxhdGl2ZVNjcm9sbDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0FjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9BY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVy
cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU2OGNhYTc5NjNhZjI3NjI0NGU1NmJkOTNmMWE4MWQ3NzU1NzUyNjIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9BY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycy5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIEFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzX2gKKyNkZWZpbmUgQWN0aXZlV2hl
ZWxGbGluZ1BhcmFtZXRlcnNfaAorCisjaW5jbHVkZSAiRmxvYXRTaXplLmgiCisjaW5jbHVkZSAi
SW50UG9pbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgQWN0aXZlV2hlZWxG
bGluZ1BhcmFtZXRlcnMgeworICAgIEZsb2F0U2l6ZSBkZWx0YTsKKyAgICBJbnRQb2ludCBwb2lu
dDsKKyAgICBJbnRQb2ludCBnbG9iYWxQb2ludDsKKyAgICBpbnQgbW9kaWZpZXJzOworICAgIElu
dFNpemUgY3VtdWxhdGl2ZVNjcm9sbDsKKyAgICBkb3VibGUgc3RhcnRUaW1lOworCisgICAgQWN0
aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMoKQorICAgICAgICA6IG1vZGlmaWVycygwKQorICAgICAg
ICAsIHN0YXJ0VGltZSgwKQorICAgIHsKKyAgICB9Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3Rp
dmVHZXN0dXJlQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDQWN0aXZlR2VzdHVyZUFuaW1hdGlvbi5jcHAKaW5kZXggYTRhZjNlNTli
YzU1NzdhODg2ZjAyOWJlNTkyZmM0OTlhZDQzYmEwMS4uNjJjMTlmZmNiOWM1Y2RiODI1ZDc2NmQ1
MmE1ODBiMWY0YWE2ZTNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVHZXN0dXJlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUdlc3R1cmVB
bmltYXRpb24uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJjYy9DQ0FjdGl2ZUdl
c3R1cmVBbmltYXRpb24uaCIKIAorI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiY2Mv
Q0NHZXN0dXJlQ3VydmUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDcsNiArNDgsMTEg
QEAgQ0NBY3RpdmVHZXN0dXJlQW5pbWF0aW9uOjp+Q0NBY3RpdmVHZXN0dXJlQW5pbWF0aW9uKCkK
IHsKIH0KIAorSW50U2l6ZSBDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb246OmN1bXVsYXRpdmVTY3Jv
bGwoKSBjb25zdAoreworICAgIHJldHVybiBtX2dlc3R1cmVDdXJ2ZS0+Y3VtdWxhdGl2ZVNjcm9s
bCgpOworfQorCiBib29sIENDQWN0aXZlR2VzdHVyZUFuaW1hdGlvbjo6YW5pbWF0ZShkb3VibGUg
dGltZSkKIHsKICAgICBpZiAobV93YWl0aW5nRm9yRmlyc3RUaWNrKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUdlc3R1
cmVBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDQWN0aXZlR2VzdHVyZUFuaW1hdGlvbi5oCmluZGV4IDliY2Q3NTM3MDRjMzU5NGUyM2Jl
ZDM2YjZiNjU0OTQwYTg1NGQ3MGQuLjNkNTA3NTk0YjM4MjFhZTcxN2ViMDkxOTRlYzczMGQ0NjU1
MWY2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDQWN0aXZlR2VzdHVyZUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlR2VzdHVyZUFuaW1hdGlvbi5oCkBA
IC0zMywxNyArMzMsMjMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDQ0dlc3R1cmVD
dXJ2ZTsKIGNsYXNzIENDR2VzdHVyZUN1cnZlVGFyZ2V0OworY2xhc3MgSW50U2l6ZTsKIAogY2xh
c3MgQ0NBY3RpdmVHZXN0dXJlQW5pbWF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShD
Q0FjdGl2ZUdlc3R1cmVBbmltYXRpb24pOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRy
PENDQWN0aXZlR2VzdHVyZUFuaW1hdGlvbj4gY3JlYXRlKFBhc3NPd25QdHI8Q0NHZXN0dXJlQ3Vy
dmU+LCBDQ0dlc3R1cmVDdXJ2ZVRhcmdldCopOworCiAgICAgfkNDQWN0aXZlR2VzdHVyZUFuaW1h
dGlvbigpOwogCiAgICAgYm9vbCBhbmltYXRlKGRvdWJsZSB0aW1lKTsKIAorICAgIGRvdWJsZSBz
dGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0VGltZTsgfQorICAgIEludFNpemUgY3Vt
dWxhdGl2ZVNjcm9sbCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIENDQWN0aXZlR2VzdHVyZUFu
aW1hdGlvbihQYXNzT3duUHRyPENDR2VzdHVyZUN1cnZlPiwgQ0NHZXN0dXJlQ3VydmVUYXJnZXQq
KTsKKyAgICBDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb24oUGFzc093blB0cjxDQ0dlc3R1cmVDdXJ2
ZT4sIENDR2VzdHVyZUN1cnZlVGFyZ2V0KiwgZG91YmxlIHN0YXJ0VGltZSk7CiAKICAgICBkb3Vi
bGUgbV9zdGFydFRpbWU7CiAgICAgZG91YmxlIG1fd2FpdGluZ0ZvckZpcnN0VGljazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDR2Vz
dHVyZUN1cnZlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0dlc3R1cmVDdXJ2ZS5oCmluZGV4IDRiYzFjMGRkODA2ZGY3NjVlM2YyNDcyZDJiNjYzNjQ1
ZDI4OWM2YTUuLmNjNzlmNzE4MDFlNDIyZjYyODkyMmFiNjFlNjRlNGM4MzViNDFjOGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDR2Vz
dHVyZUN1cnZlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NHZXN0dXJlQ3VydmUuaApAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+Q0NHZXN0dXJlQ3VydmUoKSB7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBhcHBseShkb3Vi
bGUgdGltZSwgQ0NHZXN0dXJlQ3VydmVUYXJnZXQqKSA9IDA7CisKKyAgICB2aXJ0dWFsIEludFNp
emUgY3VtdWxhdGl2ZVNjcm9sbCgpIGNvbnN0ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDSW5wdXRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0lucHV0SGFuZGxlci5oCmluZGV4IDAzMWQ3ZGM1MDFkOWY3MzZhMzc2
YTkzNWIzZGUyMjQ0NmJlNjk1ZjEuLjQ1NmJjMzQwMmUxOTA4NDc1YzA1N2VmOTIyYjIxNjU2NWIw
Yjg0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDSW5wdXRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NJbnB1dEhhbmRsZXIuaApAQCAtMjksNiArMjksNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0cnVjdCBBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVyczsK
IGNsYXNzIENDQWN0aXZlR2VzdHVyZUFuaW1hdGlvbjsKIGNsYXNzIENDR2VzdHVyZUN1cnZlVGFy
Z2V0OwogY2xhc3MgSW50UG9pbnQ7CkBAIC00NSw4ICs0Niw2IEBAIGNsYXNzIEludFNpemU7CiBj
bGFzcyBDQ0lucHV0SGFuZGxlckNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ0NJ
bnB1dEhhbmRsZXJDbGllbnQpOwogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1Jl
ZHJhdygpID0gMDsKLQogICAgIGVudW0gU2Nyb2xsU3RhdHVzIHsgU2Nyb2xsRmFpbGVkLCBTY3Jv
bGxTdGFydGVkLCBTY3JvbGxJZ25vcmVkIH07CiAgICAgZW51bSBTY3JvbGxJbnB1dFR5cGUgeyBH
ZXN0dXJlLCBXaGVlbCB9OwogCkBAIC04MCw2ICs3OSwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb24qIGFjdGl2ZUdlc3R1cmVBbmltYXRpb24oKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZUdlc3R1cmVBbmltYXRpb24oUGFzc093blB0cjxD
Q0FjdGl2ZUdlc3R1cmVBbmltYXRpb24+KSA9IDA7CiAKKyAgICAvLyBSZXF1ZXN0IGEgbmV3IGZy
YW1lIHdpdGggdXBkYXRlZCBhbmltYXRpb24gc3RhdGUuIFR5cGljYWxseSBjYWxsZWQgYnkgQ0NJ
bnB1dEhhbmRsZXI6OmFuaW1hdGUoKS4KKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRp
b24oKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJXaGVlbEZsaW5nQW5pbWF0aW9u
KGNvbnN0IEFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzJikgPSAwOworCiBwcm90ZWN0ZWQ6CiAg
ICAgQ0NJbnB1dEhhbmRsZXJDbGllbnQoKSB7IH0KICAgICB2aXJ0dWFsIH5DQ0lucHV0SGFuZGxl
ckNsaWVudCgpIHsgfQpAQCAtOTIsNyArOTYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q0NJ
bnB1dEhhbmRsZXIoKSB7IH0KIAogICAgIHZpcnR1YWwgaW50IGlkZW50aWZpZXIoKSBjb25zdCA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEcmF3KGRvdWJsZSBtb25vdG9uaWNUaW1lKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoZG91YmxlIG1vbm90b25pY1RpbWUpID0gMDsKIAog
cHJvdGVjdGVkOgogICAgIENDSW5wdXRIYW5kbGVyKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0LmNwcAppbmRleCAwMTc4MjBhN2M3MGUxYjkzZmM2MmE0ZGY0NzY2NDUyODY5NzAzNWEx
Li5iMGZmYTUwNGI5NjY3MTc0MDYyNDkyMGI5ZDJiMmY4ZTc2NzYzYjRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgImNjL0ND
TGF5ZXJUcmVlSG9zdC5oIgogCisjaW5jbHVkZSAiQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJMYXllckNocm9taXVtLmgiCiAjaW5jbHVkZSAiTGF5ZXJQYWludGVyQ2hy
b21pdW0uaCIKICNpbmNsdWRlICJMYXllclJlbmRlcmVyQ2hyb21pdW0uaCIKQEAgLTQxNCw2ICs0
MTUsMTUgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmNvbXBvc2l0ZSgpCiAgICAgc3RhdGljX2Nh
c3Q8Q0NTaW5nbGVUaHJlYWRQcm94eSo+KG1fcHJveHkuZ2V0KCkpLT5jb21wb3NpdGVJbW1lZGlh
dGVseSgpOwogfQogCit2b2lkIENDTGF5ZXJUcmVlSG9zdDo6dHJhbnNmZXJXaGVlbEZsaW5nQW5p
bWF0aW9uKGNvbnN0IEFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorewor
ICAgIC8vIFdlIHRpY2sgYW5pbWF0aW9ucyBpbiBDQ0xheWVyVHJlZUhvc3QgdXNpbmcgY3VycmVu
dFRpbWUoKSwgYnV0IHRoZSBpbXBsIHRocmVhZCB1c2VzIG1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgpLiBSZWJhc2UgaGVyZSBiZWZvcmUgcGFzc2luZyB0aW1lcyBvdXQgdG8gdGhlIGNsaWVu
dC4KKyAgICBkb3VibGUgdGltZVNoaWZ0ID0gY3VycmVudFRpbWUoKSAtIG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpOworICAgIEFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzIHBhcmFtZXRl
cnNXaXRoU2hpZnRlZFRpbWUgPSBwYXJhbWV0ZXJzOworICAgIHBhcmFtZXRlcnNXaXRoU2hpZnRl
ZFRpbWUuc3RhcnRUaW1lICs9IHRpbWVTaGlmdDsKKyAgICBtX2NsaWVudC0+dHJhbnNmZXJXaGVl
bEZsaW5nQW5pbWF0aW9uKHBhcmFtZXRlcnNXaXRoU2hpZnRlZFRpbWUpOworfQorCiBib29sIEND
TGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJzKCkKIHsKICAgICBpZiAoIW1fbGF5ZXJSZW5kZXJl
ckluaXRpYWxpemVkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDg5ZjFiZTMw
N2VkZmM5MTZkNjA5ZTA4NWEzNTUyMjY3NzYyM2VjODcuLjEyYTgzOWUxMDVmMWYyMzBmNDZkOGEx
ZGZmNDIxM2E5ZDhhNzY1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC00Miw2
ICs0Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RydWN0IEFjdGl2ZVdoZWVsRmxp
bmdQYXJhbWV0ZXJzOwogY2xhc3MgQ0NMYXllclRyZWVIb3N0SW1wbDsKIGNsYXNzIENDVGV4dHVy
ZVVwZGF0ZXI7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKQEAgLTU5LDYgKzYwLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUNvbnRleHQoYm9vbCBzdWNjZXNzKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZSgpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVTd2FwQnVmZmVycygpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdHJhbnNmZXJXaGVlbEZsaW5nQW5pbWF0aW9uKGNvbnN0IEFjdGl2ZVdoZWVsRmxpbmdQYXJh
bWV0ZXJzJikgPSAwOwogCiAgICAgLy8gVXNlZCBvbmx5IGluIHRoZSBzaW5nbGUtdGhyZWFkZWQg
cGF0aC4KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGUoKSA9IDA7CkBAIC0xNDMs
NiArMTQ1LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCkgeyBt
X2NsaWVudC0+ZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCk7IH0KICAgICB2b2lkIGRpZENvbXBsZXRl
U3dhcEJ1ZmZlcnMoKSB7IG1fY2xpZW50LT5kaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCk7IH0KICAg
ICB2b2lkIGRlbGV0ZUNvbnRlbnRzVGV4dHVyZXNPbkltcGxUaHJlYWQoVGV4dHVyZUFsbG9jYXRv
ciopOworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlcldoZWVsRmxpbmdBbmltYXRpb24oY29uc3Qg
QWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMmKTsKICAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIHdl
IHNob3VsZCBhYm9ydCB0aGlzIGZyYW1lIGR1ZSB0byBpbml0aWFsaXphdGlvbiBmYWlsdXJlLgog
ICAgIGJvb2wgdXBkYXRlTGF5ZXJzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
SW1wbC5jcHAKaW5kZXggZWJlMDZmNTEwZTk2ZDVkMDdkN2Q3MGY3ZTYzYzU5MzY0NWE2NGQ0NC4u
YmUzMGMyOTcyOTY1YmQ1ZTIyZWVjNjViMjM3ZWMwMGNmMGRhNjhlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKQEAgLTE4MSw2ICsxODEsMTcgQEAgdm9pZCBDQ0xh
eWVyVHJlZUhvc3RJbXBsOjpzZXRBY3RpdmVHZXN0dXJlQW5pbWF0aW9uKFBhc3NPd25QdHI8Q0NB
Y3RpdmVHZXN0dXJlQW4KICAgICAgICAgbV9jbGllbnQtPnNldE5lZWRzUmVkcmF3T25JbXBsVGhy
ZWFkKCk7CiB9CiAKK3ZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2NoZWR1bGVBbmltYXRpb24o
KQoreworICAgIG1fY2xpZW50LT5zZXROZWVkc1JlZHJhd09uSW1wbFRocmVhZCgpOworfQorCit2
b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnRyYW5zZmVyV2hlZWxGbGluZ0FuaW1hdGlvbihjb25z
dCBBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKKworICAgIG1fY2xp
ZW50LT50cmFuc2ZlcldoZWVsRmxpbmdBbmltYXRpb25Ub01haW5UaHJlYWRPbkltcGxUaHJlYWQo
cGFyYW1ldGVycyk7Cit9CisKIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6dHJhY2tEYW1hZ2VG
b3JBbGxTdXJmYWNlcyhDQ0xheWVySW1wbCogcm9vdERyYXdMYXllciwgY29uc3QgQ0NMYXllckxp
c3QmIHJlbmRlclN1cmZhY2VMYXllckxpc3QpCiB7CiAgICAgLy8gRm9yIG5vdywgd2UgdXNlIGRh
bWFnZSB0cmFja2luZyB0byBjb21wdXRlIGEgZ2xvYmFsIHNjaXNzb3IuIFRvIGRvIHRoaXMsIHdl
IG11c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaAppbmRleCAzYmI3ZDNkZTE0
MTM2ZWRiYmM5ZjE5ZWRmODUwNDcyNDNkZmJiYWEzLi41MDU4NjI5MWZkOGRmMzE0NGE1OGQ3Njk3
YmIwNjZiNWQxM2RlOTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCkBA
IC0zNyw2ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RydWN0IEFjdGl2ZVdo
ZWVsRmxpbmdQYXJhbWV0ZXJzOwogY2xhc3MgQ0NBY3RpdmVHZXN0dXJlQW5pbWF0aW9uOwogY2xh
c3MgQ0NDb21wbGV0aW9uRXZlbnQ7CiBjbGFzcyBDQ1BhZ2VTY2FsZUFuaW1hdGlvbjsKQEAgLTU1
LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1JlZHJhd09uSW1w
bFRocmVhZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNDb21taXRPbkltcGxUaHJl
YWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RBbmltYXRpb25FdmVudHNUb01haW5UaHJl
YWRPbkltcGxUaHJlYWQoUGFzc093blB0cjxDQ0FuaW1hdGlvbkV2ZW50c1ZlY3Rvcj4sIGRvdWJs
ZSB3YWxsQ2xvY2tUaW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyV2hlZWxGbGlu
Z0FuaW1hdGlvblRvTWFpblRocmVhZE9uSW1wbFRocmVhZChjb25zdCBBY3RpdmVXaGVlbEZsaW5n
UGFyYW1ldGVycyYpID0gMDsKIH07CiAKIC8vIENDTGF5ZXJUcmVlSG9zdEltcGwgb3ducyB0aGUg
Q0NMYXllckltcGwgdHJlZSBhcyB3ZWxsIGFzIGFzc29jaWF0ZWQgcmVuZGVyaW5nIHN0YXRlCkBA
IC02NSw3ICs2Nyw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5DQ0xheWVyVHJlZUhvc3RJbXBs
KCk7CiAKICAgICAvLyBDQ0lucHV0SGFuZGxlckNsaWVudCBpbXBsZW1lbnRhdGlvbgotICAgIHZp
cnR1YWwgdm9pZCBzZXROZWVkc1JlZHJhdygpOwogICAgIHZpcnR1YWwgQ0NJbnB1dEhhbmRsZXJD
bGllbnQ6OlNjcm9sbFN0YXR1cyBzY3JvbGxCZWdpbihjb25zdCBJbnRQb2ludCYsIENDSW5wdXRI
YW5kbGVyQ2xpZW50OjpTY3JvbGxJbnB1dFR5cGUpOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxC
eShjb25zdCBJbnRTaXplJik7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbEVuZCgpOwpAQCAtNzYs
NiArNzcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb24q
IGFjdGl2ZUdlc3R1cmVBbmltYXRpb24oKSB7IHJldHVybiBtX2FjdGl2ZUdlc3R1cmVBbmltYXRp
b24uZ2V0KCk7IH0KICAgICAvLyBUbyBjbGVhciBhbiBhY3RpdmUgYW5pbWF0aW9uLCBwYXNzIG51
bGxwdHIuCiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZUdlc3R1cmVBbmltYXRpb24oUGFzc093
blB0cjxDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb24+KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVBbmltYXRpb24oKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJXaGVlbEZsaW5nQW5pbWF0
aW9uKGNvbnN0IEFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzJik7CiAKICAgICAvLyBWaXJ0dWFs
IGZvciB0ZXN0aW5nLgogICAgIHZpcnR1YWwgdm9pZCBiZWdpbkNvbW1pdCgpOwpAQCAtMTM1LDYg
KzEzOCw4IEBAIHB1YmxpYzoKICAgICBib29sIG5lZWRzQW5pbWF0ZUxheWVycygpIGNvbnN0IHsg
cmV0dXJuIG1fbmVlZHNBbmltYXRlTGF5ZXJzOyB9CiAgICAgdm9pZCBzZXROZWVkc0FuaW1hdGVM
YXllcnMoKSB7IG1fbmVlZHNBbmltYXRlTGF5ZXJzID0gdHJ1ZTsgfQogCisgICAgdm9pZCBzZXRO
ZWVkc1JlZHJhdygpOworCiBwcm90ZWN0ZWQ6CiAgICAgQ0NMYXllclRyZWVIb3N0SW1wbChjb25z
dCBDQ1NldHRpbmdzJiwgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCopOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRo
cmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1NpbmdsZVRocmVhZFByb3h5LmgKaW5kZXggZWJiZDk2ZTJjMzg4MjIxODlkMmI5MGIyMWU2
ZDk3NmEzNjdjMGU5Yy4uZjgzMGE4ZjcyOGI4MmVlYWZlNTFkYjY2N2I0NjMzZjA0OTA5ZDhjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTaW5nbGVUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaApAQCAtNjcsNiArNjcsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzUmVkcmF3T25JbXBsVGhyZWFkKCkgeyBt
X2xheWVyVHJlZUhvc3QtPnNldE5lZWRzQ29tbWl0KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0
TmVlZHNDb21taXRPbkltcGxUaHJlYWQoKSB7IG1fbGF5ZXJUcmVlSG9zdC0+c2V0TmVlZHNDb21t
aXQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBwb3N0QW5pbWF0aW9uRXZlbnRzVG9NYWluVGhyZWFk
T25JbXBsVGhyZWFkKFBhc3NPd25QdHI8Q0NBbmltYXRpb25FdmVudHNWZWN0b3I+LCBkb3VibGUg
d2FsbENsb2NrVGltZSk7CisgICAgdm9pZCB0cmFuc2ZlcldoZWVsRmxpbmdBbmltYXRpb25Ub01h
aW5UaHJlYWRPbkltcGxUaHJlYWQoY29uc3QgQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMmKSB7
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICAvLyBDYWxsZWQgYnkgdGhlIGxlZ2FjeSBw
YXRoIHdoZXJlIFJlbmRlcldpZGdldCBkb2VzIHRoZSBzY2hlZHVsaW5nLgogICAgIHZvaWQgY29t
cG9zaXRlSW1tZWRpYXRlbHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXggMzI3
ZDliZTBiMTIwZmI5ZWZkZWZmODA1MzE4ODA1MzMwNmFiZGE0Yi4uODNkNWI5ZmIwOWNiY2ExYTdi
NWE2YTk2ODI5OGFlYmNmZTkzNzk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAg
LTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgImNjL0NDVGhyZWFkUHJveHkuaCIKIAorI2luY2x1
ZGUgIkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0M0QuaCIKICNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCiAjaW5jbHVkZSAiY2MvQ0NEZWxheUJh
c2VkVGltZVNvdXJjZS5oIgpAQCAtMjk2LDYgKzI5NywxOSBAQCB2b2lkIENDVGhyZWFkUHJveHk6
OnBvc3RBbmltYXRpb25FdmVudHNUb01haW5UaHJlYWRPbkltcGxUaHJlYWQoUGFzc093blB0cjxD
Q0FuaQogICAgIG1fbWFpblRocmVhZFByb3h5LT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2so
dGhpcywgJkNDVGhyZWFkUHJveHk6OnNldEFuaW1hdGlvbkV2ZW50cywgZXZlbnRzLCB3YWxsQ2xv
Y2tUaW1lKSk7CiB9CiAKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6dHJhbnNmZXJXaGVlbEZsaW5nQW5p
bWF0aW9uVG9NYWluVGhyZWFkT25JbXBsVGhyZWFkKGNvbnN0IEFjdGl2ZVdoZWVsRmxpbmdQYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAgIEFTU0VSVChpc0ltcGxUaHJlYWQoKSk7CisgICAg
VFJBQ0VfRVZFTlRfSU5TVEFOVDAoImNjIiwgIkNDVGhyZWFkUHJveHk6OnRyYW5zZmVyV2hlZWxG
bGluZ0FuaW1hdGlvblRvTWFpblRocmVhZE9uSW1wbFRocmVhZCIpOworICAgIG1fbWFpblRocmVh
ZFByb3h5LT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6
OnRyYW5zZmVyV2hlZWxGbGluZ0FuaW1hdGlvbiwgcGFyYW1ldGVycykpOworfQorCit2b2lkIEND
VGhyZWFkUHJveHk6OnRyYW5zZmVyV2hlZWxGbGluZ0FuaW1hdGlvbihBY3RpdmVXaGVlbEZsaW5n
UGFyYW1ldGVycyBwYXJhbWV0ZXJzKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cisg
ICAgbV9sYXllclRyZWVIb3N0LT50cmFuc2ZlcldoZWVsRmxpbmdBbmltYXRpb24ocGFyYW1ldGVy
cyk7Cit9CisKIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXcoKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0zOTQsNyArNDA4LDcgQEAgdm9pZCBDQ1RocmVhZFBy
b3h5OjpzY2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1lKCkKICAgICBUUkFDRV9FVkVOVDAoImNjIiwg
IkNDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUiKTsKICAgICBBU1NFUlQo
IW1fcGVuZGluZ0JlZ2luRnJhbWVSZXF1ZXN0KTsKICAgICBtX3BlbmRpbmdCZWdpbkZyYW1lUmVx
dWVzdCA9IGFkb3B0UHRyKG5ldyBCZWdpbkZyYW1lQW5kQ29tbWl0U3RhdGUoKSk7Ci0gICAgbV9w
ZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3QtPmZyYW1lQmVnaW5UaW1lID0gMDsKKyAgICBtX3BlbmRp
bmdCZWdpbkZyYW1lUmVxdWVzdC0+ZnJhbWVCZWdpblRpbWUgPSBjdXJyZW50VGltZSgpOwogICAg
IG1fcGVuZGluZ0JlZ2luRnJhbWVSZXF1ZXN0LT5zY3JvbGxJbmZvID0gbV9sYXllclRyZWVIb3N0
SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogCiAgICAgbV9tYWluVGhyZWFkUHJveHktPnBv
c3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFt
ZSkpOwpAQCAtNTUwLDcgKzU2NCw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0
aW9uRHJhd0FuZFN3YXAoKQogICAgIGRvdWJsZSBtb25vdG9uaWNUaW1lID0gbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCk7CiAgICAgZG91YmxlIHdhbGxDbG9ja1RpbWUgPSBjdXJyZW50VGlt
ZSgpOwogCi0gICAgbV9pbnB1dEhhbmRsZXJPbkltcGxUaHJlYWQtPndpbGxEcmF3KG1vbm90b25p
Y1RpbWUpOworICAgIG1faW5wdXRIYW5kbGVyT25JbXBsVGhyZWFkLT5hbmltYXRlKG1vbm90b25p
Y1RpbWUpOwogICAgIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmFuaW1hdGUobW9ub3RvbmljVGltZSwg
d2FsbENsb2NrVGltZSk7CiAgICAgbV9sYXllclRyZWVIb3N0SW1wbC0+ZHJhd0xheWVycygpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggOWU1MjRhNzYzZTI4NTBmZDIwOWMxM2UzNTI2
MTJlYzVjYTMwNDllMS4uZDk4YTgwZmJlYzkyZGFjM2E0ODVmOTQ0NTkwM2NiZTZlYjFiZjI3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtNzYsNiArNzYsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHNldE5lZWRzUmVkcmF3T25JbXBsVGhyZWFkKCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldE5lZWRzQ29tbWl0T25JbXBsVGhyZWFkKCk7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RB
bmltYXRpb25FdmVudHNUb01haW5UaHJlYWRPbkltcGxUaHJlYWQoUGFzc093blB0cjxDQ0FuaW1h
dGlvbkV2ZW50c1ZlY3Rvcj4sIGRvdWJsZSB3YWxsQ2xvY2tUaW1lKTsKKyAgICB2aXJ0dWFsIHZv
aWQgdHJhbnNmZXJXaGVlbEZsaW5nQW5pbWF0aW9uVG9NYWluVGhyZWFkT25JbXBsVGhyZWFkKGNv
bnN0IEFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzJik7CiAKICAgICAvLyBDQ1NjaGVkdWxlckNs
aWVudCBpbXBsZW1lbnRhdGlvbgogICAgIHZpcnR1YWwgYm9vbCBjYW5EcmF3KCk7CkBAIC0xMDUs
NiArMTA2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEFuaW1hdGlvbkV2ZW50cyhQYXNzT3du
UHRyPENDQW5pbWF0aW9uRXZlbnRzVmVjdG9yPiwgZG91YmxlIHdhbGxDbG9ja1RpbWUpOwogICAg
IHZvaWQgYmVnaW5Db250ZXh0UmVjcmVhdGlvbigpOwogICAgIHZvaWQgdHJ5VG9SZWNyZWF0ZUNv
bnRleHQoKTsKKyAgICB2b2lkIHRyYW5zZmVyV2hlZWxGbGluZ0FuaW1hdGlvbihBY3RpdmVXaGVl
bEZsaW5nUGFyYW1ldGVycyk7CiAKICAgICAvLyBDYWxsZWQgb24gaW1wbCB0aHJlYWQKICAgICBz
dHJ1Y3QgUmVhZGJhY2tSZXF1ZXN0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcAppbmRleCBiZjhm
Zjk0MWQ0ZWZlYjZkMDljODg4ODVlNzkwZjdkMjBiZDA4OTAwLi43ZGUzYTE3N2MwYjM0NmUzOTcx
MDFjNmUwMWU1MDA0ZjM4OWQxMWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwCkBAIC0yNyw2
ICsyNyw3IEBACiAKICNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5oIgog
CisjaW5jbHVkZSAiQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldC5oIgogI2luY2x1ZGUgIlRvdWNoRmxpbmdQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZS5oIgogI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbXBsLmgiCkBAIC02Nyw2ICs2
OCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fdGFyZ2V0LT5zY3JvbGxCeShzY3JvbGxEZWx0YSk7
CiAgICAgfQogCisgICAgdmlydHVhbCBJbnRTaXplIGN1bXVsYXRpdmVTY3JvbGwoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY3VydmUtPmN1bXVsYXRpdmVTY3JvbGwoKTsKKyAgICB9
CisKIHByaXZhdGU6CiAgICAgUGxhdGZvcm1HZXN0dXJlVG9DQ0dlc3R1cmVBZGFwdGVyKFBhc3NP
d25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGN1cnZlKQogICAgICAgICA6IG1fY3VydmUoY3Vy
dmUpCkBAIC0xMTgsNyArMTI0LDcgQEAgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6Oldl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsKENDSW5wdXRIYW5kbGVyQ2xpZW4KICAgICAsIG1f
ZXhwZWN0U2Nyb2xsVXBkYXRlRW5kKGZhbHNlKQogICAgICwgbV9leHBlY3RQaW5jaFVwZGF0ZUVu
ZChmYWxzZSkKICNlbmRpZgotICAgICwgbV9zY3JvbGxTdGFydGVkKGZhbHNlKQorICAgICwgbV9n
ZXN0dXJlU2Nyb2xsU3RhcnRlZChmYWxzZSkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBs
VGhyZWFkKCkpOwogCkBAIC0xNTQsMjQgKzE2MCwzNyBAQCB2b2lkIFdlYkNvbXBvc2l0b3JJbnB1
dEhhbmRsZXJJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGV2ZW50
KQogICAgIEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fY2xp
ZW50KTsKIAorICAgIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpFdmVudERpc3Bvc2l0
aW9uIGRpc3Bvc2l0aW9uID0gaGFuZGxlSW5wdXRFdmVudEludGVybmFsKGV2ZW50KTsKKyAgICBz
d2l0Y2ggKGRpc3Bvc2l0aW9uKSB7CisgICAgY2FzZSBEaWRIYW5kbGU6CisgICAgICAgIG1fY2xp
ZW50LT5kaWRIYW5kbGVJbnB1dEV2ZW50KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGlk
Tm90SGFuZGxlOgorICAgICAgICBtX2NsaWVudC0+ZGlkTm90SGFuZGxlSW5wdXRFdmVudCh0cnVl
IC8qIHNlbmRUb1dpZGdldCAqLyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRHJvcEV2ZW50
OgorICAgICAgICBtX2NsaWVudC0+ZGlkTm90SGFuZGxlSW5wdXRFdmVudChmYWxzZSAvKiBzZW5k
VG9XaWRnZXQgKi8pOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK1dlYkNvbXBvc2l0b3JJ
bnB1dEhhbmRsZXJJbXBsOjpFdmVudERpc3Bvc2l0aW9uIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRs
ZXJJbXBsOjpoYW5kbGVJbnB1dEV2ZW50SW50ZXJuYWwoY29uc3QgV2ViSW5wdXRFdmVudCYgZXZl
bnQpCit7CiAgICAgaWYgKGV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6TW91c2VXaGVlbCkg
ewogICAgICAgICBjb25zdCBXZWJNb3VzZVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQgPSAqc3RhdGlj
X2Nhc3Q8Y29uc3QgV2ViTW91c2VXaGVlbEV2ZW50Kj4oJmV2ZW50KTsKICAgICAgICAgQ0NJbnB1
dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXR1cyBzY3JvbGxTdGF0dXMgPSBtX2lucHV0SGFuZGxl
ckNsaWVudC0+c2Nyb2xsQmVnaW4oSW50UG9pbnQod2hlZWxFdmVudC54LCB3aGVlbEV2ZW50Lnkp
LCBDQ0lucHV0SGFuZGxlckNsaWVudDo6V2hlZWwpOwogICAgICAgICBzd2l0Y2ggKHNjcm9sbFN0
YXR1cykgewogICAgICAgICBjYXNlIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGFydGVk
OgotICAgICAgICAgICAgLy8gRklYTUU6IHVzZSBXaGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3Vy
dmUgaGVyZSB0byBnZXQgc21vb3RoIHdoZWVsIHNjcm9sbGluZz8KICAgICAgICAgICAgIG1faW5w
dXRIYW5kbGVyQ2xpZW50LT5zY3JvbGxCeShJbnRTaXplKC13aGVlbEV2ZW50LmRlbHRhWCwgLXdo
ZWVsRXZlbnQuZGVsdGFZKSk7CiAgICAgICAgICAgICBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Ny
b2xsRW5kKCk7Ci0gICAgICAgICAgICBtX2NsaWVudC0+ZGlkSGFuZGxlSW5wdXRFdmVudCgpOwot
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIERpZEhhbmRsZTsKICAgICAg
ICAgY2FzZSBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsSWdub3JlZDoKLSAgICAgICAgICAg
IG1fY2xpZW50LT5kaWROb3RIYW5kbGVJbnB1dEV2ZW50KGZhbHNlIC8qIHNlbmRUb1dpZGdldCAq
Lyk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gRHJvcEV2ZW50Owog
ICAgICAgICBjYXNlIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxGYWlsZWQ6Ci0gICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiBEaWROb3RIYW5kbGU7CiAgICAgICAgIH0K
ICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9s
bEJlZ2luKSB7Ci0gICAgICAgIEFTU0VSVCghbV9zY3JvbGxTdGFydGVkKTsKKyAgICAgICAgQVNT
RVJUKCFtX2dlc3R1cmVTY3JvbGxTdGFydGVkKTsKICAgICAgICAgQVNTRVJUKCFtX2V4cGVjdFNj
cm9sbFVwZGF0ZUVuZCk7CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBtX2V4cGVjdFNjcm9sbFVw
ZGF0ZUVuZCA9IHRydWU7CkBAIC0xODAsOTQgKzE5OSw4MiBAQCB2b2lkIFdlYkNvbXBvc2l0b3JJ
bnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGV2
ZW50KQogICAgICAgICBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVzIHNjcm9sbFN0
YXR1cyA9IG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY3JvbGxCZWdpbihJbnRQb2ludChnZXN0dXJl
RXZlbnQueCwgZ2VzdHVyZUV2ZW50LnkpLCBDQ0lucHV0SGFuZGxlckNsaWVudDo6R2VzdHVyZSk7
CiAgICAgICAgIHN3aXRjaCAoc2Nyb2xsU3RhdHVzKSB7CiAgICAgICAgIGNhc2UgQ0NJbnB1dEhh
bmRsZXJDbGllbnQ6OlNjcm9sbFN0YXJ0ZWQ6Ci0gICAgICAgICAgICBtX3Njcm9sbFN0YXJ0ZWQg
PSB0cnVlOwotICAgICAgICAgICAgbV9jbGllbnQtPmRpZEhhbmRsZUlucHV0RXZlbnQoKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY2FzZSBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Ny
b2xsSWdub3JlZDoKLSAgICAgICAgICAgIG1fY2xpZW50LT5kaWROb3RIYW5kbGVJbnB1dEV2ZW50
KGZhbHNlIC8qIHNlbmRUb1dpZGdldCAqLyk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICBtX2dlc3R1cmVTY3JvbGxTdGFydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBE
aWRIYW5kbGU7CiAgICAgICAgIGNhc2UgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbEZhaWxl
ZDoKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJuIERpZE5vdEhhbmRsZTsK
KyAgICAgICAgY2FzZSBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsSWdub3JlZDoKKyAgICAg
ICAgICAgIHJldHVybiBEcm9wRXZlbnQ7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKGV2ZW50
LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZSkgewogICAgICAgICBB
U1NFUlQobV9leHBlY3RTY3JvbGxVcGRhdGVFbmQpOwotICAgICAgICBpZiAobV9zY3JvbGxTdGFy
dGVkKSB7Ci0gICAgICAgICAgICBjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCA9
ICpzdGF0aWNfY2FzdDxjb25zdCBXZWJHZXN0dXJlRXZlbnQqPigmZXZlbnQpOwotICAgICAgICAg
ICAgbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEJ5KEludFNpemUoLWdlc3R1cmVFdmVudC5k
ZWx0YVgsIC1nZXN0dXJlRXZlbnQuZGVsdGFZKSk7Ci0gICAgICAgICAgICBtX2NsaWVudC0+ZGlk
SGFuZGxlSW5wdXRFdmVudCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisKKyAg
ICAgICAgaWYgKCFtX2dlc3R1cmVTY3JvbGxTdGFydGVkKQorICAgICAgICAgICAgcmV0dXJuIERp
ZE5vdEhhbmRsZTsKKworICAgICAgICBjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVu
dCA9ICpzdGF0aWNfY2FzdDxjb25zdCBXZWJHZXN0dXJlRXZlbnQqPigmZXZlbnQpOworICAgICAg
ICBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsQnkoSW50U2l6ZSgtZ2VzdHVyZUV2ZW50LmRl
bHRhWCwgLWdlc3R1cmVFdmVudC5kZWx0YVkpKTsKKyAgICAgICAgcmV0dXJuIERpZEhhbmRsZTsK
ICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9s
bEVuZCkgewogICAgICAgICBBU1NFUlQobV9leHBlY3RTY3JvbGxVcGRhdGVFbmQpOwogI2lmbmRl
ZiBOREVCVUcKICAgICAgICAgbV9leHBlY3RTY3JvbGxVcGRhdGVFbmQgPSBmYWxzZTsKICNlbmRp
ZgotICAgICAgICBpZiAobV9zY3JvbGxTdGFydGVkKSB7Ci0gICAgICAgICAgICBtX2lucHV0SGFu
ZGxlckNsaWVudC0+c2Nyb2xsRW5kKCk7Ci0gICAgICAgICAgICBtX3Njcm9sbFN0YXJ0ZWQgPSBm
YWxzZTsKKyAgICAgICAgaWYgKCFtX2dlc3R1cmVTY3JvbGxTdGFydGVkKQorICAgICAgICAgICAg
cmV0dXJuIERpZE5vdEhhbmRsZTsKIAotICAgICAgICAgICAgY29uc3QgV2ViR2VzdHVyZUV2ZW50
JiBnZXN0dXJlRXZlbnQgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViR2VzdHVyZUV2ZW50Kj4oJmV2
ZW50KTsKLSAgICAgICAgICAgIGlmIChoYW5kbGVHZXN0dXJlRmxpbmcoZ2VzdHVyZUV2ZW50KSkK
LSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgbV9pbnB1dEhhbmRs
ZXJDbGllbnQtPnNjcm9sbEVuZCgpOworICAgICAgICBtX2dlc3R1cmVTY3JvbGxTdGFydGVkID0g
ZmFsc2U7CisgICAgICAgIHJldHVybiBEaWRIYW5kbGU7CiAgICAgfSBlbHNlIGlmIChldmVudC50
eXBlID09IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luKSB7CiAgICAgICAgIEFTU0VS
VCghbV9leHBlY3RQaW5jaFVwZGF0ZUVuZCk7CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBtX2V4
cGVjdFBpbmNoVXBkYXRlRW5kID0gdHJ1ZTsKICNlbmRpZgogICAgICAgICBtX2lucHV0SGFuZGxl
ckNsaWVudC0+cGluY2hHZXN0dXJlQmVnaW4oKTsKLSAgICAgICAgbV9jbGllbnQtPmRpZEhhbmRs
ZUlucHV0RXZlbnQoKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gRGlkSGFuZGxl
OwogICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGlu
Y2hFbmQpIHsKICAgICAgICAgQVNTRVJUKG1fZXhwZWN0UGluY2hVcGRhdGVFbmQpOwogI2lmbmRl
ZiBOREVCVUcKICAgICAgICAgbV9leHBlY3RQaW5jaFVwZGF0ZUVuZCA9IGZhbHNlOwogI2VuZGlm
CiAgICAgICAgIG1faW5wdXRIYW5kbGVyQ2xpZW50LT5waW5jaEdlc3R1cmVFbmQoKTsKLSAgICAg
ICAgbV9jbGllbnQtPmRpZEhhbmRsZUlucHV0RXZlbnQoKTsKLSAgICAgICAgcmV0dXJuOworICAg
ICAgICByZXR1cm4gRGlkSGFuZGxlOwogICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PSBXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlUGluY2hVcGRhdGUpIHsKICAgICAgICAgQVNTRVJUKG1fZXhwZWN0
UGluY2hVcGRhdGVFbmQpOwogICAgICAgICBjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGdlc3R1cmVF
dmVudCA9ICpzdGF0aWNfY2FzdDxjb25zdCBXZWJHZXN0dXJlRXZlbnQqPigmZXZlbnQpOwogICAg
ICAgICBtX2lucHV0SGFuZGxlckNsaWVudC0+cGluY2hHZXN0dXJlVXBkYXRlKGdlc3R1cmVFdmVu
dC5kZWx0YVgsIEludFBvaW50KGdlc3R1cmVFdmVudC54LCBnZXN0dXJlRXZlbnQueSkpOwotICAg
ICAgICBtX2NsaWVudC0+ZGlkSGFuZGxlSW5wdXRFdmVudCgpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfSBlbHNlIGlmIChldmVudC50eXBlID09IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBEb3du
KSB7Ci0gICAgICAgIGlmIChtX2lucHV0SGFuZGxlckNsaWVudC0+YWN0aXZlR2VzdHVyZUFuaW1h
dGlvbigpKSB7Ci0gICAgICAgICAgICBtX2lucHV0SGFuZGxlckNsaWVudC0+c2V0QWN0aXZlR2Vz
dHVyZUFuaW1hdGlvbihudWxscHRyKTsKLSAgICAgICAgICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJ
bnB1dEV2ZW50KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIERpZEhhbmRsZTsKKyAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVu
dDo6R2VzdHVyZUZsaW5nU3RhcnQpIHsKKyAgICAgICAgY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBn
ZXN0dXJlRXZlbnQgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViR2VzdHVyZUV2ZW50Kj4oJmV2ZW50
KTsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUdlc3R1cmVGbGluZyhnZXN0dXJlRXZlbnQpOworICAg
IH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdDYW5j
ZWwpIHsKKyAgICAgICAgaWYgKGNhbmNlbEN1cnJlbnRGbGluZygpKQorICAgICAgICAgICAgcmV0
dXJuIERpZEhhbmRsZTsKICAgICB9CiAKLSAgICBtX2NsaWVudC0+ZGlkTm90SGFuZGxlSW5wdXRF
dmVudCh0cnVlIC8qIHNlbmRUb1dpZGdldCAqLyk7CisgICAgcmV0dXJuIERpZE5vdEhhbmRsZTsK
IH0KIAotYm9vbCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aGFuZGxlR2VzdHVyZUZs
aW5nKGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQorV2ViQ29tcG9zaXRvcklu
cHV0SGFuZGxlckltcGw6OkV2ZW50RGlzcG9zaXRpb24gV2ViQ29tcG9zaXRvcklucHV0SGFuZGxl
ckltcGw6OmhhbmRsZUdlc3R1cmVGbGluZyhjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGdlc3R1cmVF
dmVudCkKIHsKLSAgICAvLyBHZXN0dXJlU2Nyb2xsRW5kIHdpdGggbm9uLXplcm8gdmVsb2NpdHkg
KGRlbHRhWC9ZKSBzaWduYWxzIHN0YXJ0IG9mIEZsaW5nLgotICAgIGlmICghZ2VzdHVyZUV2ZW50
LmRlbHRhWCAmJiAhZ2VzdHVyZUV2ZW50LmRlbHRhWSkgewotICAgICAgICBtX2NsaWVudC0+ZGlk
SGFuZGxlSW5wdXRFdmVudCgpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KICAgICBD
Q0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVzIHNjcm9sbFN0YXR1cyA9IG1faW5wdXRI
YW5kbGVyQ2xpZW50LT5zY3JvbGxCZWdpbihJbnRQb2ludChnZXN0dXJlRXZlbnQueCwgZ2VzdHVy
ZUV2ZW50LnkpLCBDQ0lucHV0SGFuZGxlckNsaWVudDo6R2VzdHVyZSk7CiAgICAgc3dpdGNoIChz
Y3JvbGxTdGF0dXMpIHsKICAgICBjYXNlIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGFy
dGVkOiB7CiAgICAgICAgIE93blB0cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gZmxpbmdDdXJ2ZSA9
IFRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKEZsb2F0UG9pbnQoZ2VzdHVy
ZUV2ZW50LmRlbHRhWCwgZ2VzdHVyZUV2ZW50LmRlbHRhWSkpOwotICAgICAgICBPd25QdHI8Q0NB
Y3RpdmVHZXN0dXJlQW5pbWF0aW9uPiBhbmltYXRpb24gPSBDQ0FjdGl2ZUdlc3R1cmVBbmltYXRp
b246OmNyZWF0ZShQbGF0Zm9ybUdlc3R1cmVUb0NDR2VzdHVyZUFkYXB0ZXI6OmNyZWF0ZShmbGlu
Z0N1cnZlLnJlbGVhc2UoKSksIHRoaXMpOwotICAgICAgICBtX2lucHV0SGFuZGxlckNsaWVudC0+
c2V0QWN0aXZlR2VzdHVyZUFuaW1hdGlvbihhbmltYXRpb24ucmVsZWFzZSgpKTsKLSAgICAgICAg
bV9jbGllbnQtPmRpZEhhbmRsZUlucHV0RXZlbnQoKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIG1fd2hlZWxGbGluZ0FuaW1hdGlvbiA9IENDQWN0aXZlR2VzdHVyZUFuaW1hdGlvbjo6
Y3JlYXRlKFBsYXRmb3JtR2VzdHVyZVRvQ0NHZXN0dXJlQWRhcHRlcjo6Y3JlYXRlKGZsaW5nQ3Vy
dmUucmVsZWFzZSgpKSwgdGhpcyk7CisgICAgICAgIG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMuZGVs
dGEgPSBGbG9hdFNpemUoZ2VzdHVyZUV2ZW50LmRlbHRhWCwgZ2VzdHVyZUV2ZW50LmRlbHRhWSk7
CisgICAgICAgIG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMucG9pbnQgPSBJbnRQb2ludChnZXN0dXJl
RXZlbnQueCwgZ2VzdHVyZUV2ZW50LnkpOworICAgICAgICBtX3doZWVsRmxpbmdQYXJhbWV0ZXJz
Lmdsb2JhbFBvaW50ID0gSW50UG9pbnQoZ2VzdHVyZUV2ZW50Lmdsb2JhbFgsIGdlc3R1cmVFdmVu
dC5nbG9iYWxZKTsKKyAgICAgICAgbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjaGVkdWxlQW5pbWF0
aW9uKCk7CisgICAgICAgIHJldHVybiBEaWRIYW5kbGU7CiAgICAgfQotICAgIGNhc2UgQ0NJbnB1
dEhhbmRsZXJDbGllbnQ6OlNjcm9sbElnbm9yZWQ6Ci0gICAgICAgIG1fY2xpZW50LT5kaWROb3RI
YW5kbGVJbnB1dEV2ZW50KGZhbHNlIC8qIHNlbmRUb1dpZGdldCAqLyk7Ci0gICAgICAgIHJldHVy
biB0cnVlOwogICAgIGNhc2UgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbEZhaWxlZDoKLSAg
ICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBEaWROb3RIYW5kbGU7CisgICAgY2FzZSBDQ0lu
cHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsSWdub3JlZDoKKyAgICAgICAgcmV0dXJuIERyb3BFdmVu
dDsKICAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIERpZE5vdEhhbmRsZTsK
IH0KIAogaW50IFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjppZGVudGlmaWVyKCkgY29u
c3QKQEAgLTI3NiwxNCArMjgzLDU2IEBAIGludCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1w
bDo6aWRlbnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1faWRlbnRpZmllcjsKIH0KIAotdm9p
ZCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6d2lsbERyYXcoZG91YmxlIG1vbm90b25p
Y1RpbWUpCit2b2lkIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjphbmltYXRlKGRvdWJs
ZSBtb25vdG9uaWNUaW1lKQogeworICAgIGlmICghbV93aGVlbEZsaW5nQW5pbWF0aW9uKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAobV93aGVlbEZsaW5nQW5pbWF0aW9uLT5hbmltYXRlKG1v
bm90b25pY1RpbWUpKQorICAgICAgICBtX2lucHV0SGFuZGxlckNsaWVudC0+c2NoZWR1bGVBbmlt
YXRpb24oKTsKK30KKworYm9vbCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6Y2FuY2Vs
Q3VycmVudEZsaW5nKCkKK3sKKyAgICBib29sIGhhZEZsaW5nQW5pbWF0aW9uID0gbV93aGVlbEZs
aW5nQW5pbWF0aW9uOworICAgIG1fd2hlZWxGbGluZ0FuaW1hdGlvbi5jbGVhcigpOworICAgIHJl
dHVybiBoYWRGbGluZ0FuaW1hdGlvbjsKIH0KIAogdm9pZCBXZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVySW1wbDo6c2Nyb2xsQnkoY29uc3QgSW50UG9pbnQmIGluY3JlbWVudCkKIHsKLSAgICBpZiAo
bV9pbnB1dEhhbmRsZXJDbGllbnQpCi0gICAgICAgIG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY3Jv
bGxCeSh0b1NpemUoaW5jcmVtZW50KSk7CisgICAgaWYgKGluY3JlbWVudCA9PSBJbnRQb2ludDo6
emVybygpKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJNb3VzZVdoZWVsRXZlbnQgc3ludGhl
dGljV2hlZWw7CisgICAgc3ludGhldGljV2hlZWwudHlwZSA9IFdlYklucHV0RXZlbnQ6Ok1vdXNl
V2hlZWw7CisgICAgc3ludGhldGljV2hlZWwuZGVsdGFYID0gaW5jcmVtZW50LngoKTsKKyAgICBz
eW50aGV0aWNXaGVlbC5kZWx0YVkgPSBpbmNyZW1lbnQueSgpOworICAgIHN5bnRoZXRpY1doZWVs
Lmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMgPSB0cnVlOworICAgIHN5bnRoZXRpY1doZWVsLngg
PSBtX3doZWVsRmxpbmdQYXJhbWV0ZXJzLnBvaW50LngoKTsKKyAgICBzeW50aGV0aWNXaGVlbC55
ID0gbV93aGVlbEZsaW5nUGFyYW1ldGVycy5wb2ludC55KCk7CisgICAgc3ludGhldGljV2hlZWwu
Z2xvYmFsWD0gbV93aGVlbEZsaW5nUGFyYW1ldGVycy5nbG9iYWxQb2ludC54KCk7CisgICAgc3lu
dGhldGljV2hlZWwuZ2xvYmFsWSA9IG1fd2hlZWxGbGluZ1BhcmFtZXRlcnMuZ2xvYmFsUG9pbnQu
eSgpOworICAgIHN5bnRoZXRpY1doZWVsLm1vZGlmaWVycyA9IG1fd2hlZWxGbGluZ1BhcmFtZXRl
cnMubW9kaWZpZXJzOworCisgICAgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OkV2ZW50
RGlzcG9zaXRpb24gZGlzcG9zaXRpb24gPSBoYW5kbGVJbnB1dEV2ZW50SW50ZXJuYWwoc3ludGhl
dGljV2hlZWwpOworICAgIHN3aXRjaCAoZGlzcG9zaXRpb24pIHsKKyAgICBjYXNlIERpZEhhbmRs
ZToKKyAgICBjYXNlIERyb3BFdmVudDoKKyAgICAgICAgYnJlYWs7IAorICAgIGNhc2UgRGlkTm90
SGFuZGxlOgorICAgICAgICAvLyBJZiB3ZSBnb3QgYSBEaWROb3RIYW5kbGUsIHRoYXQgbWVhbnMg
d2UgbmVlZCB0byBkZWxpdmVyIHdoZWVscyBvbiB0aGUgbWFpbiB0aHJlYWQuCisgICAgICAgIC8v
IEluIHRoaXMgY2FzZSB3ZSBuZWVkIHRvIHNjaGVkdWxlIGEgY29tbWl0IGFuZCB0cmFuc2ZlciB0
aGUgZmxpbmcgY3VydmUgb3ZlciB0byB0aGUgbWFpbgorICAgICAgICAvLyB0aHJlYWQgYW5kIHJ1
biB0aGUgcmVzdCBvZiB0aGUgd2hlZWxzIGZyb20gdGhlcmUuCisgICAgICAgIC8vIFRoaXMgY2Fu
IGhhcHBlbiB3aGVuIGZsaW5naW5nIGEgcGFnZSB0aGF0IGNvbnRhaW5zIGEgc2Nyb2xsYWJsZSBz
dWJhcmVhIHRoYXQgd2UgY2FuJ3QKKyAgICAgICAgLy8gc2Nyb2xsIG9uIHRoZSB0aHJlYWQgaWYg
dGhlIGZsaW5nIHN0YXJ0cyBvdXRzaWRlIHRoZSBzdWJhcmVhIGJ1dCB0aGVuIGlzIGZsdW5nICJ1
bmRlciIgdGhlCisgICAgICAgIC8vIHBvaW50ZXIuCisgICAgICAgIG1fd2hlZWxGbGluZ1BhcmFt
ZXRlcnMuc3RhcnRUaW1lID0gbV93aGVlbEZsaW5nQW5pbWF0aW9uLT5zdGFydFRpbWUoKTsKKyAg
ICAgICAgbV93aGVlbEZsaW5nUGFyYW1ldGVycy5jdW11bGF0aXZlU2Nyb2xsID0gbV93aGVlbEZs
aW5nQW5pbWF0aW9uLT5jdW11bGF0aXZlU2Nyb2xsKCk7CisgICAgICAgIG1faW5wdXRIYW5kbGVy
Q2xpZW50LT50cmFuc2ZlcldoZWVsRmxpbmdBbmltYXRpb24obV93aGVlbEZsaW5nUGFyYW1ldGVy
cyk7CisgICAgICAgIGNhbmNlbEN1cnJlbnRGbGluZygpOworICAgICAgICBicmVhazsKKyAgICB9
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBv
c2l0b3JJbnB1dEhhbmRsZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5oCmluZGV4IDgyMzkwYzY0OTA5MmEzOTJlMTc1MWUw
NDE0ZDVkMWIxYjQ1ZWY0MGEuLjQ3NjAxZmJmMTk5N2IxZGI5ZmRmNDY1YjJiNmQ2NDJkZTgyM2I4
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJ
bnB1dEhhbmRsZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGwuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBXZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbF9oCiAjZGVmaW5lIFdlYkNvbXBvc2l0b3JJbnB1dEhh
bmRsZXJJbXBsX2gKIAorI2luY2x1ZGUgIkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzLmgiCiAj
aW5jbHVkZSAiV2ViQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbnB1dEhh
bmRsZXIuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50LmgiCkBAIC00MCw2ICs0MSw3IEBAIGNs
YXNzIE11dGV4OwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBJbnRQb2ludDsKIGNs
YXNzIENDR2VzdHVyZUN1cnZlVGFyZ2V0OwogY2xhc3MgQ0NJbnB1dEhhbmRsZXJDbGllbnQ7CiBj
bGFzcyBDQ1RocmVhZDsKQEAgLTY0LDcgKzY2LDcgQEAgcHVibGljOgogCiAgICAgLy8gV2ViQ29y
ZTo6Q0NJbnB1dEhhbmRsZXIgaW1wbGVtZW50YXRpb24KICAgICB2aXJ0dWFsIGludCBpZGVudGlm
aWVyKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEcmF3KGRvdWJsZSBtb25vdG9uaWNU
aW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShkb3VibGUgbW9ub3RvbmljVGltZSk7CiAK
ICAgICAvLyBXZWJDb3JlOjpDQ0dlc3R1cmVDdXJ2ZVRhcmdldCBpbXBsZW1lbnRhdGlvbi4KICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsQnkoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKQEAgLTcy
LDcgKzc0LDE3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGwoV2ViQ29yZTo6Q0NJbnB1dEhhbmRsZXJDbGllbnQqKTsKIAotICAg
IGJvb2wgaGFuZGxlR2VzdHVyZUZsaW5nKGNvbnN0IFdlYkdlc3R1cmVFdmVudCYpOworICAgIGVu
dW0gRXZlbnREaXNwb3NpdGlvbiB7IERpZEhhbmRsZSwgRGlkTm90SGFuZGxlLCBEcm9wRXZlbnQg
fTsKKyAgICBFdmVudERpc3Bvc2l0aW9uIGhhbmRsZUlucHV0RXZlbnRJbnRlcm5hbChjb25zdCBX
ZWJJbnB1dEV2ZW50Jik7CisKKyAgICBFdmVudERpc3Bvc2l0aW9uIGhhbmRsZUdlc3R1cmVGbGlu
Zyhjb25zdCBXZWJHZXN0dXJlRXZlbnQmKTsKKworICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB3ZSBh
Y3R1YWxseSBoYWQgYW4gYWN0aXZlIGZsaW5nIHRvIGNhbmNlbC4KKyAgICBib29sIGNhbmNlbEN1
cnJlbnRGbGluZygpOworCisgICAgT3duUHRyPFdlYkNvcmU6OkNDQWN0aXZlR2VzdHVyZUFuaW1h
dGlvbj4gbV93aGVlbEZsaW5nQW5pbWF0aW9uOworICAgIC8vIFBhcmFtZXRlcnMgZm9yIHRoZSBh
Y3RpdmUgZmxpbmcgYW5pbWF0aW9uLCBzdG9yZWQgaW4gY2FzZSB3ZSBuZWVkIHRvIHRyYW5zZmVy
IGl0IG91dCBsYXRlci4KKyAgICBXZWJDb3JlOjpBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycyBt
X3doZWVsRmxpbmdQYXJhbWV0ZXJzOwogCiAgICAgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNs
aWVudCogbV9jbGllbnQ7CiAgICAgaW50IG1faWRlbnRpZmllcjsKQEAgLTgyLDcgKzk0LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fZXhwZWN0U2Nyb2xsVXBkYXRlRW5kOwogICAgIGJvb2wgbV9l
eHBlY3RQaW5jaFVwZGF0ZUVuZDsKICNlbmRpZgotICAgIGJvb2wgbV9zY3JvbGxTdGFydGVkOwor
ICAgIGJvb2wgbV9nZXN0dXJlU2Nyb2xsU3RhcnRlZDsKIAogICAgIHN0YXRpYyBpbnQgc19uZXh0
QXZhaWxhYmxlSWRlbnRpZmllcjsKICAgICBzdGF0aWMgSGFzaFNldDxXZWJDb21wb3NpdG9ySW5w
dXRIYW5kbGVySW1wbCo+KiBzX2NvbXBvc2l0b3JzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCmluZGV4IDMzNTg3OWI2NjA1MzRh
NGJjNzU3ZTUxNzc0ZjMyZmZkYzY3ZTdmZWMuLjZjOGQ2ZWQzYThlNzEwZWIyYTE2MjFiMDRjNmYx
N2QwNmQ5YjI3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxh
eWVyVHJlZVZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJM
YXllclRyZWVWaWV3SW1wbC5jcHAKQEAgLTI2LDE2ICsyNiwyMCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIldlYkxheWVyVHJlZVZpZXdJbXBsLmgiCiAKKyNpbmNsdWRlICJBY3Rp
dmVXaGVlbEZsaW5nUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkNDVGhyZWFkSW1wbC5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkxheWVyQ2hyb21p
dW0uaCIKICNpbmNsdWRlICJjYy9DQ1RocmVhZFByb3h5LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0v
V2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJMYXllci5oIgot
I2luY2x1ZGUgInBsYXRmb3JtL1dlYkxheWVyVHJlZVZpZXcuaCIKLSNpbmNsdWRlICJwbGF0Zm9y
bS9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU2l6ZS5o
IgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlRocmVhZC5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJB
Y3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycy5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJGbG9hdFBv
aW50Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg+CisjaW5jbHVk
ZSA8cHVibGljL1dlYkxheWVyLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYkxheWVyVHJlZVZpZXcu
aD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oPgorI2luY2x1ZGUg
PHB1YmxpYy9XZWJQb2ludC5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJTaXplLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMDcsNiArMTExLDIwIEBAIHZvaWQgV2ViTGF5ZXJU
cmVlVmlld0ltcGw6OmRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKQogICAgICAgICBtX2NsaWVudC0+
ZGlkQ29tcGxldGVTd2FwQnVmZmVycygpOwogfQogCit2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBs
Ojp0cmFuc2ZlcldoZWVsRmxpbmdBbmltYXRpb24oY29uc3QgQWN0aXZlV2hlZWxGbGluZ1BhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCit7CisgICAgaWYgKG1fY2xpZW50KSB7CisgICAgICAgIFdlYkFj
dGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzIHdlYlBhcmFtZXRlcnM7CisgICAgICAgIHdlYlBhcmFt
ZXRlcnMuZGVsdGEgPSBXZWJGbG9hdFBvaW50KHBhcmFtZXRlcnMuZGVsdGEud2lkdGgoKSwgcGFy
YW1ldGVycy5kZWx0YS5oZWlnaHQoKSk7CisgICAgICAgIHdlYlBhcmFtZXRlcnMucG9pbnQgPSBw
YXJhbWV0ZXJzLnBvaW50OworICAgICAgICB3ZWJQYXJhbWV0ZXJzLmdsb2JhbFBvaW50ID0gcGFy
YW1ldGVycy5wb2ludDsKKyAgICAgICAgd2ViUGFyYW1ldGVycy5tb2RpZmllcnMgPSBwYXJhbWV0
ZXJzLm1vZGlmaWVyczsKKyAgICAgICAgd2ViUGFyYW1ldGVycy5zdGFydFRpbWUgPSBwYXJhbWV0
ZXJzLnN0YXJ0VGltZTsKKyAgICAgICAgd2ViUGFyYW1ldGVycy5jdW11bGF0aXZlU2Nyb2xsID0g
cGFyYW1ldGVycy5jdW11bGF0aXZlU2Nyb2xsOworICAgICAgICBtX2NsaWVudC0+dHJhbnNmZXJX
aGVlbEZsaW5nQW5pbWF0aW9uKHdlYlBhcmFtZXRlcnMpOworICAgIH0KK30KKwogdm9pZCBXZWJM
YXllclRyZWVWaWV3SW1wbDo6c2NoZWR1bGVDb21wb3NpdGUoKQogewogICAgIGlmIChtX2NsaWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZp
ZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1w
bC5oCmluZGV4IGIxYjI2ZDBmYzMzODYwNGZlNWNmMzgwNzFmNTBhOGMzNTg2NDUyZmIuLjZhOTQ5
NDJmMDkzYTJhZjQ1N2Q5MTFlMzc5NGIzOTM4MDYwYThjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaApAQCAtMzAsNiArMzAsMTAg
QEAKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgQWN0aXZlV2hlZWxGbGluZ1Bh
cmFtZXRlcnM7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViTGF5ZXI7CiBjbGFz
cyBXZWJMYXllclRyZWVWaWV3Q2xpZW50OwpAQCAtNDgsNiArNTIsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUNvbnRleHQoYm9vbCBzdWNjZXNzKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENv
bXBsZXRlU3dhcEJ1ZmZlcnMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJXaGVlbEZsaW5n
QW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzJik7CiAK
ICAgICAvLyBPbmx5IHVzZWQgaW4gdGhlIHNpbmdsZSB0aHJlYWRlZCBwYXRoLgogICAgIHZpcnR1
YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCmluZGV4IDA2YzJiM2UxZDZjMTEyMDU4MTgzY2RmZjYyOTZiZmIxZTVj
ZTljM2IuLjBlZTkxZmViMjIzMzZhZGNkMjkyMTM4ZmNjYzgyMTkzZmY0ZDUwNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTMyLDEwICszMiwxMCBA
QAogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAKICNpbmNsdWRlICJBY3RpdmVQbGF0Zm9ybUdl
c3R1cmVBbmltYXRpb24uaCIKLSNpbmNsdWRlICJBdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oIgog
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJBY3RpdmVQbGF0Zm9ybUdlc3R1
cmVBbmltYXRpb24uaCIKKyNpbmNsdWRlICJBdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oIgogI2lu
Y2x1ZGUgIkJhY2tGb3J3YXJkTGlzdENocm9taXVtLmgiCi0jaW5jbHVkZSAiY2MvQ0NQcm94eS5o
IgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCkBAIC0xMjAsMzIgKzEyMCwzNSBAQAogI2luY2x1
ZGUgIldlYkNvbXBvc2l0b3JJbXBsLmgiCiAjaW5jbHVkZSAiV2ViRGV2VG9vbHNBZ2VudEltcGwu
aCIKICNpbmNsdWRlICJXZWJEZXZUb29sc0FnZW50UHJpdmF0ZS5oIgotI2luY2x1ZGUgInBsYXRm
b3JtL1dlYkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCi0jaW5jbHVkZSAi
cGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJJ
bWFnZS5oIgogI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIldlYklucHV0
RXZlbnQuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUg
IldlYktpdC5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIgot
I2luY2x1ZGUgInBsYXRmb3JtL1dlYkxheWVyLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViTGF5
ZXJUcmVlVmlldy5oIgogI2luY2x1ZGUgIldlYk1lZGlhUGxheWVyQWN0aW9uLmgiCiAjaW5jbHVk
ZSAiV2ViTm9kZS5oIgogI2luY2x1ZGUgIldlYlBsdWdpbi5oIgogI2luY2x1ZGUgIldlYlBsdWdp
bkFjdGlvbi5oIgogI2luY2x1ZGUgIldlYlBsdWdpbkNvbnRhaW5lckltcGwuaCIKLSNpbmNsdWRl
ICJwbGF0Zm9ybS9XZWJQb2ludC5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudUltcGwuaCIKICNp
bmNsdWRlICJXZWJSYW5nZS5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlJlY3QuaCIKICNpbmNs
dWRlICJXZWJSdW50aW1lRmVhdHVyZXMuaCIKICNpbmNsdWRlICJXZWJTZXR0aW5nc0ltcGwuaCIK
LSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJW
ZWN0b3IuaCIKICNpbmNsdWRlICJXZWJWaWV3Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVu
dC5oIgorI2luY2x1ZGUgImNjL0NDUHJveHkuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJEcmFn
RGF0YS5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYkltYWdlLmgiCisjaW5jbHVkZSAicGxhdGZv
cm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5n
LmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViVmVjdG9yLmgiCisjaW5jbHVkZSA8cHVibGljL1dl
YkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYkZsb2F0
UG9pbnQuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaD4KKyNpbmNs
dWRlIDxwdWJsaWMvV2ViTGF5ZXIuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXJUcmVlVmll
dy5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJQb2ludC5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJS
ZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL0J5dGVBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC00MTIsNiArNDE1LDkgQEAg
V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKICNlbmRpZgog
CiAgICAgbV9pbnNwZWN0b3JTZXR0aW5nc01hcCA9IGFkb3B0UHRyKG5ldyBTZXR0aW5nc01hcCk7
CisKKyAgICBtX2xhc3RXaGVlbFBvc2l0aW9uID0gV2ViUG9pbnQoLTEsIC0xKTsKKyAgICBtX2xh
c3RXaGVlbEdsb2JhbFBvc2l0aW9uID0gV2ViUG9pbnQoLTEsIC0xKTsKIH0KIAogV2ViVmlld0lt
cGw6On5XZWJWaWV3SW1wbCgpCkBAIC02MzEsNiArNjM3LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6
Z2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiB7CiAgICAgc3dpdGNo
IChldmVudC50eXBlKSB7CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdTdGFy
dDogeworICAgICAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMigid2Via2l0IiwgIldlYlZpZXdJbXBs
OjpnZXN0dXJlRXZlbnQ6Okdlc3R1cmVGbGluZ1N0YXJ0IiwgImRlbHRhWCIsIGV2ZW50LmRlbHRh
WCwgImRlbHRhWSIsIGV2ZW50LmRlbHRhWSk7CiAgICAgICAgIG1fbGFzdFdoZWVsUG9zaXRpb24g
PSBXZWJQb2ludChldmVudC54LCBldmVudC55KTsKICAgICAgICAgbV9sYXN0V2hlZWxHbG9iYWxQ
b3NpdGlvbiA9IFdlYlBvaW50KGV2ZW50Lmdsb2JhbFgsIGV2ZW50Lmdsb2JhbFkpOwogICAgICAg
ICBtX2ZsaW5nTW9kaWZpZXIgPSBldmVudC5tb2RpZmllcnM7CkBAIC02NDAsNiArNjQ3LDcgQEAg
Ym9vbCBXZWJWaWV3SW1wbDo6Z2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZl
bnQpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBjYXNlIFdlYklucHV0RXZlbnQ6
Okdlc3R1cmVGbGluZ0NhbmNlbDoKKyAgICAgICAgVFJBQ0VfRVZFTlRfSU5TVEFOVDAoIndlYmtp
dCIsICJXZWJWaWV3SW1wbDo6Z2VzdHVyZUV2ZW50OjpHZXN0dXJlRmxpbmdDYW5jZWwiKTsKICAg
ICAgICAgbV9nZXN0dXJlQW5pbWF0aW9uLmNsZWFyKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEJlZ2luOgpAQCAtNjYwLDYgKzY2
OCwxOCBAQCBib29sIFdlYlZpZXdJbXBsOjpnZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2
ZW50JiBldmVudCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnRy
YW5zZmVyV2hlZWxGbGluZ0FuaW1hdGlvbihjb25zdCBXZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1l
dGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgid2Via2l0Iiwg
IldlYlZpZXdJbXBsOjp0cmFuc2ZlcldoZWVsRmxpbmdBbmltYXRpb24iKTsKKyAgICBBU1NFUlQo
IW1fZ2VzdHVyZUFuaW1hdGlvbik7CisgICAgbV9sYXN0V2hlZWxQb3NpdGlvbiA9IHBhcmFtZXRl
cnMucG9pbnQ7CisgICAgbV9sYXN0V2hlZWxHbG9iYWxQb3NpdGlvbiA9IHBhcmFtZXRlcnMuZ2xv
YmFsUG9pbnQ7CisgICAgLy8gRklYTUU6IHN0b3JlIHBhcmFtZXRlcnMubW9kaWZpZXJzCisgICAg
T3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjdXJ2ZSA9IFRvdWNoRmxpbmdQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZTo6Y3JlYXRlKHBhcmFtZXRlcnMuZGVsdGEsIHBhcmFtZXRlcnMuY3VtdWxhdGl2
ZVNjcm9sbCk7CisgICAgbV9nZXN0dXJlQW5pbWF0aW9uID0gQWN0aXZlUGxhdGZvcm1HZXN0dXJl
QW5pbWF0aW9uOjpjcmVhdGUoY3VydmUucmVsZWFzZSgpLCB0aGlzLCBwYXJhbWV0ZXJzLnN0YXJ0
VGltZSk7CisgICAgc2NoZWR1bGVBbmltYXRpb24oKTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6
c3RhcnRQYWdlU2NhbGVBbmltYXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9sbCwgYm9vbCB1c2VB
bmNob3IsIGZsb2F0IG5ld1NjYWxlLCBkb3VibGUgZHVyYXRpb25TZWMpCiB7CiAgICAgaWYgKCFt
X2xheWVyVHJlZVZpZXcuaXNOdWxsKCkpCkBAIC0xMzMzLDYgKzEzNTMsMTcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgZnJhbWVCZWdpblRpbWUpCiAjaWYgRU5B
QkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgIFRSQUNFX0VWRU5UKCJXZWJWaWV3SW1w
bDo6dXBkYXRlQW5pbWF0aW9ucyIsIHRoaXMsIDApOwogCisgICAgLy8gQ3JlYXRlIHN5bnRoZXRp
YyB3aGVlbCBldmVudHMgYXMgbmVjZXNzYXJ5IGZvciBmbGluZy4KKyAgICBpZiAobV9nZXN0dXJl
QW5pbWF0aW9uKSB7CisgICAgICAgIGlmIChtX2dlc3R1cmVBbmltYXRpb24tPmFuaW1hdGUoZnJh
bWVCZWdpblRpbWUpKSB7CisgICAgICAgICAgICBUUkFDRV9FVkVOVF9JTlNUQU5UMCgid2Via2l0
IiwgIldlYlZpZXdJbXBsOjphbmltYXRlOjpmbGluZyBjb250aW51ZSIpOworICAgICAgICAgICAg
c2NoZWR1bGVBbmltYXRpb24oKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFRSQUNF
X0VWRU5UX0lOU1RBTlQwKCJ3ZWJraXQiLCAiV2ViVmlld0ltcGw6OmFuaW1hdGU6OmZsaW5nIG92
ZXIiKTsKKyAgICAgICAgICAgIG1fZ2VzdHVyZUFuaW1hdGlvbi5jbGVhcigpOworICAgICAgICB9
CisgICAgfQorCiAgICAgV2ViRnJhbWVJbXBsKiB3ZWJmcmFtZSA9IG1haW5GcmFtZUltcGwoKTsK
ICAgICBpZiAoIXdlYmZyYW1lKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCAyMjkzOGFkNmJkNmM0OTc1Zjc0ZmUzN2U0MTU0ODdm
ZWVjYTEyMTViLi5lNWFmMTBjNmUyNTk3YzliYmFlNTAzN2Y0MzM3OTQ3ODc5NDYxMGMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTI2MSw2ICsyNjEsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZSgpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCk7CiAgICAgdmlydHVhbCB2b2lk
IHNjaGVkdWxlQ29tcG9zaXRlKCk7CisgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyV2hlZWxGbGlu
Z0FuaW1hdGlvbihjb25zdCBXZWJBY3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycyYpOworCiAKICAg
ICAvLyBXZWJWaWV3SW1wbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCmluZGV4IGExOTJiYTU1N2JmMGVhMTZj
MjFlNGMwNDI0MmNiMjVkMDkwYTE3NjMuLmE0YWViMDZiMGQ3NWE2ZTdjYzI1ZGYzZWUxZWY3MWMw
ZWYyOTJmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXll
clRyZWVIb3N0SW1wbFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXdPbkltcGxUaHJlYWQoKSB7IG1fZGlkUmVxdWVz
dFJlZHJhdyA9IHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNDb21taXRPbkltcGxU
aHJlYWQoKSB7IG1fZGlkUmVxdWVzdENvbW1pdCA9IHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cG9zdEFuaW1hdGlvbkV2ZW50c1RvTWFpblRocmVhZE9uSW1wbFRocmVhZChQYXNzT3duUHRyPEND
QW5pbWF0aW9uRXZlbnRzVmVjdG9yPiwgZG91YmxlIHdhbGxDbG9ja1RpbWUpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCB0cmFuc2ZlcldoZWVsRmxpbmdBbmltYXRpb25Ub01haW5UaHJlYWRPbkltcGxU
aHJlYWQoY29uc3QgQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMmKSB7IH0KIAogICAgIHN0YXRp
YyB2b2lkIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUoQ0NMYXllckltcGwqIGxh
eWVyKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NM
YXllclRyZWVIb3N0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdFRlc3QuY3BwCmluZGV4IDcwMmJiZjE2MzliNDNiMTZhZWYzYWJiNjYwNjI5MDQ5
OGMwZDY2MTUuLjI1YWQyMmI1NTg0NDJlMmI0OWVkZWJhM2U4MDc3ZTZiY2I1ZjcxNDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0
LmNwcApAQCAtMjU2LDYgKzI1Niw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCisgICAgdmly
dHVhbCB2b2lkIHRyYW5zZmVyV2hlZWxGbGluZ0FuaW1hdGlvbihjb25zdCBBY3RpdmVXaGVlbEZs
aW5nUGFyYW1ldGVycyYpIHsgfQorCisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTW9ja0xheWVy
VHJlZUhvc3RDbGllbnQoVGVzdEhvb2tzKiB0ZXN0SG9va3MpIDogbV90ZXN0SG9va3ModGVzdEhv
b2tzKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GYWtl
Q0NMYXllclRyZWVIb3N0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zh
a2VDQ0xheWVyVHJlZUhvc3RDbGllbnQuaAppbmRleCAzODg3NmQ3MzdmYjUyYWE2ZDAzYzcxYmZm
ZTQxNzI4YzhjY2NmMGI1Li44ZGRiMTBhOGEyNTljYTZkOTBmMGIzYmQyZjNlZWJjZmUwYWVhODgy
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VDQ0xheWVyVHJl
ZUhvc3RDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VDQ0xh
eWVyVHJlZUhvc3RDbGllbnQuaApAQCAtNDUsNiArNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY3JlYXRlQ29udGV4dChib29sIHN1Y2Nlc3MpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29t
cGxldGVTd2FwQnVmZmVycygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlcldoZWVsRmxp
bmdBbmltYXRpb24oY29uc3QgQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMmKSB7IH0KIAogICAg
IC8vIFVzZWQgb25seSBpbiB0aGUgc2luZ2xlLXRocmVhZGVkIHBhdGguCiAgICAgdmlydHVhbCB2
b2lkIHNjaGVkdWxlQ29tcG9zaXRlKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVz
dC5jcHAKaW5kZXggNGIxNDYzNmZhN2UwNjAzNTQ1NjU0NzQ1ZmY0ZGE5MGM4OTA3ZGU4Zi4uMTZk
ZmEyNTdiNGRmZTM5NGQyYjExOGIyYjkyOTZmNDEyN2EwM2YwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGxUZXN0LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgImNjL0NDSW5w
dXRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oIgogCisjaW5j
bHVkZSA8Z21vY2svZ21vY2suaD4KICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KIApAQCAtNDYsMTA4ICs0Nyw1MiBAQCBjbGFzcyBNb2NrSW5wdXRIYW5k
bGVyQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50IHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShNb2NrSW5wdXRIYW5kbGVyQ2xpZW50KTsKIHB1YmxpYzoKICAg
ICBNb2NrSW5wdXRIYW5kbGVyQ2xpZW50KCkKLSAgICAgICAgOiBtX3Njcm9sbFN0YXR1cyhTY3Jv
bGxTdGFydGVkKQotICAgICAgICAsIG1fcGluY2hTdGFydGVkKGZhbHNlKQotICAgICAgICAsIG1f
cGluY2hFbmRlZChmYWxzZSkKLSAgICAgICAgLCBtX3BpbmNoTWFnbmlmaWNhdGlvbigwKQotICAg
ICAgICAsIG1fc2Nyb2xsQnlDYWxsZWQoZmFsc2UpCiAgICAgewogICAgIH0KICAgICB2aXJ0dWFs
IH5Nb2NrSW5wdXRIYW5kbGVyQ2xpZW50KCkgeyB9CiAKLSAgICB2b2lkIHNldFNjcm9sbFN0YXR1
cyhTY3JvbGxTdGF0dXMgc3RhdHVzKSB7IG1fc2Nyb2xsU3RhdHVzID0gc3RhdHVzOyB9CiAKLSAg
ICBib29sIHBpbmNoU3RhcnRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGluY2hTdGFydGVkOyB9Ci0g
ICAgYm9vbCBwaW5jaEVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9waW5jaEVuZGVkOyB9Ci0gICAg
ZmxvYXQgcGluY2hNYWdpbmlmY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9waW5jaE1hZ25pZmlj
YXRpb247IH0KLSAgICBib29sIHNjcm9sbEJ5Q2FsbGVkKCkgY29uc3QgeyByZXR1cm4gbV9zY3Jv
bGxCeUNhbGxlZDsgfQorICAgIE1PQ0tfTUVUSE9EMChwaW5jaEdlc3R1cmVCZWdpbiwgdm9pZCgp
KTsKKyAgICBNT0NLX01FVEhPRDIocGluY2hHZXN0dXJlVXBkYXRlLCB2b2lkKGZsb2F0IG1hZ25p
ZnlEZWx0YSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGFuY2hvcikpOworICAgIE1PQ0tfTUVU
SE9EMChwaW5jaEdlc3R1cmVFbmQsIHZvaWQoKSk7CiAKLSAgICB2b2lkIHJlc2V0UGluY2goKQot
ICAgIHsKLSAgICAgICAgbV9waW5jaFN0YXJ0ZWQgPSBtX3BpbmNoRW5kZWQgPSBtX3Njcm9sbEJ5
Q2FsbGVkID0gZmFsc2U7Ci0gICAgICAgIG1fcGluY2hNYWduaWZpY2F0aW9uID0gMDsKLSAgICB9
CisgICAgTU9DS19NRVRIT0QwKHNjaGVkdWxlQW5pbWF0aW9uLCB2b2lkKCkpOwogCi0gICAgdmly
dHVhbCBXZWJDb3JlOjpDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb24qIGFjdGl2ZUdlc3R1cmVBbmlt
YXRpb24oKSB7IHJldHVybiBtX2FjdGl2ZUdlc3R1cmVBbmltYXRpb24uZ2V0KCk7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgc2V0QWN0aXZlR2VzdHVyZUFuaW1hdGlvbihQYXNzT3duUHRyPFdlYkNvcmU6
OkNDQWN0aXZlR2VzdHVyZUFuaW1hdGlvbj4gYW5pbWF0aW9uKSB7IG1fYWN0aXZlR2VzdHVyZUFu
aW1hdGlvbiA9IGFuaW1hdGlvbjsgfQorICAgIE1PQ0tfTUVUSE9EMihzY3JvbGxCZWdpbiwgU2Ny
b2xsU3RhdHVzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgV2ViQ29yZTo6Q0NJbnB1dEhhbmRs
ZXJDbGllbnQ6OlNjcm9sbElucHV0VHlwZSkpOworICAgIE1PQ0tfTUVUSE9EMShzY3JvbGxCeSwg
dm9pZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikpOworICAgIE1PQ0tfTUVUSE9EMChzY3JvbGxF
bmQsIHZvaWQoKSk7CiAKLXByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRzUmVkcmF3
KCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBTY3JvbGxTdGF0dXMgc2Nyb2xsQmVnaW4oY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Ny
b2xsSW5wdXRUeXBlKSBPVkVSUklERQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fc2Nyb2xsU3Rh
dHVzOwotICAgIH0KLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsQnkoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpIE9WRVJSSURFIHsgbV9zY3JvbGxCeUNhbGxlZCA9IHRydWU7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsRW5kKCkgT1ZFUlJJREUgeyB9CisgICAgTU9DS19NRVRIT0QxKHRyYW5zZmVy
V2hlZWxGbGluZ0FuaW1hdGlvbiwgdm9pZChjb25zdCBXZWJDb3JlOjpBY3RpdmVXaGVlbEZsaW5n
UGFyYW1ldGVycyYpKTsKIAotICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVCZWdpbigpIE9W
RVJSSURFCi0gICAgewotICAgICAgICBtX3BpbmNoU3RhcnRlZCA9IHRydWU7Ci0gICAgfQotICAg
IHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQgbWFnbmlmeURlbHRhLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgYW5jaG9yKSBPVkVSUklERQotICAgIHsKLSAgICAgICAgbV9w
aW5jaE1hZ25pZmljYXRpb24gPSBtYWduaWZ5RGVsdGE7Ci0gICAgfQotICAgIHZpcnR1YWwgdm9p
ZCBwaW5jaEdlc3R1cmVFbmQoKSBPVkVSUklERQotICAgIHsKLSAgICAgICAgbV9waW5jaEVuZGVk
ID0gdHJ1ZTsKLSAgICB9Citwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydFBhZ2VTY2Fs
ZUFuaW1hdGlvbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0YXJnZXRQb3NpdGlvbiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhbmNob3JQb2ludCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgcGFnZVNjYWxlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgc3RhcnRUaW1l
TXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkdXJh
dGlvbk1zKSBPVkVSUklERSB7IH0KIAotICAgIFNjcm9sbFN0YXR1cyBtX3Njcm9sbFN0YXR1czsK
LSAgICBib29sIG1fcGluY2hTdGFydGVkOwotICAgIGJvb2wgbV9waW5jaEVuZGVkOwotICAgIGZs
b2F0IG1fcGluY2hNYWduaWZpY2F0aW9uOwotICAgIGJvb2wgbV9zY3JvbGxCeUNhbGxlZDsKLQot
ICAgIE93blB0cjxXZWJDb3JlOjpDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb24+IG1fYWN0aXZlR2Vz
dHVyZUFuaW1hdGlvbjsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkNDQWN0aXZlR2VzdHVyZUFuaW1h
dGlvbiogYWN0aXZlR2VzdHVyZUFuaW1hdGlvbigpIE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlR2VzdHVyZUFuaW1hdGlvbihQYXNzT3duUHRyPFdlYkNv
cmU6OkNDQWN0aXZlR2VzdHVyZUFuaW1hdGlvbj4pIE9WRVJSSURFIHsgfQogfTsKIAogY2xhc3Mg
TW9ja1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQgOiBwdWJsaWMgV2ViS2l0OjpXZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShN
b2NrV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudCk7CiBwdWJsaWM6CiAgICAgTW9ja1dl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQoKQotICAgICAgICA6IG1faGFuZGxlZChmYWxz
ZSkKLSAgICAgICAgLCBtX3NlbmRUb1dpZGdldChmYWxzZSkKKyAgICAgICAgOiBXZWJLaXQ6Oldl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQoKQogICAgIHsKICAgICB9CiAgICAgdmlydHVh
bCB+TW9ja1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQoKSB7IH0KIAotICAgIHZvaWQg
cmVzZXQoKQotICAgIHsKLSAgICAgICAgbV9oYW5kbGVkID0gZmFsc2U7Ci0gICAgICAgIG1fc2Vu
ZFRvV2lkZ2V0ID0gZmFsc2U7Ci0gICAgfQotCi0gICAgYm9vbCBoYW5kbGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9oYW5kbGVkOyB9Ci0gICAgYm9vbCBzZW5kVG9XaWRnZXQoKSBjb25zdCB7IHJldHVy
biBtX3NlbmRUb1dpZGdldDsgfQotCi1wcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCB3aWxsU2h1
dGRvd24oKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkSGFuZGxlSW5wdXRFdmVu
dCgpIE9WRVJSSURFCi0gICAgewotICAgICAgICBtX2hhbmRsZWQgPSB0cnVlOwotICAgIH0KLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlSW5wdXRFdmVudChib29sIHNlbmRUb1dpZGdldCkg
T1ZFUlJJREUKLSAgICB7Ci0gICAgICAgIG1fc2VuZFRvV2lkZ2V0ID0gc2VuZFRvV2lkZ2V0Owot
ICAgIH0KLQotICAgIGJvb2wgbV9oYW5kbGVkOwotICAgIGJvb2wgbV9zZW5kVG9XaWRnZXQ7Cisg
ICAgTU9DS19NRVRIT0QwKHdpbGxTaHV0ZG93biwgdm9pZCgpKTsKKyAgICBNT0NLX01FVEhPRDAo
ZGlkSGFuZGxlSW5wdXRFdmVudCwgdm9pZCgpKTsKKyAgICBNT0NLX01FVEhPRDEoZGlkTm90SGFu
ZGxlSW5wdXRFdmVudCwgdm9pZChib29sIHNlbmRUb1dpZGdldCkpOwogfTsKIAogVEVTVChXZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbCwgZnJvbUlkZW50aWZpZXIpCiB7CiAgICAgV2ViS2l0
OjpXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOwotI2lmbmRlZiBOREVCVUcKLSAgICAvLyBX
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyIEFQSXMgY2FuIG9ubHkgYmUgY2FsbGVkIGZyb20gdGhl
IGNvbXBvc2l0b3IgdGhyZWFkLgogICAgIFdlYkNvcmU6OkRlYnVnU2NvcGVkU2V0SW1wbFRocmVh
ZCBhbHdheXNJbXBsVGhyZWFkOwotI2VuZGlmCiAKICAgICAvLyBCZWZvcmUgY3JlYXRpbmcgYW55
IFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJzLCBsb29rdXBzIGZvciBhbnkgdmFsdWUgc2hvdWxk
IGZhaWwgYW5kIG5vdCBjcmFzaC4KICAgICBFWFBFQ1RfRVEoMCwgV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlcjo6ZnJvbUlkZW50aWZpZXIoMikpOwpAQCAtMTY3LDE3NCArMTEyLDI4NSBAQCBURVNU
KFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLCBmcm9tSWRlbnRpZmllcikKIAogICAgIC8v
IEFmdGVyIHRoZSBjb21wb3NpdG9yIGlzIGRlc3Ryb3llZCwgaXRzIGVudHJ5IHNob3VsZCBiZSBy
ZW1vdmVkIGZyb20gdGhlIG1hcC4KICAgICBFWFBFQ1RfRVEoMCwgV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlcjo6ZnJvbUlkZW50aWZpZXIoY29tcG9zaXRvcklkZW50aWZpZXIpKTsKLQogICAgIFdl
YktpdDo6V2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKIH0KIAotVEVTVChXZWJDb21wb3NpdG9y
SW5wdXRIYW5kbGVySW1wbCwgZ2VzdHVyZVNjcm9sbCkKLXsKLSAgICBXZWJLaXQ6OldlYkNvbXBv
c2l0b3I6OmluaXRpYWxpemUoMCk7Ci0jaWZuZGVmIE5ERUJVRwotICAgIC8vIFdlYkNvbXBvc2l0
b3JJbnB1dEhhbmRsZXIgQVBJcyBjYW4gb25seSBiZSBjYWxsZWQgZnJvbSB0aGUgY29tcG9zaXRv
ciB0aHJlYWQuCi0gICAgV2ViQ29yZTo6RGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGFsd2F5c0lt
cGxUaHJlYWQ7Ci0jZW5kaWYKK2NsYXNzIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVz
dCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKK3B1YmxpYzoKKyAgICBXZWJDb21wb3NpdG9ySW5w
dXRIYW5kbGVySW1wbFRlc3QoKQorICAgIHsKKyAgICAgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9y
Ojppbml0aWFsaXplKDApOworICAgICAgICBtX2lucHV0SGFuZGxlciA9IFdlYkNvbXBvc2l0b3JJ
bnB1dEhhbmRsZXJJbXBsOjpjcmVhdGUoJm1fbW9ja0lucHV0SGFuZGxlcik7CisgICAgICAgIG1f
aW5wdXRIYW5kbGVyLT5zZXRDbGllbnQoJm1fbW9ja0NsaWVudCk7CisgICAgfQogCi0gICAgTW9j
a0lucHV0SGFuZGxlckNsaWVudCBtb2NrSW5wdXRIYW5kbGVyOwotICAgIE93blB0cjxXZWJDb21w
b3NpdG9ySW5wdXRIYW5kbGVySW1wbD4gaW5wdXRIYW5kbGVyID0gV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGw6OmNyZWF0ZSgmbW9ja0lucHV0SGFuZGxlcik7Ci0gICAgTW9ja1dlYkNvbXBv
c2l0b3JJbnB1dEhhbmRsZXJDbGllbnQgbW9ja0NsaWVudDsKLSAgICBpbnB1dEhhbmRsZXItPnNl
dENsaWVudCgmbW9ja0NsaWVudCk7CisgICAgfldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBs
VGVzdCgpCisgICAgeworICAgICAgICBtX2lucHV0SGFuZGxlci0+c2V0Q2xpZW50KDApOworICAg
ICAgICBtX2lucHV0SGFuZGxlci5jbGVhcigpOworICAgICAgICBXZWJLaXQ6OldlYkNvbXBvc2l0
b3I6OnNodXRkb3duKCk7CisgICAgfQogCitwcm90ZWN0ZWQ6CisgICAgTW9ja0lucHV0SGFuZGxl
ckNsaWVudCBtX21vY2tJbnB1dEhhbmRsZXI7CisgICAgT3duUHRyPFdlYkNvbXBvc2l0b3JJbnB1
dEhhbmRsZXJJbXBsPiBtX2lucHV0SGFuZGxlcjsKKyAgICBNb2NrV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckNsaWVudCBtX21vY2tDbGllbnQ7CiAgICAgV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQg
Z2VzdHVyZTsKIAorcHJpdmF0ZToKKyAgICBXZWJDb3JlOjpEZWJ1Z1Njb3BlZFNldEltcGxUaHJl
YWQgbV9hbHdheXNJbXBsVGhyZWFkOworfTsKKworCitURVNUX0YoV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGxUZXN0LCBnZXN0dXJlU2Nyb2xsU3RhcnRlZCkKK3sKKyAgICBFWFBFQ1RfQ0FM
TChtX21vY2tJbnB1dEhhbmRsZXIsIHNjcm9sbEJlZ2luKHRlc3Rpbmc6Ol8sIHRlc3Rpbmc6Ol8p
KQorICAgICAgICAuV2lsbE9uY2UodGVzdGluZzo6UmV0dXJuKFdlYkNvcmU6OkNDSW5wdXRIYW5k
bGVyQ2xpZW50OjpTY3JvbGxTdGFydGVkKSk7CisgICAgLy8gV2Ugc2hvdWxkbid0IHNlbmQgYW55
IGV2ZW50cyB0byB0aGUgd2lkZ2V0IGZvciB0aGlzIGdlc3R1cmUuCisgICAgLy8gSW5zdGVhZCwg
d2Ugc2hvdWxkIGdldCBvbmUgZGlkSGFuZGxlSW5wdXRFdmVudCgpIGNhbGwgcGVyIGhhbmRsZUlu
cHV0RXZlbnQoKS4KKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tDbGllbnQsIGRpZE5vdEhhbmRsZUlu
cHV0RXZlbnQoOjp0ZXN0aW5nOjpfKSkuVGltZXMoMCk7CisKICAgICBnZXN0dXJlLnR5cGUgPSBX
ZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbjsKLSAgICBpbnB1dEhhbmRs
ZXItPmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7Ci0gICAgRVhQRUNUX1RSVUUobW9ja0NsaWVu
dC5oYW5kbGVkKCkpOwotICAgIEVYUEVDVF9GQUxTRShtb2NrQ2xpZW50LnNlbmRUb1dpZGdldCgp
KTsKLSAgICBtb2NrQ2xpZW50LnJlc2V0KCk7CisgICAgRVhQRUNUX0NBTEwobV9tb2NrQ2xpZW50
LCBkaWRIYW5kbGVJbnB1dEV2ZW50KCkpOworICAgIG1faW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1
dEV2ZW50KGdlc3R1cmUpOwogCiAgICAgZ2VzdHVyZS50eXBlID0gV2ViS2l0OjpXZWJJbnB1dEV2
ZW50OjpHZXN0dXJlU2Nyb2xsVXBkYXRlOwotICAgIGdlc3R1cmUuZGVsdGFZID0gNDA7Ci0gICAg
aW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1dEV2ZW50KGdlc3R1cmUpOwotICAgIEVYUEVDVF9UUlVF
KG1vY2tDbGllbnQuaGFuZGxlZCgpKTsKLSAgICBFWFBFQ1RfRkFMU0UobW9ja0NsaWVudC5zZW5k
VG9XaWRnZXQoKSk7Ci0gICAgbW9ja0NsaWVudC5yZXNldCgpOworICAgIGdlc3R1cmUuZGVsdGFZ
ID0gLTQwOyAvLyAtWSBtZWFucyBzY3JvbGwgZG93biAtIGkuZS4gaW4gdGhlICtZIGRpcmVjdGlv
bi4KKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tJbnB1dEhhbmRsZXIsIHNjcm9sbEJ5KHRlc3Rpbmc6
OlByb3BlcnR5KCZXZWJDb3JlOjpJbnRTaXplOjpoZWlnaHQsIHRlc3Rpbmc6Okd0KDApKSkpOwor
ICAgIEVYUEVDVF9DQUxMKG1fbW9ja0NsaWVudCwgZGlkSGFuZGxlSW5wdXRFdmVudCgpKTsKKyAg
ICBtX2lucHV0SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKIAogICAgIGdlc3R1
cmUudHlwZSA9IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEVuZDsKICAgICBn
ZXN0dXJlLmRlbHRhWSA9IDA7Ci0gICAgaW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1dEV2ZW50KGdl
c3R1cmUpOwotICAgIEVYUEVDVF9UUlVFKG1vY2tDbGllbnQuaGFuZGxlZCgpKTsKLSAgICBFWFBF
Q1RfRkFMU0UobW9ja0NsaWVudC5zZW5kVG9XaWRnZXQoKSk7Ci0gICAgbW9ja0NsaWVudC5yZXNl
dCgpOworICAgIEVYUEVDVF9DQUxMKG1fbW9ja0lucHV0SGFuZGxlciwgc2Nyb2xsRW5kKCkpOwor
ICAgIEVYUEVDVF9DQUxMKG1fbW9ja0NsaWVudCwgZGlkSGFuZGxlSW5wdXRFdmVudCgpKTsKKyAg
ICBtX2lucHV0SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKK30KIAotICAgIG1v
Y2tJbnB1dEhhbmRsZXIuc2V0U2Nyb2xsU3RhdHVzKFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xp
ZW50OjpTY3JvbGxGYWlsZWQpOworVEVTVF9GKFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBs
VGVzdCwgZ2VzdHVyZVNjcm9sbEZhaWxlZCkKK3sKKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tJbnB1
dEhhbmRsZXIsIHNjcm9sbEJlZ2luKDo6dGVzdGluZzo6XywgOjp0ZXN0aW5nOjpfKSkKKyAgICAg
ICAgLldpbGxPbmNlKHRlc3Rpbmc6OlJldHVybihXZWJDb3JlOjpDQ0lucHV0SGFuZGxlckNsaWVu
dDo6U2Nyb2xsRmFpbGVkKSk7CisgICAgLy8gV2Ugc2hvdWxkbid0IGhhbmRsZSBhbnkgb2YgdGhl
c2UgaW5wdXRzIG91cnNlbHZlcy4KKyAgICAvLyBJbnN0ZWFkLCB3ZSBzaG91bGQgZ2V0IG9uZSBk
aWROb3RIYW5kbGVJbnB1dEV2ZW50KHRydWUpIGNhbGwgcGVyIGhhbmRsZUlucHV0RXZlbnQoKSwK
KyAgICAvLyBpbmRpY2F0aW5nIHRoYXQgd2hpbGUgd2UgY291bGRuJ3Qgc2Nyb2xsIHRoZSB3aWRn
ZXQgc3RpbGwgbmVlZHMgdG8gc2VlIHRoZSBldmVudC4KKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tD
bGllbnQsIGRpZEhhbmRsZUlucHV0RXZlbnQoKSkuVGltZXMoMCk7CiAKICAgICBnZXN0dXJlLnR5
cGUgPSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbjsKLSAgICBpbnB1
dEhhbmRsZXItPmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7Ci0gICAgRVhQRUNUX0ZBTFNFKG1v
Y2tDbGllbnQuaGFuZGxlZCgpKTsKLSAgICBFWFBFQ1RfVFJVRShtb2NrQ2xpZW50LnNlbmRUb1dp
ZGdldCgpKTsKLSAgICBtb2NrQ2xpZW50LnJlc2V0KCk7CisgICAgRVhQRUNUX0NBTEwobV9tb2Nr
Q2xpZW50LCBkaWROb3RIYW5kbGVJbnB1dEV2ZW50KHRydWUpKTsKKyAgICBtX2lucHV0SGFuZGxl
ci0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKIAogICAgIGdlc3R1cmUudHlwZSA9IFdlYktp
dDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZTsKICAgICBnZXN0dXJlLmRlbHRh
WSA9IDQwOwotICAgIGlucHV0SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKLSAg
ICBFWFBFQ1RfRkFMU0UobW9ja0NsaWVudC5oYW5kbGVkKCkpOwotICAgIEVYUEVDVF9UUlVFKG1v
Y2tDbGllbnQuc2VuZFRvV2lkZ2V0KCkpOwotICAgIG1vY2tDbGllbnQucmVzZXQoKTsKKyAgICBF
WFBFQ1RfQ0FMTChtX21vY2tDbGllbnQsIGRpZE5vdEhhbmRsZUlucHV0RXZlbnQodHJ1ZSkpOwor
ICAgIG1faW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1dEV2ZW50KGdlc3R1cmUpOwogCiAgICAgZ2Vz
dHVyZS50eXBlID0gV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kOwogICAg
IGdlc3R1cmUuZGVsdGFZID0gMDsKLSAgICBpbnB1dEhhbmRsZXItPmhhbmRsZUlucHV0RXZlbnQo
Z2VzdHVyZSk7Ci0gICAgRVhQRUNUX0ZBTFNFKG1vY2tDbGllbnQuaGFuZGxlZCgpKTsKLSAgICBF
WFBFQ1RfVFJVRShtb2NrQ2xpZW50LnNlbmRUb1dpZGdldCgpKTsKLSAgICBtb2NrQ2xpZW50LnJl
c2V0KCk7Ci0KLSAgICBpbnB1dEhhbmRsZXItPnNldENsaWVudCgwKTsKLQotICAgIFdlYktpdDo6
V2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tDbGllbnQs
IGRpZE5vdEhhbmRsZUlucHV0RXZlbnQodHJ1ZSkpOworICAgIG1faW5wdXRIYW5kbGVyLT5oYW5k
bGVJbnB1dEV2ZW50KGdlc3R1cmUpOwogfQogCi1URVNUKFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRs
ZXJJbXBsLCBnZXN0dXJlUGluY2gpCitURVNUX0YoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGxUZXN0LCBnZXN0dXJlU2Nyb2xsSWdub3JlZCkKIHsKLSAgICBXZWJLaXQ6OldlYkNvbXBvc2l0
b3I6OmluaXRpYWxpemUoMCk7Ci0jaWZuZGVmIE5ERUJVRwotICAgIC8vIFdlYkNvbXBvc2l0b3JJ
bnB1dEhhbmRsZXIgQVBJcyBjYW4gb25seSBiZSBjYWxsZWQgZnJvbSB0aGUgY29tcG9zaXRvciB0
aHJlYWQuCi0gICAgV2ViQ29yZTo6RGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGFsd2F5c0ltcGxU
aHJlYWQ7Ci0jZW5kaWYKKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tJbnB1dEhhbmRsZXIsIHNjcm9s
bEJlZ2luKHRlc3Rpbmc6Ol8sIHRlc3Rpbmc6Ol8pKQorICAgICAgICAuV2lsbE9uY2UodGVzdGlu
Zzo6UmV0dXJuKFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxJZ25vcmVkKSk7
CiAKLSAgICBNb2NrSW5wdXRIYW5kbGVyQ2xpZW50IG1vY2tJbnB1dEhhbmRsZXI7Ci0gICAgT3du
UHRyPFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsPiBpbnB1dEhhbmRsZXIgPSBXZWJDb21w
b3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6Y3JlYXRlKCZtb2NrSW5wdXRIYW5kbGVyKTsKLSAgICBN
b2NrV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudCBtb2NrQ2xpZW50OwotICAgIGlucHV0
SGFuZGxlci0+c2V0Q2xpZW50KCZtb2NrQ2xpZW50KTsKKyAgICAvLyBXZSBzaG91bGRuJ3QgaGFu
ZGxlIGFueSBvZiB0aGVzZSBpbnB1dHMgb3Vyc2VsdmVzLgorICAgIC8vIEluc3RlYWQsIHdlIHNo
b3VsZCBnZXQgb25lIGRpZE5vdEhhbmRsZUlucHV0RXZlbnQoZmFsc2UpIGNhbGwgcGVyIGhhbmRs
ZUlucHV0RXZlbnQoKSwKKyAgICAvLyBpbmRpY2F0aW5nIHRoYXQgd2UgY291bGQgZGV0ZXJtaW5l
IHRoYXQgdGhlcmUncyBub3RoaW5nIHRoYXQgY291bGQgc2Nyb2xsIG9yIG90aGVyd2lzZQorICAg
IC8vIHJlYWN0IHRvIHRoaXMgZ2VzdHVyZSBzZXF1ZW5jZSBhbmQgdGh1cyB3ZSBzaG91bGQgZHJv
cCB0aGUgd2hvbGUgZ2VzdHVyZSBzZXF1ZW5jZSBvbiB0aGUgZmxvb3IuCisgICAgRVhQRUNUX0NB
TEwobV9tb2NrQ2xpZW50LCBkaWRIYW5kbGVJbnB1dEV2ZW50KCkpLlRpbWVzKDApOwogCi0gICAg
V2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQgZ2VzdHVyZTsKKyAgICBnZXN0dXJlLnR5cGUgPSBXZWJL
aXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbjsKKyAgICBFWFBFQ1RfQ0FMTCht
X21vY2tDbGllbnQsIGRpZE5vdEhhbmRsZUlucHV0RXZlbnQoZmFsc2UpKTsKKyAgICBtX2lucHV0
SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKKworICAgIC8vIFNpbmNlIHdlIGRp
ZG4ndCBoYW5kbGUgdGhlIGV2ZW50LCB0aGUgY2FsbGVyIHNob3VsZG4ndCBzZW5kIHVzIGFueSBV
cGRhdGUvRW5kIG1lc3NhZ2VzLgorfQogCitURVNUX0YoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxl
ckltcGxUZXN0LCBnZXN0dXJlUGluY2gpCit7CisgICAgLy8gV2Ugc2hvdWxkIGhhbmRsZSB0aGUg
ZW50aXJlIHNlcXVlbmNlIG91cnNlbHZlcy4KKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tDbGllbnQs
IGRpZE5vdEhhbmRsZUlucHV0RXZlbnQoOjp0ZXN0aW5nOjpfKSkuVGltZXMoMCk7CisgCiAgICAg
Z2VzdHVyZS50eXBlID0gV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjsK
LSAgICBpbnB1dEhhbmRsZXItPmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7Ci0gICAgRVhQRUNU
X1RSVUUobW9ja0NsaWVudC5oYW5kbGVkKCkpOwotICAgIEVYUEVDVF9GQUxTRShtb2NrQ2xpZW50
LnNlbmRUb1dpZGdldCgpKTsKLSAgICBFWFBFQ1RfVFJVRShtb2NrSW5wdXRIYW5kbGVyLnBpbmNo
U3RhcnRlZCgpKTsKLSAgICBtb2NrQ2xpZW50LnJlc2V0KCk7Ci0gICAgbW9ja0lucHV0SGFuZGxl
ci5yZXNldFBpbmNoKCk7CisgICAgRVhQRUNUX0NBTEwobV9tb2NrSW5wdXRIYW5kbGVyLCBwaW5j
aEdlc3R1cmVCZWdpbigpKTsKKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tDbGllbnQsIGRpZEhhbmRs
ZUlucHV0RXZlbnQoKSk7CisgICAgbV9pbnB1dEhhbmRsZXItPmhhbmRsZUlucHV0RXZlbnQoZ2Vz
dHVyZSk7CiAKICAgICBnZXN0dXJlLnR5cGUgPSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1
cmVQaW5jaFVwZGF0ZTsKICAgICBnZXN0dXJlLmRlbHRhWCA9IDEuNTsKLSAgICBpbnB1dEhhbmRs
ZXItPmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7Ci0gICAgRVhQRUNUX1RSVUUobW9ja0NsaWVu
dC5oYW5kbGVkKCkpOwotICAgIEVYUEVDVF9GQUxTRShtb2NrQ2xpZW50LnNlbmRUb1dpZGdldCgp
KTsKLSAgICBFWFBFQ1RfRkFMU0UobW9ja0lucHV0SGFuZGxlci5waW5jaEVuZGVkKCkpOwotICAg
IEVYUEVDVF9FUSgxLjUsIG1vY2tJbnB1dEhhbmRsZXIucGluY2hNYWdpbmlmY2F0aW9uKCkpOwot
ICAgIG1vY2tDbGllbnQucmVzZXQoKTsKLSAgICBtb2NrSW5wdXRIYW5kbGVyLnJlc2V0UGluY2go
KTsKKyAgICBnZXN0dXJlLnggPSA3OworICAgIGdlc3R1cmUueSA9IDEzOworICAgIEVYUEVDVF9D
QUxMKG1fbW9ja0lucHV0SGFuZGxlciwgcGluY2hHZXN0dXJlVXBkYXRlKDEuNSwgV2ViQ29yZTo6
SW50UG9pbnQoNywgMTMpKSk7CisgICAgRVhQRUNUX0NBTEwobV9tb2NrQ2xpZW50LCBkaWRIYW5k
bGVJbnB1dEV2ZW50KCkpOworICAgIG1faW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1dEV2ZW50KGdl
c3R1cmUpOwogCiAgICAgZ2VzdHVyZS50eXBlID0gV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0
dXJlUGluY2hVcGRhdGU7CiAgICAgZ2VzdHVyZS5kZWx0YVggPSAwLjU7Ci0gICAgaW5wdXRIYW5k
bGVyLT5oYW5kbGVJbnB1dEV2ZW50KGdlc3R1cmUpOwotICAgIEVYUEVDVF9UUlVFKG1vY2tDbGll
bnQuaGFuZGxlZCgpKTsKLSAgICBFWFBFQ1RfRkFMU0UobW9ja0NsaWVudC5zZW5kVG9XaWRnZXQo
KSk7Ci0gICAgRVhQRUNUX0ZBTFNFKG1vY2tJbnB1dEhhbmRsZXIucGluY2hFbmRlZCgpKTsKLSAg
ICBFWFBFQ1RfRVEoMC41LCBtb2NrSW5wdXRIYW5kbGVyLnBpbmNoTWFnaW5pZmNhdGlvbigpKTsK
LSAgICBtb2NrQ2xpZW50LnJlc2V0KCk7Ci0gICAgbW9ja0lucHV0SGFuZGxlci5yZXNldFBpbmNo
KCk7CisgICAgZ2VzdHVyZS54ID0gOTsKKyAgICBnZXN0dXJlLnkgPSA2OworICAgIEVYUEVDVF9D
QUxMKG1fbW9ja0lucHV0SGFuZGxlciwgcGluY2hHZXN0dXJlVXBkYXRlKC41LCBXZWJDb3JlOjpJ
bnRQb2ludCg5LCA2KSkpOworICAgIEVYUEVDVF9DQUxMKG1fbW9ja0NsaWVudCwgZGlkSGFuZGxl
SW5wdXRFdmVudCgpKTsKKyAgICBtX2lucHV0SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVudChnZXN0
dXJlKTsKIAogICAgIGdlc3R1cmUudHlwZSA9IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVy
ZVBpbmNoRW5kOwotICAgIGlucHV0SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsK
LSAgICBFWFBFQ1RfVFJVRShtb2NrQ2xpZW50LmhhbmRsZWQoKSk7Ci0gICAgRVhQRUNUX0ZBTFNF
KG1vY2tDbGllbnQuc2VuZFRvV2lkZ2V0KCkpOwotICAgIEVYUEVDVF9UUlVFKG1vY2tJbnB1dEhh
bmRsZXIucGluY2hFbmRlZCgpKTsKLSAgICBtb2NrQ2xpZW50LnJlc2V0KCk7Ci0gICAgbW9ja0lu
cHV0SGFuZGxlci5yZXNldFBpbmNoKCk7Ci0KLSAgICBpbnB1dEhhbmRsZXItPnNldENsaWVudCgw
KTsKKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tJbnB1dEhhbmRsZXIsIHBpbmNoR2VzdHVyZUVuZCgp
KTsKKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tDbGllbnQsIGRpZEhhbmRsZUlucHV0RXZlbnQoKSk7
CisgICAgbV9pbnB1dEhhbmRsZXItPmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7Cit9CiAKLSAg
ICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNodXRkb3duKCk7CitURVNUX0YoV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGxUZXN0LCBnZXN0dXJlRmxpbmdTdGFydGVkKQoreworICAgIEVYUEVD
VF9DQUxMKG1fbW9ja0lucHV0SGFuZGxlciwgc2Nyb2xsQmVnaW4odGVzdGluZzo6XywgdGVzdGlu
Zzo6XykpCisgICAgICAgIC5XaWxsT25jZSh0ZXN0aW5nOjpSZXR1cm4oV2ViQ29yZTo6Q0NJbnB1
dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXJ0ZWQpKTsKKworICAgIC8vIFdlIHNob3VsZCBoYW5k
bGUgdGhlIGVudGlyZSBzZXF1ZW5jZSBvdXJzZWx2ZXMuCisgICAgRVhQRUNUX0NBTEwobV9tb2Nr
Q2xpZW50LCBkaWROb3RIYW5kbGVJbnB1dEV2ZW50KDo6dGVzdGluZzo6XykpLlRpbWVzKDApOwor
CisgICAgZ2VzdHVyZS50eXBlID0gV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdT
dGFydDsKKyAgICBnZXN0dXJlLmRlbHRhWCA9IDEwOworICAgIEVYUEVDVF9DQUxMKG1fbW9ja0Ns
aWVudCwgZGlkSGFuZGxlSW5wdXRFdmVudCgpKTsKKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tJbnB1
dEhhbmRsZXIsIHNjaGVkdWxlQW5pbWF0aW9uKCkpOworICAgIG1faW5wdXRIYW5kbGVyLT5oYW5k
bGVJbnB1dEV2ZW50KGdlc3R1cmUpOworCisgICAgLy8gVmVyaWZ5IHRoYXQgYSBHZXN0dXJlRmxp
bmdDYW5jZWwgZHVyaW5nIGFuIGFuaW1hdGlvbiBjYW5jZWxzIGl0LgorICAgIGdlc3R1cmUudHlw
ZSA9IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5nQ2FuY2VsOworICAgIEVYUEVD
VF9DQUxMKG1fbW9ja0NsaWVudCwgZGlkSGFuZGxlSW5wdXRFdmVudCgpKTsKKyAgICBtX2lucHV0
SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKIH0KIAotVEVTVChXZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVySW1wbCwgZ2VzdHVyZUZsaW5nKQorVEVTVF9GKFdlYkNvbXBvc2l0b3JJ
bnB1dEhhbmRsZXJJbXBsVGVzdCwgZ2VzdHVyZUZsaW5nRmFpbGVkKQogewotICAgIFdlYktpdDo6
V2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsKKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tJbnB1
dEhhbmRsZXIsIHNjcm9sbEJlZ2luKHRlc3Rpbmc6Ol8sIHRlc3Rpbmc6Ol8pKQorICAgICAgICAu
V2lsbE9uY2UodGVzdGluZzo6UmV0dXJuKFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50OjpT
Y3JvbGxGYWlsZWQpKTsKIAotICAgIC8vIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXIgQVBJcyBj
YW4gb25seSBiZSBjYWxsZWQgZnJvbSB0aGUgY29tcG9zaXRvciB0aHJlYWQuCi0gICAgV2ViQ29y
ZTo6RGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGFsd2F5c0ltcGxUaHJlYWQ7CisgICAgLy8gV2Ug
c2hvdWxkbid0IGhhbmRsZSBhbnkgcGFydCBvZiB0aGUgc2VxdWVuY2Ugb3Vyc2VsdmVzLgorICAg
IEVYUEVDVF9DQUxMKG1fbW9ja0NsaWVudCwgZGlkSGFuZGxlSW5wdXRFdmVudCgpKS5UaW1lcygw
KTsKIAotICAgIE1vY2tJbnB1dEhhbmRsZXJDbGllbnQgbW9ja0lucHV0SGFuZGxlcjsKLSAgICBP
d25QdHI8V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw+IGlucHV0SGFuZGxlciA9IFdlYkNv
bXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpjcmVhdGUoJm1vY2tJbnB1dEhhbmRsZXIpOwotICAg
IE1vY2tXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50IG1vY2tDbGllbnQ7Ci0gICAgaW5w
dXRIYW5kbGVyLT5zZXRDbGllbnQoJm1vY2tDbGllbnQpOworICAgIGdlc3R1cmUudHlwZSA9IFdl
YktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5nU3RhcnQ7CisgICAgRVhQRUNUX0NBTEwo
bV9tb2NrQ2xpZW50LCBkaWROb3RIYW5kbGVJbnB1dEV2ZW50KHRydWUpKTsKKyAgICBtX2lucHV0
SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKIAotICAgIFdlYktpdDo6V2ViR2Vz
dHVyZUV2ZW50IGdlc3R1cmU7CisgICAgLy8gRXZlbiBpZiB3ZSBkaWRuJ3Qgc3RhcnQgYSBmbGlu
ZyBvdXJzZWx2ZXMsIHdlIHN0aWxsIG5lZWQgdG8gc2VuZCB0aGUgY2FuY2VsIGV2ZW50IHRvIHRo
ZSB3aWRnZXQuCisgICAgZ2VzdHVyZS50eXBlID0gV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0
dXJlRmxpbmdDYW5jZWw7CisgICAgRVhQRUNUX0NBTEwobV9tb2NrQ2xpZW50LCBkaWROb3RIYW5k
bGVJbnB1dEV2ZW50KHRydWUpKTsKKyAgICBtX2lucHV0SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVu
dChnZXN0dXJlKTsKK30KIAotICAgIC8vIE5lZWQgc2Nyb2xsQmVnaW4gYmVmb3JlIHNlbmRpbmcg
YSBzY3JvbGxFbmQgZXZlbnQuCi0gICAgZ2VzdHVyZS50eXBlID0gV2ViS2l0OjpXZWJJbnB1dEV2
ZW50OjpHZXN0dXJlU2Nyb2xsQmVnaW47Ci0gICAgaW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1dEV2
ZW50KGdlc3R1cmUpOwotICAgIEVYUEVDVF9UUlVFKG1vY2tDbGllbnQuaGFuZGxlZCgpKTsKLSAg
ICBFWFBFQ1RfRkFMU0UobW9ja0NsaWVudC5zZW5kVG9XaWRnZXQoKSk7Ci0gICAgbW9ja0NsaWVu
dC5yZXNldCgpOworVEVTVF9GKFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdCwgZ2Vz
dHVyZUZsaW5nQW5pbWF0ZXMpCit7CisgICAgLy8gV2Ugc2hvdWxkIGhhbmRsZSB0aGUgZW50aXJl
IHNlcXVlbmNlIG91cnNlbHZlcy4KKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tDbGllbnQsIGRpZE5v
dEhhbmRsZUlucHV0RXZlbnQoOjp0ZXN0aW5nOjpfKSkuVGltZXMoMCk7CisKKyAgICAvLyBPbiB0
aGUgZmxpbmcgc3RhcnQsIHdlIHNob3VsZCBzY2hlZHVsZSBhbiBhbmltYXRpb24gYnV0IG5vdCBh
Y3R1YWxseSBzdGFydAorICAgIC8vIHNjcm9sbGluZy4KKyAgICBnZXN0dXJlLnR5cGUgPSBXZWJL
aXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVGbGluZ1N0YXJ0OworICAgIGdlc3R1cmUuZGVsdGFY
ID0gLTEwMDA7CisgICAgRVhQRUNUX0NBTEwobV9tb2NrQ2xpZW50LCBkaWRIYW5kbGVJbnB1dEV2
ZW50KCkpOworICAgIEVYUEVDVF9DQUxMKG1fbW9ja0lucHV0SGFuZGxlciwgc2NoZWR1bGVBbmlt
YXRpb24oKSk7CisgICAgRVhQRUNUX0NBTEwobV9tb2NrSW5wdXRIYW5kbGVyLCBzY3JvbGxCZWdp
bih0ZXN0aW5nOjpfLCB0ZXN0aW5nOjpfKSkKKyAgICAgICAgLldpbGxPbmNlKHRlc3Rpbmc6OlJl
dHVybihXZWJDb3JlOjpDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhcnRlZCkpOworICAg
IG1faW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1dEV2ZW50KGdlc3R1cmUpOworCisgICAgLy8gVGhl
IGZpcnN0IGFuaW1hdGUgY2FsbCBzaG91bGQgbGV0IHVzIHBpY2sgdXAgYW4gYW5pbWF0aW9uIHN0
YXJ0IHRpbWUsIGJ1dCB3ZQorICAgIC8vIHNob3VsZG4ndCBhY3R1YWxseSBtb3ZlIGFueXdoZXJl
IGp1c3QgeWV0LiBUaGUgZmlyc3QgZnJhbWUgYWZ0ZXIgdGhlIGZsaW5nIHN0YXJ0CisgICAgLy8g
d2lsbCB0eXBpY2FsbHkgaW5jbHVkZSB0aGUgbGFzdCBzY3JvbGwgZnJvbSB0aGUgZ2VzdHVyZSB0
aGF0IGxlYWQgdG8gdGhlIHNjcm9sbAorICAgIC8vIChlaXRoZXIgd2hlZWwgb3IgZ2VzdHVyZSBz
Y3JvbGwpLCBzbyB0aGVyZSBzaG91bGQgYmUgbm8gdmlzaWJsZSBoaXRjaC4KKyAgICBFWFBFQ1Rf
Q0FMTChtX21vY2tJbnB1dEhhbmRsZXIsIHNjaGVkdWxlQW5pbWF0aW9uKCkpOworICAgIEVYUEVD
VF9DQUxMKG1fbW9ja0lucHV0SGFuZGxlciwgc2Nyb2xsQmVnaW4odGVzdGluZzo6XywgdGVzdGlu
Zzo6XykpLlRpbWVzKDApOworICAgIG1faW5wdXRIYW5kbGVyLT5hbmltYXRlKDEwKTsKKworICAg
IC8vIFRoZSBzZWNvbmQgY2FsbCBzaG91bGQgc3RhcnQgc2Nyb2xsaW5nIGluIHRoZSArWCBkaXJl
Y3Rpb24uCisgICAgRVhQRUNUX0NBTEwobV9tb2NrSW5wdXRIYW5kbGVyLCBzY2hlZHVsZUFuaW1h
dGlvbigpKTsKKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tJbnB1dEhhbmRsZXIsIHNjcm9sbEJlZ2lu
KHRlc3Rpbmc6Ol8sIHRlc3Rpbmc6Ol8pKQorICAgICAgICAuV2lsbE9uY2UodGVzdGluZzo6UmV0
dXJuKFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGFydGVkKSk7CisgICAg
RVhQRUNUX0NBTEwobV9tb2NrSW5wdXRIYW5kbGVyLCBzY3JvbGxCeSh0ZXN0aW5nOjpQcm9wZXJ0
eSgmV2ViQ29yZTo6SW50U2l6ZTo6d2lkdGgsIHRlc3Rpbmc6Okd0KDApKSkpOworICAgIEVYUEVD
VF9DQUxMKG1fbW9ja0lucHV0SGFuZGxlciwgc2Nyb2xsRW5kKCkpOworICAgIG1faW5wdXRIYW5k
bGVyLT5hbmltYXRlKDEwLjEpOworCisgICAgLy8gSWYgd2UgY2FuY2VsIHRoZSBmbGluZywgdGhl
IG5leHQgYW5pbWF0aW9uIHNob3VsZCBiZSBhIG5vLW9wIGFuZCBzaG91bGQgbm90IHJlc3VsdCBp
biBhbm90aGVyCisgICAgLy8gZnJhbWUgYmVpbmcgcmVxdWVzdGVkLgorICAgIGdlc3R1cmUudHlw
ZSA9IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5nQ2FuY2VsOworICAgIEVYUEVD
VF9DQUxMKG1fbW9ja0NsaWVudCwgZGlkSGFuZGxlSW5wdXRFdmVudCgpKTsKKyAgICBtX2lucHV0
SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKKworICAgIEVYUEVDVF9DQUxMKG1f
bW9ja0lucHV0SGFuZGxlciwgc2NoZWR1bGVBbmltYXRpb24oKSkuVGltZXMoMCk7CisgICAgRVhQ
RUNUX0NBTEwobV9tb2NrSW5wdXRIYW5kbGVyLCBzY3JvbGxCZWdpbih0ZXN0aW5nOjpfLCB0ZXN0
aW5nOjpfKSkuVGltZXMoMCk7CisgICAgbV9pbnB1dEhhbmRsZXItPmFuaW1hdGUoMTAuMyk7Cit9
CiAKLSAgICBnZXN0dXJlLnR5cGUgPSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3Jv
bGxFbmQ7Ci0gICAgZ2VzdHVyZS5kZWx0YVggPSAyOwotICAgIGlucHV0SGFuZGxlci0+aGFuZGxl
SW5wdXRFdmVudChnZXN0dXJlKTsKLSAgICBFWFBFQ1RfVFJVRShtb2NrQ2xpZW50LmhhbmRsZWQo
KSk7Ci0gICAgRVhQRUNUX0ZBTFNFKG1vY2tDbGllbnQuc2VuZFRvV2lkZ2V0KCkpOwotICAgIEFT
U0VSVF9UUlVFKG1vY2tJbnB1dEhhbmRsZXIuYWN0aXZlR2VzdHVyZUFuaW1hdGlvbigpKTsKLSAg
ICBFWFBFQ1RfRkFMU0UobW9ja0lucHV0SGFuZGxlci5zY3JvbGxCeUNhbGxlZCgpKTsKLSAgICBt
b2NrSW5wdXRIYW5kbGVyLmFjdGl2ZUdlc3R1cmVBbmltYXRpb24oKS0+YW5pbWF0ZSgwLjAwMSk7
Ci0gICAgRVhQRUNUX1RSVUUobW9ja0lucHV0SGFuZGxlci5zY3JvbGxCeUNhbGxlZCgpKTsKLSAg
ICBtb2NrQ2xpZW50LnJlc2V0KCk7Ci0KLSAgICAvLyBWZXJpZnkgdGhhdCBhIEdlc3R1cmVUYXBE
b3duIGR1cmluZyBhbiBhbmltYXRpb24gY2FuY2VscyBpdC4KLSAgICBnZXN0dXJlLnR5cGUgPSBX
ZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBEb3duOwotICAgIGlucHV0SGFuZGxlci0+
aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKLSAgICBFWFBFQ1RfRkFMU0UobW9ja0lucHV0SGFu
ZGxlci5hY3RpdmVHZXN0dXJlQW5pbWF0aW9uKCkpOwotICAgIG1vY2tDbGllbnQucmVzZXQoKTsK
LQotICAgIC8vIFZlcmlmeSB0aGF0IGEgR2VzdHVyZVRhcERvd24gd2hlbiBubyBhbmltYXRpb24g
aXMgYWN0aXZlIGlzIG5vdCBoYW5kbGVkLgotICAgIGdlc3R1cmUudHlwZSA9IFdlYktpdDo6V2Vi
SW5wdXRFdmVudDo6R2VzdHVyZVRhcERvd247Ci0gICAgaW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1
dEV2ZW50KGdlc3R1cmUpOwotICAgIEVYUEVDVF9GQUxTRShtb2NrQ2xpZW50LmhhbmRsZWQoKSk7
Ci0gICAgRVhQRUNUX1RSVUUobW9ja0NsaWVudC5zZW5kVG9XaWRnZXQoKSk7Ci0KLSAgICBpbnB1
dEhhbmRsZXItPnNldENsaWVudCgwKTsKLSAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNodXRk
b3duKCk7CitURVNUX0YoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LCBnZXN0dXJl
RmxpbmdUcmFuc2ZlcikKK3sKKyAgICAvLyBXZSBzaG91bGQgaGFuZGxlIHRoZSBlbnRpcmUgc2Vx
dWVuY2Ugb3Vyc2VsdmVzLgorICAgIEVYUEVDVF9DQUxMKG1fbW9ja0NsaWVudCwgZGlkTm90SGFu
ZGxlSW5wdXRFdmVudCg6OnRlc3Rpbmc6Ol8pKS5UaW1lcygwKTsKKworICAgIC8vIE9uIHRoZSBm
bGluZyBzdGFydCwgd2Ugc2hvdWxkIHNjaGVkdWxlIGFuIGFuaW1hdGlvbiBidXQgbm90IGFjdHVh
bGx5IHN0YXJ0CisgICAgLy8gc2Nyb2xsaW5nLgorICAgIGdlc3R1cmUudHlwZSA9IFdlYktpdDo6
V2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5nU3RhcnQ7CisgICAgV2ViQ29yZTo6RmxvYXRTaXpl
IGZsaW5nRGVsdGEgPSBXZWJDb3JlOjpGbG9hdFNpemUoMTAwMCwgMCk7CisgICAgV2ViQ29yZTo6
SW50UG9pbnQgZmxpbmdQb2ludCA9IFdlYkNvcmU6OkludFBvaW50KDcsIDEzKTsKKyAgICBXZWJD
b3JlOjpJbnRQb2ludCBmbGluZ0dsb2JhbFBvaW50ID0gV2ViQ29yZTo6SW50UG9pbnQoMTcsIDIz
KTsKKyAgICBnZXN0dXJlLmRlbHRhWCA9IGZsaW5nRGVsdGEud2lkdGgoKTsKKyAgICBnZXN0dXJl
LmRlbHRhWSA9IGZsaW5nRGVsdGEuaGVpZ2h0KCk7CisgICAgZ2VzdHVyZS54ID0gZmxpbmdQb2lu
dC54KCk7CisgICAgZ2VzdHVyZS55ID0gZmxpbmdQb2ludC55KCk7CisgICAgZ2VzdHVyZS5nbG9i
YWxYID0gZmxpbmdHbG9iYWxQb2ludC54KCk7CisgICAgZ2VzdHVyZS5nbG9iYWxZID0gZmxpbmdH
bG9iYWxQb2ludC55KCk7CisgICAgRVhQRUNUX0NBTEwobV9tb2NrQ2xpZW50LCBkaWRIYW5kbGVJ
bnB1dEV2ZW50KCkpOworICAgIEVYUEVDVF9DQUxMKG1fbW9ja0lucHV0SGFuZGxlciwgc2NoZWR1
bGVBbmltYXRpb24oKSk7CisgICAgRVhQRUNUX0NBTEwobV9tb2NrSW5wdXRIYW5kbGVyLCBzY3Jv
bGxCZWdpbih0ZXN0aW5nOjpfLCB0ZXN0aW5nOjpfKSkKKyAgICAgICAgLldpbGxPbmNlKHRlc3Rp
bmc6OlJldHVybihXZWJDb3JlOjpDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhcnRlZCkp
OworICAgIG1faW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1dEV2ZW50KGdlc3R1cmUpOworCisgICAg
Ly8gVGhlIGZpcnN0IGFuaW1hdGUgY2FsbCBzaG91bGQgbGV0IHVzIHBpY2sgdXAgYW4gYW5pbWF0
aW9uIHN0YXJ0IHRpbWUsIGJ1dCB3ZQorICAgIC8vIHNob3VsZG4ndCBhY3R1YWxseSBtb3ZlIGFu
eXdoZXJlIGp1c3QgeWV0LiBUaGUgZmlyc3QgZnJhbWUgYWZ0ZXIgdGhlIGZsaW5nIHN0YXJ0Cisg
ICAgLy8gd2lsbCB0eXBpY2FsbHkgaW5jbHVkZSB0aGUgbGFzdCBzY3JvbGwgZnJvbSB0aGUgZ2Vz
dHVyZSB0aGF0IGxlYWQgdG8gdGhlIHNjcm9sbAorICAgIC8vIChlaXRoZXIgd2hlZWwgb3IgZ2Vz
dHVyZSBzY3JvbGwpLCBzbyB0aGVyZSBzaG91bGQgYmUgbm8gdmlzaWJsZSBoaXRjaC4KKyAgICBF
WFBFQ1RfQ0FMTChtX21vY2tJbnB1dEhhbmRsZXIsIHNjaGVkdWxlQW5pbWF0aW9uKCkpOworICAg
IEVYUEVDVF9DQUxMKG1fbW9ja0lucHV0SGFuZGxlciwgc2Nyb2xsQmVnaW4odGVzdGluZzo6Xywg
dGVzdGluZzo6XykpLlRpbWVzKDApOworICAgIG1faW5wdXRIYW5kbGVyLT5hbmltYXRlKDEwKTsK
KworICAgIC8vIFRoZSBzZWNvbmQgY2FsbCBzaG91bGQgc3RhcnQgc2Nyb2xsaW5nIGluIHRoZSAt
WCBkaXJlY3Rpb24uCisgICAgRVhQRUNUX0NBTEwobV9tb2NrSW5wdXRIYW5kbGVyLCBzY2hlZHVs
ZUFuaW1hdGlvbigpKTsKKyAgICBFWFBFQ1RfQ0FMTChtX21vY2tJbnB1dEhhbmRsZXIsIHNjcm9s
bEJlZ2luKHRlc3Rpbmc6Ol8sIHRlc3Rpbmc6Ol8pKQorICAgICAgICAuV2lsbE9uY2UodGVzdGlu
Zzo6UmV0dXJuKFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGFydGVkKSk7
CisgICAgRVhQRUNUX0NBTEwobV9tb2NrSW5wdXRIYW5kbGVyLCBzY3JvbGxCeSh0ZXN0aW5nOjpQ
cm9wZXJ0eSgmV2ViQ29yZTo6SW50U2l6ZTo6d2lkdGgsIHRlc3Rpbmc6Okx0KDApKSkpOworICAg
IEVYUEVDVF9DQUxMKG1fbW9ja0lucHV0SGFuZGxlciwgc2Nyb2xsRW5kKCkpOworICAgIG1faW5w
dXRIYW5kbGVyLT5hbmltYXRlKDEwLjEpOworCisgICAgLy8gTGV0J3Mgc2F5IG9uIHRoZSB0aGly
ZCBjYWxsIHdlIGhpdCBhIG5vbi1zY3JvbGxhYmxlIHJlZ2lvbi4gV2Ugc2hvdWxkIGFib3J0IHRo
ZSBmbGluZyBhbmQgbm90IHNjcm9sbC4KKyAgICAvLyBXZSBhbHNvIHNob3VsZCBwYXNzIHRoZSBj
dXJyZW50IGZsaW5nIHBhcmFtZXRlcnMgb3V0IHRvIHRoZSBjbGllbnQgc28gdGhlIHJlc3Qgb2Yg
dGhlIGZsaW5nIGNhbiBiZQorICAgIC8vIHRyYW5zZmVycmVkIHRvIHRoZSBtYWluIHRocmVhZC4K
KyAgICBFWFBFQ1RfQ0FMTChtX21vY2tJbnB1dEhhbmRsZXIsIHNjaGVkdWxlQW5pbWF0aW9uKCkp
OworICAgIEVYUEVDVF9DQUxMKG1fbW9ja0lucHV0SGFuZGxlciwgc2Nyb2xsQmVnaW4odGVzdGlu
Zzo6XywgdGVzdGluZzo6XykpCisgICAgICAgIC5XaWxsT25jZSh0ZXN0aW5nOjpSZXR1cm4oV2Vi
Q29yZTo6Q0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbEZhaWxlZCkpOworICAgIEVYUEVDVF9D
QUxMKG1fbW9ja0lucHV0SGFuZGxlciwgc2Nyb2xsQnkodGVzdGluZzo6XykpLlRpbWVzKDApOwor
ICAgIEVYUEVDVF9DQUxMKG1fbW9ja0lucHV0SGFuZGxlciwgc2Nyb2xsRW5kKCkpLlRpbWVzKDAp
OworICAgIC8vIEV4cGVjdGVkIHdoZWVsIGZsaW5nIGFuaW1hdGlvbiBwYXJhbWV0ZXJzOgorICAg
IC8vICopIGZsaW5nRGVsdGEgYW5kIGZsaW5nUG9pbnQgc2hvdWxkIG1hdGNoIHRoZSBvcmlnaW5h
bCBHZXN0dXJlRmxpbmdTdGFydCBldmVudAorICAgIC8vICopIHN0YXJ0VGltZSBzaG91bGQgYmUg
MTAgdG8gbWF0Y2ggdGhlIHRpbWUgcGFyYW1ldGVyIG9mIHRoZSBmaXJzdCBhbmltYXRlKCkgY2Fs
bCBhZnRlciB0aGUgR2VzdHVyZUZsaW5nU3RhcnQKKyAgICAvLyAqKSBjdW11bGF0aXZlU2Nyb2xs
IGRlcGVuZHMgb24gdGhlIGN1cnZlLCBidXQgc2luY2Ugd2UndmUgYW5pbWF0ZWQgaW4gdGhlIC1Y
IGRpcmVjdGlvbiB0aGUgWCB2YWx1ZSBzaG91bGQgYmUgPCAwCisgICAgRVhQRUNUX0NBTEwobV9t
b2NrSW5wdXRIYW5kbGVyLCB0cmFuc2ZlcldoZWVsRmxpbmdBbmltYXRpb24odGVzdGluZzo6QWxs
T2YoCisgICAgICAgIHRlc3Rpbmc6OkZpZWxkKCZXZWJDb3JlOjpBY3RpdmVXaGVlbEZsaW5nUGFy
YW1ldGVyczo6ZGVsdGEsIHRlc3Rpbmc6OkVxKGZsaW5nRGVsdGEpKSwKKyAgICAgICAgdGVzdGlu
Zzo6RmllbGQoJldlYkNvcmU6OkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzOjpwb2ludCwgdGVz
dGluZzo6RXEoZmxpbmdQb2ludCkpLAorICAgICAgICB0ZXN0aW5nOjpGaWVsZCgmV2ViQ29yZTo6
QWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnM6Omdsb2JhbFBvaW50LCB0ZXN0aW5nOjpFcShmbGlu
Z0dsb2JhbFBvaW50KSksCisgICAgICAgIHRlc3Rpbmc6OkZpZWxkKCZXZWJDb3JlOjpBY3RpdmVX
aGVlbEZsaW5nUGFyYW1ldGVyczo6c3RhcnRUaW1lLCB0ZXN0aW5nOjpFcSgxMCkpLAorICAgICAg
ICB0ZXN0aW5nOjpGaWVsZCgmV2ViQ29yZTo6QWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnM6OmN1
bXVsYXRpdmVTY3JvbGwsCisgICAgICAgICAgICB0ZXN0aW5nOjpQcm9wZXJ0eSgmV2ViQ29yZTo6
SW50U2l6ZTo6d2lkdGgsIHRlc3Rpbmc6Okd0KDApKSkpKSk7CisgICAgbV9pbnB1dEhhbmRsZXIt
PmFuaW1hdGUoMTAuMik7CisKKyAgICAvLyBPbmNlIHRoZSBmbGluZyBpcyB0cmFuc2ZlcnJlZCwg
d2Ugc2hvdWxkIHN0b3Agc2Nyb2xsaW5nLgorICAgIEVYUEVDVF9DQUxMKG1fbW9ja0lucHV0SGFu
ZGxlciwgc2NoZWR1bGVBbmltYXRpb24oKSkuVGltZXMoMCk7CisgICAgRVhQRUNUX0NBTEwobV9t
b2NrSW5wdXRIYW5kbGVyLCBzY3JvbGxCZWdpbih0ZXN0aW5nOjpfLCB0ZXN0aW5nOjpfKSkuVGlt
ZXMoMCk7CisgICAgbV9pbnB1dEhhbmRsZXItPmFuaW1hdGUoMTAuMyk7CisKKyAgICAvLyBTaW5j
ZSB3ZSd2ZSB0cmFuc2ZlcnJlZCB0aGUgZmxpbmcgdG8gdGhlIG1haW4gdGhyZWFkLCB3ZSBuZWVk
IHRvIHBhc3MgdGhlIG5leHQgR2VzdHVyZUZsaW5nQ2FuY2VsIHRvIHRoZSBtYWluCisgICAgLy8g
dGhyZWFkIGFzIHdlbGwuCisgICAgRVhQRUNUX0NBTEwobV9tb2NrQ2xpZW50LCBkaWROb3RIYW5k
bGVJbnB1dEV2ZW50KHRydWUpKTsKKyAgICBnZXN0dXJlLnR5cGUgPSBXZWJLaXQ6OldlYklucHV0
RXZlbnQ6Okdlc3R1cmVGbGluZ0NhbmNlbDsKKyAgICBtX2lucHV0SGFuZGxlci0+aGFuZGxlSW5w
dXRFdmVudChnZXN0dXJlKTsKIH0KIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132862</attachid>
            <date>2012-03-20 11:25:01 -0700</date>
            <delta_ts>2012-03-21 13:09:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80988-20120320142500.patch</filename>
            <type>text/plain</type>
            <size>11662</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3ZjQyZTQ0ODQwZTQ2
ODQ0ZGE2ZDg0NmI0OTZhODJiMzMzY2I3NzUzLi5mMjU2ODgyN2NiODM0NWM0OTE4OTI5MmM5MGNi
ODM4YmE5ZGQ0NTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wMy0yMCAg
RGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1
bV0gR0xfRVhUX29jY2x1c2lvbl9xdWVyeV9ib29sZWFuIGFuZCBHTF9DSFJPTUlVTV9jb21tYW5k
X2J1ZmZlcl9xdWVyeSBzdXBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODA5ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgRVhUX29jY2x1c2lvbl9xdWVyeSBBUEkgdG8gV2ViR3JhcGhpY3ND
b250ZXh0M0QuCisKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0
M0QuaDoKKyAgICAgICAgKFdlYkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYktpdDo6
V2ViR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZVF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYktpdDo6
V2ViR3JhcGhpY3NDb250ZXh0M0Q6OmRlbGV0ZVF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYktpdDo6
V2ViR3JhcGhpY3NDb250ZXh0M0Q6OmlzUXVlcnlFWFQpOgorICAgICAgICAoV2ViS2l0OjpXZWJH
cmFwaGljc0NvbnRleHQzRDo6YmVnaW5RdWVyeUVYVCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdy
YXBoaWNzQ29udGV4dDNEOjplbmRRdWVyeUVYVCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBo
aWNzQ29udGV4dDNEOjpnZXRRdWVyeWl2RVhUKToKKyAgICAgICAgKFdlYktpdDo6V2ViR3JhcGhp
Y3NDb250ZXh0M0Q6OmdldFF1ZXJ5T2JqZWN0dWl2RVhUKToKKwogMjAxMi0wMy0xOSAgTWljaGFs
IE1vY255ICA8bW1vY255QGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGRpbmcg
c3VwcG9ydCBmb3IgR0xfRVhUX2Rpc2NhcmRfZnJhbWVidWZmZXIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdj
MWU0YThhYWI5Y2QwYzZhZDljYWZlOTJmY2M1MjlmMDZjODBkMS4uMzgwMGU1ZWVhMDJjNWM5Njhh
ODJlNzZjMWM0NGNlZDM0MzMwZjQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEy
LTAzLTIwICBEYXZpZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
W0Nocm9taXVtXSBHTF9FWFRfb2NjbHVzaW9uX3F1ZXJ5X2Jvb2xlYW4gYW5kIEdMX0NIUk9NSVVN
X2NvbW1hbmRfYnVmZmVyX3F1ZXJ5IHN1cHBvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDk4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBFWFRfb2NjbHVzaW9uX3F1ZXJ5IEFQSSB0byBX
ZWJLaXQgY29tcG9zaXRvci4gQWRkCisgICAgICAgIEdMX0VYVF9vY2NsdXNpb25fcXVlcnlfYm9v
bGVhbiBhbmQgR0xfQ0hST01JVU1fY29tbWFuZF9idWZmZXJfcXVlcnkKKyAgICAgICAgZW51bXMu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJv
bWl1bS5oOgorICAgICAgICAoRXh0ZW5zaW9uczNEQ2hyb21pdW0pOgorCiAyMDEyLTAzLTE1ICBQ
YXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IHN1cHBvcnQgaW5saW5lIHNvdXJjZSBtYXBzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCA5MDU1ZGI1ZTA4MmNlMDhhYzExMDA3YTFiN2IwYzgwZWI1OTY3M2I5Li5hMzRl
MjExYmExNDk5MmE5M2VhYmJkOTcyYmJjYjQxNjI2MTAzNDYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAzLTIwICBEYXZpZCBSZXZlbWFuICA8cmV2
ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBHTF9FWFRfb2NjbHVzaW9u
X3F1ZXJ5X2Jvb2xlYW4gYW5kIEdMX0NIUk9NSVVNX2NvbW1hbmRfYnVmZmVyX3F1ZXJ5IHN1cHBv
cnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDk4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9z
ZSBFWFRfb2NjbHVzaW9uX3F1ZXJ5IEFQSSB0byBXZWJLaXQgY29tcG9zaXRvci4KKworICAgICAg
ICAqIHNyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRl
bnNpb25zM0RDaHJvbWl1bTo6Y3JlYXRlUXVlcnlFWFQpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RDaHJvbWl1bTo6ZGVsZXRlUXVlcnlFWFQpOgor
ICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNEQ2hyb21pdW06OmlzUXVlcnlFWFQpOgorICAg
ICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNEQ2hyb21pdW06OmJlZ2luUXVlcnlFWFQpOgorICAg
ICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNEQ2hyb21pdW06OmVuZFF1ZXJ5RVhUKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRENocm9taXVtOjpnZXRRdWVyeWl2RVhUKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRENocm9taXVtOjpnZXRRdWVyeU9iamVjdHVpdkVYVCk6
CisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oOgorICAg
ICAgICAoR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKToKKyAgICAgICAgKiB0ZXN0cy9GYWtlV2Vi
R3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29u
dGV4dDNEOjpjcmVhdGVRdWVyeUVYVCk6CisgICAgICAgIChXZWJLaXQ6OkZha2VXZWJHcmFwaGlj
c0NvbnRleHQzRDo6ZGVsZXRlUXVlcnlFWFQpOgorICAgICAgICAoV2ViS2l0OjpGYWtlV2ViR3Jh
cGhpY3NDb250ZXh0M0Q6OmlzUXVlcnlFWFQpOgorICAgICAgICAoV2ViS2l0OjpGYWtlV2ViR3Jh
cGhpY3NDb250ZXh0M0Q6OmJlZ2luUXVlcnlFWFQpOgorICAgICAgICAoV2ViS2l0OjpGYWtlV2Vi
R3JhcGhpY3NDb250ZXh0M0Q6OmVuZFF1ZXJ5RVhUKToKKyAgICAgICAgKFdlYktpdDo6RmFrZVdl
YkdyYXBoaWNzQ29udGV4dDNEOjpnZXRRdWVyeWl2RVhUKToKKyAgICAgICAgKFdlYktpdDo6RmFr
ZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpnZXRRdWVyeU9iamVjdHVpdkVYVCk6CisgICAgICAgIChG
YWtlV2ViR3JhcGhpY3NDb250ZXh0M0QpOgorCiAyMDEyLTAzLTIwICBLZWlzaGkgSGF0dG9yaSAg
PGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTWFya2luZyBXZWJGcmFt
ZVRlc3QuRGl2QXV0b1pvb21QYXJhbXNUZXN0IGFzIGZhaWxpbmcuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmggYi9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKaW5kZXgg
MmFjZDYyMGExZDNjNGNiOGVkMjUzNTY2MjNmMDAyNGYzM2I5N2M2MC4uYmVlZDllNTg1ZmI2NjJj
M2EzMzQ3NTJkYTBjMzIxMGNlMTNkNTQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtNDA3LDYgKzQwNywx
NCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRleFN0b3JhZ2UyREVYVChXR0MzRGVudW0g
dGFyZ2V0LCBXR0MzRGludCBsZXZlbHMsIFdHQzNEdWludCBpbnRlcm5hbGZvcm1hdCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdHQzNEaW50IHdpZHRoLCBXR0MzRGludCBoZWln
aHQpIHsgfQogCisgICAgLy8gR0xfRVhUX29jY2x1c2lvbl9xdWVyeQorICAgIHZpcnR1YWwgV2Vi
R0xJZCBjcmVhdGVRdWVyeUVYVCgpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVs
ZXRlUXVlcnlFWFQoV2ViR0xJZCBxdWVyeSkgeyB9CisgICAgdmlydHVhbCBXR0MzRGJvb2xlYW4g
aXNRdWVyeUVYVChXZWJHTElkIHF1ZXJ5KSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
dm9pZCBiZWdpblF1ZXJ5RVhUKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdMSWQgcXVlcnkpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBlbmRRdWVyeUVYVChXR0MzRGVudW0gdGFyZ2V0KSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZ2V0UXVlcnlpdkVYVChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gcG5h
bWUsIFdHQzNEaW50KiBwYXJhbXMpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBnZXRRdWVyeU9iamVj
dHVpdkVYVChXZWJHTElkIHF1ZXJ5LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEdWludCogcGFyYW1z
KSB7IH0KIAogI2lmIFdFQktJVF9VU0lOR19TS0lBCiAgICAgR3JHTEludGVyZmFjZSogY3JlYXRl
R3JHTEludGVyZmFjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgKaW5kZXggNjYy
MDBjMTYzM2Y0MzBkMzUzYzdiZjIyN2Y4ODZjMzhmMDk4ZGEwYS4uOTI4MjEzNjBiYWE5NmQ0OTJi
ZGFmYTdmMmVjZDU3NTE4M2Q4ZTk1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5o
CkBAIC00Niw4ICs0NiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gICBHTF9DSFJPTUlVTV9yYXRlX2xp
bWl0X29mZnNjcmVlbl9jb250ZXh0CiAgICAgLy8gICBHTF9DSFJPTUlVTV9wYWludF9mcmFtZWJ1
ZmZlcl9jYW52YXMKICAgICAvLyAgIEdMX0NIUk9NSVVNX2lvc3VyZmFjZSAoTWFjIE9TIFggc3Bl
Y2lmaWMpCisgICAgLy8gICBHTF9DSFJPTUlVTV9jb21tYW5kX2J1ZmZlcl9xdWVyeQogICAgIC8v
ICAgR0xfQU5HTEVfdGV4dHVyZV91c2FnZQogICAgIC8vICAgR0xfRVhUX3RleHR1cmVfc3RvcmFn
ZQorICAgIC8vICAgR0xfRVhUX29jY2x1c2lvbl9xdWVyeV9ib29sZWFuCiAKICAgICAvLyBFeHRl
bnNpb25zM0QgbWV0aG9kcy4KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHMoY29uc3QgU3RyaW5n
Jik7CkBAIC03NSw3ICs3NywxNyBAQCBwdWJsaWM6CiAgICAgICAgIEdMX0ZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfQU5HTEUgPSAweDkzQTMsCiAKICAgICAgICAgLy8gR0xfRVhUX3RleHR1cmVfc3Rv
cmFnZQotICAgICAgICBCR1JBOF9FWFQgPSAweDkzQTEKKyAgICAgICAgQkdSQThfRVhUID0gMHg5
M0ExLAorCisgICAgICAgIC8vIEdMX0VYVF9vY2NsdXNpb25fcXVlcnlfYm9vbGVhbgorICAgICAg
ICBBTllfU0FNUExFU19QQVNTRURfRVhUID0gMHg4QzJGLAorICAgICAgICBBTllfU0FNUExFU19Q
QVNTRURfQ09OU0VSVkFUSVZFX0VYVCA9IDB4OEQ2QSwKKyAgICAgICAgQ1VSUkVOVF9RVUVSWV9F
WFQgPSAweDg4NjUsCisgICAgICAgIFFVRVJZX1JFU1VMVF9FWFQgPSAweDg4NjYsCisgICAgICAg
IFFVRVJZX1JFU1VMVF9BVkFJTEFCTEVfRVhUID0gMHg4ODY3LAorCisgICAgICAgIC8vIEdMX0NI
Uk9NSVVNX2NvbW1hbmRfYnVmZmVyX3F1ZXJ5CisgICAgICAgIENPTU1BTkRTX0lTU1VFRF9DSFJP
TUlVTSA9IDB4ODRGMgogICAgIH07CiAKICAgICAvLyBHTF9DSFJPTUlVTV9wb3N0X3N1Yl9idWZm
ZXIKQEAgLTEzNSw2ICsxNDcsMTUgQEAgcHVibGljOgogICAgIC8vIEdMX0VYVF90ZXh0dXJlX3N0
b3JhZ2UKICAgICB2b2lkIHRleFN0b3JhZ2UyREVYVCh1bnNpZ25lZCB0YXJnZXQsIGludCBsZXZl
bHMsIHVuc2lnbmVkIGludGVybmFsZm9ybWF0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogCisg
ICAgLy8gR0xfRVhUX29jY2x1c2lvbl9xdWVyeQorICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRl
UXVlcnlFWFQoKTsKKyAgICB2b2lkIGRlbGV0ZVF1ZXJ5RVhUKFBsYXRmb3JtM0RPYmplY3QpOwor
ICAgIEdDM0Rib29sZWFuIGlzUXVlcnlFWFQoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdm9pZCBi
ZWdpblF1ZXJ5RVhUKEdDM0RlbnVtLCBQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIGVuZFF1
ZXJ5RVhUKEdDM0RlbnVtKTsKKyAgICB2b2lkIGdldFF1ZXJ5aXZFWFQoR0MzRGVudW0sIEdDM0Rl
bnVtLCBHQzNEaW50Kik7CisgICAgdm9pZCBnZXRRdWVyeU9iamVjdHVpdkVYVChQbGF0Zm9ybTNE
T2JqZWN0LCBHQzNEZW51bSwgR0MzRHVpbnQqKTsKKwogcHJpdmF0ZToKICAgICAvLyBJbnN0YW5j
ZXMgb2YgdGhpcyBjbGFzcyBhcmUgc3RyaWN0bHkgb3duZWQgYnkgdGhlIEdyYXBoaWNzQ29udGV4
dDNEIGltcGxlbWVudGF0aW9uIGFuZCBkbyBub3QKICAgICAvLyBuZWVkIHRvIGJlIGluc3RhbnRp
YXRlZCBieSBhbnkgb3RoZXIgY29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0V4dGVuc2lvbnMzRENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAppbmRleCA0YTYyNTFlOWZkMmVkZjRhYTkwOGY0
M2FiZWFmNmMyZTVlZjJlZWI1Li44NGFkMGY3OGEzMjNjN2VlZDQ0ZWMwMTBjNWQwZWIwYTUyZTg5
ZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FeHRlbnNpb25zM0RD
aHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNE
Q2hyb21pdW0uY3BwCkBAIC0xNzAsNiArMTcwLDQxIEBAIHZvaWQgRXh0ZW5zaW9uczNEQ2hyb21p
dW06OnRleFN0b3JhZ2UyREVYVCh1bnNpZ25lZCBpbnQgdGFyZ2V0LCBpbnQgbGV2ZWxzLCB1bnNp
CiAgICAgbV9wcml2YXRlLT50ZXhTdG9yYWdlMkRFWFQodGFyZ2V0LCBsZXZlbHMsIGludGVybmFs
Rm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKIH0KIAorUGxhdGZvcm0zRE9iamVjdCBFeHRlbnNpb25z
M0RDaHJvbWl1bTo6Y3JlYXRlUXVlcnlFWFQoKQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmNy
ZWF0ZVF1ZXJ5RVhUKCk7Cit9CisKK3ZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmRlbGV0ZVF1
ZXJ5RVhUKFBsYXRmb3JtM0RPYmplY3QgcXVlcnkpCit7CisgICAgbV9wcml2YXRlLT5kZWxldGVR
dWVyeUVYVChxdWVyeSk7Cit9CisKK0dDM0Rib29sZWFuIEV4dGVuc2lvbnMzRENocm9taXVtOjpp
c1F1ZXJ5RVhUKFBsYXRmb3JtM0RPYmplY3QgcXVlcnkpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0
ZS0+aXNRdWVyeUVYVChxdWVyeSk7Cit9CisKK3ZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmJl
Z2luUXVlcnlFWFQoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0IHF1ZXJ5KQorewor
ICAgIG1fcHJpdmF0ZS0+YmVnaW5RdWVyeUVYVCh0YXJnZXQsIHF1ZXJ5KTsKK30KKwordm9pZCBF
eHRlbnNpb25zM0RDaHJvbWl1bTo6ZW5kUXVlcnlFWFQoR0MzRGVudW0gdGFyZ2V0KQoreworICAg
IG1fcHJpdmF0ZS0+ZW5kUXVlcnlFWFQodGFyZ2V0KTsKK30KKwordm9pZCBFeHRlbnNpb25zM0RD
aHJvbWl1bTo6Z2V0UXVlcnlpdkVYVChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBH
QzNEaW50KiBwYXJhbXMpCit7CisgICAgbV9wcml2YXRlLT5nZXRRdWVyeWl2RVhUKHRhcmdldCwg
cG5hbWUsIHBhcmFtcyk7Cit9CisKK3ZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmdldFF1ZXJ5
T2JqZWN0dWl2RVhUKFBsYXRmb3JtM0RPYmplY3QgcXVlcnksIEdDM0RlbnVtIHBuYW1lLCBHQzNE
dWludCogcGFyYW1zKQoreworICAgIG1fcHJpdmF0ZS0+Z2V0UXVlcnlPYmplY3R1aXZFWFQocXVl
cnksIHBuYW1lLCBwYXJhbXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCmluZGV4IGJhNjU5YzI5MTQxM2E5NTIw
YmVhYjRkM2U2MTQ3YjZlN2Q5NjkwNTQuLjNmNzY2MzBiNzM5NTRiOWRhOGVmZmM3YmUzZWRmNmQ2
ZjMwYzY2N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNz
Q29udGV4dDNEQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dy
YXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCkBAIC04OTIsNiArODkyLDE0IEBAIERFTEVHQVRF
X1RPX0lNUExfMVIoZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFLCBQbGF0Zm9ybTNET2Jq
ZWN0LCBTdHJpbmcpCiBERUxFR0FURV9UT19JTVBMXzUodGV4SW1hZ2VJT1N1cmZhY2UyRENIUk9N
SVVNLCBHQzNEZW51bSwgR0MzRGludCwgR0MzRGludCwgR0MzRHVpbnQsIEdDM0R1aW50KQogREVM
RUdBVEVfVE9fSU1QTF81KHRleFN0b3JhZ2UyREVYVCwgR0MzRGVudW0sIEdDM0RpbnQsIEdDM0R1
aW50LCBHQzNEaW50LCBHQzNEaW50KQogCitERUxFR0FURV9UT19JTVBMX1IoY3JlYXRlUXVlcnlF
WFQsIFBsYXRmb3JtM0RPYmplY3QpCitERUxFR0FURV9UT19JTVBMXzEoZGVsZXRlUXVlcnlFWFQs
IFBsYXRmb3JtM0RPYmplY3QpCitERUxFR0FURV9UT19JTVBMXzFSKGlzUXVlcnlFWFQsIFBsYXRm
b3JtM0RPYmplY3QsIEdDM0Rib29sZWFuKQorREVMRUdBVEVfVE9fSU1QTF8yKGJlZ2luUXVlcnlF
WFQsIEdDM0RlbnVtLCBQbGF0Zm9ybTNET2JqZWN0KQorREVMRUdBVEVfVE9fSU1QTF8xKGVuZFF1
ZXJ5RVhULCBHQzNEZW51bSkKK0RFTEVHQVRFX1RPX0lNUExfMyhnZXRRdWVyeWl2RVhULCBHQzNE
ZW51bSwgR0MzRGVudW0sIEdDM0RpbnQqKQorREVMRUdBVEVfVE9fSU1QTF8zKGdldFF1ZXJ5T2Jq
ZWN0dWl2RVhULCBQbGF0Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0MzRHVpbnQqKQorCiAvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIC8vIEdyYXBoaWNzQ29udGV4dDNECiAvLwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAppbmRleCA2ZjA4
MDk1ZGY2ZWQ3MzBiNGYwZjZhNmFjMzhjNjE0NzJkMjA5ODQ1Li41MmU5ODA3NjUyNDQyZTI2YTdh
ZjFhMjk5ZGZmNzViY2MwMWUyNjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaApAQCAtMzExLDYgKzMxMSwxNSBAQCBw
dWJsaWM6CiAgICAgLy8gR0xfRVhUX3RleHR1cmVfc3RvcmFnZQogICAgIHZvaWQgdGV4U3RvcmFn
ZTJERVhUKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbHMsIEdDM0R1aW50IGludGVybmFs
Zm9ybWF0LCBHQzNEaW50IHdpZHRoLCBHQzNEaW50IGhlaWdodCk7CiAKKyAgICAvLyBHTF9FWFRf
b2NjbHVzaW9uX3F1ZXJ5CisgICAgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVRdWVyeUVYVCgpOwor
ICAgIHZvaWQgZGVsZXRlUXVlcnlFWFQoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgR0MzRGJvb2xl
YW4gaXNRdWVyeUVYVChQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIGJlZ2luUXVlcnlFWFQo
R0MzRGVudW0sIFBsYXRmb3JtM0RPYmplY3QpOworICAgIHZvaWQgZW5kUXVlcnlFWFQoR0MzRGVu
dW0pOworICAgIHZvaWQgZ2V0UXVlcnlpdkVYVChHQzNEZW51bSwgR0MzRGVudW0sIEdDM0RpbnQq
KTsKKyAgICB2b2lkIGdldFF1ZXJ5T2JqZWN0dWl2RVhUKFBsYXRmb3JtM0RPYmplY3QsIEdDM0Rl
bnVtLCBHQzNEdWludCopOworCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZShQYXNzT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+LCBib29sIHByZXNlcnZl
RHJhd2luZ0J1ZmZlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0Zha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDgwNTgyNGIyNGQ1ZTA0MDRmNDg3
YTg4ZjZjYmNhN2NmZDc2ZTQ1YzcuLjk2NmYxNDIxNGZiMzIxY2VkZTQzODVhMDExMDg1ZmZhODQ0
OTU4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmFrZVdlYkdy
YXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GYWtl
V2ViR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtMjU4LDYgKzI1OCwxNCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHRleFN0b3JhZ2UyREVYVChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBs
ZXZlbHMsIFdHQzNEdWludCBpbnRlcm5hbGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdHQzNEaW50IHdpZHRoLCBXR0MzRGludCBoZWlnaHQpIHsgfQogCisgICAgdmly
dHVhbCBXZWJHTElkIGNyZWF0ZVF1ZXJ5RVhUKCkgeyByZXR1cm4gMTsgfQorICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVRdWVyeUVYVChXZWJHTElkKSB7IH0KKyAgICB2aXJ0dWFsIEdDM0Rib29sZWFu
IGlzUXVlcnlFWFQoV2ViR0xJZCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBi
ZWdpblF1ZXJ5RVhUKEdDM0RlbnVtLCBXZWJHTElkKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZW5k
UXVlcnlFWFQoR0MzRGVudW0pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBnZXRRdWVyeWl2RVhUKEdD
M0RlbnVtLCBHQzNEZW51bSwgR0MzRGludCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBnZXRRdWVy
eU9iamVjdHVpdkVYVChXZWJHTElkLCBHQzNEZW51bSwgR0MzRHVpbnQqKSB7IH0KKwogcHJvdGVj
dGVkOgogICAgIEF0dHJpYnV0ZXMgbV9hdHRyczsKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>