<?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>169365</bug_id>
          
          <creation_ts>2017-03-08 13:23:14 -0800</creation_ts>
          <short_desc>WebGPU: Backend - Textures and TextureDescriptors</short_desc>
          <delta_ts>2017-03-10 14:56:42 -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>WebGL</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>167952</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>dino</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1284958</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-08 13:23:14 -0800</bug_when>
    <thetext>Implement Buffers, Textures and TextureDescriptors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284970</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-08 13:30:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/30928716&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285921</commentid>
    <comment_count>2</comment_count>
      <attachid>304079</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-10 14:29:42 -0800</bug_when>
    <thetext>Created attachment 304079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285928</commentid>
    <comment_count>3</comment_count>
      <attachid>304079</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2017-03-10 14:49:44 -0800</bug_when>
    <thetext>Comment on attachment 304079
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/GPUTextureDescriptorMetal.mm:48
&gt; +    if (!m_textureDescriptor)
&gt; +        return 0;
&gt; +    return [m_textureDescriptor width];

No need to check for nil here - messaging nil will already do the right thing. (Here and all the other getter/setters).

Unless you want to assert that there&apos;s a texture descriptor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285930</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-03-10 14:56:42 -0800</bug_when>
    <thetext>Committed r213731: &lt;http://trac.webkit.org/changeset/213731&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304079</attachid>
            <date>2017-03-10 14:29:42 -0800</date>
            <delta_ts>2017-03-10 14:47:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169365-20170311092939.patch</filename>
            <type>text/plain</type>
            <size>33522</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDdiYjljZDU1MzlmOTA1
NDBlMmFiYWJiYzU2NmU4MmViNDc0OTBiMy4uY2ViZTk2ODg0ODU0NmRmYzBiZmRhY2ViNDNkYjk5
MWFiNzRmMmMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE3LTAzLTEwICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJHUFU6IEJhY2tlbmQgLSBU
ZXh0dXJlcyBhbmQgVGV4dHVyZURlc2NyaXB0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkzNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMw
OTI4NzE2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEJhY2tlbmQgaW1wbGVtZW50YXRpb24gb2YgdGV4dHVyZXMgZm9yIFdlYkdQVSwgd2hpY2ggYWRk
cworICAgICAgICB0aGUgR1BVVGV4dHVyZSBhbmQgR1BVVGV4dHVyZURlc2NyaXB0b3IgY2xhc3Nl
cywgYXMgd2VsbAorICAgICAgICBhcyBhIGNyZWF0aW9uIG1ldGhvZCBvbiBHUFVEZXZpY2UuCisK
KyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BV
VGV4dHVyZURlc2NyaXB0b3JNZXRhbC5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpHUFVU
ZXh0dXJlRGVzY3JpcHRvcjo6R1BVVGV4dHVyZURlc2NyaXB0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6R1BVVGV4dHVyZURlc2NyaXB0b3I6OndpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRl
eHR1cmVEZXNjcmlwdG9yOjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJl
RGVzY3JpcHRvcjo6aGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmVEZXNjcmlw
dG9yOjpzZXRIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZURlc2NyaXB0b3I6
OnNhbXBsZUNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmVEZXNjcmlwdG9yOjpz
ZXRTYW1wbGVDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlRGVzY3JpcHRvcjo6
dGV4dHVyZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZURlc2NyaXB0b3I6OnNl
dFRleHR1cmVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmVEZXNjcmlwdG9yOjpz
dG9yYWdlTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlRGVzY3JpcHRvcjo6c2V0
U3RvcmFnZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZURlc2NyaXB0b3I6OnVz
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmVEZXNjcmlwdG9yOjpzZXRVc2FnZSk6
CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlRGVzY3JpcHRvcjo6cGxhdGZvcm1UZXh0dXJl
RGVzY3JpcHRvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVVGV4dHVy
ZU1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZTo6R1BVVGV4dHVyZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlOjp3aWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpH
UFVUZXh0dXJlOjpoZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZTo6cGxhdGZv
cm1UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVURldmljZTo6Y3JlYXRlVGV4dHVyZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9HUFVUZXh0dXJlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1
cmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlOjpjcmVhdGVGcm9tRXhp
c3RpbmdUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmU6On5HUFVUZXh0dXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmU6OndpZHRoKToKKyAgICAgICAgKFdlYkNv
cmU6OkdQVVRleHR1cmU6OmhlaWdodCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0dQVVRleHR1cmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4dHVy
ZURlc2NyaXB0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZURlc2NyaXB0b3I6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlRGVzY3JpcHRvcjo6fkdQVVRl
eHR1cmVEZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVRleHR1cmVEZXNjcmlwdG9y
Ojp3aWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlRGVzY3JpcHRvcjo6c2V0V2lk
dGgpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZURlc2NyaXB0b3I6OmhlaWdodCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlRGVzY3JpcHRvcjo6c2V0SGVpZ2h0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdQVVRleHR1cmVEZXNjcmlwdG9yOjpzYW1wbGVDb3VudCk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVUZXh0dXJlRGVzY3JpcHRvcjo6c2V0U2FtcGxlQ291bnQpOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVVGV4dHVyZURlc2NyaXB0b3I6OnRleHR1cmVUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVRleHR1cmVEZXNjcmlwdG9yOjpzZXRUZXh0dXJlVHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVUZXh0dXJlRGVzY3JpcHRvcjo6c3RvcmFnZU1vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6R1BVVGV4dHVyZURlc2NyaXB0b3I6OnNldFN0b3JhZ2VNb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdQVVRleHR1cmVEZXNjcmlwdG9yOjp1c2FnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHUFVUZXh0dXJlRGVzY3JpcHRvcjo6c2V0VXNhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9HUFVUZXh0dXJlRGVzY3JpcHRvci5oOgorCiAyMDE3LTAzLTA5ICBEZWFuIEph
Y2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJHUFU6IEJhY2tlbmQgLSBCdWZm
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IGM2ZmUxMTNiOTQ1Mjc0ODc4OGY5MjU1
YTVkY2NhZmMxMDY5MTg0OTIuLjgzNWM1N2NkZGVkYjk4NTY1ODE2Y2RhZmRiYzM2NDMyOTYxN2Zk
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC00MTksNiArNDE5LDggQEAgbGlzdChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVRGV2
aWNlTWV0YWwubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVGdW5jdGlvbk1ldGFs
Lm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVTGlicmFyeU1ldGFsLm1tCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR1BVVGV4dHVyZURlc2NyaXB0b3JNZXRhbC5tbQorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVVRleHR1cmVNZXRhbC5tbQogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0ZvbnRDYXNjYWRlQ29jb2EubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250Q29jb2EubW0KQEAgLTQzNiw2ICs0MzgsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NP
VVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVGdW5jdGlvbi5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9n
cHUvR1BVTGlicmFyeS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4dHVyZS5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwCiAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW0KICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ZmZhYzVkZjg2
N2E2ZDNmMzU2OTBiNjk2ZDdmN2NhYWQxODg3YzBjLi5jNmVhNjBiNTBjZGZkNjE3YmJmZGM4M2Q0
Yjg5YjFkMjA2YmVlYjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzY2LDYgKzEzNjYsMTIgQEAKIAkJMzE2QkRCQTYxRTcx
RkE2RjAwREUwRDVBIC8qIEdQVUJ1ZmZlck1ldGFsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2QkRCQTUxRTcxRkE2RjAwREUwRDVBIC8qIEdQVUJ1
ZmZlck1ldGFsLm1tICovOyB9OwogCQkzMTZCREJBOTFFNzFGQTkzMDBERTBENUEgLyogR1BVQnVm
ZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
NkJEQkE3MUU3MUZBOTMwMERFMEQ1QSAvKiBHUFVCdWZmZXIuY3BwICovOyB9OwogCQkzMTZCREJB
QTFFNzFGQTkzMDBERTBENUEgLyogR1BVQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZCREJBODFFNzFGQTkzMDBERTBENUEgLyogR1BVQnVm
ZmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MzE2QkRCQUUxRTczNTQ5QzAwREUwRDVBIC8qIEdQVVRleHR1cmVNZXRhbC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkFEMUU3MzU0OUMwMERF
MEQ1QSAvKiBHUFVUZXh0dXJlTWV0YWwubW0gKi87IH07CisJCTMxNkJEQkIxMUU3MzU0QkIwMERF
MEQ1QSAvKiBHUFVUZXh0dXJlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxNkJEQkFGMUU3MzU0QkIwMERFMEQ1QSAvKiBHUFVUZXh0dXJlLmNwcCAq
LzsgfTsKKwkJMzE2QkRCQjIxRTczNTRCQjAwREUwRDVBIC8qIEdQVVRleHR1cmUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkJEQkIwMUU3MzU0QkIw
MERFMEQ1QSAvKiBHUFVUZXh0dXJlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMzE2QkRCQjQxRTczNTdCMDAwREUwRDVBIC8qIEdQVVRleHR1cmVE
ZXNjcmlwdG9yTWV0YWwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTZCREJCMzFFNzM1N0IwMDBERTBENUEgLyogR1BVVGV4dHVyZURlc2NyaXB0b3JN
ZXRhbC5tbSAqLzsgfTsKKwkJMzE2QkRCQjcxRTczNTdDQjAwREUwRDVBIC8qIEdQVVRleHR1cmVE
ZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxNkJEQkI1MUU3MzU3Q0IwMERFMEQ1QSAvKiBHUFVUZXh0dXJlRGVzY3JpcHRvci5jcHAg
Ki87IH07CisJCTMxNkJEQkI4MUU3MzU3Q0IwMERFMEQ1QSAvKiBHUFVUZXh0dXJlRGVzY3JpcHRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2QkRC
QjYxRTczNTdDQjAwREUwRDVBIC8qIEdQVVRleHR1cmVEZXNjcmlwdG9yLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE2RkUwNzEwRTZDQ0JFRTAw
QkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZFMDZEMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tl
eWZyYW1lUnVsZS5jcHAgKi87IH07CiAJCTMxNkZFMDcyMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NT
U0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmggKi87
IH07CiAJCTMxNkZFMDczMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1lc1J1bGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkYw
RTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVzUnVsZS5jcHAgKi87IH07CkBAIC04Njkz
LDYgKzg2OTksMTIgQEAKIAkJMzE2QkRCQTUxRTcxRkE2RjAwREUwRDVBIC8qIEdQVUJ1ZmZlck1l
dGFsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVQnVmZmVy
TWV0YWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkJEQkE3MUU3MUZBOTMw
MERFMEQ1QSAvKiBHUFVCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gR1BVQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2QkRC
QTgxRTcxRkE5MzAwREUwRDVBIC8qIEdQVUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHUFVCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2
QkRCQUQxRTczNTQ5QzAwREUwRDVBIC8qIEdQVVRleHR1cmVNZXRhbC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQVVRleHR1cmVNZXRhbC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2QkRCQUYxRTczNTRCQjAwREUwRDVBIC8qIEdQVVRleHR1
cmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVVGV4dHVyZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNkJEQkIwMUU3MzU0QkIwMERFMEQ1
QSAvKiBHUFVUZXh0dXJlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVRl
eHR1cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2QkRCQjMxRTczNTdCMDAw
REUwRDVBIC8qIEdQVVRleHR1cmVEZXNjcmlwdG9yTWV0YWwubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHUFVUZXh0dXJlRGVzY3JpcHRvck1ldGFsLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTZCREJCNTFFNzM1N0NCMDBERTBENUEgLyogR1BV
VGV4dHVyZURlc2NyaXB0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gR1BVVGV4dHVyZURlc2NyaXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMTZCREJCNjFFNzM1N0NCMDBERTBENUEgLyogR1BVVGV4dHVyZURlc2NyaXB0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVVGV4dHVyZURlc2NyaXB0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpT
Q1NTS2V5ZnJhbWVSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQ1NTS2V5ZnJhbWVSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2
RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVSdWxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTS2V5ZnJhbWVSdWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMxNkZFMDZGMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU0NTU0tleWZyYW1l
c1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NLZXlm
cmFtZXNSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NDczLDYgKzE3
NDg1LDEwIEBACiAJCQkJMzE2QkRCOTMxRTcwQzg5NzAwREUwRDVBIC8qIEdQVUZ1bmN0aW9uLmgg
Ki8sCiAJCQkJMzE2QkRCOTgxRTcwQ0JCRjAwREUwRDVBIC8qIEdQVUxpYnJhcnkuY3BwICovLAog
CQkJCTMxNkJEQjk5MUU3MENCQkYwMERFMEQ1QSAvKiBHUFVMaWJyYXJ5LmggKi8sCisJCQkJMzE2
QkRCQjUxRTczNTdDQjAwREUwRDVBIC8qIEdQVVRleHR1cmVEZXNjcmlwdG9yLmNwcCAqLywKKwkJ
CQkzMTZCREJCNjFFNzM1N0NCMDBERTBENUEgLyogR1BVVGV4dHVyZURlc2NyaXB0b3IuaCAqLywK
KwkJCQkzMTZCREJBRjFFNzM1NEJCMDBERTBENUEgLyogR1BVVGV4dHVyZS5jcHAgKi8sCisJCQkJ
MzE2QkRCQjAxRTczNTRCQjAwREUwRDVBIC8qIEdQVVRleHR1cmUuaCAqLywKIAkJCQk0OTg3NzBE
NzEyNDJDNTM1MDAyMjI2QkEgLyogVGV4dHVyZS5jcHAgKi8sCiAJCQkJNDk4NzcwRDgxMjQyQzUz
NTAwMjIyNkJBIC8qIFRleHR1cmUuaCAqLywKIAkJCQk0OTg3NzBEOTEyNDJDNTM1MDAyMjI2QkEg
LyogVGlsaW5nRGF0YS5jcHAgKi8sCkBAIC0yMjU2OCw2ICsyMjU4NCw4IEBACiAJCQkJMzE2QkRC
ODgxRTZFMTQxQzAwREUwRDVBIC8qIEdQVURldmljZU1ldGFsLm1tICovLAogCQkJCTMxNkJEQjk2
MUU3MENBMjQwMERFMEQ1QSAvKiBHUFVGdW5jdGlvbk1ldGFsLm1tICovLAogCQkJCTMxNkJEQjlD
MUU3MENEOTAwMERFMEQ1QSAvKiBHUFVMaWJyYXJ5TWV0YWwubW0gKi8sCisJCQkJMzE2QkRCQjMx
RTczNTdCMDAwREUwRDVBIC8qIEdQVVRleHR1cmVEZXNjcmlwdG9yTWV0YWwubW0gKi8sCisJCQkJ
MzE2QkRCQUQxRTczNTQ5QzAwREUwRDVBIC8qIEdQVVRleHR1cmVNZXRhbC5tbSAqLywKIAkJCQky
RDBCNEFBOTE4REExQ0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLmggKi8sCiAJCQkJMkQwQjRBQUEx
OERBMUNDRDAwNDM0REUxIC8qIElPU3VyZmFjZS5tbSAqLywKIAkJCQlBRDlGRjZFMDE5MDgzOTFE
MDAzQjYxRTAgLyogSU9TdXJmYWNlUG9vbENvY29hLm1tICovLApAQCAtMjg0NjcsNiArMjg0ODUs
NyBAQAogCQkJCUJDMjI3MkJEMEU4MkVBQUUwMEU3Rjk3NSAvKiBTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzIyNzI4NzBFODJFNzA3MDBFN0Y5NzUgLyog
U3R5bGVSZWZsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDYxODAyRDFDOEREMjkwMDAy
NkMwMkMgLyogU3R5bGVSZWxhdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxNkJEQkI4MUU3
MzU3Q0IwMERFMEQ1QSAvKiBHUFVUZXh0dXJlRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTc1MEE5NzUxRTY4RDAwMDAwNzA1QzRBIC8qIENyeXB0b0tleUVDLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNEQ1OEVCNTE3QjREQkRDMDBDQkRDQTggLyogU3R5bGVSZXNvbHZlRm9yRG9jdW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMzk4NjY0MTU0Nzg0NzQwMDFFM0Y2NSAvKiBTdHls
ZVJlc29sdmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI5MTc2LDYgKzI5MTk1LDcgQEAKIAkJCQk5
M0YxOTlFRDA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBp
biBIZWFkZXJzICovLAorCQkJCTMxNkJEQkIyMUU3MzU0QkIwMERFMEQ1QSAvKiBHUFVUZXh0dXJl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzODAgLyogWFNTQXVk
aXRvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTQxNkZFNjE4ODEwRUY4MDAwOUZD
NUYgLyogWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0E1
NTE1RjUxOTE4MzBBMzAwOTY4N0QyIC8qIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMDAzNyw2ICszMDA1Nyw3IEBACiAJCQkJMEY5N0E2NTgxNTVEQTgxRTAw
RkFERDRDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTQ5QUYyRDZDMTQ0MzVEMjEwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQyOUVDQzcxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRCQUUxRTcz
NTQ5QzAwREUwRDVBIC8qIEdQVVRleHR1cmVNZXRhbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNE
NTI0ODFBMThFMjAwRUQwMDA4QTA3RCAvKiBEaXNwbGF5U2xlZXBEaXNhYmxlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1RDhDNERCRjE0MjgyMjJDMDAyNkNFNzIgLyogRGlzcGxheVNsZWVwRGlz
YWJsZXJDb2NvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjA5MDEyQjAyNkY3MDBDMUEz
NTkgLyogRGlzdGFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDU1OSw2ICszMDU4MCw3IEBA
CiAJCQkJN0M1MjJENEIxNUI0NzdFODAwOUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNEY2RkRENjQxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBh
Z2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OUNDMEI2NjE4QkU5RjE1MDA2Q0VCQ0Mg
LyogSW5zcGVjdG9yUmVwbGF5QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRCQjQx
RTczNTdCMDAwREUwRDVBIC8qIEdQVVRleHR1cmVEZXNjcmlwdG9yTWV0YWwubW0gaW4gU291cmNl
cyAqLywKIAkJCQk4MkFCMTc3MzEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVl
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTQxMzNBQTEwMkUwMEY0MDAwNzVEMDAgLyogSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTRBMEM1RDFEQjZE
OUMwMDAxN0E5MEIgLyogSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0zMTczOSw2ICszMTc2MSw3IEBACiAJCQkJMUFGOEUxMzMxMjU2NUE0NDAwMjMwRkY3IC8qIFBy
b3h5U2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRjhFMUMzMTI1NjczRTAwMDIzMEZG
NyAvKiBQcm94eVNlcnZlckNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZGOTQ1RUNCMTYx
RjdGMzYwMDk3MUJDOCAvKiBQc2V1ZG9FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMx
NkJEQkIxMUU3MzU0QkIwMERFMEQ1QSAvKiBHUFVUZXh0dXJlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTAwODFGRUZGMTZCMEEyQjYwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXhNYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDREVFMzkzNzE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NTBBMEJDOTA4NUY2MDM5MDA3MzUzRDYgLyogUXVh
bGlmaWVkTmFtZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMyNTQwLDYgKzMyNTYzLDcgQEAKIAkJ
CQlBQUE3MjhGODE2RDFEOEJDMDBEM0JCQzYgLyogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlBQTQ3OEE4MDE2Q0Q3MEMzMDA3RDFCQjQgLyog
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQky
RDNFRjQ0OTE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVn
YXRlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2QkRCQjcxRTczNTdDQjAwREUwRDVBIC8qIEdQ
VVRleHR1cmVEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTEyMERFM0VEMUM4NkNB
M0UwMEI2RDRERCAvKiBXZWJBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RFNjY3
QTQxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwN0Q2Mzc0MTFCQjBCMTEzMDAyNTZDRTkgLyogV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVVRleHR1cmVEZXNjcmlwdG9yTWV0YWwubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HUFVUZXh0dXJlRGVzY3JpcHRvck1l
dGFsLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ2OWE3YjQwNGU2N2JmMzQyOWQ0MzRhNjYwYWQ3Njk4NmI4MjJh
NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HUFVUZXh0dXJlRGVzY3JpcHRvck1ldGFsLm1tCkBAIC0wLDAgKzEsMTM1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkdQVVRleHR1cmVEZXNjcmlwdG9yLmgiCisKKyNpZiBFTkFCTEUoV0VC
R1BVKQorCisjaW1wb3J0ICJMb2dnaW5nLmgiCisKKyNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworR1BVVGV4dHVyZURlc2NyaXB0b3I6OkdQVVRleHR1cmVE
ZXNjcmlwdG9yKHVuc2lnbmVkIGxvbmcgcGl4ZWxGb3JtYXQsIHVuc2lnbmVkIGxvbmcgd2lkdGgs
IHVuc2lnbmVkIGxvbmcgaGVpZ2h0LCBib29sIG1pcG1hcHBlZCkKK3sKKyAgICBMT0coV2ViR1BV
LCAiR1BVVGV4dHVyZURlc2NyaXB0b3I6OkdQVVRleHR1cmVEZXNjcmlwdG9yKCkiKTsKKworICAg
IG1fdGV4dHVyZURlc2NyaXB0b3IgPSAoTVRMVGV4dHVyZURlc2NyaXB0b3IqKVtNVExUZXh0dXJl
RGVzY3JpcHRvciB0ZXh0dXJlMkREZXNjcmlwdG9yV2l0aFBpeGVsRm9ybWF0OnN0YXRpY19jYXN0
PE1UTFBpeGVsRm9ybWF0PihwaXhlbEZvcm1hdCkgd2lkdGg6d2lkdGggaGVpZ2h0OmhlaWdodCBt
aXBtYXBwZWQ6bWlwbWFwcGVkXTsKK30KKwordW5zaWduZWQgbG9uZyBHUFVUZXh0dXJlRGVzY3Jp
cHRvcjo6d2lkdGgoKSBjb25zdAoreworICAgIGlmICghbV90ZXh0dXJlRGVzY3JpcHRvcikKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIFttX3RleHR1cmVEZXNjcmlwdG9yIHdpZHRoXTsK
K30KKwordm9pZCBHUFVUZXh0dXJlRGVzY3JpcHRvcjo6c2V0V2lkdGgodW5zaWduZWQgbG9uZyBu
ZXdXaWR0aCkKK3sKKyAgICBpZiAoIW1fdGV4dHVyZURlc2NyaXB0b3IpCisgICAgICAgIHJldHVy
bjsKKyAgICBbbV90ZXh0dXJlRGVzY3JpcHRvciBzZXRXaWR0aDpuZXdXaWR0aF07Cit9CisKK3Vu
c2lnbmVkIGxvbmcgR1BVVGV4dHVyZURlc2NyaXB0b3I6OmhlaWdodCgpIGNvbnN0Cit7CisgICAg
aWYgKCFtX3RleHR1cmVEZXNjcmlwdG9yKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
W21fdGV4dHVyZURlc2NyaXB0b3IgaGVpZ2h0XTsKK30KKwordm9pZCBHUFVUZXh0dXJlRGVzY3Jp
cHRvcjo6c2V0SGVpZ2h0KHVuc2lnbmVkIGxvbmcgbmV3SGVpZ2h0KQoreworICAgIGlmICghbV90
ZXh0dXJlRGVzY3JpcHRvcikKKyAgICAgICAgcmV0dXJuOworICAgIFttX3RleHR1cmVEZXNjcmlw
dG9yIHNldEhlaWdodDpuZXdIZWlnaHRdOworfQorCit1bnNpZ25lZCBsb25nIEdQVVRleHR1cmVE
ZXNjcmlwdG9yOjpzYW1wbGVDb3VudCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3RleHR1cmVEZXNj
cmlwdG9yKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gW21fdGV4dHVyZURlc2NyaXB0
b3Igc2FtcGxlQ291bnRdOworfQorCit2b2lkIEdQVVRleHR1cmVEZXNjcmlwdG9yOjpzZXRTYW1w
bGVDb3VudCh1bnNpZ25lZCBsb25nIG5ld1NhbXBsZUNvdW50KQoreworICAgIGlmICghbV90ZXh0
dXJlRGVzY3JpcHRvcikKKyAgICAgICAgcmV0dXJuOworICAgIFttX3RleHR1cmVEZXNjcmlwdG9y
IHNldFNhbXBsZUNvdW50Om5ld1NhbXBsZUNvdW50XTsKK30KKwordW5zaWduZWQgbG9uZyBHUFVU
ZXh0dXJlRGVzY3JpcHRvcjo6dGV4dHVyZVR5cGUoKSBjb25zdAoreworICAgIGlmICghbV90ZXh0
dXJlRGVzY3JpcHRvcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIFttX3RleHR1cmVE
ZXNjcmlwdG9yIHRleHR1cmVUeXBlXTsKK30KKwordm9pZCBHUFVUZXh0dXJlRGVzY3JpcHRvcjo6
c2V0VGV4dHVyZVR5cGUodW5zaWduZWQgbG9uZyBuZXdUZXh0dXJlVHlwZSkKK3sKKyAgICBpZiAo
IW1fdGV4dHVyZURlc2NyaXB0b3IpCisgICAgICAgIHJldHVybjsKKyAgICBbbV90ZXh0dXJlRGVz
Y3JpcHRvciBzZXRUZXh0dXJlVHlwZTpzdGF0aWNfY2FzdDxNVExUZXh0dXJlVHlwZT4obmV3VGV4
dHVyZVR5cGUpXTsKK30KKwordW5zaWduZWQgbG9uZyBHUFVUZXh0dXJlRGVzY3JpcHRvcjo6c3Rv
cmFnZU1vZGUoKSBjb25zdAoreworICAgIGlmICghbV90ZXh0dXJlRGVzY3JpcHRvcikKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIFttX3RleHR1cmVEZXNjcmlwdG9yIHN0b3JhZ2VNb2Rl
XTsKK30KKwordm9pZCBHUFVUZXh0dXJlRGVzY3JpcHRvcjo6c2V0U3RvcmFnZU1vZGUodW5zaWdu
ZWQgbG9uZyBuZXdTdG9yYWdlTW9kZSkKK3sKKyAgICBpZiAoIW1fdGV4dHVyZURlc2NyaXB0b3Ip
CisgICAgICAgIHJldHVybjsKKyAgICBbbV90ZXh0dXJlRGVzY3JpcHRvciBzZXRTdG9yYWdlTW9k
ZTpzdGF0aWNfY2FzdDxNVExTdG9yYWdlTW9kZT4obmV3U3RvcmFnZU1vZGUpXTsKK30KKwordW5z
aWduZWQgbG9uZyBHUFVUZXh0dXJlRGVzY3JpcHRvcjo6dXNhZ2UoKSBjb25zdAoreworICAgIGlm
ICghbV90ZXh0dXJlRGVzY3JpcHRvcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIFtt
X3RleHR1cmVEZXNjcmlwdG9yIHVzYWdlXTsKK30KKwordm9pZCBHUFVUZXh0dXJlRGVzY3JpcHRv
cjo6c2V0VXNhZ2UodW5zaWduZWQgbG9uZyBuZXdVc2FnZSkKK3sKKyAgICBpZiAoIW1fdGV4dHVy
ZURlc2NyaXB0b3IpCisgICAgICAgIHJldHVybjsKKyAgICBbbV90ZXh0dXJlRGVzY3JpcHRvciBz
ZXRVc2FnZTpuZXdVc2FnZV07Cit9CisKK01UTFRleHR1cmVEZXNjcmlwdG9yKiBHUFVUZXh0dXJl
RGVzY3JpcHRvcjo6cGxhdGZvcm1UZXh0dXJlRGVzY3JpcHRvcigpCit7CisgICAgcmV0dXJuIG1f
dGV4dHVyZURlc2NyaXB0b3IuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9HUFVUZXh0dXJlTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HUFVUZXh0dXJlTWV0YWwubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU0Zjk3NjljNTQ4ZGNhMTcwYTky
ZmE2NTE3ZDZiYTBiZThiNDI5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0dQVVRleHR1cmVNZXRhbC5tbQpAQCAtMCwwICsxLDg0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVVRleHR1cmUuaCIKKworI2lmIEVOQUJMRShXRUJHUFUp
CisKKyNpbXBvcnQgIkdQVURldmljZS5oIgorI2ltcG9ydCAiR1BVVGV4dHVyZURlc2NyaXB0b3Iu
aCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKworI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitHUFVUZXh0dXJlOjpHUFVUZXh0dXJlKEdQVURldmljZSogZGV2
aWNlLCBHUFVUZXh0dXJlRGVzY3JpcHRvciogZGVzY3JpcHRvcikKK3sKKyAgICBMT0coV2ViR1BV
LCAiR1BVVGV4dHVyZTo6R1BVVGV4dHVyZSgpIik7CisKKyAgICBpZiAoIWRldmljZSB8fCAhZGV2
aWNlLT5wbGF0Zm9ybURldmljZSgpIHx8ICFkZXNjcmlwdG9yIHx8ICFkZXNjcmlwdG9yLT5wbGF0
Zm9ybVRleHR1cmVEZXNjcmlwdG9yKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdGV4dHVy
ZSA9IChNVExUZXh0dXJlKilbZGV2aWNlLT5wbGF0Zm9ybURldmljZSgpIG5ld1RleHR1cmVXaXRo
RGVzY3JpcHRvcjpkZXNjcmlwdG9yLT5wbGF0Zm9ybVRleHR1cmVEZXNjcmlwdG9yKCldOworfQor
CitHUFVUZXh0dXJlOjpHUFVUZXh0dXJlKEdQVVRleHR1cmUqIG90aGVyKQoreworICAgIExPRyhX
ZWJHUFUsICJHUFVUZXh0dXJlOjpHUFVUZXh0dXJlKCkiKTsKKworICAgIGlmICghb3RoZXIgfHwg
IW90aGVyLT5wbGF0Zm9ybVRleHR1cmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV90ZXh0
dXJlID0gb3RoZXItPnBsYXRmb3JtVGV4dHVyZSgpOworfQorCit1bnNpZ25lZCBsb25nIEdQVVRl
eHR1cmU6OndpZHRoKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fdGV4dHVyZSkKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICBpZDxNVExUZXh0dXJlPiB0ZXh0dXJlID0gc3RhdGljX2Nhc3Q8aWQ8TVRM
VGV4dHVyZT4+KG1fdGV4dHVyZS5nZXQoKSk7CisgICAgcmV0dXJuIHRleHR1cmUud2lkdGg7Cit9
CisKK3Vuc2lnbmVkIGxvbmcgR1BVVGV4dHVyZTo6aGVpZ2h0KCkgY29uc3QKK3sKKyAgICBpZiAo
IW1fdGV4dHVyZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZDxNVExUZXh0dXJlPiB0ZXh0
dXJlID0gc3RhdGljX2Nhc3Q8aWQ8TVRMVGV4dHVyZT4+KG1fdGV4dHVyZS5nZXQoKSk7CisgICAg
cmV0dXJuIHRleHR1cmUuaGVpZ2h0OworfQorCitNVExUZXh0dXJlKiBHUFVUZXh0dXJlOjpwbGF0
Zm9ybVRleHR1cmUoKQoreworICAgIHJldHVybiBtX3RleHR1cmUuZ2V0KCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuY3BwCmluZGV4IGE1NmE4YjIwMzBmYWJjYTc3NzFi
Y2JhNTM0MzhmNjg4YTc4OWUzM2EuLmZlM2U2YjhkOGRkZDkzZjFiZmRmYmU3ZWQ0MDQwNzMxYWJl
MjZlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVEZXZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9H
UFVEZXZpY2UuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJHUFVCdWZmZXIuaCIK
ICNpbmNsdWRlICJHUFVMaWJyYXJ5LmgiCisjaW5jbHVkZSAiR1BVVGV4dHVyZS5oIgorI2luY2x1
ZGUgIkdQVVRleHR1cmVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC02NCw2ICs2NiwxMSBAQCBSZWZQdHI8R1BVQnVmZmVyPiBHUFVE
ZXZpY2U6OmNyZWF0ZUJ1ZmZlckZyb21EYXRhKEFycmF5QnVmZmVyVmlldyogZGF0YSkKICAgICBy
ZXR1cm4gR1BVQnVmZmVyOjpjcmVhdGUodGhpcywgZGF0YSk7CiB9CiAKK1JlZlB0cjxHUFVUZXh0
dXJlPiBHUFVEZXZpY2U6OmNyZWF0ZVRleHR1cmUoR1BVVGV4dHVyZURlc2NyaXB0b3IqIGRlc2Ny
aXB0b3IpCit7CisgICAgcmV0dXJuIEdQVVRleHR1cmU6OmNyZWF0ZSh0aGlzLCBkZXNjcmlwdG9y
KTsKK30KKwogI2lmICFQTEFURk9STShDT0NPQSkKIAogR1BVRGV2aWNlOjpHUFVEZXZpY2UoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmlj
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVURldmljZS5oCmlu
ZGV4IDg1NTg0MTUwMzZlZTk5MzBlYWZkOGMyZmY0NTY5YjdlNzQ4NmZkNmQuLmEyNDBmNzlhNDNk
MmRiYTA3ZWFlYWQ4MDVmNGExNzk2Y2U2OTRlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmgKQEAgLTQ4LDYgKzQ4LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBHUFVCdWZmZXI7CiBjbGFzcyBHUFVMaWJyYXJ5OworY2xh
c3MgR1BVVGV4dHVyZTsKK2NsYXNzIEdQVVRleHR1cmVEZXNjcmlwdG9yOwogCiBjbGFzcyBHUFVE
ZXZpY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVEZXZpY2U+IHsKIHB1YmxpYzoKQEAgLTY1LDYg
KzY3LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEdQVUxpYnJhcnk+
IGNyZWF0ZUxpYnJhcnkoY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBSZWZQdHI8R1BVQnVmZmVyPiBjcmVhdGVCdWZmZXJGcm9tRGF0YShBcnJheUJ1ZmZlclZp
ZXcqIGRhdGEpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxHUFVUZXh0dXJlPiBjcmVhdGVU
ZXh0dXJlKEdQVVRleHR1cmVEZXNjcmlwdG9yKik7CiAKIHByaXZhdGU6CiAgICAgR1BVRGV2aWNl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BV
VGV4dHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4
dHVyZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVmMjcwMzQ2MTg2YjJjYWE4NGE4M2FmMzA1N2VmYWU3ZTlj
OWVjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9HUFVUZXh0dXJlLmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkdQVVRleHR1cmUuaCIKKworI2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbXBvcnQgIkdQVURldmlj
ZS5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0
cjxHUFVUZXh0dXJlPiBHUFVUZXh0dXJlOjpjcmVhdGUoR1BVRGV2aWNlKiBkZXZpY2UsIEdQVVRl
eHR1cmVEZXNjcmlwdG9yKiBkZXNjcmlwdG9yKQoreworICAgIFJlZlB0cjxHUFVUZXh0dXJlPiB0
ZXh0dXJlID0gYWRvcHRSZWYobmV3IEdQVVRleHR1cmUoZGV2aWNlLCBkZXNjcmlwdG9yKSk7Cisg
ICAgcmV0dXJuIHRleHR1cmU7Cit9CisKK1JlZlB0cjxHUFVUZXh0dXJlPiBHUFVUZXh0dXJlOjpj
cmVhdGVGcm9tRXhpc3RpbmdUZXh0dXJlKEdQVVRleHR1cmUqIG90aGVyKQoreworICAgIFJlZlB0
cjxHUFVUZXh0dXJlPiB0ZXh0dXJlID0gYWRvcHRSZWYobmV3IEdQVVRleHR1cmUob3RoZXIpKTsK
KyAgICByZXR1cm4gdGV4dHVyZTsKK30KKworR1BVVGV4dHVyZTo6fkdQVVRleHR1cmUoKQorewor
ICAgIExPRyhXZWJHUFUsICJHUFVUZXh0dXJlOjp+R1BVVGV4dHVyZSgpIik7Cit9CisKKyNpZiAh
UExBVEZPUk0oQ09DT0EpCit1bnNpZ25lZCBsb25nIEdQVVRleHR1cmU6OndpZHRoKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gMDsKK30KKwordW5zaWduZWQgbG9uZyBHUFVUZXh0dXJlOjpoZWlnaHQo
KSBjb25zdAoreworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvR1BVVGV4dHVyZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0dQVVRleHR1cmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDU0ODE4NGUwODkxMWM4YjRmYzVkMjE4ZjUw
YjZmNTMwZmZkMDgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L0dQVVRleHR1cmUuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoV0VCR1BVKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgUExBVEZPUk0oQ09D
T0EpCitPQkpDX0NMQVNTIE1UTFRleHR1cmU7CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBHUFVEZXZpY2U7CitjbGFzcyBHUFVUZXh0dXJlRGVzY3JpcHRvcjsKKworY2xh
c3MgR1BVVGV4dHVyZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVRleHR1cmU+IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmUHRyPEdQVVRleHR1cmU+IGNyZWF0ZShHUFVEZXZpY2UqLCBHUFVUZXh0
dXJlRGVzY3JpcHRvciopOworICAgIHN0YXRpYyBSZWZQdHI8R1BVVGV4dHVyZT4gY3JlYXRlRnJv
bUV4aXN0aW5nVGV4dHVyZShHUFVUZXh0dXJlKik7CisgICAgV0VCQ09SRV9FWFBPUlQgfkdQVVRl
eHR1cmUoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGxvbmcgd2lkdGgoKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBsb25nIGhlaWdodCgpIGNvbnN0OworCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgV0VCQ09SRV9FWFBPUlQgTVRMVGV4dHVyZSogcGxhdGZv
cm1UZXh0dXJlKCk7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBHUFVUZXh0dXJlKEdQVURldmlj
ZSosIEdQVVRleHR1cmVEZXNjcmlwdG9yKik7CisgICAgR1BVVGV4dHVyZShHUFVUZXh0dXJlKik7
CisgICAgCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUmV0YWluUHRyPE1UTFRleHR1cmU+IG1f
dGV4dHVyZTsKKyNlbmRpZgorfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVRl
eHR1cmVEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9HUFVUZXh0dXJlRGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmVkNGU4MTMwZTgxMjI5N2Uw
YmE5ZDkzNWE3ZDBkM2VkYWM2ZjExNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVUZXh0dXJlRGVzY3JpcHRvci5jcHAKQEAgLTAsMCAr
MSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR1BVVGV4dHVyZURlc2NyaXB0b3IuaCIKKwor
I2lmIEVOQUJMRShXRUJHUFUpCisKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitSZWZQdHI8R1BVVGV4dHVyZURlc2NyaXB0b3I+IEdQVVRleHR1cmVEZXNjcmlw
dG9yOjpjcmVhdGUodW5zaWduZWQgbG9uZyBwaXhlbEZvcm1hdCwgdW5zaWduZWQgbG9uZyB3aWR0
aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQsIGJvb2wgbWlwbWFwcGVkKQoreworICAgIFJlZlB0cjxH
UFVUZXh0dXJlRGVzY3JpcHRvcj4gZGVzY3JpcHRvciA9IGFkb3B0UmVmKG5ldyBHUFVUZXh0dXJl
RGVzY3JpcHRvcihwaXhlbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgbWlwbWFwcGVkKSk7CisgICAg
cmV0dXJuIGRlc2NyaXB0b3I7Cit9CisKK0dQVVRleHR1cmVEZXNjcmlwdG9yOjp+R1BVVGV4dHVy
ZURlc2NyaXB0b3IoKQoreworICAgIExPRyhXZWJHUFUsICJHUFVUZXh0dXJlRGVzY3JpcHRvcjo6
fkdQVVRleHR1cmVEZXNjcmlwdG9yKCkiKTsKK30KKworI2lmICFQTEFURk9STShDT0NPQSkKK3Vu
c2lnbmVkIGxvbmcgR1BVVGV4dHVyZURlc2NyaXB0b3I6OndpZHRoKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKwordm9pZCBHUFVUZXh0dXJlRGVzY3JpcHRvcjo6c2V0V2lkdGgodW5zaWdu
ZWQgbG9uZykKK3sKK30KKwordW5zaWduZWQgbG9uZyBHUFVUZXh0dXJlRGVzY3JpcHRvcjo6aGVp
Z2h0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBHUFVUZXh0dXJlRGVzY3Jp
cHRvcjo6c2V0SGVpZ2h0KHVuc2lnbmVkIGxvbmcpCit7Cit9CisKK3Vuc2lnbmVkIGxvbmcgR1BV
VGV4dHVyZURlc2NyaXB0b3I6OnNhbXBsZUNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsK
K30KKwordm9pZCBHUFVUZXh0dXJlRGVzY3JpcHRvcjo6c2V0U2FtcGxlQ291bnQodW5zaWduZWQg
bG9uZykKK3sKK30KKwordW5zaWduZWQgbG9uZyBHUFVUZXh0dXJlRGVzY3JpcHRvcjo6dGV4dHVy
ZVR5cGUoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit2b2lkIEdQVVRleHR1cmVEZXNj
cmlwdG9yOjpzZXRUZXh0dXJlVHlwZSh1bnNpZ25lZCBsb25nKQoreworfQorCit1bnNpZ25lZCBs
b25nIEdQVVRleHR1cmVEZXNjcmlwdG9yOjpzdG9yYWdlTW9kZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIDA7Cit9CisKK3ZvaWQgR1BVVGV4dHVyZURlc2NyaXB0b3I6OnNldFN0b3JhZ2VNb2RlKHVu
c2lnbmVkIGxvbmcpCit7Cit9CisKK3Vuc2lnbmVkIGxvbmcgR1BVVGV4dHVyZURlc2NyaXB0b3I6
OnVzYWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBHUFVUZXh0dXJlRGVz
Y3JpcHRvcjo6c2V0VXNhZ2UodW5zaWduZWQgbG9uZykKK3sKK30KKyNlbmRpZgorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVRleHR1cmVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVVGV4dHVyZURlc2NyaXB0b3IuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zODZhN2RmNTBiMzQ4NmI1NTFjYmUzYTgwZjI2YWE2OWRjNzNmMDZjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVRleHR1cmVEZXNj
cmlwdG9yLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdQVSkKKworI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorT0JKQ19DTEFTUyBN
VExUZXh0dXJlRGVzY3JpcHRvcjsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEdQVVRleHR1cmVEZXNjcmlwdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVVGV4dHVyZURl
c2NyaXB0b3I+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPEdQVVRleHR1cmVEZXNjcmlw
dG9yPiBjcmVhdGUodW5zaWduZWQgbG9uZyBwaXhlbEZvcm1hdCwgdW5zaWduZWQgbG9uZyB3aWR0
aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQsIGJvb2wgbWlwbWFwcGVkKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB+R1BVVGV4dHVyZURlc2NyaXB0b3IoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHVuc2ln
bmVkIGxvbmcgd2lkdGgoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFdpZHRo
KHVuc2lnbmVkIGxvbmcpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgbG9uZyBoZWln
aHQoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEhlaWdodCh1bnNpZ25lZCBs
b25nKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGxvbmcgc2FtcGxlQ291bnQoKSBj
b25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNhbXBsZUNvdW50KHVuc2lnbmVkIGxv
bmcpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgbG9uZyB0ZXh0dXJlVHlwZSgpIGNv
bnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VGV4dHVyZVR5cGUodW5zaWduZWQgbG9u
Zyk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBsb25nIHN0b3JhZ2VNb2RlKCkgY29u
c3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTdG9yYWdlTW9kZSh1bnNpZ25lZCBsb25n
KTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGxvbmcgdXNhZ2UoKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFVzYWdlKHVuc2lnbmVkIGxvbmcpOworCisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgV0VCQ09SRV9FWFBPUlQgTVRMVGV4dHVyZURlc2NyaXB0b3IqIHBs
YXRmb3JtVGV4dHVyZURlc2NyaXB0b3IoKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEdQVVRl
eHR1cmVEZXNjcmlwdG9yKHVuc2lnbmVkIGxvbmcgcGl4ZWxGb3JtYXQsIHVuc2lnbmVkIGxvbmcg
d2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0LCBib29sIG1pcG1hcHBlZCk7CisKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBSZXRhaW5QdHI8TVRMVGV4dHVyZURlc2NyaXB0b3I+IG1fdGV4dHVy
ZURlc2NyaXB0b3I7CisjZW5kaWYKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisj
ZW5kaWYK
</data>
<flag name="review"
          id="325663"
          type_id="1"
          status="+"
          setter="jonlee"
    />
          </attachment>
      

    </bug>

</bugzilla>