<?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>62748</bug_id>
          
          <creation_ts>2011-06-15 12:50:20 -0700</creation_ts>
          <short_desc>Move FileChooser::basenameForWidth to RenderTheme::fileListNameForWidth, eliminate gnarly FileChooserFoo proliferation.</short_desc>
          <delta_ts>2022-02-27 23:45:22 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>62069</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>darin</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>421513</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-15 12:50:20 -0700</bug_when>
    <thetext>Move FileChooser::basenameForWidth to RenderTheme::fileListNameForWidth, eliminate gnarly FileChooserFoo proliferation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421519</commentid>
    <comment_count>1</comment_count>
      <attachid>97349</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-15 12:54:55 -0700</bug_when>
    <thetext>Created attachment 97349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421521</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-15 12:55:56 -0700</bug_when>
    <thetext>Need to cook on bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421522</commentid>
    <comment_count>3</comment_count>
      <attachid>97349</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-15 13:01:19 -0700</bug_when>
    <thetext>Comment on attachment 97349
Patch

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

&gt; Source/WebCore/platform/qt/RenderThemeQt.cpp:189
&gt; +    QApplication defaultButtonFont = QApplication::font(&amp;button);

GAH! Didn&apos;t mean that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421530</commentid>
    <comment_count>4</comment_count>
      <attachid>97352</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-15 13:15:42 -0700</bug_when>
    <thetext>Created attachment 97352
Let&apos;s cook this on bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421547</commentid>
    <comment_count>5</comment_count>
      <attachid>97352</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-15 13:41:29 -0700</bug_when>
    <thetext>Comment on attachment 97352
Let&apos;s cook this on bots.

I am optimistic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421680</commentid>
    <comment_count>6</comment_count>
      <attachid>97352</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-15 18:12:23 -0700</bug_when>
    <thetext>Comment on attachment 97352
Let&apos;s cook this on bots.

Qt EWS and EFL EWS don&apos;t work for now.  Please pay attention when you land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422035</commentid>
    <comment_count>7</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-16 10:33:27 -0700</bug_when>
    <thetext>Committed r89039: &lt;http://trac.webkit.org/changeset/89039&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97349</attachid>
            <date>2011-06-15 12:54:55 -0700</date>
            <delta_ts>2011-06-15 13:15:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62748-20110615125454.patch</filename>
            <type>text/plain</type>
            <size>51303</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODg5NDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHNFZmwudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXgg
ODQ3NDc5MGQ2N2U2ODk1ZGM4MDJhMjA0ZmU3NGUxZWQyMTFlYmZlMi4uNzAxNDBlYzQ5OTM3ZGIw
OTNkZDRmNDM2NmQ4MGJjODI3ODk3YjMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKQEAg
LTMwLDcgKzMwLDYgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgIHBsYXRmb3JtL2Vm
bC9EcmFnRGF0YUVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL0RyYWdJbWFnZUVmbC5jcHAKICAgcGxh
dGZvcm0vZWZsL0V2ZW50TG9vcEVmbC5jcHAKLSAgcGxhdGZvcm0vZWZsL0ZpbGVDaG9vc2VyRWZs
LmNwcAogICBwbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL0tV
UkxFZmwuY3BwCiAgIHBsYXRmb3JtL2VmbC9MYW5ndWFnZUVmbC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHNXaW5DRS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzV2luQ0UudHh0CmluZGV4IDA5OWFjMzE4MWYwNzlkYWZkYjcwY2NmNmU3YWQ4MzcyNjNjODM3
MmEuLjNmZTU1MTRjMTY0NmNhMTI2NTNhNGIwYWY4ZGQyZDdlZDE3ZGNkNWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHNXaW5DRS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0c1dpbkNFLnR4dApAQCAtNTUsNyArNTUsNiBAQCBMSVNUKEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKICAgICBwbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcAogICAgIHBsYXRmb3JtL3dp
bi9FZGl0b3JXaW4uY3BwCiAgICAgcGxhdGZvcm0vd2luL0V2ZW50TG9vcFdpbi5jcHAKLSAgICBw
bGF0Zm9ybS93aW4vRmlsZUNob29zZXJXaW4uY3BwCiAgICAgcGxhdGZvcm0vd2luL0tleUV2ZW50
V2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9MYW5ndWFnZVdpbi5jcHAKICAgICBwbGF0Zm9ybS93
aW4vTG9jYWxpemVkU3RyaW5nc1dpbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YThjNGI3OTJjYzNmY2Ex
ZmEwZWNiYWFmYjZkMDg3YjAzMDZkMjFjLi41Y2YwNzBiYjA4YWU4NWI5Mjg2MTExNzhkMmYyNzlj
NTFlMTc1MzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMDYtMTUgIERpbWl0
cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIEZpbGVDaG9vc2VyOjpiYXNlbmFtZUZv
cldpZHRoIHRvIFJlbmRlclRoZW1lOjpmaWxlTGlzdE5hbWVGb3JXaWR0aCwgZWxpbWluYXRlIGdu
YXJseSBGaWxlQ2hvb3NlckZvbyBwcm9saWZlcmF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3NDgKKworICAgICAgICBSZWZhY3RvcmluZywg
Y292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIENNYWtlTGlzdHNFZmwudHh0
OiBSZW1vdmVkIEZpbGVDaG9vc2VyRm9vIGZyb20gYnVpbGQgc3lzdGVtLgorICAgICAgICAqIENN
YWtlTGlzdHNXaW5DRS50eHQ6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29y
ZS5vcmRlcjogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL0Zp
bGVDaG9vc2VyLmg6IFJlbW92ZWQgYmFzZU5hbWVGb3JXaWR0aCBkZWNsLgorICAgICAgICAqIHBs
YXRmb3JtL0ZpbGVTeXN0ZW0uaDogUmVtb3ZlZCBub3ctdW5uZWNlc3NhcnkgQ2hyb21pdW0tc3Bl
Y2lmaWMgY3J1ZnQuCisgICAgICAgICogcGxhdGZvcm0vYW5kcm9pZC9GaWxlQ2hvb3NlckFuZHJv
aWQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2JyZXcvRmlsZUNob29zZXJCcmV3
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9GaWxlQ2hvb3NlckNo
cm9taXVtLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lz
dGVtQ2hyb21pdW1MaW51eC5jcHA6IFJlbW92ZWQgbm93LXVubmVjZXNzYXJ5IGNvZGUuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9taXVtTWFjLm1tOiBEaXR0by4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hyb21pdW1XaW4uY3BwOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRmlsZUNob29zZXJFZmwuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9GaWxlQ2hvb3Nlckd0ay5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnN0cmluZ0J5QWRvcHRpbmdGaWxlU3lzdGVtUmVwcmVzZW50YXRpb24pOiBNb3ZlZCBmcm9t
IEZpbGVDaG9vc2VyR3RrLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OmZpbGVM
aXN0TmFtZUZvcldpZHRoKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmg6IEFkZGVkIGRlY2wuCisgICAgICAgICogcGxhdGZvcm0vaGFpa3UvRmlsZUNob29z
ZXJIYWlrdS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL0ZpbGVDaG9vc2Vy
TWFjLm1tOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L0ZpbGVDaG9vc2VyUXQuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6UmVuZGVyVGhlbWVRdCk6IE1vdmVkIGZyb20g
RmlsZUNob29zZXJRdC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OmZpbGVMaXN0
TmFtZUZvcldpZHRoKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVR
dC5oOiBBZGRlIGRlY2wuCisgICAgICAgICogcGxhdGZvcm0vd2luL0ZpbGVDaG9vc2VyV2luLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93eC9GaWxlQ2hvb3Nlcld4LmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmZpbGVUZXh0VmFsdWUp
OiBDaGFuZ2VkIHRvIHVzZSBSZW5kZXJUaGVtZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZpbGVMaXN0TmFtZUZv
cldpZHRoKTogQWRkZWQgZGVmYXVsdCBpbXBsLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZS5oOiBBZGRlZCBkZWNsLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5o
OiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6ZmlsZUxpc3ROYW1lRm9yV2lkdGgpOiBBZGRlZCBk
ZWZhdWx0IE1hYyBpbXBsLgorCiAyMDExLTA2LTE1ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Z29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMjVmZTAyMjk5YTg4NGI0MGZkYTgzZDdiZWNh
ODVmMDY1NmNkZjMxNS4uZmQzMGRlOTUxZTE5YTUyYzQ0NWM5OWY5Njk2ZmI4MTlmNTYyOWZmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODA0LDcgKzM4MDQsNiBAQCB3ZWJj
b3JlZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnRGF0
YUd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXZlbnRMb29wR3RrLmNwcCBcCi0JU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVDaG9vc2VyR3RrLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvR3RrQ2xpY2tDb3VudGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0d0a0NsaWNrQ291bnRlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAwZGExYTRmNjk4
NmUxZTBjNzc5OTBjNGNjZTc0NDk5ZDFlYjVjYjZlLi45NmU2ZDNkZjQwN2YxOTk1NWJlYjU3NzMy
OTc0ZWI0MjA1Njc1ODU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zNjU5LDcgKzM2NTksNiBAQAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2FuZHJvaWQvQ3Vyc29yQW5kcm9pZC5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2FuZHJvaWQvRHJhZ0RhdGFBbmRyb2lkLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vYW5kcm9pZC9FdmVudExvb3BBbmRyb2lkLmNwcCcsCi0gICAgICAgICAgICAn
cGxhdGZvcm0vYW5kcm9pZC9GaWxlQ2hvb3NlckFuZHJvaWQuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9hbmRyb2lkL0ZpbGVTeXN0ZW1BbmRyb2lkLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vYW5kcm9pZC9HZW9sb2NhdGlvblNlcnZpY2VBbmRyb2lkLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vYW5kcm9pZC9HZW9sb2NhdGlvblNlcnZpY2VBbmRyb2lkLmgnLApAQCAtMzc2
Niw3ICszNzY1LDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9icmV3L0N1cnNvckJyZXcuY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9icmV3L0RyYWdEYXRhQnJldy5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2JyZXcvRXZlbnRMb29wQnJldy5jcHAnLAotICAgICAgICAgICAgJ3Bs
YXRmb3JtL2JyZXcvRmlsZUNob29zZXJCcmV3LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
YnJldy9GaWxlU3lzdGVtQnJldy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2JyZXcvS1VS
TEJyZXcuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9icmV3L0xhbmd1YWdlQnJldy5jcHAn
LApAQCAtMzgyMSw3ICszODE5LDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9E
cmFnSW1hZ2VDaHJvbWl1bU1hYy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL0RyYWdJbWFnZVJlZi5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9GaWxl
Q2hvb3NlckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRmls
ZVN5c3RlbUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRmls
ZVN5c3RlbUNocm9taXVtTGludXguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1
bS9GaWxlU3lzdGVtQ2hyb21pdW1NYWMubW0nLApAQCAtMzg4NSw3ICszODgyLDYgQEAKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9lZmwvRHJhZ0RhdGFFZmwuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9lZmwvRHJhZ0ltYWdlRWZsLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZWZsL0V2
ZW50TG9vcEVmbC5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2VmbC9GaWxlQ2hvb3NlckVm
bC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2VmbC9GaWxlU3lzdGVtRWZsLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZWZsL0tVUkxFZmwuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9lZmwvTGFuZ3VhZ2VFZmwuY3BwJywKQEAgLTQ1OTEsNyArNDU4Nyw2IEBACiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3RrL0RyYWdEYXRhR3RrLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3RrL0RyYWdJbWFnZUd0ay5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2d0ay9FdmVu
dExvb3BHdGsuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ndGsvRmlsZUNob29zZXJHdGsu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2d0ay9HT3duUHRyR3RrLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vZ3RrL0dPd25QdHJHdGsuaCcsCkBAIC00NjQ0LDcgKzQ2MzksNiBAQAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2hhaWt1L0RyYWdEYXRhSGFpa3UuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9oYWlrdS9EcmFnSW1hZ2VIYWlrdS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2hh
aWt1L0V2ZW50TG9vcEhhaWt1LmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vaGFpa3UvRmls
ZUNob29zZXJIYWlrdS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2hhaWt1L0ZpbGVTeXN0
ZW1IYWlrdS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmlu
Z3NIYWlrdS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2hhaWt1L0xvZ2dpbmdIYWlrdS5j
cHAnLApAQCAtNDcxMiw3ICs0NzA2LDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvRHJh
Z0RhdGFNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0n
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0nLAotICAgICAgICAg
ICAgJ3BsYXRmb3JtL21hYy9GaWxlQ2hvb3Nlck1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZv
cm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9IVE1M
Q29udmVydGVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLm1t
JywKQEAgLTQ5MjksNyArNDkyMiw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvRHJhZ0Rh
dGFRdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3F0L0RyYWdJbWFnZVF0LmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vcXQvRXZlbnRMb29wUXQuY3BwJywKLSAgICAgICAgICAgICdw
bGF0Zm9ybS9xdC9GaWxlQ2hvb3NlclF0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQv
RmlsZVN5c3RlbVF0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvS1VSTFF0LmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvTGFuZ3VhZ2VRdC5jcHAnLApAQCAtNTA2MSw3ICs1
MDUzLDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS93aW4vRHJhZ0ltYWdlV2luLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vd2luL0VkaXRvcldpbi5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL3dpbi9FdmVudExvb3BXaW4uY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS93aW4v
RmlsZUNob29zZXJXaW4uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS93aW4vRmlsZVN5c3Rl
bVdpbi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50ZXIuaCcsCkBAIC01
MTE4LDcgKzUxMDksNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3d4L0RyYWdEYXRhV3guY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS93eC9EcmFnSW1hZ2VXeC5jcHAnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL3d4L0V2ZW50TG9vcFd4LmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0v
d3gvRmlsZUNob29zZXJXeC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3d4L0ZpbGVTeXN0
ZW1XeC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3d4L0tVUkxXeC5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL3d4L0tleUV2ZW50V2luLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRl
eCBlMmFlNzEwYjQwYWFmNjAyZDg0OWZmOGM4ZjY1MDk4NWU1MWE5NGRjLi45YmJmYjYwNGRlM2Q2
NzJjMDYxZDY1NGUxZmZmYWVjYmY1NjAxOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTc1NjQs
NyArNzU2NCw2IEBAIF9fWk43V2ViQ29yZTIySFRNTEZvcm1Db250cm9sRWxlbWVudDExc2V0RGlz
YWJsZWRFYgogX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDI5Y29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHNFdgogX19aTks3V2ViQ29yZTEzRmlsZUlucHV0VHlwZTEyaXNG
aWxlVXBsb2FkRXYKIF9fWk43V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wxMXBhaW50
T2JqZWN0RVJOU185UGFpbnRJbmZvRWlpCi1fX1pOSzdXZWJDb3JlMTFGaWxlQ2hvb3NlcjE2YmFz
ZW5hbWVGb3JXaWR0aEVSS05TXzRGb250RWkKIF9fWk43V2ViQ29yZTI5ZmlsZUJ1dHRvbk5vRmls
ZVNlbGVjdGVkTGFiZWxFdgogX19aTjdXZWJDb3JlMjdEZWZhdWx0TG9jYWxpemF0aW9uU3RyYXRl
Z3kyOWZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsRXYKIF9fWk43V2ViQ29yZTEyUmVuZGVy
T2JqZWN0MjNhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEViCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDNjMjcx
MzhkMTJjZDRiOGFkNDFhZjFlMTU1NmU4NTM1MDkxN2Y3NDQuLjk5YjNjMTc5ZjE5ODQyYzQ1M2Qx
NzEzNmIzYjUyMGU0ZjdhMTYxMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yNTM3LDcgKzI1MzcsNiBA
QCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcCBcCiAgICAgcGxh
dGZvcm0vcXQvRHJhZ0ltYWdlUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9FdmVudExvb3BRdC5j
cHAgXAotICAgIHBsYXRmb3JtL3F0L0ZpbGVDaG9vc2VyUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9x
dC9GaWxlU3lzdGVtUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9TaGFyZWRCdWZmZXJRdC5jcHAg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDYWNoZVF0LmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGNjOTAxZDhmMDI0Zjdi
YmUzYmZhYjQ2ODczZGJjN2Q5ZDQ1NzVmMjMuLjYxOTcwNmZjMDI1NDQ5ODhjMjdkZTkxMGQ2Y2Uw
ZjYzY2ViODhlZGUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCkBAIC0yNjg3NywxMCArMjY4NzcsNiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cd2luXEZpbGVDaG9vc2VyV2lu
LmNwcCIKLQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBsYXRmb3JtXHdpblxGaWxlU3lzdGVtV2luLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAwMjg1YmQzYjE1MjI5OWIyYmE4ZDZmOGZkMjFiZDQyOTY1ZDA3NWJiLi41NDE1MjI4OWFi
NTA4MWE4MTNjNDZjZmI5NWU5NTE3NDdiNmQ0ZGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MCw3ICs2MCw2IEBACiAJCTA2
NjhFMThCMEFERDk2MjQwMDQxMjhFMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NjhFMTg5MEFERDk2MjQwMDQxMjhFMCAvKiBQ
b3B1cE1lbnUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwNjY4RTE5MDBBREQ5NjQwMDA0MTI4RTAgLyogUG9wdXBNZW51TWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2OEUxOEUwQUREOTY0MDAw
NDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSAqLzsgfTsKIAkJMDY2Qzc3MkIwQUI2MDNCNzAwMjM4
Q0M0IC8qIEZpbGVDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNjZDNzcyQTBBQjYwM0I3MDAyMzhDQzQgLyogRmlsZUNob29zZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwNjZDNzcyRDBB
QjYwM0QyMDAyMzhDQzQgLyogRmlsZUNob29zZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjZDNzcyQzBBQjYwM0QyMDAyMzhDQzQgLyogRmls
ZUNob29zZXJNYWMubW0gKi87IH07CiAJCTA2NkM3NzMwMEFCNjAzRkQwMDIzOENDNCAvKiBSZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNjZDNzcyRTBBQjYwM0ZEMDAyMzhDQzQgLyogUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wuY3BwICovOyB9OwogCQkwNjZDNzczMTBBQjYwM0ZEMDAyMzhDQzQgLyogUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA2NkM3NzJGMEFCNjAzRkQwMDIzOENDNCAvKiBSZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbC5oICovOyB9OwogCQkwNkU4MUVENzBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50
R3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNkU4MUVENjBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3ND
b250ZXh0LmggKi87IH07CkBAIC02MzYyLDcgKzYzNjEsNiBAQAogCQkwNjY4RTE4OTBBREQ5NjI0
MDA0MTI4RTAgLyogUG9wdXBNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDY2OEUxOEUwQURE
OTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQb3B1cE1lbnVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA2NkM3NzJBMEFCNjAzQjcwMDIzOENDNCAvKiBGaWxlQ2hvb3Nlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZUNob29zZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMDY2Qzc3MkMwQUI2MDNEMjAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZpbGVDaG9vc2Vy
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNjZDNzcyRTBBQjYwM0ZEMDAy
MzhDQzQgLyogUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDY2Qzc3MkYwQUI2MDNGRDAwMjM4Q0M0IC8qIFJlbmRlckZp
bGVVcGxvYWRDb250cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNkU4
MUVENjBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQxNzEsNyArMTQxNjksNiBAQAog
CQkJCUE3Q0ZCM0Q0MEI3RUQxMTgwMDcwQzMyRCAvKiBEcmFnSW1hZ2VNYWMubW0gKi8sCiAJCQkJ
NURDODdFRUYxMTcxNkRGMjAwMUMwRTZEIC8qIEVtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oICov
LAogCQkJCTFDQTE5RTAzMERDMjU1OTUwMDY1QTk5NCAvKiBFdmVudExvb3BNYWMubW0gKi8sCi0J
CQkJMDY2Qzc3MkMwQUI2MDNEMjAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyTWFjLm1tICovLAogCQkJ
CTUxNEIzRjc1MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxlU3lzdGVtTWFjLm1tICovLAogCQkJCTkz
NUM0NzZDMDlBQzRENjMwMEE2QUFCNCAvKiBGb3VuZGF0aW9uRXh0cmFzLmggKi8sCiAJCQkJQzUz
OTJEMzMxMzI2QUQwMTAwMDQzRDM1IC8qIEhUTUxDb252ZXJ0ZXIuaCAqLywKQEAgLTIzODY0LDcg
KzIzODYxLDYgQEAKIAkJCQlGRDMxNjBDMDEyQjAyNzJBMDBDMUEzNTkgLyogRkZURnJhbWVNYWMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2RDZDODAxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM0RkU5RTUwQjVDQTUzOTAwM0U0QTczIC8qIEZpbGVD
aG9vc2VyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTA2NkM3NzJEMEFCNjAzRDIwMDIzOENDNCAv
KiBGaWxlQ2hvb3Nlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4NTYxMTIyQ0EwNjQw
MDNBQUJEQSAvKiBGaWxlRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ4MEUxMjQ4
QkQzQTAwMkIzRDg2IC8qIEZpbGVFbnRyeVN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1
QjNEQkQxMjUxRjEyRDAwM0VGMjY5IC8qIEZpbGVJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaAppbmRleCBhYzVlMGU2MGJjM2Y3NTUz
YTliMWIyNTRlZWNiYjlhOWEwMWQxNDQwLi5mMDRjNTUyOGUyOTViMDg5Njc0NTBjMThmZWFiZmJm
ZWY5NjVkY2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgKQEAgLTYxLDcg
KzYxLDYgQEAgcHVibGljOgogICAgIGJvb2wgZGlzY29ubmVjdGVkKCkgeyByZXR1cm4gIW1fY2xp
ZW50OyB9CiAKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKCkgY29uc3QgeyBy
ZXR1cm4gbV9maWxlbmFtZXM7IH0KLSAgICBTdHJpbmcgYmFzZW5hbWVGb3JXaWR0aChjb25zdCBG
b250JiwgaW50IHdpZHRoKSBjb25zdDsKIAogICAgIEljb24qIGljb24oKSBjb25zdCB7IHJldHVy
biBtX2ljb24uZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4
IDQxOGE2NDUxMTJjZjAwZThlYzU4ZTNlYmFjMjRjYjlmNDYwNmUyYTQuLjZmNGU4ZDQ3NDhiYjky
YmUwNGU0YTY1NDhhNDU2NjQyMzg3NWEyZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0ZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lz
dGVtLmgKQEAgLTIwMSwxMCArMjAxLDYgQEAgU3RyaW5nIGVuY29kZUZvckZpbGVOYW1lKGNvbnN0
IFN0cmluZyYpOwogUmV0YWluUHRyPENGVVJMUmVmPiBwYXRoQXNVUkwoY29uc3QgU3RyaW5nJik7
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotU3RyaW5nIHBhdGhHZXREaXNwbGF5
RmlsZU5hbWUoY29uc3QgU3RyaW5nJik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKEdUSykKIFN0
cmluZyBmaWxlbmFtZVRvU3RyaW5nKGNvbnN0IGNoYXIqKTsKIFN0cmluZyBmaWxlbmFtZUZvckRp
c3BsYXkoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hbmRyb2lkL0ZpbGVDaG9vc2VyQW5kcm9pZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hbmRyb2lkL0ZpbGVDaG9vc2VyQW5kcm9pZC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDY5ZDA4ODNhMDYwMGQ0YTFkYmFhYTg0NjI0NTA2OWY0MjUyODhjMmIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYW5kcm9pZC9GaWxlQ2hvb3NlckFuZHJvaWQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJj
ZSBQcm9qZWN0Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJGaWxlQ2hv
b3Nlci5oIgotCi0jaW5jbHVkZSAiRm9udC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0
cmluZyBGaWxlQ2hvb3Nlcjo6YmFzZW5hbWVGb3JXaWR0aChjb25zdCBGb250JiBmb250LCBpbnQg
d2lkdGgpIGNvbnN0IAotewotICAgIGlmICghbV9maWxlbmFtZXMuc2l6ZSgpKQotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7Ci0gICAgLy8gRklYTUU6IFRoaXMgY291bGQgYmUgYSBsb3QgZmFzdGVy
LCBidXQgYXNzdW1pbmcgdGhlIGRhdGEgd2lsbCBub3QKLSAgICAvLyBvZnRlbiBiZSBtdWNoIGxv
bmdlciB0aGFuIHRoZSBwcm92aWRlZCB3aWR0aCwgdGhpcyBtYXkgYmUgZmFzdCBlbm91Z2guCi0g
ICAgLy8gSWYgdGhpcyBkb2VzIG5vdCBuZWVkIHRvIGJlIHRocmVhZHNhZmUsIHdlIGNhbiB1c2Ug
Y3Jvc3NUaHJlYWRTdHJpbmcoKS4KLSAgICAvLyBTZWUgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvNDkxNjAuCi0gICAgU3RyaW5nIG91dHB1dCA9IG1fZmlsZW5hbWVzWzBdLnRocmVh
ZHNhZmVDb3B5KCk7Ci0gICAgd2hpbGUgKGZvbnQud2lkdGgoVGV4dFJ1bihvdXRwdXQuaW1wbCgp
KSkgPiB3aWR0aCAmJiBvdXRwdXQubGVuZ3RoKCkgPiA0KQotICAgICAgICBvdXRwdXQgPSBvdXRw
dXQucmVwbGFjZSgwLCA0LCBTdHJpbmcoIi4uLiIpKTsKLSAgICByZXR1cm4gb3V0cHV0OwotfQot
Ci0vLyBUaGUgZm9sbG93aW5nIHR3byBzdHJpbmdzIGFyZSB1c2VkIGZvciBGaWxlIFVwbG9hZCBm
b3JtIGNvbnRyb2wsIGllCi0vLyA8aW5wdXQgdHlwZT0iZmlsZSI+LiBUaGUgZmlyc3QgaXMgdGhl
IHRleHQgdGhhdCBhcHBlYXJzIG9uIHRoZSBidXR0b24KLS8vIHRoYXQgd2hlbiBwcmVzc2VkLCB0
aGUgdXNlciBjYW4gYnJvd3NlIGZvciBhbmQgc2VsZWN0IGEgZmlsZS4gVGhlCi0vLyBzZWNvbmQg
c3RyaW5nIGlzIHJlbmRlcmVkIG9uIHRoZSBzY3JlZW4gd2hlbiBubyBmaWxlIGhhcyBiZWVuIHNl
bGVjdGVkLgotU3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKQotewotICAgIHJldHVy
biBTdHJpbmcoIlVwbG9hZCBhIGZpbGUiKTsKLX0KLQotU3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVT
ZWxlY3RlZExhYmVsKCkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCJObyBmaWxlIHNlbGVjdGVkIik7
Ci19Ci0KLX0gLy8gbmFtZXNhcGNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2JyZXcvRmlsZUNob29zZXJCcmV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2JyZXcvRmlsZUNob29zZXJCcmV3LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzk3NTViYjVkNDUwOGNhODAwYjc4MGZkNmJhYzE4MmExMTRlZjFkYi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9icmV3L0ZpbGVDaG9vc2VyQnJldy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgot
ICogQ29weXJpZ2h0IChDKSAyMDA5IENvbXBhbnkgMTAwIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCi0KLSNpbmNsdWRlICJGaWxlU3lz
dGVtLmgiCi0jaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUgIlN0cmluZ1Ry
dW5jYXRvci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBGaWxlQ2hvb3Nlcjo6
YmFzZW5hbWVGb3JXaWR0aChjb25zdCBGb250JiBmb250LCBpbnQgd2lkdGgpIGNvbnN0Ci17Ci0g
ICAgaWYgKHdpZHRoIDw9IDApCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIFN0cmlu
ZyBzdHJpbmc7Ci0gICAgaWYgKG1fZmlsZW5hbWVzLmlzRW1wdHkoKSkKLSAgICAgICAgc3RyaW5n
ID0gZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKLSAgICBlbHNlIGlmIChtX2ZpbGVu
YW1lcy5zaXplKCkgPT0gMSkKLSAgICAgICAgc3RyaW5nID0gcGF0aEdldEZpbGVOYW1lKG1fZmls
ZW5hbWVzWzBdKTsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBTdHJpbmdUcnVuY2F0b3I6OnJp
Z2h0VHJ1bmNhdGUoU3RyaW5nOjpudW1iZXIobV9maWxlbmFtZXMuc2l6ZSgpKSArICIgZmlsZXMi
LCB3aWR0aCwgZm9udCwgZmFsc2UpOwotCi0gICAgcmV0dXJuIFN0cmluZ1RydW5jYXRvcjo6Y2Vu
dGVyVHJ1bmNhdGUoc3RyaW5nLCB3aWR0aCwgZm9udCwgZmFsc2UpOwotfQotCi19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9GaWxlQ2hvb3NlckNocm9taXVt
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZpbGVDaG9vc2VyQ2hyb21p
dW0uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkY2M3ZWIwMDc5ZDNmOTIxNjAx
OWNiMDMyOTZjNWZmNTI4MjY5M2MzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZpbGVDaG9vc2Vy
Q2hyb21pdW0uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgR29vZ2xlIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCi0KLSNpbmNsdWRlICJGaWxlU3lzdGVt
LmgiCi0jaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUgIlN0cmluZ1RydW5j
YXRvci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBGaWxlQ2hvb3Nlcjo6YmFz
ZW5hbWVGb3JXaWR0aChjb25zdCBGb250JiBmb250LCBpbnQgd2lkdGgpIGNvbnN0Ci17Ci0gICAg
aWYgKHdpZHRoIDw9IDApCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIFN0cmluZyBz
dHJpbmc7Ci0gICAgaWYgKG1fZmlsZW5hbWVzLmlzRW1wdHkoKSkKLSAgICAgICAgc3RyaW5nID0g
ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKLSAgICBlbHNlIGlmIChtX2ZpbGVuYW1l
cy5zaXplKCkgPT0gMSkKLSAgICAgICAgc3RyaW5nID0gcGF0aEdldERpc3BsYXlGaWxlTmFtZSht
X2ZpbGVuYW1lc1swXSk7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gU3RyaW5nVHJ1bmNhdG9y
OjpyaWdodFRydW5jYXRlKG11bHRpcGxlRmlsZVVwbG9hZFRleHQobV9maWxlbmFtZXMuc2l6ZSgp
KSwgd2lkdGgsIGZvbnQpOwotCi0gICAgcmV0dXJuIFN0cmluZ1RydW5jYXRvcjo6Y2VudGVyVHJ1
bmNhdGUoc3RyaW5nLCBzdGF0aWNfY2FzdDxmbG9hdD4od2lkdGgpLCBmb250KTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vRmlsZVN5c3RlbUNocm9taXVtTGludXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9taXVtTGludXguY3BwCmluZGV4IDI0ZjhkYTVh
NGVmYTg1MDUyOTFhNTA5ZWE5NzJiOGVlMjc1NTUwZjYuLmUzODhkZWUxNDZkZmMyZGY1MjJjMDVl
M2ZmZjY2ZTg2ZDFmNTkzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0ZpbGVTeXN0ZW1DaHJvbWl1bUxpbnV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hyb21pdW1MaW51eC5jcHAKQEAgLTM4LDkgKzM4
LDQgQEAgU3RyaW5nIHBhdGhHZXRGaWxlTmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgcmV0
dXJuIHBhdGguc3Vic3RyaW5nKHBhdGgucmV2ZXJzZUZpbmQoJy8nKSArIDEpOwogfQogCi1TdHJp
bmcgcGF0aEdldERpc3BsYXlGaWxlTmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAgcmV0
dXJuIHBhdGhHZXRGaWxlTmFtZShwYXRoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNo
cm9taXVtTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3Rl
bUNocm9taXVtTWFjLm1tCmluZGV4IDI5NTYzZGUyNTM4N2U0ZGJlY2ZjYjRiZmJmYmVjYzBhZjg3
YjllZTAuLjFmNTA3NWU5NDM4ZjhjN2E4OGQ4MTYyZDVjMWQ1YjNmNDMzY2FlNmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZpbGVTeXN0ZW1DaHJvbWl1bU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hy
b21pdW1NYWMubW0KQEAgLTQxLDkgKzQxLDQgQEAgU3RyaW5nIHBhdGhHZXRGaWxlTmFtZShjb25z
dCBTdHJpbmcmIHBhdGgpCiAgICAgcmV0dXJuIFtwYXRoIGxhc3RQYXRoQ29tcG9uZW50XTsKIH0K
IAotU3RyaW5nIHBhdGhHZXREaXNwbGF5RmlsZU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKQotewot
ICAgIHJldHVybiBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGRpc3BsYXlOYW1lQXRQ
YXRoOnBhdGhdOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hyb21pdW1XaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9taXVtV2luLmNw
cAppbmRleCAwZTYwNWRjZGJhNDk3YTY4Y2RjNTg0N2Q3YTk4ODRjYjg4YjRjNmU2Li43MDRjMzlh
MjYwYjE5NTgyNzg2YjRkOTYzNDdlNzJiMzIyZTZkYTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hyb21pdW1XaW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZpbGVTeXN0ZW1DaHJvbWl1bVdpbi5jcHAK
QEAgLTQxLDkgKzQxLDQgQEAgU3RyaW5nIHBhdGhHZXRGaWxlTmFtZShjb25zdCBTdHJpbmcmIHBh
dGgpCiAgICAgcmV0dXJuIFN0cmluZyhQYXRoRmluZEZpbGVOYW1lKFN0cmluZyhwYXRoKS5jaGFy
YWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpKSk7CiB9CiAKLVN0cmluZyBwYXRoR2V0RGlzcGxh
eUZpbGVOYW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAgICByZXR1cm4gcGF0aEdldEZpbGVO
YW1lKHBhdGgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZUNob29zZXJFZmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL0ZpbGVDaG9vc2VyRWZsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNmU2NDM2YjhhOGU3YzMyZjYyMmU0ZjJjMTcxM2RhMTU1ZTEzMmM0Zi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvRmlsZUNob29zZXJFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJl
eXRoZXIKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBJTmRUIC0gSW5zdGl0dXRvIE5va2lh
IGRlIFRlY25vbG9naWEKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJl
ZGRlZCBzeXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9u
aWNzCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgi
Ci0KLSNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSAiU3RyaW5nVHJ1bmNh
dG9yLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3RyaW5nIEZpbGVDaG9vc2VyOjpiYXNl
bmFtZUZvcldpZHRoKGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCkgY29uc3QKLXsKLSAgICBp
ZiAod2lkdGggPD0gMCkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgU3RyaW5nIHN0
cmluZzsKLSAgICBpZiAobV9maWxlbmFtZXMuaXNFbXB0eSgpKQotICAgICAgICBzdHJpbmcgPSBm
aWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAgIGVsc2UgaWYgKG1fZmlsZW5hbWVz
LnNpemUoKSA9PSAxKQotICAgICAgICBzdHJpbmcgPSBtX2ZpbGVuYW1lc1swXTsKLSAgICBlbHNl
Ci0gICAgICAgIHJldHVybiBTdHJpbmdUcnVuY2F0b3I6OnJpZ2h0VHJ1bmNhdGUobXVsdGlwbGVG
aWxlVXBsb2FkVGV4dChtX2ZpbGVuYW1lcy5zaXplKCkpLCB3aWR0aCwgZm9udCk7Ci0KLSAgICBy
ZXR1cm4gU3RyaW5nVHJ1bmNhdG9yOjpjZW50ZXJUcnVuY2F0ZShzdHJpbmcsIHN0YXRpY19jYXN0
PGZsb2F0Pih3aWR0aCksIGZvbnQpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvRmlsZUNob29zZXJHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0ZpbGVDaG9vc2VyR3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YjRiZGYzZjQxZWQ5NTk1ZThjMTBiOGUxZjdjMDU3N2FmZTdhNDEzZi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvRmlsZUNob29zZXJHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKLQotI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW0uaCIKLSNpbmNsdWRlICJJY29uLmgiCi0jaW5jbHVkZSAiTG9jYWxp
emVkU3RyaW5ncy5oIgotI2luY2x1ZGUgIlN0cmluZ1RydW5jYXRvci5oIgotI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KLQotI2luY2x1ZGUgPGdsaWIuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1zdGF0aWMgYm9vbCBzdHJpbmdCeUFkb3B0aW5nRmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKGdjaGFyKiBzeXN0ZW1GaWxlbmFtZSwgU3RyaW5nJiByZXN1bHQpCi17Ci0gICAgaWYgKCFz
eXN0ZW1GaWxlbmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmVzdWx0ID0gZmls
ZW5hbWVUb1N0cmluZyhzeXN0ZW1GaWxlbmFtZSk7Ci0gICAgZ19mcmVlKHN5c3RlbUZpbGVuYW1l
KTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi1TdHJpbmcgRmlsZUNob29zZXI6OmJhc2VuYW1l
Rm9yV2lkdGgoY29uc3QgRm9udCYgZm9udCwgaW50IHdpZHRoKSBjb25zdAotewotICAgIGlmICh3
aWR0aCA8PSAwKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICBTdHJpbmcgc3RyaW5n
ID0gZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKLQotICAgIGlmIChtX2ZpbGVuYW1l
cy5zaXplKCkgPT0gMSkgewotICAgICAgICBDU3RyaW5nIHN5c3RlbUZpbGVuYW1lID0gZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKG1fZmlsZW5hbWVzWzBdKTsKLSAgICAgICAgZ2NoYXIqIHN5c3Rl
bUJhc2VuYW1lID0gZ19wYXRoX2dldF9iYXNlbmFtZShzeXN0ZW1GaWxlbmFtZS5kYXRhKCkpOwot
ICAgICAgICBzdHJpbmdCeUFkb3B0aW5nRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHN5c3RlbUJh
c2VuYW1lLCBzdHJpbmcpOwotICAgIH0gZWxzZSBpZiAobV9maWxlbmFtZXMuc2l6ZSgpID4gMSkK
LSAgICAgICAgcmV0dXJuIFN0cmluZ1RydW5jYXRvcjo6cmlnaHRUcnVuY2F0ZShtdWx0aXBsZUZp
bGVVcGxvYWRUZXh0KG1fZmlsZW5hbWVzLnNpemUoKSksIHdpZHRoLCBmb250KTsKLQotICAgIHJl
dHVybiBTdHJpbmdUcnVuY2F0b3I6OmNlbnRlclRydW5jYXRlKHN0cmluZywgd2lkdGgsIGZvbnQp
OwotfQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5j
cHAKaW5kZXggMTQ2ODYyYmE1ZWVhNTQ2ODk4NTQ2YTM3N2M2MjVlNjQyMDliNmFkNS4uNjFiNDQ5
NjdjMWJiYTBlODAxOTZlNDgyMjZkZWE2NDQ0YjI3ZmUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCkBAIC0yNiwyMSArMjYsMjYgQEAKICNp
bmNsdWRlICJSZW5kZXJUaGVtZUd0ay5oIgogCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5o
IgorI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJHT3duUHRyLmgiCiAjaW5jbHVk
ZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJH
dGtWZXJzaW9uaW5nLmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJN
ZWRpYUNvbnRyb2xFbGVtZW50cy5oIgogI2luY2x1ZGUgIlBhaW50SW5mby5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtQ29udGV4dENhaXJvLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiU3RyaW5nVHJ1bmNhdG9yLmgiCiAjaW5jbHVk
ZSAiVGltZVJhbmdlcy5oIgogI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgiCiAjaW5j
bHVkZSA8Z2RrL2dkay5oPgorI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgRU5BQkxFKFBST0dSRVNTX1RB
RykKICNpbmNsdWRlICJSZW5kZXJQcm9ncmVzcy5oIgpAQCAtNjc3LDQgKzY4MiwzMiBAQCBJbnRS
ZWN0IFJlbmRlclRoZW1lR3RrOjpjYWxjdWxhdGVQcm9ncmVzc1JlY3QoUmVuZGVyT2JqZWN0KiBy
ZW5kZXJPYmplY3QsIGNvbnN0CiB9CiAjZW5kaWYKIAorc3RhdGljIGJvb2wgc3RyaW5nQnlBZG9w
dGluZ0ZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihnY2hhciogc3lzdGVtRmlsZW5hbWUsIFN0cmlu
ZyYgcmVzdWx0KQoreworICAgIGlmICghc3lzdGVtRmlsZW5hbWUpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJlc3VsdCA9IGZpbGVuYW1lVG9TdHJpbmcoc3lzdGVtRmlsZW5hbWUpOwor
ICAgIGdfZnJlZShzeXN0ZW1GaWxlbmFtZSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworU3Ry
aW5nIFJlbmRlclRoZW1lR3RrOjpmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZmlsZW5hbWVzLCBjb25zdCBGb250JiBmb250LCBpbnQgd2lkdGgpCit7CisgICAgaWYg
KHdpZHRoIDw9IDApCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIFN0cmluZyBzdHJp
bmcgPSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOworCisgICAgaWYgKGZpbGVuYW1l
cy5zaXplKCkgPT0gMSkgeworICAgICAgICBDU3RyaW5nIHN5c3RlbUZpbGVuYW1lID0gZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKGZpbGVuYW1lc1swXSk7CisgICAgICAgIGdjaGFyKiBzeXN0ZW1C
YXNlbmFtZSA9IGdfcGF0aF9nZXRfYmFzZW5hbWUoc3lzdGVtRmlsZW5hbWUuZGF0YSgpKTsKKyAg
ICAgICAgc3RyaW5nQnlBZG9wdGluZ0ZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzeXN0ZW1CYXNl
bmFtZSwgc3RyaW5nKTsKKyAgICB9IGVsc2UgaWYgKGZpbGVuYW1lcy5zaXplKCkgPiAxKQorICAg
ICAgICByZXR1cm4gU3RyaW5nVHJ1bmNhdG9yOjpyaWdodFRydW5jYXRlKG11bHRpcGxlRmlsZVVw
bG9hZFRleHQoZmlsZW5hbWVzLnNpemUoKSksIHdpZHRoLCBmb250KTsKKworICAgIHJldHVybiBT
dHJpbmdUcnVuY2F0b3I6OmNlbnRlclRydW5jYXRlKHN0cmluZywgd2lkdGgsIGZvbnQpOworfQor
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVH
dGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCmluZGV4
IDZhMjRkNTkxNGI0OGUyNWM1ZDM2YjY3YzVjZmEzZmFiM2YzYzlmYjUuLjcyYzAzYmZhYWExYWNi
MWQwNGQxMWZmMTc4MzRjMDg2MWVlMGE4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9SZW5kZXJUaGVtZUd0ay5oCkBAIC0xNzUsNiArMTc1LDggQEAgcHJvdGVjdGVkOgogICAg
IHZpcnR1YWwgYm9vbCBwYWludElubmVyU3BpbkJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAKIHByaXZhdGU6CisgICAgdmlydHVhbCBTdHJp
bmcgZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywg
Y29uc3QgRm9udCYsIGludCB3aWR0aCk7CisKICAgICB2b2lkIHBsYXRmb3JtSW5pdCgpOwogICAg
IHN0YXRpYyB2b2lkIHNldFRleHRJbnB1dEJvcmRlcnMoUmVuZGVyU3R5bGUqKTsKICAgICBzdGF0
aWMgZG91YmxlIGdldFNjcmVlbkRQSSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaGFpa3UvRmlsZUNob29zZXJIYWlrdS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9oYWlrdS9GaWxlQ2hvb3NlckhhaWt1LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggM2E0NGRlOGIzNTY4Zjg3MmE3NGZlNDM0ZWY0NzRiYjA5NTQwOWFmMi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9oYWlrdS9GaWxlQ2hvb3NlckhhaWt1LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJt
YW5uQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgUnlhbiBMZWF2ZW5nb29kIDxsZWF2
ZW5nb29kQGdtYWlsLmNvbT4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gKiBCb3N0b24sIE1BIDAyMTExLTEzMDcs
IFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZpbGVDaG9v
c2VyLmgiCi0KLSNpbmNsdWRlICJJY29uLmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
LQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBGaWxlQ2hvb3Nlcjo6YmFzZW5hbWVG
b3JXaWR0aChjb25zdCBGb250JiwgaW50IHdpZHRoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9GaWxlQ2hvb3Nlck1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9GaWxlQ2hvb3Nlck1hYy5tbQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDljMjQyNmJjNTFmM2MyN2U0NDk1N2IxZmZkY2Rj
ZjQwOGQ2MjJiYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRmlsZUNob29zZXJNYWMubW0KKysrIC9kZXYv
bnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAot
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAot
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKi8KLQotI2ltcG9ydCAiY29uZmln
LmgiCi0jaW1wb3J0ICJGaWxlQ2hvb3Nlci5oIgotCi0jaW1wb3J0ICJMb2NhbGl6ZWRTdHJpbmdz
LmgiCi0jaW1wb3J0ICJTaW1wbGVGb250RGF0YS5oIgotI2ltcG9ydCAiU3RyaW5nVHJ1bmNhdG9y
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKLVN0cmluZyBGaWxlQ2hvb3Nlcjo6YmFz
ZW5hbWVGb3JXaWR0aChjb25zdCBGb250JiBmb250LCBpbnQgd2lkdGgpIGNvbnN0Ci17Ci0gICAg
aWYgKHdpZHRoIDw9IDApCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIFN0cmluZyBz
dHJUb1RydW5jYXRlOwotICAgIGlmIChtX2ZpbGVuYW1lcy5pc0VtcHR5KCkpCi0gICAgICAgIHN0
clRvVHJ1bmNhdGUgPSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAgIGVsc2Ug
aWYgKG1fZmlsZW5hbWVzLnNpemUoKSA9PSAxKQotICAgICAgICBzdHJUb1RydW5jYXRlID0gW1tO
U0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBkaXNwbGF5TmFtZUF0UGF0aDoobV9maWxlbmFt
ZXNbMF0pXTsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBTdHJpbmdUcnVuY2F0b3I6OnJpZ2h0
VHJ1bmNhdGUobXVsdGlwbGVGaWxlVXBsb2FkVGV4dChtX2ZpbGVuYW1lcy5zaXplKCkpLCB3aWR0
aCwgZm9udCk7Ci0KLSAgICByZXR1cm4gU3RyaW5nVHJ1bmNhdG9yOjpjZW50ZXJUcnVuY2F0ZShz
dHJUb1RydW5jYXRlLCB3aWR0aCwgZm9udCk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVDaG9vc2VyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRmlsZUNob29zZXJRdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhiMWRmMGE5NjA3M2Q3OTIxNDY2YzQ5NTUyNjZmN2EzNTM1MzBhOTAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvRmlsZUNob29zZXJRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUu
b3JnPgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAq
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCi0K
LSNpbmNsdWRlICJGb250LmgiCi0jaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1
ZGUgPFFDb3JlQXBwbGljYXRpb24+Ci0jaW5jbHVkZSA8UUZvbnRNZXRyaWNzPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBGaWxlQ2hvb3Nlcjo6YmFzZW5hbWVGb3JXaWR0aChjb25z
dCBGb250JiBmLCBpbnQgd2lkdGgpIGNvbnN0Ci17Ci0gICAgaWYgKHdpZHRoIDw9IDApCi0gICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIFN0cmluZyBzdHJpbmc7Ci0gICAgaWYgKG1fZmls
ZW5hbWVzLmlzRW1wdHkoKSkKLSAgICAgICAgc3RyaW5nID0gZmlsZUJ1dHRvbk5vRmlsZVNlbGVj
dGVkTGFiZWwoKTsKLSAgICBlbHNlIGlmIChtX2ZpbGVuYW1lcy5zaXplKCkgPT0gMSkgewotICAg
ICAgICBTdHJpbmcgZm5hbWUgPSBtX2ZpbGVuYW1lc1swXTsKLSAgICAgICAgUUZvbnRNZXRyaWNz
IGZtKGYuZm9udCgpKTsKLSAgICAgICAgc3RyaW5nID0gZm0uZWxpZGVkVGV4dChmbmFtZSwgUXQ6
OkVsaWRlTGVmdCwgd2lkdGgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGludCBuID0gbV9maWxl
bmFtZXMuc2l6ZSgpOwotICAgICAgICBzdHJpbmcgPSBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xh
dGUoIlFXZWJQYWdlIiwgIiVuIGZpbGUocykiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm51bWJlciBvZiBjaG9zZW4gZmlsZSIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpDb2RlY0Zv
clRyLCBuKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3RyaW5nOwotfQotCi19Ci0KLS8vIHZpbTog
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5k
ZXJUaGVtZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQu
Y3BwCmluZGV4IDlkNGMzMzlmZDIzZTY3NGYxNjJkMjMzNGI0OGViZmM1NTNiZDNkY2MuLmJhMjhh
NThmNDhmOTdlNjEzMzBmYzE1MTc5MjczNDVmMWI1NGU4NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaWYgVVNF
KFFUX01PQklMRV9USEVNRSkKICNpbmNsdWRlICJRdE1vYmlsZVdlYlN0eWxlLmgiCiAjZW5kaWYK
KyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaWYgRU5BQkxFKFZJREVPKQogI2luY2x1
ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjZW5kaWYKQEAgLTY5LDcgKzcwLDkgQEAKIAog
I2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRQ29sb3I+CisjaW5jbHVkZSA8UUNv
cmVBcHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRRmlsZT4KKyNpbmNsdWRlIDxRRm9udE1ldHJpY3M+
CiAjaW5jbHVkZSA8UUxpbmVFZGl0PgogI2luY2x1ZGUgPFFNYWNTdHlsZT4KICNpbmNsdWRlIDxR
UGFpbnRlcj4KQEAgLTE4Myw3ICsxODYsNyBAQCBSZW5kZXJUaGVtZVF0OjpSZW5kZXJUaGVtZVF0
KFBhZ2UqIHBhZ2UpCiB7CiAgICAgUVB1c2hCdXR0b24gYnV0dG9uOwogICAgIGJ1dHRvbi5zZXRB
dHRyaWJ1dGUoUXQ6OldBX01hY1NtYWxsU2l6ZSk7Ci0gICAgUUZvbnQgZGVmYXVsdEJ1dHRvbkZv
bnQgPSBRQXBwbGljYXRpb246OmZvbnQoJmJ1dHRvbik7CisgICAgUUFwcGxpY2F0aW9uIGRlZmF1
bHRCdXR0b25Gb250ID0gUUFwcGxpY2F0aW9uOjpmb250KCZidXR0b24pOwogICAgIFFGb250SW5m
byBmb250SW5mbyhkZWZhdWx0QnV0dG9uRm9udCk7CiAgICAgbV9idXR0b25Gb250RmFtaWx5ID0g
ZGVmYXVsdEJ1dHRvbkZvbnQuZmFtaWx5KCk7CiAjaWZkZWYgUV9XU19NQUMKQEAgLTE1MDAsNiAr
MTUwMywyOCBAQCBkb3VibGUgUmVuZGVyVGhlbWVRdDo6Y2FyZXRCbGlua0ludGVydmFsKCkgY29u
c3QKICAgICByZXR1cm4gIFFBcHBsaWNhdGlvbjo6Y3Vyc29yRmxhc2hUaW1lKCkgLyAxMDAwLjAg
LyAyLjA7CiB9CiAKK1N0cmluZyBSZW5kZXJUaGVtZVF0OjpmaWxlTGlzdE5hbWVGb3JXaWR0aChj
b25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25zdCBGb250JiBmb250LCBpbnQgd2lk
dGgpCit7CisgICAgaWYgKHdpZHRoIDw9IDApCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKwor
ICAgIFN0cmluZyBzdHJpbmc7CisgICAgaWYgKGZpbGVuYW1lcy5pc0VtcHR5KCkpCisgICAgICAg
IHN0cmluZyA9IGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgZWxzZSBpZiAo
ZmlsZW5hbWVzLnNpemUoKSA9PSAxKSB7CisgICAgICAgIFN0cmluZyBmbmFtZSA9IGZpbGVuYW1l
c1swXTsKKyAgICAgICAgUUZvbnRNZXRyaWNzIGZtKGYuZm9udCgpKTsKKyAgICAgICAgc3RyaW5n
ID0gZm0uZWxpZGVkVGV4dChmbmFtZSwgUXQ6OkVsaWRlTGVmdCwgd2lkdGgpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGludCBuID0gZmlsZW5hbWVzLnNpemUoKTsKKyAgICAgICAgc3RyaW5nID0g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICIlbiBmaWxlKHMpIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJudW1iZXIgb2YgY2hv
c2VuIGZpbGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UUNvcmVBcHBsaWNhdGlvbjo6Q29kZWNGb3JUciwgbik7CisgICAgfQorCisgICAgcmV0dXJuIHN0
cmluZzsKK30KKwogfQogCiAvLyB2aW06IHRzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oCmluZGV4IDZkY2IxZTI3NTM3MWI3MDlhN2Y1N2UzMTli
NGNhOTM0ZDJiYzE0OGIuLjZkMTA0ZTY5YmExMmM2NzA1MDRhZDA3ODkyMjdjMDljZWUxZTcwYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgKQEAgLTE2MCw2
ICsxNjAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFDb250
cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25z
dDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3duRGlzYWJsZWRTdGF0ZUhhbmRsaW5nRm9yKENvbnRy
b2xQYXJ0KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiBwcml2YXRlOgorICAgIHZpcnR1YWwgU3Ry
aW5nIGZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMs
IGNvbnN0IEZvbnQmLCBpbnQgd2lkdGgpOworCiAgICAgdm9pZCBwYWludE1lZGlhQmFja2dyb3Vu
ZChRUGFpbnRlciogcGFpbnRlciwgY29uc3QgSW50UmVjdCYgcikgY29uc3Q7CiAgICAgZG91Ymxl
IG1lZGlhQ29udHJvbHNCYXNlbGluZU9wYWNpdHkoKSBjb25zdDsKICAgICBRQ29sb3IgZ2V0TWVk
aWFDb250cm9sRm9yZWdyb3VuZENvbG9yKFJlbmRlck9iamVjdCogbyA9IDApIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVDaG9vc2VyV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlQ2hvb3Nlcldpbi5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwOGEwNjc5NDMyNzg5NjdmOTk3ZDBjYWQxYmU5ZjA2MWVm
MjBlZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVDaG9vc2VyV2luLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKLQotI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIK
LSNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSAiU3RyaW5nVHJ1bmNhdG9y
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3RyaW5nIEZpbGVDaG9vc2VyOjpiYXNlbmFt
ZUZvcldpZHRoKGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCkgY29uc3QKLXsKLSAgICBpZiAo
d2lkdGggPD0gMCkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgU3RyaW5nIHN0cmlu
ZzsKLSAgICBpZiAobV9maWxlbmFtZXMuaXNFbXB0eSgpKQotICAgICAgICBzdHJpbmcgPSBmaWxl
QnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAgIGVsc2UgaWYgKG1fZmlsZW5hbWVzLnNp
emUoKSA9PSAxKQotICAgICAgICBzdHJpbmcgPSBwYXRoR2V0RmlsZU5hbWUobV9maWxlbmFtZXNb
MF0pOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIFN0cmluZ1RydW5jYXRvcjo6cmlnaHRUcnVu
Y2F0ZShTdHJpbmc6Om51bWJlcihtX2ZpbGVuYW1lcy5zaXplKCkpICsgIiBmaWxlcyIsIHdpZHRo
LCBmb250KTsKLQotICAgIHJldHVybiBTdHJpbmdUcnVuY2F0b3I6OmNlbnRlclRydW5jYXRlKHN0
cmluZywgd2lkdGgsIGZvbnQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9GaWxlQ2hvb3Nlcld4LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0ZpbGVDaG9vc2VyV3guY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzNDA2NWYzYmFiMTQ0N2I2OGQyYWM3NWQzNzBkYzIwODVlOWJmMGNiLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3d4L0ZpbGVDaG9vc2VyV3guY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKLQotI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3RyaW5nIEZpbGVD
aG9vc2VyOjpiYXNlbmFtZUZvcldpZHRoKGNvbnN0IEZvbnQmLCBpbnQgd2lkdGgpIGNvbnN0Ci17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLX0KLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250
cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHAKaW5kZXggZmYzODg0ZGE2YTA3Yjc3ZmRhOGM0ZmI4NGVkYWQyOGM1YTNkMDQwOC4uZGQ3
MzA2ZTU4NmZkMmU3MDUzZjQ1NTQxNmJiNDFkMDFjYjI5MjFkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCkBAIC0zMTUs
NyArMzE1LDcgQEAgU3RyaW5nIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpidXR0b25WYWx1ZSgp
CiAKIFN0cmluZyBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6ZmlsZVRleHRWYWx1ZSgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fZmlsZUNob29zZXItPmJhc2VuYW1lRm9yV2lkdGgoc3R5bGUoKS0+
Zm9udCgpLCBtYXhGaWxlbmFtZVdpZHRoKCkpOworICAgIHJldHVybiB0aGVtZSgpLT5maWxlTGlz
dE5hbWVGb3JXaWR0aChtX2ZpbGVDaG9vc2VyLT5maWxlbmFtZXMoKSwgc3R5bGUoKS0+Zm9udCgp
LCBtYXhGaWxlbmFtZVdpZHRoKCkpOwogfQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggNTU5ZjgwZmIyMjVm
NjM2YTYyNzVkNmU5YTZiZjFmNTQ5NmM3Y2NjYi4uMmMzZWY0Yzg4NjVhOTRlMmE2NDA0NGJjNTFk
MWM5OWYxODE2YTY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3Bw
CkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiRmxv
YXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
Rm9udFNlbGVjdG9yLmgiCkBAIC0zMiwxMiArMzMsMTQgQEAKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk1lZGlhQ29u
dHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhaW50SW5mby5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU3RyaW5nVHJ1bmNhdG9yLmgiCiAjaW5jbHVk
ZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgiCiAKICNpZiBFTkFCTEUoTUVURVJfVEFHKQpA
QCAtMTA5MSw0ICsxMDk0LDIxIEBAIENvbG9yIFJlbmRlclRoZW1lOjpmb2N1c1JpbmdDb2xvcigp
CiAgICAgcmV0dXJuIGN1c3RvbUZvY3VzUmluZ0NvbG9yKCkuaXNWYWxpZCgpID8gY3VzdG9tRm9j
dXNSaW5nQ29sb3IoKSA6IGRlZmF1bHRUaGVtZSgpLT5wbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKCk7
CiB9CiAKK1N0cmluZyBSZW5kZXJUaGVtZTo6ZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGZpbGVuYW1lcywgY29uc3QgRm9udCYgZm9udCwgaW50IHdpZHRoKQorewor
ICAgIGlmICh3aWR0aCA8PSAwKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBTdHJp
bmcgc3RyaW5nOworICAgIGlmIChmaWxlbmFtZXMuaXNFbXB0eSgpKQorICAgICAgICBzdHJpbmcg
PSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOworICAgIGVsc2UgaWYgKGZpbGVuYW1l
cy5zaXplKCkgPT0gMSkKKyAgICAgICAgc3RyaW5nID0gcGF0aEdldEZpbGVOYW1lKGZpbGVuYW1l
c1swXSk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gU3RyaW5nVHJ1bmNhdG9yOjpyaWdodFRy
dW5jYXRlKG11bHRpcGxlRmlsZVVwbG9hZFRleHQoZmlsZW5hbWVzLnNpemUoKSksIHdpZHRoLCBm
b250KTsKKworICAgIHJldHVybiBTdHJpbmdUcnVuY2F0b3I6OmNlbnRlclRydW5jYXRlKHN0cmlu
Zywgd2lkdGgsIGZvbnQpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggN2RmZTA1NjRhNTZhYzczN2U0Y2YzOTEz
NWNjMzlmMzAyMWMyNjc2Yy4uZDBmMTk0NmYxYTM3ZjIyMDhlYTRjMDI3MzhmZGY5Zjk0MDJhZjM3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTIwNCw2ICsyMDQs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFNob3dQbGFjZWhvbGRlcldoZW5G
b2N1c2VkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
SGF2ZVNwaW5CdXR0b24oSFRNTElucHV0RWxlbWVudCopIGNvbnN0OwogCisgICAgdmlydHVhbCBT
dHJpbmcgZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1l
cywgY29uc3QgRm9udCYsIGludCB3aWR0aCk7CisKIHByb3RlY3RlZDoKICAgICAvLyBUaGUgcGxh
dGZvcm0gc2VsZWN0aW9uIGNvbG9yLgogICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLmgKaW5kZXggYjkyM2IzZTJmOTY3NjViMTg3ZGYwZGZiNGMzNTg1MmMw
ZjYyM2ZhYi4uYmVmMjkxMzI1OTY2ZmIzNDRlMTFhNGYzZDM4ZmFiZGViNjJiMjQ0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTE3Nyw2ICsxNzcsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFNob3dQbGFjZWhvbGRlcldoZW5G
b2N1c2VkKCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgdmlydHVhbCBTdHJpbmcgZmlsZUxpc3RO
YW1lRm9yV2lkdGgoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgY29uc3QgRm9udCYs
IGludCB3aWR0aCkgY29uc3Q7CiAKICAgICBJbnRSZWN0IGluZmxhdGVSZWN0KGNvbnN0IEludFJl
Y3QmLCBjb25zdCBJbnRTaXplJiwgY29uc3QgaW50KiBtYXJnaW5zLCBmbG9hdCB6b29tTGV2ZWwg
PSAxLjBmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tCmluZGV4IDE1ZjQzMjFlZjkxMzYwNDRkYzBiMDM2Y2I0ZjhkYzU2NDRiZTRmNzguLmYxMzRj
OTE3YzBmODMyM2M2OGJlMzE5ZjQ0ZDgzNjI3N2UxZjdlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgIklt
YWdlLmgiCiAjaW1wb3J0ICJJbWFnZUJ1ZmZlci5oIgogI2ltcG9ydCAiTG9jYWxDdXJyZW50R3Jh
cGhpY3NDb250ZXh0LmgiCisjaW1wb3J0ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW1wb3J0ICJN
ZWRpYUNvbnRyb2xFbGVtZW50cy5oIgogI2ltcG9ydCAiUGFpbnRJbmZvLmgiCiAjaW1wb3J0ICJS
ZW5kZXJNZWRpYS5oIgpAQCAtNDEsNiArNDIsNyBAQAogI2ltcG9ydCAiUmVuZGVyU2xpZGVyLmgi
CiAjaW1wb3J0ICJSZW5kZXJWaWV3LmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKKyNpbXBv
cnQgIlN0cmluZ1RydW5jYXRvci5oIgogI2ltcG9ydCAiVGltZVJhbmdlcy5oIgogI2ltcG9ydCAi
VGhlbWVNYWMuaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKQEAgLTIwNDks
NCArMjA1MSwyMCBAQCBOU1NsaWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYlZl
cnRpY2FsKCkgY29uc3QKICAgICByZXR1cm4gbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpOwog
fQogCitTdHJpbmcgUmVuZGVyVGhlbWVNYWM6OmZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCkgY29u
c3QKK3sKKyAgICBpZiAod2lkdGggPD0gMCkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisg
ICAgU3RyaW5nIHN0clRvVHJ1bmNhdGU7CisgICAgaWYgKGZpbGVuYW1lcy5pc0VtcHR5KCkpCisg
ICAgICAgIHN0clRvVHJ1bmNhdGUgPSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwor
ICAgIGVsc2UgaWYgKGZpbGVuYW1lcy5zaXplKCkgPT0gMSkKKyAgICAgICAgc3RyVG9UcnVuY2F0
ZSA9IFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZGlzcGxheU5hbWVBdFBhdGg6KGZp
bGVuYW1lc1swXSldOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIFN0cmluZ1RydW5jYXRvcjo6
cmlnaHRUcnVuY2F0ZShtdWx0aXBsZUZpbGVVcGxvYWRUZXh0KGZpbGVuYW1lcy5zaXplKCkpLCB3
aWR0aCwgZm9udCk7CisKKyAgICByZXR1cm4gU3RyaW5nVHJ1bmNhdG9yOjpjZW50ZXJUcnVuY2F0
ZShzdHJUb1RydW5jYXRlLCB3aWR0aCwgZm9udCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97352</attachid>
            <date>2011-06-15 13:15:42 -0700</date>
            <delta_ts>2022-02-27 23:45:22 -0800</delta_ts>
            <desc>Let&apos;s cook this on bots.</desc>
            <filename>bug-62748-20110615131541.patch</filename>
            <type>text/plain</type>
            <size>50930</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODg5NjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHNFZmwudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXgg
ODQ3NDc5MGQ2N2U2ODk1ZGM4MDJhMjA0ZmU3NGUxZWQyMTFlYmZlMi4uNzAxNDBlYzQ5OTM3ZGIw
OTNkZDRmNDM2NmQ4MGJjODI3ODk3YjMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKQEAg
LTMwLDcgKzMwLDYgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgIHBsYXRmb3JtL2Vm
bC9EcmFnRGF0YUVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL0RyYWdJbWFnZUVmbC5jcHAKICAgcGxh
dGZvcm0vZWZsL0V2ZW50TG9vcEVmbC5jcHAKLSAgcGxhdGZvcm0vZWZsL0ZpbGVDaG9vc2VyRWZs
LmNwcAogICBwbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL0tV
UkxFZmwuY3BwCiAgIHBsYXRmb3JtL2VmbC9MYW5ndWFnZUVmbC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHNXaW5DRS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzV2luQ0UudHh0CmluZGV4IDA5OWFjMzE4MWYwNzlkYWZkYjcwY2NmNmU3YWQ4MzcyNjNjODM3
MmEuLjNmZTU1MTRjMTY0NmNhMTI2NTNhNGIwYWY4ZGQyZDdlZDE3ZGNkNWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHNXaW5DRS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0c1dpbkNFLnR4dApAQCAtNTUsNyArNTUsNiBAQCBMSVNUKEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKICAgICBwbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcAogICAgIHBsYXRmb3JtL3dp
bi9FZGl0b3JXaW4uY3BwCiAgICAgcGxhdGZvcm0vd2luL0V2ZW50TG9vcFdpbi5jcHAKLSAgICBw
bGF0Zm9ybS93aW4vRmlsZUNob29zZXJXaW4uY3BwCiAgICAgcGxhdGZvcm0vd2luL0tleUV2ZW50
V2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9MYW5ndWFnZVdpbi5jcHAKICAgICBwbGF0Zm9ybS93
aW4vTG9jYWxpemVkU3RyaW5nc1dpbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjY2VhMGQ0ZjIxMWFiNTJj
NTNhMjJhYTQ4ZGU2Njc2NTNkZDA1MzU0Li43ZmJiZjMyM2Q2NmZiNGVjYjAyYzFiNWYyYWNkZWY3
ODVhODE4YmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMDYtMTUgIERpbWl0
cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIEZpbGVDaG9vc2VyOjpiYXNlbmFtZUZv
cldpZHRoIHRvIFJlbmRlclRoZW1lOjpmaWxlTGlzdE5hbWVGb3JXaWR0aCwgZWxpbWluYXRlIGdu
YXJseSBGaWxlQ2hvb3NlckZvbyBwcm9saWZlcmF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3NDgKKworICAgICAgICBSZWZhY3RvcmluZywg
Y292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIENNYWtlTGlzdHNFZmwudHh0
OiBSZW1vdmVkIEZpbGVDaG9vc2VyRm9vIGZyb20gYnVpbGQgc3lzdGVtLgorICAgICAgICAqIENN
YWtlTGlzdHNXaW5DRS50eHQ6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29y
ZS5vcmRlcjogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL0Zp
bGVDaG9vc2VyLmg6IFJlbW92ZWQgYmFzZU5hbWVGb3JXaWR0aCBkZWNsLgorICAgICAgICAqIHBs
YXRmb3JtL0ZpbGVTeXN0ZW0uaDogUmVtb3ZlZCBub3ctdW5uZWNlc3NhcnkgQ2hyb21pdW0tc3Bl
Y2lmaWMgY3J1ZnQuCisgICAgICAgICogcGxhdGZvcm0vYW5kcm9pZC9GaWxlQ2hvb3NlckFuZHJv
aWQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2JyZXcvRmlsZUNob29zZXJCcmV3
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9GaWxlQ2hvb3NlckNo
cm9taXVtLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lz
dGVtQ2hyb21pdW1MaW51eC5jcHA6IFJlbW92ZWQgbm93LXVubmVjZXNzYXJ5IGNvZGUuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9taXVtTWFjLm1tOiBEaXR0by4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hyb21pdW1XaW4uY3BwOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRmlsZUNob29zZXJFZmwuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9GaWxlQ2hvb3Nlckd0ay5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnN0cmluZ0J5QWRvcHRpbmdGaWxlU3lzdGVtUmVwcmVzZW50YXRpb24pOiBNb3ZlZCBmcm9t
IEZpbGVDaG9vc2VyR3RrLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OmZpbGVM
aXN0TmFtZUZvcldpZHRoKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmg6IEFkZGVkIGRlY2wuCisgICAgICAgICogcGxhdGZvcm0vaGFpa3UvRmlsZUNob29z
ZXJIYWlrdS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL0ZpbGVDaG9vc2Vy
TWFjLm1tOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L0ZpbGVDaG9vc2VyUXQuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6UmVuZGVyVGhlbWVRdCk6IE1vdmVkIGZyb20g
RmlsZUNob29zZXJRdC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OmZpbGVMaXN0
TmFtZUZvcldpZHRoKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVR
dC5oOiBBZGRlIGRlY2wuCisgICAgICAgICogcGxhdGZvcm0vd2luL0ZpbGVDaG9vc2VyV2luLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93eC9GaWxlQ2hvb3Nlcld4LmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmZpbGVUZXh0VmFsdWUp
OiBDaGFuZ2VkIHRvIHVzZSBSZW5kZXJUaGVtZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZpbGVMaXN0TmFtZUZv
cldpZHRoKTogQWRkZWQgZGVmYXVsdCBpbXBsLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZS5oOiBBZGRlZCBkZWNsLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5o
OiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6ZmlsZUxpc3ROYW1lRm9yV2lkdGgpOiBBZGRlZCBk
ZWZhdWx0IE1hYyBpbXBsLgorCiAyMDExLTA2LTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3Yu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA1MzczOTgzMWRiZGIzYmJiZDY2ZjAz
YzM2MmFiNjExMDE5MmQ5NWFlLi43YTc2NTMwZDI1YWIyNGI3NDg2ZmJmOTlhODk4YjBmZmUzYWQ1
YzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM4MDIsNyArMzgwMiw2IEBA
IHdlYmNvcmVndGtfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Ry
YWdEYXRhR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RyYWdJbWFnZUd0
ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9FdmVudExvb3BHdGsuY3BwIFwK
LQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmlsZUNob29zZXJHdGsuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9HdGtDbGlja0NvdW50ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvR3RrQ2xpY2tDb3VudGVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGExNWVm
YWMxZGEzNzgxODE4NGFkZmRhNDZlMDc3ZGVkMjI1ZDg4ZDYuLjc3ODNlMWFkZTlkYzk0OTJlOGRh
MjJhODk3MjRiN2Y2YzQxMDQ3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTM2NTcsNyArMzY1Nyw2
IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vYW5kcm9pZC9DdXJzb3JBbmRyb2lkLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vYW5kcm9pZC9EcmFnRGF0YUFuZHJvaWQuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9hbmRyb2lkL0V2ZW50TG9vcEFuZHJvaWQuY3BwJywKLSAgICAgICAg
ICAgICdwbGF0Zm9ybS9hbmRyb2lkL0ZpbGVDaG9vc2VyQW5kcm9pZC5jcHAnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2FuZHJvaWQvRmlsZVN5c3RlbUFuZHJvaWQuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9hbmRyb2lkL0dlb2xvY2F0aW9uU2VydmljZUFuZHJvaWQuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9hbmRyb2lkL0dlb2xvY2F0aW9uU2VydmljZUFuZHJvaWQuaCcsCkBA
IC0zNzY0LDcgKzM3NjMsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2JyZXcvQ3Vyc29yQnJl
dy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2JyZXcvRHJhZ0RhdGFCcmV3LmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vYnJldy9FdmVudExvb3BCcmV3LmNwcCcsCi0gICAgICAgICAg
ICAncGxhdGZvcm0vYnJldy9GaWxlQ2hvb3NlckJyZXcuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9icmV3L0ZpbGVTeXN0ZW1CcmV3LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vYnJl
dy9LVVJMQnJldy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2JyZXcvTGFuZ3VhZ2VCcmV3
LmNwcCcsCkBAIC0zODE5LDcgKzM4MTcsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL0RyYWdJbWFnZUNocm9taXVtTWFjLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hy
b21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1Ta2lhLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Y2hyb21pdW0vRHJhZ0ltYWdlUmVmLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L0ZpbGVDaG9vc2VyQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1
bS9GaWxlU3lzdGVtQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1
bS9GaWxlU3lzdGVtQ2hyb21pdW1MaW51eC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2No
cm9taXVtL0ZpbGVTeXN0ZW1DaHJvbWl1bU1hYy5tbScsCkBAIC0zODgzLDcgKzM4ODAsNiBAQAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2VmbC9EcmFnSW1hZ2VFZmwuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9l
ZmwvRXZlbnRMb29wRWZsLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZWZsL0ZpbGVDaG9v
c2VyRWZsLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwuY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9lZmwvS1VSTEVmbC5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2VmbC9MYW5ndWFnZUVmbC5jcHAnLApAQCAtNDU4OSw3ICs0NTg1LDYgQEAKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ndGsvRHJhZ0RhdGFHdGsuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ndGsvRHJhZ0ltYWdlR3RrLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3Rr
L0V2ZW50TG9vcEd0ay5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2d0ay9GaWxlQ2hvb3Nl
ckd0ay5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3RrL0dPd25QdHJHdGsuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ndGsvR093blB0ckd0ay5oJywKQEAgLTQ2NDIsNyArNDYzNyw2IEBACiAgICAg
ICAgICAgICAncGxhdGZvcm0vaGFpa3UvRHJhZ0RhdGFIYWlrdS5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2hhaWt1L0RyYWdJbWFnZUhhaWt1LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vaGFpa3UvRXZlbnRMb29wSGFpa3UuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9oYWlr
dS9GaWxlQ2hvb3NlckhhaWt1LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vaGFpa3UvRmls
ZVN5c3RlbUhhaWt1LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vaGFpa3UvTG9jYWxpemVk
U3RyaW5nc0hhaWt1LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vaGFpa3UvTG9nZ2luZ0hh
aWt1LmNwcCcsCkBAIC00NzEwLDcgKzQ3MDQsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21h
Yy9EcmFnRGF0YU1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1h
Yy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbScsCi0gICAg
ICAgICAgICAncGxhdGZvcm0vbWFjL0ZpbGVDaG9vc2VyTWFjLm1tJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFj
L0hUTUxDb252ZXJ0ZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0
ZXIubW0nLApAQCAtNDkyNyw3ICs0OTIwLDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9E
cmFnRGF0YVF0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vcXQvRHJhZ0ltYWdlUXQuY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9FdmVudExvb3BRdC5jcHAnLAotICAgICAgICAg
ICAgJ3BsYXRmb3JtL3F0L0ZpbGVDaG9vc2VyUXQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9xdC9GaWxlU3lzdGVtUXQuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9LVVJMUXQu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9xdC9MYW5ndWFnZVF0LmNwcCcsCkBAIC01MDU5
LDcgKzUwNTEsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS93aW4vRWRpdG9yV2luLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vd2luL0V2ZW50TG9vcFdpbi5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3Jt
L3dpbi9GaWxlQ2hvb3Nlcldpbi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3dpbi9GaWxl
U3lzdGVtV2luLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50
ZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRlci5oJywK
QEAgLTUxMTYsNyArNTEwNyw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vd3gvRHJhZ0RhdGFX
eC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3d4L0RyYWdJbWFnZVd4LmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vd3gvRXZlbnRMb29wV3guY3BwJywKLSAgICAgICAgICAgICdwbGF0
Zm9ybS93eC9GaWxlQ2hvb3Nlcld4LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vd3gvRmls
ZVN5c3RlbVd4LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vd3gvS1VSTFd4LmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vd3gvS2V5RXZlbnRXaW4uY3BwJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CmluZGV4IDA1MmQ3YmRkMjljMzYzZGRjZmJiM2E2OWFhMDQ5MTlmNzhlMWU5MzMuLjk5ODE0NGUx
ZDgyNWE2MzYzYmUxOTNmYjRjNzczZjYzMGZmNDkzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAt
NzU2NCw3ICs3NTY0LDYgQEAgX19aTjdXZWJDb3JlMjJIVE1MRm9ybUNvbnRyb2xFbGVtZW50MTFz
ZXREaXNhYmxlZEViCiBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMjljb21w
dXRlUHJlZmVycmVkTG9naWNhbFdpZHRoc0V2CiBfX1pOSzdXZWJDb3JlMTNGaWxlSW5wdXRUeXBl
MTJpc0ZpbGVVcGxvYWRFdgogX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDEx
cGFpbnRPYmplY3RFUk5TXzlQYWludEluZm9FaWkKLV9fWk5LN1dlYkNvcmUxMUZpbGVDaG9vc2Vy
MTZiYXNlbmFtZUZvcldpZHRoRVJLTlNfNEZvbnRFaQogX19aTjdXZWJDb3JlMjlmaWxlQnV0dG9u
Tm9GaWxlU2VsZWN0ZWRMYWJlbEV2CiBfX1pON1dlYkNvcmUyN0RlZmF1bHRMb2NhbGl6YXRpb25T
dHJhdGVneTI5ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWxFdgogX19aTjdXZWJDb3JlMTJS
ZW5kZXJPYmplY3QyM2Fic29sdXRlQm91bmRpbmdCb3hSZWN0RWIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXgg
MDk4ODI4YzY5ZjA4YzYyZThiYTUxNzE1NWUzMjkwMGI5NjA1YzBlYi4uZjNjMGI2NWM4NTM0OTQ5
MGJjNWFjMTZiN2RhZWM0ZjQ4OTFmZDA3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTI1MzUsNyArMjUz
NSw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL3F0L0RyYWdEYXRhUXQuY3BwIFwKICAg
ICBwbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0V2ZW50TG9v
cFF0LmNwcCBcCi0gICAgcGxhdGZvcm0vcXQvRmlsZUNob29zZXJRdC5jcHAgXAogICAgIHBsYXRm
b3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1NoYXJlZEJ1ZmZlclF0
LmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udENhY2hlUXQuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYmMyMmVmOGQx
NGE4MDQ4Y2IyNGZlNWNmY2I0ZGEzNzRhN2ZhYzM2Ny4uZGRmNDRjODU2ZTdhZTc2YWJjZTZkNTk3
ODY5MDMyZWNiNWE0YjJkMSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTI2ODc3LDEwICsyNjg3Nyw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cRmlsZUNob29z
ZXJXaW4uY3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGxhdGZvcm1cd2luXEZpbGVTeXN0ZW1XaW4uY3BwIgogCQkJCQk+CiAJCQkJPC9G
aWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGJhMWQ0ODk1YTNmMWI1MjU2YWQ2YzA5NDFmZGNiYmVlNjI0MDVlYjguLjBmMjYw
Zjc2NWZjNDFjOWVhNzUxOWUwOWFmNjk3NjBmNWViM2U3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYwLDcgKzYwLDYgQEAK
IAkJMDY2OEUxOEIwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDY2OEUxODkwQUREOTYyNDAwNDEyOEUw
IC8qIFBvcHVwTWVudS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTA2NjhFMTkwMEFERDk2NDAwMDQxMjhFMCAvKiBQb3B1cE1lbnVNYWMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjY4RTE4RTBBREQ5
NjQwMDA0MTI4RTAgLyogUG9wdXBNZW51TWFjLm1tICovOyB9OwogCQkwNjZDNzcyQjBBQjYwM0I3
MDAyMzhDQzQgLyogRmlsZUNob29zZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA2NkM3NzJBMEFCNjAzQjcwMDIzOENDNCAvKiBGaWxlQ2hvb3Nlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTA2NkM3
NzJEMEFCNjAzRDIwMDIzOENDNCAvKiBGaWxlQ2hvb3Nlck1hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NkM3NzJDMEFCNjAzRDIwMDIzOENDNCAv
KiBGaWxlQ2hvb3Nlck1hYy5tbSAqLzsgfTsKIAkJMDY2Qzc3MzAwQUI2MDNGRDAwMjM4Q0M0IC8q
IFJlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA2NkM3NzJFMEFCNjAzRkQwMDIzOENDNCAvKiBSZW5kZXJGaWxl
VXBsb2FkQ29udHJvbC5jcHAgKi87IH07CiAJCTA2NkM3NzMxMEFCNjAzRkQwMDIzOENDNCAvKiBS
ZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDY2Qzc3MkYwQUI2MDNGRDAwMjM4Q0M0IC8qIFJlbmRlckZpbGVVcGxv
YWRDb250cm9sLmggKi87IH07CiAJCTA2RTgxRUQ3MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1
cnJlbnRHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFw
aGljc0NvbnRleHQuaCAqLzsgfTsKQEAgLTYzNjAsNyArNjM1OSw2IEBACiAJCTA2NjhFMTg5MEFE
RDk2MjQwMDQxMjhFMCAvKiBQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBvcHVwTWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNjY4RTE4
RTBBREQ5NjQwMDA0MTI4RTAgLyogUG9wdXBNZW51TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvcHVwTWVudU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDY2Qzc3MkEwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlQ2hvb3Nlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkwNjZDNzcyQzBBQjYwM0QyMDAyMzhDQzQgLyogRmlsZUNob29z
ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmlsZUNo
b29zZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA2NkM3NzJFMEFCNjAz
RkQwMDIzOENDNCAvKiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNjZDNzcyRjBBQjYwM0ZEMDAyMzhDQzQgLyogUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbmRlckZpbGVVcGxvYWRDb250cm9sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxDdXJyZW50R3JhcGhpY3ND
b250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDE2NSw3ICsxNDE2Myw2
IEBACiAJCQkJQTdDRkIzRDQwQjdFRDExODAwNzBDMzJEIC8qIERyYWdJbWFnZU1hYy5tbSAqLywK
IAkJCQk1REM4N0VFRjExNzE2REYyMDAxQzBFNkQgLyogRW1wdHlQcm90b2NvbERlZmluaXRpb25z
LmggKi8sCiAJCQkJMUNBMTlFMDMwREMyNTU5NTAwNjVBOTk0IC8qIEV2ZW50TG9vcE1hYy5tbSAq
LywKLQkJCQkwNjZDNzcyQzBBQjYwM0QyMDAyMzhDQzQgLyogRmlsZUNob29zZXJNYWMubW0gKi8s
CiAJCQkJNTE0QjNGNzUwQzcyMjA1NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gKi8sCiAJ
CQkJOTM1QzQ3NkMwOUFDNEQ2MzAwQTZBQUI0IC8qIEZvdW5kYXRpb25FeHRyYXMuaCAqLywKIAkJ
CQlDNTM5MkQzMzEzMjZBRDAxMDAwNDNEMzUgLyogSFRNTENvbnZlcnRlci5oICovLApAQCAtMjM4
NTcsNyArMjM4NTQsNiBAQAogCQkJCUZEMzE2MEMwMTJCMDI3MkEwMEMxQTM1OSAvKiBGRlRGcmFt
ZU1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzZENkM4MDEyMkI4QTNEMDAxRkQxRjcgLyog
RmlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzRGRTlFNTBCNUNBNTM5MDAzRTRBNzMgLyog
RmlsZUNob29zZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMDY2Qzc3MkQwQUI2MDNEMjAwMjM4
Q0M0IC8qIEZpbGVDaG9vc2VyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODk4Nzg1NjExMjJD
QTA2NDAwM0FBQkRBIC8qIEZpbGVFbnRyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTNDNDgw
RTEyNDhCRDNBMDAyQjNEODYgLyogRmlsZUVudHJ5U3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGNTVCM0RCRDEyNTFGMTJEMDAzRUYyNjkgLyogRmlsZUlucHV0VHlwZS5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCmluZGV4IGFjNWUwZTYwYmMz
Zjc1NTNhOWIxYjI1NGVlY2JiOWE5YTAxZDE0NDAuLmYwNGM1NTI4ZTI5NWIwODk2NzQ1MGMxOGZl
YWJmYmZlZjk2NWRjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVD
aG9vc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaApAQCAt
NjEsNyArNjEsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNjb25uZWN0ZWQoKSB7IHJldHVybiAh
bV9jbGllbnQ7IH0KIAogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMoKSBjb25z
dCB7IHJldHVybiBtX2ZpbGVuYW1lczsgfQotICAgIFN0cmluZyBiYXNlbmFtZUZvcldpZHRoKGNv
bnN0IEZvbnQmLCBpbnQgd2lkdGgpIGNvbnN0OwogCiAgICAgSWNvbiogaWNvbigpIGNvbnN0IHsg
cmV0dXJuIG1faWNvbi5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgK
aW5kZXggNDE4YTY0NTExMmNmMDBlOGVjNThlM2ViYWMyNGNiOWY0NjA2ZTJhNC4uNmY0ZThkNDc0
OGJiOTJiZTA0ZTRhNjU0OGE0NTY2NDIzODc1YTJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Zp
bGVTeXN0ZW0uaApAQCAtMjAxLDEwICsyMDEsNiBAQCBTdHJpbmcgZW5jb2RlRm9yRmlsZU5hbWUo
Y29uc3QgU3RyaW5nJik7CiBSZXRhaW5QdHI8Q0ZVUkxSZWY+IHBhdGhBc1VSTChjb25zdCBTdHJp
bmcmKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi1TdHJpbmcgcGF0aEdldERp
c3BsYXlGaWxlTmFtZShjb25zdCBTdHJpbmcmKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oR1RL
KQogU3RyaW5nIGZpbGVuYW1lVG9TdHJpbmcoY29uc3QgY2hhciopOwogU3RyaW5nIGZpbGVuYW1l
Rm9yRGlzcGxheShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2FuZHJvaWQvRmlsZUNob29zZXJBbmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2FuZHJvaWQvRmlsZUNob29zZXJBbmRyb2lkLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjlkMDg4M2EwNjAwZDRhMWRiYWFhODQ2MjQ1MDY5ZjQyNTI4OGMyYi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hbmRyb2lkL0ZpbGVDaG9vc2VyQW5kcm9pZC5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IDIwMDYsIFRoZSBBbmRyb2lkIE9wZW4g
U291cmNlIFByb2plY3QKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZp
bGVDaG9vc2VyLmgiCi0KLSNpbmNsdWRlICJGb250LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotU3RyaW5nIEZpbGVDaG9vc2VyOjpiYXNlbmFtZUZvcldpZHRoKGNvbnN0IEZvbnQmIGZvbnQs
IGludCB3aWR0aCkgY29uc3QgCi17Ci0gICAgaWYgKCFtX2ZpbGVuYW1lcy5zaXplKCkpCi0gICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICAvLyBGSVhNRTogVGhpcyBjb3VsZCBiZSBhIGxvdCBm
YXN0ZXIsIGJ1dCBhc3N1bWluZyB0aGUgZGF0YSB3aWxsIG5vdAotICAgIC8vIG9mdGVuIGJlIG11
Y2ggbG9uZ2VyIHRoYW4gdGhlIHByb3ZpZGVkIHdpZHRoLCB0aGlzIG1heSBiZSBmYXN0IGVub3Vn
aC4KLSAgICAvLyBJZiB0aGlzIGRvZXMgbm90IG5lZWQgdG8gYmUgdGhyZWFkc2FmZSwgd2UgY2Fu
IHVzZSBjcm9zc1RocmVhZFN0cmluZygpLgotICAgIC8vIFNlZSBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC80OTE2MC4KLSAgICBTdHJpbmcgb3V0cHV0ID0gbV9maWxlbmFtZXNbMF0u
dGhyZWFkc2FmZUNvcHkoKTsKLSAgICB3aGlsZSAoZm9udC53aWR0aChUZXh0UnVuKG91dHB1dC5p
bXBsKCkpKSA+IHdpZHRoICYmIG91dHB1dC5sZW5ndGgoKSA+IDQpCi0gICAgICAgIG91dHB1dCA9
IG91dHB1dC5yZXBsYWNlKDAsIDQsIFN0cmluZygiLi4uIikpOwotICAgIHJldHVybiBvdXRwdXQ7
Ci19Ci0KLS8vIFRoZSBmb2xsb3dpbmcgdHdvIHN0cmluZ3MgYXJlIHVzZWQgZm9yIEZpbGUgVXBs
b2FkIGZvcm0gY29udHJvbCwgaWUKLS8vIDxpbnB1dCB0eXBlPSJmaWxlIj4uIFRoZSBmaXJzdCBp
cyB0aGUgdGV4dCB0aGF0IGFwcGVhcnMgb24gdGhlIGJ1dHRvbgotLy8gdGhhdCB3aGVuIHByZXNz
ZWQsIHRoZSB1c2VyIGNhbiBicm93c2UgZm9yIGFuZCBzZWxlY3QgYSBmaWxlLiBUaGUKLS8vIHNl
Y29uZCBzdHJpbmcgaXMgcmVuZGVyZWQgb24gdGhlIHNjcmVlbiB3aGVuIG5vIGZpbGUgaGFzIGJl
ZW4gc2VsZWN0ZWQuCi1TdHJpbmcgZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpCi17Ci0gICAg
cmV0dXJuIFN0cmluZygiVXBsb2FkIGEgZmlsZSIpOwotfQotCi1TdHJpbmcgZmlsZUJ1dHRvbk5v
RmlsZVNlbGVjdGVkTGFiZWwoKQotewotICAgIHJldHVybiBTdHJpbmcoIk5vIGZpbGUgc2VsZWN0
ZWQiKTsKLX0KLQotfSAvLyBuYW1lc2FwY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYnJldy9GaWxlQ2hvb3NlckJyZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYnJldy9GaWxlQ2hvb3NlckJyZXcuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3OTc1NWJiNWQ0NTA4Y2E4MDBiNzgwZmQ2YmFjMTgyYTExNGVmMWRiLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2JyZXcvRmlsZUNob29zZXJCcmV3LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUzICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJ
bmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQ29tcGFueSAxMDAgSW5jLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKLQotI2luY2x1ZGUgIkZp
bGVTeXN0ZW0uaCIKLSNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSAiU3Ry
aW5nVHJ1bmNhdG9yLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3RyaW5nIEZpbGVDaG9v
c2VyOjpiYXNlbmFtZUZvcldpZHRoKGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCkgY29uc3QK
LXsKLSAgICBpZiAod2lkdGggPD0gMCkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAg
U3RyaW5nIHN0cmluZzsKLSAgICBpZiAobV9maWxlbmFtZXMuaXNFbXB0eSgpKQotICAgICAgICBz
dHJpbmcgPSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAgIGVsc2UgaWYgKG1f
ZmlsZW5hbWVzLnNpemUoKSA9PSAxKQotICAgICAgICBzdHJpbmcgPSBwYXRoR2V0RmlsZU5hbWUo
bV9maWxlbmFtZXNbMF0pOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIFN0cmluZ1RydW5jYXRv
cjo6cmlnaHRUcnVuY2F0ZShTdHJpbmc6Om51bWJlcihtX2ZpbGVuYW1lcy5zaXplKCkpICsgIiBm
aWxlcyIsIHdpZHRoLCBmb250LCBmYWxzZSk7Ci0KLSAgICByZXR1cm4gU3RyaW5nVHJ1bmNhdG9y
OjpjZW50ZXJUcnVuY2F0ZShzdHJpbmcsIHdpZHRoLCBmb250LCBmYWxzZSk7Ci19Ci0KLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZpbGVDaG9vc2VyQ2hy
b21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRmlsZUNob29zZXJD
aHJvbWl1bS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjYzdlYjAwNzlkM2Y5
MjE2MDE5Y2IwMzI5NmM1ZmY1MjgyNjkzYzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRmlsZUNo
b29zZXJDaHJvbWl1bS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBHb29nbGUgSW5jLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKLQotI2luY2x1ZGUgIkZpbGVT
eXN0ZW0uaCIKLSNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSAiU3RyaW5n
VHJ1bmNhdG9yLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3RyaW5nIEZpbGVDaG9vc2Vy
OjpiYXNlbmFtZUZvcldpZHRoKGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCkgY29uc3QKLXsK
LSAgICBpZiAod2lkdGggPD0gMCkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgU3Ry
aW5nIHN0cmluZzsKLSAgICBpZiAobV9maWxlbmFtZXMuaXNFbXB0eSgpKQotICAgICAgICBzdHJp
bmcgPSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotICAgIGVsc2UgaWYgKG1fZmls
ZW5hbWVzLnNpemUoKSA9PSAxKQotICAgICAgICBzdHJpbmcgPSBwYXRoR2V0RGlzcGxheUZpbGVO
YW1lKG1fZmlsZW5hbWVzWzBdKTsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBTdHJpbmdUcnVu
Y2F0b3I6OnJpZ2h0VHJ1bmNhdGUobXVsdGlwbGVGaWxlVXBsb2FkVGV4dChtX2ZpbGVuYW1lcy5z
aXplKCkpLCB3aWR0aCwgZm9udCk7Ci0KLSAgICByZXR1cm4gU3RyaW5nVHJ1bmNhdG9yOjpjZW50
ZXJUcnVuY2F0ZShzdHJpbmcsIHN0YXRpY19jYXN0PGZsb2F0Pih3aWR0aCksIGZvbnQpOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hyb21pdW1MaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hyb21pdW1MaW51eC5jcHAKaW5kZXggMjRm
OGRhNWE0ZWZhODUwNTI5MWE1MDllYTk3MmI4ZWUyNzU1NTBmNi4uZTM4OGRlZTE0NmRmYzJkZjUy
MmMwNWUzZmZmNjZlODZkMWY1OTNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9taXVtTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZpbGVTeXN0ZW1DaHJvbWl1bUxpbnV4LmNwcApAQCAtMzgs
OSArMzgsNCBAQCBTdHJpbmcgcGF0aEdldEZpbGVOYW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKICAg
ICByZXR1cm4gcGF0aC5zdWJzdHJpbmcocGF0aC5yZXZlcnNlRmluZCgnLycpICsgMSk7CiB9CiAK
LVN0cmluZyBwYXRoR2V0RGlzcGxheUZpbGVOYW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAg
ICByZXR1cm4gcGF0aEdldEZpbGVOYW1lKHBhdGgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lz
dGVtQ2hyb21pdW1NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9GaWxl
U3lzdGVtQ2hyb21pdW1NYWMubW0KaW5kZXggMjk1NjNkZTI1Mzg3ZTRkYmVjZmNiNGJmYmZiZWNj
MGFmODdiOWVlMC4uMWY1MDc1ZTk0MzhmOGM3YTg4ZDgxNjJkNWMxZDViM2Y0MzNjYWU2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9t
aXVtTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZpbGVTeXN0
ZW1DaHJvbWl1bU1hYy5tbQpAQCAtNDEsOSArNDEsNCBAQCBTdHJpbmcgcGF0aEdldEZpbGVOYW1l
KGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICByZXR1cm4gW3BhdGggbGFzdFBhdGhDb21wb25lbnRd
OwogfQogCi1TdHJpbmcgcGF0aEdldERpc3BsYXlGaWxlTmFtZShjb25zdCBTdHJpbmcmIHBhdGgp
Ci17Ci0gICAgcmV0dXJuIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZGlzcGxheU5h
bWVBdFBhdGg6cGF0aF07Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZpbGVTeXN0ZW1DaHJvbWl1bVdpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hyb21pdW1X
aW4uY3BwCmluZGV4IDBlNjA1ZGNkYmE0OTdhNjhjZGM1ODQ3ZDdhOTg4NGNiODhiNGM2ZTYuLjcw
NGMzOWEyNjBiMTk1ODI3ODZiNGQ5NjM0N2U3MmIzMjJlNmRhODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZpbGVTeXN0ZW1DaHJvbWl1bVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9taXVtV2lu
LmNwcApAQCAtNDEsOSArNDEsNCBAQCBTdHJpbmcgcGF0aEdldEZpbGVOYW1lKGNvbnN0IFN0cmlu
ZyYgcGF0aCkKICAgICByZXR1cm4gU3RyaW5nKFBhdGhGaW5kRmlsZU5hbWUoU3RyaW5nKHBhdGgp
LmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCkpKTsKIH0KIAotU3RyaW5nIHBhdGhHZXRE
aXNwbGF5RmlsZU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKQotewotICAgIHJldHVybiBwYXRoR2V0
RmlsZU5hbWUocGF0aCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9GaWxlQ2hvb3NlckVmbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZUNob29zZXJFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2ZTY0MzZiOGE4ZTdjMzJmNjIyZTRmMmMxNzEzZGExNTVlMTMyYzRmLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9GaWxlQ2hvb3NlckVmbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1
NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRl
ciBGcmV5dGhlcgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IElOZFQgLSBJbnN0aXR1dG8g
Tm9raWEgZGUgVGVjbm9sb2dpYQotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9O
IGVtYmVkZGVkIHN5c3RlbXMKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxl
Y3Ryb25pY3MKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmlsZUNob29z
ZXIuaCIKLQotI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKLSNpbmNsdWRlICJTdHJpbmdU
cnVuY2F0b3IuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TdHJpbmcgRmlsZUNob29zZXI6
OmJhc2VuYW1lRm9yV2lkdGgoY29uc3QgRm9udCYgZm9udCwgaW50IHdpZHRoKSBjb25zdAotewot
ICAgIGlmICh3aWR0aCA8PSAwKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICBTdHJp
bmcgc3RyaW5nOwotICAgIGlmIChtX2ZpbGVuYW1lcy5pc0VtcHR5KCkpCi0gICAgICAgIHN0cmlu
ZyA9IGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7Ci0gICAgZWxzZSBpZiAobV9maWxl
bmFtZXMuc2l6ZSgpID09IDEpCi0gICAgICAgIHN0cmluZyA9IG1fZmlsZW5hbWVzWzBdOwotICAg
IGVsc2UKLSAgICAgICAgcmV0dXJuIFN0cmluZ1RydW5jYXRvcjo6cmlnaHRUcnVuY2F0ZShtdWx0
aXBsZUZpbGVVcGxvYWRUZXh0KG1fZmlsZW5hbWVzLnNpemUoKSksIHdpZHRoLCBmb250KTsKLQot
ICAgIHJldHVybiBTdHJpbmdUcnVuY2F0b3I6OmNlbnRlclRydW5jYXRlKHN0cmluZywgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHdpZHRoKSwgZm9udCk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlQ2hvb3Nlckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvRmlsZUNob29zZXJHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiNGJkZjNmNDFlZDk1OTVlOGMxMGI4ZTFmN2MwNTc3YWZlN2E0MTNmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9GaWxlQ2hvb3Nlckd0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhl
cgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgot
Ci0jaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgotI2luY2x1ZGUgIkljb24uaCIKLSNpbmNsdWRlICJM
b2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSAiU3RyaW5nVHJ1bmNhdG9yLmgiCi0jaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi0jaW5jbHVkZSA8Z2xpYi5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLXN0YXRpYyBib29sIHN0cmluZ0J5QWRvcHRpbmdGaWxlU3lzdGVtUmVwcmVz
ZW50YXRpb24oZ2NoYXIqIHN5c3RlbUZpbGVuYW1lLCBTdHJpbmcmIHJlc3VsdCkKLXsKLSAgICBp
ZiAoIXN5c3RlbUZpbGVuYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXN1bHQg
PSBmaWxlbmFtZVRvU3RyaW5nKHN5c3RlbUZpbGVuYW1lKTsKLSAgICBnX2ZyZWUoc3lzdGVtRmls
ZW5hbWUpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLVN0cmluZyBGaWxlQ2hvb3Nlcjo6YmFz
ZW5hbWVGb3JXaWR0aChjb25zdCBGb250JiBmb250LCBpbnQgd2lkdGgpIGNvbnN0Ci17Ci0gICAg
aWYgKHdpZHRoIDw9IDApCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIFN0cmluZyBz
dHJpbmcgPSBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwotCi0gICAgaWYgKG1fZmls
ZW5hbWVzLnNpemUoKSA9PSAxKSB7Ci0gICAgICAgIENTdHJpbmcgc3lzdGVtRmlsZW5hbWUgPSBm
aWxlU3lzdGVtUmVwcmVzZW50YXRpb24obV9maWxlbmFtZXNbMF0pOwotICAgICAgICBnY2hhciog
c3lzdGVtQmFzZW5hbWUgPSBnX3BhdGhfZ2V0X2Jhc2VuYW1lKHN5c3RlbUZpbGVuYW1lLmRhdGEo
KSk7Ci0gICAgICAgIHN0cmluZ0J5QWRvcHRpbmdGaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3lz
dGVtQmFzZW5hbWUsIHN0cmluZyk7Ci0gICAgfSBlbHNlIGlmIChtX2ZpbGVuYW1lcy5zaXplKCkg
PiAxKQotICAgICAgICByZXR1cm4gU3RyaW5nVHJ1bmNhdG9yOjpyaWdodFRydW5jYXRlKG11bHRp
cGxlRmlsZVVwbG9hZFRleHQobV9maWxlbmFtZXMuc2l6ZSgpKSwgd2lkdGgsIGZvbnQpOwotCi0g
ICAgcmV0dXJuIFN0cmluZ1RydW5jYXRvcjo6Y2VudGVyVHJ1bmNhdGUoc3RyaW5nLCB3aWR0aCwg
Zm9udCk7Ci19Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1l
R3RrLmNwcAppbmRleCAxNDY4NjJiYTVlZWE1NDY4OTg1NDZhMzc3YzYyNWU2NDIwOWI2YWQ1Li42
MWI0NDk2N2MxYmJhMGU4MDE5NmU0ODIyNmRlYTY0NDRiMjdmZTE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKQEAgLTI2LDIxICsyNiwyNiBA
QAogI2luY2x1ZGUgIlJlbmRlclRoZW1lR3RrLmgiCiAKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkdPd25QdHIuaCIKICNp
bmNsdWRlICJHcmFkaWVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1
ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1
ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJTdHJpbmdUcnVuY2F0b3IuaCIKICNp
bmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5jbHVkZSAiVXNlckFnZW50U3R5bGVTaGVldHMuaCIK
ICNpbmNsdWRlIDxnZGsvZ2RrLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGd0ay9n
dGsuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoUFJPR1JF
U1NfVEFHKQogI2luY2x1ZGUgIlJlbmRlclByb2dyZXNzLmgiCkBAIC02NzcsNCArNjgyLDMyIEBA
IEludFJlY3QgUmVuZGVyVGhlbWVHdGs6OmNhbGN1bGF0ZVByb2dyZXNzUmVjdChSZW5kZXJPYmpl
Y3QqIHJlbmRlck9iamVjdCwgY29uc3QKIH0KICNlbmRpZgogCitzdGF0aWMgYm9vbCBzdHJpbmdC
eUFkb3B0aW5nRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGdjaGFyKiBzeXN0ZW1GaWxlbmFtZSwg
U3RyaW5nJiByZXN1bHQpCit7CisgICAgaWYgKCFzeXN0ZW1GaWxlbmFtZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgcmVzdWx0ID0gZmlsZW5hbWVUb1N0cmluZyhzeXN0ZW1GaWxlbmFt
ZSk7CisgICAgZ19mcmVlKHN5c3RlbUZpbGVuYW1lKTsKKworICAgIHJldHVybiB0cnVlOworfQor
CitTdHJpbmcgUmVuZGVyVGhlbWVHdGs6OmZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCkKK3sKKyAg
ICBpZiAod2lkdGggPD0gMCkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgU3RyaW5n
IHN0cmluZyA9IGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisKKyAgICBpZiAoZmls
ZW5hbWVzLnNpemUoKSA9PSAxKSB7CisgICAgICAgIENTdHJpbmcgc3lzdGVtRmlsZW5hbWUgPSBm
aWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZmlsZW5hbWVzWzBdKTsKKyAgICAgICAgZ2NoYXIqIHN5
c3RlbUJhc2VuYW1lID0gZ19wYXRoX2dldF9iYXNlbmFtZShzeXN0ZW1GaWxlbmFtZS5kYXRhKCkp
OworICAgICAgICBzdHJpbmdCeUFkb3B0aW5nRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHN5c3Rl
bUJhc2VuYW1lLCBzdHJpbmcpOworICAgIH0gZWxzZSBpZiAoZmlsZW5hbWVzLnNpemUoKSA+IDEp
CisgICAgICAgIHJldHVybiBTdHJpbmdUcnVuY2F0b3I6OnJpZ2h0VHJ1bmNhdGUobXVsdGlwbGVG
aWxlVXBsb2FkVGV4dChmaWxlbmFtZXMuc2l6ZSgpKSwgd2lkdGgsIGZvbnQpOworCisgICAgcmV0
dXJuIFN0cmluZ1RydW5jYXRvcjo6Y2VudGVyVHJ1bmNhdGUoc3RyaW5nLCB3aWR0aCwgZm9udCk7
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJU
aGVtZUd0ay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmgK
aW5kZXggNmEyNGQ1OTE0YjQ4ZTI1YzVkMzZiNjdjNWNmYTNmYWIzZjNjOWZiNS4uNzJjMDNiZmFh
YTFhY2IxZDA0ZDExZmYxNzgzNGMwODYxZWUwYTgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmgKQEAgLTE3NSw2ICsxNzUsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCBib29sIHBhaW50SW5uZXJTcGluQnV0dG9uKFJlbmRlck9iamVjdCosIGNv
bnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKIAogcHJpdmF0ZToKKyAgICB2aXJ0dWFs
IFN0cmluZyBmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5h
bWVzLCBjb25zdCBGb250JiwgaW50IHdpZHRoKTsKKwogICAgIHZvaWQgcGxhdGZvcm1Jbml0KCk7
CiAgICAgc3RhdGljIHZvaWQgc2V0VGV4dElucHV0Qm9yZGVycyhSZW5kZXJTdHlsZSopOwogICAg
IHN0YXRpYyBkb3VibGUgZ2V0U2NyZWVuRFBJKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9oYWlrdS9GaWxlQ2hvb3NlckhhaWt1LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2hhaWt1L0ZpbGVDaG9vc2VySGFpa3UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzYTQ0ZGU4YjM1NjhmODcyYTc0ZmU0MzRlZjQ3NGJiMDk1NDA5YWYyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2hhaWt1L0ZpbGVDaG9vc2VySGFpa3UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzgg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBOaWtvbGFzIFppbW1lcm1hbm4gPHpp
bW1lcm1hbm5Aa2RlLm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAwNyBSeWFuIExlYXZlbmdvb2Qg
PGxlYXZlbmdvb2RAZ21haWwuY29tPgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAqIEJvc3RvbiwgTUEgMDIxMTEt
MTMwNywgVVNBLgotICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmls
ZUNob29zZXIuaCIKLQotI2luY2x1ZGUgIkljb24uaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgotCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3RyaW5nIEZpbGVDaG9vc2VyOjpiYXNl
bmFtZUZvcldpZHRoKGNvbnN0IEZvbnQmLCBpbnQgd2lkdGgpIGNvbnN0Ci17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0ZpbGVDaG9v
c2VyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0ZpbGVDaG9vc2VyTWFjLm1t
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOWMyNDI2YmM1MWYzYzI3ZTQ0OTU3YjFm
ZmRjZGNmNDA4ZDYyMmJhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9GaWxlQ2hvb3Nlck1hYy5tbQorKysg
L2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4gCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4gCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqLwotCi0jaW1wb3J0ICJj
b25maWcuaCIKLSNpbXBvcnQgIkZpbGVDaG9vc2VyLmgiCi0KLSNpbXBvcnQgIkxvY2FsaXplZFN0
cmluZ3MuaCIKLSNpbXBvcnQgIlNpbXBsZUZvbnREYXRhLmgiCi0jaW1wb3J0ICJTdHJpbmdUcnVu
Y2F0b3IuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotU3RyaW5nIEZpbGVDaG9vc2Vy
OjpiYXNlbmFtZUZvcldpZHRoKGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCkgY29uc3QKLXsK
LSAgICBpZiAod2lkdGggPD0gMCkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgU3Ry
aW5nIHN0clRvVHJ1bmNhdGU7Ci0gICAgaWYgKG1fZmlsZW5hbWVzLmlzRW1wdHkoKSkKLSAgICAg
ICAgc3RyVG9UcnVuY2F0ZSA9IGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7Ci0gICAg
ZWxzZSBpZiAobV9maWxlbmFtZXMuc2l6ZSgpID09IDEpCi0gICAgICAgIHN0clRvVHJ1bmNhdGUg
PSBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGRpc3BsYXlOYW1lQXRQYXRoOihtX2Zp
bGVuYW1lc1swXSldOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIFN0cmluZ1RydW5jYXRvcjo6
cmlnaHRUcnVuY2F0ZShtdWx0aXBsZUZpbGVVcGxvYWRUZXh0KG1fZmlsZW5hbWVzLnNpemUoKSks
IHdpZHRoLCBmb250KTsKLQotICAgIHJldHVybiBTdHJpbmdUcnVuY2F0b3I6OmNlbnRlclRydW5j
YXRlKHN0clRvVHJ1bmNhdGUsIHdpZHRoLCBmb250KTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRmlsZUNob29zZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9GaWxlQ2hvb3NlclF0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOGIxZGYwYTk2MDczZDc5MjE0NjZjNDk1NTI2NmY3YTM1MzUzMGE5MC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9GaWxlQ2hvb3NlclF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5u
QGtkZS5vcmc+Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgotICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmlsZUNob29zZXIu
aCIKLQotI2luY2x1ZGUgIkZvbnQuaCIKLSNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0j
aW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KLSNpbmNsdWRlIDxRRm9udE1ldHJpY3M+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotU3RyaW5nIEZpbGVDaG9vc2VyOjpiYXNlbmFtZUZvcldpZHRo
KGNvbnN0IEZvbnQmIGYsIGludCB3aWR0aCkgY29uc3QKLXsKLSAgICBpZiAod2lkdGggPD0gMCkK
LSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgU3RyaW5nIHN0cmluZzsKLSAgICBpZiAo
bV9maWxlbmFtZXMuaXNFbXB0eSgpKQotICAgICAgICBzdHJpbmcgPSBmaWxlQnV0dG9uTm9GaWxl
U2VsZWN0ZWRMYWJlbCgpOwotICAgIGVsc2UgaWYgKG1fZmlsZW5hbWVzLnNpemUoKSA9PSAxKSB7
Ci0gICAgICAgIFN0cmluZyBmbmFtZSA9IG1fZmlsZW5hbWVzWzBdOwotICAgICAgICBRRm9udE1l
dHJpY3MgZm0oZi5mb250KCkpOwotICAgICAgICBzdHJpbmcgPSBmbS5lbGlkZWRUZXh0KGZuYW1l
LCBRdDo6RWxpZGVMZWZ0LCB3aWR0aCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaW50IG4gPSBt
X2ZpbGVuYW1lcy5zaXplKCk7Ci0gICAgICAgIHN0cmluZyA9IFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiJW4gZmlsZShzKSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibnVtYmVyIG9mIGNob3NlbiBmaWxlIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OkNv
ZGVjRm9yVHIsIG4pOwotICAgIH0KLQotICAgIHJldHVybiBzdHJpbmc7Ci19Ci0KLX0KLQotLy8g
dmltOiB0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L1JlbmRlclRoZW1lUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhl
bWVRdC5jcHAKaW5kZXggOWQ0YzMzOWZkMjNlNjc0ZjE2MmQyMzM0YjQ4ZWJmYzU1M2JkM2RjYy4u
OGFjYzQxMDc4ODhkYmEzYzE2YzY0MmEyOWNmN2E2OTc0MmRjYzM1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNp
ZiBVU0UoUVRfTU9CSUxFX1RIRU1FKQogI2luY2x1ZGUgIlF0TW9iaWxlV2ViU3R5bGUuaCIKICNl
bmRpZgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpZiBFTkFCTEUoVklERU8pCiAj
aW5jbHVkZSAiTWVkaWFDb250cm9sRWxlbWVudHMuaCIKICNlbmRpZgpAQCAtNjksNyArNzAsOSBA
QAogCiAjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgogI2luY2x1ZGUgPFFDb2xvcj4KKyNpbmNsdWRl
IDxRQ29yZUFwcGxpY2F0aW9uPgogI2luY2x1ZGUgPFFGaWxlPgorI2luY2x1ZGUgPFFGb250TWV0
cmljcz4KICNpbmNsdWRlIDxRTGluZUVkaXQ+CiAjaW5jbHVkZSA8UU1hY1N0eWxlPgogI2luY2x1
ZGUgPFFQYWludGVyPgpAQCAtMTUwMCw2ICsxNTAzLDI4IEBAIGRvdWJsZSBSZW5kZXJUaGVtZVF0
OjpjYXJldEJsaW5rSW50ZXJ2YWwoKSBjb25zdAogICAgIHJldHVybiAgUUFwcGxpY2F0aW9uOjpj
dXJzb3JGbGFzaFRpbWUoKSAvIDEwMDAuMCAvIDIuMDsKIH0KIAorU3RyaW5nIFJlbmRlclRoZW1l
UXQ6OmZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMs
IGNvbnN0IEZvbnQmIGZvbnQsIGludCB3aWR0aCkKK3sKKyAgICBpZiAod2lkdGggPD0gMCkKKyAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgU3RyaW5nIHN0cmluZzsKKyAgICBpZiAoZmls
ZW5hbWVzLmlzRW1wdHkoKSkKKyAgICAgICAgc3RyaW5nID0gZmlsZUJ1dHRvbk5vRmlsZVNlbGVj
dGVkTGFiZWwoKTsKKyAgICBlbHNlIGlmIChmaWxlbmFtZXMuc2l6ZSgpID09IDEpIHsKKyAgICAg
ICAgU3RyaW5nIGZuYW1lID0gZmlsZW5hbWVzWzBdOworICAgICAgICBRRm9udE1ldHJpY3MgZm0o
Zi5mb250KCkpOworICAgICAgICBzdHJpbmcgPSBmbS5lbGlkZWRUZXh0KGZuYW1lLCBRdDo6RWxp
ZGVMZWZ0LCB3aWR0aCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaW50IG4gPSBmaWxlbmFtZXMu
c2l6ZSgpOworICAgICAgICBzdHJpbmcgPSBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIiVuIGZpbGUocykiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIm51bWJlciBvZiBjaG9zZW4gZmlsZSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpDb2RlY0ZvclRyLCBu
KTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RyaW5nOworfQorCiB9CiAKIC8vIHZpbTogdHM9NCBz
dz00IGV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVt
ZVF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgKaW5kZXgg
NmRjYjFlMjc1MzcxYjcwOWE3ZjU3ZTMxOWI0Y2E5MzRkMmJjMTQ4Yi4uNmQxMDRlNjliYTEyYzY3
MDUwNGFkMDc4OTIyN2MwOWNlZTFlNzBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L1JlbmRlclRoZW1lUXQuaApAQCAtMTYwLDYgKzE2MCw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShmbG9hdCBjdXJyZW50
VGltZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBoYXNPd25EaXNh
YmxlZFN0YXRlSGFuZGxpbmdGb3IoQ29udHJvbFBhcnQpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
IHByaXZhdGU6CisgICAgdmlydHVhbCBTdHJpbmcgZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgY29uc3QgRm9udCYsIGludCB3aWR0aCk7CisKICAg
ICB2b2lkIHBhaW50TWVkaWFCYWNrZ3JvdW5kKFFQYWludGVyKiBwYWludGVyLCBjb25zdCBJbnRS
ZWN0JiByKSBjb25zdDsKICAgICBkb3VibGUgbWVkaWFDb250cm9sc0Jhc2VsaW5lT3BhY2l0eSgp
IGNvbnN0OwogICAgIFFDb2xvciBnZXRNZWRpYUNvbnRyb2xGb3JlZ3JvdW5kQ29sb3IoUmVuZGVy
T2JqZWN0KiBvID0gMCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vRmlsZUNob29zZXJXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Zp
bGVDaG9vc2VyV2luLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzA4YTA2Nzk0
MzI3ODk2N2Y5OTdkMGNhZDFiZTlmMDYxZWYyMGVmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZUNo
b29zZXJXaW4uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgot
Ci0jaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgotI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIK
LSNpbmNsdWRlICJTdHJpbmdUcnVuY2F0b3IuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1T
dHJpbmcgRmlsZUNob29zZXI6OmJhc2VuYW1lRm9yV2lkdGgoY29uc3QgRm9udCYgZm9udCwgaW50
IHdpZHRoKSBjb25zdAotewotICAgIGlmICh3aWR0aCA8PSAwKQotICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7Ci0KLSAgICBTdHJpbmcgc3RyaW5nOwotICAgIGlmIChtX2ZpbGVuYW1lcy5pc0VtcHR5
KCkpCi0gICAgICAgIHN0cmluZyA9IGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7Ci0g
ICAgZWxzZSBpZiAobV9maWxlbmFtZXMuc2l6ZSgpID09IDEpCi0gICAgICAgIHN0cmluZyA9IHBh
dGhHZXRGaWxlTmFtZShtX2ZpbGVuYW1lc1swXSk7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4g
U3RyaW5nVHJ1bmNhdG9yOjpyaWdodFRydW5jYXRlKFN0cmluZzo6bnVtYmVyKG1fZmlsZW5hbWVz
LnNpemUoKSkgKyAiIGZpbGVzIiwgd2lkdGgsIGZvbnQpOwotCi0gICAgcmV0dXJuIFN0cmluZ1Ry
dW5jYXRvcjo6Y2VudGVyVHJ1bmNhdGUoc3RyaW5nLCB3aWR0aCwgZm9udCk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4
L0ZpbGVDaG9vc2VyV3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvRmlsZUNob29z
ZXJXeC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0MDY1ZjNiYWIxNDQ3YjY4
ZDJhYzc1ZDM3MGRjMjA4NWU5YmYwY2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvRmlsZUNob29zZXJXeC5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJG
aWxlQ2hvb3Nlci5oIgotCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1TdHJpbmcgRmlsZUNob29zZXI6OmJhc2VuYW1lRm9yV2lkdGgoY29uc3Qg
Rm9udCYsIGludCB3aWR0aCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiBTdHJpbmcoKTsKLX0KLQotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAppbmRleCBmZjM4ODRkYTZhMDdiNzdmZGE4
YzRmYjg0ZWRhZDI4YzVhM2QwNDA4Li5kZDczMDZlNTg2ZmQyZTcwNTNmNDU1NDE2YmI0MWQwMWNi
MjkyMWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxl
VXBsb2FkQ29udHJvbC5jcHAKQEAgLTMxNSw3ICszMTUsNyBAQCBTdHJpbmcgUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2w6OmJ1dHRvblZhbHVlKCkKIAogU3RyaW5nIFJlbmRlckZpbGVVcGxvYWRDb250
cm9sOjpmaWxlVGV4dFZhbHVlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9maWxlQ2hvb3Nlci0+
YmFzZW5hbWVGb3JXaWR0aChzdHlsZSgpLT5mb250KCksIG1heEZpbGVuYW1lV2lkdGgoKSk7Cisg
ICAgcmV0dXJuIHRoZW1lKCktPmZpbGVMaXN0TmFtZUZvcldpZHRoKG1fZmlsZUNob29zZXItPmZp
bGVuYW1lcygpLCBzdHlsZSgpLT5mb250KCksIG1heEZpbGVuYW1lV2lkdGgoKSk7CiB9CiAgICAg
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmNwcAppbmRleCA1NTlmODBmYjIyNWY2MzZhNjI3NWQ2ZTlhNmJmMWY1NDk2YzdjY2NiLi4y
YzNlZjRjODg2NWE5NGUyYTY0MDQ0YmM1MWQxYzk5ZjE4MTZhNjRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUg
IkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZp
bGVTeXN0ZW0uaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJGb2N1
c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGb250U2VsZWN0b3IuaCIKQEAgLTMyLDEyICszMywx
NCBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJp
bmdzLmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sRWxlbWVudHMuaCIKICNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJT
dHJpbmdUcnVuY2F0b3IuaCIKICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCIK
IAogI2lmIEVOQUJMRShNRVRFUl9UQUcpCkBAIC0xMDkxLDQgKzEwOTQsMjEgQEAgQ29sb3IgUmVu
ZGVyVGhlbWU6OmZvY3VzUmluZ0NvbG9yKCkKICAgICByZXR1cm4gY3VzdG9tRm9jdXNSaW5nQ29s
b3IoKS5pc1ZhbGlkKCkgPyBjdXN0b21Gb2N1c1JpbmdDb2xvcigpIDogZGVmYXVsdFRoZW1lKCkt
PnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKTsKIH0KIAorU3RyaW5nIFJlbmRlclRoZW1lOjpmaWxl
TGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25zdCBG
b250JiBmb250LCBpbnQgd2lkdGgpCit7CisgICAgaWYgKHdpZHRoIDw9IDApCisgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKworICAgIFN0cmluZyBzdHJpbmc7CisgICAgaWYgKGZpbGVuYW1lcy5p
c0VtcHR5KCkpCisgICAgICAgIHN0cmluZyA9IGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVs
KCk7CisgICAgZWxzZSBpZiAoZmlsZW5hbWVzLnNpemUoKSA9PSAxKQorICAgICAgICBzdHJpbmcg
PSBwYXRoR2V0RmlsZU5hbWUoZmlsZW5hbWVzWzBdKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVy
biBTdHJpbmdUcnVuY2F0b3I6OnJpZ2h0VHJ1bmNhdGUobXVsdGlwbGVGaWxlVXBsb2FkVGV4dChm
aWxlbmFtZXMuc2l6ZSgpKSwgd2lkdGgsIGZvbnQpOworCisgICAgcmV0dXJuIFN0cmluZ1RydW5j
YXRvcjo6Y2VudGVyVHJ1bmNhdGUoc3RyaW5nLCB3aWR0aCwgZm9udCk7Cit9CisKKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRl
eCA3ZGZlMDU2NGE1NmFjNzM3ZTRjZjM5MTM1Y2MzOWYzMDIxYzI2NzZjLi5kMGYxOTQ2ZjFhMzdm
MjIwOGVhNGMwMjczOGZkZjlmOTQwMmFmMzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuaApAQCAtMjA0LDYgKzIwNCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkU2hvd1BsYWNlaG9sZGVyV2hlbkZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRIYXZlU3BpbkJ1dHRvbihIVE1MSW5wdXRFbGVtZW50
KikgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIFN0cmluZyBmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25z
dCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25zdCBGb250JiwgaW50IHdpZHRoKTsKKwog
cHJvdGVjdGVkOgogICAgIC8vIFRoZSBwbGF0Zm9ybSBzZWxlY3Rpb24gY29sb3IuCiAgICAgdmly
dHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCBiOTIzYjNl
MmY5Njc2NWIxODdkZjBkZmI0YzM1ODUyYzBmNjIzZmFiLi5iZWYyOTEzMjU5NjZmYjM0NGUxMWE0
ZjNkMzhmYWJkZWI2MmIyNDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMuaApAQCAtMTc3LDYgKzE3Nyw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkU2hvd1BsYWNlaG9sZGVyV2hlbkZvY3VzZWQoKSBjb25zdDsKIAogcHJpdmF0ZToKKyAg
ICB2aXJ0dWFsIFN0cmluZyBmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZmlsZW5hbWVzLCBjb25zdCBGb250JiwgaW50IHdpZHRoKSBjb25zdDsKIAogICAgIEludFJl
Y3QgaW5mbGF0ZVJlY3QoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmLCBjb25zdCBpbnQq
IG1hcmdpbnMsIGZsb2F0IHpvb21MZXZlbCA9IDEuMGYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMTVmNDMyMWVmOTEzNjA0NGRjMGIw
MzZjYjRmOGRjNTY0NGJlNGY3OC4uZjEzNGM5MTdjMGY4MzIzYzY4YmUzMTlmNDRkODM2Mjc3ZTFm
N2UyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAt
MzQsNiArMzQsNyBAQAogI2ltcG9ydCAiSW1hZ2UuaCIKICNpbXBvcnQgIkltYWdlQnVmZmVyLmgi
CiAjaW1wb3J0ICJMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCIKKyNpbXBvcnQgIkxvY2Fs
aXplZFN0cmluZ3MuaCIKICNpbXBvcnQgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjaW1wb3J0
ICJQYWludEluZm8uaCIKICNpbXBvcnQgIlJlbmRlck1lZGlhLmgiCkBAIC00MSw2ICs0Miw3IEBA
CiAjaW1wb3J0ICJSZW5kZXJTbGlkZXIuaCIKICNpbXBvcnQgIlJlbmRlclZpZXcuaCIKICNpbXBv
cnQgIlNoYXJlZEJ1ZmZlci5oIgorI2ltcG9ydCAiU3RyaW5nVHJ1bmNhdG9yLmgiCiAjaW1wb3J0
ICJUaW1lUmFuZ2VzLmgiCiAjaW1wb3J0ICJUaGVtZU1hYy5oIgogI2ltcG9ydCAiV2ViQ29yZVN5
c3RlbUludGVyZmFjZS5oIgpAQCAtMjA0OSw0ICsyMDUxLDIwIEBAIE5TU2xpZGVyQ2VsbCogUmVu
ZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwoKSBjb25zdAogICAgIHJldHVybiBtX3Ns
aWRlclRodW1iVmVydGljYWwuZ2V0KCk7CiB9CiAKK1N0cmluZyBSZW5kZXJUaGVtZU1hYzo6Zmls
ZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgY29uc3Qg
Rm9udCYgZm9udCwgaW50IHdpZHRoKSBjb25zdAoreworICAgIGlmICh3aWR0aCA8PSAwKQorICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBTdHJpbmcgc3RyVG9UcnVuY2F0ZTsKKyAgICBp
ZiAoZmlsZW5hbWVzLmlzRW1wdHkoKSkKKyAgICAgICAgc3RyVG9UcnVuY2F0ZSA9IGZpbGVCdXR0
b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CisgICAgZWxzZSBpZiAoZmlsZW5hbWVzLnNpemUoKSA9
PSAxKQorICAgICAgICBzdHJUb1RydW5jYXRlID0gW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5h
Z2VyXSBkaXNwbGF5TmFtZUF0UGF0aDooZmlsZW5hbWVzWzBdKV07CisgICAgZWxzZQorICAgICAg
ICByZXR1cm4gU3RyaW5nVHJ1bmNhdG9yOjpyaWdodFRydW5jYXRlKG11bHRpcGxlRmlsZVVwbG9h
ZFRleHQoZmlsZW5hbWVzLnNpemUoKSksIHdpZHRoLCBmb250KTsKKworICAgIHJldHVybiBTdHJp
bmdUcnVuY2F0b3I6OmNlbnRlclRydW5jYXRlKHN0clRvVHJ1bmNhdGUsIHdpZHRoLCBmb250KTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="91283"
          type_id="1"
          status="+"
          setter="tkent"
    />
          </attachment>
      

    </bug>

</bugzilla>