<?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>65725</bug_id>
          
          <creation_ts>2011-08-04 15:24:47 -0700</creation_ts>
          <short_desc>Soft link against AVFoundationCF and CoreMedia</short_desc>
          <delta_ts>2011-08-18 15:57:09 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeff Miller">jeffm</reporter>
          <assigned_to name="Jeff Miller">jeffm</assigned_to>
          <cc>aroben</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>446830</commentid>
    <comment_count>0</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-08-04 15:24:47 -0700</bug_when>
    <thetext>MediaPlayerPrivateAVFoundationCF.cpp currently pulls in AVCF using #pragma comment(lib), it should soft link to the routines it needs instead.  Even though we delay load AVCF and related DLLS (see &lt;http://trac.webkit.org/changeset/92035&gt;), because we statically link against the libraries the DLLs are loaded at startup, which likely impacts performance.  There&apos;s no need to load these until we encounter a media element and even then only if AVFoundation is enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446833</commentid>
    <comment_count>1</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-08-04 15:25:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/9900224&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447522</commentid>
    <comment_count>2</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-08-05 18:12:14 -0700</bug_when>
    <thetext>Unfortunately, all of these functions are declared as __declspec(dllimport), and the existing SOFT_LINK() macro doesn&apos;t handle this. For example, if the DLL exports a function named &quot;foo()&quot;, the name of the function implemented by SOFT_LINK() has to be called __imp__foo, but we have to use GetProcAddress(&quot;foo&quot;).  I&apos;ll have to create a new flavor of the SOFT_LINK() macro for this.  I&apos;ll also need a new macro to get at global variables, e.g. __declspec(dllimport) int fooBar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452634</commentid>
    <comment_count>3</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-08-17 15:16:58 -0700</bug_when>
    <thetext>I don&apos;t think soft linking to libdispatch is helpful, since the libdispatch DLL doesn&apos;t appear to be delay loaded.  I verified using Process Explorer that even with AVFoundation support off, libdispatch.dll is loaded in the web process.  I&apos;m guessing that something else in AAS requires it. Updating bug title to reflect this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452694</commentid>
    <comment_count>4</comment_count>
      <attachid>104271</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-08-17 16:22:20 -0700</bug_when>
    <thetext>Created attachment 104271
Don&apos;t soft link to libdispatch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452716</commentid>
    <comment_count>5</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-08-17 16:33:22 -0700</bug_when>
    <thetext>Don&apos;t soft link to libdispatch - r93260
&lt;http://trac.webkit.org/changeset/93260&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453400</commentid>
    <comment_count>6</comment_count>
      <attachid>104407</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-08-18 15:19:31 -0700</bug_when>
    <thetext>Created attachment 104407
Soft link against AVFoundationCF and CoreMedia

Soft link against AVFoundationCF and CoreMedia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453404</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-18 15:22:52 -0700</bug_when>
    <thetext>Attachment 104407 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:55:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/win/SoftLinking.h:95:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 6 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>453425</commentid>
    <comment_count>8</comment_count>
      <attachid>104407</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-08-18 15:37:08 -0700</bug_when>
    <thetext>Comment on attachment 104407
Soft link against AVFoundationCF and CoreMedia

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

&gt;&gt; Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:55
&gt;&gt; +#include &quot;AVFoundationCFSoftLinking.h&quot;
&gt; 
&gt; Alphabetical sorting problem.  [build/include_order] [4]

As noted in the comment above, this is intentional.

&gt;&gt; Source/WebCore/platform/win/SoftLinking.h:95

&gt; 
&gt; Extra space before ( in function call  [whitespace/parens] [4]

False positive, but this is a complex macro so I&apos;m not sure there&apos;s a way to fix this in check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453451</commentid>
    <comment_count>9</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-08-18 15:57:09 -0700</bug_when>
    <thetext>Committed r93363: &lt;http://trac.webkit.org/changeset/93363&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104271</attachid>
            <date>2011-08-17 16:22:20 -0700</date>
            <delta_ts>2011-08-18 15:19:27 -0700</delta_ts>
            <desc>Don&apos;t soft link to libdispatch</desc>
            <filename>bug-65725-20110817162215.patch</filename>
            <type>text/plain</type>
            <size>2422</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMjU0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDgtMTcgIEplZmYgTWls
bGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIFdvcmstaW4tcHJvZ3Jlc3Mgb24gU29m
dCBsaW5rIGFnYWluc3QgQVZGb3VuZGF0aW9uQ0YgYW5kIENvcmVNZWRpYQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3MjUKKyAgICAgICAgCisgICAg
ICAgIERvbid0IGJvdGhlciB3aXRoIFNPRlRfTElOS19MSUJSQVJZKGxpYmRpc3BhdGNoKSwgd2Un
cmUgZ29pbmcgdG8gY29udGludWUgdG8gc3RhdGljYWxseSBsaW5rIHRvIGl0IHNpbmNlCisgICAg
ICAgIHRoZSBETEwgd2lsbCBoYXZlIGFscmVhZHkgYmVlbiBsb2FkZWQgYnkgb3RoZXIgcGFydHMg
b2YgQUFTIGFuZCBpcyBndWFyYW50ZWVkIHRvIGJlIGF2YWlsYWJsZSBpZiBBVkZvdW5kYXRpb24K
KyAgICAgICAgaXMgZW5hYmxlZC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBuZXcgdGVzdHM7IG5vIGZ1bmN0aW9uYWwgY2hhbmdlLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmNwcDogUmVtb3ZlZCBTT0ZUX0xJTktfREVCVUdfTElCUkFSWShsaWJk
aXNwYXRjaCkgYW5kIFNPRlRfTElOS19MSUJSQVJZKGxpYmRpc3BhdGNoKS4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjppc0F2YWlsYWJsZSk6IERv
bid0IGNoZWNrIGZvciBsaWJkaXNwYXRjaC4KKwogMjAxMS0wOC0xNyAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY2MzU0IGFuZCA8cmRhcjovL3Byb2JsZW0vOTk2NTIwOT4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGLmNwcAkocmV2aXNpb24gOTMyMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw2IEBACiAvLyBGSVhNRTogQVZGb3Vu
ZGF0aW9uQ0YgZG9lc24ndCBjdXJyZW50bHkgZGVsaXZlciBhIGRlYnVnIHZlcnNpb24uCiBTT0ZU
X0xJTktfTElCUkFSWShBVkZvdW5kYXRpb25DRikKIFNPRlRfTElOS19ERUJVR19MSUJSQVJZKENv
cmVNZWRpYSkKLVNPRlRfTElOS19ERUJVR19MSUJSQVJZKGxpYmRpc3BhdGNoKQogI2Vsc2UKICNw
cmFnbWEgY29tbWVudChsaWIsICJBVkZvdW5kYXRpb25DRi5saWIiKQogI3ByYWdtYSBjb21tZW50
KGxpYiwgIkNvcmVNZWRpYS5saWIiKQpAQCAtNzAsNyArNjksNiBAQCBTT0ZUX0xJTktfREVCVUdf
TElCUkFSWShsaWJkaXNwYXRjaCkKIC8vIFVzZSB0aGUgc29mdCBsaW5rIG1hY3JvcyBzbyB3ZSBj
YW4gZWFzaWx5IHRlc3QgZm9yIHRoZSBleGlzdGVuY2Ugb2YgdGhlIGRsbHMuCiBTT0ZUX0xJTktf
TElCUkFSWShBVkZvdW5kYXRpb25DRikKIFNPRlRfTElOS19MSUJSQVJZKENvcmVNZWRpYSkKLVNP
RlRfTElOS19MSUJSQVJZKGxpYmRpc3BhdGNoKQogI2VuZGlmIC8vIERFQlVHX0FMTAogCiB1c2lu
ZyBuYW1lc3BhY2Ugc3RkOwpAQCAtNzU1LDcgKzc1Myw3IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgTWVkaWFQbGF5ZXJQcmkKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25DRjo6aXNBdmFpbGFibGUoKQogewotICAgIHJldHVybiBBVkZvdW5kYXRpb25DRkxpYnJhcnko
KSAmJiBDb3JlTWVkaWFMaWJyYXJ5KCkgJiYgbGliZGlzcGF0Y2hMaWJyYXJ5KCk7CisgICAgcmV0
dXJuIEFWRm91bmRhdGlvbkNGTGlicmFyeSgpICYmIENvcmVNZWRpYUxpYnJhcnkoKTsKIH0KIAog
ZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6Om1lZGlhVGltZUZvclRpbWVW
YWx1ZShmbG9hdCB0aW1lVmFsdWUpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104407</attachid>
            <date>2011-08-18 15:19:31 -0700</date>
            <delta_ts>2011-08-18 15:37:08 -0700</delta_ts>
            <desc>Soft link against AVFoundationCF and CoreMedia</desc>
            <filename>bug-65725-20110818151927.patch</filename>
            <type>text/plain</type>
            <size>28441</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMzU0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDgtMTggIEplZmYgTWls
bGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIFNvZnQgbGluayBhZ2FpbnN0IEFWRm91
bmRhdGlvbkNGIGFuZCBDb3JlTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY1NzI1CisgICAgICAgIAorICAgICAgICBBZGQgbmV3IG1hY3JvcyB0
byBTb2Z0TGlua2luZy5oIHRvIHN1cHBvcnQgc29mdC1saW5raW5nIHRvIGZ1bmN0aW9ucyBhbmQg
dmFyaWFibGVzIGRlY29yYXRlZCB3aXRoIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSwKKyAgICAgICAg
YW5kIHVzZSB0aGVtIHRvIHNvZnQtbGluayB0byBBVkZvdW5kYXRpb25DRiBhbmQgQ29yZU1lZGlh
LiBJIHZlcmlmaWVkIHRoYXQgdGhlIFdlYlByb2Nlc3MgZG9lc24ndCBsb2FkIHRoZXNlIERMTHMK
KyAgICAgICAgdW50aWwgYSBtZWRpYSBlbGVtZW50IGlzIHVzZWQuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFzIG5vIGNoYW5n
ZSBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2o6IEFkZGVkIEFWRm91bmRhdGlvbkNGU29mdExpbmtpbmcuaCBhbmQgQ29yZU1lZGlhU29m
dExpbmtpbmcuaC4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlTWVkaWFRVC52c3By
b3BzOiBSZW1vdmVkIERlbGF5TG9hZERMTHMgbGlua2VyIG9wdGlvbiB3aGljaCBpcyBubyBsb25n
ZXIgbmVlZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9B
VkZvdW5kYXRpb25DRlNvZnRMaW5raW5nLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9Db3JlTWVkaWFTb2Z0TGlua2luZy5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOiBTdG9wIGxpbmtpbmcgYWdhaW5zdCBBVkZvdW5kYXRpb25D
Ri5saWIgYW5kIENvcmVNZWRpYS5saWIgYW5kIGluY2x1ZGUgQVZGb3VuZGF0aW9uQ0ZTb2Z0TGlu
a2luZy5oIGFuZCBDb3JlTWVkaWFTb2Z0TGlua2luZy5oLgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9Tb2Z0TGlua2luZy5oOiBBZGRlZCBTT0ZUX0xJTktfRExMX0lNUE9SVCgpIGFuZCBTT0ZUX0xJ
TktfVkFSSUFCTEVfRExMX0lNUE9SVCgpIG1hY3Jvcy4KKwogMjAxMS0wOC0xOCAgSnVzdGluIE5v
dm9zYWQgIDxqdW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW53YXJyYW50ZWQgRE9NIEV4
Y2VwdGlvbiB3aGVuIHdoZW4gY2FudmFzMkQgZHJhd0ltYWdlIGlzIGNhbGxlZCB3aXRoIHNyYwpJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJl
dmlzaW9uIDkzMzA0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTMwMzA3LDYgKzMwMzA3LDE0IEBACiAJCQkJCQlOYW1l
PSJjZiIKIAkJCQkJCT4KIAkJCQkJCTxGaWxlCisJCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xhdmZvdW5kYXRpb25cY2ZcQVZGb3VuZGF0aW9uQ0ZTb2Z0TGlua2luZy5o
IgorCQkJCQkJCT4KKwkJCQkJCTwvRmlsZT4KKwkJCQkJCTxGaWxlCisJCQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xhdmZvdW5kYXRpb25cY2ZcQ29yZU1lZGlhU29mdExp
bmtpbmcuaCIKKwkJCQkJCQk+CisJCQkJCQk8L0ZpbGU+CisJCQkJCQk8RmlsZQogCQkJCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcYXZmb3VuZGF0aW9uXGNmXE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcCIKIAkJCQkJCQk+CiAJCQkJCQk8L0ZpbGU+Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlTWVkaWFRVC52c3Byb3Bz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVNZWRp
YVFULnZzcHJvcHMJKHJldmlzaW9uIDkzMzA0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZU1lZGlhUVQudnNwcm9wcwkod29ya2luZyBjb3B5KQpAQCAtOCw4ICs4LDQg
QEAKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKIAkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz0iJnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcQ29yZUF1ZGlvJnF1b3Q7
OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXEFWRm91bmRhdGlvbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcYXZmb3VuZGF0aW9uJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xhdmZvdW5kYXRpb25cY2Ym
cXVvdDsiCiAJLz4KLQk8VG9vbAotCQlOYW1lPSJWQ0xpbmtlclRvb2wiCi0JCURlbGF5TG9hZERM
THM9IkFWRm91bmRhdGlvbkNGLmRsbDtDb3JlVmlkZW8kKFdlYktpdENvbmZpZ1N1ZmZpeCkuZGxs
O01lZGlhVG9vbGJveCQoV2ViS2l0Q29uZmlnU3VmZml4KS5kbGwiCi0JLz4KIDwvVmlzdWFsU3R1
ZGlvUHJvcGVydHlTaGVldD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9jZi9BVkZvdW5kYXRpb25DRlNvZnRMaW5raW5nLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0FWRm91
bmRhdGlvbkNGU29mdExpbmtpbmcuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9BVkZvdW5kYXRpb25DRlNvZnRMaW5raW5n
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgIlNv
ZnRMaW5raW5nLmgiCisKKy8vIFNvZnQtbGluayBhZ2FpbnN0IEFWRm91bmRhdGlvbkNGIGZ1bmN0
aW9ucyBhbmQgdmFyaWFibGVzIHJlcXVpcmVkIGJ5IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGLmNwcC4KKworI2lmZGVmIERFQlVHX0FMTAorLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxl
bS85ODk4OTM3PiBBVkZvdW5kYXRpb25DRiBkb2Vzbid0IGN1cnJlbnRseSBkZWxpdmVyIGEgZGVi
dWcgbGlicmFyeS4KK1NPRlRfTElOS19MSUJSQVJZKEFWRm91bmRhdGlvbkNGKQorI2Vsc2UKK1NP
RlRfTElOS19MSUJSQVJZKEFWRm91bmRhdGlvbkNGKQorI2VuZGlmCisKKy8vIEZ1bmN0aW9ucwor
CitTT0ZUX0xJTktfRExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZDRkFzc2V0Q2FuY2VsTG9h
ZGluZywgdm9pZCwgX19jZGVjbCwgKEFWQ0ZBc3NldFJlZiBhc3NldCksIChhc3NldCkpCisjZGVm
aW5lIEFWQ0ZBc3NldENhbmNlbExvYWRpbmcgc29mdExpbmtfQVZDRkFzc2V0Q2FuY2VsTG9hZGlu
ZworCitTT0ZUX0xJTktfRExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZDRkFzc2V0Q29weUFz
c2V0VHJhY2tzLCBDRkFycmF5UmVmLCBfX2NkZWNsLCAoQVZDRkFzc2V0UmVmIGFzc2V0KSwgKGFz
c2V0KSkKKyNkZWZpbmUgQVZDRkFzc2V0Q29weUFzc2V0VHJhY2tzIHNvZnRMaW5rX0FWQ0ZBc3Nl
dENvcHlBc3NldFRyYWNrcworCitTT0ZUX0xJTktfRExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwg
QVZDRkFzc2V0Q29weVRyYWNrc1dpdGhNZWRpYUNoYXJhY3RlcmlzdGljLCBDRkFycmF5UmVmLCBf
X2NkZWNsLCAoQVZDRkFzc2V0UmVmIGFzc2V0LCBDRlN0cmluZ1JlZiBtZWRpYUNoYXJhY3Rlcmlz
dGljKSwgKGFzc2V0LCBtZWRpYUNoYXJhY3RlcmlzdGljKSkKKyNkZWZpbmUgQVZDRkFzc2V0Q29w
eVRyYWNrc1dpdGhNZWRpYUNoYXJhY3RlcmlzdGljIHNvZnRMaW5rX0FWQ0ZBc3NldENvcHlUcmFj
a3NXaXRoTWVkaWFDaGFyYWN0ZXJpc3RpYworCitTT0ZUX0xJTktfRExMX0lNUE9SVChBVkZvdW5k
YXRpb25DRiwgQVZDRkFzc2V0Q29weVRyYWNrc1dpdGhNZWRpYVR5cGUsIENGQXJyYXlSZWYsIF9f
Y2RlY2wsIChBVkNGQXNzZXRSZWYgYXNzZXQsIENGU3RyaW5nUmVmIG1lZGlhVHlwZSksIChhc3Nl
dCwgbWVkaWFUeXBlKSkKKyNkZWZpbmUgQVZDRkFzc2V0Q29weVRyYWNrc1dpdGhNZWRpYVR5cGUg
c29mdExpbmtfQVZDRkFzc2V0Q29weVRyYWNrc1dpdGhNZWRpYVR5cGUKKworU09GVF9MSU5LX0RM
TF9JTVBPUlQoQVZGb3VuZGF0aW9uQ0YsIEFWQ0ZBc3NldEdldER1cmF0aW9uLCBDTVRpbWUsIF9f
Y2RlY2wsIChBVkNGQXNzZXRSZWYgYXNzZXQpLCAoYXNzZXQpKQorI2RlZmluZSBBVkNGQXNzZXRH
ZXREdXJhdGlvbiBzb2Z0TGlua19BVkNGQXNzZXRHZXREdXJhdGlvbgorCitTT0ZUX0xJTktfRExM
X0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZDRkFzc2V0R2V0TmF0dXJhbFNpemUsIENHU2l6ZSwg
X19jZGVjbCwgKEFWQ0ZBc3NldFJlZiBhc3NldCksIChhc3NldCkpCisjZGVmaW5lIEFWQ0ZBc3Nl
dEdldE5hdHVyYWxTaXplIHNvZnRMaW5rX0FWQ0ZBc3NldEdldE5hdHVyYWxTaXplCisKK1NPRlRf
TElOS19ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGQXNzZXRHZXRQcmVmZXJyZWRUcmFu
c2Zvcm0sIENHQWZmaW5lVHJhbnNmb3JtLCBfX2NkZWNsLCAoQVZDRkFzc2V0UmVmIGFzc2V0KSwg
KGFzc2V0KSkKKyNkZWZpbmUgQVZDRkFzc2V0R2V0UHJlZmVycmVkVHJhbnNmb3JtIHNvZnRMaW5r
X0FWQ0ZBc3NldEdldFByZWZlcnJlZFRyYW5zZm9ybQorCitTT0ZUX0xJTktfRExMX0lNUE9SVChB
VkZvdW5kYXRpb25DRiwgQVZDRkFzc2V0R2V0U3RhdHVzT2ZWYWx1ZUZvclByb3BlcnR5LCBBVkNG
UHJvcGVydHlWYWx1ZVN0YXR1cywgX19jZGVjbCwgKEFWQ0ZBc3NldFJlZiBhc3NldCwgQ0ZTdHJp
bmdSZWYgcHJvcGVydHksIENGRXJyb3JSZWYgKmVycm9yT3V0KSwgKGFzc2V0LCBwcm9wZXJ0eSwg
ZXJyb3JPdXQpKQorI2RlZmluZSBBVkNGQXNzZXRHZXRTdGF0dXNPZlZhbHVlRm9yUHJvcGVydHkg
c29mdExpbmtfQVZDRkFzc2V0R2V0U3RhdHVzT2ZWYWx1ZUZvclByb3BlcnR5CisKK1NPRlRfTElO
S19ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGQXNzZXRJbWFnZUdlbmVyYXRvckNvcHlD
R0ltYWdlQXRUaW1lLCBDR0ltYWdlUmVmLCBfX2NkZWNsLCAoQVZDRkFzc2V0SW1hZ2VHZW5lcmF0
b3JSZWYgZ2VuZXJhdG9yLCBDTVRpbWUgcmVxdWVzdGVkVGltZSwgQ01UaW1lICphY3R1YWxUaW1l
T3V0LCBDRkVycm9yUmVmICplcnJvck91dCksIChnZW5lcmF0b3IsIHJlcXVlc3RlZFRpbWUsIGFj
dHVhbFRpbWVPdXQsIGVycm9yT3V0KSkKKyNkZWZpbmUgQVZDRkFzc2V0SW1hZ2VHZW5lcmF0b3JD
b3B5Q0dJbWFnZUF0VGltZSBzb2Z0TGlua19BVkNGQXNzZXRJbWFnZUdlbmVyYXRvckNvcHlDR0lt
YWdlQXRUaW1lCisKK1NPRlRfTElOS19ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGQXNz
ZXRJbWFnZUdlbmVyYXRvckNyZWF0ZVdpdGhBc3NldCwgQVZDRkFzc2V0SW1hZ2VHZW5lcmF0b3JS
ZWYsIF9fY2RlY2wsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIEFWQ0ZBc3NldFJlZiBhc3Nl
dCksIChhbGxvY2F0b3IsIGFzc2V0KSkKKyNkZWZpbmUgQVZDRkFzc2V0SW1hZ2VHZW5lcmF0b3JD
cmVhdGVXaXRoQXNzZXQgc29mdExpbmtfQVZDRkFzc2V0SW1hZ2VHZW5lcmF0b3JDcmVhdGVXaXRo
QXNzZXQKKworU09GVF9MSU5LX0RMTF9JTVBPUlQoQVZGb3VuZGF0aW9uQ0YsIEFWQ0ZBc3NldElt
YWdlR2VuZXJhdG9yU2V0QXBlcnR1cmVNb2RlLCB2b2lkLCBfX2NkZWNsLCAoQVZDRkFzc2V0SW1h
Z2VHZW5lcmF0b3JSZWYgZ2VuZXJhdG9yLCBDRlN0cmluZ1JlZiBtb2RlKSwgKGdlbmVyYXRvciwg
bW9kZSkpCisjZGVmaW5lIEFWQ0ZBc3NldEltYWdlR2VuZXJhdG9yU2V0QXBlcnR1cmVNb2RlIHNv
ZnRMaW5rX0FWQ0ZBc3NldEltYWdlR2VuZXJhdG9yU2V0QXBlcnR1cmVNb2RlCisKK1NPRlRfTElO
S19ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGQXNzZXRJbWFnZUdlbmVyYXRvclNldEFw
cGxpZXNQcmVmZXJyZWRUcmFja1RyYW5zZm9ybSwgdm9pZCwgX19jZGVjbCwgKEFWQ0ZBc3NldElt
YWdlR2VuZXJhdG9yUmVmIGdlbmVyYXRvciwgQm9vbGVhbiBhcHBsaWVzVHJhbnNmcm9tKSwgKGdl
bmVyYXRvciwgYXBwbGllc1RyYW5zZnJvbSkpCisjZGVmaW5lIEFWQ0ZBc3NldEltYWdlR2VuZXJh
dG9yU2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNmb3JtIHNvZnRMaW5rX0FWQ0ZBc3NldElt
YWdlR2VuZXJhdG9yU2V0QXBwbGllc1ByZWZlcnJlZFRyYWNrVHJhbnNmb3JtCisKK1NPRlRfTElO
S19ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGQXNzZXRJbWFnZUdlbmVyYXRvclNldE1h
eGltdW1TaXplLCB2b2lkLCBfX2NkZWNsLCAoQVZDRkFzc2V0SW1hZ2VHZW5lcmF0b3JSZWYgZ2Vu
ZXJhdG9yLCBDR1NpemUgbWF4U2l6ZSksIChnZW5lcmF0b3IsIG1heFNpemUpKQorI2RlZmluZSBB
VkNGQXNzZXRJbWFnZUdlbmVyYXRvclNldE1heGltdW1TaXplIHNvZnRMaW5rX0FWQ0ZBc3NldElt
YWdlR2VuZXJhdG9yU2V0TWF4aW11bVNpemUKKworU09GVF9MSU5LX0RMTF9JTVBPUlQoQVZGb3Vu
ZGF0aW9uQ0YsIEFWQ0ZBc3NldEltYWdlR2VuZXJhdG9yU2V0UmVxdWVzdGVkVGltZVRvbGVyYW5j
ZUFmdGVyLCB2b2lkLCBfX2NkZWNsLCAoQVZDRkFzc2V0SW1hZ2VHZW5lcmF0b3JSZWYgZ2VuZXJh
dG9yLCBDTVRpbWUgdG9sZXJhbmNlQWZ0ZXIpLCAoZ2VuZXJhdG9yLCB0b2xlcmFuY2VBZnRlcikp
CisjZGVmaW5lIEFWQ0ZBc3NldEltYWdlR2VuZXJhdG9yU2V0UmVxdWVzdGVkVGltZVRvbGVyYW5j
ZUFmdGVyIHNvZnRMaW5rX0FWQ0ZBc3NldEltYWdlR2VuZXJhdG9yU2V0UmVxdWVzdGVkVGltZVRv
bGVyYW5jZUFmdGVyCisKK1NPRlRfTElOS19ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNG
QXNzZXRJbWFnZUdlbmVyYXRvclNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VCZWZvcmUsIHZvaWQs
IF9fY2RlY2wsIChBVkNGQXNzZXRJbWFnZUdlbmVyYXRvclJlZiBnZW5lcmF0b3IsIENNVGltZSB0
b2xlcmFuY2VCZWZvcmUpLCAoZ2VuZXJhdG9yLCB0b2xlcmFuY2VCZWZvcmUpKQorI2RlZmluZSBB
VkNGQXNzZXRJbWFnZUdlbmVyYXRvclNldFJlcXVlc3RlZFRpbWVUb2xlcmFuY2VCZWZvcmUgc29m
dExpbmtfQVZDRkFzc2V0SW1hZ2VHZW5lcmF0b3JTZXRSZXF1ZXN0ZWRUaW1lVG9sZXJhbmNlQmVm
b3JlCisKK1NPRlRfTElOS19ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGQXNzZXRJc1Bs
YXlhYmxlLCBCb29sZWFuLCBfX2NkZWNsLCAoQVZDRkFzc2V0UmVmIGFzc2V0KSwgKGFzc2V0KSkK
KyNkZWZpbmUgQVZDRkFzc2V0SXNQbGF5YWJsZSBzb2Z0TGlua19BVkNGQXNzZXRJc1BsYXlhYmxl
CisKK1NPRlRfTElOS19ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGQXNzZXRMb2FkVmFs
dWVzQXN5bmNocm9ub3VzbHlGb3JQcm9wZXJ0aWVzLCB2b2lkLCBfX2NkZWNsLCAoQVZDRkFzc2V0
UmVmIGFzc2V0LCBDRkFycmF5UmVmIHByb3BlcnRpZXMsIEFWQ0ZBc3NldExvYWRWYWx1ZXNDb21w
bGV0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQgKmNsaWVudENvbnRleHQpLCAoYXNzZXQsIHBy
b3BlcnRpZXMsIGNhbGxiYWNrLCBjbGllbnRDb250ZXh0KSkKKyNkZWZpbmUgQVZDRkFzc2V0TG9h
ZFZhbHVlc0FzeW5jaHJvbm91c2x5Rm9yUHJvcGVydGllcyBzb2Z0TGlua19BVkNGQXNzZXRMb2Fk
VmFsdWVzQXN5bmNocm9ub3VzbHlGb3JQcm9wZXJ0aWVzCisKK1NPRlRfTElOS19ETExfSU1QT1JU
KEFWRm91bmRhdGlvbkNGLCBBVkNGQXNzZXRUcmFja0dldE1lZGlhVHlwZSwgQ0ZTdHJpbmdSZWYs
IF9fY2RlY2wsIChBVkNGQXNzZXRUcmFja1JlZiBhc3NldFRyYWNrKSwgKGFzc2V0VHJhY2spKQor
I2RlZmluZSBBVkNGQXNzZXRUcmFja0dldE1lZGlhVHlwZSBzb2Z0TGlua19BVkNGQXNzZXRUcmFj
a0dldE1lZGlhVHlwZQorCitTT0ZUX0xJTktfRExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZD
RkFzc2V0VHJhY2tHZXROYXR1cmFsU2l6ZSwgQ0dTaXplLCBfX2NkZWNsLCAoQVZDRkFzc2V0VHJh
Y2tSZWYgYXNzZXRUcmFjayksIChhc3NldFRyYWNrKSkKKyNkZWZpbmUgQVZDRkFzc2V0VHJhY2tH
ZXROYXR1cmFsU2l6ZSBzb2Z0TGlua19BVkNGQXNzZXRUcmFja0dldE5hdHVyYWxTaXplCisKK1NP
RlRfTElOS19ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGQXNzZXRUcmFja0dldFByZWZl
cnJlZFRyYW5zZm9ybSwgQ0dBZmZpbmVUcmFuc2Zvcm0sIF9fY2RlY2wsIChBVkNGQXNzZXRUcmFj
a1JlZiBhc3NldFRyYWNrKSwgKGFzc2V0VHJhY2spKQorI2RlZmluZSBBVkNGQXNzZXRUcmFja0dl
dFByZWZlcnJlZFRyYW5zZm9ybSBzb2Z0TGlua19BVkNGQXNzZXRUcmFja0dldFByZWZlcnJlZFRy
YW5zZm9ybQorCitTT0ZUX0xJTktfRExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZDRkFzc2V0
VHJhY2tHZXRUb3RhbFNhbXBsZURhdGFMZW5ndGgsIGludDY0X3QsIF9fY2RlY2wsIChBVkNGQXNz
ZXRUcmFja1JlZiBhc3NldFRyYWNrKSwgKGFzc2V0VHJhY2spKQorI2RlZmluZSBBVkNGQXNzZXRU
cmFja0dldFRvdGFsU2FtcGxlRGF0YUxlbmd0aCBzb2Z0TGlua19BVkNGQXNzZXRUcmFja0dldFRv
dGFsU2FtcGxlRGF0YUxlbmd0aAorCitTT0ZUX0xJTktfRExMX0lNUE9SVChBVkZvdW5kYXRpb25D
RiwgQVZDRlBsYXllckNyZWF0ZVBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWwsIEFWQ0ZQ
bGF5ZXJPYnNlcnZlclJlZiwgX19jZGVjbCwgKEFWQ0ZQbGF5ZXJSZWYgcGxheWVyLCBDTVRpbWUg
aW50ZXJ2YWwsIGRpc3BhdGNoX3F1ZXVlX3QgcXVldWUsIEFWQ0ZQbGF5ZXJQZXJpb2RpY1RpbWVP
YnNlcnZlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpjbGllbnRDb250ZXh0KSwgKHBsYXllciwg
aW50ZXJ2YWwsIHF1ZXVlLCBjYWxsYmFjaywgY2xpZW50Q29udGV4dCkpCisjZGVmaW5lIEFWQ0ZQ
bGF5ZXJDcmVhdGVQZXJpb2RpY1RpbWVPYnNlcnZlckZvckludGVydmFsIHNvZnRMaW5rX0FWQ0ZQ
bGF5ZXJDcmVhdGVQZXJpb2RpY1RpbWVPYnNlcnZlckZvckludGVydmFsCisKK1NPRlRfTElOS19E
TExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGUGxheWVySXRlbUNyZWF0ZVdpdGhBc3NldCwg
QVZDRlBsYXllckl0ZW1SZWYsIF9fY2RlY2wsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIEFW
Q0ZBc3NldFJlZiBhc3NldCwgZGlzcGF0Y2hfcXVldWVfdCBub3RpZmljYXRpb25RdWV1ZSksIChh
bGxvY2F0b3IsIGFzc2V0LCBub3RpZmljYXRpb25RdWV1ZSkpCisjZGVmaW5lIEFWQ0ZQbGF5ZXJJ
dGVtQ3JlYXRlV2l0aEFzc2V0IHNvZnRMaW5rX0FWQ0ZQbGF5ZXJJdGVtQ3JlYXRlV2l0aEFzc2V0
CisKK1NPRlRfTElOS19ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGUGxheWVyQ3JlYXRl
V2l0aFBsYXllckl0ZW1BbmRPcHRpb25zLCBBVkNGUGxheWVyUmVmLCBfX2NkZWNsLCAoQ0ZBbGxv
Y2F0b3JSZWYgYWxsb2NhdG9yLCBBVkNGUGxheWVySXRlbVJlZiBwbGF5ZXJJdGVtLCBDRkRpY3Rp
b25hcnlSZWYgb3B0aW9ucywgZGlzcGF0Y2hfcXVldWVfdCBub3RpZmljYXRpb25RdWV1ZSksIChh
bGxvY2F0b3IsIHBsYXllckl0ZW0sIG9wdGlvbnMsIG5vdGlmaWNhdGlvblF1ZXVlKSkKKyNkZWZp
bmUgQVZDRlBsYXllckNyZWF0ZVdpdGhQbGF5ZXJJdGVtQW5kT3B0aW9ucyBzb2Z0TGlua19BVkNG
UGxheWVyQ3JlYXRlV2l0aFBsYXllckl0ZW1BbmRPcHRpb25zCisKK1NPRlRfTElOS19ETExfSU1Q
T1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGUGxheWVySXRlbUNvcHlMb2FkZWRUaW1lUmFuZ2VzLCBD
RkFycmF5UmVmLCBfX2NkZWNsLCAoQVZDRlBsYXllckl0ZW1SZWYgcGxheWVySXRlbSksIChwbGF5
ZXJJdGVtKSkKKyNkZWZpbmUgQVZDRlBsYXllckl0ZW1Db3B5TG9hZGVkVGltZVJhbmdlcyBzb2Z0
TGlua19BVkNGUGxheWVySXRlbUNvcHlMb2FkZWRUaW1lUmFuZ2VzCisKK1NPRlRfTElOS19ETExf
SU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGUGxheWVySXRlbUNvcHlTZWVrYWJsZVRpbWVSYW5n
ZXMsIENGQXJyYXlSZWYsIF9fY2RlY2wsIChBVkNGUGxheWVySXRlbVJlZiBwbGF5ZXJJdGVtKSwg
KHBsYXllckl0ZW0pKQorI2RlZmluZSBBVkNGUGxheWVySXRlbUNvcHlTZWVrYWJsZVRpbWVSYW5n
ZXMgc29mdExpbmtfQVZDRlBsYXllckl0ZW1Db3B5U2Vla2FibGVUaW1lUmFuZ2VzCisKK1NPRlRf
TElOS19ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGUGxheWVySXRlbUNvcHlUcmFja3Ms
IENGQXJyYXlSZWYsIF9fY2RlY2wsIChBVkNGUGxheWVySXRlbVJlZiBwbGF5ZXJJdGVtKSwgKHBs
YXllckl0ZW0pKQorI2RlZmluZSBBVkNGUGxheWVySXRlbUNvcHlUcmFja3Mgc29mdExpbmtfQVZD
RlBsYXllckl0ZW1Db3B5VHJhY2tzCisKK1NPRlRfTElOS19ETExfSU1QT1JUKEFWRm91bmRhdGlv
bkNGLCBBVkNGUGxheWVySXRlbUdldEFzc2V0LCBBVkNGQXNzZXRSZWYsIF9fY2RlY2wsIChBVkNG
UGxheWVySXRlbVJlZiBwbGF5ZXJJdGVtKSwgKHBsYXllckl0ZW0pKQorI2RlZmluZSBBVkNGUGxh
eWVySXRlbUdldEFzc2V0IHNvZnRMaW5rX0FWQ0ZQbGF5ZXJJdGVtR2V0QXNzZXQKKworU09GVF9M
SU5LX0RMTF9JTVBPUlQoQVZGb3VuZGF0aW9uQ0YsIEFWQ0ZQbGF5ZXJJdGVtR2V0Q3VycmVudFRp
bWUsIENNVGltZSwgX19jZGVjbCwgKEFWQ0ZQbGF5ZXJJdGVtUmVmIHBsYXllckl0ZW0pLCAocGxh
eWVySXRlbSkpCisjZGVmaW5lIEFWQ0ZQbGF5ZXJJdGVtR2V0Q3VycmVudFRpbWUgc29mdExpbmtf
QVZDRlBsYXllckl0ZW1HZXRDdXJyZW50VGltZQorCitTT0ZUX0xJTktfRExMX0lNUE9SVChBVkZv
dW5kYXRpb25DRiwgQVZDRlBsYXllckl0ZW1HZXRTdGF0dXMsIEFWQ0ZQbGF5ZXJJdGVtU3RhdHVz
LCBfX2NkZWNsLCAoQVZDRlBsYXllckl0ZW1SZWYgcGxheWVySXRlbSwgQ0ZFcnJvclJlZiAqZXJy
b3JPdXQpLCAocGxheWVySXRlbSwgZXJyb3JPdXQpKQorI2RlZmluZSBBVkNGUGxheWVySXRlbUdl
dFN0YXR1cyBzb2Z0TGlua19BVkNGUGxheWVySXRlbUdldFN0YXR1cworCitTT0ZUX0xJTktfRExM
X0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZDRlBsYXllckl0ZW1Jc1BsYXliYWNrQnVmZmVyRW1w
dHksIEJvb2xlYW4sIF9fY2RlY2wsIChBVkNGUGxheWVySXRlbVJlZiBwbGF5ZXJJdGVtKSwgKHBs
YXllckl0ZW0pKQorI2RlZmluZSBBVkNGUGxheWVySXRlbUlzUGxheWJhY2tCdWZmZXJFbXB0eSBz
b2Z0TGlua19BVkNGUGxheWVySXRlbUlzUGxheWJhY2tCdWZmZXJFbXB0eQorCitTT0ZUX0xJTktf
RExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZDRlBsYXllckl0ZW1Jc1BsYXliYWNrQnVmZmVy
RnVsbCwgQm9vbGVhbiwgX19jZGVjbCwgKEFWQ0ZQbGF5ZXJJdGVtUmVmIHBsYXllckl0ZW0pLCAo
cGxheWVySXRlbSkpCisjZGVmaW5lIEFWQ0ZQbGF5ZXJJdGVtSXNQbGF5YmFja0J1ZmZlckZ1bGwg
c29mdExpbmtfQVZDRlBsYXllckl0ZW1Jc1BsYXliYWNrQnVmZmVyRnVsbAorCitTT0ZUX0xJTktf
RExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZDRlBsYXllckl0ZW1Jc1BsYXliYWNrTGlrZWx5
VG9LZWVwVXAsIEJvb2xlYW4sIF9fY2RlY2wsIChBVkNGUGxheWVySXRlbVJlZiBwbGF5ZXJJdGVt
KSwgKHBsYXllckl0ZW0pKQorI2RlZmluZSBBVkNGUGxheWVySXRlbUlzUGxheWJhY2tMaWtlbHlU
b0tlZXBVcCBzb2Z0TGlua19BVkNGUGxheWVySXRlbUlzUGxheWJhY2tMaWtlbHlUb0tlZXBVcAor
CitTT0ZUX0xJTktfRExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZDRlBsYXllckl0ZW1TZWVr
VG9UaW1lV2l0aFRvbGVyYW5jZUFuZENvbXBsZXRpb25DYWxsYmFjaywgQVZDRkFzc2V0UmVmLCBf
X2NkZWNsLCAoQVZDRlBsYXllckl0ZW1SZWYgcGxheWVySXRlbSwgQ01UaW1lIHRpbWUsIENNVGlt
ZSB0b2xlcmFuY2VCZWZvcmUsIENNVGltZSB0b2xlcmFuY2VBZnRlciwgQVZDRlBsYXllckl0ZW1T
ZWVrQ29tcGxldGlvbkNhbGxiYWNrIGNvbXBsZXRpb25DYWxsYmFjaywgdm9pZCAqY29udGV4dCks
IChwbGF5ZXJJdGVtLCB0aW1lLCB0b2xlcmFuY2VCZWZvcmUsIHRvbGVyYW5jZUFmdGVyLCBjb21w
bGV0aW9uQ2FsbGJhY2ssIGNvbnRleHQpKQorI2RlZmluZSBBVkNGUGxheWVySXRlbVNlZWtUb1Rp
bWVXaXRoVG9sZXJhbmNlQW5kQ29tcGxldGlvbkNhbGxiYWNrIHNvZnRMaW5rX0FWQ0ZQbGF5ZXJJ
dGVtU2Vla1RvVGltZVdpdGhUb2xlcmFuY2VBbmRDb21wbGV0aW9uQ2FsbGJhY2sKKworU09GVF9M
SU5LX0RMTF9JTVBPUlQoQVZGb3VuZGF0aW9uQ0YsIEFWQ0ZQbGF5ZXJJdGVtVHJhY2tDb3B5QXNz
ZXRUcmFjaywgQVZDRkFzc2V0VHJhY2tSZWYsIF9fY2RlY2wsIChBVkNGUGxheWVySXRlbVRyYWNr
UmVmIHRyYWNrKSwgKHRyYWNrKSkKKyNkZWZpbmUgQVZDRlBsYXllckl0ZW1UcmFja0NvcHlBc3Nl
dFRyYWNrIHNvZnRMaW5rX0FWQ0ZQbGF5ZXJJdGVtVHJhY2tDb3B5QXNzZXRUcmFjaworCitTT0ZU
X0xJTktfRExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZDRlBsYXllckl0ZW1UcmFja0lzRW5h
YmxlZCwgQm9vbGVhbiwgX19jZGVjbCwgKEFWQ0ZQbGF5ZXJJdGVtVHJhY2tSZWYgdHJhY2spLCAo
dHJhY2spKQorI2RlZmluZSBBVkNGUGxheWVySXRlbVRyYWNrSXNFbmFibGVkIHNvZnRMaW5rX0FW
Q0ZQbGF5ZXJJdGVtVHJhY2tJc0VuYWJsZWQKKworU09GVF9MSU5LX0RMTF9JTVBPUlQoQVZGb3Vu
ZGF0aW9uQ0YsIEFWQ0ZQbGF5ZXJHZXRSYXRlLCBGbG9hdDMyLCBfX2NkZWNsLCAoQVZDRlBsYXll
clJlZiBwbGF5ZXIpLCAocGxheWVyKSkKKyNkZWZpbmUgQVZDRlBsYXllckdldFJhdGUgc29mdExp
bmtfQVZDRlBsYXllckdldFJhdGUKKworU09GVF9MSU5LX0RMTF9JTVBPUlQoQVZGb3VuZGF0aW9u
Q0YsIEFWQ0ZQbGF5ZXJMYXllckNvcHlDQUNGTGF5ZXIsIENBQ0ZMYXllclJlZiwgX19jZGVjbCwg
KEFWQ0ZQbGF5ZXJMYXllclJlZiBwbGF5ZXJMYXllciksIChwbGF5ZXJMYXllcikpCisjZGVmaW5l
IEFWQ0ZQbGF5ZXJMYXllckNvcHlDQUNGTGF5ZXIgc29mdExpbmtfQVZDRlBsYXllckxheWVyQ29w
eUNBQ0ZMYXllcgorCitTT0ZUX0xJTktfRExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZDRlBs
YXllckxheWVyQ3JlYXRlV2l0aEFWQ0ZQbGF5ZXIsIEFWQ0ZQbGF5ZXJMYXllclJlZiwgX19jZGVj
bCwgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQVZDRlBsYXllclJlZiBwbGF5ZXIsIGRpc3Bh
dGNoX3F1ZXVlX3Qgbm90aWZpY2F0aW9uUXVldWUpLCAoYWxsb2NhdG9yLCBwbGF5ZXIsIG5vdGlm
aWNhdGlvblF1ZXVlKSkKKyNkZWZpbmUgQVZDRlBsYXllckxheWVyQ3JlYXRlV2l0aEFWQ0ZQbGF5
ZXIgc29mdExpbmtfQVZDRlBsYXllckxheWVyQ3JlYXRlV2l0aEFWQ0ZQbGF5ZXIKKworU09GVF9M
SU5LX0RMTF9JTVBPUlQoQVZGb3VuZGF0aW9uQ0YsIEFWQ0ZQbGF5ZXJMYXllcklzUmVhZHlGb3JE
aXNwbGF5LCBCb29sZWFuLCBfX2NkZWNsLCAoQVZDRlBsYXllckxheWVyUmVmIHBsYXllckxheWVy
KSwgKHBsYXllckxheWVyKSkKKyNkZWZpbmUgQVZDRlBsYXllckxheWVySXNSZWFkeUZvckRpc3Bs
YXkgc29mdExpbmtfQVZDRlBsYXllckxheWVySXNSZWFkeUZvckRpc3BsYXkKKworU09GVF9MSU5L
X0RMTF9JTVBPUlQoQVZGb3VuZGF0aW9uQ0YsIEFWQ0ZQbGF5ZXJMYXllclNldFBsYXllciwgdm9p
ZCwgX19jZGVjbCwgKEFWQ0ZQbGF5ZXJMYXllclJlZiBwbGF5ZXJMYXllciwgQVZDRlBsYXllclJl
ZiBwbGF5ZXIpLCAocGxheWVyTGF5ZXIsIHBsYXllcikpCisjZGVmaW5lIEFWQ0ZQbGF5ZXJMYXll
clNldFBsYXllciBzb2Z0TGlua19BVkNGUGxheWVyTGF5ZXJTZXRQbGF5ZXIKKworU09GVF9MSU5L
X0RMTF9JTVBPUlQoQVZGb3VuZGF0aW9uQ0YsIEFWQ0ZQbGF5ZXJSZW1vdmVPYnNlcnZlciwgT1NT
dGF0dXMsIF9fY2RlY2wsIChBVkNGUGxheWVyUmVmIHBsYXllciwgQVZDRlBsYXllck9ic2VydmVy
UmVmIG9ic2VydmVyKSwgKHBsYXllciwgb2JzZXJ2ZXIpKQorI2RlZmluZSBBVkNGUGxheWVyUmVt
b3ZlT2JzZXJ2ZXIgc29mdExpbmtfQVZDRlBsYXllclJlbW92ZU9ic2VydmVyCisKK1NPRlRfTElO
S19ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGUGxheWVyU2V0Q2xvc2VkQ2FwdGlvbkRp
c3BsYXlFbmFibGVkLCB2b2lkLCBfX2NkZWNsLCAoQVZDRlBsYXllclJlZiBwbGF5ZXIsIEJvb2xl
YW4gZW5hYmxlZCksIChwbGF5ZXIsIGVuYWJsZWQpKQorI2RlZmluZSBBVkNGUGxheWVyU2V0Q2xv
c2VkQ2FwdGlvbkRpc3BsYXlFbmFibGVkIHNvZnRMaW5rX0FWQ0ZQbGF5ZXJTZXRDbG9zZWRDYXB0
aW9uRGlzcGxheUVuYWJsZWQKKworU09GVF9MSU5LX0RMTF9JTVBPUlQoQVZGb3VuZGF0aW9uQ0Ys
IEFWQ0ZQbGF5ZXJTZXRSYXRlLCB2b2lkLCBfX2NkZWNsLCAoQVZDRlBsYXllclJlZiBwbGF5ZXIs
IEZsb2F0MzIgcmF0ZSksIChwbGF5ZXIsIHJhdGUpKQorI2RlZmluZSBBVkNGUGxheWVyU2V0UmF0
ZSBzb2Z0TGlua19BVkNGUGxheWVyU2V0UmF0ZQorCitTT0ZUX0xJTktfRExMX0lNUE9SVChBVkZv
dW5kYXRpb25DRiwgQVZDRlBsYXllclNldFZvbHVtZSwgdm9pZCwgX19jZGVjbCwgKEFWQ0ZQbGF5
ZXJSZWYgcGxheWVyLCBGbG9hdDMyIHZvbHVtZSksIChwbGF5ZXIsIHZvbHVtZSkpCisjZGVmaW5l
IEFWQ0ZQbGF5ZXJTZXRWb2x1bWUgc29mdExpbmtfQVZDRlBsYXllclNldFZvbHVtZQorCitTT0ZU
X0xJTktfRExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZDRlVSTEFzc2V0Q3JlYXRlV2l0aFVS
TEFuZE9wdGlvbnMsIEFWQ0ZVUkxBc3NldFJlZiwgX19jZGVjbCwgKENGQWxsb2NhdG9yUmVmIGFs
bG9jYXRvciwgQ0ZVUkxSZWYgVVJMLCBDRkRpY3Rpb25hcnlSZWYgb3B0aW9ucywgZGlzcGF0Y2hf
cXVldWVfdCBub3RpZmljYXRpb25RdWV1ZSksIChhbGxvY2F0b3IsIFVSTCwgb3B0aW9ucywgbm90
aWZpY2F0aW9uUXVldWUpKQorI2RlZmluZSBBVkNGVVJMQXNzZXRDcmVhdGVXaXRoVVJMQW5kT3B0
aW9ucyBzb2Z0TGlua19BVkNGVVJMQXNzZXRDcmVhdGVXaXRoVVJMQW5kT3B0aW9ucworCisvLyBW
YXJpYWJsZXMKKworU09GVF9MSU5LX1ZBUklBQkxFX0RMTF9JTVBPUlQoQVZGb3VuZGF0aW9uQ0Ys
IEFWQ0ZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVydHVyZSwgY29uc3Qg
Q0ZTdHJpbmdSZWYpOworI2RlZmluZSBBVkNGQXNzZXRJbWFnZUdlbmVyYXRvckFwZXJ0dXJlTW9k
ZUNsZWFuQXBlcnR1cmUgZ2V0X0FWQ0ZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xl
YW5BcGVydHVyZSgpCisKK1NPRlRfTElOS19WQVJJQUJMRV9ETExfSU1QT1JUKEFWRm91bmRhdGlv
bkNGLCBBVkNGQXNzZXRQcm9wZXJ0eUR1cmF0aW9uLCBjb25zdCBDRlN0cmluZ1JlZik7CisjZGVm
aW5lIEFWQ0ZBc3NldFByb3BlcnR5RHVyYXRpb24gZ2V0X0FWQ0ZBc3NldFByb3BlcnR5RHVyYXRp
b24oKQorCitTT0ZUX0xJTktfVkFSSUFCTEVfRExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZD
RkFzc2V0UHJvcGVydHlOYXR1cmFsU2l6ZSwgY29uc3QgQ0ZTdHJpbmdSZWYpOworI2RlZmluZSBB
VkNGQXNzZXRQcm9wZXJ0eU5hdHVyYWxTaXplIGdldF9BVkNGQXNzZXRQcm9wZXJ0eU5hdHVyYWxT
aXplKCkKKworU09GVF9MSU5LX1ZBUklBQkxFX0RMTF9JTVBPUlQoQVZGb3VuZGF0aW9uQ0YsIEFW
Q0ZBc3NldFByb3BlcnR5UGxheWFibGUsIGNvbnN0IENGU3RyaW5nUmVmKTsKKyNkZWZpbmUgQVZD
RkFzc2V0UHJvcGVydHlQbGF5YWJsZSBnZXRfQVZDRkFzc2V0UHJvcGVydHlQbGF5YWJsZSgpCisK
K1NPRlRfTElOS19WQVJJQUJMRV9ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGQXNzZXRQ
cm9wZXJ0eVByZWZlcnJlZFJhdGUsIGNvbnN0IENGU3RyaW5nUmVmKTsKKyNkZWZpbmUgQVZDRkFz
c2V0UHJvcGVydHlQcmVmZXJyZWRSYXRlIGdldF9BVkNGQXNzZXRQcm9wZXJ0eVByZWZlcnJlZFJh
dGUoKQorCitTT0ZUX0xJTktfVkFSSUFCTEVfRExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZD
RkFzc2V0UHJvcGVydHlQcmVmZXJyZWRUcmFuc2Zvcm0sIGNvbnN0IENGU3RyaW5nUmVmKTsKKyNk
ZWZpbmUgQVZDRkFzc2V0UHJvcGVydHlQcmVmZXJyZWRUcmFuc2Zvcm0gZ2V0X0FWQ0ZBc3NldFBy
b3BlcnR5UHJlZmVycmVkVHJhbnNmb3JtKCkKKworU09GVF9MSU5LX1ZBUklBQkxFX0RMTF9JTVBP
UlQoQVZGb3VuZGF0aW9uQ0YsIEFWQ0ZBc3NldFByb3BlcnR5VHJhY2tzLCBjb25zdCBDRlN0cmlu
Z1JlZik7CisjZGVmaW5lIEFWQ0ZBc3NldFByb3BlcnR5VHJhY2tzIGdldF9BVkNGQXNzZXRQcm9w
ZXJ0eVRyYWNrcygpCisKK1NPRlRfTElOS19WQVJJQUJMRV9ETExfSU1QT1JUKEFWRm91bmRhdGlv
bkNGLCBBVkNGTWVkaWFDaGFyYWN0ZXJpc3RpY0F1ZGlibGUsIGNvbnN0IENGU3RyaW5nUmVmKTsK
KyNkZWZpbmUgQVZDRk1lZGlhQ2hhcmFjdGVyaXN0aWNBdWRpYmxlIGdldF9BVkNGTWVkaWFDaGFy
YWN0ZXJpc3RpY0F1ZGlibGUoKQorCitTT0ZUX0xJTktfVkFSSUFCTEVfRExMX0lNUE9SVChBVkZv
dW5kYXRpb25DRiwgQVZDRk1lZGlhQ2hhcmFjdGVyaXN0aWNWaXN1YWwsIGNvbnN0IENGU3RyaW5n
UmVmKTsKKyNkZWZpbmUgQVZDRk1lZGlhQ2hhcmFjdGVyaXN0aWNWaXN1YWwgZ2V0X0FWQ0ZNZWRp
YUNoYXJhY3RlcmlzdGljVmlzdWFsKCkKKworU09GVF9MSU5LX1ZBUklBQkxFX0RMTF9JTVBPUlQo
QVZGb3VuZGF0aW9uQ0YsIEFWQ0ZNZWRpYVR5cGVBdWRpbywgY29uc3QgQ0ZTdHJpbmdSZWYpOwor
I2RlZmluZSBBVkNGTWVkaWFUeXBlQXVkaW8gZ2V0X0FWQ0ZNZWRpYVR5cGVBdWRpbygpCisKK1NP
RlRfTElOS19WQVJJQUJMRV9ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGTWVkaWFUeXBl
Q2xvc2VkQ2FwdGlvbiwgY29uc3QgQ0ZTdHJpbmdSZWYpOworI2RlZmluZSBBVkNGTWVkaWFUeXBl
Q2xvc2VkQ2FwdGlvbiBnZXRfQVZDRk1lZGlhVHlwZUNsb3NlZENhcHRpb24oKQorCitTT0ZUX0xJ
TktfVkFSSUFCTEVfRExMX0lNUE9SVChBVkZvdW5kYXRpb25DRiwgQVZDRk1lZGlhVHlwZVZpZGVv
LCBjb25zdCBDRlN0cmluZ1JlZik7CisjZGVmaW5lIEFWQ0ZNZWRpYVR5cGVWaWRlbyBnZXRfQVZD
Rk1lZGlhVHlwZVZpZGVvKCkKKworU09GVF9MSU5LX1ZBUklBQkxFX0RMTF9JTVBPUlQoQVZGb3Vu
ZGF0aW9uQ0YsIEFWQ0ZQbGF5ZXJJdGVtRGlkUGxheVRvRW5kVGltZU5vdGlmaWNhdGlvbiwgY29u
c3QgQ0ZTdHJpbmdSZWYpOworI2RlZmluZSBBVkNGUGxheWVySXRlbURpZFBsYXlUb0VuZFRpbWVO
b3RpZmljYXRpb24gZ2V0X0FWQ0ZQbGF5ZXJJdGVtRGlkUGxheVRvRW5kVGltZU5vdGlmaWNhdGlv
bigpCisKK1NPRlRfTElOS19WQVJJQUJMRV9ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNG
UGxheWVySXRlbUlzUGxheWJhY2tCdWZmZXJFbXB0eUNoYW5nZWROb3RpZmljYXRpb24sIGNvbnN0
IENGU3RyaW5nUmVmKTsKKyNkZWZpbmUgQVZDRlBsYXllckl0ZW1Jc1BsYXliYWNrQnVmZmVyRW1w
dHlDaGFuZ2VkTm90aWZpY2F0aW9uIGdldF9BVkNGUGxheWVySXRlbUlzUGxheWJhY2tCdWZmZXJF
bXB0eUNoYW5nZWROb3RpZmljYXRpb24oKQorCitTT0ZUX0xJTktfVkFSSUFCTEVfRExMX0lNUE9S
VChBVkZvdW5kYXRpb25DRiwgQVZDRlBsYXllckl0ZW1Jc1BsYXliYWNrQnVmZmVyRnVsbENoYW5n
ZWROb3RpZmljYXRpb24sIGNvbnN0IENGU3RyaW5nUmVmKTsKKyNkZWZpbmUgQVZDRlBsYXllckl0
ZW1Jc1BsYXliYWNrQnVmZmVyRnVsbENoYW5nZWROb3RpZmljYXRpb24gZ2V0X0FWQ0ZQbGF5ZXJJ
dGVtSXNQbGF5YmFja0J1ZmZlckZ1bGxDaGFuZ2VkTm90aWZpY2F0aW9uKCkKKworU09GVF9MSU5L
X1ZBUklBQkxFX0RMTF9JTVBPUlQoQVZGb3VuZGF0aW9uQ0YsIEFWQ0ZQbGF5ZXJJdGVtSXNQbGF5
YmFja0xpa2VseVRvS2VlcFVwQ2hhbmdlZE5vdGlmaWNhdGlvbiwgY29uc3QgQ0ZTdHJpbmdSZWYp
OworI2RlZmluZSBBVkNGUGxheWVySXRlbUlzUGxheWJhY2tMaWtlbHlUb0tlZXBVcENoYW5nZWRO
b3RpZmljYXRpb24gZ2V0X0FWQ0ZQbGF5ZXJJdGVtSXNQbGF5YmFja0xpa2VseVRvS2VlcFVwQ2hh
bmdlZE5vdGlmaWNhdGlvbigpCisKK1NPRlRfTElOS19WQVJJQUJMRV9ETExfSU1QT1JUKEFWRm91
bmRhdGlvbkNGLCBBVkNGUGxheWVySXRlbUxvYWRlZFRpbWVSYW5nZXNDaGFuZ2VkTm90aWZpY2F0
aW9uLCBjb25zdCBDRlN0cmluZ1JlZik7CisjZGVmaW5lIEFWQ0ZQbGF5ZXJJdGVtTG9hZGVkVGlt
ZVJhbmdlc0NoYW5nZWROb3RpZmljYXRpb24gZ2V0X0FWQ0ZQbGF5ZXJJdGVtTG9hZGVkVGltZVJh
bmdlc0NoYW5nZWROb3RpZmljYXRpb24oKQorCitTT0ZUX0xJTktfVkFSSUFCTEVfRExMX0lNUE9S
VChBVkZvdW5kYXRpb25DRiwgQVZDRlBsYXllckl0ZW1QcmVzZW50YXRpb25TaXplQ2hhbmdlZE5v
dGlmaWNhdGlvbiwgY29uc3QgQ0ZTdHJpbmdSZWYpOworI2RlZmluZSBBVkNGUGxheWVySXRlbVBy
ZXNlbnRhdGlvblNpemVDaGFuZ2VkTm90aWZpY2F0aW9uIGdldF9BVkNGUGxheWVySXRlbVByZXNl
bnRhdGlvblNpemVDaGFuZ2VkTm90aWZpY2F0aW9uKCkKKworU09GVF9MSU5LX1ZBUklBQkxFX0RM
TF9JTVBPUlQoQVZGb3VuZGF0aW9uQ0YsIEFWQ0ZQbGF5ZXJJdGVtU2Vla2FibGVUaW1lUmFuZ2Vz
Q2hhbmdlZE5vdGlmaWNhdGlvbiwgY29uc3QgQ0ZTdHJpbmdSZWYpOworI2RlZmluZSBBVkNGUGxh
eWVySXRlbVNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWROb3RpZmljYXRpb24gZ2V0X0FWQ0ZQbGF5
ZXJJdGVtU2Vla2FibGVUaW1lUmFuZ2VzQ2hhbmdlZE5vdGlmaWNhdGlvbigpCisKK1NPRlRfTElO
S19WQVJJQUJMRV9ETExfSU1QT1JUKEFWRm91bmRhdGlvbkNGLCBBVkNGUGxheWVySXRlbVN0YXR1
c0NoYW5nZWROb3RpZmljYXRpb24sIGNvbnN0IENGU3RyaW5nUmVmKTsKKyNkZWZpbmUgQVZDRlBs
YXllckl0ZW1TdGF0dXNDaGFuZ2VkTm90aWZpY2F0aW9uIGdldF9BVkNGUGxheWVySXRlbVN0YXR1
c0NoYW5nZWROb3RpZmljYXRpb24oKQorCitTT0ZUX0xJTktfVkFSSUFCTEVfRExMX0lNUE9SVChB
VkZvdW5kYXRpb25DRiwgQVZDRlBsYXllckl0ZW1UcmFja3NDaGFuZ2VkTm90aWZpY2F0aW9uLCBj
b25zdCBDRlN0cmluZ1JlZik7CisjZGVmaW5lIEFWQ0ZQbGF5ZXJJdGVtVHJhY2tzQ2hhbmdlZE5v
dGlmaWNhdGlvbiBnZXRfQVZDRlBsYXllckl0ZW1UcmFja3NDaGFuZ2VkTm90aWZpY2F0aW9uKCkK
KworU09GVF9MSU5LX1ZBUklBQkxFX0RMTF9JTVBPUlQoQVZGb3VuZGF0aW9uQ0YsIEFWQ0ZQbGF5
ZXJSYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgY29uc3QgQ0ZTdHJpbmdSZWYpOworI2RlZmluZSBB
VkNGUGxheWVyUmF0ZUNoYW5nZWROb3RpZmljYXRpb24gZ2V0X0FWQ0ZQbGF5ZXJSYXRlQ2hhbmdl
ZE5vdGlmaWNhdGlvbigpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQVZGb3VuZGF0aW9uQ0ZTb2Z0TGlua2luZy5o
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ29yZU1lZGlhU29m
dExpbmtpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vY2YvQ29yZU1lZGlhU29mdExpbmtpbmcuaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9Db3JlTWVk
aWFTb2Z0TGlua2luZy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCisKKy8vIFNvZnQtbGluayBhZ2FpbnN0IENvcmVNZWRp
YSBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcyByZXF1aXJlZCBieSBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25DRi5jcHAuCisKKyNpZmRlZiBERUJVR19BTEwKK1NPRlRfTElOS19ERUJVR19M
SUJSQVJZKENvcmVNZWRpYSkKKyNlbHNlCitTT0ZUX0xJTktfTElCUkFSWShDb3JlTWVkaWEpCisj
ZW5kaWYKKworLy8gRnVuY3Rpb25zCisKK1NPRlRfTElOS19ETExfSU1QT1JUKENvcmVNZWRpYSwg
Q01UaW1lQWRkLCBDTVRpbWUsIF9fY2RlY2wsIChDTVRpbWUgYWRkZW5kMSwgQ01UaW1lIGFkZGVu
ZDIpLCAoYWRkZW5kMSwgYWRkZW5kMikpCisjZGVmaW5lIENNVGltZUFkZCBzb2Z0TGlua19DTVRp
bWVBZGQKKworU09GVF9MSU5LX0RMTF9JTVBPUlQoQ29yZU1lZGlhLCBDTVRpbWVDb21wYXJlLCBp
bnQzMl90LCBfX2NkZWNsLCAoQ01UaW1lIHRpbWUxLCBDTVRpbWUgdGltZTIpLCAodGltZTEsIHRp
bWUyKSkKKyNkZWZpbmUgQ01UaW1lQ29tcGFyZSBzb2Z0TGlua19DTVRpbWVDb21wYXJlCisKK1NP
RlRfTElOS19ETExfSU1QT1JUKENvcmVNZWRpYSwgQ01UaW1lR2V0U2Vjb25kcywgRmxvYXQ2NCwg
X19jZGVjbCwgKENNVGltZSB0aW1lKSwgKHRpbWUpKQorI2RlZmluZSBDTVRpbWVHZXRTZWNvbmRz
IHNvZnRMaW5rX0NNVGltZUdldFNlY29uZHMKKworU09GVF9MSU5LX0RMTF9JTVBPUlQoQ29yZU1l
ZGlhLCBDTVRpbWVNYWtlLCBDTVRpbWUsIF9fY2RlY2wsIChpbnQ2NF90IHZhbHVlLCBpbnQzMl90
IHRpbWVzY2FsZSksICh2YWx1ZSwgdGltZXNjYWxlKSkKKyNkZWZpbmUgQ01UaW1lTWFrZSBzb2Z0
TGlua19DTVRpbWVNYWtlCisKK1NPRlRfTElOS19ETExfSU1QT1JUKENvcmVNZWRpYSwgQ01UaW1l
TWFrZUZyb21EaWN0aW9uYXJ5LCBDTVRpbWUsIF9fY2RlY2wsIChDRkRpY3Rpb25hcnlSZWYgZGlj
dCksIChkaWN0KSkKKyNkZWZpbmUgQ01UaW1lTWFrZUZyb21EaWN0aW9uYXJ5IHNvZnRMaW5rX0NN
VGltZU1ha2VGcm9tRGljdGlvbmFyeQorCitTT0ZUX0xJTktfRExMX0lNUE9SVChDb3JlTWVkaWEs
IENNVGltZU1ha2VXaXRoU2Vjb25kcywgQ01UaW1lLCBfX2NkZWNsLCAoRmxvYXQ2NCBzZWNvbmRz
LCBpbnQzMl90IHByZWZlcnJlZFRpbWVTY2FsZSksIChzZWNvbmRzLCBwcmVmZXJyZWRUaW1lU2Nh
bGUpKQorI2RlZmluZSBDTVRpbWVNYWtlV2l0aFNlY29uZHMgc29mdExpbmtfQ01UaW1lTWFrZVdp
dGhTZWNvbmRzCisKKy8vIFZhcmlhYmxlcworCitTT0ZUX0xJTktfVkFSSUFCTEVfRExMX0lNUE9S
VChDb3JlTWVkaWEsIGtDTVRpbWVaZXJvLCBjb25zdCBDTVRpbWUpOworI2RlZmluZSBrQ01UaW1l
WmVybyBnZXRfa0NNVGltZVplcm8oKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NvcmVNZWRpYVNvZnRMaW5raW5n
LmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGLmNwcAkocmV2aXNpb24gOTMzMDQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSwyNiArNTEsMTMgQEAKICNpbmNsdWRlIDx3dGYv
VGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKLSNpZmRlZiBERUJV
R19BTEwKLS8vIEZJWE1FOiBBVkZvdW5kYXRpb25DRiBkb2Vzbid0IGN1cnJlbnRseSBkZWxpdmVy
IGEgZGVidWcgdmVyc2lvbi4KLSNwcmFnbWEgY29tbWVudChsaWIsICJBVkZvdW5kYXRpb25DRi5s
aWIiKQotI3ByYWdtYSBjb21tZW50KGxpYiwgIkNvcmVNZWRpYV9kZWJ1Zy5saWIiKQotI3ByYWdt
YSBjb21tZW50KGxpYiwgImxpYmRpc3BhdGNoX2RlYnVnLmxpYiIpCisvLyBUaGUgc29mdGxpbmsg
aGVhZGVyIGZpbGVzIG11c3QgYmUgaW5jbHVkZWQgYWZ0ZXIgdGhlIEFWQ0YgYW5kIENvcmVNZWRp
YSBoZWFkZXIgZmlsZXMuCisjaW5jbHVkZSAiQVZGb3VuZGF0aW9uQ0ZTb2Z0TGlua2luZy5oIgor
I2luY2x1ZGUgIkNvcmVNZWRpYVNvZnRMaW5raW5nLmgiCiAKLS8vIFVzZSB0aGUgc29mdCBsaW5r
IG1hY3JvcyBzbyB3ZSBjYW4gZWFzaWx5IHRlc3QgZm9yIHRoZSBleGlzdGVuY2Ugb2YgdGhlIGRs
bHMuCi0vLyBGSVhNRTogQVZGb3VuZGF0aW9uQ0YgZG9lc24ndCBjdXJyZW50bHkgZGVsaXZlciBh
IGRlYnVnIHZlcnNpb24uCi1TT0ZUX0xJTktfTElCUkFSWShBVkZvdW5kYXRpb25DRikKLVNPRlRf
TElOS19ERUJVR19MSUJSQVJZKENvcmVNZWRpYSkKLSNlbHNlCi0jcHJhZ21hIGNvbW1lbnQobGli
LCAiQVZGb3VuZGF0aW9uQ0YubGliIikKLSNwcmFnbWEgY29tbWVudChsaWIsICJDb3JlTWVkaWEu
bGliIikKKy8vIFdlIGRvbid0IGJvdGhlciBzb2Z0bGlua2luZyBhZ2FpbnN0IGxpYmRpc3BhdGNo
IHNpbmNlIGl0J3MgYWxyZWFkeSBiZWVuIGxvYWRlZCBieSBBQVMuCiAjcHJhZ21hIGNvbW1lbnQo
bGliLCAibGliZGlzcGF0Y2gubGliIikKIAotLy8gVXNlIHRoZSBzb2Z0IGxpbmsgbWFjcm9zIHNv
IHdlIGNhbiBlYXNpbHkgdGVzdCBmb3IgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgZGxscy4KLVNPRlRf
TElOS19MSUJSQVJZKEFWRm91bmRhdGlvbkNGKQotU09GVF9MSU5LX0xJQlJBUlkoQ29yZU1lZGlh
KQotI2VuZGlmIC8vIERFQlVHX0FMTAotCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU29mdExpbmtp
bmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU29mdExpbmtp
bmcuaAkocmV2aXNpb24gOTMzMDQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU29m
dExpbmtpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNzksNCArNzksNDIgQEAKICAgICAgICAgcmV0
dXJuIHB0cjsgXAogICAgIH1cCiAKKy8qCisgICAgSW4gb3JkZXIgdG8gc29mdCBsaW5rIGFnYWlu
c3QgZnVuY3Rpb25zIGRlY29yYXRlZCB3aXRoIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSwgd2UgcHJl
cGVuZCAic29mdExpbmtfIiB0byB0aGUgZnVuY3Rpb24gbmFtZXMuCisgICAgSWYgeW91IHVzZSBT
T0ZUX0xJTktfRExMX0lNUE9SVCgpLCB5b3Ugd2lsbCBhbHNvIG5lZWQgdG8gI2RlZmluZSB0aGUg
ZnVuY3Rpb24gbmFtZSB0byBhY2NvdW50IGZvciB0aGlzLCBlLmcuOgorICAgIAorICAgIFNPRlRf
TElOS19ETExfSU1QT1JUKG15TGlicmFyeSwgbXlGdW5jdGlvbiwgLi4uKQorICAgICNkZWZpbmUg
bXlGdW5jdGlvbiBzb2Z0TGlua19teUZ1bmN0aW9uCisqLyAKKyNkZWZpbmUgU09GVF9MSU5LX0RM
TF9JTVBPUlQobGlicmFyeSwgZnVuY3Rpb25OYW1lLCByZXN1bHRUeXBlLCBjYWxsaW5nQ29udmVu
dGlvbiwgcGFyYW1ldGVyRGVjbGFyYXRpb25zLCBwYXJhbWV0ZXJOYW1lcykgXAorICAgIHN0YXRp
YyByZXN1bHRUeXBlIGNhbGxpbmdDb252ZW50aW9uIGluaXQjI2Z1bmN0aW9uTmFtZSBwYXJhbWV0
ZXJEZWNsYXJhdGlvbnM7IFwKKyAgICBzdGF0aWMgcmVzdWx0VHlwZShjYWxsaW5nQ29udmVudGlv
bipzb2Z0TGluayMjZnVuY3Rpb25OYW1lKSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnMgPSBpbml0IyNm
dW5jdGlvbk5hbWU7IFwKKyAgICBcCisgICAgc3RhdGljIHJlc3VsdFR5cGUgY2FsbGluZ0NvbnZl
bnRpb24gaW5pdCMjZnVuY3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0aW9ucyBcCisgICAgeyBc
CisgICAgICAgIHNvZnRMaW5rIyNmdW5jdGlvbk5hbWUgPSByZWludGVycHJldF9jYXN0PHJlc3Vs
dFR5cGUgKGNhbGxpbmdDb252ZW50aW9uKilwYXJhbWV0ZXJEZWNsYXJhdGlvbnM+KFNPRlRfTElO
S19HRVRQUk9DQUREUkVTUyhsaWJyYXJ5IyNMaWJyYXJ5KCksICNmdW5jdGlvbk5hbWUpKTsgXAor
ICAgICAgICBBU1NFUlQoc29mdExpbmsjI2Z1bmN0aW9uTmFtZSk7IFwKKyAgICAgICAgcmV0dXJu
IHNvZnRMaW5rIyNmdW5jdGlvbk5hbWUgcGFyYW1ldGVyTmFtZXM7IFwKKyAgICB9XAorICAgIFwK
KyAgICBpbmxpbmUgcmVzdWx0VHlwZSBzb2Z0TGlua18jI2Z1bmN0aW9uTmFtZSBwYXJhbWV0ZXJE
ZWNsYXJhdGlvbnMgXAorICAgIHtcCisgICAgICAgIHJldHVybiBzb2Z0TGluayMjZnVuY3Rpb25O
YW1lIHBhcmFtZXRlck5hbWVzOyBcCisgICAgfQorCisvKgorICAgIFZhcmlhYmxlcyBleHBvcnRl
ZCBieSBhIERMTCBuZWVkIHRvIGJlIGFjY2Vzc2VkIHRocm91Z2ggYSBmdW5jdGlvbi4KKyAgICBJ
ZiB5b3UgdXNlIFNPRlRfTElOS19WQVJJQUJMRV9ETExfSU1QT1JUKCksIHlvdSB3aWxsIGFsc28g
bmVlZCB0byAjZGVmaW5lIHRoZSB2YXJpYWJsZSBuYW1lIHRvIGFjY291bnQgZm9yIHRoaXMsIGUu
Zy46CisgICAgCisgICAgU09GVF9MSU5LX1ZBUklBQkxFX0RMTF9JTVBPUlQobXlMaWJyYXJ5LCBt
eVZhciwgaW50KQorICAgICNkZWZpbmUgbXlWYXIgZ2V0X215VmFyKCkKKyovIAorI2RlZmluZSBT
T0ZUX0xJTktfVkFSSUFCTEVfRExMX0lNUE9SVChsaWJyYXJ5LCB2YXJpYWJsZU5hbWUsIHZhcmlh
YmxlVHlwZSkgXAorICAgIHN0YXRpYyB2YXJpYWJsZVR5cGUgZ2V0XyMjdmFyaWFibGVOYW1lKCkg
XAorICAgIHsgXAorICAgICAgICBzdGF0aWMgdmFyaWFibGVUeXBlKiBwdHIgPSByZWludGVycHJl
dF9jYXN0PHZhcmlhYmxlVHlwZSo+KFNPRlRfTElOS19HRVRQUk9DQUREUkVTUyhsaWJyYXJ5IyNM
aWJyYXJ5KCksICN2YXJpYWJsZU5hbWUpKTsgXAorICAgICAgICBBU1NFUlQocHRyKTsgXAorICAg
ICAgICByZXR1cm4gKnB0cjsgXAorICAgIH1cCisKICNlbmRpZiAvLyBTb2Z0TGlua2luZ19oCg==
</data>
<flag name="review"
          id="100226"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>