<?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>155552</bug_id>
          
          <creation_ts>2016-03-16 11:52:18 -0700</creation_ts>
          <short_desc>Implement SmallPtrSet and integrate it into the Parser</short_desc>
          <delta_ts>2016-03-20 13:02:42 -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>JavaScriptCore</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
    
    <cc>sukolsak</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1175425</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-16 11:52:18 -0700</bug_when>
    <thetext>This data structure will use an inline array when the set is small.
It won&apos;t have a remove operation.
This should help speed up some of the HashSets we use inside the parser.
It&apos;ll also be helpful in other places.

See http://llvm.org/docs/doxygen/html/SmallPtrSet_8h_source.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175665</commentid>
    <comment_count>1</comment_count>
      <attachid>274272</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-17 02:06:04 -0700</bug_when>
    <thetext>Created attachment 274272
WIP

might be ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175666</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-17 02:06:26 -0700</bug_when>
    <thetext>I&apos;ve been getting about a 1.5-2.5% octane/code-load speed up from this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175868</commentid>
    <comment_count>3</comment_count>
      <attachid>274328</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-17 15:24:27 -0700</bug_when>
    <thetext>Created attachment 274328
perf numbers

looks like a code-load progression.
Will post patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175932</commentid>
    <comment_count>4</comment_count>
      <attachid>274344</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-17 17:32:44 -0700</bug_when>
    <thetext>Created attachment 274344
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175933</commentid>
    <comment_count>5</comment_count>
      <attachid>274344</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-17 17:33:43 -0700</bug_when>
    <thetext>Comment on attachment 274344
patch

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

&gt; Source/JavaScriptCore/parser/Parser.h:195
&gt; +    Scope(Scope&amp;&amp; rhs)

Actually, with vector.constructAndAppend(...) we don&apos;t need this.
I&apos;m removing it locally.

I&apos;m also adding a comment at the top of the fields inside Scope saying
that they must be movable through memcpy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175935</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-17 17:34:42 -0700</bug_when>
    <thetext>Attachment 274344 did not pass style-queue:


ERROR: Source/WTF/wtf/SmallPtrSet.h:113:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/SmallPtrSet.h:243:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 8 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>1175937</commentid>
    <comment_count>7</comment_count>
      <attachid>274345</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-17 17:37:52 -0700</bug_when>
    <thetext>Created attachment 274345
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175938</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-17 17:39:18 -0700</bug_when>
    <thetext>Attachment 274345 did not pass style-queue:


ERROR: Source/WTF/wtf/SmallPtrSet.h:113:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/SmallPtrSet.h:243:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 8 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>1175939</commentid>
    <comment_count>9</comment_count>
      <attachid>274346</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-17 17:42:15 -0700</bug_when>
    <thetext>Created attachment 274346
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175941</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-17 17:44:00 -0700</bug_when>
    <thetext>Attachment 274346 did not pass style-queue:


ERROR: Source/WTF/wtf/SmallPtrSet.h:113:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 1 in 8 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>1175943</commentid>
    <comment_count>11</comment_count>
      <attachid>274347</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-17 17:44:41 -0700</bug_when>
    <thetext>Created attachment 274347
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175945</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-17 17:46:54 -0700</bug_when>
    <thetext>Attachment 274347 did not pass style-queue:


ERROR: Source/WTF/wtf/SmallPtrSet.h:113:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 1 in 8 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>1175986</commentid>
    <comment_count>13</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-17 19:11:50 -0700</bug_when>
    <thetext>landed in:
http://trac.webkit.org/changeset/198375</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175998</commentid>
    <comment_count>14</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-03-17 20:03:20 -0700</bug_when>
    <thetext>Would there be value in trying to add this optimization (perhaps optionally using traits) to our HashMap/HashSet code? Presumably this optimization could be useful in other places, where they weren&apos;t necessarily storing pointers.

Also, is the reason you don&apos;t support remove to avoid having a branch for a deleteValue sentinel?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176064</commentid>
    <comment_count>15</comment_count>
      <attachid>274347</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2016-03-17 23:33:05 -0700</bug_when>
    <thetext>Comment on attachment 274347
patch

I would rather have had the inline size be a template parameter (as we do for other data structures) - we could give a default capacity so the general behaviour wouldn&apos;t be impacted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176256</commentid>
    <comment_count>16</comment_count>
      <attachid>274347</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-03-18 11:56:19 -0700</bug_when>
    <thetext>Comment on attachment 274347
patch

Longer-term, it would be nice to have inline capacity as an option in WTF::HashSet and WTF::HashMap. Perhaps the optimizations you&apos;ve added for never removing, linear scanning, and memcpy are fundamentally incompatible with those more flexible data structures. But maybe not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176608</commentid>
    <comment_count>17</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-20 12:58:06 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Would there be value in trying to add this optimization (perhaps optionally
&gt; using traits) to our HashMap/HashSet code? Presumably this optimization
&gt; could be useful in other places, where they weren&apos;t necessarily storing
&gt; pointers.
&gt; 
&gt; Also, is the reason you don&apos;t support remove to avoid having a branch for a
&gt; deleteValue sentinel?

I think it&apos;s worth experimenting with some inline capacity inside HashMap/HashSet.
I&apos;m sure there are places where this would really help out.

Not supporting remove() does remove a branch, but it also simplifies some
of the assumptions made in the code. It wouldn&apos;t be that difficult to add support
for remove, but I&apos;m hesitant to do it. I really want this data structure to
be as simple as possible.

I think one place where it might be worth adding some complexity is in supporting
smart pointers. I don&apos;t think it&apos;d be that difficult to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176609</commentid>
    <comment_count>18</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-20 12:59:07 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Comment on attachment 274347 [details]
&gt; patch
&gt; 
&gt; I would rather have had the inline size be a template parameter (as we do
&gt; for other data structures) - we could give a default capacity so the general
&gt; behaviour wouldn&apos;t be impacted.

I think this is worth doing at some point. It seems like a good patch
to do when we find code that needs it. LLVM&apos;s implementation does support
inline capacity as a template parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176610</commentid>
    <comment_count>19</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-20 13:02:42 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Comment on attachment 274347 [details]
&gt; patch
&gt; 
&gt; Longer-term, it would be nice to have inline capacity as an option in
&gt; WTF::HashSet and WTF::HashMap. Perhaps the optimizations you&apos;ve added for
&gt; never removing, linear scanning, and memcpy are fundamentally incompatible
&gt; with those more flexible data structures. But maybe not.

I&apos;m not sure. I would have to familiarize myself more with the details
of how HashMap/HashSet are implemented. I&apos;m sure it would be possible
to add inline capacity to HashMap/HashSet in some form, but maybe it
wouldn&apos;t be exactly as it is implemented here. For example, HashMap/HashSet
support remove, so when we&apos;re in small mode and we perform contains(.) we will 
have to traverse the entire inline array instead of just up to m_size.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274272</attachid>
            <date>2016-03-17 02:06:04 -0700</date>
            <delta_ts>2016-03-17 17:32:44 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>19511</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAJKHJldmlzaW9uIDE5
ODI5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzA1LDEwICszMDUsOCBAQCBTdHJpbmcgUGFyc2VyPExleGVyVHlwZT46OnBh
cnNlSW5uZXIoY29uCiAgICAgZm9yIChhdXRvJiBlbnRyeSA6IGNhcHR1cmVkVmFyaWFibGVzKQog
ICAgICAgICB2YXJEZWNsYXJhdGlvbnMubWFya1ZhcmlhYmxlQXNDYXB0dXJlZChlbnRyeSk7CiAK
LSAgICBJZGVudGlmaWVyU2V0IHVzZWRWYXJpYWJsZXM7Ci0gICAgc2NvcGUtPmdldFVzZWRWYXJp
YWJsZXModXNlZFZhcmlhYmxlcyk7CiAgICAgaWYgKHBhcnNlTW9kZSA9PSBTb3VyY2VQYXJzZU1v
ZGU6OkdlbmVyYXRvcldyYXBwZXJGdW5jdGlvbk1vZGUpIHsKLSAgICAgICAgaWYgKHVzZWRWYXJp
YWJsZXMuY29udGFpbnMobV92bS0+cHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLmltcGwoKSkpCisg
ICAgICAgIGlmIChzY29wZS0+dXNlZFZhcmlhYmxlc0NvbnRhaW5zKG1fdm0tPnByb3BlcnR5TmFt
ZXMtPmFyZ3VtZW50cy5pbXBsKCkpKQogICAgICAgICAgICAgY29udGV4dC5wcm9wYWdhdGVBcmd1
bWVudHNVc2UoKTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXIuaAkocmV2aXNpb24gMTk4MjkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTUgKzQwLDcgQEAKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KLW5hbWVzcGFjZSBKU0Mgewotc3RydWN0IFNjb3BlOwotfQotCi1uYW1lc3BhY2Ug
V1RGIHsKLXRlbXBsYXRlIDw+IHN0cnVjdCBWZWN0b3JUcmFpdHM8SlNDOjpTY29wZT4gOiBTaW1w
bGVDbGFzc1ZlY3RvclRyYWl0cyB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuSW5pdGlhbGl6
ZVdpdGhNZW1zZXQgPSBmYWxzZTsgLy8gTm90IGFsbCBTY29wZSBkYXRhIG1lbWJlcnMgaW5pdGlh
bGl6ZSB0byAwLgotfTsKLX0KKyNpbmNsdWRlIDx3dGYvU21hbGxQdHJTZXQuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CiAKQEAgLTYwLDYgKzUyLDggQEAgY2xhc3MgVk07CiBjbGFzcyBQcm9ncmFtTm9k
ZTsKIGNsYXNzIFNvdXJjZUNvZGU7CiAKK3R5cGVkZWYgU21hbGxQdHJTZXQ8VW5pcXVlZFN0cmlu
Z0ltcGwqPiBJbXBsU2V0OworCiAvLyBNYWNyb3MgdG8gbWFrZSB0aGUgbW9yZSBjb21tb24gVHJl
ZUJ1aWxkZXIgdHlwZXMgYSBsaXR0bGUgbGVzcyB2ZXJib3NlCiAjZGVmaW5lIFRyZWVTdGF0ZW1l
bnQgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlN0YXRlbWVudAogI2RlZmluZSBUcmVlRXhwcmVzc2lv
biB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6RXhwcmVzc2lvbgpAQCAtMTU4LDYgKzE1Miw4IEBAIHBy
aXZhdGU6CiB9OwogCiBzdHJ1Y3QgU2NvcGUgeworV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGUp
OworICAgIHB1YmxpYzoKICAgICBTY29wZShjb25zdCBWTSogdm0sIGJvb2wgaXNGdW5jdGlvbiwg
Ym9vbCBpc0dlbmVyYXRvciwgYm9vbCBzdHJpY3RNb2RlLCBib29sIGlzQXJyb3dGdW5jdGlvbikK
ICAgICAgICAgOiBtX3ZtKHZtKQogICAgICAgICAsIG1fc2hhZG93c0FyZ3VtZW50cyhmYWxzZSkK
QEAgLTE4NSw3ICsxODEsNyBAQCBzdHJ1Y3QgU2NvcGUgewogICAgIHsKICAgICB9CiAKLSAgICBT
Y29wZShjb25zdCBTY29wZSYgcmhzKQorICAgIFNjb3BlKFNjb3BlJiYgcmhzKQogICAgICAgICA6
IG1fdm0ocmhzLm1fdm0pCiAgICAgICAgICwgbV9zaGFkb3dzQXJndW1lbnRzKHJocy5tX3NoYWRv
d3NBcmd1bWVudHMpCiAgICAgICAgICwgbV91c2VzRXZhbChyaHMubV91c2VzRXZhbCkKQEAgLTIw
OSwxNyArMjA1LDE2IEBAIHN0cnVjdCBTY29wZSB7CiAgICAgICAgICwgbV9sb29wRGVwdGgocmhz
Lm1fbG9vcERlcHRoKQogICAgICAgICAsIG1fc3dpdGNoRGVwdGgocmhzLm1fc3dpdGNoRGVwdGgp
CiAgICAgICAgICwgbV9pbm5lckFycm93RnVuY3Rpb25GZWF0dXJlcyhyaHMubV9pbm5lckFycm93
RnVuY3Rpb25GZWF0dXJlcykKLSAgICAgICAgLCBtX21vZHVsZVNjb3BlRGF0YShyaHMubV9tb2R1
bGVTY29wZURhdGEpCi0gICAgewotICAgICAgICBpZiAocmhzLm1fbGFiZWxzKSB7Ci0gICAgICAg
ICAgICBtX2xhYmVscyA9IHN0ZDo6bWFrZV91bmlxdWU8TGFiZWxTdGFjaz4oKTsKLQotICAgICAg
ICAgICAgdHlwZWRlZiBMYWJlbFN0YWNrOjpjb25zdF9pdGVyYXRvciBpdGVyYXRvcjsKLSAgICAg
ICAgICAgIGl0ZXJhdG9yIGVuZCA9IHJocy5tX2xhYmVscy0+ZW5kKCk7Ci0gICAgICAgICAgICBm
b3IgKGl0ZXJhdG9yIGl0ID0gcmhzLm1fbGFiZWxzLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
Ci0gICAgICAgICAgICAgICAgbV9sYWJlbHMtPmFwcGVuZChTY29wZUxhYmVsSW5mbyB7IGl0LT51
aWQsIGl0LT5pc0xvb3AgfSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgICAgICwgbV9sYWJlbHMo
V1RGTW92ZShyaHMubV9sYWJlbHMpKQorICAgICAgICAsIG1fZGVjbGFyZWRQYXJhbWV0ZXJzKFdU
Rk1vdmUocmhzLm1fZGVjbGFyZWRQYXJhbWV0ZXJzKSkKKyAgICAgICAgLCBtX2RlY2xhcmVkVmFy
aWFibGVzKFdURk1vdmUocmhzLm1fZGVjbGFyZWRWYXJpYWJsZXMpKQorICAgICAgICAsIG1fbGV4
aWNhbFZhcmlhYmxlcyhXVEZNb3ZlKHJocy5tX2xleGljYWxWYXJpYWJsZXMpKQorICAgICAgICAs
IG1fdXNlZFZhcmlhYmxlcyhXVEZNb3ZlKHJocy5tX3VzZWRWYXJpYWJsZXMpKQorICAgICAgICAs
IG1fY2xvc2VkVmFyaWFibGVDYW5kaWRhdGVzKFdURk1vdmUocmhzLm1fY2xvc2VkVmFyaWFibGVD
YW5kaWRhdGVzKSkKKyAgICAgICAgLCBtX3dyaXR0ZW5WYXJpYWJsZXMoV1RGTW92ZShyaHMubV93
cml0dGVuVmFyaWFibGVzKSkKKyAgICAgICAgLCBtX21vZHVsZVNjb3BlRGF0YShXVEZNb3ZlKHJo
cy5tX21vZHVsZVNjb3BlRGF0YSkpCisgICAgICAgICwgbV9mdW5jdGlvbkRlY2xhcmF0aW9ucyhX
VEZNb3ZlKHJocy5tX2Z1bmN0aW9uRGVjbGFyYXRpb25zKSkKKyAgICB7IH0KIAogICAgIHZvaWQg
c3RhcnRTd2l0Y2goKSB7IG1fc3dpdGNoRGVwdGgrKzsgfQogICAgIHZvaWQgZW5kU3dpdGNoKCkg
eyBtX3N3aXRjaERlcHRoLS07IH0KQEAgLTQ1Miw3ICs0NDcsNyBAQCBzdHJ1Y3QgU2NvcGUgewog
CiAgICAgYm9vbCBoYXNEZWNsYXJlZFBhcmFtZXRlcihjb25zdCBSZWZQdHI8VW5pcXVlZFN0cmlu
Z0ltcGw+JiBpZGVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2RlY2xhcmVkUGFyYW1ldGVy
cy5jb250YWlucyhpZGVudCkgfHwgaGFzRGVjbGFyZWRWYXJpYWJsZShpZGVudCk7CisgICAgICAg
IHJldHVybiBtX2RlY2xhcmVkUGFyYW1ldGVycy5jb250YWlucyhpZGVudC5nZXQoKSkgfHwgaGFz
RGVjbGFyZWRWYXJpYWJsZShpZGVudCk7CiAgICAgfQogICAgIAogICAgIHZvaWQgZGVjbGFyZVdy
aXRlKGNvbnN0IElkZW50aWZpZXIqIGlkZW50KQpAQCAtNDkwLDExICs0ODUsNyBAQCBzdHJ1Y3Qg
U2NvcGUgewogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICB2b2lkIGdl
dFVzZWRWYXJpYWJsZXMoSWRlbnRpZmllclNldCYgdXNlZFZhcmlhYmxlcykKLSAgICB7Ci0gICAg
ICAgIHVzZWRWYXJpYWJsZXMuc3dhcChtX3VzZWRWYXJpYWJsZXMpOwotICAgIH0KLQorICAgIGJv
b2wgdXNlZFZhcmlhYmxlc0NvbnRhaW5zKFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsKSBjb25zdCB7
IHJldHVybiBtX3VzZWRWYXJpYWJsZXMuY29udGFpbnMoaW1wbCk7IH0KICAgICB2b2lkIHVzZVZh
cmlhYmxlKGNvbnN0IElkZW50aWZpZXIqIGlkZW50LCBib29sIGlzRXZhbCkKICAgICB7CiAgICAg
ICAgIG1fdXNlc0V2YWwgfD0gaXNFdmFsOwpAQCAtNTQzLDcgKzUzNCw3IEBAIHN0cnVjdCBTY29w
ZSB7CiAgICAgICAgICAgICBtX3VzZXNFdmFsID0gdHJ1ZTsKIAogICAgICAgICB7Ci0gICAgICAg
ICAgICBmb3IgKGNvbnN0IFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4mIGltcGwgOiBuZXN0ZWRT
Y29wZS0+bV91c2VkVmFyaWFibGVzKSB7CisgICAgICAgICAgICBmb3IgKFVuaXF1ZWRTdHJpbmdJ
bXBsKiBpbXBsIDogbmVzdGVkU2NvcGUtPm1fdXNlZFZhcmlhYmxlcykgewogICAgICAgICAgICAg
ICAgIGlmIChuZXN0ZWRTY29wZS0+bV9kZWNsYXJlZFZhcmlhYmxlcy5jb250YWlucyhpbXBsKSB8
fCBuZXN0ZWRTY29wZS0+bV9sZXhpY2FsVmFyaWFibGVzLmNvbnRhaW5zKGltcGwpKQogICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtNTY4LDExICs1NTksMTAgQEAgc3RydWN0IFNj
b3BlIHsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChuZXN0ZWRTY29wZS0+bV93cml0dGVuVmFy
aWFibGVzLnNpemUoKSkgewotICAgICAgICAgICAgSWRlbnRpZmllclNldDo6aXRlcmF0b3IgZW5k
ID0gbmVzdGVkU2NvcGUtPm1fd3JpdHRlblZhcmlhYmxlcy5lbmQoKTsKLSAgICAgICAgICAgIGZv
ciAoSWRlbnRpZmllclNldDo6aXRlcmF0b3IgcHRyID0gbmVzdGVkU2NvcGUtPm1fd3JpdHRlblZh
cmlhYmxlcy5iZWdpbigpOyBwdHIgIT0gZW5kOyArK3B0cikgewotICAgICAgICAgICAgICAgIGlm
IChuZXN0ZWRTY29wZS0+bV9kZWNsYXJlZFZhcmlhYmxlcy5jb250YWlucygqcHRyKSB8fCBuZXN0
ZWRTY29wZS0+bV9sZXhpY2FsVmFyaWFibGVzLmNvbnRhaW5zKCpwdHIpKQorICAgICAgICAgICAg
Zm9yIChVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCA6IG5lc3RlZFNjb3BlLT5tX3dyaXR0ZW5WYXJp
YWJsZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAobmVzdGVkU2NvcGUtPm1fZGVjbGFyZWRWYXJp
YWJsZXMuY29udGFpbnMoaW1wbCkgfHwgbmVzdGVkU2NvcGUtPm1fbGV4aWNhbFZhcmlhYmxlcy5j
b250YWlucyhpbXBsKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAg
ICAgICAgbV93cml0dGVuVmFyaWFibGVzLmFkZCgqcHRyKTsKKyAgICAgICAgICAgICAgICBtX3dy
aXR0ZW5WYXJpYWJsZXMuYWRkKGltcGwpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQpAQCAtNjAwLDExICs1OTAsMTAgQEAgc3RydWN0IFNjb3BlIHsKICAgICAgICAgaWYgKHNoYWRv
d3NBcmd1bWVudHMoKSkKICAgICAgICAgICAgIG1vZGlmaWVkQXJndW1lbnRzID0gdHJ1ZTsKICAg
ICAgICAgaWYgKG1fZGVjbGFyZWRQYXJhbWV0ZXJzLnNpemUoKSkgewotICAgICAgICAgICAgSWRl
bnRpZmllclNldDo6aXRlcmF0b3IgZW5kID0gbV93cml0dGVuVmFyaWFibGVzLmVuZCgpOwotICAg
ICAgICAgICAgZm9yIChJZGVudGlmaWVyU2V0OjppdGVyYXRvciBwdHIgPSBtX3dyaXR0ZW5WYXJp
YWJsZXMuYmVnaW4oKTsgcHRyICE9IGVuZDsgKytwdHIpIHsKLSAgICAgICAgICAgICAgICBpZiAo
KnB0ciA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMuaW1wbCgpKQorICAgICAgICAg
ICAgZm9yIChVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCA6IG1fd3JpdHRlblZhcmlhYmxlcykgewor
ICAgICAgICAgICAgICAgIGlmIChpbXBsID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50
cy5pbXBsKCkpCiAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkQXJndW1lbnRzID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICBpZiAoIW1fZGVjbGFyZWRQYXJhbWV0ZXJzLmNvbnRhaW5zKCpwdHIp
KQorICAgICAgICAgICAgICAgIGlmICghbV9kZWNsYXJlZFBhcmFtZXRlcnMuY29udGFpbnMoaW1w
bCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIG1vZGlm
aWVkUGFyYW1ldGVyID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTYxNiwxMyAr
NjA1LDEyIEBAIHN0cnVjdCBTY29wZSB7CiAgICAgYm9vbCBpc1ZhbGlkU3RyaWN0TW9kZSgpIGNv
bnN0IHsgcmV0dXJuIG1faXNWYWxpZFN0cmljdE1vZGU7IH0KICAgICBib29sIHNoYWRvd3NBcmd1
bWVudHMoKSBjb25zdCB7IHJldHVybiBtX3NoYWRvd3NBcmd1bWVudHM7IH0KIAotICAgIHZvaWQg
Y29weUNhcHR1cmVkVmFyaWFibGVzVG9WZWN0b3IoY29uc3QgSWRlbnRpZmllclNldCYgY2FwdHVy
ZWRWYXJpYWJsZXMsIFZlY3RvcjxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+PiYgdmVjdG9yKQor
ICAgIHZvaWQgY29weUNhcHR1cmVkVmFyaWFibGVzVG9WZWN0b3IoY29uc3QgSW1wbFNldCYgY2Fw
dHVyZWRWYXJpYWJsZXMsIFZlY3RvcjxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+PiYgdmVjdG9y
KQogICAgIHsKLSAgICAgICAgSWRlbnRpZmllclNldDo6aXRlcmF0b3IgZW5kID0gY2FwdHVyZWRW
YXJpYWJsZXMuZW5kKCk7Ci0gICAgICAgIGZvciAoSWRlbnRpZmllclNldDo6aXRlcmF0b3IgaXQg
PSBjYXB0dXJlZFZhcmlhYmxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAg
ICAgIGlmIChtX2RlY2xhcmVkVmFyaWFibGVzLmNvbnRhaW5zKCppdCkgfHwgbV9sZXhpY2FsVmFy
aWFibGVzLmNvbnRhaW5zKCppdCkpCisgICAgICAgIGZvciAoVW5pcXVlZFN0cmluZ0ltcGwqIGlt
cGwgOiBjYXB0dXJlZFZhcmlhYmxlcykgeworICAgICAgICAgICAgaWYgKG1fZGVjbGFyZWRWYXJp
YWJsZXMuY29udGFpbnMoaW1wbCkgfHwgbV9sZXhpY2FsVmFyaWFibGVzLmNvbnRhaW5zKGltcGwp
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgdmVjdG9yLmFwcGVuZCgq
aXQpOworICAgICAgICAgICAgdmVjdG9yLmFwcGVuZChpbXBsKTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtNzE1LDEzICs3MDMsMTMgQEAgcHJpdmF0ZToKIAogICAgIHR5cGVkZWYgVmVjdG9yPFNj
b3BlTGFiZWxJbmZvLCAyPiBMYWJlbFN0YWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYWJlbFN0
YWNrPiBtX2xhYmVsczsKLSAgICBJZGVudGlmaWVyU2V0IG1fZGVjbGFyZWRQYXJhbWV0ZXJzOwor
ICAgIEltcGxTZXQgbV9kZWNsYXJlZFBhcmFtZXRlcnM7CiAgICAgVmFyaWFibGVFbnZpcm9ubWVu
dCBtX2RlY2xhcmVkVmFyaWFibGVzOwogICAgIFZhcmlhYmxlRW52aXJvbm1lbnQgbV9sZXhpY2Fs
VmFyaWFibGVzOwotICAgIElkZW50aWZpZXJTZXQgbV91c2VkVmFyaWFibGVzOworICAgIEltcGxT
ZXQgbV91c2VkVmFyaWFibGVzOwogICAgIElkZW50aWZpZXJTZXQgbV9jbG9zZWRWYXJpYWJsZUNh
bmRpZGF0ZXM7Ci0gICAgSWRlbnRpZmllclNldCBtX3dyaXR0ZW5WYXJpYWJsZXM7Ci0gICAgUmVm
UHRyPE1vZHVsZVNjb3BlRGF0YT4gbV9tb2R1bGVTY29wZURhdGEgeyB9OworICAgIEltcGxTZXQg
bV93cml0dGVuVmFyaWFibGVzOworICAgIFJlZlB0cjxNb2R1bGVTY29wZURhdGE+IG1fbW9kdWxl
U2NvcGVEYXRhOwogICAgIERlY2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrIG1fZnVuY3Rp
b25EZWNsYXJhdGlvbnM7CiB9OwogCkBAIC0xNjUwLDYgKzE2MzgsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8UGFyc2VkTm9kZT4gcGFyc2UoCiAgICAgVGhpc1REWk1vZGUgdGhpc1REWk1vZGUgPSBUaGlz
VERaTW9kZTo6Q2hlY2tJZk5lZWRlZCkKIHsKICAgICBTYW1wbGluZ1JlZ2lvbiBzYW1wbGluZ1Jl
Z2lvbigiUGFyc2luZyIpOworICAgIERlZmVyR0Modm0tPmhlYXApOwogCiAgICAgQVNTRVJUKCFz
b3VyY2UucHJvdmlkZXIoKS0+c291cmNlKCkuaXNOdWxsKCkpOwogICAgIGlmIChzb3VyY2UucHJv
dmlkZXIoKS0+c291cmNlKCkuaXM4Qml0KCkpIHsKQEAgLTE2NzIsNCArMTY2MSw5IEBAIHN0ZDo6
dW5pcXVlX3B0cjxQYXJzZWROb2RlPiBwYXJzZSgKIH0KIAogfSAvLyBuYW1lc3BhY2UKKworbmFt
ZXNwYWNlIFdURiB7CitzdGF0aWNfYXNzZXJ0KCFWZWN0b3JUcmFpdHM8SlNDOjpTY29wZT46OmNh
bk1vdmVXaXRoTWVtY3B5LCAiVGhpcyB3b3VsZCBiZSB0b3RhbGx5IGludmFsaWQuIik7Cit9CisK
ICNlbmRpZgpJbmRleDogU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAxOTgyOTApCisrKyBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2LDcgQEAKIAkJNzBFQ0E2MEQxQjAyNDI2
ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmluZ0ltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzBFQ0E2MEExQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21p
Y1N0cmluZ0ltcGwuY3BwICovOyB9OwogCQk3MEVDQTYwRTFCMDI0MjY4MDA0NDk3MzkgLyogU3lt
Ym9sSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzBFQ0E2MEIxQjAyNDI2ODAwNDQ5NzM5IC8qIFN5bWJvbEltcGwuaCAqLzsgfTsKIAkJNzBFQ0E2
MEYxQjAyNDI2ODAwNDQ5NzM5IC8qIFVuaXF1ZWRTdHJpbmdJbXBsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MEVDQTYwQzFCMDI0MjY4MDA0NDk3Mzkg
LyogVW5pcXVlZFN0cmluZ0ltcGwuaCAqLzsgfTsKKwkJNzlFQzcwNjExQzk5RjlCQzAwM0EzQUUy
IC8qIFNtYWxsUHRyU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3OTM2RDZBOTFDOTlGOEFFMDAwRDFBRUQgLyogU21hbGxQdHJTZXQuaCAqLzsgfTsK
IAkJN0NCQkEwNzQxOUJCN0ZEQzAwQkJGMDI1IC8qIE9TT2JqZWN0UHRyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0JCQTA3MzE5QkI3RkRDMDBCQkYw
MjUgLyogT1NPYmplY3RQdHIuaCAqLzsgfTsKIAkJN0NERDdGRjgxODZEMjkxRTAwNzQzM0NEIC8q
IEl0ZXJhdG9yQWRhcHRvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDREQ3RkY3MTg2RDI5MUUwMDc0MzNDRCAvKiBJdGVyYXRvckFkYXB0b3JzLmgg
Ki87IH07CiAJCTdDREQ3RkZBMTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVyYXRvclJhbmdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0REN0ZGOTE4NkQy
QTU0MDA3NDMzQ0QgLyogSXRlcmF0b3JSYW5nZS5oICovOyB9OwpAQCAtNDIxLDYgKzQyMiw3IEBA
CiAJCTcwRUNBNjBBMUIwMjQyNjgwMDQ0OTczOSAvKiBBdG9taWNTdHJpbmdJbXBsLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF0b21pY1N0cmluZ0ltcGwuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MEVDQTYwQjFCMDI0MjY4MDA0NDk3MzkgLyog
U3ltYm9sSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW1ib2xJbXBs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcwRUNBNjBDMUIwMjQyNjgwMDQ0OTcz
OSAvKiBVbmlxdWVkU3RyaW5nSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBVbmlxdWVkU3RyaW5nSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3OTM2
RDZBOTFDOTlGOEFFMDAwRDFBRUQgLyogU21hbGxQdHJTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU21hbGxQdHJTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0NCQkEwNzMxOUJCN0ZEQzAwQkJGMDI1IC8qIE9TT2JqZWN0UHRyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9TT2JqZWN0UHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDREQ3RkY3MTg2RDI5MUUwMDc0MzNDRCAvKiBJdGVyYXRvckFkYXB0b3JzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEl0ZXJhdG9yQWRhcHRvcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NERDdGRjkxODZEMkE1NDAwNzQzM0NEIC8qIEl0
ZXJhdG9yUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSXRlcmF0b3JS
YW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTE0LDYgKzkxNiw3IEBACiAJ
CQkJQTc0ODc0NEYxN0EwQkRBRTAwRkEwNENCIC8qIFNpeENoYXJhY3Rlckhhc2guY3BwICovLAog
CQkJCUE3NDg3NDUwMTdBMEJEQUUwMEZBMDRDQiAvKiBTaXhDaGFyYWN0ZXJIYXNoLmggKi8sCiAJ
CQkJQThBNDczMEMxNTFBODI1QjAwNDEyM0ZGIC8qIFNpemVMaW1pdHMuY3BwICovLAorCQkJCTc5
MzZENkE5MUM5OUY4QUUwMDBEMUFFRCAvKiBTbWFsbFB0clNldC5oICovLAogCQkJCUE4QTQ3MzBE
MTUxQTgyNUIwMDQxMjNGRiAvKiBTcGVjdHJ1bS5oICovLAogCQkJCUE4QTQ3MzBFMTUxQTgyNUIw
MDQxMjNGRiAvKiBTdGFja0JvdW5kcy5jcHAgKi8sCiAJCQkJQThBNDczMEYxNTFBODI1QjAwNDEy
M0ZGIC8qIFN0YWNrQm91bmRzLmggKi8sCkBAIC0xMTUwLDYgKzExNTMsNyBAQAogCQkJCUE4QTQ3
Mzk1MTUxQTgyNUIwMDQxMjNGRiAvKiBDaGVja2VkQm9vbGVhbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThBNDc0NUYxNTFBODI1QjAwNDEyM0ZGIC8qIENvbGxhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0RURFNjE2OTYxNDk2MDBGNjUwNDEgLyogQ29tbWFQcmludGVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk3OUVDNzA2MTFDOTlGOUJDMDAzQTNBRTIgLyogU21hbGxQdHJTZXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCURFNUEwOUZDMUJBMzY5OTIwMDNENDQyNCAvKiBDb21tb25DcnlwdG9T
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEYyQjkxMTcyRTAwRkMwMDdEQkRBNSAvKiBDb21w
aWxhdGlvblRocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczOTgxNTFBODI1QjAwNDEy
M0ZGIC8qIENvbXBpbGVyLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0NN
YWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
CShyZXZpc2lvbiAxOTgyOTApCisrKyBTb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtOTQsNiArOTQsNyBAQCBzZXQoV1RGX0hFQURFUlMKICAgICBTYXR1cmF0
ZWRBcml0aG1ldGljLmgKICAgICBTY29wZWRMYW1iZGEuaAogICAgIFNlZ21lbnRlZFZlY3Rvci5o
CisgICAgU21hbGxQdHJTZXQuaAogICAgIFN0YWNrQm91bmRzLmgKICAgICBTdGFja1N0YXRzLmgK
ICAgICBTdGF0aWNDb25zdHJ1Y3RvcnMuaApJbmRleDogU291cmNlL1dURi93dGYvU21hbGxQdHJT
ZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TbWFsbFB0clNldC5oCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dURi93dGYvU21hbGxQdHJTZXQuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDI0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFNtYWxsUHRyU2V0X2gKKyNkZWZpbmUgU21hbGxQdHJTZXRfaAorCisjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoRnVuY3Rpb25zLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlPgorY2xhc3Mg
U21hbGxQdHJTZXQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNtYWxsUHRyU2V0KTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxQdHJUeXBlPjo6
dmFsdWUsICJXZSBkb250IHN1cHBvcnQgbm9uLXRyaXZpYWxseSBkZXN0cnVjdGlibGUgcG9pbnRl
ciB0eXBlcyBub3cuIik7CisgICAgc3RhdGljX2Fzc2VydChzaXplb2YoUHRyVHlwZSkgPT0gc2l6
ZW9mKHZvaWQqKSwgIk9ubHkgc3VwcG9ydCBwb2ludGVyIHNpemVkIHRoaW5ncy4iKTsKKworcHVi
bGljOiAKKyAgICBTbWFsbFB0clNldCgpCisgICAgeworICAgICAgICBpbml0aWFsaXplKCk7Cisg
ICAgfQorCisgICAgU21hbGxQdHJTZXQoU21hbGxQdHJTZXQmJiBvdGhlcikKKyAgICB7CisgICAg
ICAgICp0aGlzID0gV1RGTW92ZShvdGhlcik7CisgICAgfQorCisgICAgU21hbGxQdHJTZXQmIG9w
ZXJhdG9yPShTbWFsbFB0clNldCYmIG90aGVyKQorICAgIHsKKyAgICAgICAgbV9zaXplID0gb3Ro
ZXIubV9zaXplOworICAgICAgICBtX2NhcGFjaXR5ID0gb3RoZXIubV9jYXBhY2l0eTsKKyAgICAg
ICAgaWYgKG90aGVyLmlzU21hbGwoKSkgeworICAgICAgICAgICAgbV9idWZmZXIgPSBtX3NtYWxs
U3RvcmFnZTsKKyAgICAgICAgICAgIG1lbWNweShtX3NtYWxsU3RvcmFnZSwgb3RoZXIubV9zbWFs
bFN0b3JhZ2UsIHNpemVvZih2b2lkKikgKiBTbWFsbEFycmF5U2l6ZSk7CisgICAgICAgICAgICBB
U1NFUlQoaXNTbWFsbCgpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtX2J1ZmZlciA9
IG90aGVyLm1fYnVmZmVyOworCisgICAgICAgIG90aGVyLmluaXRpYWxpemUoKTsKKworICAgICAg
ICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgflNtYWxsUHRyU2V0KCkKKyAgICB7CisgICAg
ICAgIGlmICghaXNTbWFsbCgpKQorICAgICAgICAgICAgZmFzdEZyZWUobV9idWZmZXIpOworICAg
IH0KKworICAgIGlubGluZSB2b2lkIGFkZChQdHJUeXBlIHB0cikKKyAgICB7CisgICAgICAgIEFT
U0VSVChpc1ZhbGlkRW50cnkocHRyKSk7CisKKyAgICAgICAgaWYgKGlzU21hbGwoKSkgeworICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc2l6ZTsgaSsrKSB7CisgICAgICAg
ICAgICAgICAgaWYgKG1fYnVmZmVyW2ldID09IHB0cikKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobV9zaXplIDwgU21hbGxBcnJh
eVNpemUpIHsKKyAgICAgICAgICAgICAgICBtX2J1ZmZlclttX3NpemVdID0gcHRyOworICAgICAg
ICAgICAgICAgIG1fc2l6ZSsrOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZ3Jvdyg2NCk7CisgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2gu
IFdlJ3JlIG5vIGxvbmdlciBzbWFsbCA6KAorICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgd2Un
cmUgbW9yZSB0aGFuIDMvNHRocyBmdWxsIHdlIGdyb3cuCisgICAgICAgIGlmIChVTkxJS0VMWSht
X3NpemUgKiA0ID49IG1fY2FwYWNpdHkgKiAzKSkgeworICAgICAgICAgICAgZ3JvdyhtX2NhcGFj
aXR5ICogMik7CisgICAgICAgICAgICBBU1NFUlQoIShtX2NhcGFjaXR5ICYgKG1fY2FwYWNpdHkg
LSAxKSkpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCoqIGJ1Y2tldCA9IHRoaXMtPmJ1Y2tl
dChwdHIpOworICAgICAgICBpZiAoKmJ1Y2tldCAhPSBwdHIpIHsKKyAgICAgICAgICAgICpidWNr
ZXQgPSBwdHI7CisgICAgICAgICAgICBtX3NpemUrKzsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlubGluZSBib29sIGNvbnRhaW5zKFB0clR5cGUgcHRyKSBjb25zdAorICAgIHsKKyAgICAgICAg
QVNTRVJUKGlzVmFsaWRFbnRyeShwdHIpKTsKKyAgICAgICAgaWYgKGlzU21hbGwoKSkgeworICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc2l6ZTsgaSsrKSB7IC8vIFdlIGNh
biBzZWFyY2ggdXAgdG8gIm1fc2l6ZSIgYmVjYXVzZSB3ZSBzdG9yZSB0aGluZ3MgbGluZWFybHkg
aW5zaWRlIHRoaXMgYnVmZmVyLgorICAgICAgICAgICAgICAgIGlmIChtX3NtYWxsU3RvcmFnZVtp
XSA9PSBwdHIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCoq
IGJ1Y2tldCA9IHRoaXMtPmJ1Y2tldChwdHIpOworICAgICAgICByZXR1cm4gKmJ1Y2tldCA9PSBw
dHI7CisgICAgfQorCisgICAgY2xhc3MgaXRlcmF0b3IgeworICAgIHB1YmxpYzoKKyAgICAgICAg
aXRlcmF0b3ImIG9wZXJhdG9yKysoKQorICAgICAgICB7CisgICAgICAgICAgICBtX2luZGV4Kys7
CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtX2luZGV4IDw9IG1fY2FwYWNpdHkpOworICAg
ICAgICAgICAgd2hpbGUgKG1faW5kZXggPCBtX2NhcGFjaXR5ICYmIG1fYnVmZmVyW21faW5kZXhd
ID09IGVtcHR5VmFsdWUoKSkKKyAgICAgICAgICAgICAgICBtX2luZGV4Kys7CisgICAgICAgICAg
ICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFB0clR5cGUgb3Bl
cmF0b3IqKCkgY29uc3QgeyBBU1NFUlQobV9pbmRleCA8IG1fY2FwYWNpdHkpOyByZXR1cm4gc3Rh
dGljX2Nhc3Q8UHRyVHlwZT4obV9idWZmZXJbbV9pbmRleF0pOyB9CisgICAgICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0IHsgQVNTRVJUKG1fYnVmZmVyID09
IG90aGVyLm1fYnVmZmVyKTsgcmV0dXJuIG1faW5kZXggPT0gb3RoZXIubV9pbmRleDsgfQorICAg
ICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdCB7IEFTU0VS
VChtX2J1ZmZlciA9PSBvdGhlci5tX2J1ZmZlcik7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsg
fQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIGNs
YXNzIFdURjo6U21hbGxQdHJTZXQ7CisgICAgICAgIHVuc2lnbmVkIG1faW5kZXg7CisgICAgICAg
IHVuc2lnbmVkIG1fY2FwYWNpdHk7CisgICAgICAgIHZvaWQqKiBtX2J1ZmZlcjsKKyAgICB9Owor
CisgICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdAorICAgIHsKKyAgICAgICAgaXRlcmF0b3IgaXQ7
CisgICAgICAgIGl0Lm1faW5kZXggPSAtMTsKKyAgICAgICAgaXQubV9jYXBhY2l0eSA9IG1fY2Fw
YWNpdHk7CisgICAgICAgIGl0Lm1fYnVmZmVyID0gbV9idWZmZXI7CisKKyAgICAgICAgKytpdDsK
KworICAgICAgICByZXR1cm4gaXQ7CisgICAgfQorCisgICAgaXRlcmF0b3IgZW5kKCkgY29uc3QK
KyAgICB7CisgICAgICAgIGl0ZXJhdG9yIGl0OworICAgICAgICBpdC5tX2luZGV4ID0gbV9jYXBh
Y2l0eTsKKyAgICAgICAgaXQubV9jYXBhY2l0eSA9IG1fY2FwYWNpdHk7CisgICAgICAgIGl0Lm1f
YnVmZmVyID0gbV9idWZmZXI7CisKKyAgICAgICAgcmV0dXJuIGl0OworICAgIH0KKworICAgIGlu
bGluZSB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CisKK3ByaXZhdGU6
CisKKyAgICBjb25zdGV4cHIgc3RhdGljIHZvaWQqIGVtcHR5VmFsdWUoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50cHRy
X3Q+OjptYXgoKSk7CisgICAgfQorCisgICAgYm9vbCBpc1ZhbGlkRW50cnkoY29uc3QgUHRyVHlw
ZSBwdHIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gcHRyICE9IGVtcHR5VmFsdWUoKTsK
KyAgICB9CisKKyAgICBpbmxpbmUgYm9vbCBpc1NtYWxsKCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBtX2NhcGFjaXR5ID09IFNtYWxsQXJyYXlTaXplOworICAgIH0KKworICAgIGlubGlu
ZSB2b2lkIGluaXRpYWxpemUoKQorICAgIHsKKyAgICAgICAgbV9zaXplID0gMDsKKyAgICAgICAg
bV9idWZmZXIgPSBtX3NtYWxsU3RvcmFnZTsKKyAgICAgICAgbV9jYXBhY2l0eSA9IFNtYWxsQXJy
YXlTaXplOworICAgICAgICBtZW1zZXQobV9zbWFsbFN0b3JhZ2UsIC0xLCBzaXplb2Yodm9pZCop
ICogU21hbGxBcnJheVNpemUpOworICAgICAgICBBU1NFUlQoaXNTbWFsbCgpKTsKKyAgICB9CisK
KyAgICBpbmxpbmUgdm9pZCBncm93KHVuc2lnbmVkIHNpemUpCisgICAgeworICAgICAgICBBU1NF
UlQoc3RhdGljX2Nhc3Q8aW50MzJfdD4oYml0d2lzZV9jYXN0PGludHB0cl90PihlbXB0eVZhbHVl
KCkpKSA9PSAtMSk7CisgICAgICAgIHNpemVfdCBhbGxvY2F0aW9uU2l6ZSA9IHNpemVvZih2b2lk
KikgKiBzaXplOworCisgICAgICAgIGJvb2wgd2FzU21hbGwgPSBpc1NtYWxsKCk7CisgICAgICAg
IHZvaWQqKiBvbGRCdWZmZXIgPSBtX2J1ZmZlcjsKKyAgICAgICAgdW5zaWduZWQgb2xkQ2FwYWNp
dHkgPSBtX2NhcGFjaXR5OworICAgICAgICBtX2J1ZmZlciA9IHN0YXRpY19jYXN0PHZvaWQqKj4o
ZmFzdE1hbGxvYyhhbGxvY2F0aW9uU2l6ZSkpOworICAgICAgICBtZW1zZXQobV9idWZmZXIsIC0x
LCBhbGxvY2F0aW9uU2l6ZSk7CisgICAgICAgIG1fY2FwYWNpdHkgPSBzaXplOworICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgb2xkQ2FwYWNpdHk7IGkrKykgeworICAgICAgICAgICAg
aWYgKG9sZEJ1ZmZlcltpXSAhPSBlbXB0eVZhbHVlKCkpIHsKKyAgICAgICAgICAgICAgICB2b2lk
KiogcHRyID0gdGhpcy0+YnVja2V0KHN0YXRpY19jYXN0PFB0clR5cGU+KG9sZEJ1ZmZlcltpXSkp
OworICAgICAgICAgICAgICAgICpwdHIgPSBvbGRCdWZmZXJbaV07CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKCF3YXNTbWFsbCkKKyAgICAgICAgICAgIGZhc3RGcmVlKG9s
ZEJ1ZmZlcik7CisgICAgfQorCisKKyAgICBpbmxpbmUgdm9pZCoqIGJ1Y2tldChQdHJUeXBlIHRh
cmdldCkgY29uc3QKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGJ1Y2tldCA9IFB0ckhhc2hCYXNl
PFB0clR5cGUsIGZhbHNlIC8qIGlzU21hcnRQdHIgKi8+OjpoYXNoKHRhcmdldCkgJiAobV9jYXBh
Y2l0eSAtIDEpOworICAgICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CisgICAgICAgIHdoaWxlICh0
cnVlKSB7CisgICAgICAgICAgICB2b2lkKiogcHRyID0gbV9idWZmZXIgKyBidWNrZXQ7CisgICAg
ICAgICAgICBpZiAoKnB0ciA9PSBlbXB0eVZhbHVlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHB0cjsKKyAgICAgICAgICAgIGlmICgqcHRyID09IHRhcmdldCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gcHRyOworICAgICAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgICAgIGJ1Y2tldCA9IChi
dWNrZXQgKyBpbmRleCkgJiAobV9jYXBhY2l0eSAtIDEpOworICAgICAgICB9CisgICAgfQorCisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFNtYWxsQXJyYXlTaXplID0gODsKKyAgICAgCisgICAg
dW5zaWduZWQgbV9zaXplOworICAgIHVuc2lnbmVkIG1fY2FwYWNpdHk7CisgICAgdm9pZCoqIG1f
YnVmZmVyOworICAgIHZvaWQqIG1fc21hbGxTdG9yYWdlW1NtYWxsQXJyYXlTaXplXTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OlNtYWxsUHRyU2V0OworCisjZW5kaWYg
Ly8gU21hbGxQdHJTZXRfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>274328</attachid>
            <date>2016-03-17 15:24:27 -0700</date>
            <delta_ts>2016-03-17 15:24:27 -0700</delta_ts>
            <desc>perf numbers</desc>
            <filename>perf-numbers.txt</filename>
            <type>text/plain</type>
            <size>71095</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">Vk1zIHRlc3RlZDoKIm9nIiBhdCAvVm9sdW1lcy9EYXRhL1dLL2MvT3BlblNvdXJjZS9XZWJLaXRC
dWlsZC9SZWxlYXNlL2pzYyAocjE5ODI5MCkKImNoYW5nZSIgYXQgL1ZvbHVtZXMvRGF0YS9XSy9h
L09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvUmVsZWFzZS9qc2MgKHIxOTgyOTApCgpDb2xsZWN0ZWQg
NiBzYW1wbGVzIHBlciBiZW5jaG1hcmsvVk0sIHdpdGggNiBWTSBpbnZvY2F0aW9ucyBwZXIgYmVu
Y2htYXJrLiBFbWl0dGVkIGEgY2FsbCB0byBnYygpIGJldHdlZW4gc2FtcGxlIG1lYXN1cmVtZW50
cy4KVXNlZCAxIGJlbmNobWFyayBpdGVyYXRpb24gcGVyIFZNIGludm9jYXRpb24gZm9yIHdhcm0t
dXAuIFVzZWQgdGhlIGpzYy1zcGVjaWZpYyBwcmVjaXNlVGltZSgpIGZ1bmN0aW9uIHRvIGdldCBt
aWNyb3NlY29uZC1sZXZlbAp0aW1pbmcuIFJlcG9ydGluZyBiZW5jaG1hcmsgZXhlY3V0aW9uIHRp
bWVzIHdpdGggOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxzIGluIG1pbGxpc2Vjb25kcy4KCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9n
ICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgClN1blNwaWRlcjoKICAgM2QtY3ViZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNC41MjkwKy0wLjE3MjcgICAgID8gICAgICA0LjYwNTMrLTAuMjQ1
OCAgICAgICAgPyBtaWdodCBiZSAxLjAxNjl4IHNsb3dlcgogICAzZC1tb3JwaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjQ1MDIrLTAuNDkyNSAgICAgICAgICAg
IDUuMzgyOCstMC40MTMzICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyNXggZmFzdGVyCiAgIDNkLXJh
eXRyYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNTI5MistMC4z
ODAxICAgICAgICAgICAgNS4zMDg4Ky0wLjA2MDMgICAgICAgICAgbWlnaHQgYmUgMS4wNDE1eCBm
YXN0ZXIKICAgYWNjZXNzLWJpbmFyeS10cmVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi4yODQ3Ky0wLjU1ODQgICAgICAgICAgICAyLjAzNjkrLTAuMDM4NCAgICAgICAgICBtaWdo
dCBiZSAxLjEyMTZ4IGZhc3RlcgogICBhY2Nlc3MtZmFubmt1Y2ggICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1LjUwOTMrLTAuMjg5OSAgICAgICAgICAgIDUuMzgwNCstMC4zODQz
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0MHggZmFzdGVyCiAgIGFjY2Vzcy1uYm9keSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNDc1MistMC4wMzU4ICAgICA/ICAgICAg
Mi41MDkyKy0wLjA2MzggICAgICAgID8gbWlnaHQgYmUgMS4wMTM3eCBzbG93ZXIKICAgYWNjZXNz
LW5zaWV2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4wODc3Ky0wLjE4
MzAgICAgID8gICAgICAzLjM1MTUrLTAuMzExOCAgICAgICAgPyBtaWdodCBiZSAxLjA4NTR4IHNs
b3dlcgogICBiaXRvcHMtM2JpdC1iaXRzLWluLWJ5dGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxLjExOTkrLTAuMDQ2NiAgICAgICAgICAgIDEuMTE3MystMC4wMzcxICAgICAgICAKICAgYml0
b3BzLWJpdHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42MTM5Ky0w
LjA2MzcgICAgID8gICAgICAyLjYyMzMrLTAuMDU3MSAgICAgICAgPwogICBiaXRvcHMtYml0d2lz
ZS1hbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjExNjArLTAuMzMzNyAgICAg
ICAgICAgIDIuMDUyOSstMC4yMjI3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMwN3ggZmFzdGVyCiAg
IGJpdG9wcy1uc2lldmUtYml0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTc5
MistMC4wNjE4ICAgICA/ICAgICAgMy4wMjc3Ky0wLjI4NzUgICAgICAgID8gbWlnaHQgYmUgMS4w
MTYzeCBzbG93ZXIKICAgY29udHJvbGZsb3ctcmVjdXJzaXZlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi4yMzY5Ky0wLjA2OTcgICAgID8gICAgICAyLjI1MTErLTAuMDQxMCAgICAgICAg
PwogICBjcnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
Ljg0ODMrLTAuMDk5MiAgICAgICAgICAgIDMuODM2MCstMC4xNDUyICAgICAgICAKICAgY3J5cHRv
LW1kNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi40ODM5Ky0wLjA5
MjUgICAgICAgICAgICAyLjQ2MTcrLTAuMDMxMyAgICAgICAgCiAgIGNyeXB0by1zaGExICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjE4NystMC4xNTc0ICAgICAgICAg
ICAgMi4yMDM1Ky0wLjAzNDMgICAgICAgIAogICBkYXRlLWZvcm1hdC10b2Z0ZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA2LjU2MTQrLTAuMzgyMyAgICAgPyAgICAgIDYuOTkxNCst
MC44NDU3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDY1NXggc2xvd2VyCiAgIGRhdGUtZm9ybWF0LXhw
YXJiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMDcxMCstMS4wMzYyICAgICAg
ICAgICAgNC45MTk3Ky0wLjM3MDEgICAgICAgICAgbWlnaHQgYmUgMS4wMzA4eCBmYXN0ZXIKICAg
bWF0aC1jb3JkaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi45MzMx
Ky0wLjUzMzUgICAgICAgICAgICAyLjg5NjArLTAuMzc4NiAgICAgICAgICBtaWdodCBiZSAxLjAx
Mjh4IGZhc3RlcgogICBtYXRoLXBhcnRpYWwtc3VtcyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0Ljg4NDQrLTAuMjM5MCAgICAgICAgICAgIDQuNzUxNystMC4xMDA1ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDI3OXggZmFzdGVyCiAgIG1hdGgtc3BlY3RyYWwtbm9ybSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDEuOTMyOSstMC4wODA0ICAgICA/ICAgICAgMi4xMjU3Ky0w
LjQ5MDAgICAgICAgID8gbWlnaHQgYmUgMS4wOTk3eCBzbG93ZXIKICAgcmVnZXhwLWRuYSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS44ODE5Ky0wLjI5OTggICAgICAg
ICAgICA1Ljc2OTYrLTAuMDU1NSAgICAgICAgICBtaWdodCBiZSAxLjAxOTV4IGZhc3RlcgogICBz
dHJpbmctYmFzZTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjQzNTIr
LTAuMjY5MiAgICAgICAgICAgIDQuMzA3NistMC4xMTM1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5
NnggZmFzdGVyCiAgIHN0cmluZy1mYXN0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDUuNzQ4MCstMC4wODczICAgICA/ICAgICAgNi4xODA5Ky0wLjQyNzUgICAgICAgID8g
bWlnaHQgYmUgMS4wNzUzeCBzbG93ZXIKICAgc3RyaW5nLXRhZ2Nsb3VkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOC4xNTQ3Ky0wLjczMDAgICAgICAgICAgICA3LjgwMTkrLTAu
MTA3NiAgICAgICAgICBtaWdodCBiZSAxLjA0NTJ4IGZhc3RlcgogICBzdHJpbmctdW5wYWNrLWNv
ZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3Ljg3NDErLTAuNTU2NyAgICAgPyAg
ICAgMTguNTUwMSstMC45Mjg2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM3OHggc2xvd2VyCiAgIHN0
cmluZy12YWxpZGF0ZS1pbnB1dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMTg3MSst
MC4zMDA3ICAgICA/ICAgICAgNC40MDUyKy0wLjU5NDAgICAgICAgID8gbWlnaHQgYmUgMS4wNTIx
eCBzbG93ZXIKCiAgIDxhcml0aG1ldGljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQuNDY3MistMC4wNzE0ICAgICA/ICAgICAgNC40OTQyKy0wLjA2MjggICAgICAgID8g
bWlnaHQgYmUgMS4wMDYweCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9nICAgICAgICAgICAgICAgICAgICAgIGNoYW5n
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkxvbmdTcGlkZXI6CiAgIDNk
LWN1YmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4MTMuNzQ5MSst
NS4xNDkxICAgICA/ICAgIDgxOS4yODg1Ky0zLjUwMTIgICAgICAgID8KICAgM2QtbW9ycGggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU4Ny4xMDM4Ky02LjYzNzAgICAg
ICAgICAgNTg0LjkzOTcrLTUuNjkzMCAgICAgICAgCiAgIDNkLXJheXRyYWNlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA2MjYuNTMzMCstMy4wMDE4ICAgICAgICAgIDYyNS4z
NjcxKy0zLjA2MzYgICAgICAgIAogICBhY2Nlc3MtYmluYXJ5LXRyZWVzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgODA5LjIxMjkrLTcuNzA1MyAgICAgICAgICA4MDYuNzQ3NCstNS4xMzgx
ICAgICAgICAKICAgYWNjZXNzLWZhbm5rdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIzMC41Mjk4Ky01LjUyODggICAgID8gICAgMjMyLjgyNDUrLTguNDE0MCAgICAgICAgPwog
ICBhY2Nlc3MtbmJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTA2Ljgx
MjArLTIuMDM2NSAgICAgPyAgICA1MTYuMTk0NistMTMuMDU4NCAgICAgICA/IG1pZ2h0IGJlIDEu
MDE4NXggc2xvd2VyCiAgIGFjY2Vzcy1uc2lldmUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyOTIuODE4MSstNC40MzY2ICAgICAgICAgIDI4Ny40ODk2Ky00LjE4MTYgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTg1eCBmYXN0ZXIKICAgYml0b3BzLTNiaXQtYml0cy1pbi1ieXRlICAg
ICAgICAgICAgICAgICAgICAgICAgICAzMi45MTc4Ky0xLjA5NjYgICAgICAgICAgIDMyLjc4MjYr
LTEuMTc5MiAgICAgICAgCiAgIGJpdG9wcy1iaXRzLWluLWJ5dGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOTcuMzYwNystMS43NDM3ICAgICAgICAgICA5Ni4zMjg1Ky0xLjg2NzYgICAg
ICAgICAgbWlnaHQgYmUgMS4wMTA3eCBmYXN0ZXIKICAgYml0b3BzLW5zaWV2ZS1iaXRzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDM4NC44NjkzKy03LjMxOTEgICAgID8gICAgMzg5LjM4
ODgrLTQuMDY0NSAgICAgICAgPyBtaWdodCBiZSAxLjAxMTd4IHNsb3dlcgogICBjb250cm9sZmxv
dy1yZWN1cnNpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUwLjA2NTErLTUuNjQ3NyAg
ICAgICAgICA0NDUuOTYyOSstMi4wOTM0ICAgICAgICAKICAgY3J5cHRvLWFlcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYwNi44MTMzKy03LjM5MzQgICAgICAgICAgNjAz
LjAzNjkrLTE0LjY3NzEgICAgICAgCiAgIGNyeXB0by1tZDUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1NTQuMjEzMSstMy44ODEyICAgICA/ICAgIDU1Ni4yNTk3Ky0zLjYw
NzEgICAgICAgID8KICAgY3J5cHRvLXNoYTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDYzNi4xNjkyKy0xLjUxNzEgICAgID8gICAgNjM5LjIyNzIrLTQuMDA0MSAgICAgICAg
PwogICBkYXRlLWZvcm1hdC10b2Z0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTQ2
LjUxNDkrLTExLjg0ODMgICAgICAgICA1MzMuNTU4OSstNS4wNDE0ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDI0M3ggZmFzdGVyCiAgIGRhdGUtZm9ybWF0LXhwYXJiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA2NTYuNjYxNystNC43NjQ2ICAgICA/ICAgIDY4MS4xMzYxKy01My44MDkwICAg
ICAgID8gbWlnaHQgYmUgMS4wMzczeCBzbG93ZXIKICAgaGFzaC1tYXAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDE0OS40NzY4Ky0xLjc2NjUgICAgICAgICAgMTQ2Ljcz
MzgrLTIuMTAwMiAgICAgICAgICBtaWdodCBiZSAxLjAxODd4IGZhc3RlcgogICBtYXRoLWNvcmRp
YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUxLjExMjgrLTEzLjczNzMg
ICAgICAgICA0NDEuMjU1NCstMTguNTI3NSAgICAgICAgIG1pZ2h0IGJlIDEuMDIyM3ggZmFzdGVy
CiAgIG1hdGgtcGFydGlhbC1zdW1zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzODEu
MzY3OCstMy4wODg2ICAgICA/ICAgIDM4Ni4yMzM4Ky03LjYxNDEgICAgICAgID8gbWlnaHQgYmUg
MS4wMTI4eCBzbG93ZXIKICAgbWF0aC1zcGVjdHJhbC1ub3JtICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDU0NC43NzAzKy00LjkwNDcgICAgICAgICAgNTQxLjAzOTIrLTIuOTExMiAgICAg
ICAgCiAgIHN0cmluZy1iYXNlNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
NDcuNzAyNistNS4xNTMwICAgICAgICAgIDM0NS4yNzI0Ky02Ljk2NzMgICAgICAgIAogICBzdHJp
bmctZmFzdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzM5LjQ1MDcrLTUu
MjQ2NSAgICAgPyAgICAzMzkuNjYzMSstMi45MDk5ICAgICAgICA/CiAgIHN0cmluZy10YWdjbG91
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNzAuOTE5MSstMS43NjE3ICAgICA/
ICAgIDE3MS40ODAwKy0xLjg1MzYgICAgICAgID8KCiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzNjcuNDA0OSstMC44NDU2ICAgICAgICAgIDM2Ni45
MjYxKy0yLjM2OTggICAgICAgICAgbWlnaHQgYmUgMS4wMDEzeCBmYXN0ZXIKCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9nICAgICAg
ICAgICAgICAgICAgICAgIGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgClY4U3BpZGVyOgogICBjcnlwdG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDM1LjUzMTArLTAuMjg0MSAgICAgPyAgICAgMzYuNTc0MSstMi40Mzk4ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI5NHggc2xvd2VyCiAgIGRlbHRhYmx1ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNDcuNjAyMystMS40Mzk1ICAgICA/ICAgICA0OC42Nzkz
Ky0yLjIyMTMgICAgICAgID8gbWlnaHQgYmUgMS4wMjI2eCBzbG93ZXIKICAgZWFybGV5LWJveWVy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzOS4yNTA1Ky0wLjI2ODUgICAg
ID8gICAgIDM5Ljc5OTArLTAuMzQ1NSAgICAgICAgPyBtaWdodCBiZSAxLjAxNDB4IHNsb3dlcgog
ICByYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5LjM2
NzIrLTAuOTMwNSAgICAgPyAgICAgMTkuNzk2MistMC41Njc0ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDIyMnggc2xvd2VyCiAgIHJlZ2V4cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNTUuNTc2NCstMS42NzY5ICAgICA/ICAgICA1Ni4xMDQzKy0xLjk0NDEgICAgICAg
ID8KICAgcmljaGFyZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
OS41NDYzKy0xLjA0MDQgICAgICAgICAgIDM5LjAyNTMrLTAuMjA1NyAgICAgICAgICBtaWdodCBi
ZSAxLjAxMzR4IGZhc3RlcgogICBzcGxheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMyLjQyNTkrLTIuMTEzMSAgICAgICAgICAgMzAuODI1NSstMC41ODgzICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDUxOXggZmFzdGVyCgogICA8Z2VvbWV0cmljPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2Ljc5NjYrLTAuMzY4MSAgICAgPyAgICAgMzYu
OTcwOCstMC41MzI0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDA0N3ggc2xvd2VyCgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZyAgICAg
ICAgICAgICAgICAgICAgICBjaGFuZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIApPY3RhbmU6CiAgIGVuY3J5cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC4xNTc1MistMC4wMDEyNSAgICA/ICAgICAwLjE1ODAxKy0wLjAwMjI3ICAgICAg
ID8KICAgZGVjcnlwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
LjczOTg0Ky0wLjAwODMyICAgICAgICAgIDIuNzM3MDIrLTAuMDExMzUgICAgICAgCiAgIGRlbHRh
Ymx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgMC4xMzY2NCstMC4w
MDIzOCAgICAgICAgICAwLjEzNjQ1Ky0wLjAwODA1ICAgICAgIAogICBlYXJsZXkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjc4OTkrLTAuMDAzOTAgICAgICAg
ICAgMC4yNzU4MystMC4wMDI0NiAgICAgICAgIG1pZ2h0IGJlIDEuMDExNXggZmFzdGVyCiAgIGJv
eWVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42MjkwNCst
MC4xNTcwOSAgICA/ICAgICA0LjY1NDA4Ky0wLjE3MzAyICAgICAgID8KICAgbmF2aWVyLXN0b2tl
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICA0LjgzNTM2Ky0wLjAzMzY5ICAg
ICAgICAgIDQuODMwODErLTAuMDM4MDAgICAgICAgCiAgIHJheXRyYWNlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeDIgICAgICAgMC44NzY5MCstMC4wMTE0MSAgICAgICAgICAwLjg2
ODQ0Ky0wLjAwNTc0ICAgICAgIAogICByaWNoYXJkcyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHgyICAgICAgIDAuMDc5NjArLTAuMDAwOTMgICAgICAgICAgMC4wNzkyMystMC4wMDA2
MCAgICAgICAKICAgc3BsYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAg
ICAgICAwLjM0OTAxKy0wLjAwMTMxICAgIF4gICAgIDAuMzQzMzQrLTAuMDAzMjkgICAgICAgXiBk
ZWZpbml0ZWx5IDEuMDE2NXggZmFzdGVyCiAgIHJlZ2V4cCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeDIgICAgICAxOC41NTUwNSstMC40MDQzNiAgICAgICAgIDE4LjA3NDE5Ky0w
LjQ4MDUyICAgICAgICAgbWlnaHQgYmUgMS4wMjY2eCBmYXN0ZXIKICAgcGRmanMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDM3LjMxMDQ1Ky0wLjU0NTY3ICAgID8g
ICAgMzcuOTEwOTMrLTAuNzMwNDggICAgICAgPyBtaWdodCBiZSAxLjAxNjF4IHNsb3dlcgogICBt
YW5kcmVlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgNDAuOTA3NjEr
LTAuMjE5NjMgICAgPyAgICA0MS4wNzA2OSstMC4xMDkwMyAgICAgICA/CiAgIGdiZW11ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAyMy42NTAyMSstMC40NTMwMiAg
ICA/ICAgIDIzLjY3NjI1Ky0wLjEzOTcyICAgICAgID8KICAgY2xvc3VyZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjU3MTgyKy0wLjAwNTE4ICAgIF4gICAgIDAu
NTU4MTgrLTAuMDA1NTkgICAgICAgXiBkZWZpbml0ZWx5IDEuMDI0NHggZmFzdGVyCiAgIGpxdWVy
eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy41NDg4MSstMC4w
NTM0OSAgICBeICAgICA3LjI4MDg4Ky0wLjA2MTA5ICAgICAgIF4gZGVmaW5pdGVseSAxLjAzNjh4
IGZhc3RlcgogICBib3gyZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAg
ICAgIDkuMDQyMzkrLTAuMTU1OTQgICAgICAgICAgOC45ODc4MystMC4wODI4NyAgICAgICAKICAg
emxpYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgMzY0LjQxMDM3
Ky00LjQwMDIxICAgICEgICAzNzIuOTkwMTErLTEuNTM4NTMgICAgICAgISBkZWZpbml0ZWx5IDEu
MDIzNXggc2xvd2VyCiAgIHR5cGVzY3JpcHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eDIgICAgIDY1Mi4xMzQ1NistNi4yNjAxMyAgICAgICAgNjQ4Ljc1NDM5Ky0xMi40NTQ3MSAgICAg
IAoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1
LjA1NDQxKy0wLjAyNjU1ICAgICAgICAgIDUuMDM0MzkrLTAuMDIxMTEgICAgICAgICBtaWdodCBi
ZSAxLjAwNDB4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb2cgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKS3Jha2VuOgogICBhaS1hc3RhciAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4OC4zNDcrLTIuNjU4ICAgICAg
ICAgICAgIDg3LjA1MSstNC40NTIgICAgICAgICAgIG1pZ2h0IGJlIDEuMDE0OXggZmFzdGVyCiAg
IGF1ZGlvLWJlYXQtZGV0ZWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQxLjQ2
MistMC41MDkgICAgICA/ICAgICAgNDEuNzI4Ky0wLjgyNCAgICAgICAgID8KICAgYXVkaW8tZGZ0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTkuMTYxKy0zLjA0NyAg
ICAgICAgICAgICA5OC42NDkrLTIuMDQ2ICAgICAgICAgCiAgIGF1ZGlvLWZmdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyLjc4OSstMC4xMDggICAgICA/ICAgICAg
MzMuMzA0Ky0wLjg3OCAgICAgICAgID8gbWlnaHQgYmUgMS4wMTU3eCBzbG93ZXIKICAgYXVkaW8t
b3NjaWxsYXRvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDYuNDE0Ky0xLjA4
MCAgICAgID8gICAgICA0OC4xNDkrLTIuNjg5ICAgICAgICAgPyBtaWdodCBiZSAxLjAzNzR4IHNs
b3dlcgogICBpbWFnaW5nLWRhcmtyb29tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA1Ny40NDMrLTAuNDIwICAgICAgPyAgICAgIDU3LjQ2NystMC4yODAgICAgICAgICA/CiAgIGlt
YWdpbmctZGVzYXR1cmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ1LjM4MSst
NC41NTMgICAgICA/ICAgICAgNDYuOTQ5Ky0zLjYwMSAgICAgICAgID8gbWlnaHQgYmUgMS4wMzQ1
eCBzbG93ZXIKICAgaW1hZ2luZy1nYXVzc2lhbi1ibHVyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNjEuMjE1Ky0yLjc2OSAgICAgID8gICAgICA2My43NTYrLTQuNDM4ICAgICAgICAgPyBt
aWdodCBiZSAxLjA0MTV4IHNsb3dlcgogICBqc29uLXBhcnNlLWZpbmFuY2lhbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzNi43NjMrLTEuNTY3ICAgICAgICAgICAgIDM2LjUzNCstMS42
OTUgICAgICAgICAKICAganNvbi1zdHJpbmdpZnktdGluZGVyYm94ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjEuODg3Ky0xLjAzMSAgICAgID8gICAgICAyMy4zMTUrLTAuODUzICAgICAgICAg
PyBtaWdodCBiZSAxLjA2NTJ4IHNsb3dlcgogICBzdGFuZm9yZC1jcnlwdG8tYWVzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzOC42MjcrLTEuNzEzICAgICAgICAgICAgIDM3Ljk2Nyst
MC43MDkgICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3NHggZmFzdGVyCiAgIHN0YW5mb3JkLWNyeXB0
by1jY20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM1LjUxOCstMi4yMzggICAgICAg
ICAgICAgMzMuNzUzKy0xLjQ5OCAgICAgICAgICAgbWlnaHQgYmUgMS4wNTIzeCBmYXN0ZXIKICAg
c3RhbmZvcmQtY3J5cHRvLXBia2RmMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTUuMTQw
Ky0xLjUwNyAgICAgICAgICAgICA5NC45MjgrLTEuNTMyICAgICAgICAgCiAgIHN0YW5mb3JkLWNy
eXB0by1zaGEyNTYtaXRlcmF0aXZlICAgICAgICAgICAgICAgICAgIDM2LjcxOCstMC4zODYgICAg
ICA/ICAgICAgMzYuODcwKy0xLjgxNyAgICAgICAgID8KCiAgIDxhcml0aG1ldGljPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUyLjYzMystMC42NTggICAgICA/ICAgICAg
NTIuODg3Ky0wLjUzNyAgICAgICAgID8gbWlnaHQgYmUgMS4wMDQ4eCBzbG93ZXIKCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9nICAg
ICAgICAgICAgICAgICAgICAgIGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCkpTUmVncmVzczoKICAgYWJjLWZvcndhcmQtbG9vcC1lcXVhbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyMy4yMTk4Ky0wLjY4MjAgICAgID8gICAgIDI0LjExNTQrLTAuNDQyOSAg
ICAgICAgPyBtaWdodCBiZSAxLjAzODZ4IHNsb3dlcgogICBhYmMtcG9zdGZpeC1iYWNrd2FyZC1s
b29wICAgICAgICAgICAgICAgICAgICAgICAgIDMwLjYzODgrLTIuMDkwOSAgICAgICAgICAgMjku
NjgzMistMS4wMjIyICAgICAgICAgIG1pZ2h0IGJlIDEuMDMyMnggZmFzdGVyCiAgIGFiYy1zaW1w
bGUtYmFja3dhcmQtbG9vcCAgICAgICAgICAgICAgICAgICAgICAgICAgMjMuNjQzNCstMC43OTgy
ICAgICA/ICAgICAyNC4wODQ2Ky0xLjIyMDIgICAgICAgID8gbWlnaHQgYmUgMS4wMTg3eCBzbG93
ZXIKICAgYWJjLXNpbXBsZS1mb3J3YXJkLWxvb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAy
My43OTY3Ky0xLjA4NjggICAgID8gICAgIDI0LjEyOTQrLTEuMjA2MiAgICAgICAgPyBtaWdodCBi
ZSAxLjAxNDB4IHNsb3dlcgogICBhYmMtc2tpcHB5LWxvb3AgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIwLjk0MTcrLTAuOTg0MyAgICAgPyAgICAgMjEuMjE5MCstMS4xMTc2ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDEzMnggc2xvd2VyCiAgIGFicy1ib29sZWFuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMTYwOCstMC4wNTIxICAgICAgICAgICAgMi4x
MjM4Ky0wLjA0MDIgICAgICAgICAgbWlnaHQgYmUgMS4wMTc0eCBmYXN0ZXIKICAgYWRhcHQtdG8t
ZG91YmxlLWRpdmlkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC4wOTYzKy0wLjQ3Nzgg
ICAgID8gICAgIDE0LjYyNDErLTEuMTUyNyAgICAgICAgPyBtaWdodCBiZSAxLjAzNzR4IHNsb3dl
cgogICBhbGlhc2VkLWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAx
LjE3NzgrLTAuMTMwOCAgICAgICAgICAgIDEuMTMzOSstMC4xMTQ2ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDM4N3ggZmFzdGVyCiAgIGFsbG9jYXRlLWJpZy1vYmplY3QgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuMzA0MSstMC4yNDk4ICAgICA/ICAgICAgMi40MzkwKy0wLjIzNzkgICAg
ICAgID8gbWlnaHQgYmUgMS4wNTg1eCBzbG93ZXIKICAgYXJndW1lbnRzLW5hbWVkLWFuZC1yZWZs
ZWN0aXZlICAgICAgICAgICAgICAgICAgICAgNy41NTAxKy0wLjA3OTEgICAgICAgICAgICA3LjQ5
MzUrLTAuMDY5MyAgICAgICAgCiAgIGFyZ3VtZW50cy1vdXQtb2YtYm91bmRzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDYuNTE2MSstMC40MzY4ICAgICAgICAgICAgNi40MDkzKy0wLjE2ODcg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTY3eCBmYXN0ZXIKICAgYXJndW1lbnRzLXN0cmljdC1tb2Rl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNi41OTgzKy0yLjA2MTkgICAgICAgICAgIDM1
LjU2NDIrLTAuODA2OSAgICAgICAgICBtaWdodCBiZSAxLjAyOTF4IGZhc3RlcgogICBhcmd1bWVu
dHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjY2MTkrLTAuODM3
NyAgICAgICAgICAgIDYuMjgyNystMC4zNzc5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDYwNHggZmFz
dGVyCiAgIGFyaXR5LW1pc21hdGNoLWlubGluaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAuODIwNistMC4wMzM5ICAgICA/ICAgICAgMC44NjY5Ky0wLjA4MDggICAgICAgID8gbWlnaHQg
YmUgMS4wNTY1eCBzbG93ZXIKICAgYXJyYXktYWNjZXNzLXBvbHltb3JwaGljLXN0cnVjdHVyZSAg
ICAgICAgICAgICAgICAgNy4yMTYwKy0wLjIwODEgICAgICAgICAgICA2Ljk2ODUrLTAuMTMyMyAg
ICAgICAgICBtaWdodCBiZSAxLjAzNTV4IGZhc3RlcgogICBhcnJheS1ub25hcnJheS1wb2x5bW9y
aHBpYy1hY2Nlc3MgICAgICAgICAgICAgICAgIDIyLjM2MDErLTIuMzYzNiAgICAgICAgICAgMjAu
MTc4MSstMi4yMTIxICAgICAgICAgIG1pZ2h0IGJlIDEuMTA4MXggZmFzdGVyCiAgIGFycmF5LXBy
b3RvdHlwZS1ldmVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzEuNjA4OSstMS42NDU3
ICAgICAgICAgICA3MC4yODA0Ky0wLjYwNDQgICAgICAgICAgbWlnaHQgYmUgMS4wMTg5eCBmYXN0
ZXIKICAgYXJyYXktcHJvdG90eXBlLWZvckVhY2ggICAgICAgICAgICAgICAgICAgICAgICAgICA2
OS42MDk2Ky0xLjA4NTQgICAgID8gICAgIDcxLjQzMjYrLTIuNjg1MSAgICAgICAgPyBtaWdodCBi
ZSAxLjAyNjJ4IHNsb3dlcgogICBhcnJheS1wcm90b3R5cGUtbWFwICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDcyLjE5NzArLTQuMzM2MyAgICAgICAgICAgNzAuODEzMCstMS42Mzg1ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDE5NXggZmFzdGVyCiAgIGFycmF5LXByb3RvdHlwZS1yZWR1Y2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNjUuODc1NystMS44Mzg2ICAgICA/ICAgICA3Mi4y
MzEyKy0xNy42MjAyICAgICAgID8gbWlnaHQgYmUgMS4wOTY1eCBzbG93ZXIKICAgYXJyYXktcHJv
dG90eXBlLXJlZHVjZVJpZ2h0ICAgICAgICAgICAgICAgICAgICAgICA4MC4yOTA0Ky0yLjI4ODIg
ICAgID8gICAgIDgwLjQxNzYrLTEuNjgwOSAgICAgICAgPwogICBhcnJheS1wcm90b3R5cGUtc29t
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcyLjE2NjYrLTMuMzYwMCAgICAgICAgICAg
NzEuMzU5NSstMy4yMjgxICAgICAgICAgIG1pZ2h0IGJlIDEuMDExM3ggZmFzdGVyCiAgIGFycmF5
LXNwbGljZS1jb250aWd1b3VzICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuOTM0OSstMS40
NzM0ICAgICAgICAgICAyMS4yMjA4Ky0wLjk2NjIgICAgICAgICAgbWlnaHQgYmUgMS4wMzM2eCBm
YXN0ZXIKICAgYXJyYXktd2l0aC1kb3VibGUtYWRkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMy4wODc5Ky0wLjA0ODggICAgID8gICAgICAzLjIwODErLTAuMjU2NSAgICAgICAgPyBtaWdo
dCBiZSAxLjAzODl4IHNsb3dlcgogICBhcnJheS13aXRoLWRvdWJsZS1pbmNyZW1lbnQgICAgICAg
ICAgICAgICAgICAgICAgICAyLjgxNzgrLTAuMzI3NSAgICAgICAgICAgIDIuNzEzOCstMC4xMDgz
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM4M3ggZmFzdGVyCiAgIGFycmF5LXdpdGgtZG91YmxlLW11
bC1hZGQgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNjM5NCstMC4xMDM1ICAgICA/ICAgICAg
My42OTE3Ky0wLjM0OTEgICAgICAgID8gbWlnaHQgYmUgMS4wMTQzeCBzbG93ZXIKICAgYXJyYXkt
d2l0aC1kb3VibGUtc3VtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42MjkwKy0wLjEx
MzggICAgID8gICAgICAyLjYzNzIrLTAuMDkxMSAgICAgICAgPwogICBhcnJheS13aXRoLWludDMy
LWFkZC1zdWIgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI5MjkrLTAuMTE0NiAgICAgPyAg
ICAgIDQuMzIzMCstMC4wNzUyICAgICAgICA/CiAgIGFycmF5LXdpdGgtaW50MzItb3ItZG91Ymxl
LXN1bSAgICAgICAgICAgICAgICAgICAgIDIuOTI4OCstMC40ODAwICAgICAgICAgICAgMi43Nzcz
Ky0wLjIzMTAgICAgICAgICAgbWlnaHQgYmUgMS4wNTQ1eCBmYXN0ZXIKICAgQXJyYXlCdWZmZXIt
RGF0YVZpZXctYWxsb2MtbGFyZ2UtbG9uZy1saXZlZCAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM3LjA0NTMrLTAuOTUxOCAgICAgPyAgICAg
MzcuMzUyNSstMC41MzI3ICAgICAgICA/CiAgIEFycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxv
bmctbGl2ZWQgICAgICAgICAgICAgMTUuMDMzNistMC42MjcxICAgICA/ICAgICAxNS4xNDg4Ky0w
Ljc1MTkgICAgICAgID8KICAgQXJyYXlCdWZmZXItSW50MzJBcnJheS1ieXRlT2Zmc2V0ICAgICAg
ICAgICAgICAgICAgMy40MjY0Ky0wLjA5MDEgICAgID8gICAgICAzLjQ0NTUrLTAuMDgxNiAgICAg
ICAgPwogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZCAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM1Ljc4
OTkrLTAuNTI2OCAgICAgPyAgICAgMzYuMTkzNSstMS40NzI0ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDExM3ggc2xvd2VyCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkLWJ1
ZmZlciAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIxLjQ1MzMrLTAuOTcyOSAgICAgPyAgICAgMjIuNDY5NystMS41ODAwICAgICAgICA/IG1p
Z2h0IGJlIDEuMDQ3NHggc2xvd2VyCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25n
LWxpdmVkICAgICAgICAgICAgMTMuNjY2MSstMC4zODE1ICAgICA/ICAgICAxNC4zMTE2Ky0xLjE1
NjcgICAgICAgID8gbWlnaHQgYmUgMS4wNDcyeCBzbG93ZXIKICAgQXJyYXlCdWZmZXItSW50OEFy
cmF5LWFsbG9jICAgICAgICAgICAgICAgICAgICAgICAxMi43NzI0Ky0xLjI4MDEgICAgICAgICAg
IDEyLjIyMzMrLTAuNDU0OCAgICAgICAgICBtaWdodCBiZSAxLjA0NDl4IGZhc3RlcgogICBhcnJv
d2Z1bmN0aW9uLWNhbGwtaW4tY2xhc3MtY29uc3RydWN0b3IgICAgICAgICAgIDY0LjQ0MjUrLTMu
NTA3NyAgICAgICAgICAgNjIuODE4OSstMi43MzE3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI1OHgg
ZmFzdGVyCiAgIGFycm93ZnVuY3Rpb24tY2FsbC1pbi1jbGFzcy1tZXRob2QgICAgICAgICAgICAg
ICAgMjQuNzY5OCstMC44OTY0ICAgICAgICAgICAyNC4yODY3Ky0xLjE1NTMgICAgICAgICAgbWln
aHQgYmUgMS4wMTk5eCBmYXN0ZXIKICAgYXJyb3dmdW5jdGlvbi1jYWxsLWluLWZ1bmN0aW9uICAg
ICAgICAgICAgICAgICAgICAgNS42NTc2Ky0wLjQxNjIgICAgID8gICAgICA1LjY2MDcrLTAuMzA1
OCAgICAgICAgPwogICBhcnJvd2Z1bmN0aW9uLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4Ljc4NjUrLTAuNTgzMCAgICAgICAgICAgIDguMTg1MystMC4xNjI0ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDczNXggZmFzdGVyCiAgIGFzbWpzX2Jvb2xfYnVnICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDcuMTI5MystMC4xMDkxICAgICAgICAgICAgNy4xMTI3Ky0w
LjA3NjYgICAgICAgIAogICBhc3NpZ24tY3VzdG9tLXNldHRlci1wb2x5bW9ycGhpYyAgICAgICAg
ICAgICAgICAgICAyLjY0NzUrLTAuMTQ3NSAgICAgICAgICAgIDIuNTUwNistMC4wNDM1ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDM4MHggZmFzdGVyCiAgIGFzc2lnbi1jdXN0b20tc2V0dGVyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTkzMystMC40NTc2ICAgICAgICAgICAgMy44MjU3
Ky0wLjIxMTQgICAgICAgICAgbWlnaHQgYmUgMS4wNDM4eCBmYXN0ZXIKICAgYmFzaWMtc2V0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4yOTcxKy0wLjc1NTcgICAg
ICAgICAgICA3LjI2MzIrLTAuMzU2MCAgICAgICAgCiAgIGJpZy1pbnQtbXVsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDMyMCstMC4wNTA4ICAgICA/ICAgICAgMy4x
MzgwKy0wLjEyNDIgICAgICAgID8gbWlnaHQgYmUgMS4wMzUweCBzbG93ZXIKICAgYm9vbGVhbi10
ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4zMDU3Ky0wLjM1MTMg
ICAgICAgICAgICAzLjIwNTMrLTAuMTg1MCAgICAgICAgICBtaWdodCBiZSAxLjAzMTN4IGZhc3Rl
cgogICBicmFuY2gtZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
LjYwMDYrLTAuMTA3OSAgICAgPyAgICAgIDMuNzI3NCstMC4zNzU5ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDM1Mnggc2xvd2VyCiAgIGJyYW5jaC1vbi1zdHJpbmctYXMtYm9vbGVhbiAgICAgICAgICAg
ICAgICAgICAgICAgIDkuOTcyOSstMC43NTU4ICAgICA/ICAgICAxMC4wMjQyKy0wLjM1NzEgICAg
ICAgID8KICAgYnVpbGQtbGFyZ2Utb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzMC4zMjgxKy0xLjAyMDYgICAgICAgICAgIDMwLjAzNDYrLTAuMjkzOCAgICAgICAgCiAgIGJ5
LXZhbC1nZW5lcmljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMjAyMCst
MC4yNTc1ICAgICA/ICAgICAgNC4zMDM2Ky0wLjE2NjQgICAgICAgID8gbWlnaHQgYmUgMS4wMjQy
eCBzbG93ZXIKICAgY2FsbC1zcHJlYWQtYXBwbHkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzNS42NjMxKy0wLjYyMDMgICAgICAgICAgIDM0LjYzMjUrLTEuMjE1MCAgICAgICAgICBt
aWdodCBiZSAxLjAyOTh4IGZhc3RlcgogICBjYWxsLXNwcmVhZC1jYWxsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQxLjM4MjYrLTAuOTMwNCAgICAgICAgICAgNDEuMDE3MSstMC43
Mzk0ICAgICAgICAKICAgY2FwdHVyZWQtYXNzaWdubWVudHMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC40MjY3Ky0wLjAyODMgICAgICAgICAgICAwLjQxNzgrLTAuMDI4NCAgICAgICAg
ICBtaWdodCBiZSAxLjAyMTF4IGZhc3RlcgogICBjYXN0LWludC10by1kb3VibGUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0LjkxNjArLTAuMjM1MSAgICAgPyAgICAgIDUuMDk5MCst
MC40ODk0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM3Mnggc2xvd2VyCiAgIGNlbGwtYXJndW1lbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNjUwNystMC4wODE2ICAgICA/
ICAgICAgMi42ODk2Ky0wLjEyNTYgICAgICAgID8gbWlnaHQgYmUgMS4wMTQ3eCBzbG93ZXIKICAg
Y2ZnLXNpbXBsaWZ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43MTU5
Ky0wLjEwNTggICAgICAgICAgICAyLjYzMTcrLTAuMDc2NiAgICAgICAgICBtaWdodCBiZSAxLjAz
MjB4IGZhc3RlcgogICBjaGFpbi1nZXR0ZXItYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEwLjc4MDkrLTAuNDg5NSAgICAgICAgICAgMTAuNTQwMCstMC4xMTM5ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDIyOXggZmFzdGVyCiAgIGNtcGVxLW9iai10by1vYmotb3RoZXIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDguMDQ5OCstMC4xNTc1ICAgICA/ICAgICAgOC4wNTkyKy0w
LjQ4MzEgICAgICAgID8KICAgY29uc3RhbnQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC40OTYyKy0wLjA1MjYgICAgID8gICAgICA0LjU1MzUrLTAuMDQxOCAgICAg
ICAgPyBtaWdodCBiZSAxLjAxMjd4IHNsb3dlcgogICBjcmVhdGUtbG90cy1vZi1mdW5jdGlvbnMg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjU0NDcrLTIuNjczNyAgICAgPyAgICAgMTIuNDEw
MistMi40ODM1ICAgICAgICA/IG1pZ2h0IGJlIDEuMTc2OXggc2xvd2VyCiAgIGNzZS1uZXctYXJy
YXktYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjAxOCstMC4xOTk4ICAg
ICA/ICAgICAgMi4yODczKy0wLjA4NDUgICAgICAgID8gbWlnaHQgYmUgMS4wMzg4eCBzbG93ZXIK
ICAgY3NlLW5ldy1hcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4y
OTA4Ky0wLjE3NTEgICAgID8gICAgICAyLjMzOTUrLTAuMTc3MCAgICAgICAgPyBtaWdodCBiZSAx
LjAyMTN4IHNsb3dlcgogICBjdXN0b20tc2V0dGVyLWdldHRlci1hcy1wdXQtZ2V0LWJ5LWlkICAg
ICAgICAgICAgICAwLjUzNDQrLTAuMDQ0OCAgICAgICAgICAgIDAuNTAwMCstMC4wMzY0ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDY4OXggZmFzdGVyCiAgIERhdGFWaWV3LWN1c3RvbS1wcm9wZXJ0aWVz
ICAgICAgICAgICAgICAgICAgICAgICAgNDMuMzQ0NistMS40OTExICAgICAgICAgICA0Mi43MTE2
Ky0xLjgzNTUgICAgICAgICAgbWlnaHQgYmUgMS4wMTQ4eCBmYXN0ZXIKICAgZGVsYXktdGVhci1v
ZmYtYXJndW1lbnRzLXN0cmljdG1vZGUgICAgICAgICAgICAgICAgNC4yNzA2Ky0wLjM5MzQgICAg
ID8gICAgICA0LjQ0MzYrLTAuNTM3MSAgICAgICAgPyBtaWdodCBiZSAxLjA0MDV4IHNsb3dlcgog
ICBkZWx0YWJsdWUtdmFyYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM4LjU2
NTYrLTEuMjcyMyAgICAgPyAgICAgMzguNTk3NSstMC45OTc3ICAgICAgICA/CiAgIGRlc3RydWN0
dXJpbmctYXJndW1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAxNTYuOTA1NCstMi41NTMz
ICAgICAgICAgIDE1Ni4xMzk1Ky0xLjQzNjMgICAgICAgIAogICBkZXN0cnVjdHVyaW5nLXBhcmFt
ZXRlcnMtb3ZlcnJpZGRlbi1ieS1mdW5jdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjQ1NjMrLTAuMDE5MyAgICAgICAgICAgIDAu
NDUwMystMC4wMTg2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzNXggZmFzdGVyCiAgIGRlc3RydWN0
dXJpbmctc3dhcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjY3OCstMC4zNjI0
ICAgICAgICAgICAgNC4zNjg3Ky0wLjAzMjUgICAgICAgICAgbWlnaHQgYmUgMS4wNjg1eCBmYXN0
ZXIKICAgZGlyZWN0LWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAg
MS4xMzc2Ky0wLjA0NzYgICAgID8gICAgICAxLjE3NjMrLTAuMDg5MyAgICAgICAgPyBtaWdodCBi
ZSAxLjAzNDB4IHNsb3dlcgogICBkaXYtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzLjc2NjIrLTAuMTEwMiAgICAgICAgICAgIDMuNzUyNystMC4xMDQ2ICAg
ICAgICAKICAgZGl2LWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNy4xODcxKy0wLjM5NTkgICAgICAgICAgICA3LjE0MTcrLTAuNDA1NyAgICAgICAgCiAgIGRv
dWJsZS1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMgICAgICAgICAgICAgICAgICAgIDQuNTc0OCst
MC40NTI3ICAgICAgICAgICAgNC4zNjk1Ky0wLjIxMzUgICAgICAgICAgbWlnaHQgYmUgMS4wNDcw
eCBmYXN0ZXIKICAgZG91YmxlLXBvbGx1dGlvbi1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgNy43ODAwKy0wLjExNDAgICAgID8gICAgICA3LjkxMDQrLTAuNDAxOSAgICAgICAgPyBt
aWdodCBiZSAxLjAxNjh4IHNsb3dlcgogICBkb3VibGUtcG9sbHV0aW9uLXB1dGJ5b2Zmc2V0ICAg
ICAgICAgICAgICAgICAgICAgICAzLjU5MDIrLTAuMzIxMiAgICAgICAgICAgIDMuNTA0MistMC4x
ODg1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0NXggZmFzdGVyCiAgIGRvdWJsZS1yZWFsLXVzZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUuOTk2NSstMy4wMjAzICAgICA/ICAg
ICAyNy43MjY0Ky00LjAyNDQgICAgICAgID8gbWlnaHQgYmUgMS4wNjY1eCBzbG93ZXIKICAgZG91
YmxlLXRvLWludDMyLXR5cGVkLWFycmF5LW5vLWlubGluZSAgICAgICAgICAgICAgMi4wMTMzKy0w
LjE0MDcgICAgICAgICAgICAyLjAwMTErLTAuMDcwMyAgICAgICAgCiAgIGRvdWJsZS10by1pbnQz
Mi10eXBlZC1hcnJheSAgICAgICAgICAgICAgICAgICAgICAgIDEuOTQ0MystMC4wNTM0ICAgICAg
ICAgICAgMS45MjgwKy0wLjA1ODggICAgICAgIAogICBkb3VibGUtdG8tdWludDMyLXR5cGVkLWFy
cmF5LW5vLWlubGluZSAgICAgICAgICAgICAxLjk4NDgrLTAuMDU2MCAgICAgPyAgICAgIDIuMTM5
MSstMC4zNTI2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDc3N3ggc2xvd2VyCiAgIGRvdWJsZS10by11
aW50MzItdHlwZWQtYXJyYXkgICAgICAgICAgICAgICAgICAgICAgIDIuMTA0OSstMC40MzI4ICAg
ICAgICAgICAgMS45NzQ5Ky0wLjAzMDkgICAgICAgICAgbWlnaHQgYmUgMS4wNjU4eCBmYXN0ZXIK
ICAgZWxpZGFibGUtbmV3LW9iamVjdC1kYWcgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC4z
MDI1Ky0wLjY4MjUgICAgID8gICAgIDIwLjczMDcrLTEuMTMzMSAgICAgICAgPyBtaWdodCBiZSAx
LjAyMTF4IHNsb3dlcgogICBlbGlkYWJsZS1uZXctb2JqZWN0LXJvZmxjb3B0ZXIgICAgICAgICAg
ICAgICAgICAgIDIwLjcyNDErLTAuMzk2MCAgICAgPyAgICAgMjIuOTQ4NCstNC45NDIzICAgICAg
ICA/IG1pZ2h0IGJlIDEuMTA3M3ggc2xvd2VyCiAgIGVsaWRhYmxlLW5ldy1vYmplY3QtdGhlbi1j
YWxsICAgICAgICAgICAgICAgICAgICAgMTcuOTA1NSstMC43MTI0ICAgICA/ICAgICAxOC4zNjU2
Ky0wLjk4OTcgICAgICAgID8gbWlnaHQgYmUgMS4wMjU3eCBzbG93ZXIKICAgZWxpZGFibGUtbmV3
LW9iamVjdC10cmVlICAgICAgICAgICAgICAgICAgICAgICAgICAyMC41OTA4Ky0wLjcwMjAgICAg
ICAgICAgIDIwLjM3MzkrLTAuNjA5MSAgICAgICAgICBtaWdodCBiZSAxLjAxMDZ4IGZhc3Rlcgog
ICBlbXB0eS1zdHJpbmctcGx1cy1pbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljgz
NTkrLTAuMzE0NyAgICAgICAgICAgIDQuNjkwMSstMC4xMDAyICAgICAgICAgIG1pZ2h0IGJlIDEu
MDMxMXggZmFzdGVyCiAgIGVtc2NyaXB0ZW4tY3ViZTJoYXNoICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjQuMTQyMSstMC41OTI0ICAgICA/ICAgICAyNC4xNzY4Ky0wLjU5MTUgICAgICAg
ID8KICAgZXhpdC1sZW5ndGgtb24tcGxhaW4tb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAx
NS40NTkyKy0wLjc2MjggICAgICAgICAgIDE1LjE4NzMrLTAuNTUwOCAgICAgICAgICBtaWdodCBi
ZSAxLjAxNzl4IGZhc3RlcgogICBleHRlcm5hbC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAg
ICAgICAgICAgICAgICAxLjE1NzgrLTAuMTI5NCAgICAgICAgICAgIDEuMTI3NistMC4wNTUwICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDI2OHggZmFzdGVyCiAgIGV4dGVybmFsLWFyZ3VtZW50cy1wdXRi
eXZhbCAgICAgICAgICAgICAgICAgICAgICAgIDIuMTc3NistMC4xMjc1ICAgICA/ICAgICAgMi4z
MDM0Ky0wLjQ0NjkgICAgICAgID8gbWlnaHQgYmUgMS4wNTc4eCBzbG93ZXIKICAgZml4ZWQtdHlw
ZWQtYXJyYXktc3RvcmFnZS12YXItaW5kZXggICAgICAgICAgICAgICAgMS4xNTEzKy0wLjAyMjUg
ICAgID8gICAgICAxLjIyNzUrLTAuMjMyNCAgICAgICAgPyBtaWdodCBiZSAxLjA2NjJ4IHNsb3dl
cgogICBmaXhlZC10eXBlZC1hcnJheS1zdG9yYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAw
Ljg4MjIrLTAuMDM0MCAgICAgICAgICAgIDAuODc5NSstMC4wMzQwICAgICAgICAKICAgRmxvYXQz
MkFycmF5LW1hdHJpeC1tdWx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4yODUwKy0wLjA1
NDQgICAgID8gICAgICA0LjY2NTkrLTAuNTM1MCAgICAgICAgPyBtaWdodCBiZSAxLjA4ODl4IHNs
b3dlcgogICBGbG9hdDMyQXJyYXktdG8tRmxvYXQ2NEFycmF5LXNldCAgICAgICAgICAgICAgICAg
IDM4Ljc3NTQrLTIuNTcyMyAgICAgPyAgICAgMzguODgzMCstMS4xMjU2ICAgICAgICA/CiAgIEZs
b2F0NjRBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgNTQuNTYyOSst
MC41ODU3ICAgICA/ICAgICA1NC45ODc5Ky0wLjcwMjcgICAgICAgID8KICAgRmxvYXQ2NEFycmF5
LXRvLUludDE2QXJyYXktc2V0ICAgICAgICAgICAgICAgICAgICA0OC4yNDQ2Ky0wLjc5ODAgICAg
ID8gICAgIDQ4LjU0NDcrLTEuNDk0NSAgICAgICAgPwogICBmb2xkLWRvdWJsZS10by1pbnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjk4MjUrLTAuNDU0NyAgICAgICAgICAgMTEu
NzgyMSstMC40OTA4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3MHggZmFzdGVyCiAgIGZvbGQtZ2V0
LWJ5LWlkLXRvLW11bHRpLWdldC1ieS1vZmZzZXQtcmFyZS1pbnQgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4wNDg3Ky0wLjQ5MzkgICAg
ID8gICAgICA3LjE4NDMrLTAuNTE2NiAgICAgICAgPyBtaWdodCBiZSAxLjAxOTJ4IHNsb3dlcgog
ICBmb2xkLWdldC1ieS1pZC10by1tdWx0aS1nZXQtYnktb2Zmc2V0ICAgICAgICAgICAgICA1Ljg2
MzYrLTAuMTA3NCAgICAgICAgICAgIDUuNzI1NSstMC4wNzk0ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDI0MXggZmFzdGVyCiAgIGZvbGQtbXVsdGktZ2V0LWJ5LW9mZnNldC10by1nZXQtYnktb2Zmc2V0
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQuMzI5NSstMC40MzMyICAgICAgICAgICAgNC4wMjkyKy0wLjAzODMgICAgICAgICAgbWlnaHQg
YmUgMS4wNzQ1eCBmYXN0ZXIKICAgZm9sZC1tdWx0aS1nZXQtYnktb2Zmc2V0LXRvLXBvbHktZ2V0
LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA2LjEyNDErLTEuNjMwNiAgICAgICAgICAgIDQuNTYxOCstMS4yMDE4ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMzQyNXggZmFzdGVyCiAgIGZvbGQtbXVsdGktcHV0LWJ5LW9mZnNldC10
by1wb2x5LXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNC42ODMwKy0xLjEzODEgICAgID8gICAgICA1LjA4NzMrLTEu
NTgxNiAgICAgICAgPyBtaWdodCBiZSAxLjA4NjN4IHNsb3dlcgogICBmb2xkLW11bHRpLXB1dC1i
eS1vZmZzZXQtdG8tcHV0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzLjQ3MzUrLTAuMDMzNSAgICAgPyAgICAgIDMuNTcw
OCstMC4xNjA0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI4MHggc2xvd2VyCiAgIGZvbGQtbXVsdGkt
cHV0LWJ5LW9mZnNldC10by1yZXBsYWNlLW9yLXRyYW5zaXRpb24tcHV0LWJ5LW9mZnNldCAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Ljgw
ODIrLTAuMjI1MCAgICAgPyAgICAgIDcuNDI3MCstMS40MzIxICAgICAgICA/IG1pZ2h0IGJlIDEu
MDkwOXggc2xvd2VyCiAgIGZvbGQtcHV0LWJ5LWlkLXRvLW11bHRpLXB1dC1ieS1vZmZzZXQgICAg
ICAgICAgICAgIDYuNTE2MSstMC45NTE4ICAgICAgICAgICAgNS42MzUyKy0wLjMxNDIgICAgICAg
ICAgbWlnaHQgYmUgMS4xNTYzeCBmYXN0ZXIKICAgZm9sZC1wdXQtYnktdmFsLXdpdGgtc3RyaW5n
LXRvLW11bHRpLXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNi40ODUxKy0wLjM3NzkgICAgICAgICAgICA2LjI0MTYr
LTAuNDY3MSAgICAgICAgICBtaWdodCBiZSAxLjAzOTB4IGZhc3RlcgogICBmb2xkLXB1dC1ieS12
YWwtd2l0aC1zeW1ib2wtdG8tbXVsdGktcHV0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjUwNzQrLTEuMDA2OSAgICAg
ICAgICAgIDYuMzY0MSstMC41MTYxICAgICAgICAgIG1pZ2h0IGJlIDEuMDIyNXggZmFzdGVyCiAg
IGZvbGQtcHV0LXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNTcz
NSstMC41OTUyICAgICAgICAgICAgMy40MTcwKy0wLjE0MjAgICAgICAgICAgbWlnaHQgYmUgMS4w
NDU4eCBmYXN0ZXIKICAgZm9yLW9mLWl0ZXJhdGUtYXJyYXktZW50cmllcyAgICAgICAgICAgICAg
ICAgICAgICAgOS43ODQ4Ky0wLjc1MzkgICAgICAgICAgICA5LjQ1MTUrLTAuNDIzOSAgICAgICAg
ICBtaWdodCBiZSAxLjAzNTN4IGZhc3RlcgogICBmb3Itb2YtaXRlcmF0ZS1hcnJheS1rZXlzICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjA3MTUrLTAuMDkzMCAgICAgPyAgICAgIDMuMjY3Nyst
MC4yNDk3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDYzOXggc2xvd2VyCiAgIGZvci1vZi1pdGVyYXRl
LWFycmF5LXZhbHVlcyAgICAgICAgICAgICAgICAgICAgICAgIDMuMTEyMistMC4wOTQ4ICAgICAg
ICAgICAgMy4wNzQ1Ky0wLjA3OTggICAgICAgICAgbWlnaHQgYmUgMS4wMTIzeCBmYXN0ZXIKICAg
ZnJvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS42MDA1
Ky0wLjEwNzQgICAgID8gICAgICA5LjgwNzkrLTAuNjE5OCAgICAgICAgPyBtaWdodCBiZSAxLjAy
MTZ4IHNsb3dlcgogICBmdGwtbGlicmFyeS1pbmxpbmluZy1kYXRhdmlldyAgICAgICAgICAgICAg
ICAgICAgIDYxLjcxMTErLTIuMTI4MSAgICAgICAgICAgNjAuNzU2NistMC42ODEwICAgICAgICAg
IG1pZ2h0IGJlIDEuMDE1N3ggZmFzdGVyCiAgIGZ0bC1saWJyYXJ5LWlubGluaW5nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjIuODQzNSstMC42ODgxICAgICA/ICAgICAyMi45NDM0Ky0w
Ljg2MTggICAgICAgID8KICAgZnRsLXBvbHltb3JwaGljLWJpdGFuZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEzMS45NDA2Ky0xLjU4NTMgICAgICAgICAgMTMxLjkyMzArLTIuMDg5NSAgICAg
ICAgCiAgIGZ0bC1wb2x5bW9ycGhpYy1iaXRvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
MzQuMDk0NistMy4zMDU2ICAgICAgICAgIDEzMi4wNDk1Ky0yLjUzMTQgICAgICAgICAgbWlnaHQg
YmUgMS4wMTU1eCBmYXN0ZXIKICAgZnRsLXBvbHltb3JwaGljLWJpdHhvciAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEzMy40ODk5Ky0yLjYzMzQgICAgID8gICAgMTM0LjE0MTUrLTMuNDM5MCAg
ICAgICAgPwogICBmdGwtcG9seW1vcnBoaWMtZGl2ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNDYwLjY3NjcrLTUuNDA2NiAgICAgPyAgICA0NjIuNzIzNistNi4wNzkxICAgICAgICA/CiAg
IGZ0bC1wb2x5bW9ycGhpYy1sc2hpZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAxNjEuNjcy
OSstMi41MTYxICAgICA/ICAgIDE2MS43MDUyKy0yLjg2MTUgICAgICAgID8KICAgZnRsLXBvbHlt
b3JwaGljLW11bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzNi4zNjE4Ky0yLjc2Nzgg
ICAgICAgICAgMjM0LjI0NDArLTIuMzk2MCAgICAgICAgCiAgIGZ0bC1wb2x5bW9ycGhpYy1yc2hp
ZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAxNjEuNDIyOSstNC4wMDE0ICAgICA/ICAgIDE2
Mi40NzYyKy0zLjU1MjYgICAgICAgID8KICAgZnRsLXBvbHltb3JwaGljLVN0cmluZ0Zyb21DaGFy
Q29kZSAgICAgICAgICAgICAgICA0My4xMDc3Ky0xLjY3MDcgICAgID8gICAgIDQzLjQwMzMrLTEu
NTIxMSAgICAgICAgPwogICBmdGwtcG9seW1vcnBoaWMtc3ViICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTg1LjUxNTkrLTQuMzU2MiAgICAgICAgICAxODMuODg5NSstMi45OTI0ICAgICAg
ICAKICAgZnRsLXBvbHltb3JwaGljLXVyc2hpZnQgICAgICAgICAgICAgICAgICAgICAgICAgIDE3
My45MzY3Ky0zLjMwMjEgICAgID8gICAgMTc0LjI5NDkrLTMuMTcyNyAgICAgICAgPwogICBmdW5j
dGlvbi1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjYwMzQrLTAu
NzM2MCAgICAgICAgICAgMTAuMjI4NSstMC40MDEzICAgICAgICAgIG1pZ2h0IGJlIDEuMDM2Nngg
ZmFzdGVyCiAgIGZ1bmN0aW9uLWRvdC1hcHBseSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIuMTQ3NistMC4zODY1ICAgICAgICAgICAgMi4wMTc4Ky0wLjA3MTAgICAgICAgICAgbWln
aHQgYmUgMS4wNjQzeCBmYXN0ZXIKICAgZnVuY3Rpb24tdGVzdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy4wMjAzKy0wLjA4NzAgICAgICAgICAgICAzLjAxMjcrLTAuMDc0
MSAgICAgICAgCiAgIGZ1bmN0aW9uLXdpdGgtZXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOTAuMjkwOSstMy40NDc0ICAgICA/ICAgICA5MS40ODU2Ky0zLjU3MzggICAgICAgID8g
bWlnaHQgYmUgMS4wMTMyeCBzbG93ZXIKICAgZ2NzZS1wb2x5LWdldC1sZXNzLW9idmlvdXMgICAg
ICAgICAgICAgICAgICAgICAgICAgOC45OTQ0Ky0wLjQ1NzMgICAgICAgICAgICA4Ljg4NjIrLTAu
NzQwNCAgICAgICAgICBtaWdodCBiZSAxLjAxMjJ4IGZhc3RlcgogICBnY3NlLXBvbHktZ2V0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjIyNzMrLTAuMjYwOCAgICAgPyAg
ICAgIDguMjY1NystMC40MzE0ICAgICAgICA/CiAgIGdjc2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDMuMjU2NCstMC4xMTM5ICAgICA/ICAgICAgMy4zNTYy
Ky0wLjM1ODcgICAgICAgID8gbWlnaHQgYmUgMS4wMzA3eCBzbG93ZXIKICAgZ2VuZXJhdG9yLWNy
ZWF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC43OTI5Ky0wLjA3ODIgICAg
ICAgICAgICAwLjc1MTMrLTAuMDYyMyAgICAgICAgICBtaWdodCBiZSAxLjA1NTR4IGZhc3Rlcgog
ICBnZW5lcmF0b3ItZmliICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk5LjU4
ODUrLTEuOTAwMiAgICAgXiAgICAgOTUuNTA5NistMS44Mzg4ICAgICAgICBeIGRlZmluaXRlbHkg
MS4wNDI3eCBmYXN0ZXIKICAgZ2VuZXJhdG9yLWZ1bmN0aW9uLWNyZWF0ZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgMy45NjQ2Ky0wLjYxMzQgICAgICAgICAgICAzLjcwNTcrLTAuMjQxMCAgICAg
ICAgICBtaWdodCBiZSAxLjA2OTl4IGZhc3RlcgogICBnZW5lcmF0b3Itc3Vuc3BpZGVyLWFjY2Vz
cy1uc2lldmUgICAgICAgICAgICAgICAgICA1Ljk2MjgrLTAuNzU0OCAgICAgPyAgICAgIDUuOTkz
MistMC40ODM0ICAgICAgICA/CiAgIGdlbmVyYXRvci13aXRoLXNldmVyYWwtdHlwZXMgICAgICAg
ICAgICAgICAgICAgICAzMjYuMjgzNystMTQuNjQzMSAgICAgICAgIDMyMy41NzAxKy00LjkyMzUg
ICAgICAgIAogICBnZXQtYnktaWQtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi4yODIwKy0wLjA4NjQgICAgID8gICAgICAyLjQzNjYrLTAuMzcyNiAgICAgICAg
PyBtaWdodCBiZSAxLjA2Nzh4IHNsb3dlcgogICBnZXQtYnktaWQtYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjI3ODcrLTAuMDQ1NiAgICAgPyAgICAgIDQuNTA0NCstMC42
NDAwICAgICAgICA/IG1pZ2h0IGJlIDEuMDUyOHggc2xvd2VyCiAgIGdldC1ieS1pZC1jaGFpbi1m
cm9tLXRyeS1ibG9jayAgICAgICAgICAgICAgICAgICAgIDEuODYwMystMC4wNjEyICAgICA/ICAg
ICAgMS45NDcwKy0wLjE2ODIgICAgICAgID8gbWlnaHQgYmUgMS4wNDY2eCBzbG93ZXIKICAgZ2V0
LWJ5LWlkLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgICAgICAgICAgICAgMi45MzA0Ky0w
LjExODEgICAgICAgICAgICAyLjkxNjcrLTAuMDUxNCAgICAgICAgCiAgIGdldC1ieS1pZC1wcm90
by1vci1zZWxmICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuOTA4NystMC45MDE0ICAgICA/
ICAgICAgOS4yNzE2Ky0xLjQ3MzcgICAgICAgID8gbWlnaHQgYmUgMS4xNzIzeCBzbG93ZXIKICAg
Z2V0LWJ5LWlkLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi42MjE4Ky0wLjAzODUgICAgID8gICAgICAyLjgxMTIrLTAuNDkyNyAgICAgICAgPyBtaWdodCBi
ZSAxLjA3MjJ4IHNsb3dlcgogICBnZXQtYnktaWQtc2VsZi1vci1wcm90byAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4LjI4NTArLTEuMzAwMiAgICAgPyAgICAgIDkuMDc5NystMS4zMzg4ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDk1OXggc2xvd2VyCiAgIGdldC1ieS12YWwtb3V0LW9mLWJvdW5k
cyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNDMwMistMC40NTgzICAgICAgICAgICAgNC4y
MTUwKy0wLjE3NTcgICAgICAgICAgbWlnaHQgYmUgMS4wNTExeCBmYXN0ZXIKICAgZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjg3OTIrLTAuNTMxMiAgICAgICAgICAgIDMuNTQ5NystMC4wNzI2ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDkyOHggZmFzdGVyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA2LjU3OTErLTAuMzM2OCAgICAgPyAgICAgIDYuNzIy
MCstMC4xOTA2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIxN3ggc2xvd2VyCiAgIGdldC1ieS12YWwt
d2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2sgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS45MDc3Ky0wLjA1MzIgICAgICAgICAg
ICAxLjg4NjUrLTAuMDU3MSAgICAgICAgICBtaWdodCBiZSAxLjAxMTN4IGZhc3RlcgogICBnZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjY5MTYrLTAu
MzI0MyAgICAgPyAgICAgIDUuNzk1MCstMC43MjY5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4Mngg
c2xvd2VyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZiAgICAgICAgICAg
ICAgMTAuMzgyMCstMC40MjUxICAgICAgICAgICAxMC4yMjkzKy0wLjUzNTQgICAgICAgICAgbWln
aHQgYmUgMS4wMTQ5eCBmYXN0ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTg3NCstMC4xMzU0ICAgICAg
ICAgICAgMy45MDM2Ky0wLjA1MTkgICAgICAgICAgbWlnaHQgYmUgMS4wMjE1eCBmYXN0ZXIKICAg
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvICAgICAgICAgICAgICAxMC4yMzg5
Ky0wLjI2NTcgICAgICAgICAgIDEwLjIzNzQrLTAuMzU3MyAgICAgICAgCiAgIGdldC1ieS12YWwt
d2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi42NTA0Ky0wLjEwMTUgICAgICAgICAgICAyLjYwNDYrLTAuMDUyNCAgICAgICAgICBtaWdodCBi
ZSAxLjAxNzZ4IGZhc3RlcgogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOC44NTc5Ky0wLjM1MjIgICAgID8gICAgICA5LjEyNTUr
LTAuODEwNiAgICAgICAgPyBtaWdodCBiZSAxLjAzMDJ4IHNsb3dlcgogICBnZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTUyNystMC4wNzY4ICAgICAgICAgICAg
MS45MzA3Ky0wLjA0NjIgICAgICAgICAgbWlnaHQgYmUgMS4wMTE0eCBmYXN0ZXIKICAgZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24gICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi44MTUxKy0wLjEw
OTYgICAgID8gICAgICA2Ljk0NjIrLTAuMjI4OSAgICAgICAgPyBtaWdodCBiZSAxLjAxOTJ4IHNs
b3dlcgogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYgICAgICAgICAgICAg
IDEwLjUxMzkrLTAuMzY4MiAgICAgICAgICAgIDkuOTg5NystMC4zODE2ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDUyNXggZmFzdGVyCiAgIGdldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjIyOTcrLTAuMDU3NiAgICAgPyAg
ICAgIDMuMjk5NSstMC4xNDcwICAgICAgICA/IG1pZ2h0IGJlIDEuMDIxNnggc2xvd2VyCiAgIGdl
dC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90byAgICAgICAgICAgICAgMTAuMjUxMist
MC4zNTA3ICAgICAgICAgICAxMC4wMDQyKy0wLjI0MjggICAgICAgICAgbWlnaHQgYmUgMS4wMjQ3
eCBmYXN0ZXIKICAgZ2V0X2NhbGxlZV9tb25vbW9ycGhpYyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi4xMzYzKy0wLjE4NDMgICAgID8gICAgICAyLjQxOTYrLTAuNDY2NSAgICAgICAgPyBt
aWdodCBiZSAxLjEzMjZ4IHNsb3dlcgogICBnZXRfY2FsbGVlX3BvbHltb3JwaGljICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzLjUzMzYrLTAuMzg3NiAgICAgICAgICAgIDMuMTQ2NystMC4x
OTkyICAgICAgICAgIG1pZ2h0IGJlIDEuMTIyOXggZmFzdGVyCiAgIGdldHRlci1uby1hY3RpdmF0
aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzk3MistMC4wOTk1ICAgICA/ICAg
ICAgMi44NDAyKy0wLjA1MjcgICAgICAgID8gbWlnaHQgYmUgMS4wMTU0eCBzbG93ZXIKICAgZ2V0
dGVyLXByb3RvdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42Mzk4Ky0w
LjEzNDMgICAgICAgICAgICA0LjU4ODYrLTAuMTA5NiAgICAgICAgICBtaWdodCBiZSAxLjAxMTJ4
IGZhc3RlcgogICBnZXR0ZXItcmljaGFyZHMtdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAg
ICAxMDA5LjI0ODgrLTMyLjgwMDYgICAgICAgICA5OTguMjMyMSstMjEuMjQwMCAgICAgICAgIG1p
Z2h0IGJlIDEuMDExMHggZmFzdGVyCiAgIGdldHRlci1yaWNoYXJkcyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNjUuMTgxNSstMi45MDY5ICAgICA/ICAgICA2Ni45NDk1Ky0wLjU2
MzIgICAgICAgID8gbWlnaHQgYmUgMS4wMjcxeCBzbG93ZXIKICAgZ2V0dGVyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4wNzcxKy0wLjEwMDUgICAgID8gICAg
ICAzLjE5MzkrLTAuNDUxOCAgICAgICAgPyBtaWdodCBiZSAxLjAzODB4IHNsb3dlcgogICBnbG9i
YWwtb2JqZWN0LWFjY2Vzcy13aXRoLW11dGF0aW5nLXN0cnVjdHVyZSAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjY5NjYrLTAuNDQ2MCAg
ICAgICAgICAgIDQuNTM0NystMC4xNDUxICAgICAgICAgIG1pZ2h0IGJlIDEuMDM1N3ggZmFzdGVy
CiAgIGdsb2JhbC12YXItY29uc3QtaW5mZXItZmlyZS1mcm9tLW9wdCAgICAgICAgICAgICAgIDAu
ODU0NystMC4xMjYzICAgICA/ICAgICAgMC45NTE5Ky0wLjQ0MjcgICAgICAgID8gbWlnaHQgYmUg
MS4xMTM2eCBzbG93ZXIKICAgZ2xvYmFsLXZhci1jb25zdC1pbmZlciAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMC42MzUxKy0wLjAyMjUgICAgID8gICAgICAwLjY3MjcrLTAuMDQzNiAgICAg
ICAgPyBtaWdodCBiZSAxLjA1OTJ4IHNsb3dlcgogICBoYXJkLW92ZXJmbG93LWNoZWNrLWVxdWFs
ICAgICAgICAgICAgICAgICAgICAgICAgIDIzLjIzNDIrLTAuODExOCAgICAgPyAgICAgMjQuNDY2
OCstMS43MTEzICAgICAgICA/IG1pZ2h0IGJlIDEuMDUzMXggc2xvd2VyCiAgIGhhcmQtb3ZlcmZs
b3ctY2hlY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMuMDc2NistMS4wMjA3ICAg
ICA/ICAgICAyMy42OTEzKy0wLjgzNzMgICAgICAgID8gbWlnaHQgYmUgMS4wMjY2eCBzbG93ZXIK
ICAgSGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUta2V5cyAgICAgICAgICAgICAgICAgICAgICAyMi4w
OTMxKy0wLjcwMjYgICAgID8gICAgIDIyLjY1MjIrLTEuNDQxNiAgICAgICAgPyBtaWdodCBiZSAx
LjAyNTN4IHNsb3dlcgogICBIYXNoTWFwLXB1dC1nZXQtaXRlcmF0ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIyLjA5NzgrLTAuNzEwMyAgICAgPyAgICAgMjIuMjA4OCstMC41ODAxICAgICAg
ICA/CiAgIEhhc2hNYXAtc3RyaW5nLXB1dC1nZXQtaXRlcmF0ZSAgICAgICAgICAgICAgICAgICAg
MjMuOTAyNistMC44OTM0ICAgICAgICAgICAyMy43NzgyKy0wLjU3OTAgICAgICAgIAogICBob2lz
dC1tYWtlLXJvcGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjU5MTcrLTAu
MTY5OSAgICAgPyAgICAgIDMuODQ3NSstMC4yOTYwICAgICAgICA/IG1pZ2h0IGJlIDEuMDcxMngg
c2xvd2VyCiAgIGhvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlLWVmZmVjdGZ1bC1sb29wICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTA5
NSstMC4xMjQzICAgICAgICAgICAgMi44ODEyKy0wLjEyNzkgICAgICAgIAogICBob2lzdC1wb2x5
LWNoZWNrLXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAyLjA5MTYrLTAuMTQ4MiAg
ICAgICAgICAgIDIuMDEwNSstMC4wNjY3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQwM3ggZmFzdGVy
CiAgIGltdWwtZG91YmxlLW9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMu
MDg0NistMC4xMjk5ICAgICA/ICAgICAgMy4yMzE5Ky0wLjIwNjYgICAgICAgID8gbWlnaHQgYmUg
MS4wNDc4eCBzbG93ZXIKICAgaW11bC1pbnQtb25seSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC45NTM3Ky0wLjQ5MzggICAgID8gICAgICA1LjAyMzErLTAuNDU1NCAgICAg
ICAgPyBtaWdodCBiZSAxLjAxNDB4IHNsb3dlcgogICBpbXVsLW1peGVkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjkyNDYrLTAuMDg0NiAgICAgPyAgICAgIDMuMDc3
MystMC4yNTc0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUyMnggc2xvd2VyCiAgIGluLWZvdXItY2Fz
ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuMTg5MSstMS40Nzk4ICAg
ICA/ICAgICAxNi4yMDc0Ky0wLjQ1OTcgICAgICAgID8gbWlnaHQgYmUgMS4wNjcweCBzbG93ZXIK
ICAgaW4tb25lLWNhc2UtZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy44
NDkyKy0wLjE1NDIgICAgID8gICAgICA4LjA1MzgrLTAuNDYxOSAgICAgICAgPyBtaWdodCBiZSAx
LjAyNjF4IHNsb3dlcgogICBpbi1vbmUtY2FzZS10cnVlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA3LjgxNTMrLTAuMTIyOSAgICAgPyAgICAgIDcuODQ3MistMC4xNDcyICAgICAg
ICA/CiAgIGluLXR3by1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDguMDM0NistMC4xNDA0ICAgICA/ICAgICAgOC4yMzc2Ky0wLjM2OTEgICAgICAgID8gbWlnaHQg
YmUgMS4wMjUzeCBzbG93ZXIKICAgaW5kZXhlZC1wcm9wZXJ0aWVzLWluLW9iamVjdHMgICAgICAg
ICAgICAgICAgICAgICAgMi42OTE4Ky0wLjA5MzYgICAgICAgICAgICAyLjY4MzYrLTAuMDg1OSAg
ICAgICAgCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1tb3Ytbm8taW5saW5lICAgICAgICAg
ICAgIDIuOTUxOSstMC4wMjg3ICAgICA/ICAgICAgMy4yNjAxKy0wLjQ3NDMgICAgICAgID8gbWln
aHQgYmUgMS4xMDQ0eCBzbG93ZXIKICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLW1vdiAgICAg
ICAgICAgICAgICAgICAgICAgNi42NTMwKy0wLjQ2NTMgICAgICAgICAgICA2LjQ5NzIrLTAuMTg0
MCAgICAgICAgICBtaWdodCBiZSAxLjAyNDB4IGZhc3RlcgogICBpbmZlci1jbG9zdXJlLWNvbnN0
LXRoZW4tcHV0LXRvLXNjb3BlLW5vLWlubGluZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjkyMjArLTAuMzUwOSAgICAgPyAgICAgIDku
OTc1MystMC4zMDkyICAgICAgICA/CiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1wdXQtdG8t
c2NvcGUgICAgICAgICAgICAgMjIuNDMyNSstMC4zNDk1ICAgICA/ICAgICAyMy4wMDUzKy0xLjEz
ODYgICAgICAgID8gbWlnaHQgYmUgMS4wMjU1eCBzbG93ZXIKICAgaW5mZXItY2xvc3VyZS1jb25z
dC10aGVuLXJlZW50ZXItbm8taW5saW5lICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNDkuMTczOCstMS42MzAxICAgICAgICAgICA0OC4zNjU4
Ky0wLjExMDEgICAgICAgICAgbWlnaHQgYmUgMS4wMTY3eCBmYXN0ZXIKICAgaW5mZXItY2xvc3Vy
ZS1jb25zdC10aGVuLXJlZW50ZXIgICAgICAgICAgICAgICAgICAyMi4yNDc4Ky0xLjIzNDkgICAg
ID8gICAgIDIyLjkzMjUrLTEuMTI1NCAgICAgICAgPyBtaWdodCBiZSAxLjAzMDh4IHNsb3dlcgog
ICBpbmZlci1jb25zdGFudC1nbG9iYWwtcHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAzLjI4
NDQrLTAuMTA5NyAgICAgPyAgICAgIDMuMzM2MistMC4xOTE5ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDE1OHggc2xvd2VyCiAgIGluZmVyLWNvbnN0YW50LXByb3BlcnR5ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIuMDMxMistMC4wMTkyICAgICAgICAgICAgMi4wMDIwKy0wLjA2NjMgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTQ2eCBmYXN0ZXIKICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZS10ZW4t
dmFycyAgICAgICAgICAgICAgICAgICAgNi4yODkzKy0wLjA4ODQgICAgID8gICAgICA2LjMyNTMr
LTAuMTcyNCAgICAgICAgPwogICBpbmZlci1vbmUtdGltZS1jbG9zdXJlLXR3by12YXJzICAgICAg
ICAgICAgICAgICAgICA2LjIxOTQrLTAuNDA5OCAgICAgICAgICAgIDYuMTQyMystMC40MTkzICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDEyNXggZmFzdGVyCiAgIGluZmVyLW9uZS10aW1lLWNsb3N1cmUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMzI0OCstMC41NDYyICAgICAgICAgICAgNi4x
NzUyKy0wLjQzNzggICAgICAgICAgbWlnaHQgYmUgMS4wMjQyeCBmYXN0ZXIKICAgaW5mZXItb25l
LXRpbWUtZGVlcC1jbG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAxMS43NjU2Ky0xLjQ0MDMg
ICAgICAgICAgIDExLjE0NTMrLTAuMjgyNCAgICAgICAgICBtaWdodCBiZSAxLjA1NTd4IGZhc3Rl
cgogICBpbmxpbmUtYXJndW1lbnRzLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
Ljg2NTcrLTAuNDA4OSAgICAgICAgICAgIDMuNTAyNCstMC4yODQ0ICAgICAgICAgIG1pZ2h0IGJl
IDEuMTAzN3ggZmFzdGVyCiAgIGlubGluZS1hcmd1bWVudHMtYWxpYXNlZC1hY2Nlc3MgICAgICAg
ICAgICAgICAgICAgIDMuNjA4NistMC4zODE2ICAgICAgICAgICAgMy41OTI1Ky0wLjI1NzIgICAg
ICAgIAogICBpbmxpbmUtYXJndW1lbnRzLWxvY2FsLWVzY2FwZSAgICAgICAgICAgICAgICAgICAg
ICAzLjgzNzkrLTAuMjIxNCAgICAgICAgICAgIDMuNTM0NistMC4xNDE4ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDg1OHggZmFzdGVyCiAgIGlubGluZS1nZXQtc2NvcGVkLXZhciAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuMjQwMistMC4xODI2ICAgICAgICAgICAgMi4xOTg0Ky0wLjA3Mzgg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTkweCBmYXN0ZXIKICAgaW5saW5lZC1wdXQtYnktaWQtdHJh
bnNpdGlvbiAgICAgICAgICAgICAgICAgICAgICAgOC41MzY4Ky0wLjc2NTcgICAgICAgICAgICA4
LjUzMzIrLTAuNDY3OCAgICAgICAgCiAgIGlubGluZWQtcHV0LWJ5LXZhbC13aXRoLXN0cmluZy10
cmFuc2l0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMzguMzU5NSstMC4xOTA0ICAgICA/ICAgICAzOS4yOTcyKy0xLjUwMTkgICAgICAg
ID8gbWlnaHQgYmUgMS4wMjQ0eCBzbG93ZXIKICAgaW5saW5lZC1wdXQtYnktdmFsLXdpdGgtc3lt
Ym9sLXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzOC45NjEyKy0xLjI3NDAgICAgICAgICAgIDM4LjU3NDcrLTAuOTg3NSAg
ICAgICAgICBtaWdodCBiZSAxLjAxMDB4IGZhc3RlcgogICBpbnN0YW5jZW9mLWJvdW5kICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjcwODArLTAuNDUyNyAgICAgICAgICAgMjAu
NjI0MCstMC43ODkwICAgICAgICAKICAgaW50LW9yLW90aGVyLWFicy10aGVuLWdldC1ieS12YWwg
ICAgICAgICAgICAgICAgICAgNC4yNjM3Ky0wLjQ4MTggICAgICAgICAgICA0LjA0MjErLTAuMDgy
NyAgICAgICAgICBtaWdodCBiZSAxLjA1NDh4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItYWJzLXpl
cm8tdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgIDE2LjEwMjMrLTEuMzExNiAgICAgICAgICAg
MTUuOTI5OSstMC43MzA5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwOHggZmFzdGVyCiAgIGludC1v
ci1vdGhlci1hZGQtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDMuOTYwOSstMC4y
MjI1ICAgICA/ICAgICAgNC4xNDcyKy0wLjM3OTEgICAgICAgID8gbWlnaHQgYmUgMS4wNDcweCBz
bG93ZXIKICAgaW50LW9yLW90aGVyLWFkZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNC42MDExKy0wLjEwNTUgICAgID8gICAgICA0LjkxODErLTAuNTExMSAgICAgICAgPyBtaWdo
dCBiZSAxLjA2ODl4IHNsb3dlcgogICBpbnQtb3Itb3RoZXItZGl2LXRoZW4tZ2V0LWJ5LXZhbCAg
ICAgICAgICAgICAgICAgICAzLjQ3MDErLTAuMDc4NyAgICAgPyAgICAgIDMuNDgwMistMC4wNzQ3
ICAgICAgICA/CiAgIGludC1vci1vdGhlci1tYXgtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAg
ICAgICAgIDMuNTU5MistMC4xMDcwICAgICAgICAgICAgMy41MDMwKy0wLjA2MjUgICAgICAgICAg
bWlnaHQgYmUgMS4wMTYxeCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLW1pbi10aGVuLWdldC1ieS12
YWwgICAgICAgICAgICAgICAgICAgMy40NTk2Ky0wLjEyNDYgICAgICAgICAgICAzLjQyMTIrLTAu
MDg1MCAgICAgICAgICBtaWdodCBiZSAxLjAxMTJ4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbW9k
LXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAzLjQxMDArLTAuMTg1MCAgICAgICAg
ICAgIDMuMjc1MystMC4wMzI1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQxMXggZmFzdGVyCiAgIGlu
dC1vci1vdGhlci1tdWwtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDMuNTY3Myst
MC4yMTE4ICAgICAgICAgICAgMy40Njc2Ky0wLjA4NDAgICAgICAgICAgbWlnaHQgYmUgMS4wMjg4
eCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLW5lZy10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAg
ICAgICAgNC4wOTUyKy0wLjIzNDkgICAgICAgICAgICAzLjk4NDYrLTAuMDY4OSAgICAgICAgICBt
aWdodCBiZSAxLjAyNzh4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbmVnLXplcm8tdGhlbi1nZXQt
YnktdmFsICAgICAgICAgICAgIDE2LjAyMjUrLTEuMDg4NSAgICAgPyAgICAgMTYuMDcyMystMC45
NzcwICAgICAgICA/CiAgIGludC1vci1vdGhlci1zdWItdGhlbi1nZXQtYnktdmFsICAgICAgICAg
ICAgICAgICAgIDMuODQzNSstMC4xMDg3ICAgICA/ICAgICAgNC42ODY5Ky0xLjM0NzYgICAgICAg
ID8gbWlnaHQgYmUgMS4yMTk0eCBzbG93ZXIKICAgaW50LW9yLW90aGVyLXN1YiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMy4yNjM3Ky0wLjAzMTcgICAgID8gICAgICAzLjQxNzEr
LTAuMzgyNSAgICAgICAgPyBtaWdodCBiZSAxLjA0NzB4IHNsb3dlcgogICBpbnQtb3ZlcmZsb3ct
bG9jYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjg0ODArLTAuMDUzNyAgICAg
ICAgICAgIDMuODQ3MCstMC4wOTQ5ICAgICAgICAKICAgSW50MTZBcnJheS1hbGxvYy1sb25nLWxp
dmVkICAgICAgICAgICAgICAgICAgICAgICAzOS42NjM1Ky0wLjU4NDggICAgID8gICAgIDM5LjY4
MzErLTAuNzQ3MyAgICAgICAgPwogICBJbnQxNkFycmF5LWJ1YmJsZS1zb3J0LXdpdGgtYnl0ZUxl
bmd0aCAgICAgICAgICAgIDE2LjA2NTgrLTEuMzk5NSAgICAgICAgICAgMTYuMDM3OCstMC41ODA1
ICAgICAgICAKICAgSW50MTZBcnJheS1idWJibGUtc29ydCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxNC42OTYzKy0wLjczMDQgICAgICAgICAgIDE0LjQ1NjcrLTAuNDc5OSAgICAgICAgICBt
aWdodCBiZSAxLjAxNjZ4IGZhc3RlcgogICBJbnQxNkFycmF5LWxvYWQtaW50LW11bCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxLjQ3ODYrLTAuMTE1NyAgICAgPyAgICAgIDEuNTEwNystMC4x
NzEwICAgICAgICA/IG1pZ2h0IGJlIDEuMDIxN3ggc2xvd2VyCiAgIEludDE2QXJyYXktdG8tSW50
MzJBcnJheS1zZXQgICAgICAgICAgICAgICAgICAgICAgMzYuMzE0NSstMC4yOTg2ICAgICA/ICAg
ICAzNy4wOTYxKy0wLjk3NDggICAgICAgID8gbWlnaHQgYmUgMS4wMjE1eCBzbG93ZXIKICAgSW50
MzJBcnJheS1hbGxvYy1sYXJnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4xMTIwKy0w
LjI4NzAgICAgID8gICAgIDEyLjI0NjErLTAuNDE4MiAgICAgICAgPyBtaWdodCBiZSAxLjAxMTF4
IHNsb3dlcgogICBJbnQzMkFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAg
ICAgIDQ0LjM1ODArLTAuNzAwNiAgICAgICAgICAgNDQuMTgyMystMC40MDMxICAgICAgICAKICAg
SW50MzJBcnJheS1hbGxvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42NjE0
Ky0wLjIxMzUgICAgICAgICAgICAyLjUyMDMrLTAuMDU0NSAgICAgICAgICBtaWdodCBiZSAxLjA1
NjB4IGZhc3RlcgogICBJbnQzMkFycmF5LUludDhBcnJheS12aWV3LWFsbG9jICAgICAgICAgICAg
ICAgICAgICA2LjQyNzQrLTAuMTY4OCAgICAgPyAgICAgIDYuNDM0NCstMC4xMzQ1ICAgICAgICA/
CiAgIGludDUyLXNwaWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUu
MTc5OSstMC40OTU3ICAgICAgICAgICAgNC44MjA5Ky0wLjA1MjIgICAgICAgICAgbWlnaHQgYmUg
MS4wNzQ1eCBmYXN0ZXIKICAgSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAg
ICAgICAgICAgICAzNi4xNTkzKy0wLjYyMzggICAgID8gICAgIDM3LjE4OTErLTEuNTcwNCAgICAg
ICAgPyBtaWdodCBiZSAxLjAyODV4IHNsb3dlcgogICBJbnQ4QXJyYXktbG9hZC13aXRoLWJ5dGVM
ZW5ndGggICAgICAgICAgICAgICAgICAgICAzLjIwMTcrLTAuMDY2MCAgICAgPyAgICAgIDMuMjE5
OSstMC4zNDMxICAgICAgICA/CiAgIEludDhBcnJheS1sb2FkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDMuMTg0NCstMC4xMzcyICAgICA/ICAgICAgMy4yMTE0Ky0wLjExNzgg
ICAgICAgID8KICAgaW50ZWdlci1kaXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxMC4wMjQ2Ky0wLjMzOTkgICAgICAgICAgIDEwLjAyMDErLTAuNDg1MSAgICAgICAgCiAg
IGludGVnZXItbW9kdWxvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNTkx
NystMC4xODg0ICAgICAgICAgICAgMS41MDMzKy0wLjA2MzcgICAgICAgICAgbWlnaHQgYmUgMS4w
NTg4eCBmYXN0ZXIKICAgaXMtYm9vbGVhbi1mb2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi44NjkzKy0wLjE4MDAgICAgID8gICAgICAyLjkyMjcrLTAuNDgzOCAgICAgICAg
PyBtaWdodCBiZSAxLjAxODZ4IHNsb3dlcgogICBpcy1ib29sZWFuLWZvbGQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyLjAzMjgrLTAuMDI2NCAgICAgICAgICAgIDEuOTg5NCst
MC4wNDg2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxOHggZmFzdGVyCiAgIGlzLWZ1bmN0aW9uLWZv
bGQtdHJpY2t5LWludGVybmFsLWZ1bmN0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNTM2NystMC40MTg0ICAgICA/ICAgICAxMC42
NjYyKy0wLjM2OTYgICAgICAgID8gbWlnaHQgYmUgMS4wMTIzeCBzbG93ZXIKICAgaXMtZnVuY3Rp
b24tZm9sZC10cmlja3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4wMTM4Ky0wLjA2NDMg
ICAgICAgICAgICAyLjk1MzkrLTAuMDg0OCAgICAgICAgICBtaWdodCBiZSAxLjAyMDN4IGZhc3Rl
cgogICBpcy1mdW5jdGlvbi1mb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
LjE2NjcrLTAuMjQwNSAgICAgICAgICAgIDIuMDg5NCstMC4wOTAyICAgICAgICAgIG1pZ2h0IGJl
IDEuMDM3MHggZmFzdGVyCiAgIGlzLW51bWJlci1mb2xkLXRyaWNreSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuOTEwMystMC4wNzY5ICAgICA/ICAgICAgMy4wNzk1Ky0wLjYwOTUgICAg
ICAgID8gbWlnaHQgYmUgMS4wNTgxeCBzbG93ZXIKICAgaXMtbnVtYmVyLWZvbGQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4wMDg5Ky0wLjA3MzYgICAgICAgICAgICAxLjk5
NjIrLTAuMDQ0NCAgICAgICAgCiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQtZnVuY3Rpb25zICAg
ICAgICAgICAgICAgICAgIDIuMDc1NCstMC4xMTA4ICAgICA/ICAgICAgMi4wNzgyKy0wLjA4MDcg
ICAgICAgID8KICAgaXMtb2JqZWN0LW9yLW51bGwtZm9sZC1sZXNzLXRyaWNreSAgICAgICAgICAg
ICAgICAgMi45ODU3Ky0wLjA4NjIgICAgICAgICAgICAyLjk2MDIrLTAuMTE1OSAgICAgICAgCiAg
IGlzLW9iamVjdC1vci1udWxsLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgIDMuMjI3
NystMC4wNzgwICAgICA/ICAgICAgMy4yODU2Ky0wLjIxNjcgICAgICAgID8gbWlnaHQgYmUgMS4w
MTc5eCBzbG93ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwtZm9sZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi4wOTA3Ky0wLjA0NTIgICAgICAgICAgICAyLjAyMjMrLTAuMDMwNSAgICAgICAg
ICBtaWdodCBiZSAxLjAzMzh4IGZhc3RlcgogICBpcy1vYmplY3Qtb3ItbnVsbC10cmlja2llci1m
dW5jdGlvbiAgICAgICAgICAgICAgICAyLjk5MTgrLTAuMDUyMyAgICAgPyAgICAgIDMuMjE3NSst
MC4zNjMyICAgICAgICA/IG1pZ2h0IGJlIDEuMDc1NXggc2xvd2VyCiAgIGlzLW9iamVjdC1vci1u
dWxsLXRyaWNraWVyLWludGVybmFsLWZ1bmN0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuODM5NCstMC4yNjM0ICAgICAgICAgICAg
OS43MjU1Ky0wLjE0OTYgICAgICAgICAgbWlnaHQgYmUgMS4wMTE3eCBmYXN0ZXIKICAgaXMtb2Jq
ZWN0LW9yLW51bGwtdHJpY2t5LWZ1bmN0aW9uICAgICAgICAgICAgICAgICAgMi45ODA3Ky0wLjE2
NjYgICAgID8gICAgICAzLjI3MDYrLTAuNDYxNiAgICAgICAgPyBtaWdodCBiZSAxLjA5NzN4IHNs
b3dlcgogICBpcy1vYmplY3Qtb3ItbnVsbC10cmlja3ktaW50ZXJuYWwtZnVuY3Rpb24gICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi43ODMx
Ky0wLjQxODUgICAgID8gICAgICA2Ljg2ODMrLTAuMzQ5MyAgICAgICAgPyBtaWdodCBiZSAxLjAx
MjZ4IHNsb3dlcgogICBpcy1zdHJpbmctZm9sZC10cmlja3kgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyLjg5OTArLTAuMTAwOSAgICAgICAgICAgIDIuODcyOCstMC4wNzUwICAgICAgICAK
ICAgaXMtc3RyaW5nLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4w
ODI4Ky0wLjExOTYgICAgICAgICAgICAyLjAzMDUrLTAuMDQyMCAgICAgICAgICBtaWdodCBiZSAx
LjAyNTd4IGZhc3RlcgogICBpcy11bmRlZmluZWQtZm9sZC10cmlja3kgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyLjY3OTIrLTAuNDQ0NyAgICAgPyAgICAgIDIuNjk0MystMC4yNjEzICAgICAg
ICA/CiAgIGlzLXVuZGVmaW5lZC1mb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuMDM2MCstMC4wNzgzICAgICA/ICAgICAgMi4wNTU5Ky0wLjA5NjkgICAgICAgID8KICAgSlNP
TlAtbmVnYXRpdmUtMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yODk0Ky0w
LjAzNjggICAgID8gICAgICAwLjI5MDUrLTAuMDQ5MCAgICAgICAgPwogICBsYXJnZS1pbnQtY2Fw
dHVyZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjc4NzIrLTAuMjQ0MSAgICAg
PyAgICAgIDIuODg1NCstMC40MDk0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM1Mnggc2xvd2VyCiAg
IGxhcmdlLWludC1uZWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuODk2
MCstMC42OTEzICAgICA/ICAgICAxMi45OTUwKy0xLjE2NDMgICAgICAgID8KICAgbGFyZ2UtaW50
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS40MzY0Ky0wLjUzNzEg
ICAgICAgICAgIDExLjM1MTErLTAuNDg5NSAgICAgICAgCiAgIGxvYWQtdmFyYXJncy1lbGltaW5h
dGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuNTcwMystMC43MTQxICAgICAgICAgICAx
OS4xMTMzKy0wLjY2MzkgICAgICAgICAgbWlnaHQgYmUgMS4wMjM5eCBmYXN0ZXIKICAgbG9naWNh
bC1ub3Qtd2VpcmQtdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi40NzEwKy0wLjA3
MjUgICAgID8gICAgICAyLjU1ODQrLTAuMzMzNiAgICAgICAgPyBtaWdodCBiZSAxLjAzNTR4IHNs
b3dlcgogICBsb2dpY2FsLW5vdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjczODcrLTAuNDMzMyAgICAgPyAgICAgIDMuNzQ0NystMC40NTE0ICAgICAgICA/CiAgIGxv
dHMtb2YtZmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMzI3MSst
MC4yNDcwICAgICA/ICAgICAgOC40MzY4Ky0wLjIwMTYgICAgICAgID8gbWlnaHQgYmUgMS4wMTMy
eCBzbG93ZXIKICAgbWFrZS1pbmRleGVkLXN0b3JhZ2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi42Njc4Ky0wLjI1NzMgICAgICAgICAgICAyLjQzOTcrLTAuMTcwMiAgICAgICAgICBt
aWdodCBiZSAxLjA5MzV4IGZhc3RlcgogICBtYWtlLXJvcGUtY3NlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzLjc3MjgrLTAuMzI1NyAgICAgICAgICAgIDMuNTg2MCstMC4x
MDE4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDUyMXggZmFzdGVyCiAgIG1hbnktcmVwZWF0LXN0b3Jl
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYuMDI4MystMC41NzQ0ICAgICAgICAg
ICAxNS45Mzk1Ky0wLjY4MzUgICAgICAgIAogICBtYXAtZm9yLWVhY2ggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0LjU2MzErLTAuMTg4MCAgICAgICAgICAgIDQuNTE3MCst
MC4xNTIxICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwMnggZmFzdGVyCiAgIG1hcC1mb3Itb2YgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuNDE1MistMC4yNjkwICAgICA/
ICAgICAxNS41MTczKy0wLjU1MjUgICAgICAgID8KICAgbWFyc2FnbGlhLWxhcmdlci1pbnRzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyOS4zMjU4Ky0wLjU0MzIgICAgID8gICAgIDI5Ljc5
MjErLTEuNTg5MCAgICAgICAgPyBtaWdodCBiZSAxLjAxNTl4IHNsb3dlcgogICBtYXJzYWdsaWEt
b3NyLWVudHJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2Ljk4NjUrLTEuMTIyMSAg
ICAgPyAgICAgMTcuMzA2MCstMS4wNTUzICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4OHggc2xvd2Vy
CiAgIG1hdGgtcmFuZG9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQu
MDA0MystMC4zMzY2ICAgICA/ICAgICAxNC4xOTM2Ky0wLjcwMDMgICAgICAgID8gbWlnaHQgYmUg
MS4wMTM1eCBzbG93ZXIKICAgbWF0aC13aXRoLW91dC1vZi1ib3VuZHMtYXJyYXktdmFsdWVzICAg
ICAgICAgICAgICAyOS44OTg2Ky0xLjExODUgICAgID8gICAgIDMwLjUyODArLTEuNTMwNyAgICAg
ICAgPyBtaWdodCBiZSAxLjAyMTF4IHNsb3dlcgogICBtYXgtYm9vbGVhbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjEyMTkrLTAuMTM5NCAgICAgICAgICAgIDIuMTE4
NystMC4wNzg1ICAgICAgICAKICAgbWV0aG9kLW9uLW51bWJlciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxNy4zNzEyKy0xLjIzNDAgICAgICAgICAgIDE3LjE2NjkrLTEuMDYyMiAg
ICAgICAgICBtaWdodCBiZSAxLjAxMTl4IGZhc3RlcgogICBtaW4tYm9vbGVhbiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjA5OTIrLTAuMTcxMSAgICAgPyAgICAgIDIu
MjI2NCstMC4yNDgwICAgICAgICA/IG1pZ2h0IGJlIDEuMDYwNnggc2xvd2VyCiAgIG1pbnVzLWJv
b2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjA4NCstMC4wNDEw
ICAgICA/ICAgICAgMi4yODcyKy0wLjA4MDEgICAgICAgID8gbWlnaHQgYmUgMS4wMzU3eCBzbG93
ZXIKICAgbWludXMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi4wMzAyKy0wLjMwNjkgICAgICAgICAgICAxLjkwNjIrLTAuMDM2MCAgICAgICAgICBtaWdodCBi
ZSAxLjA2NTF4IGZhc3RlcgogICBtaXNjLXN0cmljdC1lcSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE5LjE1NTgrLTAuMzk5NiAgICAgPyAgICAgMTkuMjM0MystMS40MjQ0ICAg
ICAgICA/CiAgIG1vZC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDguOTU1MCstMC4yMjIzICAgICA/ICAgICAgOS4wMTU2Ky0wLjMxNjkgICAgICAgID8KICAg
bW9kLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4yODA5
Ky0wLjU4NDUgICAgICAgICAgICA2Ljc4NjArLTAuMDY2OSAgICAgICAgICBtaWdodCBiZSAxLjA3
Mjl4IGZhc3RlcgogICBtdWwtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyLjYzNDYrLTAuMDcwMCAgICAgICAgICAgIDIuNjEzNistMC4wODkwICAgICAgICAK
ICAgbXVsLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4y
MzIzKy0wLjA0MDEgICAgID8gICAgICAyLjM0OTgrLTAuMjY4NiAgICAgICAgPyBtaWdodCBiZSAx
LjA1MjZ4IHNsb3dlcgogICBuZWctYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyLjM4NDIrLTAuMDYwNiAgICAgICAgICAgIDIuMjczNCstMC4xMDQ3ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDQ4N3ggZmFzdGVyCiAgIG5lZ2F0aXZlLXplcm8tZGl2aWRlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzk1NCstMC4wMjc2ICAgICAgICAgICAgMC4zNTYy
Ky0wLjAzMDEgICAgICAgICAgbWlnaHQgYmUgMS4xMDk5eCBmYXN0ZXIKICAgbmVnYXRpdmUtemVy
by1tb2R1bG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zOTQ3Ky0wLjA2NzMgICAg
ICAgICAgICAwLjM1NDErLTAuMDI0NSAgICAgICAgICBtaWdodCBiZSAxLjExNDh4IGZhc3Rlcgog
ICBuZWdhdGl2ZS16ZXJvLW5lZ2F0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjM5
MjQrLTAuMDM1MiAgICAgXiAgICAgIDAuMzI5MystMC4wMTQxICAgICAgICBeIGRlZmluaXRlbHkg
MS4xOTE0eCBmYXN0ZXIKICAgbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzMS4yMjU4Ky0wLjQ4MjMgICAgICAgICAgIDMxLjE3NzgrLTAuODgyNCAgICAg
ICAgCiAgIG5ldy1hcnJheS1idWZmZXItZGVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NzcuNzM3OSstMC43OTAyICAgICA/ICAgICA3OS4yNDE1Ky00LjgzMDUgICAgICAgID8gbWlnaHQg
YmUgMS4wMTkzeCBzbG93ZXIKICAgbmV3LWFycmF5LWJ1ZmZlci1wdXNoICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNS41NTAwKy0wLjQ4MjcgICAgICAgICAgICA1LjQwOTYrLTAuMzcxOSAg
ICAgICAgICBtaWdodCBiZSAxLjAyNjB4IGZhc3RlcgogICBuZXctYXJyYXktZGVhZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjczMDMrLTAuMjAxNiAgICAgICAgICAgIDYu
NjcyNSstMC4xNzY2ICAgICAgICAKICAgbmV3LWFycmF5LXB1c2ggICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy4zNjUwKy0wLjM3NjkgICAgICAgICAgICAzLjI0MzcrLTAuMzI2
OCAgICAgICAgICBtaWdodCBiZSAxLjAzNzR4IGZhc3RlcgogICBuby1pbmxpbmUtY29uc3RydWN0
b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4Ljc4MDgrLTAuMTQzMiAgICAgICAgICAg
MjguNzYwMistMC4xNDEwICAgICAgICAKICAgbnVtYmVyLXRlc3QgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy4zMjcwKy0wLjQyMDUgICAgICAgICAgICAzLjA5NTUrLTAu
MDU0MCAgICAgICAgICBtaWdodCBiZSAxLjA3NDh4IGZhc3RlcgogICBvYmplY3QtY2xvc3VyZS1j
YWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjQ4ODErLTAuMDQzNiAgICAgICAg
ICAgIDQuNDU3NCstMC4wNTcyICAgICAgICAKICAgb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3lt
Ym9scy1vbi1sYXJnZS1hcnJheSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLjgyOTIrLTAuMDYzMyAgICAgICAgICAgIDAuODE5MCstMC4w
MzQ2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyNXggZmFzdGVyCiAgIG9iamVjdC10ZXN0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTc1MCstMC4wNDI3ICAgICA/ICAg
ICAgMy4wMTk0Ky0wLjExOTEgICAgICAgID8gbWlnaHQgYmUgMS4wMTQ5eCBzbG93ZXIKICAgb2J2
aW91cy1zaW5rLXBhdGhvbG9neS10YWtlbiAgICAgICAgICAgICAgICAgICAgIDEwNy4wMDkxKy0w
LjkzMTggICAgID8gICAgMTA3LjgzNDkrLTAuODQzMSAgICAgICAgPwogICBvYnZpb3VzLXNpbmst
cGF0aG9sb2d5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjAwNDQrLTEuMzE5OCAgICAg
ICAgICAgMTcuODQ3NSstMC42NzY5ICAgICAgICAKICAgb2J2aW91c2x5LWVsaWRhYmxlLW5ldy1v
YmplY3QgICAgICAgICAgICAgICAgICAgICAxNi4xNDQyKy0wLjQ5MTAgICAgICAgICAgIDE1Ljg0
NjErLTAuNjg4NiAgICAgICAgICBtaWdodCBiZSAxLjAxODh4IGZhc3RlcgogICBwbHVzLWJvb2xl
YW4tYXJpdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjA0MDgrLTAuMDcwMyAg
ICAgICAgICAgIDIuMDA3OCstMC4wNTYzICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2NHggZmFzdGVy
CiAgIHBsdXMtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
MzEzMistMC4xMTgyICAgICAgICAgICAgMi4yOTM3Ky0wLjE2NjEgICAgICAgIAogICBwbHVzLWJv
b2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjk2ODArLTAuMDQ0
NCAgICAgPyAgICAgIDIuMjA0NSstMC41NDU1ICAgICAgICA/IG1pZ2h0IGJlIDEuMTIwMnggc2xv
d2VyCiAgIHBvbHktY2hhaW4tYWNjZXNzLWRpZmZlcmVudC1wcm90b3R5cGVzLXNpbXBsZSAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjMw
NzMrLTAuMDM2NCAgICAgPyAgICAgIDIuMzI1MystMC4wMzI2ICAgICAgICA/CiAgIHBvbHktY2hh
aW4tYWNjZXNzLWRpZmZlcmVudC1wcm90b3R5cGVzICAgICAgICAgICAgIDIuNjc0NystMC42MDcz
ICAgICAgICAgICAgMi4zNzM3Ky0wLjA5NjYgICAgICAgICAgbWlnaHQgYmUgMS4xMjY4eCBmYXN0
ZXIKICAgcG9seS1jaGFpbi1hY2Nlc3Mtc2ltcGxlciAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi42MjI0Ky0wLjc4MDkgICAgICAgICAgICAyLjMzNTMrLTAuMDYzMiAgICAgICAgICBtaWdodCBi
ZSAxLjEyMjl4IGZhc3RlcgogICBwb2x5LWNoYWluLWFjY2VzcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjM3NzcrLTAuMDgzOCAgICAgICAgICAgIDIuMzM5MistMC4wNTQ5ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDE2NHggZmFzdGVyCiAgIHBvbHktc3RyaWN0ZXEgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNTEuNjk4NystMi45NzczICAgICAgICAgICA1MS4w
NzE1Ky0xLjg2ODcgICAgICAgICAgbWlnaHQgYmUgMS4wMTIzeCBmYXN0ZXIKICAgcG9seW1vcnBo
aWMtYXJyYXktY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4yNTQzKy0wLjE4NTcg
ICAgID8gICAgICAxLjM0MzgrLTAuMTU4MyAgICAgICAgPyBtaWdodCBiZSAxLjA3MTR4IHNsb3dl
cgogICBwb2x5bW9ycGhpYy1nZXQtYnktaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
Ljg5NTgrLTAuMDgxMyAgICAgPyAgICAgIDEuOTAyOCstMC4wNTY2ICAgICAgICA/CiAgIHBvbHlt
b3JwaGljLXB1dC1ieS1pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjYuOTMzNistMS43
NzQzICAgICAgICAgICAyNi42NDgyKy0xLjg2MTYgICAgICAgICAgbWlnaHQgYmUgMS4wMTA3eCBm
YXN0ZXIKICAgcG9seW1vcnBoaWMtcHV0LWJ5LXZhbC13aXRoLXN0cmluZyAgICAgICAgICAgICAg
ICAyNy4yMDQ0Ky0wLjY1MzYgICAgICAgICAgIDI2LjMwODcrLTEuOTI4MCAgICAgICAgICBtaWdo
dCBiZSAxLjAzNDB4IGZhc3RlcgogICBwb2x5bW9ycGhpYy1wdXQtYnktdmFsLXdpdGgtc3ltYm9s
ICAgICAgICAgICAgICAgIDI3LjA5OTArLTIuMDgzNSAgICAgICAgICAgMjYuNjEzOSstMC4zMzYx
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4MnggZmFzdGVyCiAgIHBvbHltb3JwaGljLXN0cnVjdHVy
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNjgyMistMC43MzEwICAgICA/ICAgICAx
My4xNDk1Ky0xLjE2OTIgICAgICAgID8gbWlnaHQgYmUgMS4wMzY4eCBzbG93ZXIKICAgcG9seXZh
cmlhbnQtbW9ub21vcnBoaWMtZ2V0LWJ5LWlkICAgICAgICAgICAgICAgICAgMy4zNzcwKy0wLjA2
OTIgICAgID8gICAgICAzLjM5NjErLTAuMDY0MCAgICAgICAgPwogICBwcm90by1nZXR0ZXItYWNj
ZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjU3ODkrLTAuMjE1MSAgICAgICAg
ICAgMTAuNDAxNystMC4xMzE5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3MHggZmFzdGVyCiAgIHBy
b3RvdHlwZS1hY2Nlc3Mtd2l0aC1tdXRhdGluZy1wcm90b3R5cGUgICAgICAgICAgIDQuNjk3Nist
MC43NjUyICAgICAgICAgICAgNC4zNTM3Ky0wLjM0OTQgICAgICAgICAgbWlnaHQgYmUgMS4wNzkw
eCBmYXN0ZXIKICAgcHV0LWJ5LWlkLXJlcGxhY2UtYW5kLXRyYW5zaXRpb24gICAgICAgICAgICAg
ICAgICAgNy4wMjUwKy0wLjM0NTcgICAgID8gICAgICA3LjQ5NDMrLTAuNzYwNyAgICAgICAgPyBt
aWdodCBiZSAxLjA2Njh4IHNsb3dlcgogICBwdXQtYnktaWQtc2xpZ2h0bHktcG9seW1vcnBoaWMg
ICAgICAgICAgICAgICAgICAgICAyLjI5MTErLTAuMDUwMCAgICAgPyAgICAgIDIuMzE5OSstMC4w
NjY5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyNnggc2xvd2VyCiAgIHB1dC1ieS1pZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNTI3MSstMC4zMzUyICAgICA/ICAg
ICAgOS42NTg3Ky0wLjYwNTAgICAgICAgID8gbWlnaHQgYmUgMS4wMTM4eCBzbG93ZXIKICAgcHV0
LWJ5LXZhbC1kaXJlY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC40MDc4Ky0w
LjAyMzkgICAgID8gICAgICAwLjQxNTUrLTAuMDIzOCAgICAgICAgPyBtaWdodCBiZSAxLjAxOTB4
IHNsb3dlcgogICBwdXQtYnktdmFsLWxhcmdlLWluZGV4LWJsYW5rLWluZGV4aW5nLXR5cGUgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC45
NjU1Ky0wLjIxMDggICAgICAgICAgICA0Ljg3MzErLTAuMzY4NSAgICAgICAgICBtaWdodCBiZSAx
LjAxOTB4IGZhc3RlcgogICBwdXQtYnktdmFsLW1hY2hpbmUtaW50ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyLjMxNTIrLTAuMTY5NyAgICAgPyAgICAgIDIuMzkyMistMC4xNTk0ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDMzM3ggc2xvd2VyCiAgIHB1dC1ieS12YWwtd2l0aC1zdHJpbmctcmVw
bGFjZS1hbmQtdHJhbnNpdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDExLjE5ODkrLTAuNDg0MCAgICAgICAgICAgMTAuNjgzNistMC4z
NjEzICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ4MnggZmFzdGVyCiAgIHB1dC1ieS12YWwtd2l0aC1z
dHJpbmctc2xpZ2h0bHktcG9seW1vcnBoaWMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy40Njk5Ky0wLjQxOTcgICAgICAgICAgICAzLjMx
NjIrLTAuMDY4NiAgICAgICAgICBtaWdodCBiZSAxLjA0NjN4IGZhc3RlcgogICBwdXQtYnktdmFs
LXdpdGgtc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5Ljg2NjUrLTAuMjY5OSAg
ICAgPyAgICAgMTAuMjMwMystMC4yNzE2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM2OXggc2xvd2Vy
CiAgIHB1dC1ieS12YWwtd2l0aC1zeW1ib2wtcmVwbGFjZS1hbmQtdHJhbnNpdGlvbiAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjkwMTQr
LTAuNDUyNyAgICAgICAgICAgIDkuODU2MistMC4zODg4ICAgICAgICAKICAgcHV0LWJ5LXZhbC13
aXRoLXN5bWJvbC1zbGlnaHRseS1wb2x5bW9ycGhpYyAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU0NTQrLTAuMDU5MSAgICAgPyAgICAg
IDIuNTYwMCstMC4wNTE2ICAgICAgICA/CiAgIHB1dC1ieS12YWwtd2l0aC1zeW1ib2wgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTAuMDU3OCstMC42MTE3ICAgICA/ICAgICAxMC4yMTM0Ky0w
LjY5MjggICAgICAgID8gbWlnaHQgYmUgMS4wMTU1eCBzbG93ZXIKICAgcmFyZS1vc3ItZXhpdC1v
bi1sb2NhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS40MzU3Ky0wLjA1NTQgICAgID8g
ICAgIDExLjQ5MTArLTAuMTU2NCAgICAgICAgPwogICByYXl0cmFjZS13aXRoLWVtcHR5LXRyeS1j
YXRjaCAgICAgICAgICAgICAgICAgICAgICA1LjQ2MzErLTAuMTQ2OSAgICAgPyAgICAgIDUuNTYy
MCstMC40OTUzICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4MXggc2xvd2VyCiAgIHJheXRyYWNlLXdp
dGgtdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMDY3MistMC4xNTg3ICAg
ICAgICAgICAgOC45OTEwKy0wLjE3NjIgICAgICAgIAogICByZWdleHAtZXhlYyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0LjE0NjcrLTAuNzU0NiAgICAgICAgICAgMzQu
MDc3NistMS41MTY3ICAgICAgICAKICAgcmVnZXhwLWxhc3QtaW5kZXggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOC44ODMwKy0wLjQyNTQgICAgICAgICAgICA4LjY3NzQrLTAuNTMy
OSAgICAgICAgICBtaWdodCBiZSAxLjAyMzd4IGZhc3RlcgogICByZWdleHAtc2V0LWxhc3QtaW5k
ZXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjM4NzArLTAuMzY5NCAgICAgICAgICAg
IDkuMDc1NCstMC4xMTg0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM0M3ggZmFzdGVyCiAgIHJlZ2lz
dGVyLXByZXNzdXJlLWZyb20tb3NyICAgICAgICAgICAgICAgICAgICAgICAgMTUuNDczNSstMC43
ODY0ICAgICA/ICAgICAxNS42MDUxKy0xLjM0MTggICAgICAgID8KICAgcmVwZWF0LW11bHRpLWdl
dC1ieS1vZmZzZXQgICAgICAgICAgICAgICAgICAgICAgICAxOS4yMDc4Ky0xLjEzMjMgICAgICAg
ICAgIDE4LjIyMzgrLTAuNjMxMCAgICAgICAgICBtaWdodCBiZSAxLjA1NDB4IGZhc3RlcgogICBy
aWNoYXJkcy1lbXB0eS10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgIDQ0LjExODkr
LTEuNTcyMyAgICAgPyAgICAgNDQuMTg3NCstMi4wNzc0ICAgICAgICA/CiAgIHJpY2hhcmRzLXRy
eS1jYXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMTAuOTgyNystMy4yOTAwICAg
ICA/ICAgIDIxNS4zMzE1Ky0xMC45NDU2ICAgICAgID8gbWlnaHQgYmUgMS4wMjA2eCBzbG93ZXIK
ICAgc2V0LWZvci1lYWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy42
ODc1Ky0wLjE3MDkgICAgID8gICAgICAzLjc2MzUrLTAuNDIyOSAgICAgICAgPyBtaWdodCBiZSAx
LjAyMDZ4IHNsb3dlcgogICBzZXQtZm9yLW9mICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA2Ljk4NzgrLTAuMzcyOSAgICAgICAgICAgIDYuOTMyMystMC4yNTM0ICAgICAg
ICAKICAgc2V0dGVyLXByb3RvdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NC42NjgzKy0wLjE3MjggICAgICAgICAgICA0LjU3NjUrLTAuMTA0OSAgICAgICAgICBtaWdodCBi
ZSAxLjAyMDF4IGZhc3RlcgogICBzZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjg1NjQrLTAuMDc3MSAgICAgPyAgICAgIDMuMjU3NCstMC41ODkyICAg
ICAgICA/IG1pZ2h0IGJlIDEuMTQwNHggc2xvd2VyCiAgIHNpbXBsZS1hY3RpdmF0aW9uLWRlbW8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIuNjAyMSstMS4yNjQ1ICAgICAgICAgICAyMi40
MTQ3Ky0xLjA3ODEgICAgICAgIAogICBzaW1wbGUtZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE2Ljg1MDErLTAuNjY1NiAgICAgPyAgICAgMTcuMzQyMistMC43OTUz
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5Mnggc2xvd2VyCiAgIHNpbXBsZS1wb2x5LWNhbGwtbmVz
dGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuODY3MCstMC4zMzA2ICAgICAgICAgICAg
My43NzA3Ky0wLjA1ODQgICAgICAgICAgbWlnaHQgYmUgMS4wMjU1eCBmYXN0ZXIKICAgc2ltcGxl
LXBvbHktY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4yODM5Ky0wLjA5
NTkgICAgID8gICAgICAxLjI5MzErLTAuMDY0MiAgICAgICAgPwogICBzaW4tYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjIwNDkrLTAuMTU2MiAgICAgICAg
ICAgIDYuMTQ3NSstMC4xNTQ5ICAgICAgICAKICAgc2luZ2xldG9uLXNjb3BlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1Ni4xMDQ4Ky0wLjE3MTkgICAgID8gICAgIDU2LjQ1Mjgr
LTEuMjk1MiAgICAgICAgPwogICBzaW5rLWZ1bmN0aW9uICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA2LjUzNjcrLTAuNzU4NSAgICAgPyAgICAgIDYuNTk4MCstMC44ODE4ICAg
ICAgICA/CiAgIHNpbmstaHVnZS1hY3RpdmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTIuNzQxNystMC42NDk0ICAgICAgICAgICAxMi41ODg1Ky0wLjc4NDYgICAgICAgICAgbWln
aHQgYmUgMS4wMTIyeCBmYXN0ZXIKICAgc2lua2FibGUtbmV3LW9iamVjdC1kYWcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzOS4xNTI1Ky0xLjUyMzYgICAgICAgICAgIDM4LjcxOTMrLTEuNDg3
MiAgICAgICAgICBtaWdodCBiZSAxLjAxMTJ4IGZhc3RlcgogICBzaW5rYWJsZS1uZXctb2JqZWN0
LXRha2VuICAgICAgICAgICAgICAgICAgICAgICAgIDMzLjEyMTQrLTAuNzY0OCAgICAgPyAgICAg
MzMuMTUyMystMC43NTc2ICAgICAgICA/CiAgIHNpbmthYmxlLW5ldy1vYmplY3QgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTguNjE5OCstMS44NDcxICAgICAgICAgICAxOC4yNDk5Ky0x
LjI5MTQgICAgICAgICAgbWlnaHQgYmUgMS4wMjAzeCBmYXN0ZXIKICAgc2xvdy1hcnJheS1wcm9m
aWxlLWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgMi40OTUyKy0wLjIzMDggICAgICAg
ICAgICAyLjM3MDArLTAuMTUyMyAgICAgICAgICBtaWdodCBiZSAxLjA1Mjh4IGZhc3RlcgogICBz
bG93LWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjUyNjAr
LTAuMjkxNCAgICAgICAgICAgIDIuMzc4NistMC4wMjA5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDYy
MHggZmFzdGVyCiAgIHNsb3ctdGVybmFyaWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTEuOTM0NSstMC43NjU0ICAgICA/ICAgICAxMi4zOTc1Ky0wLjMyMTcgICAgICAgID8g
bWlnaHQgYmUgMS4wMzg4eCBzbG93ZXIKICAgc29ydGluZy1iZW5jaG1hcmsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxOC42MzE0Ky0wLjg0OTMgICAgICAgICAgIDE3LjQ5OTArLTAu
NDcyOCAgICAgICAgICBtaWdodCBiZSAxLjA2NDd4IGZhc3RlcgogICBzcGFyc2UtY29uZGl0aW9u
YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjEzNTkrLTAuMDQ4MiAgICAgPyAg
ICAgIDEuMTQ0MCstMC4wNTU3ICAgICAgICA/CiAgIHNwbGljZS10by1yZW1vdmUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTMuNTU4OSstMC41NTI0ICAgICA/ICAgICAxMy42MDMx
Ky0wLjgxOTggICAgICAgID8KICAgc3RyY2F0LWNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNC42NzY5Ky0wLjAzODUgICAgID8gICAgICA0LjcwNjcrLTAuMDc0MSAg
ICAgICAgPwogICBzdHJjYXQtbGVuZ3RoLWNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0Ljk3NjkrLTAuMTAyNyAgICAgICAgICAgIDQuOTYyMSstMC4wNjM3ICAgICAgICAKICAg
c3RyaW5nLWNoYXItY29kZS1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy43NzM0
Ky0wLjkwNzEgICAgICAgICAgIDEzLjc2NDIrLTEuNzcyOCAgICAgICAgCiAgIHN0cmluZy1jb25j
YXQtb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTgwOCstMC4wNDgxICAg
ICA/ICAgICAgMi4wMzE4Ky0wLjE2OTcgICAgICAgID8gbWlnaHQgYmUgMS4wMjU3eCBzbG93ZXIK
ICAgc3RyaW5nLWNvbmNhdC1wYWlyLW9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgMS45
NzEzKy0wLjA4MDAgICAgID8gICAgICAyLjAyNjMrLTAuMTY1NCAgICAgICAgPyBtaWdodCBiZSAx
LjAyNzl4IHNsb3dlcgogICBzdHJpbmctY29uY2F0LXBhaXItc2ltcGxlICAgICAgICAgICAgICAg
ICAgICAgICAgICAyLjkxOTcrLTAuMDcyNyAgICAgPyAgICAgIDIuOTMyMystMC4wODEyICAgICAg
ICA/CiAgIHN0cmluZy1jb25jYXQtc2ltcGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDkuMTEzNystMC4zOTk2ICAgICAgICAgICAgOC43NjkyKy0wLjA3MDMgICAgICAgICAgbWlnaHQg
YmUgMS4wMzkzeCBmYXN0ZXIKICAgc3RyaW5nLWNvbnMtcmVwZWF0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNi42NzE0Ky0wLjU2NjQgICAgICAgICAgICA2LjU1MTkrLTAuMzYyNiAg
ICAgICAgICBtaWdodCBiZSAxLjAxODJ4IGZhc3RlcgogICBzdHJpbmctY29ucy10b3dlciAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjMwNTUrLTAuNjQ3MiAgICAgICAgICAgIDYu
OTc0OSstMC42MTczICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ3NHggZmFzdGVyCiAgIHN0cmluZy1l
cXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuNjcxNSstMC44OTY2
ICAgICAgICAgICAxNC44OTAzKy0wLjc4NDIgICAgICAgICAgbWlnaHQgYmUgMS4wNTI1eCBmYXN0
ZXIKICAgc3RyaW5nLWZyb20tY2hhci1jb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ni4xNjc3Ky0wLjU0NDMgICAgICAgICAgICA1Ljg1OTMrLTAuMzMxMSAgICAgICAgICBtaWdodCBi
ZSAxLjA1MjZ4IGZhc3RlcgogICBzdHJpbmctZ2V0LWJ5LXZhbC1iaWctY2hhciAgICAgICAgICAg
ICAgICAgICAgICAgICA0LjI1MjQrLTAuNDU1NCAgICAgICAgICAgIDQuMTEzOSstMC4xNjE3ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDMzN3ggZmFzdGVyCiAgIHN0cmluZy1nZXQtYnktdmFsLW91dC1v
Zi1ib3VuZHMtaW5zYW5lICAgICAgICAgICAgIDMuNDcyMystMC41MDQ2ICAgICAgICAgICAgMy4y
MDU0Ky0wLjA0MzAgICAgICAgICAgbWlnaHQgYmUgMS4wODMzeCBmYXN0ZXIKICAgc3RyaW5nLWdl
dC1ieS12YWwtb3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgICAgNC4wMTQ5Ky0wLjA5OTQg
ICAgICAgICAgICAzLjk0NDQrLTAuMDYzMCAgICAgICAgICBtaWdodCBiZSAxLjAxNzl4IGZhc3Rl
cgogICBzdHJpbmctZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
Ljg3NDgrLTAuMTgxNCAgICAgICAgICAgIDEuODM5MCstMC4xMDA3ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDE5NXggZmFzdGVyCiAgIHN0cmluZy1oYXNoICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEuODcwOSstMC4wODQyICAgICA/ICAgICAgMi4wMjAxKy0wLjM3OTIgICAg
ICAgID8gbWlnaHQgYmUgMS4wNzk4eCBzbG93ZXIKICAgc3RyaW5nLWxvbmctaWRlbnQtZXF1YWxp
dHkgICAgICAgICAgICAgICAgICAgICAgICAxMi45NjcyKy0wLjgzODIgICAgID8gICAgIDEzLjI1
ODMrLTAuMzkzNCAgICAgICAgPyBtaWdodCBiZSAxLjAyMjV4IHNsb3dlcgogICBzdHJpbmctb3V0
LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjMxNjArLTAuMTY2MCAg
ICAgPyAgICAgIDYuNTIyOSstMC41NTM4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMyOHggc2xvd2Vy
CiAgIHN0cmluZy1yZXBlYXQtYXJpdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEu
MDM4NSstMC4zODMzICAgICA/ICAgICAyMS44NTM4Ky0wLjY0NTQgICAgICAgID8gbWlnaHQgYmUg
MS4wMzg4eCBzbG93ZXIKICAgc3RyaW5nLXJlcGxhY2UtZW1wdHkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyNy4wMjM1Ky02LjExOTIgICAgICAgICAgIDI0LjQwNzQrLTEuMjA5NyAgICAg
ICAgICBtaWdodCBiZSAxLjEwNzJ4IGZhc3RlcgogICBzdHJpbmctcmVwbGFjZS1nZW5lcmljICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDUwLjEzNTMrLTAuNTk5MCAgICAgPyAgICAgNTEuMTM4
OCstMS44OTEwICAgICAgICA/IG1pZ2h0IGJlIDEuMDIwMHggc2xvd2VyCiAgIHN0cmluZy1yZXBs
YWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzcuNzQ1NistMS4yMDY2ICAg
ICA/ICAgICAzOC45NDg1Ky0xLjgyMjQgICAgICAgID8gbWlnaHQgYmUgMS4wMzE5eCBzbG93ZXIK
ICAgc3RyaW5nLXJvcGUtd2l0aC1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi4y
NjQzKy0wLjUwMjkgICAgID8gICAgIDE2LjY3NTkrLTAuNzc3MyAgICAgICAgPyBtaWdodCBiZSAx
LjAyNTN4IHNsb3dlcgogICBzdHJpbmctc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMyLjY4MDIrLTEuMzY1OSAgICAgISAgICAgMzQuOTE0OCstMC41MDUyICAgICAg
ICAhIGRlZmluaXRlbHkgMS4wNjg0eCBzbG93ZXIKICAgc3RyaW5nLXRlc3QgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xMDMwKy0wLjA2NzYgICAgICAgICAgICAzLjA3
NTUrLTAuMDc5NyAgICAgICAgCiAgIHN0cmluZy10cmFuc2NvZGluZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTUuNDQ5MystMC4zNDM5ICAgICA/ICAgICAxNS43NjgzKy0xLjExNzMg
ICAgICAgID8gbWlnaHQgYmUgMS4wMjA3eCBzbG93ZXIKICAgc3RyaW5nLXZhci1lcXVhbGl0eSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNi40MjQ5Ky0wLjY4MzQgICAgID8gICAgIDI2
LjY3NTUrLTAuOTk0OSAgICAgICAgPwogICBzdHJ1Y3R1cmUtaG9pc3Qtb3Zlci10cmFuc2l0aW9u
cyAgICAgICAgICAgICAgICAgICAyLjMwNzErLTAuMDkwMCAgICAgICAgICAgIDIuMjgyNCstMC4x
NDA0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwOHggZmFzdGVyCiAgIHN1YnN0cmluZy1jb25jYXQt
d2VpcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQuMDk3NistMC41MjQxICAgICAgICAg
ICAzNC4wOTQ2Ky0wLjc0NjkgICAgICAgIAogICBzdWJzdHJpbmctY29uY2F0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDM3LjY0MTUrLTEuMjM2NSAgICAgPyAgICAgNDEuODM3Nyst
OC4xMzgzICAgICAgICA/IG1pZ2h0IGJlIDEuMTExNXggc2xvd2VyCiAgIHN1YnN0cmluZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDMuMjk2OSstMS4wNTAxICAgICA/
ICAgICA0NC4wOTgyKy0wLjcxNjIgICAgICAgID8gbWlnaHQgYmUgMS4wMTg1eCBzbG93ZXIKICAg
c3dpdGNoLWNoYXItY29uc3RhbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4xMTI2
Ky0wLjM2NDIgICAgICAgICAgICAyLjAyNDkrLTAuMDk3NSAgICAgICAgICBtaWdodCBiZSAxLjA0
MzN4IGZhc3RlcgogICBzd2l0Y2gtY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0LjU2NTErLTAuMjQ0NyAgICAgICAgICAgIDQuNTAzNystMC4zNTMxICAgICAgICAg
IG1pZ2h0IGJlIDEuMDEzNnggZmFzdGVyCiAgIHN3aXRjaC1jb25zdGFudCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuNDE1NSstMC40NTk5ICAgICAgICAgICAgMy4yMjc5Ky0w
LjA5MTIgICAgICAgICAgbWlnaHQgYmUgMS4wNTgxeCBmYXN0ZXIKICAgc3dpdGNoLXN0cmluZy1i
YXNpYy1iaWctdmFyICAgICAgICAgICAgICAgICAgICAgICAxMy42NDUzKy0wLjY5MzAgICAgID8g
ICAgIDE0LjEyNTQrLTEuMDc4NSAgICAgICAgPyBtaWdodCBiZSAxLjAzNTJ4IHNsb3dlcgogICBz
d2l0Y2gtc3RyaW5nLWJhc2ljLWJpZyAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjc0MjAr
LTAuNTUwNCAgICAgPyAgICAgMTIuOTMzNistMC40ODAyICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1
MHggc2xvd2VyCiAgIHN3aXRjaC1zdHJpbmctYmFzaWMtdmFyICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTMuNDU1NCstMC41MzY4ICAgICA/ICAgICAxMy44NzQxKy0xLjIxNjAgICAgICAgID8g
bWlnaHQgYmUgMS4wMzExeCBzbG93ZXIKICAgc3dpdGNoLXN0cmluZy1iYXNpYyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxMS4zNzE4Ky0wLjI2NjcgICAgID8gICAgIDExLjQ1NzQrLTAu
MjM3MSAgICAgICAgPwogICBzd2l0Y2gtc3RyaW5nLWJpZy1sZW5ndGgtdG93ZXItdmFyICAgICAg
ICAgICAgICAgIDE5LjI2MTYrLTAuODU4OCAgICAgPyAgICAgMTkuNDgxNistMS4yMTYyICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDExNHggc2xvd2VyCiAgIHN3aXRjaC1zdHJpbmctbGVuZ3RoLXRvd2Vy
LXZhciAgICAgICAgICAgICAgICAgICAgMTQuMzA0MCstMC43NTUzICAgICA/ICAgICAxNS4xNzQ1
Ky0xLjEyNTcgICAgICAgID8gbWlnaHQgYmUgMS4wNjA5eCBzbG93ZXIKICAgc3dpdGNoLXN0cmlu
Zy1sZW5ndGgtdG93ZXIgICAgICAgICAgICAgICAgICAgICAgICAxMS42MzQyKy0xLjUyODEgICAg
ICAgICAgIDExLjA5MzUrLTAuMTkxNiAgICAgICAgICBtaWdodCBiZSAxLjA0ODd4IGZhc3Rlcgog
ICBzd2l0Y2gtc3RyaW5nLXNob3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjIx
ODQrLTAuNTE5MiAgICAgICAgICAgMTEuMDI3NistMC4zNTU2ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDE3M3ggZmFzdGVyCiAgIHN3aXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDYuMDIzOSstMC4xMTI4ICAgICA/ICAgICAgNi4yOTc4Ky0wLjUyMDUgICAgICAg
ID8gbWlnaHQgYmUgMS4wNDU1eCBzbG93ZXIKICAgc3ltYm9sLXRvc3RyaW5ndGFnICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMy4wNjU5Ky0wLjA5NjQgICAgID8gICAgICAzLjE0MTQr
LTAuMzcwNyAgICAgICAgPyBtaWdodCBiZSAxLjAyNDZ4IHNsb3dlcgogICB0ZWFyLW9mZi1hcmd1
bWVudHMtc2ltcGxlICAgICAgICAgICAgICAgICAgICAgICAgICAyLjMwOTIrLTAuMTMyNCAgICAg
PyAgICAgIDIuMzE3NystMC4wODQzICAgICAgICA/CiAgIHRlYXItb2ZmLWFyZ3VtZW50cyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMjE2OCstMC4yMDQ2ICAgICA/ICAgICAgMy4y
NDk5Ky0wLjA5MjUgICAgICAgID8gbWlnaHQgYmUgMS4wMTAzeCBzbG93ZXIKICAgdGVtcG9yYWwt
c3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS45OTY2Ky0wLjg1OTYg
ICAgICAgICAgIDExLjYwMDkrLTAuNDg4MiAgICAgICAgICBtaWdodCBiZSAxLjAzNDF4IGZhc3Rl
cgogICB0by1pbnQzMi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEz
LjU1NDcrLTEuMTUyOCAgICAgPyAgICAgMTMuNzYzOCstMS4wOTM1ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDE1NHggc2xvd2VyCiAgIHRyeS1jYXRjaC1nZXQtYnktdmFsLWNsb25lZC1hcmd1bWVudHMg
ICAgICAgICAgICAgIDMuNzMyNistMC45MTczICAgICAgICAgICAgMy4zMzQxKy0wLjI0MDIgICAg
ICAgICAgbWlnaHQgYmUgMS4xMTk1eCBmYXN0ZXIKICAgdHJ5LWNhdGNoLWdldC1ieS12YWwtZGly
ZWN0LWFyZ3VtZW50cyAgICAgICAgICAgICAgMi4wOTg2Ky0wLjE2OTMgICAgID8gICAgICAyLjEy
ODMrLTAuMjE1MSAgICAgICAgPyBtaWdodCBiZSAxLjAxNDF4IHNsb3dlcgogICB0cnktY2F0Y2gt
Z2V0LWJ5LXZhbC1zY29wZWQtYXJndW1lbnRzICAgICAgICAgICAgICA0LjA0ODgrLTAuMTc1NSAg
ICAgPyAgICAgIDQuMTU4MCstMC4yMDY3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3MHggc2xvd2Vy
CiAgIHR5cGVkLWFycmF5LWdldC1zZXQtYnktdmFsLXByb2ZpbGluZyAgICAgICAgICAgICAgMTku
NjI0MSstMC4yNDc2ICAgICAgICAgICAxOS4xNzI1Ky0wLjYwNTEgICAgICAgICAgbWlnaHQgYmUg
MS4wMjM2eCBmYXN0ZXIKICAgdW5kZWZpbmVkLXByb3BlcnR5LWFjY2VzcyAgICAgICAgICAgICAg
ICAgICAgICAgIDI3My44MDQwKy01LjYyMzYgICAgICAgICAgMjcxLjYxMzArLTMuMTU3OCAgICAg
ICAgCiAgIHVuZGVmaW5lZC10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDMuNDYyMistMC40NTIxICAgICAgICAgICAgMy4yNzMxKy0wLjEwOTEgICAgICAgICAgbWlnaHQg
YmUgMS4wNTc4eCBmYXN0ZXIKICAgdW5wcm9maWxlZC1saWNtICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNS45NDY1Ky0wLjQxMzMgICAgID8gICAgICA2LjEzNjIrLTAuNjE5OCAg
ICAgICAgPyBtaWdodCBiZSAxLjAzMTl4IHNsb3dlcgogICB1bnR5cGVkLXN0cmluZy1mcm9tLWNo
YXItY29kZSAgICAgICAgICAgICAgICAgICAgICA5LjIwNTIrLTAuNDMxMyAgICAgPyAgICAgIDku
MzE1MystMC4zMjgwICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyMHggc2xvd2VyCiAgIHY4LXJheXRy
YWNlLXdpdGgtZW1wdHktdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgNDcuNjkzNSstMS4wOTE0
ICAgICA/ICAgICA0Ny45ODEyKy0wLjU0NDQgICAgICAgID8KICAgdjgtcmF5dHJhY2Utd2l0aC10
cnktY2F0Y2gtaGlnaC1mcmVxdWVuY3ktdGhyb3dzICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNzAuNzg0MSstNS44OTYxICAgICA/ICAgIDM3
NC4wNDY5Ky0zLjcyNTIgICAgICAgID8KICAgdjgtcmF5dHJhY2Utd2l0aC10cnktY2F0Y2ggICAg
ICAgICAgICAgICAgICAgICAgICA1OS42Mzc2Ky0xLjYyMjMgICAgID8gICAgIDYwLjcxNDErLTAu
ODgxNSAgICAgICAgPyBtaWdodCBiZSAxLjAxODB4IHNsb3dlcgogICB2OC1yZWdleHAtc2VhcmNo
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ5LjU3NzgrLTEuNDE4NyAgICAgPyAg
ICAgNTAuNTM2NCstMi4zNzg0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE5M3ggc2xvd2VyCiAgIHZh
cmFyZ3MtY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuNzk5Nyst
MC4zODYyICAgICA/ICAgICAxMi4wNjQ1Ky0wLjMzODMgICAgICAgID8gbWlnaHQgYmUgMS4wMjI0
eCBzbG93ZXIKICAgdmFyYXJncy1jb25zdHJ1Y3QtaW5saW5lICAgICAgICAgICAgICAgICAgICAg
ICAgICAxOC41MjE5Ky0wLjM3ODkgICAgID8gICAgIDE4LjYyMzArLTAuNzE5MyAgICAgICAgPwog
ICB2YXJhcmdzLWNvbnN0cnVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0LjM1
MTUrLTAuODI4OCAgICAgPyAgICAgMjQuNTA0NCstMS4xNzc1ICAgICAgICA/CiAgIHZhcmFyZ3Mt
aW5saW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuOTczNSstMC41Nzgx
ICAgICAgICAgICAgNy42NjU2Ky0wLjE4MjcgICAgICAgICAgbWlnaHQgYmUgMS4wNDAyeCBmYXN0
ZXIKICAgdmFyYXJncy1zdHJpY3QtbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OS44NTI1Ky0yLjUxOTggICAgICAgICAgICA4LjgxMjMrLTAuMTIxNCAgICAgICAgICBtaWdodCBi
ZSAxLjExODB4IGZhc3RlcgogICB2YXJhcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4LjkxMzgrLTAuNDQyMCAgICAgICAgICAgIDguNzU4NystMC4wOTk5ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDE3N3ggZmFzdGVyCiAgIHdlaXJkLWlubGluaW5nLWNvbnN0LXBy
b3AgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMDI1NSstMC4xMDM2ICAgICAgICAgICAgMi4w
MDkzKy0wLjE2ODMgICAgICAgIAoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNy43MjE4Ky0wLjAzNDQgICAgICAgICAgICA3LjcxMTYrLTAuMDI3
OCAgICAgICAgICBtaWdodCBiZSAxLjAwMTN4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2cgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQXNtQmVu
Y2g6CiAgIGJpZ2ZpYi5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
MjguMTc1NCstOS4wNzU0ICAgICA/ICAgIDQyOS45Nzg3Ky0xMS41MzI2ICAgICAgID8KICAgY3Jh
eS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0OS4yNDkzKy0z
LjMzNDUgICAgID8gICAgMzUyLjk3NjArLTEyLjk1MzkgICAgICAgPyBtaWdodCBiZSAxLjAxMDd4
IHNsb3dlcgogICBkcnkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNDI0LjE4NTQrLTM5LjM4MDggICAgPyAgICA0MzcuMTUzNSstNTYuMTUyNCAgICAgICA/IG1p
Z2h0IGJlIDEuMDMwNnggc2xvd2VyCiAgIEZsb2F0TU0uYyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA3MDMuMjE2NistNC40MzQ4ICAgICAgICAgIDY5OC4zNDM1Ky0zLjIx
NzggICAgICAgIAogICBnY2MtbG9vcHMuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzNTc1LjY3NjcrLTEzLjEyODIgICAgPyAgIDM1OTUuOTY3NistMTUuMjk2NSAgICAgICA/
CiAgIG4tYm9keS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3OTQu
MTI0NistOC4zOTU0ICAgICAgICAgIDc5MS4yMDkxKy05LjI0NzcgICAgICAgIAogICBRdWlja3Nv
cnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzgzLjI2MDArLTMuMzYy
MiAgICAgICAgICAzODIuOTQyMystNC41Mzk5ICAgICAgICAKICAgc3RlcGFub3ZfY29udGFpbmVy
LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgMzUxNi4zMjE3Ky00MjEuMTI2NiAgICAgICAz
MzI2LjA2NDUrLTQ2LjU4MzkgICAgICAgICBtaWdodCBiZSAxLjA1NzJ4IGZhc3RlcgogICBUb3dl
cnMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjYzLjgwMzkrLTMu
ODI2OCAgICAgICAgICAyNjEuNzgyOCstMS45NjEzICAgICAgICAKCiAgIDxnZW9tZXRyaWM+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3MDcuOTcwMistOC4xOTMwICAgICAg
ICAgIDcwNi4yNDU0Ky0xMi41NDQ2ICAgICAgICAgbWlnaHQgYmUgMS4wMDI0eCBmYXN0ZXIKCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9nICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCkNvbXByZXNzaW9uQmVuY2g6CiAgIGh1ZmZtYW4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAuNDI0OCstMC42Mzc5ICAgICA/ICAgICAzMC41
MzQwKy0wLjg4NDggICAgICAgID8KICAgYXJpdGhtZXRpYy1zaW1wbGUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDI1Ni4wMjM3Ky0zLjQ4ODUgICAgICAgICAgMjU1LjgzNDgrLTYuMzYz
MiAgICAgICAgCiAgIGFyaXRobWV0aWMtcHJlY2lzZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyMzguNTg4OCstMi40MTUyICAgICA/ICAgIDI0My4wMDgwKy03LjQ3MjAgICAgICAgID8g
bWlnaHQgYmUgMS4wMTg1eCBzbG93ZXIKICAgYXJpdGhtZXRpYy1jb21wbGV4LXByZWNpc2UgICAg
ICAgICAgICAgICAgICAgICAgIDIzNy41OTQyKy0zLjQ5MzQgICAgICAgICAgMjM2Ljg1ODErLTMu
OTI1OCAgICAgICAgCiAgIGFyaXRobWV0aWMtcHJlY2lzZS1vcmRlci0wICAgICAgICAgICAgICAg
ICAgICAgICAyNTguNTc0MSstMy4wOTM2ICAgICA/ICAgIDI2My4wMDI5Ky0zLjg3NzQgICAgICAg
ID8gbWlnaHQgYmUgMS4wMTcxeCBzbG93ZXIKICAgYXJpdGhtZXRpYy1wcmVjaXNlLW9yZGVyLTEg
ICAgICAgICAgICAgICAgICAgICAgIDI5MC4xODA2Ky00Ljg2MzAgICAgID8gICAgMjkxLjk4NzIr
LTQuMjM4NCAgICAgICAgPwogICBhcml0aG1ldGljLXByZWNpc2Utb3JkZXItMiAgICAgICAgICAg
ICAgICAgICAgICAgMzM1LjUwNjUrLTEuMjM0OCAgICAgPyAgICAzMzguMjk4OCstNC4xMTIwICAg
ICAgICA/CiAgIGFyaXRobWV0aWMtc2ltcGxlLW9yZGVyLTEgICAgICAgICAgICAgICAgICAgICAg
ICAzMDIuMDcxNCstOC4xNzUyICAgICAgICAgIDI5OC4wMTg3Ky0yLjkyNDYgICAgICAgICAgbWln
aHQgYmUgMS4wMTM2eCBmYXN0ZXIKICAgYXJpdGhtZXRpYy1zaW1wbGUtb3JkZXItMiAgICAgICAg
ICAgICAgICAgICAgICAgIDM1My41ODAyKy00LjA4MDEgICAgID8gICAgMzYyLjQ1NTkrLTkuNzMw
MSAgICAgICAgPyBtaWdodCBiZSAxLjAyNTF4IHNsb3dlcgogICBsei1zdHJpbmcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzU0LjIwMjcrLTcuNzAyNyAgICAgPyAgICAz
NTcuNTUyMystMjMuNTA3MCAgICAgICA/CgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjMwLjMyMzgrLTEuMDU3MyAgICAgPyAgICAyMzEuOTAwNSst
MS4xMzI5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDA2OHggc2xvd2VyCgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZyAgICAgICAgICAg
ICAgICAgICAgICBjaGFuZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApH
ZW9tZWFuIG9mIHByZWZlcnJlZCBtZWFuczoKICAgPHNjYWxlZC1yZXN1bHQ+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0Ni4wNTA1Ky0wLjEwMjIgICAgID8gICAgIDQ2LjEyNzEr
LTAuMTQ3MiAgICAgICAgPyBtaWdodCBiZSAxLjAwMTd4IHNsb3dlcgoKCiAKSSByZXJhbiBvY3Rh
bmU6CgpWTXMgdGVzdGVkOgoib2ciIGF0IC9Wb2x1bWVzL0RhdGEvV0svYy9PcGVuU291cmNlL1dl
YktpdEJ1aWxkL1JlbGVhc2UvanNjIChyMTk4MjkwKQoiY2hhbmdlIiBhdCAvVm9sdW1lcy9EYXRh
L1dLL2EvT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9SZWxlYXNlL2pzYyAocjE5ODI5MCkKCkNvbGxl
Y3RlZCAxMCBzYW1wbGVzIHBlciBiZW5jaG1hcmsvVk0sIHdpdGggMTAgVk0gaW52b2NhdGlvbnMg
cGVyIGJlbmNobWFyay4gRW1pdHRlZCBhIGNhbGwgdG8gZ2MoKQpiZXR3ZWVuIHNhbXBsZSBtZWFz
dXJlbWVudHMuIFVzZWQgMSBiZW5jaG1hcmsgaXRlcmF0aW9uIHBlciBWTSBpbnZvY2F0aW9uIGZv
ciB3YXJtLXVwLiBVc2VkIHRoZQpqc2Mtc3BlY2lmaWMgcHJlY2lzZVRpbWUoKSBmdW5jdGlvbiB0
byBnZXQgbWljcm9zZWNvbmQtbGV2ZWwgdGltaW5nLiBSZXBvcnRpbmcgYmVuY2htYXJrIGV4ZWN1
dGlvbgp0aW1lcyB3aXRoIDk1JSBjb25maWRlbmNlIGludGVydmFscyBpbiBtaWxsaXNlY29uZHMu
CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2cgICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCmVuY3J5cHQgICAg
ICAgICAgICAgICAgIDAuMTU2OTYrLTAuMDAxMTggICAgPyAgICAgMC4xNTc1NistMC4wMDEyMiAg
ICAgICA/CmRlY3J5cHQgICAgICAgICAgICAgICAgIDIuNzE1NTIrLTAuMDA2ODUgICAgICAgICAg
Mi43MDc2MistMC4wMTMwOSAgICAgICAKZGVsdGFibHVlICAgICAgeDIgICAgICAgMC4xMzQzMyst
MC4wMDUwNiAgICAgICAgICAwLjEzMzMzKy0wLjAwMjE4ICAgICAgIAplYXJsZXkgICAgICAgICAg
ICAgICAgICAwLjI3MzcyKy0wLjAwMTU5ICAgID8gICAgIDAuMjc1MjcrLTAuMDAyMjcgICAgICAg
Pwpib3llciAgICAgICAgICAgICAgICAgICA0LjY3NzkzKy0wLjEzMDAyICAgID8gICAgIDQuNzUx
NzErLTAuMTA4ODIgICAgICAgPyBtaWdodCBiZSAxLjAxNTh4IHNsb3dlcgpuYXZpZXItc3Rva2Vz
ICB4MiAgICAgICA0Ljc4NTUyKy0wLjAyNTM1ICAgICAgICAgIDQuNzU0NTArLTAuMDIxMjAgICAg
ICAgCnJheXRyYWNlICAgICAgIHgyICAgICAgIDAuODYzOTgrLTAuMDA5MDkgICAgICAgICAgMC44
NjI4NCstMC4wMDI1OSAgICAgICAKcmljaGFyZHMgICAgICAgeDIgICAgICAgMC4wNzg4MystMC4w
MDA0MyAgICAgICAgICAwLjA3ODQ0Ky0wLjAwMTAxICAgICAgIApzcGxheSAgICAgICAgICB4MiAg
ICAgICAwLjM0MjUzKy0wLjAwMTg3ICAgICAgICAgIDAuMzQxNzkrLTAuMDA3NDcgICAgICAgCnJl
Z2V4cCAgICAgICAgIHgyICAgICAgMTguMDA4MTYrLTAuMjkxNTIgICAgPyAgICAxOC4yNDc3OCst
MC4yNzI4OSAgICAgICA/IG1pZ2h0IGJlIDEuMDEzM3ggc2xvd2VyCnBkZmpzICAgICAgICAgIHgy
ICAgICAgMzcuMDYxNzgrLTAuNDAwNTYgICAgPyAgICAzNy4wODg4MistMC41NDM3NiAgICAgICA/
Cm1hbmRyZWVsICAgICAgIHgyICAgICAgNDAuMzE1OTErLTAuMTQxNDAgICAgICAgICA0MC4yNzg4
MCstMC4yMTY0NyAgICAgICAKZ2JlbXUgICAgICAgICAgeDIgICAgICAyMy4yMjQ2NCstMC4yMzk3
OSAgICA/ICAgIDIzLjMxODk1Ky0wLjM2MDkzICAgICAgID8KY2xvc3VyZSAgICAgICAgICAgICAg
ICAgMC41NjMxMistMC4wMDE2NiAgICBeICAgICAwLjU0NzU2Ky0wLjAwMjA0ICAgICAgIF4gZGVm
aW5pdGVseSAxLjAyODR4IGZhc3RlcgpqcXVlcnkgICAgICAgICAgICAgICAgICA3LjMzMzA4Ky0w
LjAzNzM4ICAgIF4gICAgIDcuMDkzOTQrLTAuMDQxMjAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDMz
N3ggZmFzdGVyCmJveDJkICAgICAgICAgIHgyICAgICAgIDguODE3MjUrLTAuMDU0MDggICAgICAg
ICAgOC43NzY2MystMC4wNTY1OCAgICAgICAKemxpYiAgICAgICAgICAgeDIgICAgIDM2NS44ODYw
MSstNy44ODQ1NyAgICAgICAgMzYyLjc2OTQ3Ky05LjI4NTk1ICAgICAgIAp0eXBlc2NyaXB0ICAg
ICB4MiAgICAgNjQxLjcwMDQ5Ky04LjEyNTI5ICAgICAgICA2MzMuMDQ4NjgrLTMuNTMzNTAgICAg
ICAgICBtaWdodCBiZSAxLjAxMzd4IGZhc3RlcgoKPGdlb21ldHJpYz4gICAgICAgICAgICAgNC45
ODM2MSstMC4wMjExNSAgICAgICAgICA0Ljk2NjU5Ky0wLjAxMjI4ICAgICAgICAgbWlnaHQgYmUg
MS4wMDM0eCBmYXN0ZXIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274344</attachid>
            <date>2016-03-17 17:32:44 -0700</date>
            <delta_ts>2016-03-17 17:37:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>28822</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4MzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE2LTAzLTE3ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBTbWFsbFB0clNldCBhbmQgaW50ZWdyYXRlIGl0IGludG8gdGhlIFBhcnNlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NTUyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNpbmcgU21h
bGxQdHJTZXQgaW5zdGVhZCBvZiBIYXNoU2V0IHJlYWxseSBoZWxwcyBzcGVlZAorICAgICAgICB1
cCB0aGUgcGFyc2VyLiBXaGF0IHNhdmVzIHVzIG1vc3QgaXMgbm90IG5lZWRpbmcgdG8gYWx3YXlz
CisgICAgICAgIG1hbGxvYy9mcmVlIG1lbW9yeSBpbiB0aGUgSGFzaFNldC4KKworICAgICAgICAq
IHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFy
c2VJbm5lcik6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5oOgorICAgICAgICAoSlNDOjpTY29w
ZTo6U2NvcGUpOgorICAgICAgICAoSlNDOjpTY29wZTo6c3RhcnRTd2l0Y2gpOgorICAgICAgICAo
SlNDOjpTY29wZTo6aGFzRGVjbGFyZWRQYXJhbWV0ZXIpOgorICAgICAgICAoSlNDOjpTY29wZTo6
ZGVjbGFyZVdyaXRlKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmRlY2xhcmVQYXJhbWV0ZXIpOgor
ICAgICAgICAoSlNDOjpTY29wZTo6dXNlZFZhcmlhYmxlc0NvbnRhaW5zKToKKyAgICAgICAgKEpT
Qzo6U2NvcGU6OnVzZVZhcmlhYmxlKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmNvbGxlY3RGcmVl
VmFyaWFibGVzKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmdldENhcHR1cmVkVmFycyk6CisgICAg
ICAgIChKU0M6OlNjb3BlOjppc1ZhbGlkU3RyaWN0TW9kZSk6CisgICAgICAgIChKU0M6OlNjb3Bl
OjpzaGFkb3dzQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmNvcHlDYXB0dXJlZFZh
cmlhYmxlc1RvVmVjdG9yKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OnNldElzTW9kdWxlKToKKyAg
ICAgICAgKEpTQzo6UGFyc2VyOjpwdXNoU2NvcGUpOgorICAgICAgICAoSlNDOjpTY29wZTo6Z2V0
VXNlZFZhcmlhYmxlcyk6IERlbGV0ZWQuCisKIDIwMTYtMDMtMTcgIFNhYW0gYmFyYXRpICA8c2Jh
cmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0VTNl0gTWFrZSBHZXRQcm9wZXJ0eSguKSBpbnNp
ZGUgQXJyYXlQcm90b3R5cGUuY3BwIHNwZWMgY29tcGF0aWJsZS4KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzExLDEw
ICszMTEsOCBAQCBTdHJpbmcgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlSW5uZXIoY29uCiAgICAg
Zm9yIChhdXRvJiBlbnRyeSA6IGNhcHR1cmVkVmFyaWFibGVzKQogICAgICAgICB2YXJEZWNsYXJh
dGlvbnMubWFya1ZhcmlhYmxlQXNDYXB0dXJlZChlbnRyeSk7CiAKLSAgICBJZGVudGlmaWVyU2V0
IHVzZWRWYXJpYWJsZXM7Ci0gICAgc2NvcGUtPmdldFVzZWRWYXJpYWJsZXModXNlZFZhcmlhYmxl
cyk7CiAgICAgaWYgKHBhcnNlTW9kZSA9PSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBw
ZXJGdW5jdGlvbk1vZGUpIHsKLSAgICAgICAgaWYgKHVzZWRWYXJpYWJsZXMuY29udGFpbnMobV92
bS0+cHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLmltcGwoKSkpCisgICAgICAgIGlmIChzY29wZS0+
dXNlZFZhcmlhYmxlc0NvbnRhaW5zKG1fdm0tPnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cy5pbXBs
KCkpKQogICAgICAgICAgICAgY29udGV4dC5wcm9wYWdhdGVBcmd1bWVudHNVc2UoKTsKICAgICB9
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAkocmV2aXNpb24gMTk4
MzYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNDAsMTMgKzQwLDE1IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1NtYWxsUHRyU2V0Lmg+CisKIG5hbWVzcGFjZSBKU0Mgewogc3RydWN0IFNjb3BlOwog
fQogCiBuYW1lc3BhY2UgV1RGIHsKLXRlbXBsYXRlIDw+IHN0cnVjdCBWZWN0b3JUcmFpdHM8SlND
OjpTY29wZT4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7Ci0gICAgc3RhdGljIGNvbnN0IGJv
b2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSBmYWxzZTsgLy8gTm90IGFsbCBTY29wZSBkYXRh
IG1lbWJlcnMgaW5pdGlhbGl6ZSB0byAwLgordGVtcGxhdGUgPD4gc3RydWN0IFZlY3RvclRyYWl0
czxKU0M6OlNjb3BlPiA6IFZlY3RvclRyYWl0c0Jhc2U8LyogaXMgcG9kICovIGZhbHNlLCB2b2lk
PiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuTW92ZVdpdGhNZW1jcHkgPSB0cnVlOwogfTsK
IH0KIApAQCAtNjAsNiArNjIsOCBAQCBjbGFzcyBWTTsKIGNsYXNzIFByb2dyYW1Ob2RlOwogY2xh
c3MgU291cmNlQ29kZTsKIAordHlwZWRlZiBTbWFsbFB0clNldDxVbmlxdWVkU3RyaW5nSW1wbCo+
IFVuaXF1ZWRTdHJpbmdJbXBsUHRyU2V0OworCiAvLyBNYWNyb3MgdG8gbWFrZSB0aGUgbW9yZSBj
b21tb24gVHJlZUJ1aWxkZXIgdHlwZXMgYSBsaXR0bGUgbGVzcyB2ZXJib3NlCiAjZGVmaW5lIFRy
ZWVTdGF0ZW1lbnQgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlN0YXRlbWVudAogI2RlZmluZSBUcmVl
RXhwcmVzc2lvbiB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6RXhwcmVzc2lvbgpAQCAtMTU4LDYgKzE2
Miw4IEBAIHByaXZhdGU6CiB9OwogCiBzdHJ1Y3QgU2NvcGUgeworV1RGX01BS0VfTk9OQ09QWUFC
TEUoU2NvcGUpOworICAgIHB1YmxpYzoKICAgICBTY29wZShjb25zdCBWTSogdm0sIGJvb2wgaXNG
dW5jdGlvbiwgYm9vbCBpc0dlbmVyYXRvciwgYm9vbCBzdHJpY3RNb2RlLCBib29sIGlzQXJyb3dG
dW5jdGlvbikKICAgICAgICAgOiBtX3ZtKHZtKQogICAgICAgICAsIG1fc2hhZG93c0FyZ3VtZW50
cyhmYWxzZSkKQEAgLTE4Niw3ICsxOTIsNyBAQCBzdHJ1Y3QgU2NvcGUgewogICAgIHsKICAgICB9
CiAKLSAgICBTY29wZShjb25zdCBTY29wZSYgcmhzKQorICAgIFNjb3BlKFNjb3BlJiYgcmhzKQog
ICAgICAgICA6IG1fdm0ocmhzLm1fdm0pCiAgICAgICAgICwgbV9zaGFkb3dzQXJndW1lbnRzKHJo
cy5tX3NoYWRvd3NBcmd1bWVudHMpCiAgICAgICAgICwgbV91c2VzRXZhbChyaHMubV91c2VzRXZh
bCkKQEAgLTIxMSwxNiArMjE3LDE2IEBAIHN0cnVjdCBTY29wZSB7CiAgICAgICAgICwgbV9sb29w
RGVwdGgocmhzLm1fbG9vcERlcHRoKQogICAgICAgICAsIG1fc3dpdGNoRGVwdGgocmhzLm1fc3dp
dGNoRGVwdGgpCiAgICAgICAgICwgbV9pbm5lckFycm93RnVuY3Rpb25GZWF0dXJlcyhyaHMubV9p
bm5lckFycm93RnVuY3Rpb25GZWF0dXJlcykKLSAgICAgICAgLCBtX21vZHVsZVNjb3BlRGF0YShy
aHMubV9tb2R1bGVTY29wZURhdGEpCisgICAgICAgICwgbV9sYWJlbHMoV1RGTW92ZShyaHMubV9s
YWJlbHMpKQorICAgICAgICAsIG1fZGVjbGFyZWRQYXJhbWV0ZXJzKFdURk1vdmUocmhzLm1fZGVj
bGFyZWRQYXJhbWV0ZXJzKSkKKyAgICAgICAgLCBtX2RlY2xhcmVkVmFyaWFibGVzKFdURk1vdmUo
cmhzLm1fZGVjbGFyZWRWYXJpYWJsZXMpKQorICAgICAgICAsIG1fbGV4aWNhbFZhcmlhYmxlcyhX
VEZNb3ZlKHJocy5tX2xleGljYWxWYXJpYWJsZXMpKQorICAgICAgICAsIG1fdXNlZFZhcmlhYmxl
cyhXVEZNb3ZlKHJocy5tX3VzZWRWYXJpYWJsZXMpKQorICAgICAgICAsIG1fY2xvc2VkVmFyaWFi
bGVDYW5kaWRhdGVzKFdURk1vdmUocmhzLm1fY2xvc2VkVmFyaWFibGVDYW5kaWRhdGVzKSkKKyAg
ICAgICAgLCBtX3dyaXR0ZW5WYXJpYWJsZXMoV1RGTW92ZShyaHMubV93cml0dGVuVmFyaWFibGVz
KSkKKyAgICAgICAgLCBtX21vZHVsZVNjb3BlRGF0YShXVEZNb3ZlKHJocy5tX21vZHVsZVNjb3Bl
RGF0YSkpCisgICAgICAgICwgbV9mdW5jdGlvbkRlY2xhcmF0aW9ucyhXVEZNb3ZlKHJocy5tX2Z1
bmN0aW9uRGVjbGFyYXRpb25zKSkKICAgICB7Ci0gICAgICAgIGlmIChyaHMubV9sYWJlbHMpIHsK
LSAgICAgICAgICAgIG1fbGFiZWxzID0gc3RkOjptYWtlX3VuaXF1ZTxMYWJlbFN0YWNrPigpOwot
Ci0gICAgICAgICAgICB0eXBlZGVmIExhYmVsU3RhY2s6OmNvbnN0X2l0ZXJhdG9yIGl0ZXJhdG9y
OwotICAgICAgICAgICAgaXRlcmF0b3IgZW5kID0gcmhzLm1fbGFiZWxzLT5lbmQoKTsKLSAgICAg
ICAgICAgIGZvciAoaXRlcmF0b3IgaXQgPSByaHMubV9sYWJlbHMtPmJlZ2luKCk7IGl0ICE9IGVu
ZDsgKytpdCkKLSAgICAgICAgICAgICAgICBtX2xhYmVscy0+YXBwZW5kKFNjb3BlTGFiZWxJbmZv
IHsgaXQtPnVpZCwgaXQtPmlzTG9vcCB9KTsKLSAgICAgICAgfQogICAgIH0KIAogICAgIHZvaWQg
c3RhcnRTd2l0Y2goKSB7IG1fc3dpdGNoRGVwdGgrKzsgfQpAQCAtNDU0LDcgKzQ2MCw3IEBAIHN0
cnVjdCBTY29wZSB7CiAKICAgICBib29sIGhhc0RlY2xhcmVkUGFyYW1ldGVyKGNvbnN0IFJlZlB0
cjxVbmlxdWVkU3RyaW5nSW1wbD4mIGlkZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fZGVj
bGFyZWRQYXJhbWV0ZXJzLmNvbnRhaW5zKGlkZW50KSB8fCBoYXNEZWNsYXJlZFZhcmlhYmxlKGlk
ZW50KTsKKyAgICAgICAgcmV0dXJuIG1fZGVjbGFyZWRQYXJhbWV0ZXJzLmNvbnRhaW5zKGlkZW50
LmdldCgpKSB8fCBoYXNEZWNsYXJlZFZhcmlhYmxlKGlkZW50KTsKICAgICB9CiAgICAgCiAgICAg
dm9pZCBkZWNsYXJlV3JpdGUoY29uc3QgSWRlbnRpZmllciogaWRlbnQpCkBAIC00OTIsMTEgKzQ5
OCw3IEBAIHN0cnVjdCBTY29wZSB7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAg
IAotICAgIHZvaWQgZ2V0VXNlZFZhcmlhYmxlcyhJZGVudGlmaWVyU2V0JiB1c2VkVmFyaWFibGVz
KQotICAgIHsKLSAgICAgICAgdXNlZFZhcmlhYmxlcy5zd2FwKG1fdXNlZFZhcmlhYmxlcyk7Ci0g
ICAgfQotCisgICAgYm9vbCB1c2VkVmFyaWFibGVzQ29udGFpbnMoVW5pcXVlZFN0cmluZ0ltcGwq
IGltcGwpIHsgcmV0dXJuIG1fdXNlZFZhcmlhYmxlcy5jb250YWlucyhpbXBsKTsgfQogICAgIHZv
aWQgdXNlVmFyaWFibGUoY29uc3QgSWRlbnRpZmllciogaWRlbnQsIGJvb2wgaXNFdmFsKQogICAg
IHsKICAgICAgICAgbV91c2VzRXZhbCB8PSBpc0V2YWw7CkBAIC01NDgsNyArNTUwLDcgQEAgc3Ry
dWN0IFNjb3BlIHsKICAgICAgICAgICAgIG1fdXNlc0V2YWwgPSB0cnVlOwogCiAgICAgICAgIHsK
LSAgICAgICAgICAgIGZvciAoY29uc3QgUmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPiYgaW1wbCA6
IG5lc3RlZFNjb3BlLT5tX3VzZWRWYXJpYWJsZXMpIHsKKyAgICAgICAgICAgIGZvciAoVW5pcXVl
ZFN0cmluZ0ltcGwqIGltcGwgOiBuZXN0ZWRTY29wZS0+bV91c2VkVmFyaWFibGVzKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKG5lc3RlZFNjb3BlLT5tX2RlY2xhcmVkVmFyaWFibGVzLmNvbnRhaW5z
KGltcGwpIHx8IG5lc3RlZFNjb3BlLT5tX2xleGljYWxWYXJpYWJsZXMuY29udGFpbnMoaW1wbCkp
CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC01NzMsMTEgKzU3NSwxMCBAQCBz
dHJ1Y3QgU2NvcGUgewogICAgICAgICB9CiAKICAgICAgICAgaWYgKG5lc3RlZFNjb3BlLT5tX3dy
aXR0ZW5WYXJpYWJsZXMuc2l6ZSgpKSB7Ci0gICAgICAgICAgICBJZGVudGlmaWVyU2V0OjppdGVy
YXRvciBlbmQgPSBuZXN0ZWRTY29wZS0+bV93cml0dGVuVmFyaWFibGVzLmVuZCgpOwotICAgICAg
ICAgICAgZm9yIChJZGVudGlmaWVyU2V0OjppdGVyYXRvciBwdHIgPSBuZXN0ZWRTY29wZS0+bV93
cml0dGVuVmFyaWFibGVzLmJlZ2luKCk7IHB0ciAhPSBlbmQ7ICsrcHRyKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKG5lc3RlZFNjb3BlLT5tX2RlY2xhcmVkVmFyaWFibGVzLmNvbnRhaW5zKCpwdHIp
IHx8IG5lc3RlZFNjb3BlLT5tX2xleGljYWxWYXJpYWJsZXMuY29udGFpbnMoKnB0cikpCisgICAg
ICAgICAgICBmb3IgKFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsIDogbmVzdGVkU2NvcGUtPm1fd3Jp
dHRlblZhcmlhYmxlcykgeworICAgICAgICAgICAgICAgIGlmIChuZXN0ZWRTY29wZS0+bV9kZWNs
YXJlZFZhcmlhYmxlcy5jb250YWlucyhpbXBsKSB8fCBuZXN0ZWRTY29wZS0+bV9sZXhpY2FsVmFy
aWFibGVzLmNvbnRhaW5zKGltcGwpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgICAgICBtX3dyaXR0ZW5WYXJpYWJsZXMuYWRkKCpwdHIpOworICAgICAgICAgICAg
ICAgIG1fd3JpdHRlblZhcmlhYmxlcy5hZGQoaW1wbCk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CkBAIC02MDUsMTEgKzYwNiwxMCBAQCBzdHJ1Y3QgU2NvcGUgewogICAgICAgICBp
ZiAoc2hhZG93c0FyZ3VtZW50cygpKQogICAgICAgICAgICAgbW9kaWZpZWRBcmd1bWVudHMgPSB0
cnVlOwogICAgICAgICBpZiAobV9kZWNsYXJlZFBhcmFtZXRlcnMuc2l6ZSgpKSB7Ci0gICAgICAg
ICAgICBJZGVudGlmaWVyU2V0OjppdGVyYXRvciBlbmQgPSBtX3dyaXR0ZW5WYXJpYWJsZXMuZW5k
KCk7Ci0gICAgICAgICAgICBmb3IgKElkZW50aWZpZXJTZXQ6Oml0ZXJhdG9yIHB0ciA9IG1fd3Jp
dHRlblZhcmlhYmxlcy5iZWdpbigpOyBwdHIgIT0gZW5kOyArK3B0cikgewotICAgICAgICAgICAg
ICAgIGlmICgqcHRyID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cy5pbXBsKCkpCisg
ICAgICAgICAgICBmb3IgKFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsIDogbV93cml0dGVuVmFyaWFi
bGVzKSB7CisgICAgICAgICAgICAgICAgaWYgKGltcGwgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+
YXJndW1lbnRzLmltcGwoKSkKICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRBcmd1bWVudHMg
PSB0cnVlOwotICAgICAgICAgICAgICAgIGlmICghbV9kZWNsYXJlZFBhcmFtZXRlcnMuY29udGFp
bnMoKnB0cikpCisgICAgICAgICAgICAgICAgaWYgKCFtX2RlY2xhcmVkUGFyYW1ldGVycy5jb250
YWlucyhpbXBsKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAg
ICAgbW9kaWZpZWRQYXJhbWV0ZXIgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAt
NjIxLDEzICs2MjEsMTIgQEAgc3RydWN0IFNjb3BlIHsKICAgICBib29sIGlzVmFsaWRTdHJpY3RN
b2RlKCkgY29uc3QgeyByZXR1cm4gbV9pc1ZhbGlkU3RyaWN0TW9kZTsgfQogICAgIGJvb2wgc2hh
ZG93c0FyZ3VtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fc2hhZG93c0FyZ3VtZW50czsgfQogCi0g
ICAgdm9pZCBjb3B5Q2FwdHVyZWRWYXJpYWJsZXNUb1ZlY3Rvcihjb25zdCBJZGVudGlmaWVyU2V0
JiBjYXB0dXJlZFZhcmlhYmxlcywgVmVjdG9yPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4+JiB2
ZWN0b3IpCisgICAgdm9pZCBjb3B5Q2FwdHVyZWRWYXJpYWJsZXNUb1ZlY3Rvcihjb25zdCBVbmlx
dWVkU3RyaW5nSW1wbFB0clNldCYgY2FwdHVyZWRWYXJpYWJsZXMsIFZlY3RvcjxSZWZQdHI8VW5p
cXVlZFN0cmluZ0ltcGw+PiYgdmVjdG9yKQogICAgIHsKLSAgICAgICAgSWRlbnRpZmllclNldDo6
aXRlcmF0b3IgZW5kID0gY2FwdHVyZWRWYXJpYWJsZXMuZW5kKCk7Ci0gICAgICAgIGZvciAoSWRl
bnRpZmllclNldDo6aXRlcmF0b3IgaXQgPSBjYXB0dXJlZFZhcmlhYmxlcy5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKLSAgICAgICAgICAgIGlmIChtX2RlY2xhcmVkVmFyaWFibGVzLmNvbnRh
aW5zKCppdCkgfHwgbV9sZXhpY2FsVmFyaWFibGVzLmNvbnRhaW5zKCppdCkpCisgICAgICAgIGZv
ciAoVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwgOiBjYXB0dXJlZFZhcmlhYmxlcykgeworICAgICAg
ICAgICAgaWYgKG1fZGVjbGFyZWRWYXJpYWJsZXMuY29udGFpbnMoaW1wbCkgfHwgbV9sZXhpY2Fs
VmFyaWFibGVzLmNvbnRhaW5zKGltcGwpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAgICAgdmVjdG9yLmFwcGVuZCgqaXQpOworICAgICAgICAgICAgdmVjdG9yLmFwcGVuZChp
bXBsKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNjk1LDM5ICs2OTQsMzkgQEAgcHJpdmF0ZToK
ICAgICB9CiAKICAgICBjb25zdCBWTSogbV92bTsKLSAgICBib29sIG1fc2hhZG93c0FyZ3VtZW50
cyA6IDE7Ci0gICAgYm9vbCBtX3VzZXNFdmFsIDogMTsKLSAgICBib29sIG1fbmVlZHNGdWxsQWN0
aXZhdGlvbiA6IDE7Ci0gICAgYm9vbCBtX2hhc0RpcmVjdFN1cGVyIDogMTsKLSAgICBib29sIG1f
bmVlZHNTdXBlckJpbmRpbmcgOiAxOwotICAgIGJvb2wgbV9hbGxvd3NWYXJEZWNsYXJhdGlvbnMg
OiAxOwotICAgIGJvb2wgbV9hbGxvd3NMZXhpY2FsRGVjbGFyYXRpb25zIDogMTsKLSAgICBib29s
IG1fc3RyaWN0TW9kZSA6IDE7Ci0gICAgYm9vbCBtX2lzRnVuY3Rpb24gOiAxOwotICAgIGJvb2wg
bV9pc0dlbmVyYXRvciA6IDE7Ci0gICAgYm9vbCBtX2lzR2VuZXJhdG9yQm91bmRhcnkgOiAxOwot
ICAgIGJvb2wgbV9pc0Fycm93RnVuY3Rpb24gOiAxOwotICAgIGJvb2wgbV9pc0Fycm93RnVuY3Rp
b25Cb3VuZGFyeSA6IDE7Ci0gICAgYm9vbCBtX2lzTGV4aWNhbFNjb3BlIDogMTsKLSAgICBib29s
IG1faXNGdW5jdGlvbkJvdW5kYXJ5IDogMTsKLSAgICBib29sIG1faXNWYWxpZFN0cmljdE1vZGUg
OiAxOwotICAgIGJvb2wgbV9oYXNBcmd1bWVudHMgOiAxOwotICAgIGJvb2wgbV9pc0V2YWxDb250
ZXh0IDogMTsKLSAgICB1bnNpZ25lZCBtX2NvbnN0cnVjdG9yS2luZCA6IDI7Ci0gICAgdW5zaWdu
ZWQgbV9leHBlY3RlZFN1cGVyQmluZGluZyA6IDI7CisgICAgYm9vbCBtX3NoYWRvd3NBcmd1bWVu
dHM7CisgICAgYm9vbCBtX3VzZXNFdmFsOworICAgIGJvb2wgbV9uZWVkc0Z1bGxBY3RpdmF0aW9u
OworICAgIGJvb2wgbV9oYXNEaXJlY3RTdXBlcjsKKyAgICBib29sIG1fbmVlZHNTdXBlckJpbmRp
bmc7CisgICAgYm9vbCBtX2FsbG93c1ZhckRlY2xhcmF0aW9uczsKKyAgICBib29sIG1fYWxsb3dz
TGV4aWNhbERlY2xhcmF0aW9uczsKKyAgICBib29sIG1fc3RyaWN0TW9kZTsKKyAgICBib29sIG1f
aXNGdW5jdGlvbjsKKyAgICBib29sIG1faXNHZW5lcmF0b3I7CisgICAgYm9vbCBtX2lzR2VuZXJh
dG9yQm91bmRhcnk7CisgICAgYm9vbCBtX2lzQXJyb3dGdW5jdGlvbjsKKyAgICBib29sIG1faXNB
cnJvd0Z1bmN0aW9uQm91bmRhcnk7CisgICAgYm9vbCBtX2lzTGV4aWNhbFNjb3BlOworICAgIGJv
b2wgbV9pc0Z1bmN0aW9uQm91bmRhcnk7CisgICAgYm9vbCBtX2lzVmFsaWRTdHJpY3RNb2RlOwor
ICAgIGJvb2wgbV9oYXNBcmd1bWVudHM7CisgICAgYm9vbCBtX2lzRXZhbENvbnRleHQ7CisgICAg
dW5zaWduZWQgbV9jb25zdHJ1Y3RvcktpbmQ7CisgICAgdW5zaWduZWQgbV9leHBlY3RlZFN1cGVy
QmluZGluZzsKICAgICBpbnQgbV9sb29wRGVwdGg7CiAgICAgaW50IG1fc3dpdGNoRGVwdGg7CiAg
ICAgSW5uZXJBcnJvd0Z1bmN0aW9uQ29kZUZlYXR1cmVzIG1faW5uZXJBcnJvd0Z1bmN0aW9uRmVh
dHVyZXM7CiAKICAgICB0eXBlZGVmIFZlY3RvcjxTY29wZUxhYmVsSW5mbywgMj4gTGFiZWxTdGFj
azsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGFiZWxTdGFjaz4gbV9sYWJlbHM7Ci0gICAgSWRlbnRp
ZmllclNldCBtX2RlY2xhcmVkUGFyYW1ldGVyczsKKyAgICBVbmlxdWVkU3RyaW5nSW1wbFB0clNl
dCBtX2RlY2xhcmVkUGFyYW1ldGVyczsKICAgICBWYXJpYWJsZUVudmlyb25tZW50IG1fZGVjbGFy
ZWRWYXJpYWJsZXM7CiAgICAgVmFyaWFibGVFbnZpcm9ubWVudCBtX2xleGljYWxWYXJpYWJsZXM7
Ci0gICAgSWRlbnRpZmllclNldCBtX3VzZWRWYXJpYWJsZXM7CisgICAgVW5pcXVlZFN0cmluZ0lt
cGxQdHJTZXQgbV91c2VkVmFyaWFibGVzOwogICAgIElkZW50aWZpZXJTZXQgbV9jbG9zZWRWYXJp
YWJsZUNhbmRpZGF0ZXM7Ci0gICAgSWRlbnRpZmllclNldCBtX3dyaXR0ZW5WYXJpYWJsZXM7Ci0g
ICAgUmVmUHRyPE1vZHVsZVNjb3BlRGF0YT4gbV9tb2R1bGVTY29wZURhdGEgeyB9OworICAgIFVu
aXF1ZWRTdHJpbmdJbXBsUHRyU2V0IG1fd3JpdHRlblZhcmlhYmxlczsKKyAgICBSZWZQdHI8TW9k
dWxlU2NvcGVEYXRhPiBtX21vZHVsZVNjb3BlRGF0YTsKICAgICBEZWNsYXJhdGlvblN0YWNrczo6
RnVuY3Rpb25TdGFjayBtX2Z1bmN0aW9uRGVjbGFyYXRpb25zOwogfTsKIApAQCAtMTAwNCw3ICsx
MDAzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGlzR2VuZXJhdG9yID0gbV9zY29wZVN0YWNr
Lmxhc3QoKS5pc0dlbmVyYXRvcigpOwogICAgICAgICAgICAgaXNBcnJvd0Z1bmN0aW9uID0gbV9z
Y29wZVN0YWNrLmxhc3QoKS5pc0Fycm93RnVuY3Rpb24oKTsKICAgICAgICAgfQotICAgICAgICBt
X3Njb3BlU3RhY2suYXBwZW5kKFNjb3BlKG1fdm0sIGlzRnVuY3Rpb24sIGlzR2VuZXJhdG9yLCBp
c1N0cmljdCwgaXNBcnJvd0Z1bmN0aW9uKSk7CisgICAgICAgIG1fc2NvcGVTdGFjay5jb25zdHJ1
Y3RBbmRBcHBlbmQobV92bSwgaXNGdW5jdGlvbiwgaXNHZW5lcmF0b3IsIGlzU3RyaWN0LCBpc0Fy
cm93RnVuY3Rpb24pOwogICAgICAgICByZXR1cm4gY3VycmVudFNjb3BlKCk7CiAgICAgfQogCklu
ZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTk4MzYwKQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSw2NiBAQAorMjAxNi0wMy0xNyAgU2FhbSBiYXJhdGkgIDxzYmFyYXRp
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgU21hbGxQdHJTZXQgYW5kIGludGVncmF0
ZSBpdCBpbnRvIHRoZSBQYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NTU1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgU21hbGxQdHJTZXQgZGF0YSBz
dHJ1dHVyZS4KKyAgICAgICAgSW5zcGlyZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uIGluIGxsdm06
CisgICAgICAgIGh0dHA6Ly9sbHZtLm9yZy9kb2NzL2RveHlnZW4vaHRtbC9TbWFsbFB0clNldF84
aF9zb3VyY2UuaHRtbAorCisgICAgICAgIFRoZSBkYXRhIHN0cnVjdHVyZSB1c2VzIGFuIGlubGlu
ZSBhcnJheSBmb3Igc3RvcmFnZSB1cCB1bnRpbAorICAgICAgICBhIGZpeGVkIGxpbWl0ICg4IGVu
dHJpZXMgaW4gb3VyIGltcGxlbWVudGF0aW9uKS4gSWYgdGhhdCBzdG9yYWdlCisgICAgICAgIGZp
bGxzIHVwLCB3ZSBmYWxsIGJhY2sgdG8gYSBzaW1wbGUgaGFzaCB0YWJsZSBpbXBsZW1lbnRhdGlv
bi4KKyAgICAgICAgQ3J1Y2lhbGx5LCB0aGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9y
dCB0aGUgcmVtb3ZlCisgICAgICAgIG9wZXJhdGlvbi4gVGhpcyBpcyBvbiBwdXJwb3NlLiBUaGUg
aGFzaCB0YWJsZSB3aWxsIG9ubHkgZXZlcgorICAgICAgICBncm93LgorCisgICAgICAgIEFsc28s
IHRoZSBpbXBsZW1lbnRhdGlvbiBhbGxvd3MgZm9yIGl0IHRvIGJlIG1lbWNvcGllZCBhcm91bmQu
CisgICAgICAgIEkuZSwgd2UgY2FuIHB1dCBTbWFsbFB0clNldCBpbnNpZGUgYSBWZWN0b3IgYW5k
IGFsbG93IHRoYXQKKyAgICAgICAgVmVjdG9yIHRvIHVzZSBtZW1jcHkgYXMgaXRzIG1vdmUgb3Bl
cmF0aW9uIChvZiBjb3Vyc2UgdGhpcworICAgICAgICBpcyBvbmx5IHZhbGlkIGlmIHRoZSBTbWFs
bFB0clNldCBpbiB0aGUgb2xkIG1lbW9yeSBkb2Vzbid0IGhhdmUgCisgICAgICAgIGl0cyBkZXN0
cnVjdG9yIGNhbGxlZCB1bmxlc3MgaXQgaXMgc2V0IGJhY2sgdG8gaXRzIGluaXRpYWwgc3RhdGUu
KQorCisgICAgICAgIEZvciBub3csIFNtYWxsUHRyU2V0IG9ubHkgc3VwcG9ydHMgcG9pbnRlciB0
eXBlcyB0aGF0IGFyZSB0cml2aWFsbHkKKyAgICAgICAgZGVzdHJ1Y3RpYmxlLiBJdCdzIHByb2Jh
Ymx5IG5vdCB0b28gZGlmZmljdWx0IHRvIGV4dGVuZCB0aGlzIHRvCisgICAgICAgIHNtYXJ0IHBv
aW50ZXJzLCBidXQgaXQncyBub3QgcGFydCBvZiB0aGlzIG9yaWdpbmFsIGltcGxlbWVudGF0aW9u
LgorCisgICAgICAgIEkndmUgYWxzbyBpbXBsZW1lbnRlZCBhIHB1cmUgZm9yd2FyZGluZyB2YXJh
cmdzIGNvbnN0cnVjdEFuZEFwcGVuZAorICAgICAgICBtZXRob2Qgb24gVmVjdG9yLiBUaGlzIGFs
bG93cyB5b3UgdG8gZG86CisgICAgICAgIFZlY3RvcjxUPiB2OworICAgICAgICB2LmNvbnN0cnVj
dEFuZEFwcGVuZChhMSwgYTIsIC4uLikKKyAgICAgICAgYXMgbG9uZyBhcyBUIGhhcyBhIGNvbnN0
cnVjdG9yIHRoYXQgYWNjZXB0cyBhcmd1bWVudHMgKGExLCBhMiwgLi4uKS4KKworICAgICAgICAq
IFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiB3dGYvU21hbGxQdHJTZXQuaDogQWRkZWQuCisgICAgICAgIChXVEY6
OlNtYWxsUHRyU2V0OjpTbWFsbFB0clNldCk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0Ojpv
cGVyYXRvcj0pOgorICAgICAgICAoV1RGOjpTbWFsbFB0clNldDo6flNtYWxsUHRyU2V0KToKKyAg
ICAgICAgKFdURjo6U21hbGxQdHJTZXQ6OmFkZCk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0
Ojpjb250YWlucyk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjppdGVyYXRvcjo6b3BlcmF0
b3IrKyk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjppdGVyYXRvcjo6b3BlcmF0b3IqKToK
KyAgICAgICAgKFdURjo6U21hbGxQdHJTZXQ6Oml0ZXJhdG9yOjpvcGVyYXRvcj09KToKKyAgICAg
ICAgKFdURjo6U21hbGxQdHJTZXQ6Oml0ZXJhdG9yOjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdU
Rjo6U21hbGxQdHJTZXQ6OmJlZ2luKToKKyAgICAgICAgKFdURjo6U21hbGxQdHJTZXQ6OmVuZCk6
CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjpzaXplKToKKyAgICAgICAgKFdURjo6U21hbGxQ
dHJTZXQ6OmVtcHR5VmFsdWUpOgorICAgICAgICAoV1RGOjpTbWFsbFB0clNldDo6aXNWYWxpZEVu
dHJ5KToKKyAgICAgICAgKFdURjo6U21hbGxQdHJTZXQ6OmlzU21hbGwpOgorICAgICAgICAoV1RG
OjpTbWFsbFB0clNldDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0Ojpn
cm93KToKKyAgICAgICAgKFdURjo6U21hbGxQdHJTZXQ6OmJ1Y2tldCk6CisgICAgICAgICogd3Rm
L1ZlY3Rvci5oOgorICAgICAgICAoV1RGOjpWZWN0b3I6OmFwcGVuZCk6CisgICAgICAgIChXVEY6
OlZlY3Rvcjo6dW5jaGVja2VkQXBwZW5kKToKKyAgICAgICAgKFdURjo6bWluQ2FwYWNpdHk+Ojph
cHBlbmQpOgorICAgICAgICAoV1RGOjptaW5DYXBhY2l0eT46OmNvbnN0cnVjdEFuZEFwcGVuZCk6
CisgICAgICAgIChXVEY6Om1pbkNhcGFjaXR5Pjo6YXBwZW5kU2xvd0Nhc2UpOgorICAgICAgICAo
V1RGOjptaW5DYXBhY2l0eT46OmNvbnN0cnVjdEFuZEFwcGVuZFNsb3dDYXNlKToKKwogMjAxNi0w
My0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNldCB0aGUg
V2ViQ29udGVudCBwcm9jZXNzJ3MgbWFpbiB0aHJlYWQgUW9TIHRvIFVTRVItSU5URVJBQ1RJVkUK
SW5kZXg6IFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MTk4MzYwKQorKysgU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiw3IEBACiAJCTcwRUNBNjBEMUIwMjQyNjgwMDQ0OTcz
OSAvKiBBdG9taWNTdHJpbmdJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcwRUNBNjBBMUIwMjQyNjgwMDQ0OTczOSAvKiBBdG9taWNTdHJpbmdJ
bXBsLmNwcCAqLzsgfTsKIAkJNzBFQ0E2MEUxQjAyNDI2ODAwNDQ5NzM5IC8qIFN5bWJvbEltcGwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcwRUNBNjBC
MUIwMjQyNjgwMDQ0OTczOSAvKiBTeW1ib2xJbXBsLmggKi87IH07CiAJCTcwRUNBNjBGMUIwMjQy
NjgwMDQ0OTczOSAvKiBVbmlxdWVkU3RyaW5nSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzBFQ0E2MEMxQjAyNDI2ODAwNDQ5NzM5IC8qIFVuaXF1
ZWRTdHJpbmdJbXBsLmggKi87IH07CisJCTc5RUM3MDYxMUM5OUY5QkMwMDNBM0FFMiAvKiBTbWFs
bFB0clNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzkzNkQ2QTkxQzk5RjhBRTAwMEQxQUVEIC8qIFNtYWxsUHRyU2V0LmggKi87IH07CiAJCTdDQkJB
MDc0MTlCQjdGREMwMEJCRjAyNSAvKiBPU09iamVjdFB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NCQkEwNzMxOUJCN0ZEQzAwQkJGMDI1IC8qIE9T
T2JqZWN0UHRyLmggKi87IH07CiAJCTdDREQ3RkY4MTg2RDI5MUUwMDc0MzNDRCAvKiBJdGVyYXRv
ckFkYXB0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Q0REN0ZGNzE4NkQyOTFFMDA3NDMzQ0QgLyogSXRlcmF0b3JBZGFwdG9ycy5oICovOyB9Owog
CQk3Q0REN0ZGQTE4NkQyQTU0MDA3NDMzQ0QgLyogSXRlcmF0b3JSYW5nZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NERDdGRjkxODZEMkE1NDAwNzQz
M0NEIC8qIEl0ZXJhdG9yUmFuZ2UuaCAqLzsgfTsKQEAgLTQyMSw2ICs0MjIsNyBAQAogCQk3MEVD
QTYwQTFCMDI0MjY4MDA0NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdG9taWNTdHJpbmdJbXBsLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzBFQ0E2MEIxQjAyNDI2ODAwNDQ5NzM5IC8qIFN5bWJvbElt
cGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3ltYm9sSW1wbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MEVDQTYwQzFCMDI0MjY4MDA0NDk3MzkgLyogVW5p
cXVlZFN0cmluZ0ltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5pcXVl
ZFN0cmluZ0ltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzkzNkQ2QTkxQzk5
RjhBRTAwMEQxQUVEIC8qIFNtYWxsUHRyU2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNtYWxsUHRyU2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQkJB
MDczMTlCQjdGREMwMEJCRjAyNSAvKiBPU09iamVjdFB0ci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBPU09iamVjdFB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3Q0REN0ZGNzE4NkQyOTFFMDA3NDMzQ0QgLyogSXRlcmF0b3JBZGFwdG9ycy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJdGVyYXRvckFkYXB0b3JzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDREQ3RkY5MTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVyYXRvclJh
bmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEl0ZXJhdG9yUmFuZ2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkxNCw2ICs5MTYsNyBAQAogCQkJCUE3NDg3
NDRGMTdBMEJEQUUwMEZBMDRDQiAvKiBTaXhDaGFyYWN0ZXJIYXNoLmNwcCAqLywKIAkJCQlBNzQ4
NzQ1MDE3QTBCREFFMDBGQTA0Q0IgLyogU2l4Q2hhcmFjdGVySGFzaC5oICovLAogCQkJCUE4QTQ3
MzBDMTUxQTgyNUIwMDQxMjNGRiAvKiBTaXplTGltaXRzLmNwcCAqLywKKwkJCQk3OTM2RDZBOTFD
OTlGOEFFMDAwRDFBRUQgLyogU21hbGxQdHJTZXQuaCAqLywKIAkJCQlBOEE0NzMwRDE1MUE4MjVC
MDA0MTIzRkYgLyogU3BlY3RydW0uaCAqLywKIAkJCQlBOEE0NzMwRTE1MUE4MjVCMDA0MTIzRkYg
LyogU3RhY2tCb3VuZHMuY3BwICovLAogCQkJCUE4QTQ3MzBGMTUxQTgyNUIwMDQxMjNGRiAvKiBT
dGFja0JvdW5kcy5oICovLApAQCAtMTE1MCw2ICsxMTUzLDcgQEAKIAkJCQlBOEE0NzM5NTE1MUE4
MjVCMDA0MTIzRkYgLyogQ2hlY2tlZEJvb2xlYW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3
NDVGMTUxQTgyNUIwMDQxMjNGRiAvKiBDb2xsYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZD
NEVERTYxNjk2MTQ5NjAwRjY1MDQxIC8qIENvbW1hUHJpbnRlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNzlFQzcwNjExQzk5RjlCQzAwM0EzQUUyIC8qIFNtYWxsUHRyU2V0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlERTVBMDlGQzFCQTM2OTkyMDAzRDQ0MjQgLyogQ29tbW9uQ3J5cHRvU1BJLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjhGMkI5MTE3MkUwMEZDMDA3REJEQTUgLyogQ29tcGlsYXRpb25U
aHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3Mzk4MTUxQTgyNUIwMDQxMjNGRiAvKiBD
b21waWxlci5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAkocmV2aXNp
b24gMTk4MzYwKQorKysgU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTk0LDYgKzk0LDcgQEAgc2V0KFdURl9IRUFERVJTCiAgICAgU2F0dXJhdGVkQXJpdGht
ZXRpYy5oCiAgICAgU2NvcGVkTGFtYmRhLmgKICAgICBTZWdtZW50ZWRWZWN0b3IuaAorICAgIFNt
YWxsUHRyU2V0LmgKICAgICBTdGFja0JvdW5kcy5oCiAgICAgU3RhY2tTdGF0cy5oCiAgICAgU3Rh
dGljQ29uc3RydWN0b3JzLmgKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1NtYWxsUHRyU2V0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvU21hbGxQdHJTZXQuaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XVEYvd3RmL1NtYWxsUHRyU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwy
NTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBTbWFsbFB0clNldF9oCisjZGVmaW5lIFNtYWxsUHRyU2V0X2gKKworI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KKyNpbmNsdWRlIDx3
dGYvSGFzaEZ1bmN0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1l
c3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4KK2NsYXNzIFNtYWxsUHRy
U2V0IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTbWFsbFB0clNldCk7CisgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8UHRyVHlwZT46OnZhbHVlLCAi
V2UgZG9udCBzdXBwb3J0IG5vbi10cml2aWFsbHkgZGVzdHJ1Y3RpYmxlIHBvaW50ZXIgdHlwZXMg
bm93LiIpOworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFB0clR5cGUpID09IHNpemVvZih2b2lk
KiksICJPbmx5IHN1cHBvcnQgcG9pbnRlciBzaXplZCB0aGluZ3MuIik7CisKK3B1YmxpYzogCisg
ICAgU21hbGxQdHJTZXQoKQorICAgIHsKKyAgICAgICAgaW5pdGlhbGl6ZSgpOworICAgIH0KKwor
ICAgIC8vIFdlIHRha2UgY2FyZSB0byBoYXZlIFNtYWxsUHRyU2V0IGhhdmUgcGFydGlhbCBtb3Zl
IHNlbWFudGljcyBhbGxvd2FibGUgdGhyb3VnaAorICAgIC8vIG1lbWNweS4gSXQncyBwYXJ0aWFs
IG1vdmUgc2VtYW50aWNzIGJlY2F1c2UgdGhlIG9sZCBtZW1vcnkgd2UndmUgbW92ZWQgZnJvbQor
ICAgIC8vIHNob3VsZCBub3QgYmUgZGVzdHJveWVkIGFmdGVyd2FyZHMgKG90aGVyd2lzZSwgd2Ug
bWlnaHQgZnJlZSBtX2J1ZmZlciB0d2ljZSkKKyAgICAvLyB1bmxlc3MgdGhhdCBvbGQgbWVtb3J5
IGlzIHJlc2V0IHRvIGJlIGlzU21hbGwoKS4gU2VlIG1vdmUgY29uc3RydWN0b3IgYmVsb3cuCisg
ICAgLy8gVG8gbWFpbnRhaW4gdGhlc2Ugc2VtYW50aWNzLCB3ZSBkZXRlcm1pbmUgaWYgd2UncmUg
c21hbGwgYnkgY2hlY2tpbmcgb3VyIHNpemUKKyAgICAvLyBhbmQgbm90IG91ciBtX2J1ZmZlciBw
b2ludGVyLiBBbmQgd2hlbiB3ZSdyZSBzbWFsbCwgd2UgZG9uJ3QgZG8gb3BlcmF0aW9ucyBvbgor
ICAgIC8vIG1fYnVmZmVyLCBpbnN0ZWFkLCB3ZSBwZXJmb3JtIG9wZXJhdGlvbnMgb24gbV9zbWFs
bFN0b3JhZ2UgZGlyZWN0bHkuIFRoZSByZWFzb24gd2Ugd2FudAorICAgIC8vIHRoZXNlIHNlbWFu
dGljcyBpcyB0aGF0IGl0J3MgYmVuZWZpY2lhbCB0byBoYXZlIGEgVmVjdG9yIHRoYXQgY29udGFp
bnMgU21hbGxQdHJTZXQKKyAgICAvLyAob3IgYW4gb2JqZWN0IHdpdGggU21hbGxQdHJTZXQgYXMg
YSBmaWVsZCkgYmUgYWxsb3dlZCB0byB1c2UgbWVtY3B5IGZvciBpdHMgbW92ZSBvcGVyYXRpb24u
CisKKyAgICBTbWFsbFB0clNldChTbWFsbFB0clNldCYmIG90aGVyKQorICAgIHsKKyAgICAgICAg
KnRoaXMgPSBXVEZNb3ZlKG90aGVyKTsKKyAgICB9CisKKyAgICBTbWFsbFB0clNldCYgb3BlcmF0
b3I9KFNtYWxsUHRyU2V0JiYgb3RoZXIpCisgICAgeworICAgICAgICBtZW1jcHkodGhpcywgJm90
aGVyLCBzaXplb2YoU21hbGxQdHJTZXQpKTsKKyAgICAgICAgb3RoZXIuaW5pdGlhbGl6ZSgpOwor
ICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgflNtYWxsUHRyU2V0KCkKKyAgICB7
CisgICAgICAgIGlmICghaXNTbWFsbCgpKQorICAgICAgICAgICAgZmFzdEZyZWUobV9idWZmZXIp
OworICAgIH0KKworICAgIGlubGluZSB2b2lkIGFkZChQdHJUeXBlIHB0cikKKyAgICB7CisgICAg
ICAgIEFTU0VSVChpc1ZhbGlkRW50cnkocHRyKSk7CisKKyAgICAgICAgaWYgKGlzU21hbGwoKSkg
eworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc2l6ZTsgaSsrKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKG1fc21hbGxTdG9yYWdlW2ldID09IHB0cikKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobV9zaXpl
IDwgU21hbGxBcnJheVNpemUpIHsKKyAgICAgICAgICAgICAgICBtX3NtYWxsU3RvcmFnZVttX3Np
emVdID0gcHRyOworICAgICAgICAgICAgICAgIG1fc2l6ZSsrOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZ3Jvdyg2NCk7CisgICAgICAgICAg
ICAvLyBGYWxsIHRocm91Z2guIFdlJ3JlIG5vIGxvbmdlciBzbWFsbCA6KAorICAgICAgICB9CisK
KyAgICAgICAgLy8gSWYgd2UncmUgbW9yZSB0aGFuIDMvNHRocyBmdWxsIHdlIGdyb3cuCisgICAg
ICAgIGlmIChVTkxJS0VMWShtX3NpemUgKiA0ID49IG1fY2FwYWNpdHkgKiAzKSkgeworICAgICAg
ICAgICAgZ3JvdyhtX2NhcGFjaXR5ICogMik7CisgICAgICAgICAgICBBU1NFUlQoIShtX2NhcGFj
aXR5ICYgKG1fY2FwYWNpdHkgLSAxKSkpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCoqIGJ1
Y2tldCA9IHRoaXMtPmJ1Y2tldChwdHIpOworICAgICAgICBpZiAoKmJ1Y2tldCAhPSBwdHIpIHsK
KyAgICAgICAgICAgICpidWNrZXQgPSBwdHI7CisgICAgICAgICAgICBtX3NpemUrKzsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIGlubGluZSBib29sIGNvbnRhaW5zKFB0clR5cGUgcHRyKQorICAg
IHsKKyAgICAgICAgQVNTRVJUKGlzVmFsaWRFbnRyeShwdHIpKTsKKyAgICAgICAgaWYgKGlzU21h
bGwoKSkgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc2l6ZTsgaSsr
KSB7IC8vIFdlIGNhbiBzZWFyY2ggdXAgdG8gIm1fc2l6ZSIgYmVjYXVzZSB3ZSBzdG9yZSB0aGlu
Z3MgbGluZWFybHkgaW5zaWRlIHRoaXMgYnVmZmVyLgorICAgICAgICAgICAgICAgIGlmIChtX3Nt
YWxsU3RvcmFnZVtpXSA9PSBwdHIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAg
ICAgICAgdm9pZCoqIGJ1Y2tldCA9IHRoaXMtPmJ1Y2tldChwdHIpOworICAgICAgICByZXR1cm4g
KmJ1Y2tldCA9PSBwdHI7CisgICAgfQorCisgICAgY2xhc3MgaXRlcmF0b3IgeworICAgIHB1Ymxp
YzoKKyAgICAgICAgaXRlcmF0b3ImIG9wZXJhdG9yKysoKQorICAgICAgICB7CisgICAgICAgICAg
ICBtX2luZGV4Kys7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtX2luZGV4IDw9IG1fY2Fw
YWNpdHkpOworICAgICAgICAgICAgd2hpbGUgKG1faW5kZXggPCBtX2NhcGFjaXR5ICYmIG1fYnVm
ZmVyW21faW5kZXhdID09IGVtcHR5VmFsdWUoKSkKKyAgICAgICAgICAgICAgICBtX2luZGV4Kys7
CisgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IFB0clR5cGUgb3BlcmF0b3IqKCkgY29uc3QgeyBBU1NFUlQobV9pbmRleCA8IG1fY2FwYWNpdHkp
OyByZXR1cm4gc3RhdGljX2Nhc3Q8UHRyVHlwZT4obV9idWZmZXJbbV9pbmRleF0pOyB9CisgICAg
ICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0IHsgQVNTRVJU
KG1fYnVmZmVyID09IG90aGVyLm1fYnVmZmVyKTsgcmV0dXJuIG1faW5kZXggPT0gb3RoZXIubV9p
bmRleDsgfQorICAgICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBj
b25zdCB7IEFTU0VSVChtX2J1ZmZlciA9PSBvdGhlci5tX2J1ZmZlcik7IHJldHVybiAhKCp0aGlz
ID09IG90aGVyKTsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VT4gZnJpZW5kIGNsYXNzIFdURjo6U21hbGxQdHJTZXQ7CisgICAgICAgIHVuc2lnbmVkIG1faW5k
ZXg7CisgICAgICAgIHVuc2lnbmVkIG1fY2FwYWNpdHk7CisgICAgICAgIHZvaWQqKiBtX2J1ZmZl
cjsKKyAgICB9OworCisgICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdAorICAgIHsKKyAgICAgICAg
aXRlcmF0b3IgaXQ7CisgICAgICAgIGl0Lm1faW5kZXggPSAtMTsKKyAgICAgICAgaXQubV9jYXBh
Y2l0eSA9IG1fY2FwYWNpdHk7CisgICAgICAgIGlmIChpc1NtYWxsKCkpCisgICAgICAgICAgICBp
dC5tX2J1ZmZlciA9IGJpdHdpc2VfY2FzdDx2b2lkKio+KG1fc21hbGxTdG9yYWdlKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgaXQubV9idWZmZXIgPSBtX2J1ZmZlcjsKKworICAgICAgICAr
K2l0OworCisgICAgICAgIHJldHVybiBpdDsKKyAgICB9CisKKyAgICBpdGVyYXRvciBlbmQoKSBj
b25zdAorICAgIHsKKyAgICAgICAgaXRlcmF0b3IgaXQ7CisgICAgICAgIGl0Lm1faW5kZXggPSBt
X2NhcGFjaXR5OworICAgICAgICBpdC5tX2NhcGFjaXR5ID0gbV9jYXBhY2l0eTsKKyAgICAgICAg
aWYgKGlzU21hbGwoKSkKKyAgICAgICAgICAgIGl0Lm1fYnVmZmVyID0gYml0d2lzZV9jYXN0PHZv
aWQqKj4obV9zbWFsbFN0b3JhZ2UpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpdC5tX2J1
ZmZlciA9IG1fYnVmZmVyOworCisgICAgICAgIHJldHVybiBpdDsKKyAgICB9CisKKyAgICBpbmxp
bmUgdW5zaWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCitwcml2YXRlOgor
CisgICAgY29uc3RleHByIHN0YXRpYyB2b2lkKiBlbXB0eVZhbHVlKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludHB0cl90
Pjo6bWF4KCkpOworICAgIH0KKworICAgIGJvb2wgaXNWYWxpZEVudHJ5KGNvbnN0IFB0clR5cGUg
cHRyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHB0ciAhPSBlbXB0eVZhbHVlKCk7Cisg
ICAgfQorCisgICAgaW5saW5lIGJvb2wgaXNTbWFsbCgpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gbV9jYXBhY2l0eSA9PSBTbWFsbEFycmF5U2l6ZTsKKyAgICB9CisKKyAgICBpbmxpbmUg
dm9pZCBpbml0aWFsaXplKCkKKyAgICB7CisgICAgICAgIG1fc2l6ZSA9IDA7CisgICAgICAgIG1f
YnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgbV9jYXBhY2l0eSA9IFNtYWxsQXJyYXlTaXplOwor
ICAgICAgICBtZW1zZXQobV9zbWFsbFN0b3JhZ2UsIC0xLCBzaXplb2Yodm9pZCopICogU21hbGxB
cnJheVNpemUpOworICAgICAgICBBU1NFUlQoaXNTbWFsbCgpKTsKKyAgICB9CisKKyAgICBpbmxp
bmUgdm9pZCBncm93KHVuc2lnbmVkIHNpemUpCisgICAgeworICAgICAgICBBU1NFUlQoc3RhdGlj
X2Nhc3Q8aW50MzJfdD4oYml0d2lzZV9jYXN0PGludHB0cl90PihlbXB0eVZhbHVlKCkpKSA9PSAt
MSk7CisgICAgICAgIHNpemVfdCBhbGxvY2F0aW9uU2l6ZSA9IHNpemVvZih2b2lkKikgKiBzaXpl
OworCisgICAgICAgIGJvb2wgd2FzU21hbGwgPSBpc1NtYWxsKCk7CisgICAgICAgIHZvaWQqKiBv
bGRCdWZmZXIgPSB3YXNTbWFsbCA/IG1fc21hbGxTdG9yYWdlIDogbV9idWZmZXI7CisgICAgICAg
IHVuc2lnbmVkIG9sZENhcGFjaXR5ID0gbV9jYXBhY2l0eTsKKyAgICAgICAgbV9idWZmZXIgPSBz
dGF0aWNfY2FzdDx2b2lkKio+KGZhc3RNYWxsb2MoYWxsb2NhdGlvblNpemUpKTsKKyAgICAgICAg
bWVtc2V0KG1fYnVmZmVyLCAtMSwgYWxsb2NhdGlvblNpemUpOworICAgICAgICBtX2NhcGFjaXR5
ID0gc2l6ZTsKKworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgb2xkQ2FwYWNpdHk7
IGkrKykgeworICAgICAgICAgICAgaWYgKG9sZEJ1ZmZlcltpXSAhPSBlbXB0eVZhbHVlKCkpIHsK
KyAgICAgICAgICAgICAgICB2b2lkKiogcHRyID0gdGhpcy0+YnVja2V0KHN0YXRpY19jYXN0PFB0
clR5cGU+KG9sZEJ1ZmZlcltpXSkpOworICAgICAgICAgICAgICAgICpwdHIgPSBvbGRCdWZmZXJb
aV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXdhc1NtYWxsKQor
ICAgICAgICAgICAgZmFzdEZyZWUob2xkQnVmZmVyKTsKKyAgICB9CisKKworICAgIGlubGluZSB2
b2lkKiogYnVja2V0KFB0clR5cGUgdGFyZ2V0KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJU
KCEobV9jYXBhY2l0eSAmIChtX2NhcGFjaXR5IC0gMSkpKTsKKyAgICAgICAgdW5zaWduZWQgYnVj
a2V0ID0gUHRySGFzaEJhc2U8UHRyVHlwZSwgZmFsc2UgLyogaXNTbWFydFB0ciAqLz46Omhhc2go
dGFyZ2V0KSAmIChtX2NhcGFjaXR5IC0gMSk7CisgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gMDsK
KyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHZvaWQqKiBwdHIgPSBtX2J1ZmZl
ciArIGJ1Y2tldDsKKyAgICAgICAgICAgIGlmICgqcHRyID09IGVtcHR5VmFsdWUoKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gcHRyOworICAgICAgICAgICAgaWYgKCpwdHIgPT0gdGFyZ2V0KQor
ICAgICAgICAgICAgICAgIHJldHVybiBwdHI7CisgICAgICAgICAgICBpbmRleCsrOworICAgICAg
ICAgICAgYnVja2V0ID0gKGJ1Y2tldCArIGluZGV4KSAmIChtX2NhcGFjaXR5IC0gMSk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU21hbGxBcnJheVNpemUg
PSA4OworICAgICAKKyAgICB1bnNpZ25lZCBtX3NpemU7CisgICAgdW5zaWduZWQgbV9jYXBhY2l0
eTsKKyAgICB2b2lkKiogbV9idWZmZXI7CisgICAgdm9pZCogbV9zbWFsbFN0b3JhZ2VbU21hbGxB
cnJheVNpemVdOworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6U21hbGxQ
dHJTZXQ7CisKKyNlbmRpZiAvLyBTbWFsbFB0clNldF9oCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9W
ZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAkocmV2aXNpb24g
MTk4MzYwKQorKysgU291cmNlL1dURi93dGYvVmVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTcy
NSw2ICs3MjUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFwcGVuZChWYWx1ZVR5cGUmJiB2YWx1
ZSkgeyBhcHBlbmQ8VmFsdWVUeXBlPihzdGQ6OmZvcndhcmQ8VmFsdWVUeXBlPih2YWx1ZSkpOyB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9pZCBhcHBlbmQoVSYmKTsKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBBcmdzPiB2b2lkIGNvbnN0cnVjdEFuZEFwcGVuZChBcmdzJiYuLi4pOwog
CiAgICAgdm9pZCB1bmNoZWNrZWRBcHBlbmQoVmFsdWVUeXBlJiYgdmFsdWUpIHsgdW5jaGVja2Vk
QXBwZW5kPFZhbHVlVHlwZT4oc3RkOjpmb3J3YXJkPFZhbHVlVHlwZT4odmFsdWUpKTsgfQogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgdW5jaGVja2VkQXBwZW5kKFUmJik7CkBAIC03ODcs
NiArNzg4LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBUKiB0cnlFeHBhbmRDYXBhY2l0eShzaXpl
X3QgbmV3TWluQ2FwYWNpdHksIGNvbnN0IFQqKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBV
KiBleHBhbmRDYXBhY2l0eShzaXplX3QgbmV3TWluQ2FwYWNpdHksIFUqKTsgCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVT4gdm9pZCBhcHBlbmRTbG93Q2FzZShVJiYpOworICAgIHRlbXBsYXRlPHR5
cGVuYW1lLi4uIEFyZ3M+IHZvaWQgY29uc3RydWN0QW5kQXBwZW5kU2xvd0Nhc2UoQXJncyYmLi4u
KTsKIAogICAgIHZvaWQgYXNhblNldEluaXRpYWxCdWZmZXJTaXplVG8oc2l6ZV90KTsKICAgICB2
b2lkIGFzYW5TZXRCdWZmZXJTaXplVG9GdWxsQ2FwYWNpdHkoKTsKQEAgLTEyMTQsNiArMTIxNiwx
OSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjCiAgICAgYXBwZW5k
U2xvd0Nhc2Uoc3RkOjpmb3J3YXJkPFU+KHZhbHVlKSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1l
IFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXpl
X3QgbWluQ2FwYWNpdHk+IHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+CitBTFdBWVNfSU5MSU5F
IHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFj
aXR5Pjo6Y29uc3RydWN0QW5kQXBwZW5kKEFyZ3MmJi4uLiBhcmdzKQoreworICAgIGlmIChzaXpl
KCkgIT0gY2FwYWNpdHkoKSkgeworICAgICAgICBhc2FuQnVmZmVyU2l6ZVdpbGxDaGFuZ2VUbyht
X3NpemUgKyAxKTsKKyAgICAgICAgbmV3IChOb3ROdWxsLCBlbmQoKSkgVChzdGQ6OmZvcndhcmQ8
QXJncz4oYXJncykuLi4pOworICAgICAgICArK21fc2l6ZTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGNvbnN0cnVjdEFuZEFwcGVuZFNsb3dDYXNlKHN0ZDo6Zm9yd2FyZDxBcmdzPihh
cmdzKS4uLik7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0
eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluQ2FwYWNpdHk+IHRlbXBsYXRl
PHR5cGVuYW1lIFU+CiB2b2lkIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5k
bGVyLCBtaW5DYXBhY2l0eT46OmFwcGVuZFNsb3dDYXNlKFUmJiB2YWx1ZSkKIHsKQEAgLTEyMjgs
NiArMTI0MywxOSBAQCB2b2lkIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dICiAg
ICAgKyttX3NpemU7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBh
Y2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluQ2FwYWNpdHk+IHRlbXBs
YXRlPHR5cGVuYW1lLi4uIEFyZ3M+Cit2b2lkIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3Zl
cmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT46OmNvbnN0cnVjdEFuZEFwcGVuZFNsb3dDYXNlKEFy
Z3MmJi4uLiBhcmdzKQoreworICAgIEFTU0VSVChzaXplKCkgPT0gY2FwYWNpdHkoKSk7CisKKyAg
ICBleHBhbmRDYXBhY2l0eShzaXplKCkgKyAxKTsKKyAgICBBU1NFUlQoYmVnaW4oKSk7CisKKyAg
ICBhc2FuQnVmZmVyU2l6ZVdpbGxDaGFuZ2VUbyhtX3NpemUgKyAxKTsKKyAgICBuZXcgKE5vdE51
bGwsIGVuZCgpKSBUKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgKyttX3NpemU7
Cit9CisKIC8vIFRoaXMgdmVyc2lvbiBvZiBhcHBlbmQgc2F2ZXMgYSBicmFuY2ggaW4gdGhlIGNh
c2Ugd2hlcmUgeW91IGtub3cgdGhhdCB0aGUKIC8vIHZlY3RvcidzIGNhcGFjaXR5IGlzIGxhcmdl
IGVub3VnaCBmb3IgdGhlIGFwcGVuZCB0byBzdWNjZWVkLgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274345</attachid>
            <date>2016-03-17 17:37:52 -0700</date>
            <delta_ts>2016-03-17 17:42:15 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>29528</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4MzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE2LTAzLTE3ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBTbWFsbFB0clNldCBhbmQgaW50ZWdyYXRlIGl0IGludG8gdGhlIFBhcnNlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NTUyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNpbmcgU21h
bGxQdHJTZXQgaW5zdGVhZCBvZiBIYXNoU2V0IHJlYWxseSBoZWxwcyBzcGVlZAorICAgICAgICB1
cCB0aGUgcGFyc2VyLiBXaGF0IHNhdmVzIHVzIG1vc3QgaXMgbm90IG5lZWRpbmcgdG8gYWx3YXlz
CisgICAgICAgIG1hbGxvYy9mcmVlIG1lbW9yeSBpbiB0aGUgSGFzaFNldC4KKworICAgICAgICAq
IHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFy
c2VJbm5lcik6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5oOgorICAgICAgICAoSlNDOjpTY29w
ZTo6U2NvcGUpOgorICAgICAgICAoSlNDOjpTY29wZTo6c3RhcnRTd2l0Y2gpOgorICAgICAgICAo
SlNDOjpTY29wZTo6aGFzRGVjbGFyZWRQYXJhbWV0ZXIpOgorICAgICAgICAoSlNDOjpTY29wZTo6
ZGVjbGFyZVdyaXRlKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmRlY2xhcmVQYXJhbWV0ZXIpOgor
ICAgICAgICAoSlNDOjpTY29wZTo6dXNlZFZhcmlhYmxlc0NvbnRhaW5zKToKKyAgICAgICAgKEpT
Qzo6U2NvcGU6OnVzZVZhcmlhYmxlKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmNvbGxlY3RGcmVl
VmFyaWFibGVzKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmdldENhcHR1cmVkVmFycyk6CisgICAg
ICAgIChKU0M6OlNjb3BlOjppc1ZhbGlkU3RyaWN0TW9kZSk6CisgICAgICAgIChKU0M6OlNjb3Bl
OjpzaGFkb3dzQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmNvcHlDYXB0dXJlZFZh
cmlhYmxlc1RvVmVjdG9yKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OnNldElzTW9kdWxlKToKKyAg
ICAgICAgKEpTQzo6UGFyc2VyOjpwdXNoU2NvcGUpOgorICAgICAgICAoSlNDOjpTY29wZTo6Z2V0
VXNlZFZhcmlhYmxlcyk6IERlbGV0ZWQuCisKIDIwMTYtMDMtMTcgIFNhYW0gYmFyYXRpICA8c2Jh
cmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0VTNl0gTWFrZSBHZXRQcm9wZXJ0eSguKSBpbnNp
ZGUgQXJyYXlQcm90b3R5cGUuY3BwIHNwZWMgY29tcGF0aWJsZS4KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzExLDEw
ICszMTEsOCBAQCBTdHJpbmcgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlSW5uZXIoY29uCiAgICAg
Zm9yIChhdXRvJiBlbnRyeSA6IGNhcHR1cmVkVmFyaWFibGVzKQogICAgICAgICB2YXJEZWNsYXJh
dGlvbnMubWFya1ZhcmlhYmxlQXNDYXB0dXJlZChlbnRyeSk7CiAKLSAgICBJZGVudGlmaWVyU2V0
IHVzZWRWYXJpYWJsZXM7Ci0gICAgc2NvcGUtPmdldFVzZWRWYXJpYWJsZXModXNlZFZhcmlhYmxl
cyk7CiAgICAgaWYgKHBhcnNlTW9kZSA9PSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBw
ZXJGdW5jdGlvbk1vZGUpIHsKLSAgICAgICAgaWYgKHVzZWRWYXJpYWJsZXMuY29udGFpbnMobV92
bS0+cHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLmltcGwoKSkpCisgICAgICAgIGlmIChzY29wZS0+
dXNlZFZhcmlhYmxlc0NvbnRhaW5zKG1fdm0tPnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cy5pbXBs
KCkpKQogICAgICAgICAgICAgY29udGV4dC5wcm9wYWdhdGVBcmd1bWVudHNVc2UoKTsKICAgICB9
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAkocmV2aXNpb24gMTk4
MzYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNDAsMTMgKzQwLDE1IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1NtYWxsUHRyU2V0Lmg+CisKIG5hbWVzcGFjZSBKU0Mgewogc3RydWN0IFNjb3BlOwog
fQogCiBuYW1lc3BhY2UgV1RGIHsKLXRlbXBsYXRlIDw+IHN0cnVjdCBWZWN0b3JUcmFpdHM8SlND
OjpTY29wZT4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7Ci0gICAgc3RhdGljIGNvbnN0IGJv
b2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSBmYWxzZTsgLy8gTm90IGFsbCBTY29wZSBkYXRh
IG1lbWJlcnMgaW5pdGlhbGl6ZSB0byAwLgordGVtcGxhdGUgPD4gc3RydWN0IFZlY3RvclRyYWl0
czxKU0M6OlNjb3BlPiA6IFZlY3RvclRyYWl0c0Jhc2U8LyogaXMgcG9kICovIGZhbHNlLCB2b2lk
PiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuTW92ZVdpdGhNZW1jcHkgPSB0cnVlOwogfTsK
IH0KIApAQCAtNjAsNiArNjIsOCBAQCBjbGFzcyBWTTsKIGNsYXNzIFByb2dyYW1Ob2RlOwogY2xh
c3MgU291cmNlQ29kZTsKIAordHlwZWRlZiBTbWFsbFB0clNldDxVbmlxdWVkU3RyaW5nSW1wbCo+
IFVuaXF1ZWRTdHJpbmdJbXBsUHRyU2V0OworCiAvLyBNYWNyb3MgdG8gbWFrZSB0aGUgbW9yZSBj
b21tb24gVHJlZUJ1aWxkZXIgdHlwZXMgYSBsaXR0bGUgbGVzcyB2ZXJib3NlCiAjZGVmaW5lIFRy
ZWVTdGF0ZW1lbnQgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlN0YXRlbWVudAogI2RlZmluZSBUcmVl
RXhwcmVzc2lvbiB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6RXhwcmVzc2lvbgpAQCAtMTU4LDYgKzE2
Miw4IEBAIHByaXZhdGU6CiB9OwogCiBzdHJ1Y3QgU2NvcGUgeworV1RGX01BS0VfTk9OQ09QWUFC
TEUoU2NvcGUpOworICAgIHB1YmxpYzoKICAgICBTY29wZShjb25zdCBWTSogdm0sIGJvb2wgaXNG
dW5jdGlvbiwgYm9vbCBpc0dlbmVyYXRvciwgYm9vbCBzdHJpY3RNb2RlLCBib29sIGlzQXJyb3dG
dW5jdGlvbikKICAgICAgICAgOiBtX3ZtKHZtKQogICAgICAgICAsIG1fc2hhZG93c0FyZ3VtZW50
cyhmYWxzZSkKQEAgLTE4Niw0MyArMTkyLDYgQEAgc3RydWN0IFNjb3BlIHsKICAgICB7CiAgICAg
fQogCi0gICAgU2NvcGUoY29uc3QgU2NvcGUmIHJocykKLSAgICAgICAgOiBtX3ZtKHJocy5tX3Zt
KQotICAgICAgICAsIG1fc2hhZG93c0FyZ3VtZW50cyhyaHMubV9zaGFkb3dzQXJndW1lbnRzKQot
ICAgICAgICAsIG1fdXNlc0V2YWwocmhzLm1fdXNlc0V2YWwpCi0gICAgICAgICwgbV9uZWVkc0Z1
bGxBY3RpdmF0aW9uKHJocy5tX25lZWRzRnVsbEFjdGl2YXRpb24pCi0gICAgICAgICwgbV9oYXNE
aXJlY3RTdXBlcihyaHMubV9oYXNEaXJlY3RTdXBlcikKLSAgICAgICAgLCBtX25lZWRzU3VwZXJC
aW5kaW5nKHJocy5tX25lZWRzU3VwZXJCaW5kaW5nKQotICAgICAgICAsIG1fYWxsb3dzVmFyRGVj
bGFyYXRpb25zKHJocy5tX2FsbG93c1ZhckRlY2xhcmF0aW9ucykKLSAgICAgICAgLCBtX2FsbG93
c0xleGljYWxEZWNsYXJhdGlvbnMocmhzLm1fYWxsb3dzTGV4aWNhbERlY2xhcmF0aW9ucykKLSAg
ICAgICAgLCBtX3N0cmljdE1vZGUocmhzLm1fc3RyaWN0TW9kZSkKLSAgICAgICAgLCBtX2lzRnVu
Y3Rpb24ocmhzLm1faXNGdW5jdGlvbikKLSAgICAgICAgLCBtX2lzR2VuZXJhdG9yKHJocy5tX2lz
R2VuZXJhdG9yKQotICAgICAgICAsIG1faXNHZW5lcmF0b3JCb3VuZGFyeShyaHMubV9pc0dlbmVy
YXRvckJvdW5kYXJ5KQotICAgICAgICAsIG1faXNBcnJvd0Z1bmN0aW9uKHJocy5tX2lzQXJyb3dG
dW5jdGlvbikKLSAgICAgICAgLCBtX2lzQXJyb3dGdW5jdGlvbkJvdW5kYXJ5KHJocy5tX2lzQXJy
b3dGdW5jdGlvbkJvdW5kYXJ5KQotICAgICAgICAsIG1faXNMZXhpY2FsU2NvcGUocmhzLm1faXNM
ZXhpY2FsU2NvcGUpCi0gICAgICAgICwgbV9pc0Z1bmN0aW9uQm91bmRhcnkocmhzLm1faXNGdW5j
dGlvbkJvdW5kYXJ5KQotICAgICAgICAsIG1faXNWYWxpZFN0cmljdE1vZGUocmhzLm1faXNWYWxp
ZFN0cmljdE1vZGUpCi0gICAgICAgICwgbV9oYXNBcmd1bWVudHMocmhzLm1faGFzQXJndW1lbnRz
KQotICAgICAgICAsIG1faXNFdmFsQ29udGV4dChyaHMubV9pc0V2YWxDb250ZXh0KQotICAgICAg
ICAsIG1fY29uc3RydWN0b3JLaW5kKHJocy5tX2NvbnN0cnVjdG9yS2luZCkKLSAgICAgICAgLCBt
X2V4cGVjdGVkU3VwZXJCaW5kaW5nKHJocy5tX2V4cGVjdGVkU3VwZXJCaW5kaW5nKQotICAgICAg
ICAsIG1fbG9vcERlcHRoKHJocy5tX2xvb3BEZXB0aCkKLSAgICAgICAgLCBtX3N3aXRjaERlcHRo
KHJocy5tX3N3aXRjaERlcHRoKQotICAgICAgICAsIG1faW5uZXJBcnJvd0Z1bmN0aW9uRmVhdHVy
ZXMocmhzLm1faW5uZXJBcnJvd0Z1bmN0aW9uRmVhdHVyZXMpCi0gICAgICAgICwgbV9tb2R1bGVT
Y29wZURhdGEocmhzLm1fbW9kdWxlU2NvcGVEYXRhKQotICAgIHsKLSAgICAgICAgaWYgKHJocy5t
X2xhYmVscykgewotICAgICAgICAgICAgbV9sYWJlbHMgPSBzdGQ6Om1ha2VfdW5pcXVlPExhYmVs
U3RhY2s+KCk7Ci0KLSAgICAgICAgICAgIHR5cGVkZWYgTGFiZWxTdGFjazo6Y29uc3RfaXRlcmF0
b3IgaXRlcmF0b3I7Ci0gICAgICAgICAgICBpdGVyYXRvciBlbmQgPSByaHMubV9sYWJlbHMtPmVu
ZCgpOwotICAgICAgICAgICAgZm9yIChpdGVyYXRvciBpdCA9IHJocy5tX2xhYmVscy0+YmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICAgICAgICAgIG1fbGFiZWxzLT5hcHBlbmQoU2Nv
cGVMYWJlbEluZm8geyBpdC0+dWlkLCBpdC0+aXNMb29wIH0pOwotICAgICAgICB9Ci0gICAgfQot
CiAgICAgdm9pZCBzdGFydFN3aXRjaCgpIHsgbV9zd2l0Y2hEZXB0aCsrOyB9CiAgICAgdm9pZCBl
bmRTd2l0Y2goKSB7IG1fc3dpdGNoRGVwdGgtLTsgfQogICAgIHZvaWQgc3RhcnRMb29wKCkgeyBt
X2xvb3BEZXB0aCsrOyB9CkBAIC00NTQsNyArNDIzLDcgQEAgc3RydWN0IFNjb3BlIHsKIAogICAg
IGJvb2wgaGFzRGVjbGFyZWRQYXJhbWV0ZXIoY29uc3QgUmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBs
PiYgaWRlbnQpCiAgICAgewotICAgICAgICByZXR1cm4gbV9kZWNsYXJlZFBhcmFtZXRlcnMuY29u
dGFpbnMoaWRlbnQpIHx8IGhhc0RlY2xhcmVkVmFyaWFibGUoaWRlbnQpOworICAgICAgICByZXR1
cm4gbV9kZWNsYXJlZFBhcmFtZXRlcnMuY29udGFpbnMoaWRlbnQuZ2V0KCkpIHx8IGhhc0RlY2xh
cmVkVmFyaWFibGUoaWRlbnQpOwogICAgIH0KICAgICAKICAgICB2b2lkIGRlY2xhcmVXcml0ZShj
b25zdCBJZGVudGlmaWVyKiBpZGVudCkKQEAgLTQ5MiwxMSArNDYxLDcgQEAgc3RydWN0IFNjb3Bl
IHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgdm9pZCBnZXRVc2Vk
VmFyaWFibGVzKElkZW50aWZpZXJTZXQmIHVzZWRWYXJpYWJsZXMpCi0gICAgewotICAgICAgICB1
c2VkVmFyaWFibGVzLnN3YXAobV91c2VkVmFyaWFibGVzKTsKLSAgICB9Ci0KKyAgICBib29sIHVz
ZWRWYXJpYWJsZXNDb250YWlucyhVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCkgeyByZXR1cm4gbV91
c2VkVmFyaWFibGVzLmNvbnRhaW5zKGltcGwpOyB9CiAgICAgdm9pZCB1c2VWYXJpYWJsZShjb25z
dCBJZGVudGlmaWVyKiBpZGVudCwgYm9vbCBpc0V2YWwpCiAgICAgewogICAgICAgICBtX3VzZXNF
dmFsIHw9IGlzRXZhbDsKQEAgLTU0OCw3ICs1MTMsNyBAQCBzdHJ1Y3QgU2NvcGUgewogICAgICAg
ICAgICAgbV91c2VzRXZhbCA9IHRydWU7CiAKICAgICAgICAgewotICAgICAgICAgICAgZm9yIChj
b25zdCBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+JiBpbXBsIDogbmVzdGVkU2NvcGUtPm1fdXNl
ZFZhcmlhYmxlcykgeworICAgICAgICAgICAgZm9yIChVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCA6
IG5lc3RlZFNjb3BlLT5tX3VzZWRWYXJpYWJsZXMpIHsKICAgICAgICAgICAgICAgICBpZiAobmVz
dGVkU2NvcGUtPm1fZGVjbGFyZWRWYXJpYWJsZXMuY29udGFpbnMoaW1wbCkgfHwgbmVzdGVkU2Nv
cGUtPm1fbGV4aWNhbFZhcmlhYmxlcy5jb250YWlucyhpbXBsKSkKICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAKQEAgLTU3MywxMSArNTM4LDEwIEBAIHN0cnVjdCBTY29wZSB7CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAobmVzdGVkU2NvcGUtPm1fd3JpdHRlblZhcmlhYmxlcy5zaXpl
KCkpIHsKLSAgICAgICAgICAgIElkZW50aWZpZXJTZXQ6Oml0ZXJhdG9yIGVuZCA9IG5lc3RlZFNj
b3BlLT5tX3dyaXR0ZW5WYXJpYWJsZXMuZW5kKCk7Ci0gICAgICAgICAgICBmb3IgKElkZW50aWZp
ZXJTZXQ6Oml0ZXJhdG9yIHB0ciA9IG5lc3RlZFNjb3BlLT5tX3dyaXR0ZW5WYXJpYWJsZXMuYmVn
aW4oKTsgcHRyICE9IGVuZDsgKytwdHIpIHsKLSAgICAgICAgICAgICAgICBpZiAobmVzdGVkU2Nv
cGUtPm1fZGVjbGFyZWRWYXJpYWJsZXMuY29udGFpbnMoKnB0cikgfHwgbmVzdGVkU2NvcGUtPm1f
bGV4aWNhbFZhcmlhYmxlcy5jb250YWlucygqcHRyKSkKKyAgICAgICAgICAgIGZvciAoVW5pcXVl
ZFN0cmluZ0ltcGwqIGltcGwgOiBuZXN0ZWRTY29wZS0+bV93cml0dGVuVmFyaWFibGVzKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKG5lc3RlZFNjb3BlLT5tX2RlY2xhcmVkVmFyaWFibGVzLmNvbnRh
aW5zKGltcGwpIHx8IG5lc3RlZFNjb3BlLT5tX2xleGljYWxWYXJpYWJsZXMuY29udGFpbnMoaW1w
bCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIG1fd3Jp
dHRlblZhcmlhYmxlcy5hZGQoKnB0cik7CisgICAgICAgICAgICAgICAgbV93cml0dGVuVmFyaWFi
bGVzLmFkZChpbXBsKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTYwNSwx
MSArNTY5LDEwIEBAIHN0cnVjdCBTY29wZSB7CiAgICAgICAgIGlmIChzaGFkb3dzQXJndW1lbnRz
KCkpCiAgICAgICAgICAgICBtb2RpZmllZEFyZ3VtZW50cyA9IHRydWU7CiAgICAgICAgIGlmICht
X2RlY2xhcmVkUGFyYW1ldGVycy5zaXplKCkpIHsKLSAgICAgICAgICAgIElkZW50aWZpZXJTZXQ6
Oml0ZXJhdG9yIGVuZCA9IG1fd3JpdHRlblZhcmlhYmxlcy5lbmQoKTsKLSAgICAgICAgICAgIGZv
ciAoSWRlbnRpZmllclNldDo6aXRlcmF0b3IgcHRyID0gbV93cml0dGVuVmFyaWFibGVzLmJlZ2lu
KCk7IHB0ciAhPSBlbmQ7ICsrcHRyKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCpwdHIgPT0gbV92
bS0+cHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLmltcGwoKSkKKyAgICAgICAgICAgIGZvciAoVW5p
cXVlZFN0cmluZ0ltcGwqIGltcGwgOiBtX3dyaXR0ZW5WYXJpYWJsZXMpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoaW1wbCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMuaW1wbCgpKQog
ICAgICAgICAgICAgICAgICAgICBtb2RpZmllZEFyZ3VtZW50cyA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFtX2RlY2xhcmVkUGFyYW1ldGVycy5jb250YWlucygqcHRyKSkKKyAgICAgICAg
ICAgICAgICBpZiAoIW1fZGVjbGFyZWRQYXJhbWV0ZXJzLmNvbnRhaW5zKGltcGwpKQogICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBtb2RpZmllZFBhcmFtZXRl
ciA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC02MjEsMTMgKzU4NCwxMiBAQCBz
dHJ1Y3QgU2NvcGUgewogICAgIGJvb2wgaXNWYWxpZFN0cmljdE1vZGUoKSBjb25zdCB7IHJldHVy
biBtX2lzVmFsaWRTdHJpY3RNb2RlOyB9CiAgICAgYm9vbCBzaGFkb3dzQXJndW1lbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9zaGFkb3dzQXJndW1lbnRzOyB9CiAKLSAgICB2b2lkIGNvcHlDYXB0dXJl
ZFZhcmlhYmxlc1RvVmVjdG9yKGNvbnN0IElkZW50aWZpZXJTZXQmIGNhcHR1cmVkVmFyaWFibGVz
LCBWZWN0b3I8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPj4mIHZlY3RvcikKKyAgICB2b2lkIGNv
cHlDYXB0dXJlZFZhcmlhYmxlc1RvVmVjdG9yKGNvbnN0IFVuaXF1ZWRTdHJpbmdJbXBsUHRyU2V0
JiBjYXB0dXJlZFZhcmlhYmxlcywgVmVjdG9yPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4+JiB2
ZWN0b3IpCiAgICAgewotICAgICAgICBJZGVudGlmaWVyU2V0OjppdGVyYXRvciBlbmQgPSBjYXB0
dXJlZFZhcmlhYmxlcy5lbmQoKTsKLSAgICAgICAgZm9yIChJZGVudGlmaWVyU2V0OjppdGVyYXRv
ciBpdCA9IGNhcHR1cmVkVmFyaWFibGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAg
ICAgICAgICAgaWYgKG1fZGVjbGFyZWRWYXJpYWJsZXMuY29udGFpbnMoKml0KSB8fCBtX2xleGlj
YWxWYXJpYWJsZXMuY29udGFpbnMoKml0KSkKKyAgICAgICAgZm9yIChVbmlxdWVkU3RyaW5nSW1w
bCogaW1wbCA6IGNhcHR1cmVkVmFyaWFibGVzKSB7CisgICAgICAgICAgICBpZiAobV9kZWNsYXJl
ZFZhcmlhYmxlcy5jb250YWlucyhpbXBsKSB8fCBtX2xleGljYWxWYXJpYWJsZXMuY29udGFpbnMo
aW1wbCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB2ZWN0b3IuYXBw
ZW5kKCppdCk7CisgICAgICAgICAgICB2ZWN0b3IuYXBwZW5kKGltcGwpOwogICAgICAgICB9CiAg
ICAgfQogCkBAIC02OTQsNDAgKzY1Niw0MyBAQCBwcml2YXRlOgogICAgICAgICBtX21vZHVsZVNj
b3BlRGF0YSA9IE1vZHVsZVNjb3BlRGF0YTo6Y3JlYXRlKCk7CiAgICAgfQogCisgICAgLy8gQWxs
IHRoZSBmaWVsZHMgaW4gU2NvcGUgbXVzdCBiZSBhYmxlIHRvIHVzZSBtZW1jcHkgYXMgdGhlaXIK
KyAgICAvLyBtb3ZlIG9wZXJhdGlvbiBJZiB5b3UgYWRkIGEgZmllbGQgdGhhdCB2aW9sYXRlcyB0
aGlzLCBtYWtlIHN1cmUKKyAgICAvLyB0byByZW1vdmUgdGhpcyBjb21tZW50IGFuZCB1cGRhdGUg
V1RGOjpWZWN0b3JUcmFpdHM8SlNDOjpTY29wZT4uIAogICAgIGNvbnN0IFZNKiBtX3ZtOwotICAg
IGJvb2wgbV9zaGFkb3dzQXJndW1lbnRzIDogMTsKLSAgICBib29sIG1fdXNlc0V2YWwgOiAxOwot
ICAgIGJvb2wgbV9uZWVkc0Z1bGxBY3RpdmF0aW9uIDogMTsKLSAgICBib29sIG1faGFzRGlyZWN0
U3VwZXIgOiAxOwotICAgIGJvb2wgbV9uZWVkc1N1cGVyQmluZGluZyA6IDE7Ci0gICAgYm9vbCBt
X2FsbG93c1ZhckRlY2xhcmF0aW9ucyA6IDE7Ci0gICAgYm9vbCBtX2FsbG93c0xleGljYWxEZWNs
YXJhdGlvbnMgOiAxOwotICAgIGJvb2wgbV9zdHJpY3RNb2RlIDogMTsKLSAgICBib29sIG1faXNG
dW5jdGlvbiA6IDE7Ci0gICAgYm9vbCBtX2lzR2VuZXJhdG9yIDogMTsKLSAgICBib29sIG1faXNH
ZW5lcmF0b3JCb3VuZGFyeSA6IDE7Ci0gICAgYm9vbCBtX2lzQXJyb3dGdW5jdGlvbiA6IDE7Ci0g
ICAgYm9vbCBtX2lzQXJyb3dGdW5jdGlvbkJvdW5kYXJ5IDogMTsKLSAgICBib29sIG1faXNMZXhp
Y2FsU2NvcGUgOiAxOwotICAgIGJvb2wgbV9pc0Z1bmN0aW9uQm91bmRhcnkgOiAxOwotICAgIGJv
b2wgbV9pc1ZhbGlkU3RyaWN0TW9kZSA6IDE7Ci0gICAgYm9vbCBtX2hhc0FyZ3VtZW50cyA6IDE7
Ci0gICAgYm9vbCBtX2lzRXZhbENvbnRleHQgOiAxOwotICAgIHVuc2lnbmVkIG1fY29uc3RydWN0
b3JLaW5kIDogMjsKLSAgICB1bnNpZ25lZCBtX2V4cGVjdGVkU3VwZXJCaW5kaW5nIDogMjsKKyAg
ICBib29sIG1fc2hhZG93c0FyZ3VtZW50czsKKyAgICBib29sIG1fdXNlc0V2YWw7CisgICAgYm9v
bCBtX25lZWRzRnVsbEFjdGl2YXRpb247CisgICAgYm9vbCBtX2hhc0RpcmVjdFN1cGVyOworICAg
IGJvb2wgbV9uZWVkc1N1cGVyQmluZGluZzsKKyAgICBib29sIG1fYWxsb3dzVmFyRGVjbGFyYXRp
b25zOworICAgIGJvb2wgbV9hbGxvd3NMZXhpY2FsRGVjbGFyYXRpb25zOworICAgIGJvb2wgbV9z
dHJpY3RNb2RlOworICAgIGJvb2wgbV9pc0Z1bmN0aW9uOworICAgIGJvb2wgbV9pc0dlbmVyYXRv
cjsKKyAgICBib29sIG1faXNHZW5lcmF0b3JCb3VuZGFyeTsKKyAgICBib29sIG1faXNBcnJvd0Z1
bmN0aW9uOworICAgIGJvb2wgbV9pc0Fycm93RnVuY3Rpb25Cb3VuZGFyeTsKKyAgICBib29sIG1f
aXNMZXhpY2FsU2NvcGU7CisgICAgYm9vbCBtX2lzRnVuY3Rpb25Cb3VuZGFyeTsKKyAgICBib29s
IG1faXNWYWxpZFN0cmljdE1vZGU7CisgICAgYm9vbCBtX2hhc0FyZ3VtZW50czsKKyAgICBib29s
IG1faXNFdmFsQ29udGV4dDsKKyAgICB1bnNpZ25lZCBtX2NvbnN0cnVjdG9yS2luZDsKKyAgICB1
bnNpZ25lZCBtX2V4cGVjdGVkU3VwZXJCaW5kaW5nOwogICAgIGludCBtX2xvb3BEZXB0aDsKICAg
ICBpbnQgbV9zd2l0Y2hEZXB0aDsKICAgICBJbm5lckFycm93RnVuY3Rpb25Db2RlRmVhdHVyZXMg
bV9pbm5lckFycm93RnVuY3Rpb25GZWF0dXJlczsKIAogICAgIHR5cGVkZWYgVmVjdG9yPFNjb3Bl
TGFiZWxJbmZvLCAyPiBMYWJlbFN0YWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYWJlbFN0YWNr
PiBtX2xhYmVsczsKLSAgICBJZGVudGlmaWVyU2V0IG1fZGVjbGFyZWRQYXJhbWV0ZXJzOworICAg
IFVuaXF1ZWRTdHJpbmdJbXBsUHRyU2V0IG1fZGVjbGFyZWRQYXJhbWV0ZXJzOwogICAgIFZhcmlh
YmxlRW52aXJvbm1lbnQgbV9kZWNsYXJlZFZhcmlhYmxlczsKICAgICBWYXJpYWJsZUVudmlyb25t
ZW50IG1fbGV4aWNhbFZhcmlhYmxlczsKLSAgICBJZGVudGlmaWVyU2V0IG1fdXNlZFZhcmlhYmxl
czsKKyAgICBVbmlxdWVkU3RyaW5nSW1wbFB0clNldCBtX3VzZWRWYXJpYWJsZXM7CiAgICAgSWRl
bnRpZmllclNldCBtX2Nsb3NlZFZhcmlhYmxlQ2FuZGlkYXRlczsKLSAgICBJZGVudGlmaWVyU2V0
IG1fd3JpdHRlblZhcmlhYmxlczsKLSAgICBSZWZQdHI8TW9kdWxlU2NvcGVEYXRhPiBtX21vZHVs
ZVNjb3BlRGF0YSB7IH07CisgICAgVW5pcXVlZFN0cmluZ0ltcGxQdHJTZXQgbV93cml0dGVuVmFy
aWFibGVzOworICAgIFJlZlB0cjxNb2R1bGVTY29wZURhdGE+IG1fbW9kdWxlU2NvcGVEYXRhOwog
ICAgIERlY2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrIG1fZnVuY3Rpb25EZWNsYXJhdGlv
bnM7CiB9OwogCkBAIC0xMDA0LDcgKzk2OSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBpc0dl
bmVyYXRvciA9IG1fc2NvcGVTdGFjay5sYXN0KCkuaXNHZW5lcmF0b3IoKTsKICAgICAgICAgICAg
IGlzQXJyb3dGdW5jdGlvbiA9IG1fc2NvcGVTdGFjay5sYXN0KCkuaXNBcnJvd0Z1bmN0aW9uKCk7
CiAgICAgICAgIH0KLSAgICAgICAgbV9zY29wZVN0YWNrLmFwcGVuZChTY29wZShtX3ZtLCBpc0Z1
bmN0aW9uLCBpc0dlbmVyYXRvciwgaXNTdHJpY3QsIGlzQXJyb3dGdW5jdGlvbikpOworICAgICAg
ICBtX3Njb3BlU3RhY2suY29uc3RydWN0QW5kQXBwZW5kKG1fdm0sIGlzRnVuY3Rpb24sIGlzR2Vu
ZXJhdG9yLCBpc1N0cmljdCwgaXNBcnJvd0Z1bmN0aW9uKTsKICAgICAgICAgcmV0dXJuIGN1cnJl
bnRTY29wZSgpOwogICAgIH0KIApJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9X
VEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTYtMDMtMTcg
IFNhYW0gYmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFNt
YWxsUHRyU2V0IGFuZCBpbnRlZ3JhdGUgaXQgaW50byB0aGUgUGFyc2VyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU1NTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMg
dGhlIFNtYWxsUHRyU2V0IGRhdGEgc3RydXR1cmUuCisgICAgICAgIEluc3BpcmVkIGJ5IHRoZSBp
bXBsZW1lbnRhdGlvbiBpbiBsbHZtOgorICAgICAgICBodHRwOi8vbGx2bS5vcmcvZG9jcy9kb3h5
Z2VuL2h0bWwvU21hbGxQdHJTZXRfOGhfc291cmNlLmh0bWwKKworICAgICAgICBUaGUgZGF0YSBz
dHJ1Y3R1cmUgdXNlcyBhbiBpbmxpbmUgYXJyYXkgZm9yIHN0b3JhZ2UgdXAgdW50aWwKKyAgICAg
ICAgYSBmaXhlZCBsaW1pdCAoOCBlbnRyaWVzIGluIG91ciBpbXBsZW1lbnRhdGlvbikuIElmIHRo
YXQgc3RvcmFnZQorICAgICAgICBmaWxscyB1cCwgd2UgZmFsbCBiYWNrIHRvIGEgc2ltcGxlIGhh
c2ggdGFibGUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIENydWNpYWxseSwgdGhpcyBpbXBsZW1l
bnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgdGhlIHJlbW92ZQorICAgICAgICBvcGVyYXRpb24uIFRo
aXMgaXMgb24gcHVycG9zZS4gVGhlIGhhc2ggdGFibGUgd2lsbCBvbmx5IGV2ZXIKKyAgICAgICAg
Z3Jvdy4KKworICAgICAgICBBbHNvLCB0aGUgaW1wbGVtZW50YXRpb24gYWxsb3dzIGZvciBpdCB0
byBiZSBtZW1jb3BpZWQgYXJvdW5kLgorICAgICAgICBJLmUsIHdlIGNhbiBwdXQgU21hbGxQdHJT
ZXQgaW5zaWRlIGEgVmVjdG9yIGFuZCBhbGxvdyB0aGF0CisgICAgICAgIFZlY3RvciB0byB1c2Ug
bWVtY3B5IGFzIGl0cyBtb3ZlIG9wZXJhdGlvbiAob2YgY291cnNlIHRoaXMKKyAgICAgICAgaXMg
b25seSB2YWxpZCBpZiB0aGUgU21hbGxQdHJTZXQgaW4gdGhlIG9sZCBtZW1vcnkgZG9lc24ndCBo
YXZlIAorICAgICAgICBpdHMgZGVzdHJ1Y3RvciBjYWxsZWQgdW5sZXNzIGl0IGlzIHNldCBiYWNr
IHRvIGl0cyBpbml0aWFsIHN0YXRlLikKKworICAgICAgICBGb3Igbm93LCBTbWFsbFB0clNldCBv
bmx5IHN1cHBvcnRzIHBvaW50ZXIgdHlwZXMgdGhhdCBhcmUgdHJpdmlhbGx5CisgICAgICAgIGRl
c3RydWN0aWJsZS4gSXQncyBwcm9iYWJseSBub3QgdG9vIGRpZmZpY3VsdCB0byBleHRlbmQgdGhp
cyB0bworICAgICAgICBzbWFydCBwb2ludGVycywgYnV0IGl0J3Mgbm90IHBhcnQgb2YgdGhpcyBv
cmlnaW5hbCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBJJ3ZlIGFsc28gaW1wbGVtZW50ZWQg
YSBwdXJlIGZvcndhcmRpbmcgdmFyYXJncyBjb25zdHJ1Y3RBbmRBcHBlbmQKKyAgICAgICAgbWV0
aG9kIG9uIFZlY3Rvci4gVGhpcyBhbGxvd3MgeW91IHRvIGRvOgorICAgICAgICBWZWN0b3I8VD4g
djsKKyAgICAgICAgdi5jb25zdHJ1Y3RBbmRBcHBlbmQoYTEsIGEyLCAuLi4pCisgICAgICAgIGFz
IGxvbmcgYXMgVCBoYXMgYSBjb25zdHJ1Y3RvciB0aGF0IGFjY2VwdHMgYXJndW1lbnRzIChhMSwg
YTIsIC4uLikuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL1NtYWxsUHRyU2V0Lmg6
IEFkZGVkLgorICAgICAgICAoV1RGOjpTbWFsbFB0clNldDo6U21hbGxQdHJTZXQpOgorICAgICAg
ICAoV1RGOjpTbWFsbFB0clNldDo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdURjo6U21hbGxQdHJT
ZXQ6On5TbWFsbFB0clNldCk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjphZGQpOgorICAg
ICAgICAoV1RGOjpTbWFsbFB0clNldDo6Y29udGFpbnMpOgorICAgICAgICAoV1RGOjpTbWFsbFB0
clNldDo6aXRlcmF0b3I6Om9wZXJhdG9yKyspOgorICAgICAgICAoV1RGOjpTbWFsbFB0clNldDo6
aXRlcmF0b3I6Om9wZXJhdG9yKik6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjppdGVyYXRv
cjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjppdGVyYXRvcjo6b3Bl
cmF0b3IhPSk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjpiZWdpbik6CisgICAgICAgIChX
VEY6OlNtYWxsUHRyU2V0OjplbmQpOgorICAgICAgICAoV1RGOjpTbWFsbFB0clNldDo6c2l6ZSk6
CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjplbXB0eVZhbHVlKToKKyAgICAgICAgKFdURjo6
U21hbGxQdHJTZXQ6OmlzVmFsaWRFbnRyeSk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0Ojpp
c1NtYWxsKToKKyAgICAgICAgKFdURjo6U21hbGxQdHJTZXQ6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV1RGOjpTbWFsbFB0clNldDo6Z3Jvdyk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0Ojpi
dWNrZXQpOgorICAgICAgICAqIHd0Zi9WZWN0b3IuaDoKKyAgICAgICAgKFdURjo6VmVjdG9yOjph
cHBlbmQpOgorICAgICAgICAoV1RGOjpWZWN0b3I6OnVuY2hlY2tlZEFwcGVuZCk6CisgICAgICAg
IChXVEY6Om1pbkNhcGFjaXR5Pjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6bWluQ2FwYWNpdHk+
Ojpjb25zdHJ1Y3RBbmRBcHBlbmQpOgorICAgICAgICAoV1RGOjptaW5DYXBhY2l0eT46OmFwcGVu
ZFNsb3dDYXNlKToKKyAgICAgICAgKFdURjo6bWluQ2FwYWNpdHk+Ojpjb25zdHJ1Y3RBbmRBcHBl
bmRTbG93Q2FzZSk6CisKIDIwMTYtMDMtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBTZXQgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcydzIG1haW4gdGhyZWFkIFFv
UyB0byBVU0VSLUlOVEVSQUNUSVZFCkluZGV4OiBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw2ICsxMDYsNyBAQAogCQk3
MEVDQTYwRDFCMDI0MjY4MDA0NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MEVDQTYwQTFCMDI0MjY4MDA0
NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5jcHAgKi87IH07CiAJCTcwRUNBNjBFMUIwMjQyNjgw
MDQ0OTczOSAvKiBTeW1ib2xJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MEVDQTYwQjFCMDI0MjY4MDA0NDk3MzkgLyogU3ltYm9sSW1wbC5oICov
OyB9OwogCQk3MEVDQTYwRjFCMDI0MjY4MDA0NDk3MzkgLyogVW5pcXVlZFN0cmluZ0ltcGwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcwRUNBNjBDMUIw
MjQyNjgwMDQ0OTczOSAvKiBVbmlxdWVkU3RyaW5nSW1wbC5oICovOyB9OworCQk3OUVDNzA2MTFD
OTlGOUJDMDAzQTNBRTIgLyogU21hbGxQdHJTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MzZENkE5MUM5OUY4QUUwMDBEMUFFRCAvKiBTbWFsbFB0
clNldC5oICovOyB9OwogCQk3Q0JCQTA3NDE5QkI3RkRDMDBCQkYwMjUgLyogT1NPYmplY3RQdHIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQkJBMDcz
MTlCQjdGREMwMEJCRjAyNSAvKiBPU09iamVjdFB0ci5oICovOyB9OwogCQk3Q0REN0ZGODE4NkQy
OTFFMDA3NDMzQ0QgLyogSXRlcmF0b3JBZGFwdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NERDdGRjcxODZEMjkxRTAwNzQzM0NEIC8qIEl0ZXJh
dG9yQWRhcHRvcnMuaCAqLzsgfTsKIAkJN0NERDdGRkExODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJh
dG9yUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDREQ3RkY5MTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVyYXRvclJhbmdlLmggKi87IH07CkBAIC00
MjEsNiArNDIyLDcgQEAKIAkJNzBFQ0E2MEExQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmlu
Z0ltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXRvbWljU3Ry
aW5nSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcwRUNBNjBCMUIwMjQy
NjgwMDQ0OTczOSAvKiBTeW1ib2xJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN5bWJvbEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzBFQ0E2MEMx
QjAyNDI2ODAwNDQ5NzM5IC8qIFVuaXF1ZWRTdHJpbmdJbXBsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFVuaXF1ZWRTdHJpbmdJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTc5MzZENkE5MUM5OUY4QUUwMDBEMUFFRCAvKiBTbWFsbFB0clNldC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbWFsbFB0clNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Q0JCQTA3MzE5QkI3RkRDMDBCQkYwMjUgLyogT1NPYmplY3RQdHIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT1NPYmplY3RQdHIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NERDdGRjcxODZEMjkxRTAwNzQzM0NEIC8qIEl0ZXJh
dG9yQWRhcHRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSXRlcmF0b3JB
ZGFwdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0REN0ZGOTE4NkQyQTU0
MDA3NDMzQ0QgLyogSXRlcmF0b3JSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJdGVyYXRvclJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MTQs
NiArOTE2LDcgQEAKIAkJCQlBNzQ4NzQ0RjE3QTBCREFFMDBGQTA0Q0IgLyogU2l4Q2hhcmFjdGVy
SGFzaC5jcHAgKi8sCiAJCQkJQTc0ODc0NTAxN0EwQkRBRTAwRkEwNENCIC8qIFNpeENoYXJhY3Rl
ckhhc2guaCAqLywKIAkJCQlBOEE0NzMwQzE1MUE4MjVCMDA0MTIzRkYgLyogU2l6ZUxpbWl0cy5j
cHAgKi8sCisJCQkJNzkzNkQ2QTkxQzk5RjhBRTAwMEQxQUVEIC8qIFNtYWxsUHRyU2V0LmggKi8s
CiAJCQkJQThBNDczMEQxNTFBODI1QjAwNDEyM0ZGIC8qIFNwZWN0cnVtLmggKi8sCiAJCQkJQThB
NDczMEUxNTFBODI1QjAwNDEyM0ZGIC8qIFN0YWNrQm91bmRzLmNwcCAqLywKIAkJCQlBOEE0NzMw
RjE1MUE4MjVCMDA0MTIzRkYgLyogU3RhY2tCb3VuZHMuaCAqLywKQEAgLTExNTAsNiArMTE1Myw3
IEBACiAJCQkJQThBNDczOTUxNTFBODI1QjAwNDEyM0ZGIC8qIENoZWNrZWRCb29sZWFuLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzQ1RjE1MUE4MjVCMDA0MTIzRkYgLyogQ29sbGF0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzRFREU2MTY5NjE0OTYwMEY2NTA0MSAvKiBDb21tYVByaW50
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTc5RUM3MDYxMUM5OUY5QkMwMDNBM0FFMiAvKiBTbWFs
bFB0clNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREU1QTA5RkMxQkEzNjk5MjAwM0Q0NDI0IC8q
IENvbW1vbkNyeXB0b1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RjJCOTExNzJFMDBGQzAw
N0RCREE1IC8qIENvbXBpbGF0aW9uVGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzM5
ODE1MUE4MjVCMDA0MTIzRkYgLyogQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05NCw2ICs5NCw3IEBAIHNldChXVEZfSEVBREVS
UwogICAgIFNhdHVyYXRlZEFyaXRobWV0aWMuaAogICAgIFNjb3BlZExhbWJkYS5oCiAgICAgU2Vn
bWVudGVkVmVjdG9yLmgKKyAgICBTbWFsbFB0clNldC5oCiAgICAgU3RhY2tCb3VuZHMuaAogICAg
IFN0YWNrU3RhdHMuaAogICAgIFN0YXRpY0NvbnN0cnVjdG9ycy5oCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9TbWFsbFB0clNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1NtYWxsUHRy
U2V0LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV1RGL3d0Zi9TbWFsbFB0clNldC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgU21hbGxQdHJTZXRfaAorI2RlZmluZSBTbWFsbFB0
clNldF9oCisKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9GYXN0
TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFB0
clR5cGU+CitjbGFzcyBTbWFsbFB0clNldCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU21h
bGxQdHJTZXQpOworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3Rp
YmxlPFB0clR5cGU+Ojp2YWx1ZSwgIldlIGRvbnQgc3VwcG9ydCBub24tdHJpdmlhbGx5IGRlc3Ry
dWN0aWJsZSBwb2ludGVyIHR5cGVzIG5vdy4iKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihQ
dHJUeXBlKSA9PSBzaXplb2Yodm9pZCopLCAiT25seSBzdXBwb3J0IHBvaW50ZXIgc2l6ZWQgdGhp
bmdzLiIpOworCitwdWJsaWM6IAorICAgIFNtYWxsUHRyU2V0KCkKKyAgICB7CisgICAgICAgIGlu
aXRpYWxpemUoKTsKKyAgICB9CisKKyAgICAvLyBXZSB0YWtlIGNhcmUgdG8gaGF2ZSBTbWFsbFB0
clNldCBoYXZlIHBhcnRpYWwgbW92ZSBzZW1hbnRpY3MgYWxsb3dhYmxlIHRocm91Z2gKKyAgICAv
LyBtZW1jcHkuIEl0J3MgcGFydGlhbCBtb3ZlIHNlbWFudGljcyBiZWNhdXNlIHRoZSBvbGQgbWVt
b3J5IHdlJ3ZlIG1vdmVkIGZyb20KKyAgICAvLyBzaG91bGQgbm90IGJlIGRlc3Ryb3llZCBhZnRl
cndhcmRzIChvdGhlcndpc2UsIHdlIG1pZ2h0IGZyZWUgbV9idWZmZXIgdHdpY2UpCisgICAgLy8g
dW5sZXNzIHRoYXQgb2xkIG1lbW9yeSBpcyByZXNldCB0byBiZSBpc1NtYWxsKCkuIFNlZSBtb3Zl
IGNvbnN0cnVjdG9yIGJlbG93LgorICAgIC8vIFRvIG1haW50YWluIHRoZXNlIHNlbWFudGljcywg
d2UgZGV0ZXJtaW5lIGlmIHdlJ3JlIHNtYWxsIGJ5IGNoZWNraW5nIG91ciBzaXplCisgICAgLy8g
YW5kIG5vdCBvdXIgbV9idWZmZXIgcG9pbnRlci4gQW5kIHdoZW4gd2UncmUgc21hbGwsIHdlIGRv
bid0IGRvIG9wZXJhdGlvbnMgb24KKyAgICAvLyBtX2J1ZmZlciwgaW5zdGVhZCwgd2UgcGVyZm9y
bSBvcGVyYXRpb25zIG9uIG1fc21hbGxTdG9yYWdlIGRpcmVjdGx5LiBUaGUgcmVhc29uIHdlIHdh
bnQKKyAgICAvLyB0aGVzZSBzZW1hbnRpY3MgaXMgdGhhdCBpdCdzIGJlbmVmaWNpYWwgdG8gaGF2
ZSBhIFZlY3RvciB0aGF0IGNvbnRhaW5zIFNtYWxsUHRyU2V0CisgICAgLy8gKG9yIGFuIG9iamVj
dCB3aXRoIFNtYWxsUHRyU2V0IGFzIGEgZmllbGQpIGJlIGFsbG93ZWQgdG8gdXNlIG1lbWNweSBm
b3IgaXRzIG1vdmUgb3BlcmF0aW9uLgorCisgICAgU21hbGxQdHJTZXQoU21hbGxQdHJTZXQmJiBv
dGhlcikKKyAgICB7CisgICAgICAgICp0aGlzID0gV1RGTW92ZShvdGhlcik7CisgICAgfQorCisg
ICAgU21hbGxQdHJTZXQmIG9wZXJhdG9yPShTbWFsbFB0clNldCYmIG90aGVyKQorICAgIHsKKyAg
ICAgICAgbWVtY3B5KHRoaXMsICZvdGhlciwgc2l6ZW9mKFNtYWxsUHRyU2V0KSk7CisgICAgICAg
IG90aGVyLmluaXRpYWxpemUoKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAg
IH5TbWFsbFB0clNldCgpCisgICAgeworICAgICAgICBpZiAoIWlzU21hbGwoKSkKKyAgICAgICAg
ICAgIGZhc3RGcmVlKG1fYnVmZmVyKTsKKyAgICB9CisKKyAgICBpbmxpbmUgdm9pZCBhZGQoUHRy
VHlwZSBwdHIpCisgICAgeworICAgICAgICBBU1NFUlQoaXNWYWxpZEVudHJ5KHB0cikpOworCisg
ICAgICAgIGlmIChpc1NtYWxsKCkpIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX3NpemU7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChtX3NtYWxsU3RvcmFnZVtp
XSA9PSBwdHIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgaWYgKG1fc2l6ZSA8IFNtYWxsQXJyYXlTaXplKSB7CisgICAgICAgICAgICAg
ICAgbV9zbWFsbFN0b3JhZ2VbbV9zaXplXSA9IHB0cjsKKyAgICAgICAgICAgICAgICBtX3NpemUr
KzsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGdyb3coNjQpOworICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLiBXZSdyZSBubyBsb25nZXIg
c21hbGwgOigKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHdlJ3JlIG1vcmUgdGhhbiAzLzR0
aHMgZnVsbCB3ZSBncm93LgorICAgICAgICBpZiAoVU5MSUtFTFkobV9zaXplICogNCA+PSBtX2Nh
cGFjaXR5ICogMykpIHsKKyAgICAgICAgICAgIGdyb3cobV9jYXBhY2l0eSAqIDIpOworICAgICAg
ICAgICAgQVNTRVJUKCEobV9jYXBhY2l0eSAmIChtX2NhcGFjaXR5IC0gMSkpKTsKKyAgICAgICAg
fQorCisgICAgICAgIHZvaWQqKiBidWNrZXQgPSB0aGlzLT5idWNrZXQocHRyKTsKKyAgICAgICAg
aWYgKCpidWNrZXQgIT0gcHRyKSB7CisgICAgICAgICAgICAqYnVja2V0ID0gcHRyOworICAgICAg
ICAgICAgbV9zaXplKys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpbmxpbmUgYm9vbCBjb250
YWlucyhQdHJUeXBlIHB0cikKKyAgICB7CisgICAgICAgIEFTU0VSVChpc1ZhbGlkRW50cnkocHRy
KSk7CisgICAgICAgIGlmIChpc1NtYWxsKCkpIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBtX3NpemU7IGkrKykgeyAvLyBXZSBjYW4gc2VhcmNoIHVwIHRvICJtX3NpemUi
IGJlY2F1c2Ugd2Ugc3RvcmUgdGhpbmdzIGxpbmVhcmx5IGluc2lkZSB0aGlzIGJ1ZmZlci4KKyAg
ICAgICAgICAgICAgICBpZiAobV9zbWFsbFN0b3JhZ2VbaV0gPT0gcHRyKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQqKiBidWNrZXQgPSB0aGlzLT5idWNrZXQo
cHRyKTsKKyAgICAgICAgcmV0dXJuICpidWNrZXQgPT0gcHRyOworICAgIH0KKworICAgIGNsYXNz
IGl0ZXJhdG9yIHsKKyAgICBwdWJsaWM6CisgICAgICAgIGl0ZXJhdG9yJiBvcGVyYXRvcisrKCkK
KyAgICAgICAgeworICAgICAgICAgICAgbV9pbmRleCsrOworICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQobV9pbmRleCA8PSBtX2NhcGFjaXR5KTsKKyAgICAgICAgICAgIHdoaWxlIChtX2luZGV4
IDwgbV9jYXBhY2l0eSAmJiBtX2J1ZmZlclttX2luZGV4XSA9PSBlbXB0eVZhbHVlKCkpCisgICAg
ICAgICAgICAgICAgbV9pbmRleCsrOworICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBQdHJUeXBlIG9wZXJhdG9yKigpIGNvbnN0IHsgQVNTRVJU
KG1faW5kZXggPCBtX2NhcGFjaXR5KTsgcmV0dXJuIHN0YXRpY19jYXN0PFB0clR5cGU+KG1fYnVm
ZmVyW21faW5kZXhdKTsgfQorICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgaXRlcmF0b3Im
IG90aGVyKSBjb25zdCB7IEFTU0VSVChtX2J1ZmZlciA9PSBvdGhlci5tX2J1ZmZlcik7IHJldHVy
biBtX2luZGV4ID09IG90aGVyLm1faW5kZXg7IH0KKyAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QgeyBBU1NFUlQobV9idWZmZXIgPT0gb3RoZXIubV9i
dWZmZXIpOyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KKworICAgIHByaXZhdGU6CisgICAg
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGZyaWVuZCBjbGFzcyBXVEY6OlNtYWxsUHRyU2V0Owor
ICAgICAgICB1bnNpZ25lZCBtX2luZGV4OworICAgICAgICB1bnNpZ25lZCBtX2NhcGFjaXR5Owor
ICAgICAgICB2b2lkKiogbV9idWZmZXI7CisgICAgfTsKKworICAgIGl0ZXJhdG9yIGJlZ2luKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIGl0ZXJhdG9yIGl0OworICAgICAgICBpdC5tX2luZGV4ID0g
LTE7CisgICAgICAgIGl0Lm1fY2FwYWNpdHkgPSBtX2NhcGFjaXR5OworICAgICAgICBpZiAoaXNT
bWFsbCgpKQorICAgICAgICAgICAgaXQubV9idWZmZXIgPSBiaXR3aXNlX2Nhc3Q8dm9pZCoqPiht
X3NtYWxsU3RvcmFnZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGl0Lm1fYnVmZmVyID0g
bV9idWZmZXI7CisKKyAgICAgICAgKytpdDsKKworICAgICAgICByZXR1cm4gaXQ7CisgICAgfQor
CisgICAgaXRlcmF0b3IgZW5kKCkgY29uc3QKKyAgICB7CisgICAgICAgIGl0ZXJhdG9yIGl0Owor
ICAgICAgICBpdC5tX2luZGV4ID0gbV9jYXBhY2l0eTsKKyAgICAgICAgaXQubV9jYXBhY2l0eSA9
IG1fY2FwYWNpdHk7CisgICAgICAgIGlmIChpc1NtYWxsKCkpCisgICAgICAgICAgICBpdC5tX2J1
ZmZlciA9IGJpdHdpc2VfY2FzdDx2b2lkKio+KG1fc21hbGxTdG9yYWdlKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgaXQubV9idWZmZXIgPSBtX2J1ZmZlcjsKKworICAgICAgICByZXR1cm4g
aXQ7CisgICAgfQorCisgICAgaW5saW5lIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBt
X3NpemU7IH0KKworcHJpdmF0ZToKKworICAgIGNvbnN0ZXhwciBzdGF0aWMgdm9pZCogZW1wdHlW
YWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PHZvaWQqPihzdGQ6Om51
bWVyaWNfbGltaXRzPHVpbnRwdHJfdD46Om1heCgpKTsKKyAgICB9CisKKyAgICBib29sIGlzVmFs
aWRFbnRyeShjb25zdCBQdHJUeXBlIHB0cikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBw
dHIgIT0gZW1wdHlWYWx1ZSgpOworICAgIH0KKworICAgIGlubGluZSBib29sIGlzU21hbGwoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY2FwYWNpdHkgPT0gU21hbGxBcnJheVNpemU7
CisgICAgfQorCisgICAgaW5saW5lIHZvaWQgaW5pdGlhbGl6ZSgpCisgICAgeworICAgICAgICBt
X3NpemUgPSAwOworICAgICAgICBtX2J1ZmZlciA9IG51bGxwdHI7CisgICAgICAgIG1fY2FwYWNp
dHkgPSBTbWFsbEFycmF5U2l6ZTsKKyAgICAgICAgbWVtc2V0KG1fc21hbGxTdG9yYWdlLCAtMSwg
c2l6ZW9mKHZvaWQqKSAqIFNtYWxsQXJyYXlTaXplKTsKKyAgICAgICAgQVNTRVJUKGlzU21hbGwo
KSk7CisgICAgfQorCisgICAgaW5saW5lIHZvaWQgZ3Jvdyh1bnNpZ25lZCBzaXplKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PGludDMyX3Q+KGJpdHdpc2VfY2FzdDxpbnRwdHJf
dD4oZW1wdHlWYWx1ZSgpKSkgPT0gLTEpOworICAgICAgICBzaXplX3QgYWxsb2NhdGlvblNpemUg
PSBzaXplb2Yodm9pZCopICogc2l6ZTsKKworICAgICAgICBib29sIHdhc1NtYWxsID0gaXNTbWFs
bCgpOworICAgICAgICB2b2lkKiogb2xkQnVmZmVyID0gd2FzU21hbGwgPyBtX3NtYWxsU3RvcmFn
ZSA6IG1fYnVmZmVyOworICAgICAgICB1bnNpZ25lZCBvbGRDYXBhY2l0eSA9IG1fY2FwYWNpdHk7
CisgICAgICAgIG1fYnVmZmVyID0gc3RhdGljX2Nhc3Q8dm9pZCoqPihmYXN0TWFsbG9jKGFsbG9j
YXRpb25TaXplKSk7CisgICAgICAgIG1lbXNldChtX2J1ZmZlciwgLTEsIGFsbG9jYXRpb25TaXpl
KTsKKyAgICAgICAgbV9jYXBhY2l0eSA9IHNpemU7CisKKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG9sZENhcGFjaXR5OyBpKyspIHsKKyAgICAgICAgICAgIGlmIChvbGRCdWZmZXJb
aV0gIT0gZW1wdHlWYWx1ZSgpKSB7CisgICAgICAgICAgICAgICAgdm9pZCoqIHB0ciA9IHRoaXMt
PmJ1Y2tldChzdGF0aWNfY2FzdDxQdHJUeXBlPihvbGRCdWZmZXJbaV0pKTsKKyAgICAgICAgICAg
ICAgICAqcHRyID0gb2xkQnVmZmVyW2ldOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgaWYgKCF3YXNTbWFsbCkKKyAgICAgICAgICAgIGZhc3RGcmVlKG9sZEJ1ZmZlcik7Cisg
ICAgfQorCisKKyAgICBpbmxpbmUgdm9pZCoqIGJ1Y2tldChQdHJUeXBlIHRhcmdldCkgY29uc3QK
KyAgICB7CisgICAgICAgIEFTU0VSVCghKG1fY2FwYWNpdHkgJiAobV9jYXBhY2l0eSAtIDEpKSk7
CisgICAgICAgIHVuc2lnbmVkIGJ1Y2tldCA9IFB0ckhhc2hCYXNlPFB0clR5cGUsIGZhbHNlIC8q
IGlzU21hcnRQdHIgKi8+OjpoYXNoKHRhcmdldCkgJiAobV9jYXBhY2l0eSAtIDEpOworICAgICAg
ICB1bnNpZ25lZCBpbmRleCA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAg
ICB2b2lkKiogcHRyID0gbV9idWZmZXIgKyBidWNrZXQ7CisgICAgICAgICAgICBpZiAoKnB0ciA9
PSBlbXB0eVZhbHVlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHB0cjsKKyAgICAgICAgICAg
IGlmICgqcHRyID09IHRhcmdldCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcHRyOworICAgICAg
ICAgICAgaW5kZXgrKzsKKyAgICAgICAgICAgIGJ1Y2tldCA9IChidWNrZXQgKyBpbmRleCkgJiAo
bV9jYXBhY2l0eSAtIDEpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFNtYWxsQXJyYXlTaXplID0gODsKKyAgICAgCisgICAgdW5zaWduZWQgbV9zaXplOwor
ICAgIHVuc2lnbmVkIG1fY2FwYWNpdHk7CisgICAgdm9pZCoqIG1fYnVmZmVyOworICAgIHZvaWQq
IG1fc21hbGxTdG9yYWdlW1NtYWxsQXJyYXlTaXplXTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdU
RgorCit1c2luZyBXVEY6OlNtYWxsUHRyU2V0OworCisjZW5kaWYgLy8gU21hbGxQdHJTZXRfaApJ
bmRleDogU291cmNlL1dURi93dGYvVmVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvVmVjdG9yLmgJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9XVEYvd3RmL1ZlY3Rvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC03MjUsNiArNzI1LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBh
cHBlbmQoVmFsdWVUeXBlJiYgdmFsdWUpIHsgYXBwZW5kPFZhbHVlVHlwZT4oc3RkOjpmb3J3YXJk
PFZhbHVlVHlwZT4odmFsdWUpKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgYXBw
ZW5kKFUmJik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gdm9pZCBjb25zdHJ1Y3RB
bmRBcHBlbmQoQXJncyYmLi4uKTsKIAogICAgIHZvaWQgdW5jaGVja2VkQXBwZW5kKFZhbHVlVHlw
ZSYmIHZhbHVlKSB7IHVuY2hlY2tlZEFwcGVuZDxWYWx1ZVR5cGU+KHN0ZDo6Zm9yd2FyZDxWYWx1
ZVR5cGU+KHZhbHVlKSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiB2b2lkIHVuY2hlY2tl
ZEFwcGVuZChVJiYpOwpAQCAtNzg3LDYgKzc4OCw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgVCog
dHJ5RXhwYW5kQ2FwYWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5LCBjb25zdCBUKik7CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVT4gVSogZXhwYW5kQ2FwYWNpdHkoc2l6ZV90IG5ld01pbkNhcGFj
aXR5LCBVKik7IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgYXBwZW5kU2xvd0Nhc2Uo
VSYmKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiB2b2lkIGNvbnN0cnVjdEFuZEFw
cGVuZFNsb3dDYXNlKEFyZ3MmJi4uLik7CiAKICAgICB2b2lkIGFzYW5TZXRJbml0aWFsQnVmZmVy
U2l6ZVRvKHNpemVfdCk7CiAgICAgdm9pZCBhc2FuU2V0QnVmZmVyU2l6ZVRvRnVsbENhcGFjaXR5
KCk7CkBAIC0xMjE0LDYgKzEyMTYsMTkgQEAgQUxXQVlTX0lOTElORSB2b2lkIFZlY3RvcjxULCBp
bmxpbmVDYXBhYwogICAgIGFwcGVuZFNsb3dDYXNlKHN0ZDo6Zm9yd2FyZDxVPih2YWx1ZSkpOwog
fQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1l
IE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbkNhcGFjaXR5PiB0ZW1wbGF0ZTx0eXBlbmFtZS4u
LiBBcmdzPgorQUxXQVlTX0lOTElORSB2b2lkIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3Zl
cmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT46OmNvbnN0cnVjdEFuZEFwcGVuZChBcmdzJiYuLi4g
YXJncykKK3sKKyAgICBpZiAoc2l6ZSgpICE9IGNhcGFjaXR5KCkpIHsKKyAgICAgICAgYXNhbkJ1
ZmZlclNpemVXaWxsQ2hhbmdlVG8obV9zaXplICsgMSk7CisgICAgICAgIG5ldyAoTm90TnVsbCwg
ZW5kKCkpIFQoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKKyAgICAgICAgKyttX3NpemU7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdHJ1Y3RBbmRBcHBlbmRTbG93Q2Fz
ZShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90
IG1pbkNhcGFjaXR5PiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgogdm9pZCBWZWN0b3I8VCwgaW5saW5l
Q2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+OjphcHBlbmRTbG93Q2FzZShV
JiYgdmFsdWUpCiB7CkBAIC0xMjI4LDYgKzEyNDMsMTkgQEAgdm9pZCBWZWN0b3I8VCwgaW5saW5l
Q2FwYWNpdHksIE92ZXJmbG93SAogICAgICsrbV9zaXplOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6
ZV90IG1pbkNhcGFjaXR5PiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPgordm9pZCBWZWN0b3I8
VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+Ojpjb25zdHJ1
Y3RBbmRBcHBlbmRTbG93Q2FzZShBcmdzJiYuLi4gYXJncykKK3sKKyAgICBBU1NFUlQoc2l6ZSgp
ID09IGNhcGFjaXR5KCkpOworCisgICAgZXhwYW5kQ2FwYWNpdHkoc2l6ZSgpICsgMSk7CisgICAg
QVNTRVJUKGJlZ2luKCkpOworCisgICAgYXNhbkJ1ZmZlclNpemVXaWxsQ2hhbmdlVG8obV9zaXpl
ICsgMSk7CisgICAgbmV3IChOb3ROdWxsLCBlbmQoKSkgVChzdGQ6OmZvcndhcmQ8QXJncz4oYXJn
cykuLi4pOworICAgICsrbV9zaXplOworfQorCiAvLyBUaGlzIHZlcnNpb24gb2YgYXBwZW5kIHNh
dmVzIGEgYnJhbmNoIGluIHRoZSBjYXNlIHdoZXJlIHlvdSBrbm93IHRoYXQgdGhlCiAvLyB2ZWN0
b3IncyBjYXBhY2l0eSBpcyBsYXJnZSBlbm91Z2ggZm9yIHRoZSBhcHBlbmQgdG8gc3VjY2VlZC4K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274346</attachid>
            <date>2016-03-17 17:42:15 -0700</date>
            <delta_ts>2016-03-17 17:44:41 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>29519</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4MzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE2LTAzLTE3ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBTbWFsbFB0clNldCBhbmQgaW50ZWdyYXRlIGl0IGludG8gdGhlIFBhcnNlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NTUyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNpbmcgU21h
bGxQdHJTZXQgaW5zdGVhZCBvZiBIYXNoU2V0IHJlYWxseSBoZWxwcyBzcGVlZAorICAgICAgICB1
cCB0aGUgcGFyc2VyLiBXaGF0IHNhdmVzIHVzIG1vc3QgaXMgbm90IG5lZWRpbmcgdG8gYWx3YXlz
CisgICAgICAgIG1hbGxvYy9mcmVlIG1lbW9yeSBpbiB0aGUgSGFzaFNldC4KKworICAgICAgICAq
IHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFy
c2VJbm5lcik6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5oOgorICAgICAgICAoSlNDOjpTY29w
ZTo6U2NvcGUpOgorICAgICAgICAoSlNDOjpTY29wZTo6c3RhcnRTd2l0Y2gpOgorICAgICAgICAo
SlNDOjpTY29wZTo6aGFzRGVjbGFyZWRQYXJhbWV0ZXIpOgorICAgICAgICAoSlNDOjpTY29wZTo6
ZGVjbGFyZVdyaXRlKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmRlY2xhcmVQYXJhbWV0ZXIpOgor
ICAgICAgICAoSlNDOjpTY29wZTo6dXNlZFZhcmlhYmxlc0NvbnRhaW5zKToKKyAgICAgICAgKEpT
Qzo6U2NvcGU6OnVzZVZhcmlhYmxlKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmNvbGxlY3RGcmVl
VmFyaWFibGVzKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmdldENhcHR1cmVkVmFycyk6CisgICAg
ICAgIChKU0M6OlNjb3BlOjppc1ZhbGlkU3RyaWN0TW9kZSk6CisgICAgICAgIChKU0M6OlNjb3Bl
OjpzaGFkb3dzQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmNvcHlDYXB0dXJlZFZh
cmlhYmxlc1RvVmVjdG9yKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OnNldElzTW9kdWxlKToKKyAg
ICAgICAgKEpTQzo6UGFyc2VyOjpwdXNoU2NvcGUpOgorICAgICAgICAoSlNDOjpTY29wZTo6Z2V0
VXNlZFZhcmlhYmxlcyk6IERlbGV0ZWQuCisKIDIwMTYtMDMtMTcgIFNhYW0gYmFyYXRpICA8c2Jh
cmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0VTNl0gTWFrZSBHZXRQcm9wZXJ0eSguKSBpbnNp
ZGUgQXJyYXlQcm90b3R5cGUuY3BwIHNwZWMgY29tcGF0aWJsZS4KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzExLDEw
ICszMTEsOCBAQCBTdHJpbmcgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlSW5uZXIoY29uCiAgICAg
Zm9yIChhdXRvJiBlbnRyeSA6IGNhcHR1cmVkVmFyaWFibGVzKQogICAgICAgICB2YXJEZWNsYXJh
dGlvbnMubWFya1ZhcmlhYmxlQXNDYXB0dXJlZChlbnRyeSk7CiAKLSAgICBJZGVudGlmaWVyU2V0
IHVzZWRWYXJpYWJsZXM7Ci0gICAgc2NvcGUtPmdldFVzZWRWYXJpYWJsZXModXNlZFZhcmlhYmxl
cyk7CiAgICAgaWYgKHBhcnNlTW9kZSA9PSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBw
ZXJGdW5jdGlvbk1vZGUpIHsKLSAgICAgICAgaWYgKHVzZWRWYXJpYWJsZXMuY29udGFpbnMobV92
bS0+cHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLmltcGwoKSkpCisgICAgICAgIGlmIChzY29wZS0+
dXNlZFZhcmlhYmxlc0NvbnRhaW5zKG1fdm0tPnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cy5pbXBs
KCkpKQogICAgICAgICAgICAgY29udGV4dC5wcm9wYWdhdGVBcmd1bWVudHNVc2UoKTsKICAgICB9
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAkocmV2aXNpb24gMTk4
MzYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNDAsMTMgKzQwLDE1IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1NtYWxsUHRyU2V0Lmg+CisKIG5hbWVzcGFjZSBKU0Mgewogc3RydWN0IFNjb3BlOwog
fQogCiBuYW1lc3BhY2UgV1RGIHsKLXRlbXBsYXRlIDw+IHN0cnVjdCBWZWN0b3JUcmFpdHM8SlND
OjpTY29wZT4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7Ci0gICAgc3RhdGljIGNvbnN0IGJv
b2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSBmYWxzZTsgLy8gTm90IGFsbCBTY29wZSBkYXRh
IG1lbWJlcnMgaW5pdGlhbGl6ZSB0byAwLgordGVtcGxhdGUgPD4gc3RydWN0IFZlY3RvclRyYWl0
czxKU0M6OlNjb3BlPiA6IFZlY3RvclRyYWl0c0Jhc2U8LyogaXMgcG9kICovIGZhbHNlLCB2b2lk
PiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuTW92ZVdpdGhNZW1jcHkgPSB0cnVlOwogfTsK
IH0KIApAQCAtNjAsNiArNjIsOCBAQCBjbGFzcyBWTTsKIGNsYXNzIFByb2dyYW1Ob2RlOwogY2xh
c3MgU291cmNlQ29kZTsKIAordHlwZWRlZiBTbWFsbFB0clNldDxVbmlxdWVkU3RyaW5nSW1wbCo+
IFVuaXF1ZWRTdHJpbmdJbXBsUHRyU2V0OworCiAvLyBNYWNyb3MgdG8gbWFrZSB0aGUgbW9yZSBj
b21tb24gVHJlZUJ1aWxkZXIgdHlwZXMgYSBsaXR0bGUgbGVzcyB2ZXJib3NlCiAjZGVmaW5lIFRy
ZWVTdGF0ZW1lbnQgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlN0YXRlbWVudAogI2RlZmluZSBUcmVl
RXhwcmVzc2lvbiB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6RXhwcmVzc2lvbgpAQCAtMTU4LDYgKzE2
Miw4IEBAIHByaXZhdGU6CiB9OwogCiBzdHJ1Y3QgU2NvcGUgeworV1RGX01BS0VfTk9OQ09QWUFC
TEUoU2NvcGUpOworICAgIHB1YmxpYzoKICAgICBTY29wZShjb25zdCBWTSogdm0sIGJvb2wgaXNG
dW5jdGlvbiwgYm9vbCBpc0dlbmVyYXRvciwgYm9vbCBzdHJpY3RNb2RlLCBib29sIGlzQXJyb3dG
dW5jdGlvbikKICAgICAgICAgOiBtX3ZtKHZtKQogICAgICAgICAsIG1fc2hhZG93c0FyZ3VtZW50
cyhmYWxzZSkKQEAgLTE4Niw0MyArMTkyLDYgQEAgc3RydWN0IFNjb3BlIHsKICAgICB7CiAgICAg
fQogCi0gICAgU2NvcGUoY29uc3QgU2NvcGUmIHJocykKLSAgICAgICAgOiBtX3ZtKHJocy5tX3Zt
KQotICAgICAgICAsIG1fc2hhZG93c0FyZ3VtZW50cyhyaHMubV9zaGFkb3dzQXJndW1lbnRzKQot
ICAgICAgICAsIG1fdXNlc0V2YWwocmhzLm1fdXNlc0V2YWwpCi0gICAgICAgICwgbV9uZWVkc0Z1
bGxBY3RpdmF0aW9uKHJocy5tX25lZWRzRnVsbEFjdGl2YXRpb24pCi0gICAgICAgICwgbV9oYXNE
aXJlY3RTdXBlcihyaHMubV9oYXNEaXJlY3RTdXBlcikKLSAgICAgICAgLCBtX25lZWRzU3VwZXJC
aW5kaW5nKHJocy5tX25lZWRzU3VwZXJCaW5kaW5nKQotICAgICAgICAsIG1fYWxsb3dzVmFyRGVj
bGFyYXRpb25zKHJocy5tX2FsbG93c1ZhckRlY2xhcmF0aW9ucykKLSAgICAgICAgLCBtX2FsbG93
c0xleGljYWxEZWNsYXJhdGlvbnMocmhzLm1fYWxsb3dzTGV4aWNhbERlY2xhcmF0aW9ucykKLSAg
ICAgICAgLCBtX3N0cmljdE1vZGUocmhzLm1fc3RyaWN0TW9kZSkKLSAgICAgICAgLCBtX2lzRnVu
Y3Rpb24ocmhzLm1faXNGdW5jdGlvbikKLSAgICAgICAgLCBtX2lzR2VuZXJhdG9yKHJocy5tX2lz
R2VuZXJhdG9yKQotICAgICAgICAsIG1faXNHZW5lcmF0b3JCb3VuZGFyeShyaHMubV9pc0dlbmVy
YXRvckJvdW5kYXJ5KQotICAgICAgICAsIG1faXNBcnJvd0Z1bmN0aW9uKHJocy5tX2lzQXJyb3dG
dW5jdGlvbikKLSAgICAgICAgLCBtX2lzQXJyb3dGdW5jdGlvbkJvdW5kYXJ5KHJocy5tX2lzQXJy
b3dGdW5jdGlvbkJvdW5kYXJ5KQotICAgICAgICAsIG1faXNMZXhpY2FsU2NvcGUocmhzLm1faXNM
ZXhpY2FsU2NvcGUpCi0gICAgICAgICwgbV9pc0Z1bmN0aW9uQm91bmRhcnkocmhzLm1faXNGdW5j
dGlvbkJvdW5kYXJ5KQotICAgICAgICAsIG1faXNWYWxpZFN0cmljdE1vZGUocmhzLm1faXNWYWxp
ZFN0cmljdE1vZGUpCi0gICAgICAgICwgbV9oYXNBcmd1bWVudHMocmhzLm1faGFzQXJndW1lbnRz
KQotICAgICAgICAsIG1faXNFdmFsQ29udGV4dChyaHMubV9pc0V2YWxDb250ZXh0KQotICAgICAg
ICAsIG1fY29uc3RydWN0b3JLaW5kKHJocy5tX2NvbnN0cnVjdG9yS2luZCkKLSAgICAgICAgLCBt
X2V4cGVjdGVkU3VwZXJCaW5kaW5nKHJocy5tX2V4cGVjdGVkU3VwZXJCaW5kaW5nKQotICAgICAg
ICAsIG1fbG9vcERlcHRoKHJocy5tX2xvb3BEZXB0aCkKLSAgICAgICAgLCBtX3N3aXRjaERlcHRo
KHJocy5tX3N3aXRjaERlcHRoKQotICAgICAgICAsIG1faW5uZXJBcnJvd0Z1bmN0aW9uRmVhdHVy
ZXMocmhzLm1faW5uZXJBcnJvd0Z1bmN0aW9uRmVhdHVyZXMpCi0gICAgICAgICwgbV9tb2R1bGVT
Y29wZURhdGEocmhzLm1fbW9kdWxlU2NvcGVEYXRhKQotICAgIHsKLSAgICAgICAgaWYgKHJocy5t
X2xhYmVscykgewotICAgICAgICAgICAgbV9sYWJlbHMgPSBzdGQ6Om1ha2VfdW5pcXVlPExhYmVs
U3RhY2s+KCk7Ci0KLSAgICAgICAgICAgIHR5cGVkZWYgTGFiZWxTdGFjazo6Y29uc3RfaXRlcmF0
b3IgaXRlcmF0b3I7Ci0gICAgICAgICAgICBpdGVyYXRvciBlbmQgPSByaHMubV9sYWJlbHMtPmVu
ZCgpOwotICAgICAgICAgICAgZm9yIChpdGVyYXRvciBpdCA9IHJocy5tX2xhYmVscy0+YmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICAgICAgICAgIG1fbGFiZWxzLT5hcHBlbmQoU2Nv
cGVMYWJlbEluZm8geyBpdC0+dWlkLCBpdC0+aXNMb29wIH0pOwotICAgICAgICB9Ci0gICAgfQot
CiAgICAgdm9pZCBzdGFydFN3aXRjaCgpIHsgbV9zd2l0Y2hEZXB0aCsrOyB9CiAgICAgdm9pZCBl
bmRTd2l0Y2goKSB7IG1fc3dpdGNoRGVwdGgtLTsgfQogICAgIHZvaWQgc3RhcnRMb29wKCkgeyBt
X2xvb3BEZXB0aCsrOyB9CkBAIC00NTQsNyArNDIzLDcgQEAgc3RydWN0IFNjb3BlIHsKIAogICAg
IGJvb2wgaGFzRGVjbGFyZWRQYXJhbWV0ZXIoY29uc3QgUmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBs
PiYgaWRlbnQpCiAgICAgewotICAgICAgICByZXR1cm4gbV9kZWNsYXJlZFBhcmFtZXRlcnMuY29u
dGFpbnMoaWRlbnQpIHx8IGhhc0RlY2xhcmVkVmFyaWFibGUoaWRlbnQpOworICAgICAgICByZXR1
cm4gbV9kZWNsYXJlZFBhcmFtZXRlcnMuY29udGFpbnMoaWRlbnQuZ2V0KCkpIHx8IGhhc0RlY2xh
cmVkVmFyaWFibGUoaWRlbnQpOwogICAgIH0KICAgICAKICAgICB2b2lkIGRlY2xhcmVXcml0ZShj
b25zdCBJZGVudGlmaWVyKiBpZGVudCkKQEAgLTQ5MiwxMSArNDYxLDcgQEAgc3RydWN0IFNjb3Bl
IHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgdm9pZCBnZXRVc2Vk
VmFyaWFibGVzKElkZW50aWZpZXJTZXQmIHVzZWRWYXJpYWJsZXMpCi0gICAgewotICAgICAgICB1
c2VkVmFyaWFibGVzLnN3YXAobV91c2VkVmFyaWFibGVzKTsKLSAgICB9Ci0KKyAgICBib29sIHVz
ZWRWYXJpYWJsZXNDb250YWlucyhVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCkgeyByZXR1cm4gbV91
c2VkVmFyaWFibGVzLmNvbnRhaW5zKGltcGwpOyB9CiAgICAgdm9pZCB1c2VWYXJpYWJsZShjb25z
dCBJZGVudGlmaWVyKiBpZGVudCwgYm9vbCBpc0V2YWwpCiAgICAgewogICAgICAgICBtX3VzZXNF
dmFsIHw9IGlzRXZhbDsKQEAgLTU0OCw3ICs1MTMsNyBAQCBzdHJ1Y3QgU2NvcGUgewogICAgICAg
ICAgICAgbV91c2VzRXZhbCA9IHRydWU7CiAKICAgICAgICAgewotICAgICAgICAgICAgZm9yIChj
b25zdCBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+JiBpbXBsIDogbmVzdGVkU2NvcGUtPm1fdXNl
ZFZhcmlhYmxlcykgeworICAgICAgICAgICAgZm9yIChVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCA6
IG5lc3RlZFNjb3BlLT5tX3VzZWRWYXJpYWJsZXMpIHsKICAgICAgICAgICAgICAgICBpZiAobmVz
dGVkU2NvcGUtPm1fZGVjbGFyZWRWYXJpYWJsZXMuY29udGFpbnMoaW1wbCkgfHwgbmVzdGVkU2Nv
cGUtPm1fbGV4aWNhbFZhcmlhYmxlcy5jb250YWlucyhpbXBsKSkKICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAKQEAgLTU3MywxMSArNTM4LDEwIEBAIHN0cnVjdCBTY29wZSB7CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAobmVzdGVkU2NvcGUtPm1fd3JpdHRlblZhcmlhYmxlcy5zaXpl
KCkpIHsKLSAgICAgICAgICAgIElkZW50aWZpZXJTZXQ6Oml0ZXJhdG9yIGVuZCA9IG5lc3RlZFNj
b3BlLT5tX3dyaXR0ZW5WYXJpYWJsZXMuZW5kKCk7Ci0gICAgICAgICAgICBmb3IgKElkZW50aWZp
ZXJTZXQ6Oml0ZXJhdG9yIHB0ciA9IG5lc3RlZFNjb3BlLT5tX3dyaXR0ZW5WYXJpYWJsZXMuYmVn
aW4oKTsgcHRyICE9IGVuZDsgKytwdHIpIHsKLSAgICAgICAgICAgICAgICBpZiAobmVzdGVkU2Nv
cGUtPm1fZGVjbGFyZWRWYXJpYWJsZXMuY29udGFpbnMoKnB0cikgfHwgbmVzdGVkU2NvcGUtPm1f
bGV4aWNhbFZhcmlhYmxlcy5jb250YWlucygqcHRyKSkKKyAgICAgICAgICAgIGZvciAoVW5pcXVl
ZFN0cmluZ0ltcGwqIGltcGwgOiBuZXN0ZWRTY29wZS0+bV93cml0dGVuVmFyaWFibGVzKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKG5lc3RlZFNjb3BlLT5tX2RlY2xhcmVkVmFyaWFibGVzLmNvbnRh
aW5zKGltcGwpIHx8IG5lc3RlZFNjb3BlLT5tX2xleGljYWxWYXJpYWJsZXMuY29udGFpbnMoaW1w
bCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIG1fd3Jp
dHRlblZhcmlhYmxlcy5hZGQoKnB0cik7CisgICAgICAgICAgICAgICAgbV93cml0dGVuVmFyaWFi
bGVzLmFkZChpbXBsKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTYwNSwx
MSArNTY5LDEwIEBAIHN0cnVjdCBTY29wZSB7CiAgICAgICAgIGlmIChzaGFkb3dzQXJndW1lbnRz
KCkpCiAgICAgICAgICAgICBtb2RpZmllZEFyZ3VtZW50cyA9IHRydWU7CiAgICAgICAgIGlmICht
X2RlY2xhcmVkUGFyYW1ldGVycy5zaXplKCkpIHsKLSAgICAgICAgICAgIElkZW50aWZpZXJTZXQ6
Oml0ZXJhdG9yIGVuZCA9IG1fd3JpdHRlblZhcmlhYmxlcy5lbmQoKTsKLSAgICAgICAgICAgIGZv
ciAoSWRlbnRpZmllclNldDo6aXRlcmF0b3IgcHRyID0gbV93cml0dGVuVmFyaWFibGVzLmJlZ2lu
KCk7IHB0ciAhPSBlbmQ7ICsrcHRyKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCpwdHIgPT0gbV92
bS0+cHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLmltcGwoKSkKKyAgICAgICAgICAgIGZvciAoVW5p
cXVlZFN0cmluZ0ltcGwqIGltcGwgOiBtX3dyaXR0ZW5WYXJpYWJsZXMpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoaW1wbCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMuaW1wbCgpKQog
ICAgICAgICAgICAgICAgICAgICBtb2RpZmllZEFyZ3VtZW50cyA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFtX2RlY2xhcmVkUGFyYW1ldGVycy5jb250YWlucygqcHRyKSkKKyAgICAgICAg
ICAgICAgICBpZiAoIW1fZGVjbGFyZWRQYXJhbWV0ZXJzLmNvbnRhaW5zKGltcGwpKQogICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBtb2RpZmllZFBhcmFtZXRl
ciA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC02MjEsMTMgKzU4NCwxMiBAQCBz
dHJ1Y3QgU2NvcGUgewogICAgIGJvb2wgaXNWYWxpZFN0cmljdE1vZGUoKSBjb25zdCB7IHJldHVy
biBtX2lzVmFsaWRTdHJpY3RNb2RlOyB9CiAgICAgYm9vbCBzaGFkb3dzQXJndW1lbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9zaGFkb3dzQXJndW1lbnRzOyB9CiAKLSAgICB2b2lkIGNvcHlDYXB0dXJl
ZFZhcmlhYmxlc1RvVmVjdG9yKGNvbnN0IElkZW50aWZpZXJTZXQmIGNhcHR1cmVkVmFyaWFibGVz
LCBWZWN0b3I8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPj4mIHZlY3RvcikKKyAgICB2b2lkIGNv
cHlDYXB0dXJlZFZhcmlhYmxlc1RvVmVjdG9yKGNvbnN0IFVuaXF1ZWRTdHJpbmdJbXBsUHRyU2V0
JiBjYXB0dXJlZFZhcmlhYmxlcywgVmVjdG9yPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4+JiB2
ZWN0b3IpCiAgICAgewotICAgICAgICBJZGVudGlmaWVyU2V0OjppdGVyYXRvciBlbmQgPSBjYXB0
dXJlZFZhcmlhYmxlcy5lbmQoKTsKLSAgICAgICAgZm9yIChJZGVudGlmaWVyU2V0OjppdGVyYXRv
ciBpdCA9IGNhcHR1cmVkVmFyaWFibGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAg
ICAgICAgICAgaWYgKG1fZGVjbGFyZWRWYXJpYWJsZXMuY29udGFpbnMoKml0KSB8fCBtX2xleGlj
YWxWYXJpYWJsZXMuY29udGFpbnMoKml0KSkKKyAgICAgICAgZm9yIChVbmlxdWVkU3RyaW5nSW1w
bCogaW1wbCA6IGNhcHR1cmVkVmFyaWFibGVzKSB7CisgICAgICAgICAgICBpZiAobV9kZWNsYXJl
ZFZhcmlhYmxlcy5jb250YWlucyhpbXBsKSB8fCBtX2xleGljYWxWYXJpYWJsZXMuY29udGFpbnMo
aW1wbCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB2ZWN0b3IuYXBw
ZW5kKCppdCk7CisgICAgICAgICAgICB2ZWN0b3IuYXBwZW5kKGltcGwpOwogICAgICAgICB9CiAg
ICAgfQogCkBAIC02OTQsNDAgKzY1Niw0MyBAQCBwcml2YXRlOgogICAgICAgICBtX21vZHVsZVNj
b3BlRGF0YSA9IE1vZHVsZVNjb3BlRGF0YTo6Y3JlYXRlKCk7CiAgICAgfQogCisgICAgLy8gQWxs
IHRoZSBmaWVsZHMgaW4gU2NvcGUgbXVzdCBiZSBhYmxlIHRvIHVzZSBtZW1jcHkgYXMgdGhlaXIK
KyAgICAvLyBtb3ZlIG9wZXJhdGlvbiBJZiB5b3UgYWRkIGEgZmllbGQgdGhhdCB2aW9sYXRlcyB0
aGlzLCBtYWtlIHN1cmUKKyAgICAvLyB0byByZW1vdmUgdGhpcyBjb21tZW50IGFuZCB1cGRhdGUg
V1RGOjpWZWN0b3JUcmFpdHM8SlNDOjpTY29wZT4uIAogICAgIGNvbnN0IFZNKiBtX3ZtOwotICAg
IGJvb2wgbV9zaGFkb3dzQXJndW1lbnRzIDogMTsKLSAgICBib29sIG1fdXNlc0V2YWwgOiAxOwot
ICAgIGJvb2wgbV9uZWVkc0Z1bGxBY3RpdmF0aW9uIDogMTsKLSAgICBib29sIG1faGFzRGlyZWN0
U3VwZXIgOiAxOwotICAgIGJvb2wgbV9uZWVkc1N1cGVyQmluZGluZyA6IDE7Ci0gICAgYm9vbCBt
X2FsbG93c1ZhckRlY2xhcmF0aW9ucyA6IDE7Ci0gICAgYm9vbCBtX2FsbG93c0xleGljYWxEZWNs
YXJhdGlvbnMgOiAxOwotICAgIGJvb2wgbV9zdHJpY3RNb2RlIDogMTsKLSAgICBib29sIG1faXNG
dW5jdGlvbiA6IDE7Ci0gICAgYm9vbCBtX2lzR2VuZXJhdG9yIDogMTsKLSAgICBib29sIG1faXNH
ZW5lcmF0b3JCb3VuZGFyeSA6IDE7Ci0gICAgYm9vbCBtX2lzQXJyb3dGdW5jdGlvbiA6IDE7Ci0g
ICAgYm9vbCBtX2lzQXJyb3dGdW5jdGlvbkJvdW5kYXJ5IDogMTsKLSAgICBib29sIG1faXNMZXhp
Y2FsU2NvcGUgOiAxOwotICAgIGJvb2wgbV9pc0Z1bmN0aW9uQm91bmRhcnkgOiAxOwotICAgIGJv
b2wgbV9pc1ZhbGlkU3RyaWN0TW9kZSA6IDE7Ci0gICAgYm9vbCBtX2hhc0FyZ3VtZW50cyA6IDE7
Ci0gICAgYm9vbCBtX2lzRXZhbENvbnRleHQgOiAxOwotICAgIHVuc2lnbmVkIG1fY29uc3RydWN0
b3JLaW5kIDogMjsKLSAgICB1bnNpZ25lZCBtX2V4cGVjdGVkU3VwZXJCaW5kaW5nIDogMjsKKyAg
ICBib29sIG1fc2hhZG93c0FyZ3VtZW50czsKKyAgICBib29sIG1fdXNlc0V2YWw7CisgICAgYm9v
bCBtX25lZWRzRnVsbEFjdGl2YXRpb247CisgICAgYm9vbCBtX2hhc0RpcmVjdFN1cGVyOworICAg
IGJvb2wgbV9uZWVkc1N1cGVyQmluZGluZzsKKyAgICBib29sIG1fYWxsb3dzVmFyRGVjbGFyYXRp
b25zOworICAgIGJvb2wgbV9hbGxvd3NMZXhpY2FsRGVjbGFyYXRpb25zOworICAgIGJvb2wgbV9z
dHJpY3RNb2RlOworICAgIGJvb2wgbV9pc0Z1bmN0aW9uOworICAgIGJvb2wgbV9pc0dlbmVyYXRv
cjsKKyAgICBib29sIG1faXNHZW5lcmF0b3JCb3VuZGFyeTsKKyAgICBib29sIG1faXNBcnJvd0Z1
bmN0aW9uOworICAgIGJvb2wgbV9pc0Fycm93RnVuY3Rpb25Cb3VuZGFyeTsKKyAgICBib29sIG1f
aXNMZXhpY2FsU2NvcGU7CisgICAgYm9vbCBtX2lzRnVuY3Rpb25Cb3VuZGFyeTsKKyAgICBib29s
IG1faXNWYWxpZFN0cmljdE1vZGU7CisgICAgYm9vbCBtX2hhc0FyZ3VtZW50czsKKyAgICBib29s
IG1faXNFdmFsQ29udGV4dDsKKyAgICB1bnNpZ25lZCBtX2NvbnN0cnVjdG9yS2luZDsKKyAgICB1
bnNpZ25lZCBtX2V4cGVjdGVkU3VwZXJCaW5kaW5nOwogICAgIGludCBtX2xvb3BEZXB0aDsKICAg
ICBpbnQgbV9zd2l0Y2hEZXB0aDsKICAgICBJbm5lckFycm93RnVuY3Rpb25Db2RlRmVhdHVyZXMg
bV9pbm5lckFycm93RnVuY3Rpb25GZWF0dXJlczsKIAogICAgIHR5cGVkZWYgVmVjdG9yPFNjb3Bl
TGFiZWxJbmZvLCAyPiBMYWJlbFN0YWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYWJlbFN0YWNr
PiBtX2xhYmVsczsKLSAgICBJZGVudGlmaWVyU2V0IG1fZGVjbGFyZWRQYXJhbWV0ZXJzOworICAg
IFVuaXF1ZWRTdHJpbmdJbXBsUHRyU2V0IG1fZGVjbGFyZWRQYXJhbWV0ZXJzOwogICAgIFZhcmlh
YmxlRW52aXJvbm1lbnQgbV9kZWNsYXJlZFZhcmlhYmxlczsKICAgICBWYXJpYWJsZUVudmlyb25t
ZW50IG1fbGV4aWNhbFZhcmlhYmxlczsKLSAgICBJZGVudGlmaWVyU2V0IG1fdXNlZFZhcmlhYmxl
czsKKyAgICBVbmlxdWVkU3RyaW5nSW1wbFB0clNldCBtX3VzZWRWYXJpYWJsZXM7CiAgICAgSWRl
bnRpZmllclNldCBtX2Nsb3NlZFZhcmlhYmxlQ2FuZGlkYXRlczsKLSAgICBJZGVudGlmaWVyU2V0
IG1fd3JpdHRlblZhcmlhYmxlczsKLSAgICBSZWZQdHI8TW9kdWxlU2NvcGVEYXRhPiBtX21vZHVs
ZVNjb3BlRGF0YSB7IH07CisgICAgVW5pcXVlZFN0cmluZ0ltcGxQdHJTZXQgbV93cml0dGVuVmFy
aWFibGVzOworICAgIFJlZlB0cjxNb2R1bGVTY29wZURhdGE+IG1fbW9kdWxlU2NvcGVEYXRhOwog
ICAgIERlY2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrIG1fZnVuY3Rpb25EZWNsYXJhdGlv
bnM7CiB9OwogCkBAIC0xMDA0LDcgKzk2OSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBpc0dl
bmVyYXRvciA9IG1fc2NvcGVTdGFjay5sYXN0KCkuaXNHZW5lcmF0b3IoKTsKICAgICAgICAgICAg
IGlzQXJyb3dGdW5jdGlvbiA9IG1fc2NvcGVTdGFjay5sYXN0KCkuaXNBcnJvd0Z1bmN0aW9uKCk7
CiAgICAgICAgIH0KLSAgICAgICAgbV9zY29wZVN0YWNrLmFwcGVuZChTY29wZShtX3ZtLCBpc0Z1
bmN0aW9uLCBpc0dlbmVyYXRvciwgaXNTdHJpY3QsIGlzQXJyb3dGdW5jdGlvbikpOworICAgICAg
ICBtX3Njb3BlU3RhY2suY29uc3RydWN0QW5kQXBwZW5kKG1fdm0sIGlzRnVuY3Rpb24sIGlzR2Vu
ZXJhdG9yLCBpc1N0cmljdCwgaXNBcnJvd0Z1bmN0aW9uKTsKICAgICAgICAgcmV0dXJuIGN1cnJl
bnRTY29wZSgpOwogICAgIH0KIApJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9X
VEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTYtMDMtMTcg
IFNhYW0gYmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFNt
YWxsUHRyU2V0IGFuZCBpbnRlZ3JhdGUgaXQgaW50byB0aGUgUGFyc2VyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU1NTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMg
dGhlIFNtYWxsUHRyU2V0IGRhdGEgc3RydXR1cmUuCisgICAgICAgIEluc3BpcmVkIGJ5IHRoZSBp
bXBsZW1lbnRhdGlvbiBpbiBsbHZtOgorICAgICAgICBodHRwOi8vbGx2bS5vcmcvZG9jcy9kb3h5
Z2VuL2h0bWwvU21hbGxQdHJTZXRfOGhfc291cmNlLmh0bWwKKworICAgICAgICBUaGUgZGF0YSBz
dHJ1Y3R1cmUgdXNlcyBhbiBpbmxpbmUgYXJyYXkgZm9yIHN0b3JhZ2UgdXAgdW50aWwKKyAgICAg
ICAgYSBmaXhlZCBsaW1pdCAoOCBlbnRyaWVzIGluIG91ciBpbXBsZW1lbnRhdGlvbikuIElmIHRo
YXQgc3RvcmFnZQorICAgICAgICBmaWxscyB1cCwgd2UgZmFsbCBiYWNrIHRvIGEgc2ltcGxlIGhh
c2ggdGFibGUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIENydWNpYWxseSwgdGhpcyBpbXBsZW1l
bnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgdGhlIHJlbW92ZQorICAgICAgICBvcGVyYXRpb24uIFRo
aXMgaXMgb24gcHVycG9zZS4gVGhlIGhhc2ggdGFibGUgd2lsbCBvbmx5IGV2ZXIKKyAgICAgICAg
Z3Jvdy4KKworICAgICAgICBBbHNvLCB0aGUgaW1wbGVtZW50YXRpb24gYWxsb3dzIGZvciBpdCB0
byBiZSBtZW1jb3BpZWQgYXJvdW5kLgorICAgICAgICBJLmUsIHdlIGNhbiBwdXQgU21hbGxQdHJT
ZXQgaW5zaWRlIGEgVmVjdG9yIGFuZCBhbGxvdyB0aGF0CisgICAgICAgIFZlY3RvciB0byB1c2Ug
bWVtY3B5IGFzIGl0cyBtb3ZlIG9wZXJhdGlvbiAob2YgY291cnNlIHRoaXMKKyAgICAgICAgaXMg
b25seSB2YWxpZCBpZiB0aGUgU21hbGxQdHJTZXQgaW4gdGhlIG9sZCBtZW1vcnkgZG9lc24ndCBo
YXZlIAorICAgICAgICBpdHMgZGVzdHJ1Y3RvciBjYWxsZWQgdW5sZXNzIGl0IGlzIHNldCBiYWNr
IHRvIGl0cyBpbml0aWFsIHN0YXRlLikKKworICAgICAgICBGb3Igbm93LCBTbWFsbFB0clNldCBv
bmx5IHN1cHBvcnRzIHBvaW50ZXIgdHlwZXMgdGhhdCBhcmUgdHJpdmlhbGx5CisgICAgICAgIGRl
c3RydWN0aWJsZS4gSXQncyBwcm9iYWJseSBub3QgdG9vIGRpZmZpY3VsdCB0byBleHRlbmQgdGhp
cyB0bworICAgICAgICBzbWFydCBwb2ludGVycywgYnV0IGl0J3Mgbm90IHBhcnQgb2YgdGhpcyBv
cmlnaW5hbCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBJJ3ZlIGFsc28gaW1wbGVtZW50ZWQg
YSBwdXJlIGZvcndhcmRpbmcgdmFyYXJncyBjb25zdHJ1Y3RBbmRBcHBlbmQKKyAgICAgICAgbWV0
aG9kIG9uIFZlY3Rvci4gVGhpcyBhbGxvd3MgeW91IHRvIGRvOgorICAgICAgICBWZWN0b3I8VD4g
djsKKyAgICAgICAgdi5jb25zdHJ1Y3RBbmRBcHBlbmQoYTEsIGEyLCAuLi4pCisgICAgICAgIGFz
IGxvbmcgYXMgVCBoYXMgYSBjb25zdHJ1Y3RvciB0aGF0IGFjY2VwdHMgYXJndW1lbnRzIChhMSwg
YTIsIC4uLikuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL1NtYWxsUHRyU2V0Lmg6
IEFkZGVkLgorICAgICAgICAoV1RGOjpTbWFsbFB0clNldDo6U21hbGxQdHJTZXQpOgorICAgICAg
ICAoV1RGOjpTbWFsbFB0clNldDo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdURjo6U21hbGxQdHJT
ZXQ6On5TbWFsbFB0clNldCk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjphZGQpOgorICAg
ICAgICAoV1RGOjpTbWFsbFB0clNldDo6Y29udGFpbnMpOgorICAgICAgICAoV1RGOjpTbWFsbFB0
clNldDo6aXRlcmF0b3I6Om9wZXJhdG9yKyspOgorICAgICAgICAoV1RGOjpTbWFsbFB0clNldDo6
aXRlcmF0b3I6Om9wZXJhdG9yKik6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjppdGVyYXRv
cjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjppdGVyYXRvcjo6b3Bl
cmF0b3IhPSk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjpiZWdpbik6CisgICAgICAgIChX
VEY6OlNtYWxsUHRyU2V0OjplbmQpOgorICAgICAgICAoV1RGOjpTbWFsbFB0clNldDo6c2l6ZSk6
CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjplbXB0eVZhbHVlKToKKyAgICAgICAgKFdURjo6
U21hbGxQdHJTZXQ6OmlzVmFsaWRFbnRyeSk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0Ojpp
c1NtYWxsKToKKyAgICAgICAgKFdURjo6U21hbGxQdHJTZXQ6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV1RGOjpTbWFsbFB0clNldDo6Z3Jvdyk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0Ojpi
dWNrZXQpOgorICAgICAgICAqIHd0Zi9WZWN0b3IuaDoKKyAgICAgICAgKFdURjo6VmVjdG9yOjph
cHBlbmQpOgorICAgICAgICAoV1RGOjpWZWN0b3I6OnVuY2hlY2tlZEFwcGVuZCk6CisgICAgICAg
IChXVEY6Om1pbkNhcGFjaXR5Pjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6bWluQ2FwYWNpdHk+
Ojpjb25zdHJ1Y3RBbmRBcHBlbmQpOgorICAgICAgICAoV1RGOjptaW5DYXBhY2l0eT46OmFwcGVu
ZFNsb3dDYXNlKToKKyAgICAgICAgKFdURjo6bWluQ2FwYWNpdHk+Ojpjb25zdHJ1Y3RBbmRBcHBl
bmRTbG93Q2FzZSk6CisKIDIwMTYtMDMtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBTZXQgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcydzIG1haW4gdGhyZWFkIFFv
UyB0byBVU0VSLUlOVEVSQUNUSVZFCkluZGV4OiBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw2ICsxMDYsNyBAQAogCQk3
MEVDQTYwRDFCMDI0MjY4MDA0NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MEVDQTYwQTFCMDI0MjY4MDA0
NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5jcHAgKi87IH07CiAJCTcwRUNBNjBFMUIwMjQyNjgw
MDQ0OTczOSAvKiBTeW1ib2xJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MEVDQTYwQjFCMDI0MjY4MDA0NDk3MzkgLyogU3ltYm9sSW1wbC5oICov
OyB9OwogCQk3MEVDQTYwRjFCMDI0MjY4MDA0NDk3MzkgLyogVW5pcXVlZFN0cmluZ0ltcGwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcwRUNBNjBDMUIw
MjQyNjgwMDQ0OTczOSAvKiBVbmlxdWVkU3RyaW5nSW1wbC5oICovOyB9OworCQk3OUVDNzA2MTFD
OTlGOUJDMDAzQTNBRTIgLyogU21hbGxQdHJTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MzZENkE5MUM5OUY4QUUwMDBEMUFFRCAvKiBTbWFsbFB0
clNldC5oICovOyB9OwogCQk3Q0JCQTA3NDE5QkI3RkRDMDBCQkYwMjUgLyogT1NPYmplY3RQdHIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQkJBMDcz
MTlCQjdGREMwMEJCRjAyNSAvKiBPU09iamVjdFB0ci5oICovOyB9OwogCQk3Q0REN0ZGODE4NkQy
OTFFMDA3NDMzQ0QgLyogSXRlcmF0b3JBZGFwdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NERDdGRjcxODZEMjkxRTAwNzQzM0NEIC8qIEl0ZXJh
dG9yQWRhcHRvcnMuaCAqLzsgfTsKIAkJN0NERDdGRkExODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJh
dG9yUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDREQ3RkY5MTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVyYXRvclJhbmdlLmggKi87IH07CkBAIC00
MjEsNiArNDIyLDcgQEAKIAkJNzBFQ0E2MEExQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmlu
Z0ltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXRvbWljU3Ry
aW5nSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcwRUNBNjBCMUIwMjQy
NjgwMDQ0OTczOSAvKiBTeW1ib2xJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN5bWJvbEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzBFQ0E2MEMx
QjAyNDI2ODAwNDQ5NzM5IC8qIFVuaXF1ZWRTdHJpbmdJbXBsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFVuaXF1ZWRTdHJpbmdJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTc5MzZENkE5MUM5OUY4QUUwMDBEMUFFRCAvKiBTbWFsbFB0clNldC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbWFsbFB0clNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Q0JCQTA3MzE5QkI3RkRDMDBCQkYwMjUgLyogT1NPYmplY3RQdHIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT1NPYmplY3RQdHIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NERDdGRjcxODZEMjkxRTAwNzQzM0NEIC8qIEl0ZXJh
dG9yQWRhcHRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSXRlcmF0b3JB
ZGFwdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0REN0ZGOTE4NkQyQTU0
MDA3NDMzQ0QgLyogSXRlcmF0b3JSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJdGVyYXRvclJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MTQs
NiArOTE2LDcgQEAKIAkJCQlBNzQ4NzQ0RjE3QTBCREFFMDBGQTA0Q0IgLyogU2l4Q2hhcmFjdGVy
SGFzaC5jcHAgKi8sCiAJCQkJQTc0ODc0NTAxN0EwQkRBRTAwRkEwNENCIC8qIFNpeENoYXJhY3Rl
ckhhc2guaCAqLywKIAkJCQlBOEE0NzMwQzE1MUE4MjVCMDA0MTIzRkYgLyogU2l6ZUxpbWl0cy5j
cHAgKi8sCisJCQkJNzkzNkQ2QTkxQzk5RjhBRTAwMEQxQUVEIC8qIFNtYWxsUHRyU2V0LmggKi8s
CiAJCQkJQThBNDczMEQxNTFBODI1QjAwNDEyM0ZGIC8qIFNwZWN0cnVtLmggKi8sCiAJCQkJQThB
NDczMEUxNTFBODI1QjAwNDEyM0ZGIC8qIFN0YWNrQm91bmRzLmNwcCAqLywKIAkJCQlBOEE0NzMw
RjE1MUE4MjVCMDA0MTIzRkYgLyogU3RhY2tCb3VuZHMuaCAqLywKQEAgLTExNTAsNiArMTE1Myw3
IEBACiAJCQkJQThBNDczOTUxNTFBODI1QjAwNDEyM0ZGIC8qIENoZWNrZWRCb29sZWFuLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzQ1RjE1MUE4MjVCMDA0MTIzRkYgLyogQ29sbGF0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzRFREU2MTY5NjE0OTYwMEY2NTA0MSAvKiBDb21tYVByaW50
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTc5RUM3MDYxMUM5OUY5QkMwMDNBM0FFMiAvKiBTbWFs
bFB0clNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREU1QTA5RkMxQkEzNjk5MjAwM0Q0NDI0IC8q
IENvbW1vbkNyeXB0b1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RjJCOTExNzJFMDBGQzAw
N0RCREE1IC8qIENvbXBpbGF0aW9uVGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzM5
ODE1MUE4MjVCMDA0MTIzRkYgLyogQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05NCw2ICs5NCw3IEBAIHNldChXVEZfSEVBREVS
UwogICAgIFNhdHVyYXRlZEFyaXRobWV0aWMuaAogICAgIFNjb3BlZExhbWJkYS5oCiAgICAgU2Vn
bWVudGVkVmVjdG9yLmgKKyAgICBTbWFsbFB0clNldC5oCiAgICAgU3RhY2tCb3VuZHMuaAogICAg
IFN0YWNrU3RhdHMuaAogICAgIFN0YXRpY0NvbnN0cnVjdG9ycy5oCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9TbWFsbFB0clNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1NtYWxsUHRy
U2V0LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV1RGL3d0Zi9TbWFsbFB0clNldC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgU21hbGxQdHJTZXRfaAorI2RlZmluZSBTbWFsbFB0
clNldF9oCisKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9GYXN0
TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFB0
clR5cGU+CitjbGFzcyBTbWFsbFB0clNldCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU21h
bGxQdHJTZXQpOworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3Rp
YmxlPFB0clR5cGU+Ojp2YWx1ZSwgIldlIGRvbnQgc3VwcG9ydCBub24tdHJpdmlhbGx5IGRlc3Ry
dWN0aWJsZSBwb2ludGVyIHR5cGVzIG5vdy4iKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihQ
dHJUeXBlKSA9PSBzaXplb2Yodm9pZCopLCAiT25seSBzdXBwb3J0IHBvaW50ZXIgc2l6ZWQgdGhp
bmdzLiIpOworCitwdWJsaWM6IAorICAgIFNtYWxsUHRyU2V0KCkKKyAgICB7CisgICAgICAgIGlu
aXRpYWxpemUoKTsKKyAgICB9CisKKyAgICAvLyBXZSB0YWtlIGNhcmUgdG8gaGF2ZSBTbWFsbFB0
clNldCBoYXZlIHBhcnRpYWwgbW92ZSBzZW1hbnRpY3MgYWxsb3dhYmxlIHRocm91Z2gKKyAgICAv
LyBtZW1jcHkuIEl0J3MgcGFydGlhbCBtb3ZlIHNlbWFudGljcyBiZWNhdXNlIHRoZSBvbGQgbWVt
b3J5IHdlJ3ZlIG1vdmVkIGZyb20KKyAgICAvLyBzaG91bGQgbm90IGJlIGRlc3Ryb3llZCBhZnRl
cndhcmRzIChvdGhlcndpc2UsIHdlIG1pZ2h0IGZyZWUgbV9idWZmZXIgdHdpY2UpCisgICAgLy8g
dW5sZXNzIHRoYXQgb2xkIG1lbW9yeSBpcyByZXNldCB0byBiZSBpc1NtYWxsKCkuIFNlZSBtb3Zl
IGNvbnN0cnVjdG9yIGJlbG93LgorICAgIC8vIFRvIG1haW50YWluIHRoZXNlIHNlbWFudGljcywg
d2UgZGV0ZXJtaW5lIGlmIHdlJ3JlIHNtYWxsIGJ5IGNoZWNraW5nIG91ciBzaXplCisgICAgLy8g
YW5kIG5vdCBvdXIgbV9idWZmZXIgcG9pbnRlci4gQW5kIHdoZW4gd2UncmUgc21hbGwsIHdlIGRv
bid0IGRvIG9wZXJhdGlvbnMgb24KKyAgICAvLyBtX2J1ZmZlciwgaW5zdGVhZCwgd2UgcGVyZm9y
bSBvcGVyYXRpb25zIG9uIG1fc21hbGxTdG9yYWdlIGRpcmVjdGx5LiBUaGUgcmVhc29uIHdlIHdh
bnQKKyAgICAvLyB0aGVzZSBzZW1hbnRpY3MgaXMgdGhhdCBpdCdzIGJlbmVmaWNpYWwgdG8gaGF2
ZSBhIFZlY3RvciB0aGF0IGNvbnRhaW5zIFNtYWxsUHRyU2V0CisgICAgLy8gKG9yIGFuIG9iamVj
dCB3aXRoIFNtYWxsUHRyU2V0IGFzIGEgZmllbGQpIGJlIGFsbG93ZWQgdG8gdXNlIG1lbWNweSBm
b3IgaXRzIG1vdmUgb3BlcmF0aW9uLgorCisgICAgU21hbGxQdHJTZXQoU21hbGxQdHJTZXQmJiBv
dGhlcikKKyAgICB7CisgICAgICAgICp0aGlzID0gV1RGTW92ZShvdGhlcik7CisgICAgfQorCisg
ICAgU21hbGxQdHJTZXQmIG9wZXJhdG9yPShTbWFsbFB0clNldCYmIG90aGVyKQorICAgIHsKKyAg
ICAgICAgbWVtY3B5KHRoaXMsICZvdGhlciwgc2l6ZW9mKFNtYWxsUHRyU2V0KSk7CisgICAgICAg
IG90aGVyLmluaXRpYWxpemUoKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAg
IH5TbWFsbFB0clNldCgpCisgICAgeworICAgICAgICBpZiAoIWlzU21hbGwoKSkKKyAgICAgICAg
ICAgIGZhc3RGcmVlKG1fYnVmZmVyKTsKKyAgICB9CisKKyAgICBpbmxpbmUgdm9pZCBhZGQoUHRy
VHlwZSBwdHIpCisgICAgeworICAgICAgICBBU1NFUlQoaXNWYWxpZEVudHJ5KHB0cikpOworCisg
ICAgICAgIGlmIChpc1NtYWxsKCkpIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX3NpemU7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChtX3NtYWxsU3RvcmFnZVtp
XSA9PSBwdHIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgaWYgKG1fc2l6ZSA8IFNtYWxsQXJyYXlTaXplKSB7CisgICAgICAgICAgICAg
ICAgbV9zbWFsbFN0b3JhZ2VbbV9zaXplXSA9IHB0cjsKKyAgICAgICAgICAgICAgICBtX3NpemUr
KzsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGdyb3coNjQpOworICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLiBXZSdyZSBubyBsb25nZXIg
c21hbGwgOigKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHdlJ3JlIG1vcmUgdGhhbiAzLzR0
aHMgZnVsbCB3ZSBncm93LgorICAgICAgICBpZiAoVU5MSUtFTFkobV9zaXplICogNCA+PSBtX2Nh
cGFjaXR5ICogMykpIHsKKyAgICAgICAgICAgIGdyb3cobV9jYXBhY2l0eSAqIDIpOworICAgICAg
ICAgICAgQVNTRVJUKCEobV9jYXBhY2l0eSAmIChtX2NhcGFjaXR5IC0gMSkpKTsKKyAgICAgICAg
fQorCisgICAgICAgIHZvaWQqKiBidWNrZXQgPSB0aGlzLT5idWNrZXQocHRyKTsKKyAgICAgICAg
aWYgKCpidWNrZXQgIT0gcHRyKSB7CisgICAgICAgICAgICAqYnVja2V0ID0gcHRyOworICAgICAg
ICAgICAgbV9zaXplKys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpbmxpbmUgYm9vbCBjb250
YWlucyhQdHJUeXBlIHB0cikKKyAgICB7CisgICAgICAgIEFTU0VSVChpc1ZhbGlkRW50cnkocHRy
KSk7CisgICAgICAgIGlmIChpc1NtYWxsKCkpIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBtX3NpemU7IGkrKykgeyAvLyBXZSBjYW4gc2VhcmNoIHVwIHRvICJtX3NpemUi
IGJlY2F1c2Ugd2Ugc3RvcmUgdGhpbmdzIGxpbmVhcmx5IGluc2lkZSB0aGlzIGJ1ZmZlci4KKyAg
ICAgICAgICAgICAgICBpZiAobV9zbWFsbFN0b3JhZ2VbaV0gPT0gcHRyKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQqKiBidWNrZXQgPSB0aGlzLT5idWNrZXQo
cHRyKTsKKyAgICAgICAgcmV0dXJuICpidWNrZXQgPT0gcHRyOworICAgIH0KKworICAgIGNsYXNz
IGl0ZXJhdG9yIHsKKyAgICBwdWJsaWM6CisgICAgICAgIGl0ZXJhdG9yJiBvcGVyYXRvcisrKCkK
KyAgICAgICAgeworICAgICAgICAgICAgbV9pbmRleCsrOworICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQobV9pbmRleCA8PSBtX2NhcGFjaXR5KTsKKyAgICAgICAgICAgIHdoaWxlIChtX2luZGV4
IDwgbV9jYXBhY2l0eSAmJiBtX2J1ZmZlclttX2luZGV4XSA9PSBlbXB0eVZhbHVlKCkpCisgICAg
ICAgICAgICAgICAgbV9pbmRleCsrOworICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBQdHJUeXBlIG9wZXJhdG9yKigpIGNvbnN0IHsgQVNTRVJU
KG1faW5kZXggPCBtX2NhcGFjaXR5KTsgcmV0dXJuIHN0YXRpY19jYXN0PFB0clR5cGU+KG1fYnVm
ZmVyW21faW5kZXhdKTsgfQorICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgaXRlcmF0b3Im
IG90aGVyKSBjb25zdCB7IEFTU0VSVChtX2J1ZmZlciA9PSBvdGhlci5tX2J1ZmZlcik7IHJldHVy
biBtX2luZGV4ID09IG90aGVyLm1faW5kZXg7IH0KKyAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QgeyBBU1NFUlQobV9idWZmZXIgPT0gb3RoZXIubV9i
dWZmZXIpOyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KKworICAgIHByaXZhdGU6CisgICAg
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGZyaWVuZCBjbGFzcyBXVEY6OlNtYWxsUHRyU2V0Owor
ICAgICAgICB1bnNpZ25lZCBtX2luZGV4OworICAgICAgICB1bnNpZ25lZCBtX2NhcGFjaXR5Owor
ICAgICAgICB2b2lkKiogbV9idWZmZXI7CisgICAgfTsKKworICAgIGl0ZXJhdG9yIGJlZ2luKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIGl0ZXJhdG9yIGl0OworICAgICAgICBpdC5tX2luZGV4ID0g
LTE7CisgICAgICAgIGl0Lm1fY2FwYWNpdHkgPSBtX2NhcGFjaXR5OworICAgICAgICBpZiAoaXNT
bWFsbCgpKQorICAgICAgICAgICAgaXQubV9idWZmZXIgPSBjb25zdF9jYXN0PHZvaWQqKj4obV9z
bWFsbFN0b3JhZ2UpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpdC5tX2J1ZmZlciA9IG1f
YnVmZmVyOworCisgICAgICAgICsraXQ7CisKKyAgICAgICAgcmV0dXJuIGl0OworICAgIH0KKwor
ICAgIGl0ZXJhdG9yIGVuZCgpIGNvbnN0CisgICAgeworICAgICAgICBpdGVyYXRvciBpdDsKKyAg
ICAgICAgaXQubV9pbmRleCA9IG1fY2FwYWNpdHk7CisgICAgICAgIGl0Lm1fY2FwYWNpdHkgPSBt
X2NhcGFjaXR5OworICAgICAgICBpZiAoaXNTbWFsbCgpKQorICAgICAgICAgICAgaXQubV9idWZm
ZXIgPSBjb25zdF9jYXN0PHZvaWQqKj4obV9zbWFsbFN0b3JhZ2UpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBpdC5tX2J1ZmZlciA9IG1fYnVmZmVyOworCisgICAgICAgIHJldHVybiBpdDsK
KyAgICB9CisKKyAgICBpbmxpbmUgdW5zaWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6
ZTsgfQorCitwcml2YXRlOgorCisgICAgY29uc3RleHByIHN0YXRpYyB2b2lkKiBlbXB0eVZhbHVl
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0ZDo6bnVtZXJp
Y19saW1pdHM8dWludHB0cl90Pjo6bWF4KCkpOworICAgIH0KKworICAgIGJvb2wgaXNWYWxpZEVu
dHJ5KGNvbnN0IFB0clR5cGUgcHRyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHB0ciAh
PSBlbXB0eVZhbHVlKCk7CisgICAgfQorCisgICAgaW5saW5lIGJvb2wgaXNTbWFsbCgpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gbV9jYXBhY2l0eSA9PSBTbWFsbEFycmF5U2l6ZTsKKyAg
ICB9CisKKyAgICBpbmxpbmUgdm9pZCBpbml0aWFsaXplKCkKKyAgICB7CisgICAgICAgIG1fc2l6
ZSA9IDA7CisgICAgICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgbV9jYXBhY2l0eSA9
IFNtYWxsQXJyYXlTaXplOworICAgICAgICBtZW1zZXQobV9zbWFsbFN0b3JhZ2UsIC0xLCBzaXpl
b2Yodm9pZCopICogU21hbGxBcnJheVNpemUpOworICAgICAgICBBU1NFUlQoaXNTbWFsbCgpKTsK
KyAgICB9CisKKyAgICBpbmxpbmUgdm9pZCBncm93KHVuc2lnbmVkIHNpemUpCisgICAgeworICAg
ICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8aW50MzJfdD4oYml0d2lzZV9jYXN0PGludHB0cl90Pihl
bXB0eVZhbHVlKCkpKSA9PSAtMSk7CisgICAgICAgIHNpemVfdCBhbGxvY2F0aW9uU2l6ZSA9IHNp
emVvZih2b2lkKikgKiBzaXplOworCisgICAgICAgIGJvb2wgd2FzU21hbGwgPSBpc1NtYWxsKCk7
CisgICAgICAgIHZvaWQqKiBvbGRCdWZmZXIgPSB3YXNTbWFsbCA/IG1fc21hbGxTdG9yYWdlIDog
bV9idWZmZXI7CisgICAgICAgIHVuc2lnbmVkIG9sZENhcGFjaXR5ID0gbV9jYXBhY2l0eTsKKyAg
ICAgICAgbV9idWZmZXIgPSBzdGF0aWNfY2FzdDx2b2lkKio+KGZhc3RNYWxsb2MoYWxsb2NhdGlv
blNpemUpKTsKKyAgICAgICAgbWVtc2V0KG1fYnVmZmVyLCAtMSwgYWxsb2NhdGlvblNpemUpOwor
ICAgICAgICBtX2NhcGFjaXR5ID0gc2l6ZTsKKworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgb2xkQ2FwYWNpdHk7IGkrKykgeworICAgICAgICAgICAgaWYgKG9sZEJ1ZmZlcltpXSAh
PSBlbXB0eVZhbHVlKCkpIHsKKyAgICAgICAgICAgICAgICB2b2lkKiogcHRyID0gdGhpcy0+YnVj
a2V0KHN0YXRpY19jYXN0PFB0clR5cGU+KG9sZEJ1ZmZlcltpXSkpOworICAgICAgICAgICAgICAg
ICpwdHIgPSBvbGRCdWZmZXJbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoIXdhc1NtYWxsKQorICAgICAgICAgICAgZmFzdEZyZWUob2xkQnVmZmVyKTsKKyAgICB9
CisKKworICAgIGlubGluZSB2b2lkKiogYnVja2V0KFB0clR5cGUgdGFyZ2V0KSBjb25zdAorICAg
IHsKKyAgICAgICAgQVNTRVJUKCEobV9jYXBhY2l0eSAmIChtX2NhcGFjaXR5IC0gMSkpKTsKKyAg
ICAgICAgdW5zaWduZWQgYnVja2V0ID0gUHRySGFzaEJhc2U8UHRyVHlwZSwgZmFsc2UgLyogaXNT
bWFydFB0ciAqLz46Omhhc2godGFyZ2V0KSAmIChtX2NhcGFjaXR5IC0gMSk7CisgICAgICAgIHVu
c2lnbmVkIGluZGV4ID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHZv
aWQqKiBwdHIgPSBtX2J1ZmZlciArIGJ1Y2tldDsKKyAgICAgICAgICAgIGlmICgqcHRyID09IGVt
cHR5VmFsdWUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcHRyOworICAgICAgICAgICAgaWYg
KCpwdHIgPT0gdGFyZ2V0KQorICAgICAgICAgICAgICAgIHJldHVybiBwdHI7CisgICAgICAgICAg
ICBpbmRleCsrOworICAgICAgICAgICAgYnVja2V0ID0gKGJ1Y2tldCArIGluZGV4KSAmIChtX2Nh
cGFjaXR5IC0gMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU21hbGxBcnJheVNpemUgPSA4OworCisgICAgdW5zaWduZWQgbV9zaXplOworICAgIHVuc2ln
bmVkIG1fY2FwYWNpdHk7CisgICAgdm9pZCoqIG1fYnVmZmVyOworICAgIHZvaWQqIG1fc21hbGxT
dG9yYWdlW1NtYWxsQXJyYXlTaXplXTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2lu
ZyBXVEY6OlNtYWxsUHRyU2V0OworCisjZW5kaWYgLy8gU21hbGxQdHJTZXRfaApJbmRleDogU291
cmNlL1dURi93dGYvVmVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvVmVjdG9y
LmgJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC03MjUsNiArNzI1LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBhcHBlbmQoVmFs
dWVUeXBlJiYgdmFsdWUpIHsgYXBwZW5kPFZhbHVlVHlwZT4oc3RkOjpmb3J3YXJkPFZhbHVlVHlw
ZT4odmFsdWUpKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgYXBwZW5kKFUmJik7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gdm9pZCBjb25zdHJ1Y3RBbmRBcHBlbmQo
QXJncyYmLi4uKTsKIAogICAgIHZvaWQgdW5jaGVja2VkQXBwZW5kKFZhbHVlVHlwZSYmIHZhbHVl
KSB7IHVuY2hlY2tlZEFwcGVuZDxWYWx1ZVR5cGU+KHN0ZDo6Zm9yd2FyZDxWYWx1ZVR5cGU+KHZh
bHVlKSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiB2b2lkIHVuY2hlY2tlZEFwcGVuZChV
JiYpOwpAQCAtNzg3LDYgKzc4OCw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgVCogdHJ5RXhwYW5k
Q2FwYWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5LCBjb25zdCBUKik7CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVT4gVSogZXhwYW5kQ2FwYWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5LCBVKik7
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgYXBwZW5kU2xvd0Nhc2UoVSYmKTsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiB2b2lkIGNvbnN0cnVjdEFuZEFwcGVuZFNsb3dD
YXNlKEFyZ3MmJi4uLik7CiAKICAgICB2b2lkIGFzYW5TZXRJbml0aWFsQnVmZmVyU2l6ZVRvKHNp
emVfdCk7CiAgICAgdm9pZCBhc2FuU2V0QnVmZmVyU2l6ZVRvRnVsbENhcGFjaXR5KCk7CkBAIC0x
MjE0LDYgKzEyMTYsMTkgQEAgQUxXQVlTX0lOTElORSB2b2lkIFZlY3RvcjxULCBpbmxpbmVDYXBh
YwogICAgIGFwcGVuZFNsb3dDYXNlKHN0ZDo6Zm9yd2FyZDxVPih2YWx1ZSkpOwogfQogCit0ZW1w
bGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93
SGFuZGxlciwgc2l6ZV90IG1pbkNhcGFjaXR5PiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPgor
QUxXQVlTX0lOTElORSB2b2lkIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5k
bGVyLCBtaW5DYXBhY2l0eT46OmNvbnN0cnVjdEFuZEFwcGVuZChBcmdzJiYuLi4gYXJncykKK3sK
KyAgICBpZiAoc2l6ZSgpICE9IGNhcGFjaXR5KCkpIHsKKyAgICAgICAgYXNhbkJ1ZmZlclNpemVX
aWxsQ2hhbmdlVG8obV9zaXplICsgMSk7CisgICAgICAgIG5ldyAoTm90TnVsbCwgZW5kKCkpIFQo
c3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKKyAgICAgICAgKyttX3NpemU7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdHJ1Y3RBbmRBcHBlbmRTbG93Q2FzZShzdGQ6OmZv
cndhcmQ8QXJncz4oYXJncykuLi4pOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3Qg
aW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbkNhcGFj
aXR5PiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgogdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHks
IE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+OjphcHBlbmRTbG93Q2FzZShVJiYgdmFsdWUp
CiB7CkBAIC0xMjI4LDYgKzEyNDMsMTkgQEAgdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHks
IE92ZXJmbG93SAogICAgICsrbV9zaXplOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXpl
X3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbkNh
cGFjaXR5PiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPgordm9pZCBWZWN0b3I8VCwgaW5saW5l
Q2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+Ojpjb25zdHJ1Y3RBbmRBcHBl
bmRTbG93Q2FzZShBcmdzJiYuLi4gYXJncykKK3sKKyAgICBBU1NFUlQoc2l6ZSgpID09IGNhcGFj
aXR5KCkpOworCisgICAgZXhwYW5kQ2FwYWNpdHkoc2l6ZSgpICsgMSk7CisgICAgQVNTRVJUKGJl
Z2luKCkpOworCisgICAgYXNhbkJ1ZmZlclNpemVXaWxsQ2hhbmdlVG8obV9zaXplICsgMSk7Cisg
ICAgbmV3IChOb3ROdWxsLCBlbmQoKSkgVChzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwor
ICAgICsrbV9zaXplOworfQorCiAvLyBUaGlzIHZlcnNpb24gb2YgYXBwZW5kIHNhdmVzIGEgYnJh
bmNoIGluIHRoZSBjYXNlIHdoZXJlIHlvdSBrbm93IHRoYXQgdGhlCiAvLyB2ZWN0b3IncyBjYXBh
Y2l0eSBpcyBsYXJnZSBlbm91Z2ggZm9yIHRoZSBhcHBlbmQgdG8gc3VjY2VlZC4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274347</attachid>
            <date>2016-03-17 17:44:41 -0700</date>
            <delta_ts>2016-03-17 17:45:33 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>29547</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4MzYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE2LTAzLTE3ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBTbWFsbFB0clNldCBhbmQgaW50ZWdyYXRlIGl0IGludG8gdGhlIFBhcnNlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NTUyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNpbmcgU21h
bGxQdHJTZXQgaW5zdGVhZCBvZiBIYXNoU2V0IHJlYWxseSBoZWxwcyBzcGVlZAorICAgICAgICB1
cCB0aGUgcGFyc2VyLiBXaGF0IHNhdmVzIHVzIG1vc3QgaXMgbm90IG5lZWRpbmcgdG8gYWx3YXlz
CisgICAgICAgIG1hbGxvYy9mcmVlIG1lbW9yeSBpbiB0aGUgSGFzaFNldC4KKworICAgICAgICAq
IHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFy
c2VJbm5lcik6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5oOgorICAgICAgICAoSlNDOjpTY29w
ZTo6U2NvcGUpOgorICAgICAgICAoSlNDOjpTY29wZTo6c3RhcnRTd2l0Y2gpOgorICAgICAgICAo
SlNDOjpTY29wZTo6aGFzRGVjbGFyZWRQYXJhbWV0ZXIpOgorICAgICAgICAoSlNDOjpTY29wZTo6
ZGVjbGFyZVdyaXRlKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmRlY2xhcmVQYXJhbWV0ZXIpOgor
ICAgICAgICAoSlNDOjpTY29wZTo6dXNlZFZhcmlhYmxlc0NvbnRhaW5zKToKKyAgICAgICAgKEpT
Qzo6U2NvcGU6OnVzZVZhcmlhYmxlKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmNvbGxlY3RGcmVl
VmFyaWFibGVzKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmdldENhcHR1cmVkVmFycyk6CisgICAg
ICAgIChKU0M6OlNjb3BlOjppc1ZhbGlkU3RyaWN0TW9kZSk6CisgICAgICAgIChKU0M6OlNjb3Bl
OjpzaGFkb3dzQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OmNvcHlDYXB0dXJlZFZh
cmlhYmxlc1RvVmVjdG9yKToKKyAgICAgICAgKEpTQzo6U2NvcGU6OnNldElzTW9kdWxlKToKKyAg
ICAgICAgKEpTQzo6UGFyc2VyOjpwdXNoU2NvcGUpOgorICAgICAgICAoSlNDOjpTY29wZTo6Z2V0
VXNlZFZhcmlhYmxlcyk6IERlbGV0ZWQuCisKIDIwMTYtMDMtMTcgIFNhYW0gYmFyYXRpICA8c2Jh
cmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0VTNl0gTWFrZSBHZXRQcm9wZXJ0eSguKSBpbnNp
ZGUgQXJyYXlQcm90b3R5cGUuY3BwIHNwZWMgY29tcGF0aWJsZS4KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzExLDEw
ICszMTEsOCBAQCBTdHJpbmcgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlSW5uZXIoY29uCiAgICAg
Zm9yIChhdXRvJiBlbnRyeSA6IGNhcHR1cmVkVmFyaWFibGVzKQogICAgICAgICB2YXJEZWNsYXJh
dGlvbnMubWFya1ZhcmlhYmxlQXNDYXB0dXJlZChlbnRyeSk7CiAKLSAgICBJZGVudGlmaWVyU2V0
IHVzZWRWYXJpYWJsZXM7Ci0gICAgc2NvcGUtPmdldFVzZWRWYXJpYWJsZXModXNlZFZhcmlhYmxl
cyk7CiAgICAgaWYgKHBhcnNlTW9kZSA9PSBTb3VyY2VQYXJzZU1vZGU6OkdlbmVyYXRvcldyYXBw
ZXJGdW5jdGlvbk1vZGUpIHsKLSAgICAgICAgaWYgKHVzZWRWYXJpYWJsZXMuY29udGFpbnMobV92
bS0+cHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLmltcGwoKSkpCisgICAgICAgIGlmIChzY29wZS0+
dXNlZFZhcmlhYmxlc0NvbnRhaW5zKG1fdm0tPnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cy5pbXBs
KCkpKQogICAgICAgICAgICAgY29udGV4dC5wcm9wYWdhdGVBcmd1bWVudHNVc2UoKTsKICAgICB9
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAkocmV2aXNpb24gMTk4
MzYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNDAsMTMgKzQwLDE1IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1NtYWxsUHRyU2V0Lmg+CisKIG5hbWVzcGFjZSBKU0Mgewogc3RydWN0IFNjb3BlOwog
fQogCiBuYW1lc3BhY2UgV1RGIHsKLXRlbXBsYXRlIDw+IHN0cnVjdCBWZWN0b3JUcmFpdHM8SlND
OjpTY29wZT4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7Ci0gICAgc3RhdGljIGNvbnN0IGJv
b2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSBmYWxzZTsgLy8gTm90IGFsbCBTY29wZSBkYXRh
IG1lbWJlcnMgaW5pdGlhbGl6ZSB0byAwLgordGVtcGxhdGUgPD4gc3RydWN0IFZlY3RvclRyYWl0
czxKU0M6OlNjb3BlPiA6IFZlY3RvclRyYWl0c0Jhc2U8LyogaXMgcG9kICovIGZhbHNlLCB2b2lk
PiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuTW92ZVdpdGhNZW1jcHkgPSB0cnVlOwogfTsK
IH0KIApAQCAtNjAsNiArNjIsOCBAQCBjbGFzcyBWTTsKIGNsYXNzIFByb2dyYW1Ob2RlOwogY2xh
c3MgU291cmNlQ29kZTsKIAordHlwZWRlZiBTbWFsbFB0clNldDxVbmlxdWVkU3RyaW5nSW1wbCo+
IFVuaXF1ZWRTdHJpbmdJbXBsUHRyU2V0OworCiAvLyBNYWNyb3MgdG8gbWFrZSB0aGUgbW9yZSBj
b21tb24gVHJlZUJ1aWxkZXIgdHlwZXMgYSBsaXR0bGUgbGVzcyB2ZXJib3NlCiAjZGVmaW5lIFRy
ZWVTdGF0ZW1lbnQgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlN0YXRlbWVudAogI2RlZmluZSBUcmVl
RXhwcmVzc2lvbiB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6RXhwcmVzc2lvbgpAQCAtMTU4LDYgKzE2
Miw4IEBAIHByaXZhdGU6CiB9OwogCiBzdHJ1Y3QgU2NvcGUgeworV1RGX01BS0VfTk9OQ09QWUFC
TEUoU2NvcGUpOworICAgIHB1YmxpYzoKICAgICBTY29wZShjb25zdCBWTSogdm0sIGJvb2wgaXNG
dW5jdGlvbiwgYm9vbCBpc0dlbmVyYXRvciwgYm9vbCBzdHJpY3RNb2RlLCBib29sIGlzQXJyb3dG
dW5jdGlvbikKICAgICAgICAgOiBtX3ZtKHZtKQogICAgICAgICAsIG1fc2hhZG93c0FyZ3VtZW50
cyhmYWxzZSkKQEAgLTE4Niw0MyArMTkyLDYgQEAgc3RydWN0IFNjb3BlIHsKICAgICB7CiAgICAg
fQogCi0gICAgU2NvcGUoY29uc3QgU2NvcGUmIHJocykKLSAgICAgICAgOiBtX3ZtKHJocy5tX3Zt
KQotICAgICAgICAsIG1fc2hhZG93c0FyZ3VtZW50cyhyaHMubV9zaGFkb3dzQXJndW1lbnRzKQot
ICAgICAgICAsIG1fdXNlc0V2YWwocmhzLm1fdXNlc0V2YWwpCi0gICAgICAgICwgbV9uZWVkc0Z1
bGxBY3RpdmF0aW9uKHJocy5tX25lZWRzRnVsbEFjdGl2YXRpb24pCi0gICAgICAgICwgbV9oYXNE
aXJlY3RTdXBlcihyaHMubV9oYXNEaXJlY3RTdXBlcikKLSAgICAgICAgLCBtX25lZWRzU3VwZXJC
aW5kaW5nKHJocy5tX25lZWRzU3VwZXJCaW5kaW5nKQotICAgICAgICAsIG1fYWxsb3dzVmFyRGVj
bGFyYXRpb25zKHJocy5tX2FsbG93c1ZhckRlY2xhcmF0aW9ucykKLSAgICAgICAgLCBtX2FsbG93
c0xleGljYWxEZWNsYXJhdGlvbnMocmhzLm1fYWxsb3dzTGV4aWNhbERlY2xhcmF0aW9ucykKLSAg
ICAgICAgLCBtX3N0cmljdE1vZGUocmhzLm1fc3RyaWN0TW9kZSkKLSAgICAgICAgLCBtX2lzRnVu
Y3Rpb24ocmhzLm1faXNGdW5jdGlvbikKLSAgICAgICAgLCBtX2lzR2VuZXJhdG9yKHJocy5tX2lz
R2VuZXJhdG9yKQotICAgICAgICAsIG1faXNHZW5lcmF0b3JCb3VuZGFyeShyaHMubV9pc0dlbmVy
YXRvckJvdW5kYXJ5KQotICAgICAgICAsIG1faXNBcnJvd0Z1bmN0aW9uKHJocy5tX2lzQXJyb3dG
dW5jdGlvbikKLSAgICAgICAgLCBtX2lzQXJyb3dGdW5jdGlvbkJvdW5kYXJ5KHJocy5tX2lzQXJy
b3dGdW5jdGlvbkJvdW5kYXJ5KQotICAgICAgICAsIG1faXNMZXhpY2FsU2NvcGUocmhzLm1faXNM
ZXhpY2FsU2NvcGUpCi0gICAgICAgICwgbV9pc0Z1bmN0aW9uQm91bmRhcnkocmhzLm1faXNGdW5j
dGlvbkJvdW5kYXJ5KQotICAgICAgICAsIG1faXNWYWxpZFN0cmljdE1vZGUocmhzLm1faXNWYWxp
ZFN0cmljdE1vZGUpCi0gICAgICAgICwgbV9oYXNBcmd1bWVudHMocmhzLm1faGFzQXJndW1lbnRz
KQotICAgICAgICAsIG1faXNFdmFsQ29udGV4dChyaHMubV9pc0V2YWxDb250ZXh0KQotICAgICAg
ICAsIG1fY29uc3RydWN0b3JLaW5kKHJocy5tX2NvbnN0cnVjdG9yS2luZCkKLSAgICAgICAgLCBt
X2V4cGVjdGVkU3VwZXJCaW5kaW5nKHJocy5tX2V4cGVjdGVkU3VwZXJCaW5kaW5nKQotICAgICAg
ICAsIG1fbG9vcERlcHRoKHJocy5tX2xvb3BEZXB0aCkKLSAgICAgICAgLCBtX3N3aXRjaERlcHRo
KHJocy5tX3N3aXRjaERlcHRoKQotICAgICAgICAsIG1faW5uZXJBcnJvd0Z1bmN0aW9uRmVhdHVy
ZXMocmhzLm1faW5uZXJBcnJvd0Z1bmN0aW9uRmVhdHVyZXMpCi0gICAgICAgICwgbV9tb2R1bGVT
Y29wZURhdGEocmhzLm1fbW9kdWxlU2NvcGVEYXRhKQotICAgIHsKLSAgICAgICAgaWYgKHJocy5t
X2xhYmVscykgewotICAgICAgICAgICAgbV9sYWJlbHMgPSBzdGQ6Om1ha2VfdW5pcXVlPExhYmVs
U3RhY2s+KCk7Ci0KLSAgICAgICAgICAgIHR5cGVkZWYgTGFiZWxTdGFjazo6Y29uc3RfaXRlcmF0
b3IgaXRlcmF0b3I7Ci0gICAgICAgICAgICBpdGVyYXRvciBlbmQgPSByaHMubV9sYWJlbHMtPmVu
ZCgpOwotICAgICAgICAgICAgZm9yIChpdGVyYXRvciBpdCA9IHJocy5tX2xhYmVscy0+YmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICAgICAgICAgIG1fbGFiZWxzLT5hcHBlbmQoU2Nv
cGVMYWJlbEluZm8geyBpdC0+dWlkLCBpdC0+aXNMb29wIH0pOwotICAgICAgICB9Ci0gICAgfQot
CiAgICAgdm9pZCBzdGFydFN3aXRjaCgpIHsgbV9zd2l0Y2hEZXB0aCsrOyB9CiAgICAgdm9pZCBl
bmRTd2l0Y2goKSB7IG1fc3dpdGNoRGVwdGgtLTsgfQogICAgIHZvaWQgc3RhcnRMb29wKCkgeyBt
X2xvb3BEZXB0aCsrOyB9CkBAIC00NTQsNyArNDIzLDcgQEAgc3RydWN0IFNjb3BlIHsKIAogICAg
IGJvb2wgaGFzRGVjbGFyZWRQYXJhbWV0ZXIoY29uc3QgUmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBs
PiYgaWRlbnQpCiAgICAgewotICAgICAgICByZXR1cm4gbV9kZWNsYXJlZFBhcmFtZXRlcnMuY29u
dGFpbnMoaWRlbnQpIHx8IGhhc0RlY2xhcmVkVmFyaWFibGUoaWRlbnQpOworICAgICAgICByZXR1
cm4gbV9kZWNsYXJlZFBhcmFtZXRlcnMuY29udGFpbnMoaWRlbnQuZ2V0KCkpIHx8IGhhc0RlY2xh
cmVkVmFyaWFibGUoaWRlbnQpOwogICAgIH0KICAgICAKICAgICB2b2lkIGRlY2xhcmVXcml0ZShj
b25zdCBJZGVudGlmaWVyKiBpZGVudCkKQEAgLTQ5MiwxMSArNDYxLDcgQEAgc3RydWN0IFNjb3Bl
IHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgdm9pZCBnZXRVc2Vk
VmFyaWFibGVzKElkZW50aWZpZXJTZXQmIHVzZWRWYXJpYWJsZXMpCi0gICAgewotICAgICAgICB1
c2VkVmFyaWFibGVzLnN3YXAobV91c2VkVmFyaWFibGVzKTsKLSAgICB9Ci0KKyAgICBib29sIHVz
ZWRWYXJpYWJsZXNDb250YWlucyhVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCkgeyByZXR1cm4gbV91
c2VkVmFyaWFibGVzLmNvbnRhaW5zKGltcGwpOyB9CiAgICAgdm9pZCB1c2VWYXJpYWJsZShjb25z
dCBJZGVudGlmaWVyKiBpZGVudCwgYm9vbCBpc0V2YWwpCiAgICAgewogICAgICAgICBtX3VzZXNF
dmFsIHw9IGlzRXZhbDsKQEAgLTU0OCw3ICs1MTMsNyBAQCBzdHJ1Y3QgU2NvcGUgewogICAgICAg
ICAgICAgbV91c2VzRXZhbCA9IHRydWU7CiAKICAgICAgICAgewotICAgICAgICAgICAgZm9yIChj
b25zdCBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+JiBpbXBsIDogbmVzdGVkU2NvcGUtPm1fdXNl
ZFZhcmlhYmxlcykgeworICAgICAgICAgICAgZm9yIChVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCA6
IG5lc3RlZFNjb3BlLT5tX3VzZWRWYXJpYWJsZXMpIHsKICAgICAgICAgICAgICAgICBpZiAobmVz
dGVkU2NvcGUtPm1fZGVjbGFyZWRWYXJpYWJsZXMuY29udGFpbnMoaW1wbCkgfHwgbmVzdGVkU2Nv
cGUtPm1fbGV4aWNhbFZhcmlhYmxlcy5jb250YWlucyhpbXBsKSkKICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAKQEAgLTU3MywxMSArNTM4LDEwIEBAIHN0cnVjdCBTY29wZSB7CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAobmVzdGVkU2NvcGUtPm1fd3JpdHRlblZhcmlhYmxlcy5zaXpl
KCkpIHsKLSAgICAgICAgICAgIElkZW50aWZpZXJTZXQ6Oml0ZXJhdG9yIGVuZCA9IG5lc3RlZFNj
b3BlLT5tX3dyaXR0ZW5WYXJpYWJsZXMuZW5kKCk7Ci0gICAgICAgICAgICBmb3IgKElkZW50aWZp
ZXJTZXQ6Oml0ZXJhdG9yIHB0ciA9IG5lc3RlZFNjb3BlLT5tX3dyaXR0ZW5WYXJpYWJsZXMuYmVn
aW4oKTsgcHRyICE9IGVuZDsgKytwdHIpIHsKLSAgICAgICAgICAgICAgICBpZiAobmVzdGVkU2Nv
cGUtPm1fZGVjbGFyZWRWYXJpYWJsZXMuY29udGFpbnMoKnB0cikgfHwgbmVzdGVkU2NvcGUtPm1f
bGV4aWNhbFZhcmlhYmxlcy5jb250YWlucygqcHRyKSkKKyAgICAgICAgICAgIGZvciAoVW5pcXVl
ZFN0cmluZ0ltcGwqIGltcGwgOiBuZXN0ZWRTY29wZS0+bV93cml0dGVuVmFyaWFibGVzKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKG5lc3RlZFNjb3BlLT5tX2RlY2xhcmVkVmFyaWFibGVzLmNvbnRh
aW5zKGltcGwpIHx8IG5lc3RlZFNjb3BlLT5tX2xleGljYWxWYXJpYWJsZXMuY29udGFpbnMoaW1w
bCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIG1fd3Jp
dHRlblZhcmlhYmxlcy5hZGQoKnB0cik7CisgICAgICAgICAgICAgICAgbV93cml0dGVuVmFyaWFi
bGVzLmFkZChpbXBsKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTYwNSwx
MSArNTY5LDEwIEBAIHN0cnVjdCBTY29wZSB7CiAgICAgICAgIGlmIChzaGFkb3dzQXJndW1lbnRz
KCkpCiAgICAgICAgICAgICBtb2RpZmllZEFyZ3VtZW50cyA9IHRydWU7CiAgICAgICAgIGlmICht
X2RlY2xhcmVkUGFyYW1ldGVycy5zaXplKCkpIHsKLSAgICAgICAgICAgIElkZW50aWZpZXJTZXQ6
Oml0ZXJhdG9yIGVuZCA9IG1fd3JpdHRlblZhcmlhYmxlcy5lbmQoKTsKLSAgICAgICAgICAgIGZv
ciAoSWRlbnRpZmllclNldDo6aXRlcmF0b3IgcHRyID0gbV93cml0dGVuVmFyaWFibGVzLmJlZ2lu
KCk7IHB0ciAhPSBlbmQ7ICsrcHRyKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCpwdHIgPT0gbV92
bS0+cHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLmltcGwoKSkKKyAgICAgICAgICAgIGZvciAoVW5p
cXVlZFN0cmluZ0ltcGwqIGltcGwgOiBtX3dyaXR0ZW5WYXJpYWJsZXMpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoaW1wbCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMuaW1wbCgpKQog
ICAgICAgICAgICAgICAgICAgICBtb2RpZmllZEFyZ3VtZW50cyA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFtX2RlY2xhcmVkUGFyYW1ldGVycy5jb250YWlucygqcHRyKSkKKyAgICAgICAg
ICAgICAgICBpZiAoIW1fZGVjbGFyZWRQYXJhbWV0ZXJzLmNvbnRhaW5zKGltcGwpKQogICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBtb2RpZmllZFBhcmFtZXRl
ciA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC02MjEsMTMgKzU4NCwxMiBAQCBz
dHJ1Y3QgU2NvcGUgewogICAgIGJvb2wgaXNWYWxpZFN0cmljdE1vZGUoKSBjb25zdCB7IHJldHVy
biBtX2lzVmFsaWRTdHJpY3RNb2RlOyB9CiAgICAgYm9vbCBzaGFkb3dzQXJndW1lbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9zaGFkb3dzQXJndW1lbnRzOyB9CiAKLSAgICB2b2lkIGNvcHlDYXB0dXJl
ZFZhcmlhYmxlc1RvVmVjdG9yKGNvbnN0IElkZW50aWZpZXJTZXQmIGNhcHR1cmVkVmFyaWFibGVz
LCBWZWN0b3I8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPj4mIHZlY3RvcikKKyAgICB2b2lkIGNv
cHlDYXB0dXJlZFZhcmlhYmxlc1RvVmVjdG9yKGNvbnN0IFVuaXF1ZWRTdHJpbmdJbXBsUHRyU2V0
JiBjYXB0dXJlZFZhcmlhYmxlcywgVmVjdG9yPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4+JiB2
ZWN0b3IpCiAgICAgewotICAgICAgICBJZGVudGlmaWVyU2V0OjppdGVyYXRvciBlbmQgPSBjYXB0
dXJlZFZhcmlhYmxlcy5lbmQoKTsKLSAgICAgICAgZm9yIChJZGVudGlmaWVyU2V0OjppdGVyYXRv
ciBpdCA9IGNhcHR1cmVkVmFyaWFibGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAg
ICAgICAgICAgaWYgKG1fZGVjbGFyZWRWYXJpYWJsZXMuY29udGFpbnMoKml0KSB8fCBtX2xleGlj
YWxWYXJpYWJsZXMuY29udGFpbnMoKml0KSkKKyAgICAgICAgZm9yIChVbmlxdWVkU3RyaW5nSW1w
bCogaW1wbCA6IGNhcHR1cmVkVmFyaWFibGVzKSB7CisgICAgICAgICAgICBpZiAobV9kZWNsYXJl
ZFZhcmlhYmxlcy5jb250YWlucyhpbXBsKSB8fCBtX2xleGljYWxWYXJpYWJsZXMuY29udGFpbnMo
aW1wbCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB2ZWN0b3IuYXBw
ZW5kKCppdCk7CisgICAgICAgICAgICB2ZWN0b3IuYXBwZW5kKGltcGwpOwogICAgICAgICB9CiAg
ICAgfQogCkBAIC02OTQsNDAgKzY1Niw0MyBAQCBwcml2YXRlOgogICAgICAgICBtX21vZHVsZVNj
b3BlRGF0YSA9IE1vZHVsZVNjb3BlRGF0YTo6Y3JlYXRlKCk7CiAgICAgfQogCisgICAgLy8gQWxs
IHRoZSBmaWVsZHMgaW4gU2NvcGUgbXVzdCBiZSBhYmxlIHRvIHVzZSBtZW1jcHkgYXMgdGhlaXIK
KyAgICAvLyBtb3ZlIG9wZXJhdGlvbiBJZiB5b3UgYWRkIGEgZmllbGQgdGhhdCB2aW9sYXRlcyB0
aGlzLCBtYWtlIHN1cmUKKyAgICAvLyB0byByZW1vdmUgdGhpcyBjb21tZW50IGFuZCB1cGRhdGUg
V1RGOjpWZWN0b3JUcmFpdHM8SlNDOjpTY29wZT4uIAogICAgIGNvbnN0IFZNKiBtX3ZtOwotICAg
IGJvb2wgbV9zaGFkb3dzQXJndW1lbnRzIDogMTsKLSAgICBib29sIG1fdXNlc0V2YWwgOiAxOwot
ICAgIGJvb2wgbV9uZWVkc0Z1bGxBY3RpdmF0aW9uIDogMTsKLSAgICBib29sIG1faGFzRGlyZWN0
U3VwZXIgOiAxOwotICAgIGJvb2wgbV9uZWVkc1N1cGVyQmluZGluZyA6IDE7Ci0gICAgYm9vbCBt
X2FsbG93c1ZhckRlY2xhcmF0aW9ucyA6IDE7Ci0gICAgYm9vbCBtX2FsbG93c0xleGljYWxEZWNs
YXJhdGlvbnMgOiAxOwotICAgIGJvb2wgbV9zdHJpY3RNb2RlIDogMTsKLSAgICBib29sIG1faXNG
dW5jdGlvbiA6IDE7Ci0gICAgYm9vbCBtX2lzR2VuZXJhdG9yIDogMTsKLSAgICBib29sIG1faXNH
ZW5lcmF0b3JCb3VuZGFyeSA6IDE7Ci0gICAgYm9vbCBtX2lzQXJyb3dGdW5jdGlvbiA6IDE7Ci0g
ICAgYm9vbCBtX2lzQXJyb3dGdW5jdGlvbkJvdW5kYXJ5IDogMTsKLSAgICBib29sIG1faXNMZXhp
Y2FsU2NvcGUgOiAxOwotICAgIGJvb2wgbV9pc0Z1bmN0aW9uQm91bmRhcnkgOiAxOwotICAgIGJv
b2wgbV9pc1ZhbGlkU3RyaWN0TW9kZSA6IDE7Ci0gICAgYm9vbCBtX2hhc0FyZ3VtZW50cyA6IDE7
Ci0gICAgYm9vbCBtX2lzRXZhbENvbnRleHQgOiAxOwotICAgIHVuc2lnbmVkIG1fY29uc3RydWN0
b3JLaW5kIDogMjsKLSAgICB1bnNpZ25lZCBtX2V4cGVjdGVkU3VwZXJCaW5kaW5nIDogMjsKKyAg
ICBib29sIG1fc2hhZG93c0FyZ3VtZW50czsKKyAgICBib29sIG1fdXNlc0V2YWw7CisgICAgYm9v
bCBtX25lZWRzRnVsbEFjdGl2YXRpb247CisgICAgYm9vbCBtX2hhc0RpcmVjdFN1cGVyOworICAg
IGJvb2wgbV9uZWVkc1N1cGVyQmluZGluZzsKKyAgICBib29sIG1fYWxsb3dzVmFyRGVjbGFyYXRp
b25zOworICAgIGJvb2wgbV9hbGxvd3NMZXhpY2FsRGVjbGFyYXRpb25zOworICAgIGJvb2wgbV9z
dHJpY3RNb2RlOworICAgIGJvb2wgbV9pc0Z1bmN0aW9uOworICAgIGJvb2wgbV9pc0dlbmVyYXRv
cjsKKyAgICBib29sIG1faXNHZW5lcmF0b3JCb3VuZGFyeTsKKyAgICBib29sIG1faXNBcnJvd0Z1
bmN0aW9uOworICAgIGJvb2wgbV9pc0Fycm93RnVuY3Rpb25Cb3VuZGFyeTsKKyAgICBib29sIG1f
aXNMZXhpY2FsU2NvcGU7CisgICAgYm9vbCBtX2lzRnVuY3Rpb25Cb3VuZGFyeTsKKyAgICBib29s
IG1faXNWYWxpZFN0cmljdE1vZGU7CisgICAgYm9vbCBtX2hhc0FyZ3VtZW50czsKKyAgICBib29s
IG1faXNFdmFsQ29udGV4dDsKKyAgICB1bnNpZ25lZCBtX2NvbnN0cnVjdG9yS2luZDsKKyAgICB1
bnNpZ25lZCBtX2V4cGVjdGVkU3VwZXJCaW5kaW5nOwogICAgIGludCBtX2xvb3BEZXB0aDsKICAg
ICBpbnQgbV9zd2l0Y2hEZXB0aDsKICAgICBJbm5lckFycm93RnVuY3Rpb25Db2RlRmVhdHVyZXMg
bV9pbm5lckFycm93RnVuY3Rpb25GZWF0dXJlczsKIAogICAgIHR5cGVkZWYgVmVjdG9yPFNjb3Bl
TGFiZWxJbmZvLCAyPiBMYWJlbFN0YWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYWJlbFN0YWNr
PiBtX2xhYmVsczsKLSAgICBJZGVudGlmaWVyU2V0IG1fZGVjbGFyZWRQYXJhbWV0ZXJzOworICAg
IFVuaXF1ZWRTdHJpbmdJbXBsUHRyU2V0IG1fZGVjbGFyZWRQYXJhbWV0ZXJzOwogICAgIFZhcmlh
YmxlRW52aXJvbm1lbnQgbV9kZWNsYXJlZFZhcmlhYmxlczsKICAgICBWYXJpYWJsZUVudmlyb25t
ZW50IG1fbGV4aWNhbFZhcmlhYmxlczsKLSAgICBJZGVudGlmaWVyU2V0IG1fdXNlZFZhcmlhYmxl
czsKKyAgICBVbmlxdWVkU3RyaW5nSW1wbFB0clNldCBtX3VzZWRWYXJpYWJsZXM7CiAgICAgSWRl
bnRpZmllclNldCBtX2Nsb3NlZFZhcmlhYmxlQ2FuZGlkYXRlczsKLSAgICBJZGVudGlmaWVyU2V0
IG1fd3JpdHRlblZhcmlhYmxlczsKLSAgICBSZWZQdHI8TW9kdWxlU2NvcGVEYXRhPiBtX21vZHVs
ZVNjb3BlRGF0YSB7IH07CisgICAgVW5pcXVlZFN0cmluZ0ltcGxQdHJTZXQgbV93cml0dGVuVmFy
aWFibGVzOworICAgIFJlZlB0cjxNb2R1bGVTY29wZURhdGE+IG1fbW9kdWxlU2NvcGVEYXRhOwog
ICAgIERlY2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrIG1fZnVuY3Rpb25EZWNsYXJhdGlv
bnM7CiB9OwogCkBAIC0xMDA0LDcgKzk2OSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBpc0dl
bmVyYXRvciA9IG1fc2NvcGVTdGFjay5sYXN0KCkuaXNHZW5lcmF0b3IoKTsKICAgICAgICAgICAg
IGlzQXJyb3dGdW5jdGlvbiA9IG1fc2NvcGVTdGFjay5sYXN0KCkuaXNBcnJvd0Z1bmN0aW9uKCk7
CiAgICAgICAgIH0KLSAgICAgICAgbV9zY29wZVN0YWNrLmFwcGVuZChTY29wZShtX3ZtLCBpc0Z1
bmN0aW9uLCBpc0dlbmVyYXRvciwgaXNTdHJpY3QsIGlzQXJyb3dGdW5jdGlvbikpOworICAgICAg
ICBtX3Njb3BlU3RhY2suY29uc3RydWN0QW5kQXBwZW5kKG1fdm0sIGlzRnVuY3Rpb24sIGlzR2Vu
ZXJhdG9yLCBpc1N0cmljdCwgaXNBcnJvd0Z1bmN0aW9uKTsKICAgICAgICAgcmV0dXJuIGN1cnJl
bnRTY29wZSgpOwogICAgIH0KIApJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9X
VEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTYtMDMtMTcg
IFNhYW0gYmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFNt
YWxsUHRyU2V0IGFuZCBpbnRlZ3JhdGUgaXQgaW50byB0aGUgUGFyc2VyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU1NTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMg
dGhlIFNtYWxsUHRyU2V0IGRhdGEgc3RydXR1cmUuCisgICAgICAgIEluc3BpcmVkIGJ5IHRoZSBp
bXBsZW1lbnRhdGlvbiBpbiBsbHZtOgorICAgICAgICBodHRwOi8vbGx2bS5vcmcvZG9jcy9kb3h5
Z2VuL2h0bWwvU21hbGxQdHJTZXRfOGhfc291cmNlLmh0bWwKKworICAgICAgICBUaGUgZGF0YSBz
dHJ1Y3R1cmUgdXNlcyBhbiBpbmxpbmUgYXJyYXkgZm9yIHN0b3JhZ2UgdXAgdW50aWwKKyAgICAg
ICAgYSBmaXhlZCBsaW1pdCAoOCBlbnRyaWVzIGluIG91ciBpbXBsZW1lbnRhdGlvbikuIElmIHRo
YXQgc3RvcmFnZQorICAgICAgICBmaWxscyB1cCwgd2UgZmFsbCBiYWNrIHRvIGEgc2ltcGxlIGhh
c2ggdGFibGUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIENydWNpYWxseSwgdGhpcyBpbXBsZW1l
bnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgdGhlIHJlbW92ZQorICAgICAgICBvcGVyYXRpb24uIFRo
aXMgaXMgb24gcHVycG9zZS4gVGhlIGhhc2ggdGFibGUgd2lsbCBvbmx5IGV2ZXIKKyAgICAgICAg
Z3Jvdy4KKworICAgICAgICBBbHNvLCB0aGUgaW1wbGVtZW50YXRpb24gYWxsb3dzIGZvciBpdCB0
byBiZSBtZW1jb3BpZWQgYXJvdW5kLgorICAgICAgICBJLmUsIHdlIGNhbiBwdXQgU21hbGxQdHJT
ZXQgaW5zaWRlIGEgVmVjdG9yIGFuZCBhbGxvdyB0aGF0CisgICAgICAgIFZlY3RvciB0byB1c2Ug
bWVtY3B5IGFzIGl0cyBtb3ZlIG9wZXJhdGlvbiAob2YgY291cnNlIHRoaXMKKyAgICAgICAgaXMg
b25seSB2YWxpZCBpZiB0aGUgU21hbGxQdHJTZXQgaW4gdGhlIG9sZCBtZW1vcnkgZG9lc24ndCBo
YXZlIAorICAgICAgICBpdHMgZGVzdHJ1Y3RvciBjYWxsZWQgdW5sZXNzIGl0IGlzIHNldCBiYWNr
IHRvIGl0cyBpbml0aWFsIHN0YXRlLikKKworICAgICAgICBGb3Igbm93LCBTbWFsbFB0clNldCBv
bmx5IHN1cHBvcnRzIHBvaW50ZXIgdHlwZXMgdGhhdCBhcmUgdHJpdmlhbGx5CisgICAgICAgIGRl
c3RydWN0aWJsZS4gSXQncyBwcm9iYWJseSBub3QgdG9vIGRpZmZpY3VsdCB0byBleHRlbmQgdGhp
cyB0bworICAgICAgICBzbWFydCBwb2ludGVycywgYnV0IGl0J3Mgbm90IHBhcnQgb2YgdGhpcyBv
cmlnaW5hbCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBJJ3ZlIGFsc28gaW1wbGVtZW50ZWQg
YSBwdXJlIGZvcndhcmRpbmcgdmFyYXJncyBjb25zdHJ1Y3RBbmRBcHBlbmQKKyAgICAgICAgbWV0
aG9kIG9uIFZlY3Rvci4gVGhpcyBhbGxvd3MgeW91IHRvIGRvOgorICAgICAgICBWZWN0b3I8VD4g
djsKKyAgICAgICAgdi5jb25zdHJ1Y3RBbmRBcHBlbmQoYTEsIGEyLCAuLi4pCisgICAgICAgIGFz
IGxvbmcgYXMgVCBoYXMgYSBjb25zdHJ1Y3RvciB0aGF0IGFjY2VwdHMgYXJndW1lbnRzIChhMSwg
YTIsIC4uLikuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL1NtYWxsUHRyU2V0Lmg6
IEFkZGVkLgorICAgICAgICAoV1RGOjpTbWFsbFB0clNldDo6U21hbGxQdHJTZXQpOgorICAgICAg
ICAoV1RGOjpTbWFsbFB0clNldDo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdURjo6U21hbGxQdHJT
ZXQ6On5TbWFsbFB0clNldCk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjphZGQpOgorICAg
ICAgICAoV1RGOjpTbWFsbFB0clNldDo6Y29udGFpbnMpOgorICAgICAgICAoV1RGOjpTbWFsbFB0
clNldDo6aXRlcmF0b3I6Om9wZXJhdG9yKyspOgorICAgICAgICAoV1RGOjpTbWFsbFB0clNldDo6
aXRlcmF0b3I6Om9wZXJhdG9yKik6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjppdGVyYXRv
cjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjppdGVyYXRvcjo6b3Bl
cmF0b3IhPSk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjpiZWdpbik6CisgICAgICAgIChX
VEY6OlNtYWxsUHRyU2V0OjplbmQpOgorICAgICAgICAoV1RGOjpTbWFsbFB0clNldDo6c2l6ZSk6
CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0OjplbXB0eVZhbHVlKToKKyAgICAgICAgKFdURjo6
U21hbGxQdHJTZXQ6OmlzVmFsaWRFbnRyeSk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0Ojpp
c1NtYWxsKToKKyAgICAgICAgKFdURjo6U21hbGxQdHJTZXQ6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV1RGOjpTbWFsbFB0clNldDo6Z3Jvdyk6CisgICAgICAgIChXVEY6OlNtYWxsUHRyU2V0Ojpi
dWNrZXQpOgorICAgICAgICAqIHd0Zi9WZWN0b3IuaDoKKyAgICAgICAgKFdURjo6VmVjdG9yOjph
cHBlbmQpOgorICAgICAgICAoV1RGOjpWZWN0b3I6OnVuY2hlY2tlZEFwcGVuZCk6CisgICAgICAg
IChXVEY6Om1pbkNhcGFjaXR5Pjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6bWluQ2FwYWNpdHk+
Ojpjb25zdHJ1Y3RBbmRBcHBlbmQpOgorICAgICAgICAoV1RGOjptaW5DYXBhY2l0eT46OmFwcGVu
ZFNsb3dDYXNlKToKKyAgICAgICAgKFdURjo6bWluQ2FwYWNpdHk+Ojpjb25zdHJ1Y3RBbmRBcHBl
bmRTbG93Q2FzZSk6CisKIDIwMTYtMDMtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBTZXQgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcydzIG1haW4gdGhyZWFkIFFv
UyB0byBVU0VSLUlOVEVSQUNUSVZFCkluZGV4OiBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw2ICsxMDYsNyBAQAogCQk3
MEVDQTYwRDFCMDI0MjY4MDA0NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MEVDQTYwQTFCMDI0MjY4MDA0
NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5jcHAgKi87IH07CiAJCTcwRUNBNjBFMUIwMjQyNjgw
MDQ0OTczOSAvKiBTeW1ib2xJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MEVDQTYwQjFCMDI0MjY4MDA0NDk3MzkgLyogU3ltYm9sSW1wbC5oICov
OyB9OwogCQk3MEVDQTYwRjFCMDI0MjY4MDA0NDk3MzkgLyogVW5pcXVlZFN0cmluZ0ltcGwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcwRUNBNjBDMUIw
MjQyNjgwMDQ0OTczOSAvKiBVbmlxdWVkU3RyaW5nSW1wbC5oICovOyB9OworCQk3OUVDNzA2MTFD
OTlGOUJDMDAzQTNBRTIgLyogU21hbGxQdHJTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MzZENkE5MUM5OUY4QUUwMDBEMUFFRCAvKiBTbWFsbFB0
clNldC5oICovOyB9OwogCQk3Q0JCQTA3NDE5QkI3RkRDMDBCQkYwMjUgLyogT1NPYmplY3RQdHIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQkJBMDcz
MTlCQjdGREMwMEJCRjAyNSAvKiBPU09iamVjdFB0ci5oICovOyB9OwogCQk3Q0REN0ZGODE4NkQy
OTFFMDA3NDMzQ0QgLyogSXRlcmF0b3JBZGFwdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NERDdGRjcxODZEMjkxRTAwNzQzM0NEIC8qIEl0ZXJh
dG9yQWRhcHRvcnMuaCAqLzsgfTsKIAkJN0NERDdGRkExODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJh
dG9yUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDREQ3RkY5MTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVyYXRvclJhbmdlLmggKi87IH07CkBAIC00
MjEsNiArNDIyLDcgQEAKIAkJNzBFQ0E2MEExQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmlu
Z0ltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXRvbWljU3Ry
aW5nSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcwRUNBNjBCMUIwMjQy
NjgwMDQ0OTczOSAvKiBTeW1ib2xJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN5bWJvbEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzBFQ0E2MEMx
QjAyNDI2ODAwNDQ5NzM5IC8qIFVuaXF1ZWRTdHJpbmdJbXBsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFVuaXF1ZWRTdHJpbmdJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTc5MzZENkE5MUM5OUY4QUUwMDBEMUFFRCAvKiBTbWFsbFB0clNldC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbWFsbFB0clNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Q0JCQTA3MzE5QkI3RkRDMDBCQkYwMjUgLyogT1NPYmplY3RQdHIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT1NPYmplY3RQdHIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NERDdGRjcxODZEMjkxRTAwNzQzM0NEIC8qIEl0ZXJh
dG9yQWRhcHRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSXRlcmF0b3JB
ZGFwdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0REN0ZGOTE4NkQyQTU0
MDA3NDMzQ0QgLyogSXRlcmF0b3JSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJdGVyYXRvclJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MTQs
NiArOTE2LDcgQEAKIAkJCQlBNzQ4NzQ0RjE3QTBCREFFMDBGQTA0Q0IgLyogU2l4Q2hhcmFjdGVy
SGFzaC5jcHAgKi8sCiAJCQkJQTc0ODc0NTAxN0EwQkRBRTAwRkEwNENCIC8qIFNpeENoYXJhY3Rl
ckhhc2guaCAqLywKIAkJCQlBOEE0NzMwQzE1MUE4MjVCMDA0MTIzRkYgLyogU2l6ZUxpbWl0cy5j
cHAgKi8sCisJCQkJNzkzNkQ2QTkxQzk5RjhBRTAwMEQxQUVEIC8qIFNtYWxsUHRyU2V0LmggKi8s
CiAJCQkJQThBNDczMEQxNTFBODI1QjAwNDEyM0ZGIC8qIFNwZWN0cnVtLmggKi8sCiAJCQkJQThB
NDczMEUxNTFBODI1QjAwNDEyM0ZGIC8qIFN0YWNrQm91bmRzLmNwcCAqLywKIAkJCQlBOEE0NzMw
RjE1MUE4MjVCMDA0MTIzRkYgLyogU3RhY2tCb3VuZHMuaCAqLywKQEAgLTExNTAsNiArMTE1Myw3
IEBACiAJCQkJQThBNDczOTUxNTFBODI1QjAwNDEyM0ZGIC8qIENoZWNrZWRCb29sZWFuLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzQ1RjE1MUE4MjVCMDA0MTIzRkYgLyogQ29sbGF0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzRFREU2MTY5NjE0OTYwMEY2NTA0MSAvKiBDb21tYVByaW50
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTc5RUM3MDYxMUM5OUY5QkMwMDNBM0FFMiAvKiBTbWFs
bFB0clNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREU1QTA5RkMxQkEzNjk5MjAwM0Q0NDI0IC8q
IENvbW1vbkNyeXB0b1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RjJCOTExNzJFMDBGQzAw
N0RCREE1IC8qIENvbXBpbGF0aW9uVGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzM5
ODE1MUE4MjVCMDA0MTIzRkYgLyogQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE5ODM2MCkKKysrIFNvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05NCw2ICs5NCw3IEBAIHNldChXVEZfSEVBREVS
UwogICAgIFNhdHVyYXRlZEFyaXRobWV0aWMuaAogICAgIFNjb3BlZExhbWJkYS5oCiAgICAgU2Vn
bWVudGVkVmVjdG9yLmgKKyAgICBTbWFsbFB0clNldC5oCiAgICAgU3RhY2tCb3VuZHMuaAogICAg
IFN0YWNrU3RhdHMuaAogICAgIFN0YXRpY0NvbnN0cnVjdG9ycy5oCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9TbWFsbFB0clNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1NtYWxsUHRy
U2V0LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV1RGL3d0Zi9TbWFsbFB0clNldC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgU21hbGxQdHJTZXRfaAorI2RlZmluZSBTbWFsbFB0
clNldF9oCisKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9GYXN0
TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFB0
clR5cGU+CitjbGFzcyBTbWFsbFB0clNldCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU21h
bGxQdHJTZXQpOworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3Rp
YmxlPFB0clR5cGU+Ojp2YWx1ZSwgIldlIGRvbnQgc3VwcG9ydCBub24tdHJpdmlhbGx5IGRlc3Ry
dWN0aWJsZSBwb2ludGVyIHR5cGVzIG5vdy4iKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihQ
dHJUeXBlKSA9PSBzaXplb2Yodm9pZCopLCAiT25seSBzdXBwb3J0IHBvaW50ZXIgc2l6ZWQgdGhp
bmdzLiIpOworCitwdWJsaWM6IAorICAgIFNtYWxsUHRyU2V0KCkKKyAgICB7CisgICAgICAgIGlu
aXRpYWxpemUoKTsKKyAgICB9CisKKyAgICAvLyBXZSB0YWtlIGNhcmUgdG8gaGF2ZSBTbWFsbFB0
clNldCBoYXZlIHBhcnRpYWwgbW92ZSBzZW1hbnRpY3MgYWxsb3dhYmxlIHRocm91Z2gKKyAgICAv
LyBtZW1jcHkuIEl0J3MgcGFydGlhbCBtb3ZlIHNlbWFudGljcyBiZWNhdXNlIG91ciBkZXN0cnVj
dG9yIHNob3VsZCBub3QgYmUgY2FsbGVkCisgICAgLy8gb24gdGhlIFNtYWxsUHRyT2JqZWN0IGlu
IHRoZSBvbGQgbWVtb3J5IHdlIHdlcmUgbW92ZWQgZnJvbSAob3RoZXJ3aXNlLCB3ZSBtaWdodCBm
cmVlIG1fYnVmZmVyIHR3aWNlKQorICAgIC8vIHVubGVzcyB0aGF0IG9sZCBtZW1vcnkgaXMgcmVz
ZXQgdG8gYmUgaXNTbWFsbCgpLiBTZWUgbW92ZSBjb25zdHJ1Y3RvciBiZWxvdy4KKyAgICAvLyBU
byBtYWludGFpbiB0aGVzZSBzZW1hbnRpY3MsIHdlIGRldGVybWluZSBpZiB3ZSdyZSBzbWFsbCBi
eSBjaGVja2luZyBvdXIgc2l6ZQorICAgIC8vIGFuZCBub3Qgb3VyIG1fYnVmZmVyIHBvaW50ZXIu
IEFuZCB3aGVuIHdlJ3JlIHNtYWxsLCB3ZSBkb24ndCBkbyBvcGVyYXRpb25zIG9uCisgICAgLy8g
bV9idWZmZXIsIGluc3RlYWQsIHdlIHBlcmZvcm0gb3BlcmF0aW9ucyBvbiBtX3NtYWxsU3RvcmFn
ZSBkaXJlY3RseS4gVGhlIHJlYXNvbiB3ZSB3YW50CisgICAgLy8gdGhlc2Ugc2VtYW50aWNzIGlz
IHRoYXQgaXQncyBiZW5lZmljaWFsIHRvIGhhdmUgYSBWZWN0b3IgdGhhdCBjb250YWlucyBTbWFs
bFB0clNldAorICAgIC8vIChvciBhbiBvYmplY3Qgd2l0aCBTbWFsbFB0clNldCBhcyBhIGZpZWxk
KSBiZSBhbGxvd2VkIHRvIHVzZSBtZW1jcHkgZm9yIGl0cyBtb3ZlIG9wZXJhdGlvbi4KKworICAg
IFNtYWxsUHRyU2V0KFNtYWxsUHRyU2V0JiYgb3RoZXIpCisgICAgeworICAgICAgICAqdGhpcyA9
IFdURk1vdmUob3RoZXIpOworICAgIH0KKworICAgIFNtYWxsUHRyU2V0JiBvcGVyYXRvcj0oU21h
bGxQdHJTZXQmJiBvdGhlcikKKyAgICB7CisgICAgICAgIG1lbWNweSh0aGlzLCAmb3RoZXIsIHNp
emVvZihTbWFsbFB0clNldCkpOworICAgICAgICBvdGhlci5pbml0aWFsaXplKCk7CisgICAgICAg
IHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICB+U21hbGxQdHJTZXQoKQorICAgIHsKKyAgICAg
ICAgaWYgKCFpc1NtYWxsKCkpCisgICAgICAgICAgICBmYXN0RnJlZShtX2J1ZmZlcik7CisgICAg
fQorCisgICAgaW5saW5lIHZvaWQgYWRkKFB0clR5cGUgcHRyKQorICAgIHsKKyAgICAgICAgQVNT
RVJUKGlzVmFsaWRFbnRyeShwdHIpKTsKKworICAgICAgICBpZiAoaXNTbWFsbCgpKSB7CisgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zaXplOyBpKyspIHsKKyAgICAgICAg
ICAgICAgICBpZiAobV9zbWFsbFN0b3JhZ2VbaV0gPT0gcHRyKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtX3NpemUgPCBTbWFs
bEFycmF5U2l6ZSkgeworICAgICAgICAgICAgICAgIG1fc21hbGxTdG9yYWdlW21fc2l6ZV0gPSBw
dHI7CisgICAgICAgICAgICAgICAgbV9zaXplKys7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBncm93KDY0KTsKKyAgICAgICAgICAgIC8vIEZh
bGwgdGhyb3VnaC4gV2UncmUgbm8gbG9uZ2VyIHNtYWxsIDooCisgICAgICAgIH0KKworICAgICAg
ICAvLyBJZiB3ZSdyZSBtb3JlIHRoYW4gMy80dGhzIGZ1bGwgd2UgZ3Jvdy4KKyAgICAgICAgaWYg
KFVOTElLRUxZKG1fc2l6ZSAqIDQgPj0gbV9jYXBhY2l0eSAqIDMpKSB7CisgICAgICAgICAgICBn
cm93KG1fY2FwYWNpdHkgKiAyKTsKKyAgICAgICAgICAgIEFTU0VSVCghKG1fY2FwYWNpdHkgJiAo
bV9jYXBhY2l0eSAtIDEpKSk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkKiogYnVja2V0ID0g
dGhpcy0+YnVja2V0KHB0cik7CisgICAgICAgIGlmICgqYnVja2V0ICE9IHB0cikgeworICAgICAg
ICAgICAgKmJ1Y2tldCA9IHB0cjsKKyAgICAgICAgICAgIG1fc2l6ZSsrOworICAgICAgICB9Cisg
ICAgfQorCisgICAgaW5saW5lIGJvb2wgY29udGFpbnMoUHRyVHlwZSBwdHIpCisgICAgeworICAg
ICAgICBBU1NFUlQoaXNWYWxpZEVudHJ5KHB0cikpOworICAgICAgICBpZiAoaXNTbWFsbCgpKSB7
CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zaXplOyBpKyspIHsgLy8g
V2UgY2FuIHNlYXJjaCB1cCB0byAibV9zaXplIiBiZWNhdXNlIHdlIHN0b3JlIHRoaW5ncyBsaW5l
YXJseSBpbnNpZGUgdGhpcyBidWZmZXIuCisgICAgICAgICAgICAgICAgaWYgKG1fc21hbGxTdG9y
YWdlW2ldID09IHB0cikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICB2
b2lkKiogYnVja2V0ID0gdGhpcy0+YnVja2V0KHB0cik7CisgICAgICAgIHJldHVybiAqYnVja2V0
ID09IHB0cjsKKyAgICB9CisKKyAgICBjbGFzcyBpdGVyYXRvciB7CisgICAgcHVibGljOgorICAg
ICAgICBpdGVyYXRvciYgb3BlcmF0b3IrKygpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1faW5k
ZXgrKzsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1faW5kZXggPD0gbV9jYXBhY2l0eSk7
CisgICAgICAgICAgICB3aGlsZSAobV9pbmRleCA8IG1fY2FwYWNpdHkgJiYgbV9idWZmZXJbbV9p
bmRleF0gPT0gZW1wdHlWYWx1ZSgpKQorICAgICAgICAgICAgICAgIG1faW5kZXgrKzsKKyAgICAg
ICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUHRyVHlw
ZSBvcGVyYXRvciooKSBjb25zdCB7IEFTU0VSVChtX2luZGV4IDwgbV9jYXBhY2l0eSk7IHJldHVy
biBzdGF0aWNfY2FzdDxQdHJUeXBlPihtX2J1ZmZlclttX2luZGV4XSk7IH0KKyAgICAgICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QgeyBBU1NFUlQobV9idWZm
ZXIgPT0gb3RoZXIubV9idWZmZXIpOyByZXR1cm4gbV9pbmRleCA9PSBvdGhlci5tX2luZGV4OyB9
CisgICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0IHsg
QVNTRVJUKG1fYnVmZmVyID09IG90aGVyLm1fYnVmZmVyKTsgcmV0dXJuICEoKnRoaXMgPT0gb3Ro
ZXIpOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBmcmll
bmQgY2xhc3MgV1RGOjpTbWFsbFB0clNldDsKKyAgICAgICAgdW5zaWduZWQgbV9pbmRleDsKKyAg
ICAgICAgdW5zaWduZWQgbV9jYXBhY2l0eTsKKyAgICAgICAgdm9pZCoqIG1fYnVmZmVyOworICAg
IH07CisKKyAgICBpdGVyYXRvciBiZWdpbigpIGNvbnN0CisgICAgeworICAgICAgICBpdGVyYXRv
ciBpdDsKKyAgICAgICAgaXQubV9pbmRleCA9IC0xOworICAgICAgICBpdC5tX2NhcGFjaXR5ID0g
bV9jYXBhY2l0eTsKKyAgICAgICAgaWYgKGlzU21hbGwoKSkKKyAgICAgICAgICAgIGl0Lm1fYnVm
ZmVyID0gY29uc3RfY2FzdDx2b2lkKio+KG1fc21hbGxTdG9yYWdlKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgaXQubV9idWZmZXIgPSBtX2J1ZmZlcjsKKworICAgICAgICArK2l0OworCisg
ICAgICAgIHJldHVybiBpdDsKKyAgICB9CisKKyAgICBpdGVyYXRvciBlbmQoKSBjb25zdAorICAg
IHsKKyAgICAgICAgaXRlcmF0b3IgaXQ7CisgICAgICAgIGl0Lm1faW5kZXggPSBtX2NhcGFjaXR5
OworICAgICAgICBpdC5tX2NhcGFjaXR5ID0gbV9jYXBhY2l0eTsKKyAgICAgICAgaWYgKGlzU21h
bGwoKSkKKyAgICAgICAgICAgIGl0Lm1fYnVmZmVyID0gY29uc3RfY2FzdDx2b2lkKio+KG1fc21h
bGxTdG9yYWdlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaXQubV9idWZmZXIgPSBtX2J1
ZmZlcjsKKworICAgICAgICByZXR1cm4gaXQ7CisgICAgfQorCisgICAgaW5saW5lIHVuc2lnbmVk
IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KKworcHJpdmF0ZToKKworICAgIGNvbnN0
ZXhwciBzdGF0aWMgdm9pZCogZW1wdHlWYWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYml0
d2lzZV9jYXN0PHZvaWQqPihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnRwdHJfdD46Om1heCgpKTsK
KyAgICB9CisKKyAgICBib29sIGlzVmFsaWRFbnRyeShjb25zdCBQdHJUeXBlIHB0cikgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBwdHIgIT0gZW1wdHlWYWx1ZSgpOworICAgIH0KKworICAg
IGlubGluZSBib29sIGlzU21hbGwoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY2Fw
YWNpdHkgPT0gU21hbGxBcnJheVNpemU7CisgICAgfQorCisgICAgaW5saW5lIHZvaWQgaW5pdGlh
bGl6ZSgpCisgICAgeworICAgICAgICBtX3NpemUgPSAwOworICAgICAgICBtX2J1ZmZlciA9IG51
bGxwdHI7CisgICAgICAgIG1fY2FwYWNpdHkgPSBTbWFsbEFycmF5U2l6ZTsKKyAgICAgICAgbWVt
c2V0KG1fc21hbGxTdG9yYWdlLCAtMSwgc2l6ZW9mKHZvaWQqKSAqIFNtYWxsQXJyYXlTaXplKTsK
KyAgICAgICAgQVNTRVJUKGlzU21hbGwoKSk7CisgICAgfQorCisgICAgaW5saW5lIHZvaWQgZ3Jv
dyh1bnNpZ25lZCBzaXplKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PGludDMy
X3Q+KGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4oZW1wdHlWYWx1ZSgpKSkgPT0gLTEpOworICAgICAg
ICBzaXplX3QgYWxsb2NhdGlvblNpemUgPSBzaXplb2Yodm9pZCopICogc2l6ZTsKKworICAgICAg
ICBib29sIHdhc1NtYWxsID0gaXNTbWFsbCgpOworICAgICAgICB2b2lkKiogb2xkQnVmZmVyID0g
d2FzU21hbGwgPyBtX3NtYWxsU3RvcmFnZSA6IG1fYnVmZmVyOworICAgICAgICB1bnNpZ25lZCBv
bGRDYXBhY2l0eSA9IG1fY2FwYWNpdHk7CisgICAgICAgIG1fYnVmZmVyID0gc3RhdGljX2Nhc3Q8
dm9pZCoqPihmYXN0TWFsbG9jKGFsbG9jYXRpb25TaXplKSk7CisgICAgICAgIG1lbXNldChtX2J1
ZmZlciwgLTEsIGFsbG9jYXRpb25TaXplKTsKKyAgICAgICAgbV9jYXBhY2l0eSA9IHNpemU7CisK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG9sZENhcGFjaXR5OyBpKyspIHsKKyAg
ICAgICAgICAgIGlmIChvbGRCdWZmZXJbaV0gIT0gZW1wdHlWYWx1ZSgpKSB7CisgICAgICAgICAg
ICAgICAgdm9pZCoqIHB0ciA9IHRoaXMtPmJ1Y2tldChzdGF0aWNfY2FzdDxQdHJUeXBlPihvbGRC
dWZmZXJbaV0pKTsKKyAgICAgICAgICAgICAgICAqcHRyID0gb2xkQnVmZmVyW2ldOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCF3YXNTbWFsbCkKKyAgICAgICAgICAg
IGZhc3RGcmVlKG9sZEJ1ZmZlcik7CisgICAgfQorCisKKyAgICBpbmxpbmUgdm9pZCoqIGJ1Y2tl
dChQdHJUeXBlIHRhcmdldCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVCghKG1fY2FwYWNp
dHkgJiAobV9jYXBhY2l0eSAtIDEpKSk7CisgICAgICAgIHVuc2lnbmVkIGJ1Y2tldCA9IFB0ckhh
c2hCYXNlPFB0clR5cGUsIGZhbHNlIC8qIGlzU21hcnRQdHIgKi8+OjpoYXNoKHRhcmdldCkgJiAo
bV9jYXBhY2l0eSAtIDEpOworICAgICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CisgICAgICAgIHdo
aWxlICh0cnVlKSB7CisgICAgICAgICAgICB2b2lkKiogcHRyID0gbV9idWZmZXIgKyBidWNrZXQ7
CisgICAgICAgICAgICBpZiAoKnB0ciA9PSBlbXB0eVZhbHVlKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHB0cjsKKyAgICAgICAgICAgIGlmICgqcHRyID09IHRhcmdldCkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gcHRyOworICAgICAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgICAgIGJ1Y2tl
dCA9IChidWNrZXQgKyBpbmRleCkgJiAobV9jYXBhY2l0eSAtIDEpOworICAgICAgICB9CisgICAg
fQorCisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFNtYWxsQXJyYXlTaXplID0gODsKKworICAg
IHVuc2lnbmVkIG1fc2l6ZTsKKyAgICB1bnNpZ25lZCBtX2NhcGFjaXR5OworICAgIHZvaWQqKiBt
X2J1ZmZlcjsKKyAgICB2b2lkKiBtX3NtYWxsU3RvcmFnZVtTbWFsbEFycmF5U2l6ZV07Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpTbWFsbFB0clNldDsKKworI2VuZGlm
IC8vIFNtYWxsUHRyU2V0X2gKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCShyZXZpc2lvbiAxOTgzNjApCisrKyBTb3Vy
Y2UvV1RGL3d0Zi9WZWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzI1LDYgKzcyNSw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgYXBwZW5kKFZhbHVlVHlwZSYmIHZhbHVlKSB7IGFwcGVuZDxWYWx1
ZVR5cGU+KHN0ZDo6Zm9yd2FyZDxWYWx1ZVR5cGU+KHZhbHVlKSk7IH0KICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiB2b2lkIGFwcGVuZChVJiYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFy
Z3M+IHZvaWQgY29uc3RydWN0QW5kQXBwZW5kKEFyZ3MmJi4uLik7CiAKICAgICB2b2lkIHVuY2hl
Y2tlZEFwcGVuZChWYWx1ZVR5cGUmJiB2YWx1ZSkgeyB1bmNoZWNrZWRBcHBlbmQ8VmFsdWVUeXBl
PihzdGQ6OmZvcndhcmQ8VmFsdWVUeXBlPih2YWx1ZSkpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVT4gdm9pZCB1bmNoZWNrZWRBcHBlbmQoVSYmKTsKQEAgLTc4Nyw2ICs3ODgsNyBAQCBwcml2
YXRlOgogICAgIGNvbnN0IFQqIHRyeUV4cGFuZENhcGFjaXR5KHNpemVfdCBuZXdNaW5DYXBhY2l0
eSwgY29uc3QgVCopOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFUqIGV4cGFuZENhcGFjaXR5
KHNpemVfdCBuZXdNaW5DYXBhY2l0eSwgVSopOyAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiB2
b2lkIGFwcGVuZFNsb3dDYXNlKFUmJik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4g
dm9pZCBjb25zdHJ1Y3RBbmRBcHBlbmRTbG93Q2FzZShBcmdzJiYuLi4pOwogCiAgICAgdm9pZCBh
c2FuU2V0SW5pdGlhbEJ1ZmZlclNpemVUbyhzaXplX3QpOwogICAgIHZvaWQgYXNhblNldEJ1ZmZl
clNpemVUb0Z1bGxDYXBhY2l0eSgpOwpAQCAtMTIxNCw2ICsxMjE2LDE5IEBAIEFMV0FZU19JTkxJ
TkUgdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWMKICAgICBhcHBlbmRTbG93Q2FzZShzdGQ6OmZv
cndhcmQ8VT4odmFsdWUpKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW5DYXBhY2l0eT4g
dGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KK0FMV0FZU19JTkxJTkUgdm9pZCBWZWN0b3I8VCwg
aW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+Ojpjb25zdHJ1Y3RB
bmRBcHBlbmQoQXJncyYmLi4uIGFyZ3MpCit7CisgICAgaWYgKHNpemUoKSAhPSBjYXBhY2l0eSgp
KSB7CisgICAgICAgIGFzYW5CdWZmZXJTaXplV2lsbENoYW5nZVRvKG1fc2l6ZSArIDEpOworICAg
ICAgICBuZXcgKE5vdE51bGwsIGVuZCgpKSBUKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7
CisgICAgICAgICsrbV9zaXplOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3Ry
dWN0QW5kQXBwZW5kU2xvd0Nhc2Uoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKK30KKwog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVy
Zmxvd0hhbmRsZXIsIHNpemVfdCBtaW5DYXBhY2l0eT4gdGVtcGxhdGU8dHlwZW5hbWUgVT4KIHZv
aWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5
Pjo6YXBwZW5kU2xvd0Nhc2UoVSYmIHZhbHVlKQogewpAQCAtMTIyOCw2ICsxMjQzLDE5IEBAIHZv
aWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0gKICAgICArK21fc2l6ZTsKIH0K
IAordGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBP
dmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW5DYXBhY2l0eT4gdGVtcGxhdGU8dHlwZW5hbWUuLi4g
QXJncz4KK3ZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1p
bkNhcGFjaXR5Pjo6Y29uc3RydWN0QW5kQXBwZW5kU2xvd0Nhc2UoQXJncyYmLi4uIGFyZ3MpCit7
CisgICAgQVNTRVJUKHNpemUoKSA9PSBjYXBhY2l0eSgpKTsKKworICAgIGV4cGFuZENhcGFjaXR5
KHNpemUoKSArIDEpOworICAgIEFTU0VSVChiZWdpbigpKTsKKworICAgIGFzYW5CdWZmZXJTaXpl
V2lsbENoYW5nZVRvKG1fc2l6ZSArIDEpOworICAgIG5ldyAoTm90TnVsbCwgZW5kKCkpIFQoc3Rk
Ojpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKKyAgICArK21fc2l6ZTsKK30KKwogLy8gVGhpcyB2
ZXJzaW9uIG9mIGFwcGVuZCBzYXZlcyBhIGJyYW5jaCBpbiB0aGUgY2FzZSB3aGVyZSB5b3Uga25v
dyB0aGF0IHRoZQogLy8gdmVjdG9yJ3MgY2FwYWNpdHkgaXMgbGFyZ2UgZW5vdWdoIGZvciB0aGUg
YXBwZW5kIHRvIHN1Y2NlZWQuCiAK
</data>
<flag name="review"
          id="298818"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>