<?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>137279</bug_id>
          
          <creation_ts>2014-09-30 17:16:45 -0700</creation_ts>
          <short_desc>Fixed the Inspector to be able to properly distinguish between scope types</short_desc>
          <delta_ts>2014-10-06 13:19:14 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1038414</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-09-30 17:16:45 -0700</bug_when>
    <thetext>The pre-existing code incorrectly labels Catch Scopes and Function Name Scopes as With Scopes.  This patch will fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038419</commentid>
    <comment_count>1</comment_count>
      <attachid>238980</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-09-30 17:27:43 -0700</bug_when>
    <thetext>Created attachment 238980
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038420</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-30 17:29:20 -0700</bug_when>
    <thetext>Attachment 238980 did not pass style-queue:


ERROR: Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.h:80:  FUNCTION_NAME_SCOPE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 1 in 15 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>1038424</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-09-30 17:33:12 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; ERROR: Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.h:80:  FUNCTION_NAME_SCOPE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
&gt; Total errors found: 1 in 15 files

I named it FUNCTION_NAME_SCOPE to be consistent with its pre-existing peers.  We can rename them all later if desired.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038602</commentid>
    <comment_count>4</comment_count>
      <attachid>238980</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-10-01 11:39:33 -0700</bug_when>
    <thetext>Comment on attachment 238980
the patch.

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

&gt; Source/JavaScriptCore/runtime/JSNameScope.h:70
&gt; +        m_isCatchScope = !!(attributes &amp; CatchScope);

It&apos;s a bad abstraction to use a property attribute to discover that an object is a catch scope. The two abstractions are unrelated, and relating them makes for spaghetti code.

Instead, you should use an explicit parameter to the JSNameScope constructor. The VM knows when it allocates a catch scope, and it only does so in a few places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038603</commentid>
    <comment_count>5</comment_count>
      <attachid>238980</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-10-01 11:48:02 -0700</bug_when>
    <thetext>Comment on attachment 238980
the patch.

You could add a test for this. Do we have any existing tests for Scope Chain?

The inspector pieces look fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038666</commentid>
    <comment_count>6</comment_count>
      <attachid>239052</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-10-01 14:59:53 -0700</bug_when>
    <thetext>Created attachment 239052
patch 2: rework JSNameScope to take an explicit type argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038667</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-01 15:01:18 -0700</bug_when>
    <thetext>Attachment 239052 did not pass style-queue:


ERROR: Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.h:80:  FUNCTION_NAME_SCOPE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 1 in 25 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>1038688</commentid>
    <comment_count>8</comment_count>
      <attachid>239052</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-10-01 15:41:12 -0700</bug_when>
    <thetext>Comment on attachment 239052
patch 2: rework JSNameScope to take an explicit type argument.

This breaks the ARMv7 build.  Will fix and then post another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038725</commentid>
    <comment_count>9</comment_count>
      <attachid>239069</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-10-01 17:02:55 -0700</bug_when>
    <thetext>Created attachment 239069
patch 3: fixed ARM builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038726</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-01 17:04:32 -0700</bug_when>
    <thetext>Attachment 239069 did not pass style-queue:


ERROR: Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.h:80:  FUNCTION_NAME_SCOPE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 1 in 25 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>1038746</commentid>
    <comment_count>11</comment_count>
      <attachid>239069</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-10-01 18:38:01 -0700</bug_when>
    <thetext>Comment on attachment 239069
patch 3: fixed ARM builds

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038864</commentid>
    <comment_count>12</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-10-02 08:17:02 -0700</bug_when>
    <thetext>Thanks for the reviews.  Landed in r174216: &lt;http://trac.webkit.org/r174216&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039750</commentid>
    <comment_count>13</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-10-06 09:53:57 -0700</bug_when>
    <thetext>This broke the 64-bit Windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039752</commentid>
    <comment_count>14</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-10-06 09:59:30 -0700</bug_when>
    <thetext>argumentGPR4 is not defined for 64-bit Windows. This is &quot;regT6&quot; on other platforms, but &quot;regT6&quot; is called &quot;argumentGPR2&quot; on Windows.

How do we fix this?

Should I roll it out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039797</commentid>
    <comment_count>15</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-10-06 13:04:04 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; argumentGPR4 is not defined for 64-bit Windows. This is &quot;regT6&quot; on other platforms, but &quot;regT6&quot; is called &quot;argumentGPR2&quot; on Windows.

I&apos;ll have a fix coming soon.  Currently testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039801</commentid>
    <comment_count>16</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-10-06 13:19:14 -0700</bug_when>
    <thetext>Build fix landed in r174360: &lt;http://trac.webkit.org/r174360&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238980</attachid>
            <date>2014-09-30 17:27:43 -0700</date>
            <delta_ts>2014-10-01 14:59:53 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-137279.patch</filename>
            <type>text/plain</type>
            <size>15757</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0MTM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDE0LTA5LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXhlZCB0aGUgSW5zcGVjdG9yIHRvIGJlIGFibGUgdG8gcHJvcGVybHkgZGlzdGluZ3Vpc2ggYmV0
d2VlbiBzY29wZSB0eXBlcy4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzNzI3OT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJl
LWV4aXN0aW5nIGNvZGUgaW5jb3JyZWN0bHkgbGFiZWxzIENhdGNoIFNjb3BlcyBhbmQgRnVuY3Rp
b24gTmFtZSBTY29wZXMKKyAgICAgICAgYXMgV2l0aCBTY29wZXMuICBUaGlzIHBhdGNoIHdpbGwg
Zml4IHRoaXMuCisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hDYXRjaFNjb3BlKToK
KyAgICAgICAgLSBUYWdnZWQgdGhlIENhdGNoU2NvcGUgdmFyaWFibGUgYXMgYSBDYXRjaFNjb3Bl
IGF0dHJpYnV0ZS4gCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJTY29wZS5jcHA6CisgICAg
ICAgIChKU0M6OkRlYnVnZ2VyU2NvcGU6OmlzQ2F0Y2hTY29wZSk6CisgICAgICAgIChKU0M6OkRl
YnVnZ2VyU2NvcGU6OmlzRnVuY3Rpb25OYW1lU2NvcGUpOgorICAgICAgICAtIEFkZGVkIHF1ZXJp
ZXMgdG8gYmUgYWJsZSB0byBleHBsaWNpdGx5IHRlc3QgaWYgdGhlIHNjb3BlIGlzIGEgQ2F0Y2hT
Y29wZQorICAgICAgICAgIG9yIEZ1bmN0aW9uTmFtZVNjb3BlLiAgVGhlIEZ1bmN0aW9uTmFtZVNj
b3BlIGlzIHRoZSBjYXNlIHdoZXJlIHRoZQorICAgICAgICAgIE5hbWVTY29wZSBpcyB1c2VkIHRv
IGNhcHR1cmUgdGhlIGZ1bmN0aW9uIG5hbWUgb2YgYSBmdW5jdGlvbiBleHByZXNzaW9uLgorICAg
ICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAgICogaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENh
bGxGcmFtZS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTSmF2YVNjcmlwdENhbGxGcmFtZTo6
c2NvcGVUeXBlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHA6
CisgICAgICAgIChJbnNwZWN0b3I6OkpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24pOgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJhbWVD
b25zdGFudEZVTkNUSU9OX05BTUVfU0NPUEUpOgorICAgICAgICAqIGluc3BlY3Rvci9wcm90b2Nv
bC9EZWJ1Z2dlci5qc29uOgorICAgICAgICAqIHJ1bnRpbWUvSlNOYW1lU2NvcGUuaDoKKyAgICAg
ICAgKEpTQzo6SlNOYW1lU2NvcGU6OmlzQ2F0Y2hTY29wZSk6CisgICAgICAgIChKU0M6OkpTTmFt
ZVNjb3BlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIC0gQ2hlY2tzIGZvciB0aGUgQ2F0Y2hT
Y29wZSBhdHRyaWJ1dGUgYW5kIG1hcmtzIHRoZSBKU05hbWVTY29wZSBhcyBiZWluZyBhCisgICAg
ICAgICAgQ2F0Y2hTY29wZSBpZiBhcHByb3ByaWF0ZS4KKyAgICAgICAgKiBydW50aW1lL1Byb3Bl
cnR5U2xvdC5oOgorICAgICAgICAtIEFkZCBDYXRjaFNjb3BlIGF0dHJpYnV0ZS4KKwogMjAxNC0w
OS0zMCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgTGFiZWwgc29t
ZSBhc3NlcnRzIGFzIGhhdmluZyBzZWN1cml0eSBpbXBsaWNhdGlvbnMuCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcAkocmV2aXNpb24gMTc0MTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMDYsNyAr
MjMwNiw3IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXNoQ2F0Y2hTY28KICAgICBl
bWl0T3Bjb2RlKG9wX3B1c2hfbmFtZV9zY29wZSk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5k
KGFkZENvbnN0YW50KHByb3BlcnR5KSk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHZhbHVl
LT5pbmRleCgpKTsKLSAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYXR0cmlidXRlcyk7CisgICAg
aW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGF0dHJpYnV0ZXMgfCBDYXRjaFNjb3BlKTsKIH0KIAogdm9p
ZCBCeXRlY29kZUdlbmVyYXRvcjo6YmVnaW5Td2l0Y2goUmVnaXN0ZXJJRCogc2NydXRpbmVlUmVn
aXN0ZXIsIFN3aXRjaEluZm86OlN3aXRjaFR5cGUgdHlwZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJTY29wZS5jcHAJKHJldmlzaW9uIDE3NDEy
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclNjb3BlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiSlNMZXhpY2FsRW52
aXJvbm1lbnQuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNOYW1lU2Nv
cGUuaCIKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTE1
NCw2ICsxNTUsMTYgQEAgdm9pZCBEZWJ1Z2dlclNjb3BlOjppbnZhbGlkYXRlQ2hhaW4oKQogICAg
IH0KIH0KIAorYm9vbCBEZWJ1Z2dlclNjb3BlOjppc0NhdGNoU2NvcGUoKSBjb25zdAoreworICAg
IHJldHVybiBtX3Njb3BlLT5pc05hbWVTY29wZU9iamVjdCgpICYmIHJlaW50ZXJwcmV0X2Nhc3Q8
SlNOYW1lU2NvcGUqPihtX3Njb3BlLmdldCgpKS0+aXNDYXRjaFNjb3BlKCk7Cit9CisKK2Jvb2wg
RGVidWdnZXJTY29wZTo6aXNGdW5jdGlvbk5hbWVTY29wZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fc2NvcGUtPmlzTmFtZVNjb3BlT2JqZWN0KCkgJiYgIXJlaW50ZXJwcmV0X2Nhc3Q8SlNOYW1l
U2NvcGUqPihtX3Njb3BlLmdldCgpKS0+aXNDYXRjaFNjb3BlKCk7Cit9CisKIGJvb2wgRGVidWdn
ZXJTY29wZTo6aXNXaXRoU2NvcGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3Njb3BlLT5pc1dp
dGhTY29wZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
U2NvcGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJTY29wZS5oCShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCw2ICs4NCw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGVDaGFpbigpOwogICAgIGJvb2wgaXNWYWxpZCgp
IGNvbnN0IHsgcmV0dXJuICEhbV9zY29wZTsgfQogCisgICAgYm9vbCBpc0NhdGNoU2NvcGUoKSBj
b25zdDsKKyAgICBib29sIGlzRnVuY3Rpb25OYW1lU2NvcGUoKSBjb25zdDsKICAgICBib29sIGlz
V2l0aFNjb3BlKCkgY29uc3Q7CiAgICAgYm9vbCBpc0dsb2JhbFNjb3BlKCkgY29uc3Q7CiAgICAg
Ym9vbCBpc0Z1bmN0aW9uT3JFdmFsU2NvcGUoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwko
cmV2aXNpb24gMTc0MTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdFNvdXJjZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDE4LDYgKzEwMTgsNyBAQCBJ
bmplY3RlZFNjcmlwdC5DYWxsRnJhbWVQcm94eS5fY3JlYXRlU2NvCiAgICAgY29uc3QgV0lUSF9T
Q09QRSA9IDI7CiAgICAgY29uc3QgQ0xPU1VSRV9TQ09QRSA9IDM7CiAgICAgY29uc3QgQ0FUQ0hf
U0NPUEUgPSA0OworICAgIGNvbnN0IEZVTkNUSU9OX05BTUVfU0NPUEUgPSA1OwogCiAgICAgLyoq
IEB0eXBlIHshT2JqZWN0LjxudW1iZXIsIHN0cmluZz59ICovCiAgICAgdmFyIHNjb3BlVHlwZU5h
bWVzID0ge307CkBAIC0xMDI2LDYgKzEwMjcsNyBAQCBJbmplY3RlZFNjcmlwdC5DYWxsRnJhbWVQ
cm94eS5fY3JlYXRlU2NvCiAgICAgc2NvcGVUeXBlTmFtZXNbV0lUSF9TQ09QRV0gPSAid2l0aCI7
CiAgICAgc2NvcGVUeXBlTmFtZXNbQ0xPU1VSRV9TQ09QRV0gPSAiY2xvc3VyZSI7CiAgICAgc2Nv
cGVUeXBlTmFtZXNbQ0FUQ0hfU0NPUEVdID0gImNhdGNoIjsKKyAgICBzY29wZVR5cGVOYW1lc1tG
VU5DVElPTl9OQU1FX1NDT1BFXSA9ICJmdW5jdGlvbk5hbWUiOwogCiAgICAgcmV0dXJuIHsKICAg
ICAgICAgb2JqZWN0OiBpbmplY3RlZFNjcmlwdC5fd3JhcE9iamVjdChzY29wZU9iamVjdCwgZ3Jv
dXBJZCksCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlw
dENhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwCShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTExMSwxMyArMTExLDE2IEBAIEpTVmFsdWUgSlNKYXZhU2NyaXB0Q2Fs
bEZyYW1lOjpzY29wZVR5cGUKICAgICAgICAgfQogCiAgICAgICAgIGlmICghaW5kZXgpIHsKKyAg
ICAgICAgICAgIGlmIChzY29wZS0+aXNDYXRjaFNjb3BlKCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGpzTnVtYmVyKEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6Q0FUQ0hfU0NPUEUpOworICAgICAg
ICAgICAgaWYgKHNjb3BlLT5pc0Z1bmN0aW9uTmFtZVNjb3BlKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGpzTnVtYmVyKEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6RlVOQ1RJT05fTkFNRV9TQ09Q
RSk7CiAgICAgICAgICAgICBpZiAoc2NvcGUtPmlzV2l0aFNjb3BlKCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGpzTnVtYmVyKEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6V0lUSF9TQ09QRSk7CiAg
ICAgICAgICAgICBpZiAoc2NvcGUtPmlzR2xvYmFsU2NvcGUoKSkgewogICAgICAgICAgICAgICAg
IEFTU0VSVCgrK2l0ZXIgPT0gZW5kKTsKICAgICAgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIo
SlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpHTE9CQUxfU0NPUEUpOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBpZGVudGlmeWluZyBhbmQgcmV0dXJuaW5n
IENBVENIX1NDT1BFIGFwcHJvcHJpYXRlbHkuCiAgICAgICAgICAgICBBU1NFUlQoc2NvcGUtPmlz
RnVuY3Rpb25PckV2YWxTY29wZSgpKTsKICAgICAgICAgICAgIHJldHVybiBqc051bWJlcihKU0ph
dmFTY3JpcHRDYWxsRnJhbWU6OkNMT1NVUkVfU0NPUEUpOwogICAgICAgICB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2Fs
bEZyYW1lLmgJKHJldmlzaW9uIDE3NDEyMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDYgKzc3
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBXSVRIX1NDT1BF
ID0gMjsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgQ0xPU1VSRV9TQ09QRSA9IDM7
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IENBVENIX1NDT1BFID0gNDsKKyAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgRlVOQ1RJT05fTkFNRV9TQ09QRSA9IDU7CiAKIHBy
b3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFnczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5j
cHAJKHJldmlzaW9uIDE3NDEyMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTks
NiArNTksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVDb25z
dGFudFdJVEhfU0NPUEUoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVDb25zdGFudENMT1NVUkVfU0NPUEUoRXhlY1N0
YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRD
YWxsRnJhbWVDb25zdGFudENBVENIX1NDT1BFKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQ29uc3RhbnRGVU5DVElP
Tl9OQU1FX1NDT1BFKEV4ZWNTdGF0ZSopOwogCiBjb25zdCBDbGFzc0luZm8gSlNKYXZhU2NyaXB0
Q2FsbEZyYW1lUHJvdG90eXBlOjpzX2luZm8gPSB7ICJKYXZhU2NyaXB0Q2FsbEZyYW1lIiwgJkJh
c2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0phdmFTY3JpcHRDYWxsRnJhbWVQ
cm90b3R5cGUpIH07CiAKQEAgLTk0LDYgKzk1LDcgQEAgdm9pZCBKU0phdmFTY3JpcHRDYWxsRnJh
bWVQcm90b3R5cGU6OmZpbgogICAgIEpTQ19OQVRJVkVfTk9OX0lOREVYX0FDQ0VTU09SKCJXSVRI
X1NDT1BFIiwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQ29uc3RhbnRXSVRIX1NDT1BFLCBEb250RW51
bSB8IEFjY2Vzc29yKTsKICAgICBKU0NfTkFUSVZFX05PTl9JTkRFWF9BQ0NFU1NPUigiQ0xPU1VS
RV9TQ09QRSIsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUNvbnN0YW50Q0xPU1VSRV9TQ09QRSwgRG9u
dEVudW0gfCBBY2Nlc3Nvcik7CiAgICAgSlNDX05BVElWRV9OT05fSU5ERVhfQUNDRVNTT1IoIkNB
VENIX1NDT1BFIiwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQ29uc3RhbnRDQVRDSF9TQ09QRSwgRG9u
dEVudW0gfCBBY2Nlc3Nvcik7CisgICAgSlNDX05BVElWRV9OT05fSU5ERVhfQUNDRVNTT1IoIkZV
TkNUSU9OX05BTUVfU0NPUEUiLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVDb25zdGFudEZVTkNUSU9O
X05BTUVfU0NPUEUsIERvbnRFbnVtIHwgQWNjZXNzb3IpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uRXZhbHVh
dGUoRXhlY1N0YXRlKiBleGVjKQpAQCAtMjMxLDYgKzIzMywxMSBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihKU0phdmFTY3JpcHRDYWxsRnJhbWU6OkNBVENIX1NDT1BFKSk7CiB9CiAKK0VuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQ29uc3RhbnRGVU5DVElP
Tl9OQU1FX1NDT1BFKEV4ZWNTdGF0ZSopCit7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihKU0phdmFTY3JpcHRDYWxsRnJhbWU6OkZVTkNUSU9OX05BTUVfU0NPUEUpKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9S
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dl
ci5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJv
dG9jb2wvRGVidWdnZXIuanNvbgkocmV2aXNpb24gMTc0MTIxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dlci5qc29uCSh3b3JraW5nIGNvcHkpCkBA
IC04MCw3ICs4MCw3IEBACiAgICAgICAgICAgICAiaWQiOiAiU2NvcGUiLAogICAgICAgICAgICAg
InR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJnbG9i
YWwiLCAibG9jYWwiLCAid2l0aCIsICJjbG9zdXJlIiwgImNhdGNoIl0sICJkZXNjcmlwdGlvbiI6
ICJTY29wZSB0eXBlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAidHlw
ZSI6ICJzdHJpbmciLCAiZW51bSI6IFsiZ2xvYmFsIiwgImxvY2FsIiwgIndpdGgiLCAiY2xvc3Vy
ZSIsICJjYXRjaCIsICJmdW5jdGlvbk5hbWUiXSwgImRlc2NyaXB0aW9uIjogIlNjb3BlIHR5cGUu
IiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0IiwgIiRyZWYiOiAiUnVudGlt
ZS5SZW1vdGVPYmplY3QiLCAiZGVzY3JpcHRpb24iOiAiT2JqZWN0IHJlcHJlc2VudGluZyB0aGUg
c2NvcGUuIEZvciA8Y29kZT5nbG9iYWw8L2NvZGU+IGFuZCA8Y29kZT53aXRoPC9jb2RlPiBzY29w
ZXMgaXQgcmVwcmVzZW50cyB0aGUgYWN0dWFsIG9iamVjdDsgZm9yIHRoZSByZXN0IG9mIHRoZSBz
Y29wZXMsIGl0IGlzIGFydGlmaWNpYWwgdHJhbnNpZW50IG9iamVjdCBlbnVtZXJhdGluZyBzY29w
ZSB2YXJpYWJsZXMgYXMgaXRzIHByb3BlcnRpZXMuIiB9CiAgICAgICAgICAgICBdLAogICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIlNjb3BlIGRlc2NyaXB0aW9uLiIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmFtZVNjb3BlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOYW1lU2NvcGUuaAkocmV2aXNpb24gMTc0MTIxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOYW1lU2NvcGUuaAkod29ya2luZyBj
b3B5KQpAQCAtNjAsMTEgKzYwLDE0IEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVfSU5GTzsKIAor
ICAgIGJvb2wgaXNDYXRjaFNjb3BlKCkgeyByZXR1cm4gbV9pc0NhdGNoU2NvcGU7IH0KKwogcHJv
dGVjdGVkOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBjb25zdCBJZGVudGlmaWVy
JiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogICAgIHsK
ICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgICAgICBtX3JlZ2lzdGVyU3Rv
cmUuc2V0KHZtLCB0aGlzLCB2YWx1ZSk7CisgICAgICAgIG1faXNDYXRjaFNjb3BlID0gISEoYXR0
cmlidXRlcyAmIENhdGNoU2NvcGUpOwogICAgICAgICBzeW1ib2xUYWJsZSgpLT5hZGQoaWRlbnRp
Zmllci5pbXBsKCksIFN5bWJvbFRhYmxlRW50cnkoLTEsIGF0dHJpYnV0ZXMpKTsKICAgICB9CiAK
QEAgLTgyLDYgKzg1LDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBXcml0ZUJhcnJpZXI8VW5r
bm93bj4gbV9yZWdpc3RlclN0b3JlOworICAgIGJvb2wgbV9pc0NhdGNoU2NvcGU7CiB9OwogCiB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaAko
cmV2aXNpb24gMTc0MTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVy
dHlTbG90LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAgZW51bSBBdHRyaWJ1dGUg
ewogICAgIENvbnN0YW50SW50ZWdlciAgID0gMSA8PCA4LCAvLyBwcm9wZXJ0eSBpcyBhIGNvbnN0
YW50IGludGVnZXIgLSBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKICAgICBCdWlsdGlu
T3JGdW5jdGlvbiA9IEJ1aWx0aW4gfCBGdW5jdGlvbiwgLy8gaGVscGVyIG9ubHkgdXNlZCBieSBz
dGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uT3JDb25zdGFudCA9IEJ1aWx0
aW4gfCBGdW5jdGlvbiB8IENvbnN0YW50SW50ZWdlciwgLy8gaGVscGVyIG9ubHkgdXNlZCBieSBz
dGF0aWMgaGFzaHRhYmxlcworICAgIENhdGNoU2NvcGUgICAgICAgID0gMSA8PCA5LCAvLyBwcm9w
ZXJ0eSBpcyBhIGNhdGNoIHNjb3BlIHZhcmlhYmxlCiB9OwogCiBjbGFzcyBQcm9wZXJ0eVNsb3Qg
ewpJbmRleDogU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzQxMzUpCisrKyBTb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTQtMDktMzAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAg
IEZpeGVkIHRoZSBJbnNwZWN0b3IgdG8gYmUgYWJsZSB0byBwcm9wZXJseSBkaXN0aW5ndWlzaCBi
ZXR3ZWVuIHNjb3BlIHR5cGVzLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTM3Mjc5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTG9j
YWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvTW9kZWxzL1Njb3BlQ2hhaW5Ob2RlLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIC0gQWRk
ZWQgaGFuZGxpbmcgb2YgdGhlIEZ1bmN0aW9uTmFtZVNjb3BlIGNhc2UuCisKIDIwMTQtMDktMjcg
IEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIFdlYiBS
ZXBsYXk6IFBsYXliYWNrIHBvc2l0aW9uIHVwZGF0ZXMgc2hvdWxkIGJlIHNlbnQgYmVmb3JlIHRo
ZSBuZXh0IGV2ZW50IGxvb3AgaW5wdXQgaXMgZGlzcGF0Y2hlZApJbmRleDogU291cmNlL1dlYklu
c3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9s
b2NhbGl6ZWRTdHJpbmdzLmpzCShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvV2ViSW5zcGVj
dG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTQsNiArMjE0LDcgQEAKIABsAG8AYwBhAGwAaQB6AGUAZABTAHQAcgBpAG4A
ZwBzAFsAIgBGAHIAYQBtAGUAcwAiAF0AIAA9ACAAIgBGAHIAYQBtAGUAcwAiADsACiAAbABvAGMA
YQBsAGkAegBlAGQAUwB0AHIAaQBuAGcAcwBbACIARgB1AGwAbAAgAFUAUgBMACIAXQAgAD0AIAAi
AEYAdQBsAGwAIABVAFIATAAiADsACiAAbABvAGMAYQBsAGkAegBlAGQAUwB0AHIAaQBuAGcAcwBb
ACIARgB1AG4AYwB0AGkAbwBuACIAXQAgAD0AIAAiAEYAdQBuAGMAdABpAG8AbgAiADsACisAbABv
AGMAYQBsAGkAegBlAGQAUwB0AHIAaQBuAGcAcwBbACIARgB1AG4AYwB0AGkAbwBuACAATgBhAG0A
ZQAgAFYAYQByAGkAYQBiAGwAZQAiAF0AIAA9ACAAIgBGAHUAbgBjAHQAaQBvAG4AIABOAGEAbQBl
ACAAVgBhAHIAaQBhAGIAbABlACIAOwAKIABsAG8AYwBhAGwAaQB6AGUAZABTAHQAcgBpAG4AZwBz
AFsAIgBHAGwAbwBiAGEAbAAgAFYAYQByAGkAYQBiAGwAZQBzACIAXQAgAD0AIAAiAEcAbABvAGIA
YQBsACAAVgBhAHIAaQBhAGIAbABlAHMAIgA7AAogAGwAbwBjAGEAbABpAHoAZQBkAFMAdAByAGkA
bgBnAHMAWwAiAEcAcgBhAG0AbQBhAHIAIgBdACAAPQAgACIARwByAGEAbQBtAGEAcgAiADsACiAA
bABvAGMAYQBsAGkAegBlAGQAUwB0AHIAaQBuAGcAcwBbACIASABUAE0ATAAgAEEAdAB0AHIAaQBi
AHUAdABlAHMAIgBdACAAPQAgACIASABUAE0ATAAgAEEAdAB0AHIAaQBiAHUAdABlAHMAIgA7AApJ
bmRleDogU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVi
dWdnZXJNYW5hZ2VyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcwkocmV2aXNpb24gMTc0MTIx
KQorKysgU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVi
dWdnZXJNYW5hZ2VyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01NzIsNiArNTcyLDkgQEAgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUgPQogICAgICAgICBjYXNlICJjYXRjaCI6
CiAgICAgICAgICAgICB0eXBlID0gV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuQ2F0
Y2g7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiZnVuY3Rpb25OYW1lIjoKKyAg
ICAgICAgICAgIHR5cGUgPSBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUuVHlwZS5GdW5jdGlv
bk5hbWU7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IGNvbnNvbGUuZXJyb3IoIlVua25vd24gdHlwZTogIiArIHBheWxvYWQudHlwZSk7CiAgICAgICAg
IH0KSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY29w
ZUNoYWluTm9kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvU2NvcGVDaGFpbk5vZGUuanMJKHJldmlzaW9uIDE3NDEyMSkKKysrIFNv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY29wZUNoYWluTm9kZS5q
cwkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsOCBAQCBXZWJJbnNwZWN0b3IuU2NvcGVDaGFp
bk5vZGUuVHlwZSA9IHsKICAgICBHbG9iYWw6ICJzY29wZS1jaGFpbi10eXBlLWdsb2JhbCIsCiAg
ICAgV2l0aDogInNjb3BlLWNoYWluLXR5cGUtd2l0aCIsCiAgICAgQ2xvc3VyZTogInNjb3BlLWNo
YWluLXR5cGUtY2xvc3VyZSIsCi0gICAgQ2F0Y2g6ICJzY29wZS1jaGFpbi10eXBlLWNhdGNoIgor
ICAgIENhdGNoOiAic2NvcGUtY2hhaW4tdHlwZS1jYXRjaCIsCisgICAgRnVuY3Rpb25OYW1lOiAi
c2NvcGUtY2hhaW4tdHlwZS1mdW5jdGlvbk5hbWUiCiB9OwogCiBXZWJJbnNwZWN0b3IuU2NvcGVD
aGFpbk5vZGUucHJvdG90eXBlID0gewpJbmRleDogU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NvcGVDaGFp
bkRldGFpbHNTaWRlYmFyUGFuZWwuanMJKHJldmlzaW9uIDE3NDEyMSkKKysrIFNvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Njb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBh
bmVsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsNiArMTIxLDEyIEBAIFdlYkluc3BlY3Rvci5T
Y29wZUNoYWluRGV0YWlsc1NpZGViYXJQYW4KICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2Vk
QnlEZWZhdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAg
ICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUuVHlwZS5GdW5jdGlvbk5h
bWU6CisgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJG
dW5jdGlvbiBOYW1lIFZhcmlhYmxlIik7CisgICAgICAgICAgICAgICAgICAgIGRvbnRIaWdobGln
aHROb25FbnVtZXJhYmxlUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGNv
bGxhcHNlZEJ5RGVmYXVsdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCiAg
ICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUuVHlwZS5XaXRo
OgogICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiV2l0
aCBPYmplY3QgUHJvcGVydGllcyIpOwogICAgICAgICAgICAgICAgICAgICBjb2xsYXBzZWRCeURl
ZmF1bHQgPSBmb3VuZExvY2FsU2NvcGU7Cg==
</data>
<flag name="review"
          id="263700"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239052</attachid>
            <date>2014-10-01 14:59:53 -0700</date>
            <delta_ts>2014-10-01 17:02:55 -0700</delta_ts>
            <desc>patch 2: rework JSNameScope to take an explicit type argument.</desc>
            <filename>bug-137279.patch</filename>
            <type>text/plain</type>
            <size>31661</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0MTc0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBA
CisyMDE0LTEwLTAxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXhlZCB0aGUgSW5zcGVjdG9yIHRvIGJlIGFibGUgdG8gcHJvcGVybHkgZGlzdGluZ3Vpc2ggYmV0
d2VlbiBzY29wZSB0eXBlcy4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzNzI3OT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJl
LWV4aXN0aW5nIGNvZGUgaW5jb3JyZWN0bHkgbGFiZWxzIENhdGNoIFNjb3BlcyBhbmQgRnVuY3Rp
b24gTmFtZSBTY29wZXMKKyAgICAgICAgYXMgV2l0aCBTY29wZXMuICBUaGlzIHBhdGNoIHdpbGwg
Zml4IHRoaXMuCisKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbjoKKyAgICAg
ICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hGdW5jdGlvbk5hbWVTY29wZSk6CisgICAgICAgIChK
U0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHVzaENhdGNoU2NvcGUpOgorICAgICAgICAtIFRo
ZXNlIG5vdyBwYXNzZXMgc3RvcmVzIHRoZSBkZXNpcmVkIEpTTmFtZVNjb3BlOjpUeXBlIGluIGEg
Ynl0ZWNvZGUgb3BlcmFuZC4KKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlclNjb3BlLmNwcDoK
KyAgICAgICAgKEpTQzo6RGVidWdnZXJTY29wZTo6aXNDYXRjaFNjb3BlKToKKyAgICAgICAgKEpT
Qzo6RGVidWdnZXJTY29wZTo6aXNGdW5jdGlvbk5hbWVTY29wZSk6CisgICAgICAgIC0gQWRkZWQg
cXVlcmllcyB0byBiZSBhYmxlIHRvIGV4cGxpY2l0bHkgdGVzdCBpZiB0aGUgc2NvcGUgaXMgYSBD
YXRjaFNjb3BlCisgICAgICAgICAgb3IgRnVuY3Rpb25OYW1lU2NvcGUuICBUaGUgRnVuY3Rpb25O
YW1lU2NvcGUgaXMgdGhlIGNhc2Ugd2hlcmUgdGhlCisgICAgICAgICAgTmFtZVNjb3BlIGlzIHVz
ZWQgdG8gY2FwdHVyZSB0aGUgZnVuY3Rpb24gbmFtZSBvZiBhIGZ1bmN0aW9uIGV4cHJlc3Npb24u
CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJTY29wZS5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNKYXZhU2Ny
aXB0Q2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNKYXZhU2NyaXB0Q2FsbEZy
YW1lOjpzY29wZVR5cGUpOgorICAgICAgICAqIGluc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJh
bWUuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBl
LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxG
cmFtZUNvbnN0YW50RlVOQ1RJT05fTkFNRV9TQ09QRSk6CisgICAgICAgICogaW5zcGVjdG9yL3By
b3RvY29sL0RlYnVnZ2VyLmpzb246CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAg
ICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSk6Cisg
ICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHVzaF9uYW1lX3Njb3BlKToKKyAgICAgICAg
KiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1
c2hfbmFtZV9zY29wZSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMu
Y3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIHJ1bnRpbWUvSlNG
dW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmFkZE5hbWVTY29wZUlmTmVl
ZGVkKToKKyAgICAgICAgKiBydW50aW1lL0pTTmFtZVNjb3BlLmg6CisgICAgICAgIChKU0M6OkpT
TmFtZVNjb3BlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpKU05hbWVTY29wZTo6aXNGdW5jdGlv
bk5hbWVTY29wZSk6CisgICAgICAgIChKU0M6OkpTTmFtZVNjb3BlOjppc0NhdGNoU2NvcGUpOgor
ICAgICAgICAoSlNDOjpKU05hbWVTY29wZTo6SlNOYW1lU2NvcGUpOgorICAgICAgICAtIE5vdyBz
dG9yZXMgdGhlIEpTTmFtZVNjb3BlOjpUeXBlIGluIGEgZmllbGQuCisKIDIwMTQtMTAtMDEgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBPYmplY3QgYWxsb2NhdGlv
biBzaW5raW5nIGlzIGJyb2tlbiBmb3IgZXNjYXBpbmcgc2l0ZXMgaW4gbG9vcHMKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24JKHJl
dmlzaW9uIDE3NDEyMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29k
ZUxpc3QuanNvbgkod29ya2luZyBjb3B5KQpAQCAtMTEyLDcgKzExMiw3IEBACiAgICAgICAgICAg
ICB7ICJuYW1lIiA6ICJvcF9wdXRfdG9fc2NvcGUiLCAibGVuZ3RoIiA6IDcgfSwKICAgICAgICAg
ICAgIHsgIm5hbWUiIDogIm9wX3B1c2hfd2l0aF9zY29wZSIsICJsZW5ndGgiIDogMiB9LAogICAg
ICAgICAgICAgeyAibmFtZSIgOiAib3BfcG9wX3Njb3BlIiwgImxlbmd0aCIgOiAxIH0sCi0gICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF9wdXNoX25hbWVfc2NvcGUiLCAibGVuZ3RoIiA6IDQgfSwK
KyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3B1c2hfbmFtZV9zY29wZSIsICJsZW5ndGgiIDog
NSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfY2F0Y2giLCAibGVuZ3RoIiA6IDIgfSwK
ICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3Rocm93IiwgImxlbmd0aCIgOiAyIH0sCiAgICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF90aHJvd19zdGF0aWNfZXJyb3IiLCAibGVuZ3RoIiA6IDMg
fSwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjI5NCw2ICsyMjk0LDcgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1
c2hGdW5jdGlvbgogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhZGRDb25zdGFudChwcm9wZXJ0
eSkpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh2YWx1ZS0+aW5kZXgoKSk7CiAgICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKGF0dHJpYnV0ZXMpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVu
ZChKU05hbWVTY29wZTo6RnVuY3Rpb25OYW1lU2NvcGUpOwogfQogCiB2b2lkIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0UHVzaENhdGNoU2NvcGUoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIFJl
Z2lzdGVySUQqIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpAQCAtMjMwNyw2ICsyMzA4LDcg
QEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hDYXRjaFNjbwogICAgIGluc3RydWN0
aW9ucygpLmFwcGVuZChhZGRDb25zdGFudChwcm9wZXJ0eSkpOwogICAgIGluc3RydWN0aW9ucygp
LmFwcGVuZCh2YWx1ZS0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGF0dHJp
YnV0ZXMpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChKU05hbWVTY29wZTo6Q2F0Y2hTY29w
ZSk7CiB9CiAKIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmJlZ2luU3dpdGNoKFJlZ2lzdGVySUQq
IHNjcnV0aW5lZVJlZ2lzdGVyLCBTd2l0Y2hJbmZvOjpTd2l0Y2hUeXBlIHR5cGUpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJTY29wZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuY3BwCShy
ZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUg
IkpTTGV4aWNhbEVudmlyb25tZW50LmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1
ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CkBAIC0xNTQsNiArMTU1LDE2IEBAIHZvaWQgRGVidWdnZXJTY29wZTo6aW52YWxpZGF0
ZUNoYWluKCkKICAgICB9CiB9CiAKK2Jvb2wgRGVidWdnZXJTY29wZTo6aXNDYXRjaFNjb3BlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9zY29wZS0+aXNOYW1lU2NvcGVPYmplY3QoKSAmJiByZWlu
dGVycHJldF9jYXN0PEpTTmFtZVNjb3BlKj4obV9zY29wZS5nZXQoKSktPmlzQ2F0Y2hTY29wZSgp
OworfQorCitib29sIERlYnVnZ2VyU2NvcGU6OmlzRnVuY3Rpb25OYW1lU2NvcGUoKSBjb25zdAor
eworICAgIHJldHVybiBtX3Njb3BlLT5pc05hbWVTY29wZU9iamVjdCgpICYmIHJlaW50ZXJwcmV0
X2Nhc3Q8SlNOYW1lU2NvcGUqPihtX3Njb3BlLmdldCgpKS0+aXNGdW5jdGlvbk5hbWVTY29wZSgp
OworfQorCiBib29sIERlYnVnZ2VyU2NvcGU6OmlzV2l0aFNjb3BlKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9zY29wZS0+aXNXaXRoU2NvcGUoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlclNjb3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuaAkocmV2aXNpb24gMTc0MTIxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuaAkod29ya2luZyBjb3B5
KQpAQCAtODQsNiArODQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnZhbGlkYXRlQ2hhaW4oKTsK
ICAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiAhIW1fc2NvcGU7IH0KIAorICAgIGJv
b2wgaXNDYXRjaFNjb3BlKCkgY29uc3Q7CisgICAgYm9vbCBpc0Z1bmN0aW9uTmFtZVNjb3BlKCkg
Y29uc3Q7CiAgICAgYm9vbCBpc1dpdGhTY29wZSgpIGNvbnN0OwogICAgIGJvb2wgaXNHbG9iYWxT
Y29wZSgpIGNvbnN0OwogICAgIGJvb2wgaXNGdW5jdGlvbk9yRXZhbFNjb3BlKCkgY29uc3Q7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNl
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRTb3VyY2UuanMJKHJldmlzaW9uIDE3NDEyMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTQgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MTAxOCw2ICsxMDE4LDcgQEAgSW5qZWN0ZWRTY3JpcHQuQ2FsbEZyYW1lUHJveHkuX2NyZWF0ZVNj
bwogICAgIGNvbnN0IFdJVEhfU0NPUEUgPSAyOwogICAgIGNvbnN0IENMT1NVUkVfU0NPUEUgPSAz
OwogICAgIGNvbnN0IENBVENIX1NDT1BFID0gNDsKKyAgICBjb25zdCBGVU5DVElPTl9OQU1FX1ND
T1BFID0gNTsKIAogICAgIC8qKiBAdHlwZSB7IU9iamVjdC48bnVtYmVyLCBzdHJpbmc+fSAqLwog
ICAgIHZhciBzY29wZVR5cGVOYW1lcyA9IHt9OwpAQCAtMTAyNiw2ICsxMDI3LDcgQEAgSW5qZWN0
ZWRTY3JpcHQuQ2FsbEZyYW1lUHJveHkuX2NyZWF0ZVNjbwogICAgIHNjb3BlVHlwZU5hbWVzW1dJ
VEhfU0NPUEVdID0gIndpdGgiOwogICAgIHNjb3BlVHlwZU5hbWVzW0NMT1NVUkVfU0NPUEVdID0g
ImNsb3N1cmUiOwogICAgIHNjb3BlVHlwZU5hbWVzW0NBVENIX1NDT1BFXSA9ICJjYXRjaCI7Cisg
ICAgc2NvcGVUeXBlTmFtZXNbRlVOQ1RJT05fTkFNRV9TQ09QRV0gPSAiZnVuY3Rpb25OYW1lIjsK
IAogICAgIHJldHVybiB7CiAgICAgICAgIG9iamVjdDogaW5qZWN0ZWRTY3JpcHQuX3dyYXBPYmpl
Y3Qoc2NvcGVPYmplY3QsIGdyb3VwSWQpLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAkocmV2aXNp
b24gMTc0MTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3Jp
cHRDYWxsRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsMTMgKzExMSwxNiBAQCBKU1Zh
bHVlIEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6c2NvcGVUeXBlCiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAoIWluZGV4KSB7CisgICAgICAgICAgICBpZiAoc2NvcGUtPmlzQ2F0Y2hTY29wZSgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBqc051bWJlcihKU0phdmFTY3JpcHRDYWxsRnJhbWU6OkNB
VENIX1NDT1BFKTsKKyAgICAgICAgICAgIGlmIChzY29wZS0+aXNGdW5jdGlvbk5hbWVTY29wZSgp
KQorICAgICAgICAgICAgICAgIHJldHVybiBqc051bWJlcihKU0phdmFTY3JpcHRDYWxsRnJhbWU6
OkZVTkNUSU9OX05BTUVfU0NPUEUpOwogICAgICAgICAgICAgaWYgKHNjb3BlLT5pc1dpdGhTY29w
ZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBqc051bWJlcihKU0phdmFTY3JpcHRDYWxsRnJh
bWU6OldJVEhfU0NPUEUpOwogICAgICAgICAgICAgaWYgKHNjb3BlLT5pc0dsb2JhbFNjb3BlKCkp
IHsKICAgICAgICAgICAgICAgICBBU1NFUlQoKytpdGVyID09IGVuZCk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGpzTnVtYmVyKEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6R0xPQkFMX1NDT1BFKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgaWRlbnRp
ZnlpbmcgYW5kIHJldHVybmluZyBDQVRDSF9TQ09QRSBhcHByb3ByaWF0ZWx5LgogICAgICAgICAg
ICAgQVNTRVJUKHNjb3BlLT5pc0Z1bmN0aW9uT3JFdmFsU2NvcGUoKSk7CiAgICAgICAgICAgICBy
ZXR1cm4ganNOdW1iZXIoSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpDTE9TVVJFX1NDT1BFKTsKICAg
ICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3Jp
cHRDYWxsRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5oCShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC03Nyw2ICs3Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgV0lUSF9TQ09QRSA9IDI7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENMT1NVUkVfU0NPUEUgPSAzOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBDQVRD
SF9TQ09QRSA9IDQ7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZVTkNUSU9OX05B
TUVfU0NPUEUgPSA1OwogCiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRD
YWxsRnJhbWVQcm90b3R5cGUuY3BwCShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNKYQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZh
U2NyaXB0Q2FsbEZyYW1lQ29uc3RhbnRXSVRIX1NDT1BFKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQ29uc3RhbnRD
TE9TVVJFX1NDT1BFKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQ29uc3RhbnRDQVRDSF9TQ09QRShFeGVjU3RhdGUq
KTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxG
cmFtZUNvbnN0YW50RlVOQ1RJT05fTkFNRV9TQ09QRShFeGVjU3RhdGUqKTsKIAogY29uc3QgQ2xh
c3NJbmZvIEpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZTo6c19pbmZvID0geyAiSmF2YVNj
cmlwdENhbGxGcmFtZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNK
YXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlKSB9OwogCkBAIC05NCw2ICs5NSw3IEBAIHZvaWQg
SlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlOjpmaW4KICAgICBKU0NfTkFUSVZFX05PTl9J
TkRFWF9BQ0NFU1NPUigiV0lUSF9TQ09QRSIsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUNvbnN0YW50
V0lUSF9TQ09QRSwgRG9udEVudW0gfCBBY2Nlc3Nvcik7CiAgICAgSlNDX05BVElWRV9OT05fSU5E
RVhfQUNDRVNTT1IoIkNMT1NVUkVfU0NPUEUiLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVDb25zdGFu
dENMT1NVUkVfU0NPUEUsIERvbnRFbnVtIHwgQWNjZXNzb3IpOwogICAgIEpTQ19OQVRJVkVfTk9O
X0lOREVYX0FDQ0VTU09SKCJDQVRDSF9TQ09QRSIsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUNvbnN0
YW50Q0FUQ0hfU0NPUEUsIERvbnRFbnVtIHwgQWNjZXNzb3IpOworICAgIEpTQ19OQVRJVkVfTk9O
X0lOREVYX0FDQ0VTU09SKCJGVU5DVElPTl9OQU1FX1NDT1BFIiwganNKYXZhU2NyaXB0Q2FsbEZy
YW1lQ29uc3RhbnRGVU5DVElPTl9OQU1FX1NDT1BFLCBEb250RW51bSB8IEFjY2Vzc29yKTsKIH0K
IAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90
b3R5cGVGdW5jdGlvbkV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTIzMSw2ICsyMzMsMTEg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpDQVRDSF9TQ09Q
RSkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxG
cmFtZUNvbnN0YW50RlVOQ1RJT05fTkFNRV9TQ09QRShFeGVjU3RhdGUqKQoreworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpGVU5DVElP
Tl9OQU1FX1NDT1BFKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCiAjZW5kaWYg
Ly8gRU5BQkxFKElOU1BFQ1RPUikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb24JKHJldmlzaW9uIDE3NDEyMSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNv
bgkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQAogICAgICAgICAgICAgImlkIjogIlNj
b3BlIiwKICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAicHJvcGVy
dGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAidHlwZSI6ICJzdHJp
bmciLCAiZW51bSI6IFsiZ2xvYmFsIiwgImxvY2FsIiwgIndpdGgiLCAiY2xvc3VyZSIsICJjYXRj
aCJdLCAiZGVzY3JpcHRpb24iOiAiU2NvcGUgdHlwZS4iIH0sCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbImdsb2JhbCIsICJsb2Nh
bCIsICJ3aXRoIiwgImNsb3N1cmUiLCAiY2F0Y2giLCAiZnVuY3Rpb25OYW1lIl0sICJkZXNjcmlw
dGlvbiI6ICJTY29wZSB0eXBlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVj
dCIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiwgImRlc2NyaXB0aW9uIjogIk9iamVj
dCByZXByZXNlbnRpbmcgdGhlIHNjb3BlLiBGb3IgPGNvZGU+Z2xvYmFsPC9jb2RlPiBhbmQgPGNv
ZGU+d2l0aDwvY29kZT4gc2NvcGVzIGl0IHJlcHJlc2VudHMgdGhlIGFjdHVhbCBvYmplY3Q7IGZv
ciB0aGUgcmVzdCBvZiB0aGUgc2NvcGVzLCBpdCBpcyBhcnRpZmljaWFsIHRyYW5zaWVudCBvYmpl
Y3QgZW51bWVyYXRpbmcgc2NvcGUgdmFyaWFibGVzIGFzIGl0cyBwcm9wZXJ0aWVzLiIgfQogICAg
ICAgICAgICAgXSwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTY29wZSBkZXNjcmlwdGlv
bi4iCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHJldmlz
aW9uIDE3NDEyMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ3NCw2ICs0NzQsMTcgQEAgcHVibGljOgogICAgICAgICBhZGRD
YWxsQXJndW1lbnQoYXJnNCk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJlZyBhcmcyLCBH
UFJSZWcgYXJnMywgVHJ1c3RlZEltbTMyIGFyZzQsIFRydXN0ZWRJbW0zMiBhcmc1KQorICAgIHsK
KyAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmcx
KTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIpOworICAgICAgICBhZGRDYWxsQXJndW1l
bnQoYXJnMyk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc0KTsKKyAgICAgICAgYWRkQ2Fs
bEFyZ3VtZW50KGFyZzUpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0ciBhcmcxLCBHUFJSZWcgYXJnMiwgR1BS
UmVnIGFyZzMsIFRydXN0ZWRJbW0zMiBhcmc0LCBUcnVzdGVkSW1tUHRyIGFyZzUpCiAgICAgewog
ICAgICAgICByZXNldENhbGxBcmd1bWVudHMoKTsKQEAgLTEyODUsNiArMTI5NiwxNSBAQCBwdWJs
aWM6CiAgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJlZyBhcmcyLCBUcnVzdGVk
SW1tMzIgYXJnMywgVHJ1c3RlZEltbTMyIGFyZzQpCisgICAgeworICAgICAgICBtb3ZlKGFyZzIs
IEdQUkluZm86OmFyZ3VtZW50R1BSMik7IC8vIEluIGNhc2UgYXJnMiBpcyBhcmd1bWVudEdQUjEu
CisgICAgICAgIG1vdmUoYXJnMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgbW92
ZShhcmczLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpOworICAgICAgICBtb3ZlKGFyZzQsIEdQUklu
Zm86OmFyZ3VtZW50R1BSNCk7CisgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2
b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJl
ZyBhcmcyLCBUcnVzdGVkSW1tUHRyIGFyZzMpCiAgICAgewogICAgICAgICBtb3ZlKGFyZzIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMik7IC8vIEluIGNhc2UgYXJnMiBpcyBhcmd1bWVudEdQUjEuCkBA
IC0xMzU4LDYgKzEzNzgsMTIgQEAgcHVibGljOgogICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2
b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJl
ZyBhcmcyLCBUcnVzdGVkSW1tMzIgYXJnMywgVHJ1c3RlZEltbTMyIGFyZzQpCisgICAgeworICAg
ICAgICBwb2tlKGFyZzQsIFBPS0VfQVJHVU1FTlRfT0ZGU0VUKTsKKyAgICAgICAgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgIH0KKwogICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0ciBh
cmcxLCBHUFJSZWcgYXJnMiwgVHJ1c3RlZEltbTMyIGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkK
ICAgICB7CiAgICAgICAgIHBva2UoYXJnNCwgUE9LRV9BUkdVTUVOVF9PRkZTRVQpOwpAQCAtMTY0
NSw2ICsxNjcxLDE1IEBAIHB1YmxpYzoKICAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICB9CiAgICAgCisgICAgQUxXQVlT
X0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyIGFy
ZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMywgVHJ1c3RlZEltbTMyIGFyZzQsIFRydXN0ZWRJ
bW0zMiBhcmc1KQorICAgIHsKKyAgICAgICAgc2V0dXBUd29TdHViQXJnc0dQUjxHUFJJbmZvOjph
cmd1bWVudEdQUjIsIEdQUkluZm86OmFyZ3VtZW50R1BSMz4oYXJnMiwgYXJnMyk7CisgICAgICAg
IG1vdmUoYXJnMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgbW92ZShhcmc0LCBH
UFJJbmZvOjphcmd1bWVudEdQUjQpOworICAgICAgICBtb3ZlKGFyZzUsIEdQUkluZm86OmFyZ3Vt
ZW50R1BSNSk7CisgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBh
cmczLCBUcnVzdGVkSW1tMzIgYXJnNCkKICAgICB7CiAgICAgICAgIHNldHVwVGhyZWVTdHViQXJn
c0dQUjxHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSMiwgR1BSSW5m
bzo6YXJndW1lbnRHUFIzPihhcmcxLCBhcmcyLCBhcmczKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuaAkocmV2aXNpb24gMTc0MTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuaAkod29ya2luZyBjb3B5KQpAQCAtNzE5LDcgKzcxOSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VDQywgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJQ0MsIFJlZ2lzdGVySUQsIGNvbnN0
IElkZW50aWZpZXIqLCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FRSwgUmVnaXN0ZXJJRCk7
Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRp
b25fRUlkSlosIGNvbnN0IElkZW50aWZpZXIqLCBSZWdpc3RlcklELCBpbnQzMl90KTsKKyAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSWRK
WlosIGNvbnN0IElkZW50aWZpZXIqLCBSZWdpc3RlcklELCBpbnQzMl90LCBpbnQzMl90KTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9F
SiwgUmVnaXN0ZXJJRCk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soVl9KSVRPcGVyYXRpb25fRUos
IFJlZ2lzdGVySUQpOwpAQCAtNzUxLDcgKzc1MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0aW9uX0VKUywg
R1BSUmVnLCBHUFJSZWcsIHNpemVfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9u
X0VKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7Ci0g
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RUlkSlosIGNvbnN0IElkZW50aWZpZXIqLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90
KTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJh
dGlvbl9FSWRKWlosIGNvbnN0IElkZW50aWZpZXIqLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBp
bnQzMl90LCBpbnQzMl90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSiwg
UmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJ
RCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUpaLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90KTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCShyZXZpc2lvbiAxNzQx
MjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtNDQxLDkgKzQ0MSw5IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRp
b24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSWRKWiBvcGVyYXRpb24sIGNvbnN0IElkZW50aWZpZXIq
IGlkZW50T3AxLCBSZWdpc3RlcklEIHJlZ09wMiwgaW50MzJfdCBvcDMpCitBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9F
SWRKWlogb3BlcmF0aW9uLCBjb25zdCBJZGVudGlmaWVyKiBpZGVudE9wMSwgUmVnaXN0ZXJJRCBy
ZWdPcDIsIGludDMyX3Qgb3AzLCBpbnQzMl90IG9wNCkKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihpZGVudE9wMSksIHJlZ09wMiwgVHJ1c3RlZEltbTMy
KG9wMykpOworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKGlk
ZW50T3AxKSwgcmVnT3AyLCBUcnVzdGVkSW1tMzIob3AzKSwgVHJ1c3RlZEltbTMyKG9wNCkpOwog
ICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAK
QEAgLTU3NSw5ICs1NzUsOSBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsK
IH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUlkSlogb3BlcmF0aW9uLCBjb25zdCBJZGVudGlmaWVyKiBpZGVu
dE9wMSwgUmVnaXN0ZXJJRCByZWdPcDJUYWcsIFJlZ2lzdGVySUQgcmVnT3AyUGF5bG9hZCwgaW50
MzJfdCBvcDMpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSWRKWlogb3BlcmF0aW9uLCBjb25zdCBJZGVudGlmaWVy
KiBpZGVudE9wMSwgUmVnaXN0ZXJJRCByZWdPcDJUYWcsIFJlZ2lzdGVySUQgcmVnT3AyUGF5bG9h
ZCwgaW50MzJfdCBvcDMsIGludDMyX3Qgb3A0KQogewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKGlkZW50T3AxKSwgcmVnT3AyUGF5bG9hZCwgcmVnT3AyVGFn
LCBUcnVzdGVkSW1tMzIob3AzKSk7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRy
dXN0ZWRJbW1QdHIoaWRlbnRPcDEpLCByZWdPcDJQYXlsb2FkLCByZWdPcDJUYWcsIFRydXN0ZWRJ
bW0zMihvcDMpLCBUcnVzdGVkSW1tMzIob3A0KSk7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRo
RXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAkocmV2aXNpb24gMTc0MTIxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04MDUsNyArODA1LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3RvX251bWJlcihJbnN0
cnVjdAogdm9pZCBKSVQ6OmVtaXRfb3BfcHVzaF9uYW1lX3Njb3BlKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgZW1pdExvYWQoY3VycmVudEluc3RydWN0aW9uWzJdLnUu
b3BlcmFuZCwgcmVnVDEsIHJlZ1QwKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1c2hO
YW1lU2NvcGUsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kKSwgcmVnVDEsIHJlZ1QwLCBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5k
KTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1c2hOYW1lU2NvcGUsICZtX2NvZGVCbG9j
ay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgcmVnVDEsIHJl
Z1QwLCBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kLCBjdXJyZW50SW5zdHJ1Y3Rpb25b
NF0udS5vcGVyYW5kKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2goSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzLmNwcAkocmV2aXNpb24gMTc0MTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTI1LDcgKzUyNSw3IEBAIHZvaWQg
SklUOjplbWl0X29wX3RvX251bWJlcihJbnN0cnVjdGlvbioKIHZvaWQgSklUOjplbWl0X29wX3B1
c2hfbmFtZV9zY29wZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIGVt
aXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCwgcmVn
VDApOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHVzaE5hbWVTY29wZSwgJm1fY29kZUJs
b2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCByZWdUMCwg
Y3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25QdXNoTmFtZVNjb3BlLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZCksIHJlZ1QwLCBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVy
YW5kLCBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKIH0KIAogdm9pZCBKSVQ6OmVt
aXRfb3BfY2F0Y2goSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTc0MTIx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMwOCwxMiArMTMwOCwxMyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0R2V0dGVyU2V0CiB9CiAjZW5kaWYKIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1c2hOYW1lU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBJZGVudGlmaWVyKiBpZGVudGlmaWVyLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGludDMyX3QgYXR0aWJ1dGVzKQordm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1c2hOYW1lU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBJZGVudGlm
aWVyKiBpZGVudGlmaWVyLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGludDMyX3QgYXR0
aWJ1dGVzLCBpbnQzMl90IHR5cGUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAKLSAgICBKU05hbWVTY29w
ZSogc2NvcGUgPSBKU05hbWVTY29wZTo6Y3JlYXRlKGV4ZWMsICppZGVudGlmaWVyLCBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgYXR0aWJ1dGVzKTsKKyAgICBKU05hbWVTY29wZTo6VHlw
ZSBzY29wZVR5cGUgPSBzdGF0aWNfY2FzdDxKU05hbWVTY29wZTo6VHlwZT4odHlwZSk7CisgICAg
SlNOYW1lU2NvcGUqIHNjb3BlID0gSlNOYW1lU2NvcGU6OmNyZWF0ZShleGVjLCAqaWRlbnRpZmll
ciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIGF0dGlidXRlcywgc2NvcGVUeXBlKTsK
IAogICAgIGV4ZWMtPnNldFNjb3BlKHNjb3BlKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDcg
KzE2NCw3IEBAIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXQKIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNQU1BTKShFeGVjU3RhdGUq
LCBKU0NlbGwqLCB2b2lkKiwgc2l6ZV90LCB2b2lkKiwgc2l6ZV90KTsKIHR5cGVkZWYgdm9pZCBK
SVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNaKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBp
bnQzMl90KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUND
KShFeGVjU3RhdGUqLCBKU0NlbGwqLCBKU0NlbGwqKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFU
SU9OICgqVl9KSVRPcGVyYXRpb25fRUlkSlopKEV4ZWNTdGF0ZSosIElkZW50aWZpZXIqLCBFbmNv
ZGVkSlNWYWx1ZSwgaW50MzJfdCk7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklU
T3BlcmF0aW9uX0VJZEpaWikoRXhlY1N0YXRlKiwgSWRlbnRpZmllciosIEVuY29kZWRKU1ZhbHVl
LCBpbnQzMl90LCBpbnQzMl90KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRP
cGVyYXRpb25fRUopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBK
SVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpDSSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUsIEpTQ2VsbCosIFN0cmluZ0ltcGwqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9O
ICgqVl9KSVRPcGVyYXRpb25fRUpJZEpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRl
bnRpZmllciosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CkBAIC0yNzcsNyArMjc3
LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldAogI2Vsc2UKIHZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwgSlND
ZWxsKiwgSWRlbnRpZmllciosIEpTQ2VsbCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKICNlbmRp
Zgotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hOYW1lU2NvcGUoRXhlY1N0YXRlKiwg
SWRlbnRpZmllciosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHVzaE5hbWVTY29wZShFeGVjU3RhdGUqLCBJZGVudGlm
aWVyKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QpIFdURl9JTlRFUk5BTDsKIHZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXNoV2l0aFNjb3BlKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9w
U2NvcGUoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblByb2ZpbGVEaWRDYWxsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRo
cy5jcHAJKHJldmlzaW9uIDE3NDEyMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMDAsNyArMTMwMCw4IEBAIExM
SU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXNoX25hbWUKIHsKICAgICBMTElOVF9CRUdJ
TigpOwogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7Ci0gICAg
SlNOYW1lU2NvcGUqIHNjb3BlID0gSlNOYW1lU2NvcGU6OmNyZWF0ZShleGVjLCBjb2RlQmxvY2st
PmlkZW50aWZpZXIocGNbMV0udS5vcGVyYW5kKSwgTExJTlRfT1AoMikuanNWYWx1ZSgpLCBwY1sz
XS51Lm9wZXJhbmQpOworICAgIEpTTmFtZVNjb3BlOjpUeXBlIHR5cGUgPSBzdGF0aWNfY2FzdDxK
U05hbWVTY29wZTo6VHlwZT4ocGNbNF0udS5vcGVyYW5kKTsKKyAgICBKU05hbWVTY29wZSogc2Nv
cGUgPSBKU05hbWVTY29wZTo6Y3JlYXRlKGV4ZWMsIGNvZGVCbG9jay0+aWRlbnRpZmllcihwY1sx
XS51Lm9wZXJhbmQpLCBMTElOVF9PUCgyKS5qc1ZhbHVlKCksIHBjWzNdLnUub3BlcmFuZCwgdHlw
ZSk7CiAgICAgZXhlYy0+c2V0U2NvcGUoc2NvcGUpOwogICAgIExMSU5UX0VORCgpOwogfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyLmFzbQkocmV2aXNpb24gMTc0MTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ2LDcgKzEyNDYs
NyBAQCBfbGxpbnRfb3BfcG9wX3Njb3BlOgogX2xsaW50X29wX3B1c2hfbmFtZV9zY29wZToKICAg
ICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHVz
aF9uYW1lX3Njb3BlKQotICAgIGRpc3BhdGNoKDQpCisgICAgZGlzcGF0Y2goNSkKIAogCiBfbGxp
bnRfb3BfdGhyb3c6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcAkocmV2aXNpb24gMTc0MTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNiw3ICsxMTYsNyBAQCB2
b2lkIEpTRnVuY3Rpb246OmFkZE5hbWVTY29wZUlmTmVlZGVkKFZNCiAgICAgICAgIHJldHVybjsK
ICAgICBpZiAoIWZ1bmN0aW9uTmFtZVNjb3BlSXNEeW5hbWljKGV4ZWN1dGFibGUtPnVzZXNFdmFs
KCksIGV4ZWN1dGFibGUtPmlzU3RyaWN0TW9kZSgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIHNl
dFNjb3BlKHZtLCBKU05hbWVTY29wZTo6Y3JlYXRlKHZtLCBzY29wZSgpLT5nbG9iYWxPYmplY3Qo
KSwgZXhlY3V0YWJsZS0+bmFtZSgpLCB0aGlzLCBSZWFkT25seSB8IERvbnREZWxldGUsIHNjb3Bl
KCkpKTsKKyAgICBzZXRTY29wZSh2bSwgSlNOYW1lU2NvcGU6OmNyZWF0ZSh2bSwgc2NvcGUoKS0+
Z2xvYmFsT2JqZWN0KCksIGV4ZWN1dGFibGUtPm5hbWUoKSwgdGhpcywgUmVhZE9ubHkgfCBEb250
RGVsZXRlLCBzY29wZSgpLCBKU05hbWVTY29wZTo6RnVuY3Rpb25OYW1lU2NvcGUpKTsKIH0KIAog
SlNGdW5jdGlvbiogSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKFZNJiB2bSwgRnVu
Y3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOYW1lU2NvcGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hbWVTY29wZS5oCShy
ZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hbWVT
Y29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxNyArMzYsMjIgQEAgY2xhc3MgSlNOYW1lU2Nv
cGUgOiBwdWJsaWMgSlNFbnZpcm9ubWVudAogcHVibGljOgogICAgIHR5cGVkZWYgSlNFbnZpcm9u
bWVudFJlY29yZCBCYXNlOwogCi0gICAgc3RhdGljIEpTTmFtZVNjb3BlKiBjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCB1
bnNpZ25lZCBhdHRyaWJ1dGVzKQorICAgIGVudW0gVHlwZSB7CisgICAgICAgIENhdGNoU2NvcGUs
CisgICAgICAgIEZ1bmN0aW9uTmFtZVNjb3BlCisgICAgfTsKKworICAgIHN0YXRpYyBKU05hbWVT
Y29wZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmll
ciwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcywgVHlwZSB0eXBlKQogICAgIHsK
ICAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICAgICAgSlNOYW1lU2NvcGUqIHNjb3Bl
T2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNOYW1lU2NvcGU+KHZtLmhlYXAp
KSBKU05hbWVTY29wZSh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBleGVjLT5zY29w
ZSgpKTsKKyAgICAgICAgSlNOYW1lU2NvcGUqIHNjb3BlT2JqZWN0ID0gbmV3IChOb3ROdWxsLCBh
bGxvY2F0ZUNlbGw8SlNOYW1lU2NvcGU+KHZtLmhlYXApKSBKU05hbWVTY29wZSh2bSwgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBleGVjLT5zY29wZSgpLCB0eXBlKTsKICAgICAgICAgc2Nv
cGVPYmplY3QtPmZpbmlzaENyZWF0aW9uKHZtLCBpZGVudGlmaWVyLCB2YWx1ZSwgYXR0cmlidXRl
cyk7CiAgICAgICAgIHJldHVybiBzY29wZU9iamVjdDsKICAgICB9CiAKLSAgICBzdGF0aWMgSlNO
YW1lU2NvcGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNv
bnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJp
YnV0ZXMsIEpTU2NvcGUqIG5leHQpCisgICAgc3RhdGljIEpTTmFtZVNjb3BlKiBjcmVhdGUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBKU1Njb3BlKiBuZXh0
LCBUeXBlIHR5cGUpCiAgICAgewotICAgICAgICBKU05hbWVTY29wZSogc2NvcGVPYmplY3QgPSBu
ZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU05hbWVTY29wZT4odm0uaGVhcCkpIEpTTmFtZVNj
b3BlKHZtLCBnbG9iYWxPYmplY3QsIG5leHQpOworICAgICAgICBKU05hbWVTY29wZSogc2NvcGVP
YmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU05hbWVTY29wZT4odm0uaGVhcCkp
IEpTTmFtZVNjb3BlKHZtLCBnbG9iYWxPYmplY3QsIG5leHQsIHR5cGUpOwogICAgICAgICBzY29w
ZU9iamVjdC0+ZmluaXNoQ3JlYXRpb24odm0sIGlkZW50aWZpZXIsIHZhbHVlLCBhdHRyaWJ1dGVz
KTsKICAgICAgICAgcmV0dXJuIHNjb3BlT2JqZWN0OwogICAgIH0KQEAgLTYwLDYgKzY1LDkgQEAg
cHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCisgICAgYm9vbCBpc0Z1bmN0aW9uTmFtZVNj
b3BlKCkgeyByZXR1cm4gbV90eXBlID09IEZ1bmN0aW9uTmFtZVNjb3BlOyB9CisgICAgYm9vbCBp
c0NhdGNoU2NvcGUoKSB7IHJldHVybiBtX3R5cGUgPT0gQ2F0Y2hTY29wZTsgfQorCiBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYgdm0sIGNvbnN0IElkZW50aWZpZXImIGlk
ZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiAgICAgewpAQCAt
NzEsMTcgKzc5LDE5IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1
cmVGbGFnczsKIAogcHJpdmF0ZToKLSAgICBKU05hbWVTY29wZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTU2NvcGUqIG5leHQpCisgICAgSlNOYW1lU2NvcGUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Njb3BlKiBuZXh0LCBUeXBlIHR5cGUp
CiAgICAgICAgIDogQmFzZSgKICAgICAgICAgICAgIHZtLAogICAgICAgICAgICAgZ2xvYmFsT2Jq
ZWN0LT5uYW1lU2NvcGVTdHJ1Y3R1cmUoKSwKICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8
UmVnaXN0ZXIqPigmbV9yZWdpc3RlclN0b3JlICsgMSksCiAgICAgICAgICAgICBuZXh0CiAgICAg
ICAgICkKKyAgICAgICAgLCBtX3R5cGUodHlwZSkKICAgICB7CiAgICAgfQogCiAgICAgV3JpdGVC
YXJyaWVyPFVua25vd24+IG1fcmVnaXN0ZXJTdG9yZTsKKyAgICBUeXBlIG1fdHlwZTsKIH07CiAK
IH0KSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0MTc0KQorKysgU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2
IEBACisyMDE0LTEwLTAxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAg
ICBGaXhlZCB0aGUgSW5zcGVjdG9yIHRvIGJlIGFibGUgdG8gcHJvcGVybHkgZGlzdGluZ3Vpc2gg
YmV0d2VlbiBzY29wZSB0eXBlcy4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzNzI3
OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIExv
Y2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qczoKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL01vZGVscy9TY29wZUNoYWluTm9kZS5qczoKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL1Njb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAtIEFk
ZGVkIGhhbmRsaW5nIG9mIHRoZSBGdW5jdGlvbk5hbWVTY29wZSBjYXNlLgorCiAyMDE0LTA5LTI3
ICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAogICAgICAgICBXZWIg
UmVwbGF5OiBQbGF5YmFjayBwb3NpdGlvbiB1cGRhdGVzIHNob3VsZCBiZSBzZW50IGJlZm9yZSB0
aGUgbmV4dCBldmVudCBsb29wIGlucHV0IGlzIGRpc3BhdGNoZWQKSW5kZXg6IFNvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcwkocmV2aXNpb24gMTc0MTIxKQorKysgU291cmNlL1dlYkluc3Bl
Y3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMjE0LDYgKzIxNCw3IEBACiAAbABvAGMAYQBsAGkAegBlAGQAUwB0AHIAaQBu
AGcAcwBbACIARgByAGEAbQBlAHMAIgBdACAAPQAgACIARgByAGEAbQBlAHMAIgA7AAogAGwAbwBj
AGEAbABpAHoAZQBkAFMAdAByAGkAbgBnAHMAWwAiAEYAdQBsAGwAIABVAFIATAAiAF0AIAA9ACAA
IgBGAHUAbABsACAAVQBSAEwAIgA7AAogAGwAbwBjAGEAbABpAHoAZQBkAFMAdAByAGkAbgBnAHMA
WwAiAEYAdQBuAGMAdABpAG8AbgAiAF0AIAA9ACAAIgBGAHUAbgBjAHQAaQBvAG4AIgA7AAorAGwA
bwBjAGEAbABpAHoAZQBkAFMAdAByAGkAbgBnAHMAWwAiAEYAdQBuAGMAdABpAG8AbgAgAE4AYQBt
AGUAIABWAGEAcgBpAGEAYgBsAGUAIgBdACAAPQAgACIARgB1AG4AYwB0AGkAbwBuACAATgBhAG0A
ZQAgAFYAYQByAGkAYQBiAGwAZQAiADsACiAAbABvAGMAYQBsAGkAegBlAGQAUwB0AHIAaQBuAGcA
cwBbACIARwBsAG8AYgBhAGwAIABWAGEAcgBpAGEAYgBsAGUAcwAiAF0AIAA9ACAAIgBHAGwAbwBi
AGEAbAAgAFYAYQByAGkAYQBiAGwAZQBzACIAOwAKIABsAG8AYwBhAGwAaQB6AGUAZABTAHQAcgBp
AG4AZwBzAFsAIgBHAHIAYQBtAG0AYQByACIAXQAgAD0AIAAiAEcAcgBhAG0AbQBhAHIAIgA7AAog
AGwAbwBjAGEAbABpAHoAZQBkAFMAdAByAGkAbgBnAHMAWwAiAEgAVABNAEwAIABBAHQAdAByAGkA
YgB1AHQAZQBzACIAXQAgAD0AIAAiAEgAVABNAEwAIABBAHQAdAByAGkAYgB1AHQAZQBzACIAOwAK
SW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Rl
YnVnZ2VyTWFuYWdlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMJKHJldmlzaW9uIDE3NDEy
MSkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Rl
YnVnZ2VyTWFuYWdlci5qcwkod29ya2luZyBjb3B5KQpAQCAtNTcyLDYgKzU3Miw5IEBAIFdlYklu
c3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlID0KICAgICAgICAgY2FzZSAiY2F0Y2gi
OgogICAgICAgICAgICAgdHlwZSA9IFdlYkluc3BlY3Rvci5TY29wZUNoYWluTm9kZS5UeXBlLkNh
dGNoOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgImZ1bmN0aW9uTmFtZSI6Cisg
ICAgICAgICAgICB0eXBlID0gV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuRnVuY3Rp
b25OYW1lOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICBjb25zb2xlLmVycm9yKCJVbmtub3duIHR5cGU6ICIgKyBwYXlsb2FkLnR5cGUpOwogICAgICAg
ICB9CkluZGV4OiBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2Nv
cGVDaGFpbk5vZGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL1Njb3BlQ2hhaW5Ob2RlLmpzCShyZXZpc2lvbiAxNzQxMjEpCisrKyBT
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2NvcGVDaGFpbk5vZGUu
anMJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDggQEAgV2ViSW5zcGVjdG9yLlNjb3BlQ2hh
aW5Ob2RlLlR5cGUgPSB7CiAgICAgR2xvYmFsOiAic2NvcGUtY2hhaW4tdHlwZS1nbG9iYWwiLAog
ICAgIFdpdGg6ICJzY29wZS1jaGFpbi10eXBlLXdpdGgiLAogICAgIENsb3N1cmU6ICJzY29wZS1j
aGFpbi10eXBlLWNsb3N1cmUiLAotICAgIENhdGNoOiAic2NvcGUtY2hhaW4tdHlwZS1jYXRjaCIK
KyAgICBDYXRjaDogInNjb3BlLWNoYWluLXR5cGUtY2F0Y2giLAorICAgIEZ1bmN0aW9uTmFtZTog
InNjb3BlLWNoYWluLXR5cGUtZnVuY3Rpb25OYW1lIgogfTsKIAogV2ViSW5zcGVjdG9yLlNjb3Bl
Q2hhaW5Ob2RlLnByb3RvdHlwZSA9IHsKSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Njb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Njb3BlQ2hh
aW5EZXRhaWxzU2lkZWJhclBhbmVsLmpzCShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY29wZUNoYWluRGV0YWlsc1NpZGViYXJQ
YW5lbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMTIxLDYgKzEyMSwxMiBAQCBXZWJJbnNwZWN0b3Iu
U2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuCiAgICAgICAgICAgICAgICAgICAgIGNvbGxhcHNl
ZEJ5RGVmYXVsdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAorICAgICAg
ICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuRnVuY3Rpb25O
YW1lOgorICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
RnVuY3Rpb24gTmFtZSBWYXJpYWJsZSIpOworICAgICAgICAgICAgICAgICAgICBkb250SGlnaGxp
Z2h0Tm9uRW51bWVyYWJsZVByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBj
b2xsYXBzZWRCeURlZmF1bHQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKwog
ICAgICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuV2l0
aDoKICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldp
dGggT2JqZWN0IFByb3BlcnRpZXMiKTsKICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkQnlE
ZWZhdWx0ID0gZm91bmRMb2NhbFNjb3BlOwo=
</data>
<flag name="review"
          id="263758"
          type_id="1"
          status="-"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239069</attachid>
            <date>2014-10-01 17:02:55 -0700</date>
            <delta_ts>2014-10-01 18:38:01 -0700</delta_ts>
            <desc>patch 3: fixed ARM builds</desc>
            <filename>bug-137279.patch</filename>
            <type>text/plain</type>
            <size>31799</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0MTg3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBA
CisyMDE0LTEwLTAxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXhlZCB0aGUgSW5zcGVjdG9yIHRvIGJlIGFibGUgdG8gcHJvcGVybHkgZGlzdGluZ3Vpc2ggYmV0
d2VlbiBzY29wZSB0eXBlcy4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzNzI3OT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJl
LWV4aXN0aW5nIGNvZGUgaW5jb3JyZWN0bHkgbGFiZWxzIENhdGNoIFNjb3BlcyBhbmQgRnVuY3Rp
b24gTmFtZSBTY29wZXMKKyAgICAgICAgYXMgV2l0aCBTY29wZXMuICBUaGlzIHBhdGNoIHdpbGwg
Zml4IHRoaXMuCisKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbjoKKyAgICAg
ICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hGdW5jdGlvbk5hbWVTY29wZSk6CisgICAgICAgIChK
U0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHVzaENhdGNoU2NvcGUpOgorICAgICAgICAtIFRo
ZXNlIG5vdyBwYXNzZXMgc3RvcmVzIHRoZSBkZXNpcmVkIEpTTmFtZVNjb3BlOjpUeXBlIGluIGEg
Ynl0ZWNvZGUgb3BlcmFuZC4KKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlclNjb3BlLmNwcDoK
KyAgICAgICAgKEpTQzo6RGVidWdnZXJTY29wZTo6aXNDYXRjaFNjb3BlKToKKyAgICAgICAgKEpT
Qzo6RGVidWdnZXJTY29wZTo6aXNGdW5jdGlvbk5hbWVTY29wZSk6CisgICAgICAgIC0gQWRkZWQg
cXVlcmllcyB0byBiZSBhYmxlIHRvIGV4cGxpY2l0bHkgdGVzdCBpZiB0aGUgc2NvcGUgaXMgYSBD
YXRjaFNjb3BlCisgICAgICAgICAgb3IgRnVuY3Rpb25OYW1lU2NvcGUuICBUaGUgRnVuY3Rpb25O
YW1lU2NvcGUgaXMgdGhlIGNhc2Ugd2hlcmUgdGhlCisgICAgICAgICAgTmFtZVNjb3BlIGlzIHVz
ZWQgdG8gY2FwdHVyZSB0aGUgZnVuY3Rpb24gbmFtZSBvZiBhIGZ1bmN0aW9uIGV4cHJlc3Npb24u
CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJTY29wZS5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNKYXZhU2Ny
aXB0Q2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNKYXZhU2NyaXB0Q2FsbEZy
YW1lOjpzY29wZVR5cGUpOgorICAgICAgICAqIGluc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJh
bWUuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBl
LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxG
cmFtZUNvbnN0YW50RlVOQ1RJT05fTkFNRV9TQ09QRSk6CisgICAgICAgICogaW5zcGVjdG9yL3By
b3RvY29sL0RlYnVnZ2VyLmpzb246CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAg
ICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSk6Cisg
ICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHVzaF9uYW1lX3Njb3BlKToKKyAgICAgICAg
KiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1
c2hfbmFtZV9zY29wZSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMu
Y3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIHJ1bnRpbWUvSlNG
dW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmFkZE5hbWVTY29wZUlmTmVl
ZGVkKToKKyAgICAgICAgKiBydW50aW1lL0pTTmFtZVNjb3BlLmg6CisgICAgICAgIChKU0M6OkpT
TmFtZVNjb3BlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpKU05hbWVTY29wZTo6aXNGdW5jdGlv
bk5hbWVTY29wZSk6CisgICAgICAgIChKU0M6OkpTTmFtZVNjb3BlOjppc0NhdGNoU2NvcGUpOgor
ICAgICAgICAoSlNDOjpKU05hbWVTY29wZTo6SlNOYW1lU2NvcGUpOgorICAgICAgICAtIE5vdyBz
dG9yZXMgdGhlIEpTTmFtZVNjb3BlOjpUeXBlIGluIGEgZmllbGQuCisKIDIwMTQtMTAtMDEgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFuIHVwOiBNb3Zl
IFhQQyBmb3J3YXJkIGRlY2xhcmF0aW9ucyBpbiBKYXZhU2NyaXB0Q29yZSB0byBXVEYgU1BJIHdy
YXBwZXIgaGVhZGVyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVMaXN0Lmpzb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlTGlzdC5qc29uCShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTExMiw3
ICsxMTIsNyBAQAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHV0X3RvX3Njb3BlIiwgImxl
bmd0aCIgOiA3IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wdXNoX3dpdGhfc2NvcGUi
LCAibGVuZ3RoIiA6IDIgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3BvcF9zY29wZSIs
ICJsZW5ndGgiIDogMSB9LAotICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHVzaF9uYW1lX3Nj
b3BlIiwgImxlbmd0aCIgOiA0IH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wdXNoX25h
bWVfc2NvcGUiLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2Nh
dGNoIiwgImxlbmd0aCIgOiAyIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF90aHJvdyIs
ICJsZW5ndGgiIDogMiB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfdGhyb3dfc3RhdGlj
X2Vycm9yIiwgImxlbmd0aCIgOiAzIH0sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24g
MTc0MTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyOTQsNiArMjI5NCw3IEBAIHZvaWQgQnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXNoRnVuY3Rpb24KICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQoYWRkQ29uc3RhbnQocHJvcGVydHkpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodmFs
dWUtPmluZGV4KCkpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhdHRyaWJ1dGVzKTsKKyAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoSlNOYW1lU2NvcGU6OkZ1bmN0aW9uTmFtZVNjb3BlKTsK
IH0KIAogdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hDYXRjaFNjb3BlKGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRl
cykKQEAgLTIzMDcsNiArMjMwOCw3IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXNo
Q2F0Y2hTY28KICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYWRkQ29uc3RhbnQocHJvcGVydHkp
KTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodmFsdWUtPmluZGV4KCkpOwogICAgIGluc3Ry
dWN0aW9ucygpLmFwcGVuZChhdHRyaWJ1dGVzKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQo
SlNOYW1lU2NvcGU6OkNhdGNoU2NvcGUpOwogfQogCiB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpi
ZWdpblN3aXRjaChSZWdpc3RlcklEKiBzY3J1dGluZWVSZWdpc3RlciwgU3dpdGNoSW5mbzo6U3dp
dGNoVHlwZSB0eXBlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlclNjb3BlLmNwcAkocmV2aXNpb24gMTc0MTIxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUg
IkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJKU05hbWVTY29wZS5oIgogI2luY2x1ZGUgIkpTV2l0
aFNjb3BlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMTU0LDYgKzE1NSwxNiBAQCB2b2lkIERl
YnVnZ2VyU2NvcGU6OmludmFsaWRhdGVDaGFpbigpCiAgICAgfQogfQogCitib29sIERlYnVnZ2Vy
U2NvcGU6OmlzQ2F0Y2hTY29wZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2NvcGUtPmlzTmFt
ZVNjb3BlT2JqZWN0KCkgJiYgcmVpbnRlcnByZXRfY2FzdDxKU05hbWVTY29wZSo+KG1fc2NvcGUu
Z2V0KCkpLT5pc0NhdGNoU2NvcGUoKTsKK30KKworYm9vbCBEZWJ1Z2dlclNjb3BlOjppc0Z1bmN0
aW9uTmFtZVNjb3BlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY29wZS0+aXNOYW1lU2NvcGVP
YmplY3QoKSAmJiByZWludGVycHJldF9jYXN0PEpTTmFtZVNjb3BlKj4obV9zY29wZS5nZXQoKSkt
PmlzRnVuY3Rpb25OYW1lU2NvcGUoKTsKK30KKwogYm9vbCBEZWJ1Z2dlclNjb3BlOjppc1dpdGhT
Y29wZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2NvcGUtPmlzV2l0aFNjb3BlKCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJTY29wZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclNjb3BlLmgJKHJl
dmlzaW9uIDE3NDEyMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
clNjb3BlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDYgKzg0LDggQEAgcHVibGljOgogICAgIHZv
aWQgaW52YWxpZGF0ZUNoYWluKCk7CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4g
ISFtX3Njb3BlOyB9CiAKKyAgICBib29sIGlzQ2F0Y2hTY29wZSgpIGNvbnN0OworICAgIGJvb2wg
aXNGdW5jdGlvbk5hbWVTY29wZSgpIGNvbnN0OwogICAgIGJvb2wgaXNXaXRoU2NvcGUoKSBjb25z
dDsKICAgICBib29sIGlzR2xvYmFsU2NvcGUoKSBjb25zdDsKICAgICBib29sIGlzRnVuY3Rpb25P
ckV2YWxTY29wZSgpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCShyZXZpc2lvbiAxNzQxMjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNl
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA3LCAyMDE0IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwMTgsNiArMTAxOCw3IEBAIEluamVjdGVkU2NyaXB0LkNh
bGxGcmFtZVByb3h5Ll9jcmVhdGVTY28KICAgICBjb25zdCBXSVRIX1NDT1BFID0gMjsKICAgICBj
b25zdCBDTE9TVVJFX1NDT1BFID0gMzsKICAgICBjb25zdCBDQVRDSF9TQ09QRSA9IDQ7CisgICAg
Y29uc3QgRlVOQ1RJT05fTkFNRV9TQ09QRSA9IDU7CiAKICAgICAvKiogQHR5cGUgeyFPYmplY3Qu
PG51bWJlciwgc3RyaW5nPn0gKi8KICAgICB2YXIgc2NvcGVUeXBlTmFtZXMgPSB7fTsKQEAgLTEw
MjYsNiArMTAyNyw3IEBAIEluamVjdGVkU2NyaXB0LkNhbGxGcmFtZVByb3h5Ll9jcmVhdGVTY28K
ICAgICBzY29wZVR5cGVOYW1lc1tXSVRIX1NDT1BFXSA9ICJ3aXRoIjsKICAgICBzY29wZVR5cGVO
YW1lc1tDTE9TVVJFX1NDT1BFXSA9ICJjbG9zdXJlIjsKICAgICBzY29wZVR5cGVOYW1lc1tDQVRD
SF9TQ09QRV0gPSAiY2F0Y2giOworICAgIHNjb3BlVHlwZU5hbWVzW0ZVTkNUSU9OX05BTUVfU0NP
UEVdID0gImZ1bmN0aW9uTmFtZSI7CiAKICAgICByZXR1cm4gewogICAgICAgICBvYmplY3Q6IGlu
amVjdGVkU2NyaXB0Ll93cmFwT2JqZWN0KHNjb3BlT2JqZWN0LCBncm91cElkKSwKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlw
dENhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDE3NDEyMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTExLDEzICsxMTEsMTYgQEAgSlNWYWx1ZSBKU0phdmFTY3JpcHRDYWxsRnJhbWU6OnNjb3BlVHlw
ZQogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFpbmRleCkgeworICAgICAgICAgICAgaWYgKHNj
b3BlLT5pc0NhdGNoU2NvcGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIoSlNK
YXZhU2NyaXB0Q2FsbEZyYW1lOjpDQVRDSF9TQ09QRSk7CisgICAgICAgICAgICBpZiAoc2NvcGUt
PmlzRnVuY3Rpb25OYW1lU2NvcGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIo
SlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpGVU5DVElPTl9OQU1FX1NDT1BFKTsKICAgICAgICAgICAg
IGlmIChzY29wZS0+aXNXaXRoU2NvcGUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4ganNOdW1i
ZXIoSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpXSVRIX1NDT1BFKTsKICAgICAgICAgICAgIGlmIChz
Y29wZS0+aXNHbG9iYWxTY29wZSgpKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCsraXRlciA9
PSBlbmQpOwogICAgICAgICAgICAgICAgIHJldHVybiBqc051bWJlcihKU0phdmFTY3JpcHRDYWxs
RnJhbWU6OkdMT0JBTF9TQ09QRSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGJlIGlkZW50aWZ5aW5nIGFuZCByZXR1cm5pbmcgQ0FUQ0hfU0NPUEUgYXBw
cm9wcmlhdGVseS4KICAgICAgICAgICAgIEFTU0VSVChzY29wZS0+aXNGdW5jdGlvbk9yRXZhbFNj
b3BlKCkpOwogICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKEpTSmF2YVNjcmlwdENhbGxGcmFt
ZTo6Q0xPU1VSRV9TQ09QRSk7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWUuaAkocmV2aXNp
b24gMTc0MTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3Jp
cHRDYWxsRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFdJVEhfU0NPUEUgPSAyOwogICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBzaG9ydCBDTE9TVVJFX1NDT1BFID0gMzsKICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgc2hvcnQgQ0FUQ0hfU0NPUEUgPSA0OworICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBzaG9ydCBGVU5DVElPTl9OQU1FX1NDT1BFID0gNTsKIAogcHJvdGVjdGVkOgogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxs
RnJhbWVQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMTc0
MTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxs
RnJhbWVQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmEKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUNvbnN0YW50V0lUSF9TQ09QRShF
eGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNj
cmlwdENhbGxGcmFtZUNvbnN0YW50Q0xPU1VSRV9TQ09QRShFeGVjU3RhdGUqKTsKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUNvbnN0YW50
Q0FUQ0hfU0NPUEUoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVDb25zdGFudEZVTkNUSU9OX05BTUVfU0NPUEUoRXhl
Y1N0YXRlKik7CiAKIGNvbnN0IENsYXNzSW5mbyBKU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5
cGU6OnNfaW5mbyA9IHsgIkphdmFTY3JpcHRDYWxsRnJhbWUiLCAmQmFzZTo6c19pbmZvLCAwLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZSkgfTsKIApA
QCAtOTQsNiArOTUsNyBAQCB2b2lkIEpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZTo6Zmlu
CiAgICAgSlNDX05BVElWRV9OT05fSU5ERVhfQUNDRVNTT1IoIldJVEhfU0NPUEUiLCBqc0phdmFT
Y3JpcHRDYWxsRnJhbWVDb25zdGFudFdJVEhfU0NPUEUsIERvbnRFbnVtIHwgQWNjZXNzb3IpOwog
ICAgIEpTQ19OQVRJVkVfTk9OX0lOREVYX0FDQ0VTU09SKCJDTE9TVVJFX1NDT1BFIiwganNKYXZh
U2NyaXB0Q2FsbEZyYW1lQ29uc3RhbnRDTE9TVVJFX1NDT1BFLCBEb250RW51bSB8IEFjY2Vzc29y
KTsKICAgICBKU0NfTkFUSVZFX05PTl9JTkRFWF9BQ0NFU1NPUigiQ0FUQ0hfU0NPUEUiLCBqc0ph
dmFTY3JpcHRDYWxsRnJhbWVDb25zdGFudENBVENIX1NDT1BFLCBEb250RW51bSB8IEFjY2Vzc29y
KTsKKyAgICBKU0NfTkFUSVZFX05PTl9JTkRFWF9BQ0NFU1NPUigiRlVOQ1RJT05fTkFNRV9TQ09Q
RSIsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUNvbnN0YW50RlVOQ1RJT05fTkFNRV9TQ09QRSwgRG9u
dEVudW0gfCBBY2Nlc3Nvcik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNK
YXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZShFeGVjU3RhdGUqIGV4
ZWMpCkBAIC0yMzEsNiArMjMzLDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNK
YXZhU2NyaXAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKEpTSmF2YVNjcmlw
dENhbGxGcmFtZTo6Q0FUQ0hfU0NPUEUpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVDb25zdGFudEZVTkNUSU9OX05BTUVfU0NPUEUoRXhl
Y1N0YXRlKikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKEpTSmF2YVNj
cmlwdENhbGxGcmFtZTo6RlVOQ1RJT05fTkFNRV9TQ09QRSkpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBJbnNwZWN0b3IKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb24KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dlci5q
c29uCShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3Byb3RvY29sL0RlYnVnZ2VyLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTgwLDcgKzgwLDcgQEAK
ICAgICAgICAgICAgICJpZCI6ICJTY29wZSIsCiAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3Qi
LAogICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ0eXBlIiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbImdsb2JhbCIsICJsb2NhbCIsICJ3
aXRoIiwgImNsb3N1cmUiLCAiY2F0Y2giXSwgImRlc2NyaXB0aW9uIjogIlNjb3BlIHR5cGUuIiB9
LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJl
bnVtIjogWyJnbG9iYWwiLCAibG9jYWwiLCAid2l0aCIsICJjbG9zdXJlIiwgImNhdGNoIiwgImZ1
bmN0aW9uTmFtZSJdLCAiZGVzY3JpcHRpb24iOiAiU2NvcGUgdHlwZS4iIH0sCiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJvYmplY3QiLCAiJHJlZiI6ICJSdW50aW1lLlJlbW90ZU9iamVjdCIs
ICJkZXNjcmlwdGlvbiI6ICJPYmplY3QgcmVwcmVzZW50aW5nIHRoZSBzY29wZS4gRm9yIDxjb2Rl
Pmdsb2JhbDwvY29kZT4gYW5kIDxjb2RlPndpdGg8L2NvZGU+IHNjb3BlcyBpdCByZXByZXNlbnRz
IHRoZSBhY3R1YWwgb2JqZWN0OyBmb3IgdGhlIHJlc3Qgb2YgdGhlIHNjb3BlcywgaXQgaXMgYXJ0
aWZpY2lhbCB0cmFuc2llbnQgb2JqZWN0IGVudW1lcmF0aW5nIHNjb3BlIHZhcmlhYmxlcyBhcyBp
dHMgcHJvcGVydGllcy4iIH0KICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiU2NvcGUgZGVzY3JpcHRpb24uIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DQ2FsbEhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NDYWxsSGVscGVycy5oCShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0NDYWxsSGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NzQsNiArNDc0LDE3IEBA
IHB1YmxpYzoKICAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzQpOwogICAgIH0KIAorICAgIEFM
V0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0
ciBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIFRydXN0ZWRJbW0zMiBhcmc0LCBUcnVz
dGVkSW1tMzIgYXJnNSkKKyAgICB7CisgICAgICAgIHJlc2V0Q2FsbEFyZ3VtZW50cygpOworICAg
ICAgICBhZGRDYWxsQXJndW1lbnQoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgICAg
ICBhZGRDYWxsQXJndW1lbnQoYXJnMSk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmcyKTsK
KyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzMpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQo
YXJnNCk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc1KTsKKyAgICB9CisKICAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIg
YXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBUcnVzdGVkSW1tMzIgYXJnNCwgVHJ1c3Rl
ZEltbVB0ciBhcmc1KQogICAgIHsKICAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CkBAIC0x
Mjg1LDYgKzEyOTYsMTcgQEAgcHVibGljOgogICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFt
ZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KIAorI2lmIENQVShYODZf
NjQpIHx8IENQVShBUk02NCkKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIgYXJnMSwgR1BSUmVnIGFyZzIsIFRydXN0ZWRJbW0z
MiBhcmczLCBUcnVzdGVkSW1tMzIgYXJnNCkKKyAgICB7CisgICAgICAgIG1vdmUoYXJnMiwgR1BS
SW5mbzo6YXJndW1lbnRHUFIyKTsgLy8gSW4gY2FzZSBhcmcyIGlzIGFyZ3VtZW50R1BSMS4KKyAg
ICAgICAgbW92ZShhcmcxLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBtb3ZlKGFy
ZzMsIEdQUkluZm86OmFyZ3VtZW50R1BSMyk7CisgICAgICAgIG1vdmUoYXJnNCwgR1BSSW5mbzo6
YXJndW1lbnRHUFI0KTsKKyAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICB9CisjZW5kaWYKKwogICAgIEFMV0FZU19JTkxJ
TkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0ciBhcmcxLCBH
UFJSZWcgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczKQogICAgIHsKICAgICAgICAgbW92ZShhcmcy
LCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOyAvLyBJbiBjYXNlIGFyZzIgaXMgYXJndW1lbnRHUFIx
LgpAQCAtMTM2NCw2ICsxMzg2LDEzIEBAIHB1YmxpYzoKICAgICAgICAgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJ
TkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0ciBhcmcxLCBH
UFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIFRydXN0ZWRJbW0zMiBhcmc0LCBUcnVzdGVkSW1tMzIg
YXJnNSkKKyAgICB7CisgICAgICAgIHBva2UoYXJnNSwgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAx
KTsKKyAgICAgICAgcG9rZShhcmc0LCBQT0tFX0FSR1VNRU5UX09GRlNFVCk7CisgICAgICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9CisKICAg
ICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJ
bW1QdHIgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBUcnVzdGVkSW1tMzIgYXJnNCwg
VHJ1c3RlZEltbVB0ciBhcmc1KQogICAgIHsKICAgICAgICAgcG9rZShhcmc1LCBQT0tFX0FSR1VN
RU5UX09GRlNFVCArIDEpOwpAQCAtMTY0NSw2ICsxNjc0LDE1IEBAIHB1YmxpYzoKICAgICAgICAg
bW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICB9CiAgICAgCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMywgVHJ1
c3RlZEltbTMyIGFyZzQsIFRydXN0ZWRJbW0zMiBhcmc1KQorICAgIHsKKyAgICAgICAgc2V0dXBU
d29TdHViQXJnc0dQUjxHUFJJbmZvOjphcmd1bWVudEdQUjIsIEdQUkluZm86OmFyZ3VtZW50R1BS
Mz4oYXJnMiwgYXJnMyk7CisgICAgICAgIG1vdmUoYXJnMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
KTsKKyAgICAgICAgbW92ZShhcmc0LCBHUFJJbmZvOjphcmd1bWVudEdQUjQpOworICAgICAgICBt
b3ZlKGFyZzUsIEdQUkluZm86OmFyZ3VtZW50R1BSNSk7CisgICAgICAgIG1vdmUoR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorCiAgICAg
QUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJn
MSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBUcnVzdGVkSW1tMzIgYXJnNCkKICAgICB7CiAg
ICAgICAgIHNldHVwVGhyZWVTdHViQXJnc0dQUjxHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMiwgR1BSSW5mbzo6YXJndW1lbnRHUFIzPihhcmcxLCBhcmcyLCBhcmcz
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMTc0MTIxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtNzE5LDcgKzcx
OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDQywgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RUNJQ0MsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZpZXIqLCBSZWdpc3RlcklELCBSZWdpc3Rl
cklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FRSwgUmVnaXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUlkSlosIGNvbnN0IElkZW50aWZpZXIqLCBSZWdp
c3RlcklELCBpbnQzMl90KTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FSWRKWlosIGNvbnN0IElkZW50aWZpZXIqLCBSZWdpc3RlcklE
LCBpbnQzMl90LCBpbnQzMl90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSiwgUmVnaXN0ZXJJRCk7CiAjaWYgVVNFKEpTVkFMVUU2
NCkKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9u
Q2hlY2soVl9KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQpOwpAQCAtNzUxLDcgKzc1MSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKFBfSklUT3BlcmF0aW9uX0VKUywgR1BSUmVnLCBHUFJSZWcsIHNpemVfdCk7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUosIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVn
aXN0ZXJJRCwgUmVnaXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUlkSlosIGNvbnN0IElkZW50aWZpZXIqLCBSZWdpc3Rl
cklELCBSZWdpc3RlcklELCBpbnQzMl90KTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSWRKWlosIGNvbnN0IElkZW50aWZpZXIqLCBS
ZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBpbnQzMl90KTsKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSiwgUmVnaXN0ZXJJ
RCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUpKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJ
RCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpaLCBSZWdpc3RlcklE
LCBSZWdpc3RlcklELCBpbnQzMl90KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lcy5oCShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDQxLDkgKzQ0MSw5IEBAIEFMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdp
dGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSWRKWiBvcGVy
YXRpb24sIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AxLCBSZWdpc3RlcklEIHJlZ09wMiwgaW50
MzJfdCBvcDMpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSWRKWlogb3BlcmF0aW9uLCBjb25zdCBJZGVudGlmaWVy
KiBpZGVudE9wMSwgUmVnaXN0ZXJJRCByZWdPcDIsIGludDMyX3Qgb3AzLCBpbnQzMl90IG9wNCkK
IHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihpZGVudE9w
MSksIHJlZ09wMiwgVHJ1c3RlZEltbTMyKG9wMykpOworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKGlkZW50T3AxKSwgcmVnT3AyLCBUcnVzdGVkSW1tMzIob3Az
KSwgVHJ1c3RlZEltbTMyKG9wNCkpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKQEAgLTU3NSw5ICs1NzUsOSBAQCBBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhj
ZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUlkSlogb3BlcmF0aW9u
LCBjb25zdCBJZGVudGlmaWVyKiBpZGVudE9wMSwgUmVnaXN0ZXJJRCByZWdPcDJUYWcsIFJlZ2lz
dGVySUQgcmVnT3AyUGF5bG9hZCwgaW50MzJfdCBvcDMpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSWRKWlogb3Bl
cmF0aW9uLCBjb25zdCBJZGVudGlmaWVyKiBpZGVudE9wMSwgUmVnaXN0ZXJJRCByZWdPcDJUYWcs
IFJlZ2lzdGVySUQgcmVnT3AyUGF5bG9hZCwgaW50MzJfdCBvcDMsIGludDMyX3Qgb3A0KQogewot
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKGlkZW50T3AxKSwg
cmVnT3AyUGF5bG9hZCwgcmVnT3AyVGFnLCBUcnVzdGVkSW1tMzIob3AzKSk7CisgICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIoaWRlbnRPcDEpLCByZWdPcDJQYXls
b2FkLCByZWdPcDJUYWcsIFRydXN0ZWRJbW0zMihvcDMpLCBUcnVzdGVkSW1tMzIob3A0KSk7CiAg
ICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAko
cmV2aXNpb24gMTc0MTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MDUsNyArODA1LDcgQEAgdm9pZCBKSVQ6OmVt
aXRTbG93X29wX3RvX251bWJlcihJbnN0cnVjdAogdm9pZCBKSVQ6OmVtaXRfb3BfcHVzaF9uYW1l
X3Njb3BlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgZW1pdExvYWQo
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCwgcmVnVDEsIHJlZ1QwKTsKLSAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvblB1c2hOYW1lU2NvcGUsICZtX2NvZGVCbG9jay0+aWRlbnRpZmll
cihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgcmVnVDEsIHJlZ1QwLCBjdXJyZW50
SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1
c2hOYW1lU2NvcGUsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kKSwgcmVnVDEsIHJlZ1QwLCBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVy
YW5kLCBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKIH0KIAogdm9pZCBKSVQ6OmVt
aXRfb3BfY2F0Y2goSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAkocmV2aXNpb24gMTc0MTIxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTI1LDcgKzUyNSw3IEBAIHZvaWQgSklUOjplbWl0X29wX3RvX251bWJlcihJbnN0cnVjdGlv
bioKIHZvaWQgSklUOjplbWl0X29wX3B1c2hfbmFtZV9zY29wZShJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogewogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZCwgcmVnVDApOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
UHVzaE5hbWVTY29wZSwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQpLCByZWdUMCwgY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCk7
CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXNoTmFtZVNjb3BlLCAmbV9jb2RlQmxvY2st
PmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIHJlZ1QwLCBjdXJy
ZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kLCBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVy
YW5kKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2goSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcAkocmV2aXNpb24gMTc0MTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwOCwxMiArMTMwOCwxMyBAQCB2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0CiB9CiAjZW5kaWYKIAotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hOYW1lU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBJ
ZGVudGlmaWVyKiBpZGVudGlmaWVyLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGludDMy
X3QgYXR0aWJ1dGVzKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hOYW1lU2NvcGUo
RXhlY1N0YXRlKiBleGVjLCBJZGVudGlmaWVyKiBpZGVudGlmaWVyLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIGludDMyX3QgYXR0aWJ1dGVzLCBpbnQzMl90IHR5cGUpCiB7CiAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwg
ZXhlYyk7CiAKLSAgICBKU05hbWVTY29wZSogc2NvcGUgPSBKU05hbWVTY29wZTo6Y3JlYXRlKGV4
ZWMsICppZGVudGlmaWVyLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgYXR0aWJ1dGVz
KTsKKyAgICBKU05hbWVTY29wZTo6VHlwZSBzY29wZVR5cGUgPSBzdGF0aWNfY2FzdDxKU05hbWVT
Y29wZTo6VHlwZT4odHlwZSk7CisgICAgSlNOYW1lU2NvcGUqIHNjb3BlID0gSlNOYW1lU2NvcGU6
OmNyZWF0ZShleGVjLCAqaWRlbnRpZmllciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSks
IGF0dGlidXRlcywgc2NvcGVUeXBlKTsKIAogICAgIGV4ZWMtPnNldFNjb3BlKHNjb3BlKTsKIH0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCShyZXZpc2lv
biAxNzQxMjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAko
d29ya2luZyBjb3B5KQpAQCAtMTY0LDcgKzE2NCw3IEBAIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFU
SU9OICgqVl9KSVRPcGVyYXQKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVy
YXRpb25fRUNQU1BTKShFeGVjU3RhdGUqLCBKU0NlbGwqLCB2b2lkKiwgc2l6ZV90LCB2b2lkKiwg
c2l6ZV90KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNa
KShFeGVjU3RhdGUqLCBKU0NlbGwqLCBpbnQzMl90KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFU
SU9OICgqVl9KSVRPcGVyYXRpb25fRUNDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBKU0NlbGwqKTsK
LXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUlkSlopKEV4ZWNT
dGF0ZSosIElkZW50aWZpZXIqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCk7Cit0eXBlZGVmIHZv
aWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VJZEpaWikoRXhlY1N0YXRlKiwgSWRl
bnRpZmllciosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsKIHR5cGVkZWYgdm9p
ZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUopKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpD
SSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEpTQ2VsbCosIFN0cmluZ0ltcGwqKTsKIHR5
cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpJZEpKKShFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSk7CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dEdldHRlclNldAogI2Vsc2UKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0
ZXJTZXR0ZXIoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllciosIEpTQ2VsbCosIEpTQ2Vs
bCopIFdURl9JTlRFUk5BTDsKICNlbmRpZgotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1
c2hOYW1lU2NvcGUoRXhlY1N0YXRlKiwgSWRlbnRpZmllciosIEVuY29kZWRKU1ZhbHVlLCBpbnQz
Ml90KSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHVzaE5hbWVT
Y29wZShFeGVjU3RhdGUqLCBJZGVudGlmaWVyKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGlu
dDMyX3QpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXNoV2l0
aFNjb3BlKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwog
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVEaWRDYWxsKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDE3NDEyMSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzMDAsNyArMTMwMCw4IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXNo
X25hbWUKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0g
ZXhlYy0+Y29kZUJsb2NrKCk7Ci0gICAgSlNOYW1lU2NvcGUqIHNjb3BlID0gSlNOYW1lU2NvcGU6
OmNyZWF0ZShleGVjLCBjb2RlQmxvY2stPmlkZW50aWZpZXIocGNbMV0udS5vcGVyYW5kKSwgTExJ
TlRfT1AoMikuanNWYWx1ZSgpLCBwY1szXS51Lm9wZXJhbmQpOworICAgIEpTTmFtZVNjb3BlOjpU
eXBlIHR5cGUgPSBzdGF0aWNfY2FzdDxKU05hbWVTY29wZTo6VHlwZT4ocGNbNF0udS5vcGVyYW5k
KTsKKyAgICBKU05hbWVTY29wZSogc2NvcGUgPSBKU05hbWVTY29wZTo6Y3JlYXRlKGV4ZWMsIGNv
ZGVCbG9jay0+aWRlbnRpZmllcihwY1sxXS51Lm9wZXJhbmQpLCBMTElOVF9PUCgyKS5qc1ZhbHVl
KCksIHBjWzNdLnUub3BlcmFuZCwgdHlwZSk7CiAgICAgZXhlYy0+c2V0U2NvcGUoc2NvcGUpOwog
ICAgIExMSU5UX0VORCgpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMTc0MTIxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjQ2LDcgKzEyNDYsNyBAQCBfbGxpbnRfb3BfcG9wX3Njb3BlOgogX2xsaW50
X29wX3B1c2hfbmFtZV9zY29wZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfcHVzaF9uYW1lX3Njb3BlKQotICAgIGRpc3BhdGNoKDQpCisg
ICAgZGlzcGF0Y2goNSkKIAogCiBfbGxpbnRfb3BfdGhyb3c6CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAkocmV2aXNpb24gMTc0MTIxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIEpTRnVuY3Rpb246OmFkZE5hbWVTY29wZUlmTmVl
ZGVkKFZNCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIWZ1bmN0aW9uTmFtZVNjb3BlSXNEeW5h
bWljKGV4ZWN1dGFibGUtPnVzZXNFdmFsKCksIGV4ZWN1dGFibGUtPmlzU3RyaWN0TW9kZSgpKSkK
ICAgICAgICAgcmV0dXJuOwotICAgIHNldFNjb3BlKHZtLCBKU05hbWVTY29wZTo6Y3JlYXRlKHZt
LCBzY29wZSgpLT5nbG9iYWxPYmplY3QoKSwgZXhlY3V0YWJsZS0+bmFtZSgpLCB0aGlzLCBSZWFk
T25seSB8IERvbnREZWxldGUsIHNjb3BlKCkpKTsKKyAgICBzZXRTY29wZSh2bSwgSlNOYW1lU2Nv
cGU6OmNyZWF0ZSh2bSwgc2NvcGUoKS0+Z2xvYmFsT2JqZWN0KCksIGV4ZWN1dGFibGUtPm5hbWUo
KSwgdGhpcywgUmVhZE9ubHkgfCBEb250RGVsZXRlLCBzY29wZSgpLCBKU05hbWVTY29wZTo6RnVu
Y3Rpb25OYW1lU2NvcGUpKTsKIH0KIAogSlNGdW5jdGlvbiogSlNGdW5jdGlvbjo6Y3JlYXRlQnVp
bHRpbkZ1bmN0aW9uKFZNJiB2bSwgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNOYW1lU2NvcGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU05hbWVTY29wZS5oCShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU05hbWVTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxNyAr
MzYsMjIgQEAgY2xhc3MgSlNOYW1lU2NvcGUgOiBwdWJsaWMgSlNFbnZpcm9ubWVudAogcHVibGlj
OgogICAgIHR5cGVkZWYgSlNFbnZpcm9ubWVudFJlY29yZCBCYXNlOwogCi0gICAgc3RhdGljIEpT
TmFtZVNjb3BlKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQorICAgIGVudW0gVHlw
ZSB7CisgICAgICAgIENhdGNoU2NvcGUsCisgICAgICAgIEZ1bmN0aW9uTmFtZVNjb3BlCisgICAg
fTsKKworICAgIHN0YXRpYyBKU05hbWVTY29wZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmli
dXRlcywgVHlwZSB0eXBlKQogICAgIHsKICAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAg
ICAgICAgSlNOYW1lU2NvcGUqIHNjb3BlT2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNl
bGw8SlNOYW1lU2NvcGU+KHZtLmhlYXApKSBKU05hbWVTY29wZSh2bSwgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLCBleGVjLT5zY29wZSgpKTsKKyAgICAgICAgSlNOYW1lU2NvcGUqIHNjb3Bl
T2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNOYW1lU2NvcGU+KHZtLmhlYXAp
KSBKU05hbWVTY29wZSh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBleGVjLT5zY29w
ZSgpLCB0eXBlKTsKICAgICAgICAgc2NvcGVPYmplY3QtPmZpbmlzaENyZWF0aW9uKHZtLCBpZGVu
dGlmaWVyLCB2YWx1ZSwgYXR0cmlidXRlcyk7CiAgICAgICAgIHJldHVybiBzY29wZU9iamVjdDsK
ICAgICB9CiAKLSAgICBzdGF0aWMgSlNOYW1lU2NvcGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFs
dWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEpTU2NvcGUqIG5leHQpCisgICAgc3RhdGlj
IEpTTmFtZVNjb3BlKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzLCBKU1Njb3BlKiBuZXh0LCBUeXBlIHR5cGUpCiAgICAgewotICAgICAgICBKU05h
bWVTY29wZSogc2NvcGVPYmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU05hbWVT
Y29wZT4odm0uaGVhcCkpIEpTTmFtZVNjb3BlKHZtLCBnbG9iYWxPYmplY3QsIG5leHQpOworICAg
ICAgICBKU05hbWVTY29wZSogc2NvcGVPYmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2Vs
bDxKU05hbWVTY29wZT4odm0uaGVhcCkpIEpTTmFtZVNjb3BlKHZtLCBnbG9iYWxPYmplY3QsIG5l
eHQsIHR5cGUpOwogICAgICAgICBzY29wZU9iamVjdC0+ZmluaXNoQ3JlYXRpb24odm0sIGlkZW50
aWZpZXIsIHZhbHVlLCBhdHRyaWJ1dGVzKTsKICAgICAgICAgcmV0dXJuIHNjb3BlT2JqZWN0Owog
ICAgIH0KQEAgLTYwLDYgKzY1LDkgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCisg
ICAgYm9vbCBpc0Z1bmN0aW9uTmFtZVNjb3BlKCkgeyByZXR1cm4gbV90eXBlID09IEZ1bmN0aW9u
TmFtZVNjb3BlOyB9CisgICAgYm9vbCBpc0NhdGNoU2NvcGUoKSB7IHJldHVybiBtX3R5cGUgPT0g
Q2F0Y2hTY29wZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVk
IGF0dHJpYnV0ZXMpCiAgICAgewpAQCAtNzEsMTcgKzc5LDE5IEBAIHByb3RlY3RlZDoKICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogcHJpdmF0ZToKLSAgICBKU05hbWVT
Y29wZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU2NvcGUqIG5leHQp
CisgICAgSlNOYW1lU2NvcGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1Njb3BlKiBuZXh0LCBUeXBlIHR5cGUpCiAgICAgICAgIDogQmFzZSgKICAgICAgICAgICAgIHZt
LAogICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5uYW1lU2NvcGVTdHJ1Y3R1cmUoKSwKICAgICAg
ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UmVnaXN0ZXIqPigmbV9yZWdpc3RlclN0b3JlICsgMSks
CiAgICAgICAgICAgICBuZXh0CiAgICAgICAgICkKKyAgICAgICAgLCBtX3R5cGUodHlwZSkKICAg
ICB7CiAgICAgfQogCiAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1fcmVnaXN0ZXJTdG9yZTsK
KyAgICBUeXBlIG1fdHlwZTsKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwko
cmV2aXNpb24gMTc0MTc0KQorKysgU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE0LTEwLTAxICBNYXJrIExhbSAgPG1hcmsu
bGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXhlZCB0aGUgSW5zcGVjdG9yIHRvIGJlIGFibGUg
dG8gcHJvcGVybHkgZGlzdGluZ3Vpc2ggYmV0d2VlbiBzY29wZSB0eXBlcy4KKyAgICAgICAgPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzEzNzI3OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFu
YWdlci5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9TY29wZUNoYWluTm9kZS5q
czoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Njb3BlQ2hhaW5EZXRhaWxzU2lkZWJh
clBhbmVsLmpzOgorICAgICAgICAtIEFkZGVkIGhhbmRsaW5nIG9mIHRoZSBGdW5jdGlvbk5hbWVT
Y29wZSBjYXNlLgorCiAyMDE0LTA5LTI3ICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5n
dG9uLmVkdT4KIAogICAgICAgICBXZWIgUmVwbGF5OiBQbGF5YmFjayBwb3NpdGlvbiB1cGRhdGVz
IHNob3VsZCBiZSBzZW50IGJlZm9yZSB0aGUgbmV4dCBldmVudCBsb29wIGlucHV0IGlzIGRpc3Bh
dGNoZWQKSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkluc3BlY3RvclVJ
L0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwkocmV2aXNpb24gMTc0
MTIxKQorKysgU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjE0LDYgKzIxNCw3IEBACiAAbABv
AGMAYQBsAGkAegBlAGQAUwB0AHIAaQBuAGcAcwBbACIARgByAGEAbQBlAHMAIgBdACAAPQAgACIA
RgByAGEAbQBlAHMAIgA7AAogAGwAbwBjAGEAbABpAHoAZQBkAFMAdAByAGkAbgBnAHMAWwAiAEYA
dQBsAGwAIABVAFIATAAiAF0AIAA9ACAAIgBGAHUAbABsACAAVQBSAEwAIgA7AAogAGwAbwBjAGEA
bABpAHoAZQBkAFMAdAByAGkAbgBnAHMAWwAiAEYAdQBuAGMAdABpAG8AbgAiAF0AIAA9ACAAIgBG
AHUAbgBjAHQAaQBvAG4AIgA7AAorAGwAbwBjAGEAbABpAHoAZQBkAFMAdAByAGkAbgBnAHMAWwAi
AEYAdQBuAGMAdABpAG8AbgAgAE4AYQBtAGUAIABWAGEAcgBpAGEAYgBsAGUAIgBdACAAPQAgACIA
RgB1AG4AYwB0AGkAbwBuACAATgBhAG0AZQAgAFYAYQByAGkAYQBiAGwAZQAiADsACiAAbABvAGMA
YQBsAGkAegBlAGQAUwB0AHIAaQBuAGcAcwBbACIARwBsAG8AYgBhAGwAIABWAGEAcgBpAGEAYgBs
AGUAcwAiAF0AIAA9ACAAIgBHAGwAbwBiAGEAbAAgAFYAYQByAGkAYQBiAGwAZQBzACIAOwAKIABs
AG8AYwBhAGwAaQB6AGUAZABTAHQAcgBpAG4AZwBzAFsAIgBHAHIAYQBtAG0AYQByACIAXQAgAD0A
IAAiAEcAcgBhAG0AbQBhAHIAIgA7AAogAGwAbwBjAGEAbABpAHoAZQBkAFMAdAByAGkAbgBnAHMA
WwAiAEgAVABNAEwAIABBAHQAdAByAGkAYgB1AHQAZQBzACIAXQAgAD0AIAAiAEgAVABNAEwAIABB
AHQAdAByAGkAYgB1AHQAZQBzACIAOwAKSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1h
bmFnZXIuanMJKHJldmlzaW9uIDE3NDEyMSkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcwkod29ya2luZyBjb3B5KQpA
QCAtNTcyLDYgKzU3Miw5IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBl
ID0KICAgICAgICAgY2FzZSAiY2F0Y2giOgogICAgICAgICAgICAgdHlwZSA9IFdlYkluc3BlY3Rv
ci5TY29wZUNoYWluTm9kZS5UeXBlLkNhdGNoOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgImZ1bmN0aW9uTmFtZSI6CisgICAgICAgICAgICB0eXBlID0gV2ViSW5zcGVjdG9yLlNj
b3BlQ2hhaW5Ob2RlLlR5cGUuRnVuY3Rpb25OYW1lOworICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJVbmtub3duIHR5cGU6ICIg
KyBwYXlsb2FkLnR5cGUpOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvU2NvcGVDaGFpbk5vZGUuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Njb3BlQ2hhaW5Ob2RlLmpz
CShyZXZpc2lvbiAxNzQxMjEpCisrKyBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvU2NvcGVDaGFpbk5vZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDgg
QEAgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUgPSB7CiAgICAgR2xvYmFsOiAic2Nv
cGUtY2hhaW4tdHlwZS1nbG9iYWwiLAogICAgIFdpdGg6ICJzY29wZS1jaGFpbi10eXBlLXdpdGgi
LAogICAgIENsb3N1cmU6ICJzY29wZS1jaGFpbi10eXBlLWNsb3N1cmUiLAotICAgIENhdGNoOiAi
c2NvcGUtY2hhaW4tdHlwZS1jYXRjaCIKKyAgICBDYXRjaDogInNjb3BlLWNoYWluLXR5cGUtY2F0
Y2giLAorICAgIEZ1bmN0aW9uTmFtZTogInNjb3BlLWNoYWluLXR5cGUtZnVuY3Rpb25OYW1lIgog
fTsKIAogV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLnByb3RvdHlwZSA9IHsKSW5kZXg6IFNv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Njb3BlQ2hhaW5EZXRhaWxz
U2lkZWJhclBhbmVsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Njb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsLmpzCShyZXZpc2lv
biAxNzQxMjEpCisrKyBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9T
Y29wZUNoYWluRGV0YWlsc1NpZGViYXJQYW5lbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMTIxLDYg
KzEyMSwxMiBAQCBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuCiAgICAg
ICAgICAgICAgICAgICAgIGNvbGxhcHNlZEJ5RGVmYXVsdCA9IGZhbHNlOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKIAorICAgICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNjb3Bl
Q2hhaW5Ob2RlLlR5cGUuRnVuY3Rpb25OYW1lOgorICAgICAgICAgICAgICAgICAgICB0aXRsZSA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRnVuY3Rpb24gTmFtZSBWYXJpYWJsZSIpOworICAgICAg
ICAgICAgICAgICAgICBkb250SGlnaGxpZ2h0Tm9uRW51bWVyYWJsZVByb3BlcnRpZXMgPSB0cnVl
OworICAgICAgICAgICAgICAgICAgICBjb2xsYXBzZWRCeURlZmF1bHQgPSB0cnVlOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKwogICAgICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9y
LlNjb3BlQ2hhaW5Ob2RlLlR5cGUuV2l0aDoKICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldpdGggT2JqZWN0IFByb3BlcnRpZXMiKTsKICAgICAgICAg
ICAgICAgICAgICAgY29sbGFwc2VkQnlEZWZhdWx0ID0gZm91bmRMb2NhbFNjb3BlOwo=
</data>
<flag name="review"
          id="263773"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>