<?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>193815</bug_id>
          
          <creation_ts>2019-01-24 22:32:10 -0800</creation_ts>
          <short_desc>Move soft-linking of Lookup.framework out of LookupSPI.h</short_desc>
          <delta_ts>2019-02-11 21:08:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=193750</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>194529</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1498146</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-01-24 22:32:10 -0800</bug_when>
    <thetext>Move soft-linking of Lookup.framework out of LookupSPI.h.

Header should never soft-link frameworks or libraries since that code can be included in multiple translation units (source files), causing duplicate code to be generated.  See Bug 193750 for a new check-webkit-style check that flags this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498147</commentid>
    <comment_count>1</comment_count>
      <attachid>360083</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-01-24 22:38:28 -0800</bug_when>
    <thetext>Created attachment 360083
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498148</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-24 22:39:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/47540816&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498161</commentid>
    <comment_count>3</comment_count>
      <attachid>360083</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-24 23:54:03 -0800</bug_when>
    <thetext>Comment on attachment 360083
Patch v1

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

&gt; Source/WTF/wtf/cocoa/SoftLinking.h:632
&gt; +#define SOFT_LINK_VARIABLE_MAY_FAIL_FOR_HEADER(functionNamespace, framework, variableName, variableType) \

&apos;Variable&apos;?! Why is this different from SOFT_LINK_CONSTANT_*? (I&apos;m too lazy to compare)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498291</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-01-25 10:15:37 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #3)
&gt; Comment on attachment 360083 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=360083&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/cocoa/SoftLinking.h:632
&gt; &gt; +#define SOFT_LINK_VARIABLE_MAY_FAIL_FOR_HEADER(functionNamespace, framework, variableName, variableType) \
&gt; 
&gt; &apos;Variable&apos;?! Why is this different from SOFT_LINK_CONSTANT_*? (I&apos;m too lazy
&gt; to compare)

I made a bad design decision when implementing the SOFT_LINK_CONSTANT*() macros, which was to include a local declaration of the constant like this:

#define SOFT_LINK_CONSTANT_FOR_HEADER(functionNamespace, framework, variableName, variableType) \
    WTF_EXTERN_C_BEGIN \
    extern const variableType variableName; \
    WTF_EXTERN_C_END \
    namespace functionNamespace { \
    variableType get_##framework##_##variableName(); \
    }

If that declaration exactly doesn&apos;t match the original (either in an *SPI.h header or the &quot;real&quot; header), then we get compiler warnings-as-errors.

Furthermore, the actual soft-linking code doesn&apos;t care about `const` keywords in the `variableType`, so to keep the declaration and keep the macros working, we&apos;d need two different types (one that includes the original `const` keywords and one that doesn&apos;t).

The simple fix is to separate concerns and let the declaration reside in an *SPI.h header or the &quot;real&quot; header, and remove the declaration from the SOFT_LINK_CONSTANT*() macros.  (I tried it and the macOS Release build didn&apos;t break, so I&apos;ll make that change along with this patch.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498311</commentid>
    <comment_count>5</comment_count>
      <attachid>360124</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-01-25 10:48:32 -0800</bug_when>
    <thetext>Created attachment 360124
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498385</commentid>
    <comment_count>6</comment_count>
      <attachid>360124</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-25 12:24:19 -0800</bug_when>
    <thetext>Comment on attachment 360124
Patch v2

Clearing flags on attachment: 360124

Committed r240494: &lt;https://trac.webkit.org/changeset/240494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498386</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-25 12:24:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360083</attachid>
            <date>2019-01-24 22:38:28 -0800</date>
            <delta_ts>2019-01-25 10:48:31 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-193815-20190124223827.patch</filename>
            <type>text/plain</type>
            <size>28808</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRmYmM3ODYwNjhkMzk2MmUyNWYwYzI2
OTdhMWQwN2RkZTQ1OGEyNWMuLjVkZDFiNDQ5M2MwMmQ2ZWUwMzIwOGUzYjFhZDJiNDcyZTJiYzM1
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDEtMjQgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHNvZnQtbGlua2luZyBvZiBMb29rdXAuZnJh
bWV3b3JrIG91dCBvZiBMb29rdXBTUEkuaAorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTkzODE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd3RmL2NvY29hL1NvZnRMaW5raW5nLmg6CisgICAgICAgIChTT0ZUX0xJTktfVkFSSUFCTEVf
TUFZX0ZBSUxfRk9SX0hFQURFUik6IEFkZC4KKyAgICAgICAgKFNPRlRfTElOS19WQVJJQUJMRV9N
QVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKTogQWRkLgorICAgICAgICAoU09GVF9MSU5L
X1ZBUklBQkxFX01BWV9GQUlMX0ZPUl9TT1VSQ0UpOiBBZGQuCisgICAgICAgIC0gQWRkIG1hY3Jv
cyB1c2VkIHdoZW4gc29mdC1saW5raW5nIExvb2t1cC5mcmFtZXdvcmsuCisKIDIwMTktMDEtMjQg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBNb25vdG9u
aWNUaW1lIGluIFdvcmtlclJ1bkxvb3AKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNzQzMGJkYmE4MzJhMTg2MGUx
ZWNlNzIwOTM1YmVmMzM0M2Q1YjQwLi43NjJmZDA0YzhiZjVlZGNhNjVlZTRiZDU0NDhiODg0ZmVi
YjgzZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMDEtMjQgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHNvZnQtbGlua2luZyBv
ZiBMb29rdXAuZnJhbWV3b3JrIG91dCBvZiBMb29rdXBTUEkuaAorICAgICAgICA8aHR0cHM6Ly93
ZWJraXQub3JnL2IvMTkzODE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZWRpdGluZy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tOgorICAgICAg
ICAtIFJlbW92ZSB1bnVzZWQgaGVhZGVyLgorCisgICAgICAgICogZWRpdGluZy9tYWMvRGljdGlv
bmFyeUxvb2t1cExlZ2FjeS5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRva2VuUmFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6c2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250cm9sbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OmhpZGVQb3B1cCk6CisgICAgICAgIC0g
TW92ZSBzb2Z0LWxpbmtpbmcgdG8gTG9va3VwU29mdExpbmsue2gsbW19LgorCiAyMDE5LTAxLTI0
ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBBZCBD
bGljayBBdHRyaWJ1dGlvbiBhcyBhbiBpbnRlcm5hbC9leHBlcmltZW50YWwgZmVhdHVyZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKaW5kZXggZWE0OTA2MGQ1ODVmYjgyZTQzZjc5Yzk4MzA2NmI0ZTE5NTQ5NjNm
MS4uZTZiMzFhNzJkZGM1NDMwYWRjMGRjYjc5MzBiODA4YzRkMTA2YTJmOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMDEtMjQgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHNvZnQtbGlua2luZyBvZiBMb29rdXAuZnJh
bWV3b3JrIG91dCBvZiBMb29rdXBTUEkuaAorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTkzODE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFsL1BsYXRmb3Jt
TWFjLmNtYWtlOgorICAgICAgICAtIEFkZCBMb29rdXBTb2Z0TGluay57aCxtbX0gZmlsZXMgdG8g
dGhlIHByb2plY3QuCisKKyAgICAgICAgKiBwYWwvbWFjL0xvb2t1cFNvZnRMaW5rLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9Mb29rdXBTUEkuaC4KKyAgICAg
ICAgKiBwYWwvbWFjL0xvb2t1cFNvZnRMaW5rLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9tYWMvTG9va3VwU1BJLmguCisgICAgICAgIC0gTWlncmF0ZSBzb2Z0LWxp
bmtpbmcgZnJvbSBMb29rdXBTUEkuaCB0byBoZXJlLgorCisgICAgICAgICogcGFsL3NwaS9tYWMv
TG9va3VwU1BJLmg6CisgICAgICAgIC0gUmVwbGFjZSBzb2Z0LWxpbmtpbmcgb2YgTG9va3VwLmZy
YW1ld29yayB3aXRoCisgICAgICAgICAgTG9va3VwU29mdExpbmsuaC4KKwogMjAxOS0wMS0yNCAg
Um9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgTW92ZSBG
aWxlU3lzdGVtIHRvIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MmRiYWM1ZjhmNGQ2ZjM5MGNiMWNkMWIxZTQ2
ZWQzYjkwNzUwNzkxLi5lYTdhNDc4OWEzYjQwNDE1ZDU0MGM0OGU1NGJlZGYzNWIwY2VhMWRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAxLTI0ICBEYXZpZCBLaWx6ZXIgIDxkZGtp
bHplckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBzb2Z0LWxpbmtpbmcgb2YgTG9va3VwLmZy
YW1ld29yayBvdXQgb2YgTG9va3VwU1BJLmgKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9i
LzE5MzgxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKC1bV0tXaW5kb3dW
aXNpYmlsaXR5T2JzZXJ2ZXIgZGVhbGxvY10pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxp
dHlPYnNlcnZlciBzdGFydE9ic2VydmluZ0xvb2t1cERpc21pc3NhbElmTmVlZGVkXSk6CisgICAg
ICAgIC0gTW92ZSBzb2Z0LWxpbmtpbmcgdG8gTG9va3VwU29mdExpbmsue2gsbW19LgorCiAyMDE5
LTAxLTI0ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBBZCBDbGljayBBdHRyaWJ1dGlvbiBhcyBhbiBpbnRlcm5hbC9leHBlcmltZW50YWwgZmVhdHVy
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDI0NzM5MWVkNTFhMmRkODI5YWY1YTRk
ODVhZjc5YzM2MzI2MGM5MzMuLjRkN2E0MGUwNGQxY2NiNjI1ZWZjYjg1ODAxY2VhNzlmNGY3MmZh
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0w
MS0yNCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUg
c29mdC1saW5raW5nIG9mIExvb2t1cC5mcmFtZXdvcmsgb3V0IG9mIExvb2t1cFNQSS5oCisgICAg
ICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xOTM4MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNv
bnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2Fu
aW1hdGlvbkNvbnRyb2xsZXJGb3JUZXh0XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cF0pOgorICAg
ICAgICAtIE1vdmUgc29mdC1saW5raW5nIHRvIExvb2t1cFNvZnRMaW5rLntoLG1tfS4KKwogMjAx
OS0wMS0yNCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgQWQgQ2xpY2sgQXR0cmlidXRpb24gYXMgYW4gaW50ZXJuYWwvZXhwZXJpbWVudGFsIGZlYXR1
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1NvZnRMaW5raW5nLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9jb2NvYS9Tb2Z0TGlua2luZy5oCmluZGV4IDFhZmFiNWJmNTFmMWQxOTAwMTE5
ZGEzZWM2ZmFlNzE2YWY3MTE5MDAuLjBkMjY3MmNiNjdmMTdiNDA4MDM4ZGE2OGVjMmFmMzkyYjk1
NzMyZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1NvZnRMaW5raW5nLmgKKysr
IGIvU291cmNlL1dURi93dGYvY29jb2EvU29mdExpbmtpbmcuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYyOCwzICs2MjgsNDcg
QEAKICAgICAgICAgcmV0dXJuIHZhcmlhYmxlIyNmcmFtZXdvcmsjI3ZhcmlhYmxlTmFtZTsgXAog
ICAgIH0gXAogICAgIH0KKworI2RlZmluZSBTT0ZUX0xJTktfVkFSSUFCTEVfTUFZX0ZBSUxfRk9S
X0hFQURFUihmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCB2YXJpYWJsZU5hbWUsIHZhcmlh
YmxlVHlwZSkgXAorICAgIFdURl9FWFRFUk5fQ19CRUdJTiBcCisgICAgZXh0ZXJuIHZhcmlhYmxl
VHlwZSB2YXJpYWJsZU5hbWU7IFwKKyAgICBXVEZfRVhURVJOX0NfRU5EIFwKKyAgICBuYW1lc3Bh
Y2UgZnVuY3Rpb25OYW1lc3BhY2UgeyBcCisgICAgYm9vbCBjYW5Mb2FkXyMjZnJhbWV3b3JrIyNf
IyN2YXJpYWJsZU5hbWUoKTsgXAorICAgIGJvb2wgaW5pdF8jI2ZyYW1ld29yayMjXyMjdmFyaWFi
bGVOYW1lKCk7IFwKKyAgICBfUHJhZ21hKCJjbGFuZyBkaWFnbm9zdGljIHB1c2giKSBcCisgICAg
X1ByYWdtYSgiY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkIFwiLVdpZ25vcmVkLXF1YWxpZmllcnNc
IiIpIFwKKyAgICB2YXJpYWJsZVR5cGUgZ2V0XyMjZnJhbWV3b3JrIyNfIyN2YXJpYWJsZU5hbWUo
KTsgXAorICAgIF9QcmFnbWEoImNsYW5nIGRpYWdub3N0aWMgcG9wIikgXAorICAgIH0KKworI2Rl
ZmluZSBTT0ZUX0xJTktfVkFSSUFCTEVfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChm
dW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCB2YXJpYWJsZU5hbWUsIHZhcmlhYmxlVHlwZSwg
ZXhwb3J0KSBcCisgICAgV1RGX0VYVEVSTl9DX0JFR0lOIFwKKyAgICBleHRlcm4gdmFyaWFibGVU
eXBlIHZhcmlhYmxlTmFtZTsgXAorICAgIFdURl9FWFRFUk5fQ19FTkQgXAorICAgIG5hbWVzcGFj
ZSBmdW5jdGlvbk5hbWVzcGFjZSB7IFwKKyAgICBzdGF0aWMgdmFyaWFibGVUeXBlIGNvbnN0YW50
IyNmcmFtZXdvcmsjI3ZhcmlhYmxlTmFtZTsgXAorICAgIGJvb2wgaW5pdF8jI2ZyYW1ld29yayMj
XyMjdmFyaWFibGVOYW1lKCk7IFwKKyAgICBib29sIGluaXRfIyNmcmFtZXdvcmsjI18jI3Zhcmlh
YmxlTmFtZSgpIFwKKyAgICB7IFwKKyAgICAgICAgdm9pZCogY29uc3RhbnQgPSBkbHN5bShmcmFt
ZXdvcmsjI0xpYnJhcnkoKSwgI3ZhcmlhYmxlTmFtZSk7IFwKKyAgICAgICAgaWYgKCFjb25zdGFu
dCkgXAorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyBcCisgICAgICAgIGNvbnN0YW50IyNmcmFt
ZXdvcmsjI3ZhcmlhYmxlTmFtZSA9ICpzdGF0aWNfY2FzdDx2YXJpYWJsZVR5cGUgY29uc3QgKj4o
Y29uc3RhbnQpOyBcCisgICAgICAgIHJldHVybiB0cnVlOyBcCisgICAgfSBcCisgICAgZXhwb3J0
IGJvb2wgY2FuTG9hZF8jI2ZyYW1ld29yayMjXyMjdmFyaWFibGVOYW1lKCk7IFwKKyAgICBib29s
IGNhbkxvYWRfIyNmcmFtZXdvcmsjI18jI3ZhcmlhYmxlTmFtZSgpIFwKKyAgICB7IFwKKyAgICAg
ICAgc3RhdGljIGJvb2wgbG9hZGVkID0gaW5pdF8jI2ZyYW1ld29yayMjXyMjdmFyaWFibGVOYW1l
KCk7IFwKKyAgICAgICAgcmV0dXJuIGxvYWRlZDsgXAorICAgIH0gXAorICAgIGV4cG9ydCB2YXJp
YWJsZVR5cGUgZ2V0XyMjZnJhbWV3b3JrIyNfIyN2YXJpYWJsZU5hbWUoKTsgXAorICAgIHZhcmlh
YmxlVHlwZSBnZXRfIyNmcmFtZXdvcmsjI18jI3ZhcmlhYmxlTmFtZSgpIFwKKyAgICB7IFwKKyAg
ICAgICAgcmV0dXJuIGNvbnN0YW50IyNmcmFtZXdvcmsjI3ZhcmlhYmxlTmFtZTsgXAorICAgIH0g
XAorICAgIH0KKworI2RlZmluZSBTT0ZUX0xJTktfVkFSSUFCTEVfTUFZX0ZBSUxfRk9SX1NPVVJD
RShmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCB2YXJpYWJsZU5hbWUsIHZhcmlhYmxlVHlw
ZSkgXAorICAgIFNPRlRfTElOS19WQVJJQUJMRV9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKGZ1bmN0aW9uTmFtZXNwYWNlLCBmcmFtZXdvcmssIHZhcmlhYmxlTmFtZSwgdmFyaWFibGVU
eXBlLCApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZDE2NGE0YzcyYWRiOGQ1ZGMwZDYwNGRlOGI2ZDFlNTU1Yzc1MjE1Zi4uYzMy
ZTEwZjZjMzcyMGI2Njc5MGI3ODdmNGU0NjVlOTJmMWFkZTNkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE0LDYgKzExNCw4
IEBACiAJCTQ0Mjk1NkNEMjE4QTcyREYwMDgwREI1NCAvKiBSZXZlYWxTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0Mjk1NkNDMjE4QTcyREUwMDgw
REI1NCAvKiBSZXZlYWxTUEkuaCAqLzsgfTsKIAkJNDQ1MEZDOUYyMUY1RjYwMjAwNERGQTU2IC8q
IFF1aWNrTG9va1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDQ1MEZDOUQyMUY1RjYwMjAwNERGQTU2IC8qIFF1aWNrTG9va1NvZnRMaW5r
Lm1tICovOyB9OwogCQk0NDUwRkNBMDIxRjVGNjAyMDA0REZBNTYgLyogUXVpY2tMb29rU29mdExp
bmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NTBG
QzlFMjFGNUY2MDIwMDRERkE1NiAvKiBRdWlja0xvb2tTb2Z0TGluay5oICovOyB9OworCQk0NEUx
QThBRjIxRkE1NEU2MDBDMzA0OEUgLyogTG9va3VwU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0RTFBOEFEMjFGQTU0REEwMEMzMDQ4RSAv
KiBMb29rdXBTb2Z0TGluay5oICovOyB9OworCQk0NEUxQThCMDIxRkE1NEVCMDBDMzA0OEUgLyog
TG9va3VwU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NEUxQThBRTIxRkE1NERBMDBDMzA0OEUgLyogTG9va3VwU29mdExpbmsubW0gKi87
IH07CiAJCTU3MEFCOEYxMjBBRTJFOEQwMEI4QkU4NyAvKiBTZWNLZXlQcm94eVNQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwQUI4RjAyMEFFMkU4
RDAwQjhCRTg3IC8qIFNlY0tleVByb3h5U1BJLmggKi87IH07CiAJCTU3MEFCOEY5MjBBRjZFM0Qw
MEI4QkU4NyAvKiBOU1hQQ0Nvbm5lY3Rpb25TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MEFCOEY4MjBBRjZFM0QwMEI4QkU4NyAvKiBOU1hQQ0Nv
bm5lY3Rpb25TUEkuaCAqLzsgfTsKIAkJNjNDN0VEQzcyMUFGQUUwNDAwNkE3Qjk5IC8qIE5TUHJv
Z3Jlc3NTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDYzRTM2OUY5MjFBRkE4M0YwMDFDMTRCQyAvKiBOU1Byb2dyZXNzU1BJLmggKi87IH07CkBAIC0y
NzMsNiArMjc1LDggQEAKIAkJNDQyOTU2Q0MyMThBNzJERTAwODBEQjU0IC8qIFJldmVhbFNQSS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXZlYWxTUEkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MEZDOUQyMUY1RjYwMjAwNERGQTU2IC8qIFF1aWNrTG9v
a1NvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUXVp
Y2tMb29rU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBGQzlF
MjFGNUY2MDIwMDRERkE1NiAvKiBRdWlja0xvb2tTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBRdWlja0xvb2tTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0NEUxQThBRDIxRkE1NERBMDBDMzA0OEUgLyogTG9va3VwU29mdExpbmsuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTG9va3VwU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDRFMUE4QUUyMUZBNTREQTAwQzMwNDhFIC8qIExvb2t1cFNvZnRMaW5rLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTG9va3VwU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3MEFCOEYwMjBBRTJFOEQwMEI4QkU4NyAvKiBTZWNLZXlQcm94eVNQSS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZWNLZXlQcm94eVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5TWFBDQ29ubmVjdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2M0UzNjlGOTIxQUZBODNGMDAxQzE0QkMgLyogTlNQcm9ncmVzc1NQSS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBOU1Byb2dyZXNzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01MTcsNiArNTIxLDcgQEAKIAkJCQkxQzQ4NzZERTFGOEQ4MzEzMDBDQ0VFQkQgLyogY29jb2Eg
Ki8sCiAJCQkJMUMwOUQwNTExRTMxQzQxMjAwNzI1RjE4IC8qIGNyeXB0byAqLywKIAkJCQkyRTg3
QzA2RTIxNUE5OTMxMDBENkNEMzIgLyogaW9zICovLAorCQkJCTQ0RTFBOEFDMjFGQTU0OEYwMEMz
MDQ4RSAvKiBtYWMgKi8sCiAJCQkJMEMyREEwNjUxRjMzQ0EzMzAwREJDMzE3IC8qIHNwaSAqLywK
IAkJCQlBMzc4OEU5RjFGMDVCN0NFMDA2Nzk0MjUgLyogc3lzdGVtICovLAogCQkJCUEzMEQ0MTFE
MUYwREQwQUMwMEI3MTk1NCAvKiB0ZXh0ICovLApAQCAtNTg1LDYgKzU5MCwxNSBAQAogCQkJcGF0
aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTQ0RTFBOEFDMjFG
QTU0OEYwMEMzMDQ4RSAvKiBtYWMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTQ0RTFBOEFEMjFGQTU0REEwMEMzMDQ4RSAvKiBMb29rdXBTb2Z0TGluay5o
ICovLAorCQkJCTQ0RTFBOEFFMjFGQTU0REEwMEMzMDQ4RSAvKiBMb29rdXBTb2Z0TGluay5tbSAq
LywKKwkJCSk7CisJCQlwYXRoID0gbWFjOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKIAkJQTMwRDQxMUQxRjBERDBBQzAwQjcxOTU0IC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzYwLDYgKzc3NCw3IEBACiAJCQkJQTNBQjZF
NjExRjNEMUUzOTAwOUMxNEIxIC8qIFNsZWVwRGlzYWJsZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTM3ODhFOTgxRjA1QjZDRTAwNjc5NDI1IC8qIFNvdW5kLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBMTE3NUI0OTFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0NEUxQThBRjIxRkE1NEU2MDBDMzA0OEUgLyogTG9va3VwU29mdExp
bmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTIxMUY0M0E0QzcwMDJFQUMwMiAvKiBTUUxp
dGUzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTMwOEIxNDIwQTIxNzA1MDAzRkI5MjkgLyog
U3lzdGVtUHJldmlld1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTNBQjZFNTgxRjNEMUREQjAw
OUMxNEIxIC8qIFN5c3RlbVNsZWVwTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLApAQCAtODc1LDYg
Kzg5MCw3IEBACiAJCQkJQTNBQjZFNTIxRjNEMURDNTAwOUMxNEIxIC8qIFNsZWVwRGlzYWJsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNBQjZFNjAxRjNEMUUzOTAwOUMxNEIxIC8qIFNsZWVw
RGlzYWJsZXJDb2NvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMzc4OEU5QzFGMDVCNzgyMDA2
Nzk0MjUgLyogU291bmQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDRFMUE4QjAyMUZBNTRFQjAw
QzMwNDhFIC8qIExvb2t1cFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTM3ODhFOUUx
RjA1Qjc4RTAwNjc5NDI1IC8qIFNvdW5kTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNBQjZF
NTcxRjNEMUREQjAwOUMxNEIxIC8qIFN5c3RlbVNsZWVwTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTNBQjZFNjUxRjNEMjE3RjAwOUMxNEIxIC8qIFN5c3RlbVNsZWVwTGlzdGVuZXJN
YWMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
UGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtTWFjLmNt
YWtlCmluZGV4IGYxMzA3Njg0M2Y4ODMxNmJjMzhiZDgwZGE3MmY0ODlhODIzNzYyOGMuLjEzMGE3
YjczZmE3ZmY0ZjFkZTIyNTdiMGRlNDgwMTlhNDYwYzlmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtNSw2ICs1LDggQEAgbGlzdChBUFBFTkQgUEFMX1BV
QkxJQ19IRUFERVJTCiAKICAgICBjb2NvYS9QYXNzS2l0U29mdExpbmsuaAogCisgICAgbWFjL0xv
b2t1cFNvZnRMaW5rLmgKKwogICAgIHNwaS9jZi9DRkxvY2FsZVNQSS5oCiAgICAgc3BpL2NmL0NG
TmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oCiAgICAgc3BpL2NmL0NGTmV0d29ya1NQSS5oCkBA
IC0xMDcsNiArMTA5LDggQEAgbGlzdChBUFBFTkQgUEFMX1NPVVJDRVMKIAogICAgIGNyeXB0by9j
b21tb25jcnlwdG8vQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcAogCisgICAgbWFjL0xvb2t1
cFNvZnRMaW5rLm1tCisKICAgICBzeXN0ZW0vY29jb2EvU2xlZXBEaXNhYmxlckNvY29hLmNwcAog
CiAgICAgc3lzdGVtL21hYy9DbG9ja0NNLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL21hYy9Mb29rdXBTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9tYWMv
TG9va3VwU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hN2QwZjllMzEwMjFjZjY5MDZjYzQyYzgzMGE3
ZDI0N2IyZTExYzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9t
YWMvTG9va3VwU29mdExpbmsuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0LTIwMTkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFBMQVRGT1JNKE1BQykKKworI2lt
cG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURF
UihQQUwsIExvb2t1cCkKK1NPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgTFVMb29rdXBE
ZWZpbml0aW9uTW9kdWxlKQorU09GVF9MSU5LX1ZBUklBQkxFX01BWV9GQUlMX0ZPUl9IRUFERVIo
UEFMLCBMb29rdXAsIExVVGVybU9wdGlvbkRpc2FibGVTZWFyY2hUZXJtSW5kaWNhdG9yLCBOU1N0
cmluZyAqIGNvbnN0KQorCisjaWYgIUVOQUJMRShSRVZFQUwpCitTT0ZUX0xJTktfVkFSSUFCTEVf
TUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIExvb2t1cCwgTFVOb3RpZmljYXRpb25Qb3BvdmVyV2ls
bENsb3NlLCBOU1N0cmluZyAqIGNvbnN0KQorI2VuZGlmCisKKyNlbmRpZiAvLyBQTEFURk9STShN
QUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL21hYy9Mb29rdXBTb2Z0TGlu
ay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvbWFjL0xvb2t1cFNvZnRMaW5rLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA0YTE3ZTY3NjYwMDU2ZmNiNmVmNWJlZjU1NDEwOTUxNzEyN2QyNjQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL21hYy9Mb29rdXBTb2Z0TGluay5tbQpA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisj
aW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JL
X0ZPUl9TT1VSQ0UoUEFMLCBMb29rdXApCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9PUFRJ
T05BTF9XSVRIX0VYUE9SVChQQUwsIExvb2t1cCwgTFVMb29rdXBEZWZpbml0aW9uTW9kdWxlLCBQ
QUxfRVhQT1JUKQorU09GVF9MSU5LX1ZBUklBQkxFX01BWV9GQUlMX0ZPUl9TT1VSQ0UoUEFMLCBM
b29rdXAsIExVVGVybU9wdGlvbkRpc2FibGVTZWFyY2hUZXJtSW5kaWNhdG9yLCBOU1N0cmluZyAq
KQorCisjaWYgIUVOQUJMRShSRVZFQUwpCitTT0ZUX0xJTktfVkFSSUFCTEVfTUFZX0ZBSUxfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIExvb2t1cCwgTFVOb3RpZmljYXRpb25Qb3BvdmVyV2ls
bENsb3NlLCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorI2VuZGlmCisKKyNlbmRpZiAvLyBQTEFU
Rk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTG9v
a3VwU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTG9va3VwU1BJLmgKaW5k
ZXggZTBhMzM3NWQzMGNjODg5ZjEzNWVhMmExMWQ0N2QwZGE5NGY5OGE4Ny4uODBhY2E4MDZmZDRl
ZmQ1ODVhMjliZDc2ZWU4ZmM5NzE5YTAwYmZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvbWFjL0xvb2t1cFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL21hYy9Mb29rdXBTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNC0yMDE5IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTIwLDE4ICsyMCwxNCBAQAogICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCi0KICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgorI2lt
cG9ydCA8cGFsL21hYy9Mb29rdXBTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNJ
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oPgotI2ltcG9ydCA8d3RmL1NvZnRM
aW5raW5nLmg+Ci0KLVNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChMb29rdXAp
Ci1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoTG9va3VwLCBMVUxvb2t1cERlZmluaXRpb25Nb2R1
bGUpCiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW0KaW5kZXggM2RiYTMzMDIzYWM3MTU1
NjVmY2IyZTMwODIwZjE2ODY5YTI2NWU2Ni4uZWEyODk1OWYzMjBjNDc1ZDQ5Y2I3M2Q4NzcxY2Ew
ODRlYjBiZmQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EaWN0
aW9uYXJ5TG9va3VwLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlv
bmFyeUxvb2t1cC5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQt
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTUwLDcgKzUwLDYgQEAKICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29y
ZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oPgogI2lt
cG9ydCA8cGFsL3NwaS9pb3MvVUlLaXRTUEkuaD4KLSNpbXBvcnQgPHBhbC9zcGkvbWFjL0xvb2t1
cFNQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0
Zi9SZWZQdHIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRGlj
dGlvbmFyeUxvb2t1cExlZ2FjeS5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rp
b25hcnlMb29rdXBMZWdhY3kubW0KaW5kZXggMGZlMzcwNGI1ZDY4ZDM3NGRlNzE4MThhMzg2M2My
YTQ2NzgzMzA4NC4uMTYxNTkwN2Q2OTExMGM2ODVmNzczMDczMThiYjJhNTU3MTk2OGE0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cExlZ2Fj
eS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9EaWN0aW9uYXJ5TG9va3VwTGVn
YWN5Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNDgsMTggKzQ4LDE2IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0
aW9ucy5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogCi1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUwoTG9va3VwLCBMVVRlcm1PcHRpb25EaXNhYmxlU2VhcmNoVGVybUluZGljYXRvciwgTlNT
dHJpbmcgKikKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgTlNSYW5nZSB0b2tlblJh
bmdlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBOU1JhbmdlIHJhbmdlLCBOU0RpY3Rpb25hcnkgKipv
cHRpb25zKQogewotICAgIGlmICghZ2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxlQ2xhc3MoKSkK
KyAgICBpZiAoIVBBTDo6Z2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxlQ2xhc3MoKSkKICAgICAg
ICAgcmV0dXJuIE5TTWFrZVJhbmdlKE5TTm90Rm91bmQsIDApOwogCiAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwogCi0gICAgcmV0dXJuIFtjbGFzc0xVTG9va3VwRGVmaW5pdGlvbk1v
ZHVsZSB0b2tlblJhbmdlRm9yU3RyaW5nOnN0cmluZyByYW5nZTpyYW5nZSBvcHRpb25zOm9wdGlv
bnNdOworICAgIHJldHVybiBbUEFMOjpnZXRMVUxvb2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygp
IHRva2VuUmFuZ2VGb3JTdHJpbmc6c3RyaW5nIHJhbmdlOnJhbmdlIG9wdGlvbnM6b3B0aW9uc107
CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCkBAIC0yMDYsNyArMjA0LDcgQEAg
c3RhdGljIGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+IHNob3dQb3B1
cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHIKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7CiAKLSAgICBpZiAoIWdldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkpCisgICAg
aWYgKCFQQUw6OmdldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkpCiAgICAgICAgIHJl
dHVybiBuaWw7CiAKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gbXV0YWJsZU9w
dGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOwpAQCAt
MjE1LDkgKzIxMyw5IEBAIHN0YXRpYyBpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250
cm9sbGVyPiBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRyCiAKICAgICBhdXRvIHRleHRJ
bmRpY2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGUoZGljdGlvbmFyeVBvcHVwSW5mby50ZXh0
SW5kaWNhdG9yKTsKIAotICAgIGlmIChjYW5Mb2FkTFVUZXJtT3B0aW9uRGlzYWJsZVNlYXJjaFRl
cm1JbmRpY2F0b3IoKSAmJiB0ZXh0SW5kaWNhdG9yLmdldCgpLmNvbnRlbnRJbWFnZSgpKSB7Cisg
ICAgaWYgKFBBTDo6Y2FuTG9hZF9Mb29rdXBfTFVUZXJtT3B0aW9uRGlzYWJsZVNlYXJjaFRlcm1J
bmRpY2F0b3IoKSAmJiB0ZXh0SW5kaWNhdG9yLmdldCgpLmNvbnRlbnRJbWFnZSgpKSB7CiAgICAg
ICAgIHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25DYWxsYmFjayh0ZXh0SW5kaWNhdG9yLmdldCgp
KTsKLSAgICAgICAgW211dGFibGVPcHRpb25zIHNldE9iamVjdDpAWUVTIGZvcktleTpnZXRMVVRl
cm1PcHRpb25EaXNhYmxlU2VhcmNoVGVybUluZGljYXRvcigpXTsKKyAgICAgICAgW211dGFibGVP
cHRpb25zIHNldE9iamVjdDpAWUVTIGZvcktleTpQQUw6OmdldF9Mb29rdXBfTFVUZXJtT3B0aW9u
RGlzYWJsZVNlYXJjaFRlcm1JbmRpY2F0b3IoKV07CiAKICAgICAgICAgRmxvYXRSZWN0IGZpcnN0
VGV4dFJlY3RJblZpZXdDb29yZGluYXRlcyA9IHRleHRJbmRpY2F0b3IuZ2V0KCkudGV4dFJlY3Rz
SW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcygpWzBdOwogICAgICAgICBGbG9hdFJlY3QgdGV4dEJv
dW5kaW5nUmVjdEluVmlld0Nvb3JkaW5hdGVzID0gdGV4dEluZGljYXRvci5nZXQoKS50ZXh0Qm91
bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCk7CkBAIC0yMjUsOSArMjIzLDkgQEAgc3Rh
dGljIGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+IHNob3dQb3B1cE9y
Q3JlYXRlQW5pbWF0aW9uQ29udHIKICAgICAgICAgICAgIHRleHRCb3VuZGluZ1JlY3RJblZpZXdD
b29yZGluYXRlcyA9IHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNrKHRleHRCb3VuZGlu
Z1JlY3RJblZpZXdDb29yZGluYXRlcyk7CiAgICAgICAgIGZpcnN0VGV4dFJlY3RJblZpZXdDb29y
ZGluYXRlcy5tb3ZlQnkodGV4dEJvdW5kaW5nUmVjdEluVmlld0Nvb3JkaW5hdGVzLmxvY2F0aW9u
KCkpOwogICAgICAgICBpZiAoY3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcikKLSAgICAgICAgICAg
IHJldHVybiBbZ2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxlQ2xhc3MoKSBsb29rdXBBbmltYXRp
b25Db250cm9sbGVyRm9yVGVybTpkaWN0aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcu
Z2V0KCkgcmVsYXRpdmVUb1JlY3Q6Zmlyc3RUZXh0UmVjdEluVmlld0Nvb3JkaW5hdGVzIG9mVmll
dzp2aWV3IG9wdGlvbnM6bXV0YWJsZU9wdGlvbnMuZ2V0KCldOworICAgICAgICAgICAgcmV0dXJu
IFtQQUw6OmdldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkgbG9va3VwQW5pbWF0aW9u
Q29udHJvbGxlckZvclRlcm06ZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nLmdl
dCgpIHJlbGF0aXZlVG9SZWN0OmZpcnN0VGV4dFJlY3RJblZpZXdDb29yZGluYXRlcyBvZlZpZXc6
dmlldyBvcHRpb25zOm11dGFibGVPcHRpb25zLmdldCgpXTsKIAotICAgICAgICBbZ2V0TFVMb29r
dXBEZWZpbml0aW9uTW9kdWxlQ2xhc3MoKSBzaG93RGVmaW5pdGlvbkZvclRlcm06ZGljdGlvbmFy
eVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nLmdldCgpIHJlbGF0aXZlVG9SZWN0OmZpcnN0VGV4
dFJlY3RJblZpZXdDb29yZGluYXRlcyBvZlZpZXc6dmlldyBvcHRpb25zOm11dGFibGVPcHRpb25z
LmdldCgpXTsKKyAgICAgICAgW1BBTDo6Z2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxlQ2xhc3Mo
KSBzaG93RGVmaW5pdGlvbkZvclRlcm06ZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3Ry
aW5nLmdldCgpIHJlbGF0aXZlVG9SZWN0OmZpcnN0VGV4dFJlY3RJblZpZXdDb29yZGluYXRlcyBv
ZlZpZXc6dmlldyBvcHRpb25zOm11dGFibGVPcHRpb25zLmdldCgpXTsKICAgICAgICAgcmV0dXJu
IG5pbDsKICAgICB9CiAKQEAgLTIzOCw5ICsyMzYsOSBAQCBzdGF0aWMgaWQgPE5TSW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4gc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250
cgogICAgIHRleHRCYXNlbGluZU9yaWdpbiA9IFt2aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2Ny
ZWVuOk5TTWFrZVJlY3QodGV4dEJhc2VsaW5lT3JpZ2luLngsIHRleHRCYXNlbGluZU9yaWdpbi55
LCAwLCAwKV0ub3JpZ2luOwogCiAgICAgaWYgKGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIpCi0g
ICAgICAgIHJldHVybiBbZ2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxlQ2xhc3MoKSBsb29rdXBB
bmltYXRpb25Db250cm9sbGVyRm9yVGVybTpkaWN0aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRT
dHJpbmcuZ2V0KCkgYXRMb2NhdGlvbjp0ZXh0QmFzZWxpbmVPcmlnaW4gb3B0aW9uczptdXRhYmxl
T3B0aW9ucy5nZXQoKV07CisgICAgICAgIHJldHVybiBbUEFMOjpnZXRMVUxvb2t1cERlZmluaXRp
b25Nb2R1bGVDbGFzcygpIGxvb2t1cEFuaW1hdGlvbkNvbnRyb2xsZXJGb3JUZXJtOmRpY3Rpb25h
cnlQb3B1cEluZm8uYXR0cmlidXRlZFN0cmluZy5nZXQoKSBhdExvY2F0aW9uOnRleHRCYXNlbGlu
ZU9yaWdpbiBvcHRpb25zOm11dGFibGVPcHRpb25zLmdldCgpXTsKIAotICAgIFtnZXRMVUxvb2t1
cERlZmluaXRpb25Nb2R1bGVDbGFzcygpIHNob3dEZWZpbml0aW9uRm9yVGVybTpkaWN0aW9uYXJ5
UG9wdXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCkgYXRMb2NhdGlvbjp0ZXh0QmFzZWxpbmVP
cmlnaW4gb3B0aW9uczptdXRhYmxlT3B0aW9ucy5nZXQoKV07CisgICAgW1BBTDo6Z2V0TFVMb29r
dXBEZWZpbml0aW9uTW9kdWxlQ2xhc3MoKSBzaG93RGVmaW5pdGlvbkZvclRlcm06ZGljdGlvbmFy
eVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nLmdldCgpIGF0TG9jYXRpb246dGV4dEJhc2VsaW5l
T3JpZ2luIG9wdGlvbnM6bXV0YWJsZU9wdGlvbnMuZ2V0KCldOwogICAgIHJldHVybiBuaWw7CiAK
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpAQCAtMjU4LDkgKzI1Niw5IEBAIHZvaWQg
RGljdGlvbmFyeUxvb2t1cDo6aGlkZVBvcHVwKCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CiAKLSAgICBpZiAoIWdldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkp
CisgICAgaWYgKCFQQUw6OmdldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBbZ2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxlQ2xhc3MoKSBoaWRl
RGVmaW5pdGlvbl07CisgICAgW1BBTDo6Z2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxlQ2xhc3Mo
KSBoaWRlRGVmaW5pdGlvbl07CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA0NjNk
M2IxMjJiNjA3OTJhMGI5NzBhNDIzYzNmYWU0MTQ4ODQ1ODRhLi5jOGE5YzFlZjcyNDgwOThhYTFj
OGJiNzdkODY1MDYzYjI2Nzk3YzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTEzNSwxMCArMTM1LDYgQEAgU09GVF9MSU5LX0NMQVNTKEFW
S2l0LCBBVkZ1bmN0aW9uQmFyU2NydWJiZXIpCiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXS01l
ZGlhRXhpdEZ1bGxTY3JlZW5JdGVtID0gQCJXS01lZGlhRXhpdEZ1bGxTY3JlZW5JdGVtIjsKICNl
bmRpZiAvLyBIQVZFKFRPVUNIX0JBUikgJiYgRU5BQkxFKFdFQl9QTEFZQkFDS19DT05UUk9MU19N
QU5BR0VSKQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhRU5BQkxFKFJFVkVBTCkKLVNPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTChMb29rdXAsIExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9z
ZSwgTlNTdHJpbmcgKikKLSNlbmRpZiAvLyBFTkFCTEUoUkVWRUFMKQotCiBXVEZfREVDTEFSRV9D
Rl9UWVBFX1RSQUlUKENHSW1hZ2UpOwogCiBAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKCkKQEAg
LTIzMyw4ICsyMjksOCBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihOU1ZpZXcgKil2
aWV3IGltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKWltcGwKIC0gKHZvaWQpZGVhbGxvYwogewog
I2lmICFFTkFCTEUoUkVWRUFMKQotICAgIGlmIChfZGlkUmVnaXN0ZXJGb3JMb29rdXBQb3BvdmVy
Q2xvc2VOb3RpZmljYXRpb25zICYmIGNhbkxvYWRMVU5vdGlmaWNhdGlvblBvcG92ZXJXaWxsQ2xv
c2UoKSkKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1v
dmVPYnNlcnZlcjpzZWxmIG5hbWU6Z2V0TFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkg
b2JqZWN0Om5pbF07CisgICAgaWYgKF9kaWRSZWdpc3RlckZvckxvb2t1cFBvcG92ZXJDbG9zZU5v
dGlmaWNhdGlvbnMgJiYgUEFMOjpjYW5Mb2FkX0xvb2t1cF9MVU5vdGlmaWNhdGlvblBvcG92ZXJX
aWxsQ2xvc2UoKSkKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6UEFMOjpnZXRfTG9va3VwX0xVTm90aWZpY2F0aW9u
UG9wb3ZlcldpbGxDbG9zZSgpIG9iamVjdDpuaWxdOwogI2VuZGlmIC8vICFFTkFCTEUoUkVWRUFM
KQogCiAgICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKndvcmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRl
ciA9IFtbTlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNlXSBub3RpZmljYXRpb25DZW50ZXJdOwpA
QCAtMzEwLDggKzMwNiw4IEBAIC0gKHZvaWQpc3RhcnRPYnNlcnZpbmdMb29rdXBEaXNtaXNzYWxJ
Zk5lZWRlZAogCiAgICAgX2RpZFJlZ2lzdGVyRm9yTG9va3VwUG9wb3ZlckNsb3NlTm90aWZpY2F0
aW9ucyA9IFlFUzsKICNpZiAhRU5BQkxFKFJFVkVBTCkKLSAgICBpZiAoY2FuTG9hZExVTm90aWZp
Y2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpKQotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVy
IGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9kaWN0
aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTopIG5hbWU6Z2V0TFVOb3RpZmljYXRpb25Qb3Bv
dmVyV2lsbENsb3NlKCkgb2JqZWN0Om5pbF07CisgICAgaWYgKFBBTDo6Y2FuTG9hZF9Mb29rdXBf
TFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkpCisgICAgICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0
b3IoX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOikgbmFtZTpQQUw6OmdldF9Mb29r
dXBfTFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkgb2JqZWN0Om5pbF07CiAjZW5kaWYK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4IGY1MTRiODQwNTRjMjFhOTM3
M2JkZTdmNWI5YTQwMWQ4ZGVmYjM0MTUuLjI4MWExZTkzNjVhYjQyYjk1NzdkMTk2ZGIyOGEyNDg3
NzY2MTkyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTQ3LDcgKzU0Nyw3IEBA
ICsgKERpY3Rpb25hcnlQb3B1cEluZm8pX2RpY3Rpb25hcnlQb3B1cEluZm9Gb3JSYW5nZTooUmFu
Z2UmKXJhbmdlIGluRnJhbWU6KEZyYW1lCiAKIC0gKGlkPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JUZXh0CiB7Ci0gICAgaWYgKCFn
ZXRMVUxvb2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygpKQorICAgIGlmICghUEFMOjpnZXRMVUxv
b2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygpKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAg
Tm9kZSogbm9kZSA9IF9oaXRUZXN0UmVzdWx0LmlubmVyTm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDdjNTA5MmU2Mjc4NzdlNmY5NzEyMzEz
YTM1ZjM0YmM1NWE5ZGI4MWYuLmIxYzE3ZTcxZDc3M2M2N2I5N2FmNTIzMWZiMGE5NDk3NGNmNjI2
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IERhdmlkIFNtaXRoIChj
YXRmaXNoLm1hbkBnbWFpbC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAog
ICoKQEAgLTM1MiwxMCArMzUyLDYgQEAgU09GVF9MSU5LX0NMQVNTKEFWS2l0LCBBVkZ1bmN0aW9u
QmFyU2NydWJiZXIpCiAjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEzMDAKICNlbmRpZiAvLyBIQVZFKFRPVUNIX0JBUikgJiYgRU5BQkxFKFdFQl9QTEFZQkFD
S19DT05UUk9MU19NQU5BR0VSKQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhRU5BQkxFKFJFVkVB
TCkKLVNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChMb29rdXAsIExVTm90aWZpY2F0aW9uUG9w
b3ZlcldpbGxDbG9zZSwgTlNTdHJpbmcgKikKLSNlbmRpZgotCiAjaWYgIVBMQVRGT1JNKElPU19G
QU1JTFkpCiAKIEBpbnRlcmZhY2UgTlNTcGVsbENoZWNrZXIgKFdlYk5TU3BlbGxDaGVja2VyRGV0
YWlscykKQEAgLTk2MTgsOCArOTYxNCw4IEBAIC0gKHZvaWQpX3ByZXBhcmVGb3JEaWN0aW9uYXJ5
TG9va3VwCiAgICAgX3ByaXZhdGUtPmhhc0luaXRpYWxpemVkTG9va3VwT2JzZXJ2ZXIgPSBZRVM7
CiAgICAgCiAjaWYgIUVOQUJMRShSRVZFQUwpCi0gICAgaWYgKGNhbkxvYWRMVU5vdGlmaWNhdGlv
blBvcG92ZXJXaWxsQ2xvc2UoKSkKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfZGljdGlvbmFy
eUxvb2t1cFBvcG92ZXJXaWxsQ2xvc2U6KSBuYW1lOmdldExVTm90aWZpY2F0aW9uUG9wb3Zlcldp
bGxDbG9zZSgpIG9iamVjdDpuaWxdOworICAgIGlmIChQQUw6OmNhbkxvYWRfTG9va3VwX0xVTm90
aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpKQorICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9k
aWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTopIG5hbWU6UEFMOjpnZXRfTG9va3VwX0xV
Tm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpIG9iamVjdDpuaWxdOwogI2VuZGlmIC8vICFF
TkFCTEUoUkVWRUFMKQogICAgIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360124</attachid>
            <date>2019-01-25 10:48:32 -0800</date>
            <delta_ts>2019-01-25 12:24:19 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-193815-20190125104831.patch</filename>
            <type>text/plain</type>
            <size>34217</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRmYmM3ODYwNjhkMzk2MmUyNWYwYzI2
OTdhMWQwN2RkZTQ1OGEyNWMuLjJlMDdjOTgxODdkMDIxMzFhY2Y4MjgwYTk1MjBiNjQ1MDI0MWJh
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTktMDEtMjUgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHNvZnQtbGlua2luZyBvZiBMb29rdXAuZnJh
bWV3b3JrIG91dCBvZiBMb29rdXBTUEkuaAorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTkzODE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd3RmL2NvY29hL1NvZnRMaW5raW5nLmg6CisgICAgICAgIChTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX0hFQURFUik6CisgICAgICAgIChTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVCk6CisgICAgICAgIChTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURF
Uik6CisgICAgICAgIC0gUmVtb3ZlIGxvY2FsIGRlY2xhcmF0aW9uIG9mIGNvbnN0YW50LiAgVGhp
cyBzaG91bGQgYmUgaGFuZGxlZAorICAgICAgICAgIGJ5IGluY2x1ZGluZyAqU1BJLmggb3IgInJl
YWwiIGhlYWRlcnMuCisgICAgICAgIChTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVCk6CisgICAgICAgIC0gUmVtb3ZlIGxvY2FsIGRlY2xhcmF0aW9uIG9m
IGNvbnN0YW50LgorICAgICAgICAtIFJlbmFtZSBmcm9tIFNPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfU09VUkNFKCkgYW5kIGFkZAorICAgICAgICAgIGBleHBvcnRgIGFyZ3VtZW50IHRv
IHN1cHBvcnQgZXhwb3J0aW5nIG9mIGZ1bmN0aW9ucy4KKyAgICAgICAgKFNPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFKToKKyAgICAgICAgLSBSZWRlZmluZSBpbiB0ZXJtcyBv
ZgorICAgICAgICAgIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKCkuCisKIDIwMTktMDEtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIFVzZSBNb25vdG9uaWNUaW1lIGluIFdvcmtlclJ1bkxvb3AKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAwNzQzMGJkYmE4MzJhMTg2MGUxZWNlNzIwOTM1YmVmMzM0M2Q1YjQwLi40MzA2N2FmMGE1
MWRjYzAzMzkwNTA0YjY3MzhiMzg5NGRkMWY0MTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTktMDEtMjUgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBNb3ZlIHNvZnQtbGlua2luZyBvZiBMb29rdXAuZnJhbWV3b3JrIG91dCBvZiBMb29rdXBT
UEkuaAorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTkzODE1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZWRpdGluZy9jb2NvYS9EaWN0
aW9uYXJ5TG9va3VwLm1tOgorICAgICAgICAtIFJlbW92ZSB1bnVzZWQgaGVhZGVyLgorCisgICAg
ICAgICogZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cExlZ2FjeS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OnRva2VuUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6c2hvd1BvcHVwT3JDcmVhdGVB
bmltYXRpb25Db250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6
OmhpZGVQb3B1cCk6CisgICAgICAgIC0gTW92ZSBzb2Z0LWxpbmtpbmcgdG8gTG9va3VwU29mdExp
bmsue2gsbW19LgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZhbGlkYXRpb25CdWJibGVJT1Mu
bW06CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpzaG93KToKKyAgICAgICAg
LSBVcGRhdGUgZm9yIGNoYW5nZXMgdG8gVUlLaXRTb2Z0TGluay57aCxtbX0gbm93IHRoYXQKKyAg
ICAgICAgICBVSUFjY2Vzc2liaWxpdHlBbm5vdW5jZW1lbnROb3RpZmljYXRpb24gaXMgdXNpbmcK
KyAgICAgICAgICBTT0ZUX0xJTktfQ09OU1RBTlQqKCkuCisKIDIwMTktMDEtMjQgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIEFkIENsaWNrIEF0dHJp
YnV0aW9uIGFzIGFuIGludGVybmFsL2V4cGVyaW1lbnRhbCBmZWF0dXJlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBlYTQ5MDYwZDU4NWZiODJlNDNmNzljOTgzMDY2YjRlMTk1NDk2M2YxLi40NmUwMjFj
ODVkMjA1NGMxYjM5NzkwNjA5ZTVlOTA2NzMzMzJhZTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyOCBAQAorMjAxOS0wMS0yNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIE1vdmUgc29mdC1saW5raW5nIG9mIExvb2t1cC5mcmFtZXdvcmsgb3V0
IG9mIExvb2t1cFNQSS5oCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xOTM4MTU+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQQUwueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvUGxhdGZvcm1NYWMuY21ha2U6
CisgICAgICAgIC0gQWRkIExvb2t1cFNvZnRMaW5rLntoLG1tfSBmaWxlcyB0byB0aGUgcHJvamVj
dC4KKworICAgICAgICAqIHBhbC9pb3MvVUlLaXRTb2Z0TGluay5oOgorICAgICAgICAqIHBhbC9p
b3MvVUlLaXRTb2Z0TGluay5tbToKKyAgICAgICAgLSBDaGFuZ2UgU09GVF9MSU5LX1ZBUklBQkxF
X0ZPUl9IRUFERVIoKSB0bworICAgICAgICAgIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KCkgZm9yCisgICAgICAgICAgVUlBY2Nlc3NpYmlsaXR5QW5ub3VuY2VtZW50Tm90aWZpY2F0aW9u
IGNvbnN0YW50LgorCisgICAgICAgICogcGFsL21hYy9Mb29rdXBTb2Z0TGluay5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTG9va3VwU1BJLmguCisgICAgICAg
ICogcGFsL21hYy9Mb29rdXBTb2Z0TGluay5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvbWFjL0xvb2t1cFNQSS5oLgorICAgICAgICAtIE1pZ3JhdGUgc29mdC1saW5r
aW5nIGZyb20gTG9va3VwU1BJLmggdG8gaGVyZS4KKworICAgICAgICAqIHBhbC9zcGkvbWFjL0xv
b2t1cFNQSS5oOgorICAgICAgICAtIFJlcGxhY2Ugc29mdC1saW5raW5nIG9mIExvb2t1cC5mcmFt
ZXdvcmsgd2l0aAorICAgICAgICAgIExvb2t1cFNvZnRMaW5rLmguCisKIDIwMTktMDEtMjQgIFJv
c3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIE1vdmUgRmls
ZVN5c3RlbSB0byBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODJkYmFjNWY4ZjRkNmYzOTBjYjFjZDFiMWU0NmVk
M2I5MDc1MDc5MS4uNTQ2MGMxZmViOWViNTcyZDZhZGFlOThjZTZmZDM2MWUwM2U0Y2QxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wMS0yNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgc29mdC1saW5raW5nIG9mIExvb2t1cC5mcmFt
ZXdvcmsgb3V0IG9mIExvb2t1cFNQSS5oCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8x
OTM4MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgICgtW1dLV2luZG93Vmlz
aWJpbGl0eU9ic2VydmVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5
T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmdMb29rdXBEaXNtaXNzYWxJZk5lZWRlZF0pOgorICAgICAg
ICAtIE1vdmUgc29mdC1saW5raW5nIHRvIExvb2t1cFNvZnRMaW5rLntoLG1tfS4KKwogMjAxOS0w
MS0yNCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
QWQgQ2xpY2sgQXR0cmlidXRpb24gYXMgYW4gaW50ZXJuYWwvZXhwZXJpbWVudGFsIGZlYXR1cmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAyNDczOTFlZDUxYTJkZDgyOWFmNWE0ZDg1
YWY3OWMzNjMyNjBjOTMzLi43Y2FiMWFhMGVkOTZlNTFjNmU1M2JmMDIwNDlhNDE3MTVlZjQ4M2M2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDEt
MjUgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHNv
ZnQtbGlua2luZyBvZiBMb29rdXAuZnJhbWV3b3JrIG91dCBvZiBMb29rdXBTUEkuaAorICAgICAg
ICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTkzODE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmlt
YXRpb25Db250cm9sbGVyRm9yVGV4dF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV2ViVmlldyBfcHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXBdKToKKyAgICAg
ICAgLSBNb3ZlIHNvZnQtbGlua2luZyB0byBMb29rdXBTb2Z0TGluay57aCxtbX0uCisKIDIwMTkt
MDEtMjQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IEFkIENsaWNrIEF0dHJpYnV0aW9uIGFzIGFuIGludGVybmFsL2V4cGVyaW1lbnRhbCBmZWF0dXJl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Tb2Z0TGlua2luZy5oIGIvU291cmNl
L1dURi93dGYvY29jb2EvU29mdExpbmtpbmcuaAppbmRleCAxYWZhYjViZjUxZjFkMTkwMDExOWRh
M2VjNmZhZTcxNmFmNzExOTAwLi5jMDI4Y2QzZjY2NWVjNjU1Y2U1Y2E3ODYxZGRiNTc1YThiOGY5
ZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Tb2Z0TGlua2luZy5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL2NvY29hL1NvZnRMaW5raW5nLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MjksMTcgKzQyOSwxMSBA
QAogICAgIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUX0FORF9BU1NFUlRJ
T04oZnVuY3Rpb25OYW1lc3BhY2UsIGZyYW1ld29yaywgY2xhc3NOYW1lLCAsIE5PX0FTU0VSVCkK
IAogI2RlZmluZSBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihmdW5jdGlvbk5hbWVzcGFj
ZSwgZnJhbWV3b3JrLCB2YXJpYWJsZU5hbWUsIHZhcmlhYmxlVHlwZSkgXAotICAgIFdURl9FWFRF
Uk5fQ19CRUdJTiBcCi0gICAgZXh0ZXJuIGNvbnN0IHZhcmlhYmxlVHlwZSB2YXJpYWJsZU5hbWU7
IFwKLSAgICBXVEZfRVhURVJOX0NfRU5EIFwKICAgICBuYW1lc3BhY2UgZnVuY3Rpb25OYW1lc3Bh
Y2UgeyBcCiAgICAgdmFyaWFibGVUeXBlIGdldF8jI2ZyYW1ld29yayMjXyMjdmFyaWFibGVOYW1l
KCk7IFwKICAgICB9CiAKICNkZWZpbmUgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoZnVuY3Rpb25OYW1lc3BhY2UsIGZyYW1ld29yaywgdmFyaWFibGVOYW1lLCB2YXJp
YWJsZVR5cGUsIGV4cG9ydCkgXAotICAgIFdURl9FWFRFUk5fQ19CRUdJTiBcCi0gICAgZXh0ZXJu
IGNvbnN0IHZhcmlhYmxlVHlwZSB2YXJpYWJsZU5hbWU7IFwKLSAgICBXVEZfRVhURVJOX0NfRU5E
IFwKICAgICBuYW1lc3BhY2UgZnVuY3Rpb25OYW1lc3BhY2UgeyBcCiAgICAgZXhwb3J0IHZhcmlh
YmxlVHlwZSBnZXRfIyNmcmFtZXdvcmsjI18jI3ZhcmlhYmxlTmFtZSgpOyBcCiAgICAgdmFyaWFi
bGVUeXBlIGdldF8jI2ZyYW1ld29yayMjXyMjdmFyaWFibGVOYW1lKCkgXApAQCAtNDU5LDE5ICs0
NTMsMTMgQEAKICAgICBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChm
dW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCB2YXJpYWJsZU5hbWUsIHZhcmlhYmxlVHlwZSwg
KQogCiAjZGVmaW5lIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKGZ1bmN0
aW9uTmFtZXNwYWNlLCBmcmFtZXdvcmssIHZhcmlhYmxlTmFtZSwgdmFyaWFibGVUeXBlKSBcCi0g
ICAgV1RGX0VYVEVSTl9DX0JFR0lOIFwKLSAgICBleHRlcm4gY29uc3QgdmFyaWFibGVUeXBlIHZh
cmlhYmxlTmFtZTsgXAotICAgIFdURl9FWFRFUk5fQ19FTkQgXAogICAgIG5hbWVzcGFjZSBmdW5j
dGlvbk5hbWVzcGFjZSB7IFwKICAgICBib29sIGNhbkxvYWRfIyNmcmFtZXdvcmsjI18jI3Zhcmlh
YmxlTmFtZSgpOyBcCiAgICAgYm9vbCBpbml0XyMjZnJhbWV3b3JrIyNfIyN2YXJpYWJsZU5hbWUo
KTsgXAogICAgIHZhcmlhYmxlVHlwZSBnZXRfIyNmcmFtZXdvcmsjI18jI3ZhcmlhYmxlTmFtZSgp
OyBcCiAgICAgfQogCi0jZGVmaW5lIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09V
UkNFKGZ1bmN0aW9uTmFtZXNwYWNlLCBmcmFtZXdvcmssIHZhcmlhYmxlTmFtZSwgdmFyaWFibGVU
eXBlKSBcCi0gICAgV1RGX0VYVEVSTl9DX0JFR0lOIFwKLSAgICBleHRlcm4gY29uc3QgdmFyaWFi
bGVUeXBlIHZhcmlhYmxlTmFtZTsgXAotICAgIFdURl9FWFRFUk5fQ19FTkQgXAorI2RlZmluZSBT
T0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChmdW5jdGlv
bk5hbWVzcGFjZSwgZnJhbWV3b3JrLCB2YXJpYWJsZU5hbWUsIHZhcmlhYmxlVHlwZSwgZXhwb3J0
KSBcCiAgICAgbmFtZXNwYWNlIGZ1bmN0aW9uTmFtZXNwYWNlIHsgXAogICAgIHN0YXRpYyB2YXJp
YWJsZVR5cGUgY29uc3RhbnQjI2ZyYW1ld29yayMjdmFyaWFibGVOYW1lOyBcCiAgICAgYm9vbCBp
bml0XyMjZnJhbWV3b3JrIyNfIyN2YXJpYWJsZU5hbWUoKTsgXApAQCAtNDgzLDE5ICs0NzEsMjIg
QEAKICAgICAgICAgY29uc3RhbnQjI2ZyYW1ld29yayMjdmFyaWFibGVOYW1lID0gKnN0YXRpY19j
YXN0PHZhcmlhYmxlVHlwZSBjb25zdCAqPihjb25zdGFudCk7IFwKICAgICAgICAgcmV0dXJuIHRy
dWU7IFwKICAgICB9IFwKLSAgICBib29sIGNhbkxvYWRfIyNmcmFtZXdvcmsjI18jI3ZhcmlhYmxl
TmFtZSgpOyBcCisgICAgZXhwb3J0IGJvb2wgY2FuTG9hZF8jI2ZyYW1ld29yayMjXyMjdmFyaWFi
bGVOYW1lKCk7IFwKICAgICBib29sIGNhbkxvYWRfIyNmcmFtZXdvcmsjI18jI3ZhcmlhYmxlTmFt
ZSgpIFwKICAgICB7IFwKICAgICAgICAgc3RhdGljIGJvb2wgbG9hZGVkID0gaW5pdF8jI2ZyYW1l
d29yayMjXyMjdmFyaWFibGVOYW1lKCk7IFwKICAgICAgICAgcmV0dXJuIGxvYWRlZDsgXAogICAg
IH0gXAotICAgIHZhcmlhYmxlVHlwZSBnZXRfIyNmcmFtZXdvcmsjI18jI3ZhcmlhYmxlTmFtZSgp
OyBcCisgICAgZXhwb3J0IHZhcmlhYmxlVHlwZSBnZXRfIyNmcmFtZXdvcmsjI18jI3ZhcmlhYmxl
TmFtZSgpOyBcCiAgICAgdmFyaWFibGVUeXBlIGdldF8jI2ZyYW1ld29yayMjXyMjdmFyaWFibGVO
YW1lKCkgXAogICAgIHsgXAogICAgICAgICByZXR1cm4gY29uc3RhbnQjI2ZyYW1ld29yayMjdmFy
aWFibGVOYW1lOyBcCiAgICAgfSBcCiAgICAgfQogCisjZGVmaW5lIFNPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfU09VUkNFKGZ1bmN0aW9uTmFtZXNwYWNlLCBmcmFtZXdvcmssIHZhcmlh
YmxlTmFtZSwgdmFyaWFibGVUeXBlKSBcCisgICAgU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlM
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoZnVuY3Rpb25OYW1lc3BhY2UsIGZyYW1ld29yaywgdmFy
aWFibGVOYW1lLCB2YXJpYWJsZVR5cGUsICkKKwogI2RlZmluZSBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCBmdW5jdGlvbk5hbWUsIHJl
c3VsdFR5cGUsIHBhcmFtZXRlckRlY2xhcmF0aW9ucywgcGFyYW1ldGVyTmFtZXMpIFwKICAgICBX
VEZfRVhURVJOX0NfQkVHSU4gXAogICAgIHJlc3VsdFR5cGUgZnVuY3Rpb25OYW1lIHBhcmFtZXRl
ckRlY2xhcmF0aW9uczsgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGQxNjRhNGM3MmFkYjhkNWRjMGQ2MDRkZThiNmQxZTU1NWM3
NTIxNWYuLmE2NWU5MWQ2OTkwZTU2ZTk3NTVjOGM1YmIyNzY4ZTBmOThmNWI1NDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEx
NCw2ICsxMTQsOCBAQAogCQk0NDI5NTZDRDIxOEE3MkRGMDA4MERCNTQgLyogUmV2ZWFsU1BJLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDI5NTZDQzIx
OEE3MkRFMDA4MERCNTQgLyogUmV2ZWFsU1BJLmggKi87IH07CiAJCTQ0NTBGQzlGMjFGNUY2MDIw
MDRERkE1NiAvKiBRdWlja0xvb2tTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NTBGQzlEMjFGNUY2MDIwMDRERkE1NiAvKiBRdWlja0xv
b2tTb2Z0TGluay5tbSAqLzsgfTsKIAkJNDQ1MEZDQTAyMUY1RjYwMjAwNERGQTU2IC8qIFF1aWNr
TG9va1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NDUwRkM5RTIxRjVGNjAyMDA0REZBNTYgLyogUXVpY2tMb29rU29mdExpbmsuaCAqLzsg
fTsKKwkJNDRFMUE4QUYyMUZBNTRFNjAwQzMwNDhFIC8qIExvb2t1cFNvZnRMaW5rLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NEUxQThBRDIxRkE1NERB
MDBDMzA0OEUgLyogTG9va3VwU29mdExpbmsuaCAqLzsgfTsKKwkJNDRFMUE4QjAyMUZBNTRFQjAw
QzMwNDhFIC8qIExvb2t1cFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDRFMUE4QUUyMUZBNTREQTAwQzMwNDhFIC8qIExvb2t1cFNvZnRM
aW5rLm1tICovOyB9OwogCQk1NzBBQjhGMTIwQUUyRThEMDBCOEJFODcgLyogU2VjS2V5UHJveHlT
UEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MEFC
OEYwMjBBRTJFOEQwMEI4QkU4NyAvKiBTZWNLZXlQcm94eVNQSS5oICovOyB9OwogCQk1NzBBQjhG
OTIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcg
LyogTlNYUENDb25uZWN0aW9uU1BJLmggKi87IH07CiAJCTYzQzdFREM3MjFBRkFFMDQwMDZBN0I5
OSAvKiBOU1Byb2dyZXNzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2M0UzNjlGOTIxQUZBODNGMDAxQzE0QkMgLyogTlNQcm9ncmVzc1NQSS5oICov
OyB9OwpAQCAtMjczLDYgKzI3NSw4IEBACiAJCTQ0Mjk1NkNDMjE4QTcyREUwMDgwREI1NCAvKiBS
ZXZlYWxTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmV2ZWFsU1BJLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBGQzlEMjFGNUY2MDIwMDRERkE1NiAv
KiBRdWlja0xvb2tTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFF1aWNrTG9va1NvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NDUwRkM5RTIxRjVGNjAyMDA0REZBNTYgLyogUXVpY2tMb29rU29mdExpbmsuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVpY2tMb29rU29mdExpbmsuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDRFMUE4QUQyMUZBNTREQTAwQzMwNDhFIC8qIExvb2t1cFNv
ZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvb2t1cFNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ0RTFBOEFFMjFGQTU0REEwMEMzMDQ4RSAvKiBMb29rdXBTb2Z0TGlu
ay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvb2t1cFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzBBQjhGMDIwQUUyRThEMDBCOEJFODcgLyogU2VjS2V5UHJv
eHlTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VjS2V5UHJveHlTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTcwQUI4RjgyMEFGNkUzRDAwQjhCRTg3IC8qIE5TWFBDQ29ubmVjdGlv
blNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOU1hQQ0Nvbm5lY3Rpb25TUEkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjNFMzY5RjkyMUFGQTgzRjAwMUMxNEJDIC8qIE5TUHJvZ3Jlc3NT
UEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTlNQcm9ncmVzc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTE3LDYgKzUyMSw3IEBACiAJCQkJMUM0ODc2REUxRjhEODMxMzAwQ0NFRUJE
IC8qIGNvY29hICovLAogCQkJCTFDMDlEMDUxMUUzMUM0MTIwMDcyNUYxOCAvKiBjcnlwdG8gKi8s
CiAJCQkJMkU4N0MwNkUyMTVBOTkzMTAwRDZDRDMyIC8qIGlvcyAqLywKKwkJCQk0NEUxQThBQzIx
RkE1NDhGMDBDMzA0OEUgLyogbWFjICovLAogCQkJCTBDMkRBMDY1MUYzM0NBMzMwMERCQzMxNyAv
KiBzcGkgKi8sCiAJCQkJQTM3ODhFOUYxRjA1QjdDRTAwNjc5NDI1IC8qIHN5c3RlbSAqLywKIAkJ
CQlBMzBENDExRDFGMEREMEFDMDBCNzE5NTQgLyogdGV4dCAqLywKQEAgLTU4NSw2ICs1OTAsMTUg
QEAKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk0
NEUxQThBQzIxRkE1NDhGMDBDMzA0OEUgLyogbWFjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0NEUxQThBRDIxRkE1NERBMDBDMzA0OEUgLyogTG9va3Vw
U29mdExpbmsuaCAqLywKKwkJCQk0NEUxQThBRTIxRkE1NERBMDBDMzA0OEUgLyogTG9va3VwU29m
dExpbmsubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IG1hYzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CiAJCUEzMEQ0MTFEMUYwREQwQUMwMEI3MTk1NCAvKiB0ZXh0ICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY5Myw2ICs3MDcsNyBAQAog
CQkJCUEzMEQ0MTIxMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEM1QUY5MUMxRjQzQTRDNzAwMkVBQzAyIC8qIExhdW5jaFNlcnZpY2VzU1BJLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQzQ4NzZEOTFGOEQ3RjRFMDBDQ0VFQkQgLyogTG9nZ2luZy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDRFMUE4QUYyMUZBNTRFNjAwQzMwNDhFIC8qIExvb2t1cFNvZnRM
aW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QjFGNDUxMzBGMDBGNEVCQjYgLyogTG9v
a3VwU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0ODFGM0JFQjQ5MDBEQkMzMTcgLyog
TWFjaFZNU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxRDFGNDNBNEM3MDAyRUFDMDIg
LyogTWVkaWFQbGF5ZXJTUEkuaCBpbiBIZWFkZXJzICovLApAQCAtODY3LDYgKzg4Miw3IEBACiAJ
CQkJQTMwRDQxMjIxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUEzMEQ0MTI1MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTFDNDg3NkQ4MUY4RDdGNEUwMENDRUVCRCAvKiBMb2dnaW5nLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTQ0RTFBOEIwMjFGQTU0RUIwMEMzMDQ4RSAvKiBMb29rdXBTb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBDRjk5Q0E0MUY3MzYzNzUwMDdFRTc5MyAvKiBNZWRp
YVRpbWVBVkZvdW5kYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFGNjNDQTAyMUE0REJG
NzAwNkZCNDNCIC8qIFBhc3NLaXRTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExMTc1
QjRGMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IGYxMzA3Njg0M2Y4ODMxNmJj
MzhiZDgwZGE3MmY0ODlhODIzNzYyOGMuLjEzMGE3YjczZmE3ZmY0ZjFkZTIyNTdiMGRlNDgwMTlh
NDYwYzlmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1NYWMu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAt
NSw2ICs1LDggQEAgbGlzdChBUFBFTkQgUEFMX1BVQkxJQ19IRUFERVJTCiAKICAgICBjb2NvYS9Q
YXNzS2l0U29mdExpbmsuaAogCisgICAgbWFjL0xvb2t1cFNvZnRMaW5rLmgKKwogICAgIHNwaS9j
Zi9DRkxvY2FsZVNQSS5oCiAgICAgc3BpL2NmL0NGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5o
CiAgICAgc3BpL2NmL0NGTmV0d29ya1NQSS5oCkBAIC0xMDcsNiArMTA5LDggQEAgbGlzdChBUFBF
TkQgUEFMX1NPVVJDRVMKIAogICAgIGNyeXB0by9jb21tb25jcnlwdG8vQ3J5cHRvRGlnZXN0Q29t
bW9uQ3J5cHRvLmNwcAogCisgICAgbWFjL0xvb2t1cFNvZnRMaW5rLm1tCisKICAgICBzeXN0ZW0v
Y29jb2EvU2xlZXBEaXNhYmxlckNvY29hLmNwcAogCiAgICAgc3lzdGVtL21hYy9DbG9ja0NNLm1t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lvcy9VSUtpdFNvZnRMaW5rLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lvcy9VSUtpdFNvZnRMaW5rLmgKaW5kZXggMjFmNDE0
Yjc3YmM2ZDM3YTkwOGQ2MTgxOWU5NWUzM2YzNmRlYzk0Yy4uZjkzMzk1OWU2MmI4Y2NlNTNjZjEz
MzA5Yjg0OTZkZWE3ZWIwYzQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9p
b3MvVUlLaXRTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvaW9zL1VJS2l0
U29mdExpbmsuaApAQCAtMzQsNiArMzQsNyBAQAogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9I
RUFERVIoUEFMLCBVSUtpdCkKIAorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBV
SUtpdCwgVUlBY2Nlc3NpYmlsaXR5QW5ub3VuY2VtZW50Tm90aWZpY2F0aW9uLCBVSUFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25zKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBV
SUtpdCwgVUlBcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmVOb3RpZmljYXRpb24sIE5TTm90aWZp
Y2F0aW9uTmFtZSkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVUlLaXQsIFVJ
QXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kTm90aWZpY2F0aW9uLCBOU05vdGlmaWNhdGlv
bk5hbWUpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIFVJS2l0LCBVSUFwcGxp
Y2F0aW9uRGlkQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uLCBOU05vdGlmaWNhdGlvbk5hbWUpCkBA
IC02Myw2ICs2NCw1IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgVUlLaXQs
IFVJQWNjZXNzaWJpbGl0eUlzR3JheXNjYWxlRW5hYmxlZCwgQk9PCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihQQUwsIFVJS2l0LCBVSUFjY2Vzc2liaWxpdHlJc0ludmVydENvbG9yc0Vu
YWJsZWQsIEJPT0wsICh2b2lkKSwgKCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIFVJS2l0LCBVSUFjY2Vzc2liaWxpdHlJc1JlZHVjZU1vdGlvbkVuYWJsZWQsIEJPT0wsICh2
b2lkKSwgKCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFVJS2l0LCBVSUFj
Y2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uLCB2b2lkLCAoVUlBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9ucyBuLCBpZCBhcmd1bWVudCksIChuLCBhcmd1bWVudCkpCi1TT0ZUX0xJTktfVkFSSUFC
TEVfRk9SX0hFQURFUihQQUwsIFVJS2l0LCBVSUFjY2Vzc2liaWxpdHlBbm5vdW5jZW1lbnROb3Rp
ZmljYXRpb24sIFVJQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbnMpCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9pb3MvVUlLaXRTb2Z0TGluay5tbSBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvaW9zL1VJS2l0U29mdExpbmsubW0KaW5kZXggMTQzYjhlYjkwMGY1
Y2RlYzQ0ZTdmZTI0OWVkY2FiNjc5NGYwYzdjOS4uMzM3MTVjY2M5YmNkNTVkZGU5NTllMjg3MWQ4
Yjk1NmVlYmI3NTE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9pb3MvVUlL
aXRTb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lvcy9VSUtpdFNvZnRM
aW5rLm1tCkBAIC0zNCw2ICszNCw3IEBAIEBjbGFzcyBDVUlDYXRhbG9nOwogCiBTT0ZUX0xJTktf
RlJBTUVXT1JLX0ZPUl9TT1VSQ0UoUEFMLCBVSUtpdCkKIAorU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0UoUEFMLCBVSUtpdCwgVUlBY2Nlc3NpYmlsaXR5QW5ub3VuY2VtZW50Tm90aWZpY2F0
aW9uLCBVSUFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25zKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0UoUEFMLCBVSUtpdCwgVUlBcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmVOb3RpZmlj
YXRpb24sIE5TTm90aWZpY2F0aW9uTmFtZSkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNF
KFBBTCwgVUlLaXQsIFVJQXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kTm90aWZpY2F0aW9u
LCBOU05vdGlmaWNhdGlvbk5hbWUpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShQQUws
IFVJS2l0LCBVSUFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uLCBOU05vdGlm
aWNhdGlvbk5hbWUpCkBAIC02Myw2ICs2NCw1IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFBBTCwgVUlLaXQsIFVJQWNjZXNzaWJpbGl0eUlzR3JheXNjYWxlRW5hYmxlZCwgQk9PCiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFVJS2l0LCBVSUFjY2Vzc2liaWxpdHlJ
c0ludmVydENvbG9yc0VuYWJsZWQsIEJPT0wsICh2b2lkKSwgKCkpCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVJS2l0LCBVSUFjY2Vzc2liaWxpdHlJc1Jl
ZHVjZU1vdGlvbkVuYWJsZWQsIEJPT0wsICh2b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFVJS2l0LCBVSUFjY2Vzc2liaWxpdHlQb3N0Tm90
aWZpY2F0aW9uLCB2b2lkLCAoVUlBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9ucyBuLCBpZCBhcmd1
bWVudCksIChuLCBhcmd1bWVudCkpCi1TT0ZUX0xJTktfVkFSSUFCTEVfRk9SX1NPVVJDRShQQUws
IFVJS2l0LCBVSUFjY2Vzc2liaWxpdHlBbm5vdW5jZW1lbnROb3RpZmljYXRpb24sIFVJQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbnMpCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9tYWMvTG9va3VwU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
bWFjL0xvb2t1cFNvZnRMaW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTRjYzc5MzhmZGRkN2E2N2E1Zjk3ZTc3
ZDI5YzViMGE0YTNhN2JmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvbWFjL0xvb2t1cFNvZnRMaW5rLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBQTEFURk9STShNQUMpCisK
KyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9I
RUFERVIoUEFMLCBMb29rdXApCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIExVTG9v
a3VwRGVmaW5pdGlvbk1vZHVsZSkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVB
REVSKFBBTCwgTG9va3VwLCBMVVRlcm1PcHRpb25EaXNhYmxlU2VhcmNoVGVybUluZGljYXRvciwg
TlNTdHJpbmcgKikKKworI2lmICFFTkFCTEUoUkVWRUFMKQorU09GVF9MSU5LX0NPTlNUQU5UX01B
WV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBMb29rdXAsIExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxD
bG9zZSwgTlNTdHJpbmcgKikKKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9tYWMvTG9va3VwU29mdExpbmsubW0gYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL21hYy9Mb29rdXBTb2Z0TGluay5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MzY2ZThhODczMzAyY2RhM2E5ZDhiMzc3OTYzZDE1YTdjNDc1NzA2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9tYWMvTG9va3VwU29mdExpbmsubW0KQEAgLTAsMCAr
MSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCA8
d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19GT1JfU09V
UkNFKFBBTCwgTG9va3VwKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfT1BUSU9OQUxfV0lU
SF9FWFBPUlQoUEFMLCBMb29rdXAsIExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZSwgUEFMX0VYUE9S
VCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFKFBBTCwgTG9va3VwLCBM
VVRlcm1PcHRpb25EaXNhYmxlU2VhcmNoVGVybUluZGljYXRvciwgTlNTdHJpbmcgKikKKworI2lm
ICFFTkFCTEUoUkVWRUFMKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBMb29rdXAsIExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSwg
TlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0xvb2t1cFNQSS5o
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL0xvb2t1cFNQSS5oCmluZGV4IGUwYTMz
NzVkMzBjYzg4OWYxMzVlYTJhMTFkNDdkMGRhOTRmOThhODcuLjgwYWNhODA2ZmQ0ZWZkNTg1YTI5
YmQ3NmVlOGZjOTcxOWEwMGJmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL21hYy9Mb29rdXBTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
TG9va3VwU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAx
OSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yMCwxOCArMjAsMTQgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotCiAj
aWYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBvcnQgPHBh
bC9tYWMvTG9va3VwU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TSW1tZWRpYXRl
QWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaD4KLSNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5o
PgotCi1TT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfT1BUSU9OQUwoTG9va3VwKQotU09GVF9M
SU5LX0NMQVNTX09QVElPTkFMKExvb2t1cCwgTFVMb29rdXBEZWZpbml0aW9uTW9kdWxlKQogCiAj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tCmluZGV4IDNkYmEzMzAyM2FjNzE1NTY1ZmNiMmUz
MDgyMGYxNjg2OWEyNjVlNjYuLmVhMjg5NTlmMzIwYzQ3NWQ0OWNiNzNkODc3MWNhMDg0ZWIwYmZk
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxv
b2t1cC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29r
dXAubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC01MCw3ICs1MCw2IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGlj
c1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaD4KICNpbXBvcnQgPHBh
bC9zcGkvaW9zL1VJS2l0U1BJLmg+Ci0jaW1wb3J0IDxwYWwvc3BpL21hYy9Mb29rdXBTUEkuaD4K
ICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlM
b29rdXBMZWdhY3kubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9EaWN0aW9uYXJ5TG9v
a3VwTGVnYWN5Lm1tCmluZGV4IDBmZTM3MDRiNWQ2OGQzNzRkZTcxODE4YTM4NjNjMmE0Njc4MzMw
ODQuLjE2MTU5MDdkNjkxMTBjNjg1Zjc3MzA3MzE4YmIyYTU1NzE5NjhhNGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlMb29rdXBMZWdhY3kubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cExlZ2FjeS5tbQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTQ4LDE4ICs0OCwxNiBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KIAotU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKExv
b2t1cCwgTFVUZXJtT3B0aW9uRGlzYWJsZVNlYXJjaFRlcm1JbmRpY2F0b3IsIE5TU3RyaW5nICop
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIE5TUmFuZ2UgdG9rZW5SYW5nZShjb25z
dCBTdHJpbmcmIHN0cmluZywgTlNSYW5nZSByYW5nZSwgTlNEaWN0aW9uYXJ5ICoqb3B0aW9ucykK
IHsKLSAgICBpZiAoIWdldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkpCisgICAgaWYg
KCFQQUw6OmdldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkpCiAgICAgICAgIHJldHVy
biBOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKTsKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKIAotICAgIHJldHVybiBbY2xhc3NMVUxvb2t1cERlZmluaXRpb25Nb2R1bGUgdG9r
ZW5SYW5nZUZvclN0cmluZzpzdHJpbmcgcmFuZ2U6cmFuZ2Ugb3B0aW9uczpvcHRpb25zXTsKKyAg
ICByZXR1cm4gW1BBTDo6Z2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxlQ2xhc3MoKSB0b2tlblJh
bmdlRm9yU3RyaW5nOnN0cmluZyByYW5nZTpyYW5nZSBvcHRpb25zOm9wdGlvbnNdOwogCiAgICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIApAQCAtMjA2LDcgKzIwNCw3IEBAIHN0YXRpYyBp
ZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPiBzaG93UG9wdXBPckNyZWF0
ZUFuaW1hdGlvbkNvbnRyCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0g
ICAgaWYgKCFnZXRMVUxvb2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygpKQorICAgIGlmICghUEFM
OjpnZXRMVUxvb2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygpKQogICAgICAgICByZXR1cm4gbmls
OwogCiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IG11dGFibGVPcHRpb25zID0g
YWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKQEAgLTIxNSw5ICsy
MTMsOSBAQCBzdGF0aWMgaWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4g
c2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250cgogCiAgICAgYXV0byB0ZXh0SW5kaWNhdG9y
ID0gVGV4dEluZGljYXRvcjo6Y3JlYXRlKGRpY3Rpb25hcnlQb3B1cEluZm8udGV4dEluZGljYXRv
cik7CiAKLSAgICBpZiAoY2FuTG9hZExVVGVybU9wdGlvbkRpc2FibGVTZWFyY2hUZXJtSW5kaWNh
dG9yKCkgJiYgdGV4dEluZGljYXRvci5nZXQoKS5jb250ZW50SW1hZ2UoKSkgeworICAgIGlmIChQ
QUw6OmNhbkxvYWRfTG9va3VwX0xVVGVybU9wdGlvbkRpc2FibGVTZWFyY2hUZXJtSW5kaWNhdG9y
KCkgJiYgdGV4dEluZGljYXRvci5nZXQoKS5jb250ZW50SW1hZ2UoKSkgewogICAgICAgICB0ZXh0
SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2sodGV4dEluZGljYXRvci5nZXQoKSk7Ci0gICAg
ICAgIFttdXRhYmxlT3B0aW9ucyBzZXRPYmplY3Q6QFlFUyBmb3JLZXk6Z2V0TFVUZXJtT3B0aW9u
RGlzYWJsZVNlYXJjaFRlcm1JbmRpY2F0b3IoKV07CisgICAgICAgIFttdXRhYmxlT3B0aW9ucyBz
ZXRPYmplY3Q6QFlFUyBmb3JLZXk6UEFMOjpnZXRfTG9va3VwX0xVVGVybU9wdGlvbkRpc2FibGVT
ZWFyY2hUZXJtSW5kaWNhdG9yKCldOwogCiAgICAgICAgIEZsb2F0UmVjdCBmaXJzdFRleHRSZWN0
SW5WaWV3Q29vcmRpbmF0ZXMgPSB0ZXh0SW5kaWNhdG9yLmdldCgpLnRleHRSZWN0c0luQm91bmRp
bmdSZWN0Q29vcmRpbmF0ZXMoKVswXTsKICAgICAgICAgRmxvYXRSZWN0IHRleHRCb3VuZGluZ1Jl
Y3RJblZpZXdDb29yZGluYXRlcyA9IHRleHRJbmRpY2F0b3IuZ2V0KCkudGV4dEJvdW5kaW5nUmVj
dEluUm9vdFZpZXdDb29yZGluYXRlcygpOwpAQCAtMjI1LDkgKzIyMyw5IEBAIHN0YXRpYyBpZCA8
TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPiBzaG93UG9wdXBPckNyZWF0ZUFu
aW1hdGlvbkNvbnRyCiAgICAgICAgICAgICB0ZXh0Qm91bmRpbmdSZWN0SW5WaWV3Q29vcmRpbmF0
ZXMgPSByb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjayh0ZXh0Qm91bmRpbmdSZWN0SW5W
aWV3Q29vcmRpbmF0ZXMpOwogICAgICAgICBmaXJzdFRleHRSZWN0SW5WaWV3Q29vcmRpbmF0ZXMu
bW92ZUJ5KHRleHRCb3VuZGluZ1JlY3RJblZpZXdDb29yZGluYXRlcy5sb2NhdGlvbigpKTsKICAg
ICAgICAgaWYgKGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIpCi0gICAgICAgICAgICByZXR1cm4g
W2dldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkgbG9va3VwQW5pbWF0aW9uQ29udHJv
bGxlckZvclRlcm06ZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nLmdldCgpIHJl
bGF0aXZlVG9SZWN0OmZpcnN0VGV4dFJlY3RJblZpZXdDb29yZGluYXRlcyBvZlZpZXc6dmlldyBv
cHRpb25zOm11dGFibGVPcHRpb25zLmdldCgpXTsKKyAgICAgICAgICAgIHJldHVybiBbUEFMOjpn
ZXRMVUxvb2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygpIGxvb2t1cEFuaW1hdGlvbkNvbnRyb2xs
ZXJGb3JUZXJtOmRpY3Rpb25hcnlQb3B1cEluZm8uYXR0cmlidXRlZFN0cmluZy5nZXQoKSByZWxh
dGl2ZVRvUmVjdDpmaXJzdFRleHRSZWN0SW5WaWV3Q29vcmRpbmF0ZXMgb2ZWaWV3OnZpZXcgb3B0
aW9uczptdXRhYmxlT3B0aW9ucy5nZXQoKV07CiAKLSAgICAgICAgW2dldExVTG9va3VwRGVmaW5p
dGlvbk1vZHVsZUNsYXNzKCkgc2hvd0RlZmluaXRpb25Gb3JUZXJtOmRpY3Rpb25hcnlQb3B1cElu
Zm8uYXR0cmlidXRlZFN0cmluZy5nZXQoKSByZWxhdGl2ZVRvUmVjdDpmaXJzdFRleHRSZWN0SW5W
aWV3Q29vcmRpbmF0ZXMgb2ZWaWV3OnZpZXcgb3B0aW9uczptdXRhYmxlT3B0aW9ucy5nZXQoKV07
CisgICAgICAgIFtQQUw6OmdldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkgc2hvd0Rl
ZmluaXRpb25Gb3JUZXJtOmRpY3Rpb25hcnlQb3B1cEluZm8uYXR0cmlidXRlZFN0cmluZy5nZXQo
KSByZWxhdGl2ZVRvUmVjdDpmaXJzdFRleHRSZWN0SW5WaWV3Q29vcmRpbmF0ZXMgb2ZWaWV3OnZp
ZXcgb3B0aW9uczptdXRhYmxlT3B0aW9ucy5nZXQoKV07CiAgICAgICAgIHJldHVybiBuaWw7CiAg
ICAgfQogCkBAIC0yMzgsOSArMjM2LDkgQEAgc3RhdGljIGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbkNvbnRyb2xsZXI+IHNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHIKICAgICB0
ZXh0QmFzZWxpbmVPcmlnaW4gPSBbdmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpOU01h
a2VSZWN0KHRleHRCYXNlbGluZU9yaWdpbi54LCB0ZXh0QmFzZWxpbmVPcmlnaW4ueSwgMCwgMCld
Lm9yaWdpbjsKIAogICAgIGlmIChjcmVhdGVBbmltYXRpb25Db250cm9sbGVyKQotICAgICAgICBy
ZXR1cm4gW2dldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkgbG9va3VwQW5pbWF0aW9u
Q29udHJvbGxlckZvclRlcm06ZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nLmdl
dCgpIGF0TG9jYXRpb246dGV4dEJhc2VsaW5lT3JpZ2luIG9wdGlvbnM6bXV0YWJsZU9wdGlvbnMu
Z2V0KCldOworICAgICAgICByZXR1cm4gW1BBTDo6Z2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxl
Q2xhc3MoKSBsb29rdXBBbmltYXRpb25Db250cm9sbGVyRm9yVGVybTpkaWN0aW9uYXJ5UG9wdXBJ
bmZvLmF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCkgYXRMb2NhdGlvbjp0ZXh0QmFzZWxpbmVPcmlnaW4g
b3B0aW9uczptdXRhYmxlT3B0aW9ucy5nZXQoKV07CiAKLSAgICBbZ2V0TFVMb29rdXBEZWZpbml0
aW9uTW9kdWxlQ2xhc3MoKSBzaG93RGVmaW5pdGlvbkZvclRlcm06ZGljdGlvbmFyeVBvcHVwSW5m
by5hdHRyaWJ1dGVkU3RyaW5nLmdldCgpIGF0TG9jYXRpb246dGV4dEJhc2VsaW5lT3JpZ2luIG9w
dGlvbnM6bXV0YWJsZU9wdGlvbnMuZ2V0KCldOworICAgIFtQQUw6OmdldExVTG9va3VwRGVmaW5p
dGlvbk1vZHVsZUNsYXNzKCkgc2hvd0RlZmluaXRpb25Gb3JUZXJtOmRpY3Rpb25hcnlQb3B1cElu
Zm8uYXR0cmlidXRlZFN0cmluZy5nZXQoKSBhdExvY2F0aW9uOnRleHRCYXNlbGluZU9yaWdpbiBv
cHRpb25zOm11dGFibGVPcHRpb25zLmdldCgpXTsKICAgICByZXR1cm4gbmlsOwogCiAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKQEAgLTI1OCw5ICsyNTYsOSBAQCB2b2lkIERpY3Rpb25h
cnlMb29rdXA6OmhpZGVQb3B1cCgpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwogCi0gICAgaWYgKCFnZXRMVUxvb2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygpKQorICAgIGlm
ICghUEFMOjpnZXRMVUxvb2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygpKQogICAgICAgICByZXR1
cm47Ci0gICAgW2dldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkgaGlkZURlZmluaXRp
b25dOworICAgIFtQQUw6OmdldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkgaGlkZURl
ZmluaXRpb25dOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WYWxpZGF0aW9uQnViYmxlSU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZhbGlkYXRpb25CdWJibGVJT1MubW0KaW5kZXgg
YTk2ZDU5ZWUzNTYyN2VlY2FkODg2NjkxM2Y4NTIxMmVhOTM5YmVjOC4uOWU1NjJhZGMxYTE4YjEz
ZTRhODIwOTc4NjkwZTE3NDE0YmRjYjlhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1ZhbGlkYXRpb25CdWJibGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1ZhbGlkYXRpb25CdWJibGVJT1MubW0KQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lk
IFZhbGlkYXRpb25CdWJibGU6OnNob3coKQogICAgICAgICBbcHJvdGVjdGVkVGhpcy0+bV9wb3Bv
dmVyQ29udHJvbGxlci5nZXQoKS52aWV3IHNldEFjY2Vzc2liaWxpdHlFbGVtZW50c0hpZGRlbjpZ
RVNdOwogICAgIH1dOwogCi0gICAgUEFMOjpzb2Z0TGlua1VJS2l0VUlBY2Nlc3NpYmlsaXR5UG9z
dE5vdGlmaWNhdGlvbigqUEFMOjpnZXRfVUlLaXRfVUlBY2Nlc3NpYmlsaXR5QW5ub3VuY2VtZW50
Tm90aWZpY2F0aW9uKCksIG1fbWVzc2FnZSk7CisgICAgUEFMOjpzb2Z0TGlua1VJS2l0VUlBY2Nl
c3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbihQQUw6OmdldF9VSUtpdF9VSUFjY2Vzc2liaWxpdHlB
bm5vdW5jZW1lbnROb3RpZmljYXRpb24oKSwgbV9tZXNzYWdlKTsKIH0KIAogc3RhdGljIFVJVmll
d0NvbnRyb2xsZXIgKmZhbGxiYWNrVmlld0NvbnRyb2xsZXIoVUlWaWV3ICp2aWV3KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA0NjNkM2IxMjJi
NjA3OTJhMGI5NzBhNDIzYzNmYWU0MTQ4ODQ1ODRhLi5jOGE5YzFlZjcyNDgwOThhYTFjOGJiNzdk
ODY1MDYzYjI2Nzk3YzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTEzNSwxMCArMTM1LDYgQEAgU09GVF9MSU5LX0NMQVNTKEFWS2l0LCBB
VkZ1bmN0aW9uQmFyU2NydWJiZXIpCiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXS01lZGlhRXhp
dEZ1bGxTY3JlZW5JdGVtID0gQCJXS01lZGlhRXhpdEZ1bGxTY3JlZW5JdGVtIjsKICNlbmRpZiAv
LyBIQVZFKFRPVUNIX0JBUikgJiYgRU5BQkxFKFdFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VS
KQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhRU5BQkxFKFJFVkVBTCkKLVNPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTChMb29rdXAsIExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSwgTlNT
dHJpbmcgKikKLSNlbmRpZiAvLyBFTkFCTEUoUkVWRUFMKQotCiBXVEZfREVDTEFSRV9DRl9UWVBF
X1RSQUlUKENHSW1hZ2UpOwogCiBAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKCkKQEAgLTIzMyw4
ICsyMjksOCBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihOU1ZpZXcgKil2aWV3IGlt
cGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKWltcGwKIC0gKHZvaWQpZGVhbGxvYwogewogI2lmICFF
TkFCTEUoUkVWRUFMKQotICAgIGlmIChfZGlkUmVnaXN0ZXJGb3JMb29rdXBQb3BvdmVyQ2xvc2VO
b3RpZmljYXRpb25zICYmIGNhbkxvYWRMVU5vdGlmaWNhdGlvblBvcG92ZXJXaWxsQ2xvc2UoKSkK
LSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNl
cnZlcjpzZWxmIG5hbWU6Z2V0TFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkgb2JqZWN0
Om5pbF07CisgICAgaWYgKF9kaWRSZWdpc3RlckZvckxvb2t1cFBvcG92ZXJDbG9zZU5vdGlmaWNh
dGlvbnMgJiYgUEFMOjpjYW5Mb2FkX0xvb2t1cF9MVU5vdGlmaWNhdGlvblBvcG92ZXJXaWxsQ2xv
c2UoKSkKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1v
dmVPYnNlcnZlcjpzZWxmIG5hbWU6UEFMOjpnZXRfTG9va3VwX0xVTm90aWZpY2F0aW9uUG9wb3Zl
cldpbGxDbG9zZSgpIG9iamVjdDpuaWxdOwogI2VuZGlmIC8vICFFTkFCTEUoUkVWRUFMKQogCiAg
ICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKndvcmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciA9IFtb
TlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNlXSBub3RpZmljYXRpb25DZW50ZXJdOwpAQCAtMzEw
LDggKzMwNiw4IEBAIC0gKHZvaWQpc3RhcnRPYnNlcnZpbmdMb29rdXBEaXNtaXNzYWxJZk5lZWRl
ZAogCiAgICAgX2RpZFJlZ2lzdGVyRm9yTG9va3VwUG9wb3ZlckNsb3NlTm90aWZpY2F0aW9ucyA9
IFlFUzsKICNpZiAhRU5BQkxFKFJFVkVBTCkKLSAgICBpZiAoY2FuTG9hZExVTm90aWZpY2F0aW9u
UG9wb3ZlcldpbGxDbG9zZSgpKQotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1
bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9kaWN0aW9uYXJ5
TG9va3VwUG9wb3ZlcldpbGxDbG9zZTopIG5hbWU6Z2V0TFVOb3RpZmljYXRpb25Qb3BvdmVyV2ls
bENsb3NlKCkgb2JqZWN0Om5pbF07CisgICAgaWYgKFBBTDo6Y2FuTG9hZF9Mb29rdXBfTFVOb3Rp
ZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkpCisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2Rp
Y3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOikgbmFtZTpQQUw6OmdldF9Mb29rdXBfTFVO
b3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkgb2JqZWN0Om5pbF07CiAjZW5kaWYKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4IGY1MTRiODQwNTRjMjFhOTM3M2JkZTdm
NWI5YTQwMWQ4ZGVmYjM0MTUuLjI4MWExZTkzNjVhYjQyYjk1NzdkMTk2ZGIyOGEyNDg3NzY2MTky
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTQ3LDcgKzU0Nyw3IEBAICsgKERp
Y3Rpb25hcnlQb3B1cEluZm8pX2RpY3Rpb25hcnlQb3B1cEluZm9Gb3JSYW5nZTooUmFuZ2UmKXJh
bmdlIGluRnJhbWU6KEZyYW1lCiAKIC0gKGlkPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29u
dHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JUZXh0CiB7Ci0gICAgaWYgKCFnZXRMVUxv
b2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygpKQorICAgIGlmICghUEFMOjpnZXRMVUxvb2t1cERl
ZmluaXRpb25Nb2R1bGVDbGFzcygpKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgTm9kZSog
bm9kZSA9IF9oaXRUZXN0UmVzdWx0LmlubmVyTm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDdjNTA5MmU2Mjc4NzdlNmY5NzEyMzEzYTM1ZjM0
YmM1NWE5ZGI4MWYuLmIxYzE3ZTcxZDc3M2M2N2I5N2FmNTIzMWZiMGE5NDk3NGNmNjI2OWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IERhdmlkIFNtaXRoIChjYXRmaXNo
Lm1hbkBnbWFpbC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKQEAg
LTM1MiwxMCArMzUyLDYgQEAgU09GVF9MSU5LX0NMQVNTKEFWS2l0LCBBVkZ1bmN0aW9uQmFyU2Ny
dWJiZXIpCiAjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEz
MDAKICNlbmRpZiAvLyBIQVZFKFRPVUNIX0JBUikgJiYgRU5BQkxFKFdFQl9QTEFZQkFDS19DT05U
Uk9MU19NQU5BR0VSKQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhRU5BQkxFKFJFVkVBTCkKLVNP
RlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChMb29rdXAsIExVTm90aWZpY2F0aW9uUG9wb3Zlcldp
bGxDbG9zZSwgTlNTdHJpbmcgKikKLSNlbmRpZgotCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkp
CiAKIEBpbnRlcmZhY2UgTlNTcGVsbENoZWNrZXIgKFdlYk5TU3BlbGxDaGVja2VyRGV0YWlscykK
QEAgLTk2MTgsOCArOTYxNCw4IEBAIC0gKHZvaWQpX3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3Vw
CiAgICAgX3ByaXZhdGUtPmhhc0luaXRpYWxpemVkTG9va3VwT2JzZXJ2ZXIgPSBZRVM7CiAgICAg
CiAjaWYgIUVOQUJMRShSRVZFQUwpCi0gICAgaWYgKGNhbkxvYWRMVU5vdGlmaWNhdGlvblBvcG92
ZXJXaWxsQ2xvc2UoKSkKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2Vu
dGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfZGljdGlvbmFyeUxvb2t1
cFBvcG92ZXJXaWxsQ2xvc2U6KSBuYW1lOmdldExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9z
ZSgpIG9iamVjdDpuaWxdOworICAgIGlmIChQQUw6OmNhbkxvYWRfTG9va3VwX0xVTm90aWZpY2F0
aW9uUG9wb3ZlcldpbGxDbG9zZSgpKQorICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9kaWN0aW9u
YXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTopIG5hbWU6UEFMOjpnZXRfTG9va3VwX0xVTm90aWZp
Y2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpIG9iamVjdDpuaWxdOwogI2VuZGlmIC8vICFFTkFCTEUo
UkVWRUFMKQogICAgIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>