<?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>121608</bug_id>
          
          <creation_ts>2013-09-19 07:33:52 -0700</creation_ts>
          <short_desc>Add RenderElement</short_desc>
          <delta_ts>2013-09-19 12:02:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>buildbot</cc>
    
    <cc>darin</cc>
    
    <cc>hyatt</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>930944</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-09-19 07:33:52 -0700</bug_when>
    <thetext>RenderObject
    RenderText
    RenderElement
        RenderLayerModelObject
        RenderSVGModelObject
        RenderSVGGradientStop</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930948</commentid>
    <comment_count>1</comment_count>
      <attachid>212067</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-09-19 07:46:30 -0700</bug_when>
    <thetext>Created attachment 212067
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930954</commentid>
    <comment_count>2</comment_count>
      <attachid>212067</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-19 08:07:05 -0700</bug_when>
    <thetext>Comment on attachment 212067
patch

Attachment 212067 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/1968178</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930955</commentid>
    <comment_count>3</comment_count>
      <attachid>212067</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-19 08:15:04 -0700</bug_when>
    <thetext>Comment on attachment 212067
patch

Attachment 212067 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/2009023</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930964</commentid>
    <comment_count>4</comment_count>
      <attachid>212074</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-09-19 08:50:24 -0700</bug_when>
    <thetext>Created attachment 212074
export the new header</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930998</commentid>
    <comment_count>5</comment_count>
      <attachid>212074</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-09-19 10:46:20 -0700</bug_when>
    <thetext>Comment on attachment 212074
export the new header

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931002</commentid>
    <comment_count>6</comment_count>
      <attachid>212074</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-09-19 10:50:41 -0700</bug_when>
    <thetext>Comment on attachment 212074
export the new header

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

&gt; Source/WebCore/rendering/RenderElement.cpp:131
&gt; +
&gt; +    return nullptr;

Shouldn&apos;t we have ASSERT_NOT_REACHED here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931004</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-09-19 10:52:18 -0700</bug_when>
    <thetext>https://trac.webkit.org/r156102</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931005</commentid>
    <comment_count>8</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-09-19 10:53:19 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Shouldn&apos;t we have ASSERT_NOT_REACHED here?

Not sure. Someone should find out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931008</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-09-19 10:54:42 -0700</bug_when>
    <thetext>The switch above it handles all cases in the enum so unless the enum value becomes bogus, we should never reach there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931037</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-09-19 12:02:33 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; The switch above it handles all cases in the enum so unless the enum value becomes bogus, we should never reach there.

Ah ok. I didn&apos;t realize it covers all. I&apos;ll add the assert.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212067</attachid>
            <date>2013-09-19 07:46:30 -0700</date>
            <delta_ts>2013-09-19 08:50:24 -0700</delta_ts>
            <desc>patch</desc>
            <filename>renderelement.patch</filename>
            <type>text/plain</type>
            <size>37504</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjA5NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA5LTE5ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUmVuZGVyRWxlbWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxNjA4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgY29t
bW9uIGJhc2UgY2xhc3MgZm9yIGFsbCBFbGVtZW50IHJlbmRlcmVycy4gVGhlIGNsYXNzIGhpZXJh
cmNoeSB3aWxsIG5vdyBsb29rIGxpa2UgdGhpcworICAgICAgICAKKyAgICAgICAgUmVuZGVyT2Jq
ZWN0CisgICAgICAgICAgICBSZW5kZXJUZXh0CisgICAgICAgICAgICBSZW5kZXJFbGVtZW50Cisg
ICAgICAgICAgICAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdAorICAgICAgICAgICAgICAgICAg
ICAuLi4KKyAgICAgICAgICAgICAgICBSZW5kZXJTVkdNb2RlbE9iamVjdAorICAgICAgICAgICAg
ICAgICAgICAuLi4KKyAgICAgICAgICAgICAgICBSZW5kZXJTVkdHcmFkaWVudFN0b3AKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgVGhpcyB3aWxsIGFsbG93IHRpZ2h0ZXIgdHlwaW5nIGluIGJv
dGggcmVuZGVyIGFuZCBET00gdHJlZXMuCisgICAgICAgIAorICAgICAgICBUaGUgcGF0Y2ggYWxz
byBtb3ZlcyByZW5kZXJlciBmYWN0b3J5IGZ1bmN0aW9uIHRvIFJlbmRlckVsZW1lbnQ6OmNyZWF0
ZUZvcigpLgorCiAyMDEzLTA5LTE5ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4K
IAogICAgICAgICBDVFRFOiBFbGxpcHNpc0JveDo6cmVuZGVyZXIoKSBzaG91bGQgcmV0dXJuIFJl
bmRlckJsb2NrJi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNTYwOTUpCisr
KyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjEzMSw2
ICsyMTMxLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9SZW5kZXJDb3Vu
dGVyLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCiAg
ICAgcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwCisgICAgcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAogICAg
IHJlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlz
aW9uIDE1NjA5NSkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtp
bmcgY29weSkKQEAgLTQ0MjYsNiArNDQyNiw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmggXAorCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVk
ZGVkT2JqZWN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5j
cHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYwLDYgKzExNjAsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAgXAogICAgIHJlbmRlcmluZy9S
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyRGV0
YWlsc01hcmtlci5jcHAgXAorICAgIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBcCiAgICAg
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
ckZpZWxkc2V0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNw
cCBcCkBAIC0yNDI5LDYgKzI0MzAsNyBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvUmVu
ZGVyQ291bnRlci5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmggXAorICAgIHJlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5o
IFwKICAgICByZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
ckZpbGVVcGxvYWRDb250cm9sLmggXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05
ODIyLDYgKzk4MjIsMjAgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcUmVuZGVyRWxlbWVudC5jcHAiPgorICAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
U3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CkBAIC0xOTk2Miw2ICsxOTk3Niw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcUmVuZGVyQ291bnRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlckRldGFpbHNNYXJrZXIuaCIgLz4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJFbGVtZW50LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJGaWVs
ZHNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlckZp
bGVVcGxvYWRDb250cm9sLmgiIC8+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTU2MTcsNiArNTYxNyw4IEBACiAJCUU0Mjk1RkE0MTJCMDYxNEUwMEQxQUNFMCAvKiBSZXNv
dXJjZUxvYWRQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTQyOTVGQTMxMkIwNjE0RTAwRDFBQ0UwIC8qIFJlc291cmNlTG9hZFByaW9yaXR5
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQz
MTA1QjgxNjc1MEYwQzAwREIyRkI4IC8qIE5vZGVUcmF2ZXJzYWwuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQzMTA1QjcxNjc1MEYwQzAwREIyRkI4
IC8qIE5vZGVUcmF2ZXJzYWwuY3BwICovOyB9OwogCQlFNDMxMDVCQjE2NzUwRjE2MDBEQjJGQjgg
LyogTm9kZVRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTQzMTA1QkExNjc1MEYxNjAwREIyRkI4IC8qIE5vZGVUcmF2ZXJzYWwuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFNDNBMDIzQjE3
RUIzNzBBMDA0Q0REMjUgLyogUmVuZGVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQzQTAyM0ExN0VCMzcwQTAwNENERDI1IC8qIFJlbmRl
ckVsZW1lbnQuaCAqLzsgfTsKKwkJRTQzQTAyM0QxN0VCMzcxMzAwNENERDI1IC8qIFJlbmRlckVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQzQTAyM0MxN0VCMzcxMzAwNENERDI1IC8qIFJlbmRlckVsZW1lbnQuY3BwICovOyB9OwogCQlF
NDQ2MTNBMTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1ZGlvRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM4RjBDRDYzMzEwMDBG
QURBNzUgLyogSFRNTEF1ZGlvRWxlbWVudC5jcHAgKi87IH07CiAJCUU0NDYxM0EyMENENjMzMTAw
MEZBREE3NSAvKiBIVE1MQXVkaW9FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM5MDBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1ZGlv
RWxlbWVudC5oICovOyB9OwogCQlFNDQ2MTNBNDBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlh
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDQ2MTM5MjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5jcHAgKi87IH07
CkBAIC0xMjU5Myw2ICsxMjU5NSw4IEBACiAJCUU0Mjk1RkEzMTJCMDYxNEUwMEQxQUNFMCAvKiBS
ZXNvdXJjZUxvYWRQcmlvcml0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZXNvdXJjZUxvYWRQcmlvcml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDMx
MDVCNzE2NzUwRjBDMDBEQjJGQjggLyogTm9kZVRyYXZlcnNhbC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlVHJhdmVyc2FsLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQzMTA1QkExNjc1MEYxNjAwREIyRkI4IC8qIE5vZGVUcmF2ZXJzYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZVRyYXZlcnNhbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDNBMDIzQTE3RUIzNzBBMDA0Q0REMjUgLyogUmVu
ZGVyRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0M0EwMjNDMTdFQjM3MTMwMDRD
REQyNSAvKiBSZW5kZXJFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbmRlckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NDQ2MTM4RjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1ZGlvRWxlbWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MQXVkaW9FbGVtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ0NjEzOTAwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxB
dWRpb0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTEF1ZGlv
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDQ2MTM5MTBDRDYzMzEw
MDBGQURBNzUgLyogSFRNTEF1ZGlvRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
SFRNTEF1ZGlvRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDUy
Niw2ICsyMDUzMCw4IEBACiAJCQkJQkNFQTQ4MkYwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveC5oICovLAogCQkJCUQzMDI3NTQ1MTJBNUZFODQwMDRCRDgyOCAv
KiBSZW5kZXJEZXRhaWxzTWFya2VyLmNwcCAqLywKIAkJCQlEMzAyNzU0NjEyQTVGRTg0MDA0QkQ4
MjggLyogUmVuZGVyRGV0YWlsc01hcmtlci5oICovLAorCQkJCUU0M0EwMjNBMTdFQjM3MEEwMDRD
REQyNSAvKiBSZW5kZXJFbGVtZW50LmggKi8sCisJCQkJRTQzQTAyM0MxN0VCMzcxMzAwNENERDI1
IC8qIFJlbmRlckVsZW1lbnQuY3BwICovLAogCQkJCTBGNUI3QTUyMTBGNjVEN0EwMDM3NjMwMiAv
KiBSZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgKi8sCiAJCQkJMEY1QjdBNTMxMEY2NUQ3QTAwMzc2
MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0LmggKi8sCiAJCQkJQThFQTczQUYwQTE5MDBFMzAw
QThFRjVGIC8qIFJlbmRlckZpZWxkc2V0LmNwcCAqLywKQEAgLTI0MjgwLDYgKzI0Mjg2LDcgQEAK
IAkJCQkwODhBMEUwQjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUZWFyT2ZmLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwODhBMEUwQzEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlU
cmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTlBMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0M0EwMjNCMTdF
QjM3MEEwMDRDREQyNSAvKiBSZW5kZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEVE
RTE5RjEyQTUwQjhFMDBCOTU3OTcgLyogU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIy
MjdBOUUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQkxOTdCMTgwQzE1MDYzNTMyMDBFNEFEQTggLyogU1ZHUmVuZGVyaW5nQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTUzNCw2ICsyNTU0MSw3IEBACiAJCQkJQkM1M0RBNjIxMTQzMTRC
RDAwMEQ4MTdFIC8qIERPTU9iamVjdEhhc2hUYWJsZU1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4NUM3RjVEMTBBQUZCOEQ5MDA0MDE0REQgLyogRE9NT3ZlcmZsb3dFdmVudC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUUxMjg0QkQ1MTA0NEEwMUUwMEVBRUI1MiAvKiBET01QYWdlVHJhbnNpdGlv
bkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTQzQTAyM0QxN0VCMzcxMzAwNENERDI1IC8q
IFJlbmRlckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDRTUzRTcwQThEMThFNzAw
MjI5NDdEIC8qIERPTVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTU0ODgxODE0RTQz
MkExMDA2QUUwNUEgLyogRE9NUGF0Y2hTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5
QzZFNEVCMEQ3NDVFMkIwMDY0NDJFOSAvKiBET01QbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNjQsNyArMTI2NCw3IEBA
IGJvb2wgRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW4KIAogUmVuZGVyT2JqZWN0
KiBFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJiBzdHls
ZSkKIHsKLSAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QoKnRoaXMsIHN0eWxl
KTsKKyAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBzdHlsZSk7CiB9
CiAKIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgRWxlbWVudDo6aW5zZXJ0ZWRJ
bnRvKENvbnRhaW5lck5vZGUqIGluc2VydGlvblBvaW50KQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjA5NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw3
ICs3OCw3IEBAIGJvb2wgSFRNTEFwcGxldEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQKIFJlbmRl
ck9iamVjdCogSFRNTEFwcGxldEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiwg
UmVuZGVyU3R5bGUmIHN0eWxlKQogewogICAgIGlmICghY2FuRW1iZWRKYXZhKCkpCi0gICAgICAg
IHJldHVybiBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCgqdGhpcywgc3R5bGUpOworICAgICAg
ICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBzdHlsZSk7CiAKICAgICBy
ZXR1cm4gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmNyZWF0ZUZvckFwcGxldCgqdGhpcyk7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjA5NSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBIVE1MQlJFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVz
ZQogUmVuZGVyT2JqZWN0KiBIVE1MQlJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSYgYXJlbmEsIFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICBpZiAoc3R5bGUuaGFzQ29udGVu
dCgpKQotICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QoKnRoaXMsIHN0
eWxlKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgc3R5
bGUpOwogCiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckxpbmVCcmVhaygqdGhpcyk7CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MDk1KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTc5Miw3ICs3OTIsNyBAQCBSZW5kZXJPYmplY3QqIEhUTUxFbGVtZW50OjpjcmVhdGVSZW5kZXJl
CiB7CiAgICAgaWYgKGhhc0xvY2FsTmFtZSh3YnJUYWcpKQogICAgICAgICByZXR1cm4gbmV3IChh
cmVuYSkgUmVuZGVyTGluZUJyZWFrKCp0aGlzKTsKLSAgICByZXR1cm4gUmVuZGVyT2JqZWN0Ojpj
cmVhdGVPYmplY3QoKnRoaXMsIHN0eWxlKTsKKyAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3Jl
YXRlRm9yKCp0aGlzLCBzdHlsZSk7CiB9CiAKIEhUTUxGb3JtRWxlbWVudCogSFRNTEVsZW1lbnQ6
OnZpcnR1YWxGb3JtKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVTZXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MDk1KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU5LDcgKzE1OSw3
IEBAIGJvb2wgSFRNTEZyYW1lU2V0RWxlbWVudDo6cmVuZGVyZXJJc05lZWQKIFJlbmRlck9iamVj
dCogSFRNTEZyYW1lU2V0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5h
LCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7CiAgICAgaWYgKHN0eWxlLmhhc0NvbnRlbnQoKSkKLSAg
ICAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KCp0aGlzLCBzdHlsZSk7Cisg
ICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0eWxlKTsKICAg
ICAKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyRnJhbWVTZXQoKnRoaXMpOwogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYw
OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjYsNyArMTY2LDcgQEAgU3RyaW5nIEhUTUxJbWFnZUVsZW1lbnQ6OmFsdFRl
eHQoKSBjb25zdAogUmVuZGVyT2JqZWN0KiBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICBpZiAoc3R5
bGUuaGFzQ29udGVudCgpKQotICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmpl
Y3QoKnRoaXMsIHN0eWxlKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZv
cigqdGhpcywgc3R5bGUpOwogCiAgICAgUmVuZGVySW1hZ2UqIGltYWdlID0gbmV3IChhcmVuYSkg
UmVuZGVySW1hZ2UodGhpcyk7CiAgICAgaW1hZ2UtPnNldEltYWdlUmVzb3VyY2UoUmVuZGVySW1h
Z2VSZXNvdXJjZTo6Y3JlYXRlKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0
ZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRl
ckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZXRlckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIFBhc3NS
ZWZQdHI8SFRNTE1ldGVyRWxlbWVudD4gSFRNTE1ldGVyRWwKIFJlbmRlck9iamVjdCogSFRNTE1l
dGVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHls
ZSYgc3R5bGUpCiB7CiAgICAgaWYgKGhhc0F1dGhvclNoYWRvd1Jvb3QoKSB8fCAhZG9jdW1lbnQo
KS5wYWdlKCktPnRoZW1lKCktPnN1cHBvcnRzTWV0ZXIoc3R5bGUuYXBwZWFyYW5jZSgpKSkKLSAg
ICAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KCp0aGlzLCBzdHlsZSk7Cisg
ICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0eWxlKTsKIAog
ICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJNZXRlcih0aGlzKTsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAkocmV2aXNpb24g
MTU2MDk1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjEzLDcgKzIxMyw3IEBAIFJlbmRlck9iamVjdCogSFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6Y3IKICAgICAvLyBjbGFzcyBhbmQgYWxsIHN1cGVyY2xhc3NlcyBi
ZWNhdXNlIGNyZWF0ZU9iamVjdCB3b24ndCBuZWNlc3NhcmlseQogICAgIC8vIHJldHVybiBhIFJl
bmRlckVtYmVkZGVkT2JqZWN0IG9yIFJlbmRlcldpZGdldC4KICAgICBpZiAodXNlRmFsbGJhY2tD
b250ZW50KCkpCi0gICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCgqdGhp
cywgc3R5bGUpOworICAgICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlz
LCBzdHlsZSk7CiAKICAgICBpZiAoaXNJbWFnZVR5cGUoKSkgewogICAgICAgICBSZW5kZXJJbWFn
ZSogaW1hZ2UgPSBuZXcgKGFyZW5hKSBSZW5kZXJJbWFnZSh0aGlzKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MDk1KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjEsNyArNjEsNyBAQCBQYXNzUmVmUHRyPEhUTUxQcm9ncmVzc0VsZW1lbnQ+IEhU
TUxQcm9nCiBSZW5kZXJPYmplY3QqIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmIHN0eWxlKQogewogICAgIGlmICghc3R5
bGUuaGFzQXBwZWFyYW5jZSgpIHx8IGhhc0F1dGhvclNoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0
dXJuIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KCp0aGlzLCBzdHlsZSk7CisgICAgICAgIHJl
dHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0eWxlKTsKIAogICAgIHJldHVy
biBuZXcgKGFyZW5hKSBSZW5kZXJQcm9ncmVzcyh0aGlzKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5jcHAJKHJldmlzaW9uIDE1NjA5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQAogI2luY2x1ZGUg
IlJhZGlvSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiUmFuZ2VJbnB1dFR5cGUuaCIKICNpbmNsdWRl
ICJSZWd1bGFyRXhwcmVzc2lvbi5oIgotI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1
ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUg
IlJlc2V0SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgpA
QCAtNDcwLDcgKzQ3MCw3IEBAIFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBJbnB1dFR5cGU6
OmYKIAogUmVuZGVyT2JqZWN0KiBJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
JiwgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAogewotICAgIHJldHVybiBSZW5kZXJPYmplY3Q6
OmNyZWF0ZU9iamVjdChlbGVtZW50KCksIHN0eWxlKTsKKyAgICByZXR1cm4gUmVuZGVyRWxlbWVu
dDo6Y3JlYXRlRm9yKGVsZW1lbnQoKSwgc3R5bGUpOwogfQogCiB2b2lkIElucHV0VHlwZTo6Ymx1
cigpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAx
OTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMpIDE5OTkgQW50
dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMpIDIwMDUgQWxs
YW4gU2FuZGZlbGQgSmVuc2VuIChrZGVAY2FyZXdvbGYuY29tKQorICogICAgICAgICAgIChDKSAy
MDA1LCAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbS53ZWluaWdAZ21haWwuY29tKQorICogQ29weXJp
Z2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVu
ZGVyRWxlbWVudC5oIgorCisjaW5jbHVkZSAiQ29udGVudERhdGEuaCIKKyNpbmNsdWRlICJSZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3guaCIKKyNpbmNsdWRlICJSZW5kZXJGbGV4aWJsZUJveC5o
IgorI2luY2x1ZGUgIlJlbmRlckdyaWQuaCIKKyNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgorI2lu
Y2x1ZGUgIlJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmgiCisjaW5jbHVkZSAiUmVuZGVy
TGlzdEl0ZW0uaCIKKyNpbmNsdWRlICJSZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgiCisjaW5jbHVk
ZSAiUmVuZGVyUmVnaW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyUnVieS5oIgorI2luY2x1ZGUgIlJl
bmRlclJ1YnlUZXh0LmgiCisjaW5jbHVkZSAiUmVuZGVyVGFibGVDYXB0aW9uLmgiCisjaW5jbHVk
ZSAiUmVuZGVyVGFibGVDZWxsLmgiCisjaW5jbHVkZSAiUmVuZGVyVGFibGVDb2wuaCIKKyNpbmNs
dWRlICJSZW5kZXJUYWJsZVJvdy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlbmRlckVs
ZW1lbnQ6OlJlbmRlckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKKyAgICA6IFJlbmRlck9iamVj
dChlbGVtZW50KQoreworfQorCitSZW5kZXJFbGVtZW50Ojp+UmVuZGVyRWxlbWVudCgpCit7Cit9
CisKK1JlbmRlckVsZW1lbnQqIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcihFbGVtZW50JiBlbGVt
ZW50LCBSZW5kZXJTdHlsZSYgc3R5bGUpCit7CisgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZWxl
bWVudC5kb2N1bWVudCgpOworICAgIFJlbmRlckFyZW5hJiBhcmVuYSA9ICpkb2N1bWVudC5yZW5k
ZXJBcmVuYSgpOworCisgICAgLy8gTWluaW1hbCBzdXBwb3J0IGZvciBjb250ZW50IHByb3BlcnRp
ZXMgcmVwbGFjaW5nIGFuIGVudGlyZSBlbGVtZW50LgorICAgIC8vIFdvcmtzIG9ubHkgaWYgd2Ug
aGF2ZSBleGFjdGx5IG9uZSBwaWVjZSBvZiBjb250ZW50IGFuZCBpdCdzIGEgVVJMLgorICAgIC8v
IE90aGVyd2lzZSBhY3RzIGFzIGlmIHdlIGRpZG4ndCBzdXBwb3J0IHRoaXMgZmVhdHVyZS4KKyAg
ICBjb25zdCBDb250ZW50RGF0YSogY29udGVudERhdGEgPSBzdHlsZS5jb250ZW50RGF0YSgpOwor
ICAgIGlmIChjb250ZW50RGF0YSAmJiAhY29udGVudERhdGEtPm5leHQoKSAmJiBjb250ZW50RGF0
YS0+aXNJbWFnZSgpICYmICFlbGVtZW50LmlzUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgIFJl
bmRlckltYWdlKiBpbWFnZSA9IG5ldyAoYXJlbmEpIFJlbmRlckltYWdlKCZlbGVtZW50KTsKKyAg
ICAgICAgLy8gUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2UgcmVxdWlyZXMgYSBzdHlsZSBi
ZWluZyBwcmVzZW50IG9uIHRoZSBpbWFnZSBidXQgd2UgZG9uJ3Qgd2FudCB0bworICAgICAgICAv
LyB0cmlnZ2VyIGEgc3R5bGUgY2hhbmdlIG5vdyBhcyB0aGUgbm9kZSBpcyBub3QgZnVsbHkgYXR0
YWNoZWQuIE1vdmluZyB0aGlzIGNvZGUgdG8gc3R5bGUgY2hhbmdlCisgICAgICAgIC8vIGRvZXNu
J3QgbWFrZSBzZW5zZSBhcyBpdCBzaG91bGQgYmUgcnVuIG9uY2UgYXQgcmVuZGVyZXIgY3JlYXRp
b24uCisgICAgICAgIGltYWdlLT5zZXRTdHlsZUludGVybmFsKCZzdHlsZSk7CisgICAgICAgIGlm
IChjb25zdCBTdHlsZUltYWdlKiBzdHlsZUltYWdlID0gc3RhdGljX2Nhc3Q8Y29uc3QgSW1hZ2VD
b250ZW50RGF0YSo+KGNvbnRlbnREYXRhKS0+aW1hZ2UoKSkgeworICAgICAgICAgICAgaW1hZ2Ut
PnNldEltYWdlUmVzb3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2U6OmNyZWF0ZShj
b25zdF9jYXN0PFN0eWxlSW1hZ2UqPihzdHlsZUltYWdlKSkpOworICAgICAgICAgICAgaW1hZ2Ut
PnNldElzR2VuZXJhdGVkQ29udGVudCgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGlt
YWdlLT5zZXRJbWFnZVJlc291cmNlKFJlbmRlckltYWdlUmVzb3VyY2U6OmNyZWF0ZSgpKTsKKyAg
ICAgICAgaW1hZ2UtPnNldFN0eWxlSW50ZXJuYWwoMCk7CisgICAgICAgIHJldHVybiBpbWFnZTsK
KyAgICB9CisKKyAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKEhUTUxOYW1lczo6cnVieVRhZykp
IHsKKyAgICAgICAgaWYgKHN0eWxlLmRpc3BsYXkoKSA9PSBJTkxJTkUpCisgICAgICAgICAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyUnVieUFzSW5saW5lKGVsZW1lbnQpOworICAgICAgICBp
ZiAoc3R5bGUuZGlzcGxheSgpID09IEJMT0NLKQorICAgICAgICAgICAgcmV0dXJuIG5ldyAoYXJl
bmEpIFJlbmRlclJ1YnlBc0Jsb2NrKGVsZW1lbnQpOworICAgIH0KKyAgICAvLyB0cmVhdCA8cnQ+
IGFzIHJ1YnkgdGV4dCBPTkxZIGlmIGl0IHN0aWxsIGhhcyBpdHMgZGVmYXVsdCB0cmVhdG1lbnQg
b2YgYmxvY2sKKyAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKEhUTUxOYW1lczo6cnRUYWcpICYm
IHN0eWxlLmRpc3BsYXkoKSA9PSBCTE9DSykKKyAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJl
bmRlclJ1YnlUZXh0KGVsZW1lbnQpOworICAgIGlmIChkb2N1bWVudC5jc3NSZWdpb25zRW5hYmxl
ZCgpICYmIHN0eWxlLmlzRGlzcGxheVJlZ2lvblR5cGUoKSAmJiAhc3R5bGUucmVnaW9uVGhyZWFk
KCkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyUmVnaW9uKCZl
bGVtZW50LCAwKTsKKyAgICBzd2l0Y2ggKHN0eWxlLmRpc3BsYXkoKSkgeworICAgIGNhc2UgTk9O
RToKKyAgICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBJTkxJTkU6CisgICAgICAgIHJldHVybiBu
ZXcgKGFyZW5hKSBSZW5kZXJJbmxpbmUoJmVsZW1lbnQpOworICAgIGNhc2UgQkxPQ0s6CisgICAg
Y2FzZSBJTkxJTkVfQkxPQ0s6CisgICAgY2FzZSBSVU5fSU46CisgICAgY2FzZSBDT01QQUNUOgor
ICAgICAgICBpZiAoKCFzdHlsZS5oYXNBdXRvQ29sdW1uQ291bnQoKSB8fCAhc3R5bGUuaGFzQXV0
b0NvbHVtbldpZHRoKCkpICYmIGRvY3VtZW50LnJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQoKSkK
KyAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKGVs
ZW1lbnQpOworICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyQmxvY2tGbG93KCZlbGVt
ZW50KTsKKyAgICBjYXNlIExJU1RfSVRFTToKKyAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJl
bmRlckxpc3RJdGVtKGVsZW1lbnQpOworICAgIGNhc2UgVEFCTEU6CisgICAgY2FzZSBJTkxJTkVf
VEFCTEU6CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUYWJsZSgmZWxlbWVudCk7
CisgICAgY2FzZSBUQUJMRV9ST1dfR1JPVVA6CisgICAgY2FzZSBUQUJMRV9IRUFERVJfR1JPVVA6
CisgICAgY2FzZSBUQUJMRV9GT09URVJfR1JPVVA6CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5h
KSBSZW5kZXJUYWJsZVNlY3Rpb24oJmVsZW1lbnQpOworICAgIGNhc2UgVEFCTEVfUk9XOgorICAg
ICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGFibGVSb3coJmVsZW1lbnQpOworICAgIGNh
c2UgVEFCTEVfQ09MVU1OX0dST1VQOgorICAgIGNhc2UgVEFCTEVfQ09MVU1OOgorICAgICAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGFibGVDb2woZWxlbWVudCk7CisgICAgY2FzZSBUQUJM
RV9DRUxMOgorICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGFibGVDZWxsKCZlbGVt
ZW50KTsKKyAgICBjYXNlIFRBQkxFX0NBUFRJT046CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5h
KSBSZW5kZXJUYWJsZUNhcHRpb24oZWxlbWVudCk7CisgICAgY2FzZSBCT1g6CisgICAgY2FzZSBJ
TkxJTkVfQk9YOgorICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyRGVwcmVjYXRlZEZs
ZXhpYmxlQm94KGVsZW1lbnQpOworICAgIGNhc2UgRkxFWDoKKyAgICBjYXNlIElOTElORV9GTEVY
OgorICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyRmxleGlibGVCb3goJmVsZW1lbnQp
OworICAgIGNhc2UgR1JJRDoKKyAgICBjYXNlIElOTElORV9HUklEOgorICAgICAgICByZXR1cm4g
bmV3IChhcmVuYSkgUmVuZGVyR3JpZChlbGVtZW50KTsKKyAgICB9CisKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMpIDE5OTkg
QW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMs
IDIwMDYsIDIwMDcsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKyNpZm5kZWYgUmVuZGVyRWxlbWVudF9oCisjZGVmaW5lIFJlbmRlckVsZW1lbnRfaAorCisj
aW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
UmVuZGVyRWxlbWVudCA6IHB1YmxpYyBSZW5kZXJPYmplY3QgeworcHVibGljOgorICAgIHZpcnR1
YWwgflJlbmRlckVsZW1lbnQoKTsKKworICAgIHN0YXRpYyBSZW5kZXJFbGVtZW50KiBjcmVhdGVG
b3IoRWxlbWVudCYsIFJlbmRlclN0eWxlJik7CisKKyAgICAvLyBUaGlzIGlzIG51bGwgZm9yIGFu
b255bW91cyByZW5kZXJlcnMuCisgICAgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJu
IHRvRWxlbWVudChSZW5kZXJPYmplY3Q6Om5vZGUoKSk7IH0KKyAgICBFbGVtZW50KiBub25Qc2V1
ZG9FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdG9FbGVtZW50KFJlbmRlck9iamVjdDo6bm9uUHNl
dWRvTm9kZSgpKTsgfQorICAgIEVsZW1lbnQqIGdlbmVyYXRpbmdFbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gdG9FbGVtZW50KFJlbmRlck9iamVjdDo6Z2VuZXJhdGluZ05vZGUoKSk7IH0KKworcHJv
dGVjdGVkOgorICAgIGV4cGxpY2l0IFJlbmRlckVsZW1lbnQoRWxlbWVudCopOworCitwcml2YXRl
OgorICAgIHZvaWQgbm9kZSgpIGNvbnN0IFdURl9ERUxFVEVEX0ZVTkNUSU9OOworICAgIHZvaWQg
bm9uUHNldWRvTm9kZSgpIGNvbnN0IFdURl9ERUxFVEVEX0ZVTkNUSU9OOworICAgIHZvaWQgZ2Vu
ZXJhdGluZ05vZGUoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlbmRlckVsZW1lbnRfaApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAko
cmV2aXNpb24gMTU2MDk1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIGJvb2wgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdDo6c19oYWRUcmFuc2YKIGJvb2wgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdDo6c19sYXllcldhc1NlbGZQYWludGluZyA9IGZhbHNlOwogCiBSZW5kZXJMYXllck1vZGVs
T2JqZWN0OjpSZW5kZXJMYXllck1vZGVsT2JqZWN0KEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBS
ZW5kZXJPYmplY3QoZWxlbWVudCkKKyAgICA6IFJlbmRlckVsZW1lbnQoZWxlbWVudCkKICAgICAs
IG1fbGF5ZXIoMCkKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllck1vZGVsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAkocmV2aXNpb24gMTU2MDk1KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpA
QCAtMjMsMTMgKzIzLDEzIEBACiAjaWZuZGVmIFJlbmRlckxheWVyTW9kZWxPYmplY3RfaAogI2Rl
ZmluZSBSZW5kZXJMYXllck1vZGVsT2JqZWN0X2gKIAotI2luY2x1ZGUgIlJlbmRlck9iamVjdC5o
IgorI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBSZW5kZXJMYXllcjsKIAotY2xhc3MgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCA6IHB1Ymxp
YyBSZW5kZXJPYmplY3QgeworY2xhc3MgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCA6IHB1YmxpYyBS
ZW5kZXJFbGVtZW50IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJMYXllck1vZGVsT2JqZWN0KCk7CkBA
IC01MCwxMSArNTAsNiBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIHF1ZXJ5IHJlY3QgaXMgZ2l2ZW4g
aW4gbG9jYWwgY29vcmRpbmF0ZSBzeXN0ZW0uCiAgICAgdmlydHVhbCBib29sIGJhY2tncm91bmRJ
c0tub3duVG9CZU9wYXF1ZUluUmVjdChjb25zdCBMYXlvdXRSZWN0JikgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAotICAgIC8vIFRoaXMgaXMgbnVsbCBmb3IgYW5vbnltb3VzIHJlbmRlcmVycy4K
LSAgICBFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdG9FbGVtZW50KFJlbmRlck9i
amVjdDo6bm9kZSgpKTsgfQotICAgIEVsZW1lbnQqIG5vblBzZXVkb0VsZW1lbnQoKSBjb25zdCB7
IHJldHVybiB0b0VsZW1lbnQoUmVuZGVyT2JqZWN0Ojpub25Qc2V1ZG9Ob2RlKCkpOyB9Ci0gICAg
RWxlbWVudCogZ2VuZXJhdGluZ0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0b0VsZW1lbnQoUmVu
ZGVyT2JqZWN0OjpnZW5lcmF0aW5nTm9kZSgpKTsgfQotCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBl
bnN1cmVMYXllcigpOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVMYXllcklmTmVlZGVkKCk7CkBA
IC02NCwxMCArNTksNiBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBp
c0xheWVyTW9kZWxPYmplY3QoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9
CiAKLSAgICB2b2lkIG5vZGUoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsKLSAgICB2b2lk
IG5vblBzZXVkb05vZGUoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsKLSAgICB2b2lkIGdl
bmVyYXRpbmdOb2RlKCkgY29uc3QgV1RGX0RFTEVURURfRlVOQ1RJT047Ci0KICAgICBSZW5kZXJM
YXllciogbV9sYXllcjsKIAogICAgIC8vIFVzZWQgdG8gc3RvcmUgc3RhdGUgYmV0d2VlbiBzdHls
ZVdpbGxDaGFuZ2UgYW5kIHN0eWxlRGlkQ2hhbmdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTU2MDk1KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3
IEBACiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5v
cmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcp
CiAgKiAgICAgICAgICAgKEMpIDIwMDQgQWxsYW4gU2FuZGZlbGQgSmVuc2VuIChrZGVAY2FyZXdv
bGYuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICoKQEAgLTI5
LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBbmlt
YXRpb25Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiQ29udGVudERhdGEuaCIKICNpbmNsdWRlICJD
dXJzb3JMaXN0LmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiRmxvYXRR
dWFkLmgiCkBAIC00OSwyNiArNDgsMTUgQEAKICNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCiAj
aW5jbHVkZSAiUmVuZGVyQXJlbmEuaCIKICNpbmNsdWRlICJSZW5kZXJDb3VudGVyLmgiCi0jaW5j
bHVkZSAiUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmgiCi0jaW5jbHVkZSAiUmVuZGVyRmxl
eGlibGVCb3guaCIKKyNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyR2VvbWV0cnlNYXAuaCIKLSNpbmNsdWRlICJSZW5kZXJHcmlkLmgiCi0jaW5jbHVkZSAiUmVu
ZGVySW1hZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5oIgog
I2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCi0jaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIK
LSNpbmNsdWRlICJSZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFt
ZWRGbG93VGhyZWFkLmgiCi0jaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCi0jaW5jbHVkZSAiUmVu
ZGVyUnVieS5oIgotI2luY2x1ZGUgIlJlbmRlclJ1YnlUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVy
U2Nyb2xsYmFyUGFydC5oIgotI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2FwdGlvbi5oIgotI2luY2x1
ZGUgIlJlbmRlclRhYmxlQ2VsbC5oIgorI2luY2x1ZGUgIlJlbmRlclRhYmxlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGFibGVDb2wuaCIKLSNpbmNsdWRlICJSZW5kZXJUYWJsZVJvdy5oIgogI2luY2x1
ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCkBAIC0xNjEsODUgKzE0OSw2IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpvcGVyYXRv
ciBkZWxldGUodm9pZCoKICAgICAqKHNpemVfdCAqKXB0ciA9IHN6OwogfQogCi1SZW5kZXJPYmpl
Y3QqIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0
eWxlJiBzdHlsZSkKLXsKLSAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBlbGVtZW50LmRvY3VtZW50
KCk7Ci0gICAgUmVuZGVyQXJlbmEmIGFyZW5hID0gKmRvY3VtZW50LnJlbmRlckFyZW5hKCk7Ci0K
LSAgICAvLyBNaW5pbWFsIHN1cHBvcnQgZm9yIGNvbnRlbnQgcHJvcGVydGllcyByZXBsYWNpbmcg
YW4gZW50aXJlIGVsZW1lbnQuCi0gICAgLy8gV29ya3Mgb25seSBpZiB3ZSBoYXZlIGV4YWN0bHkg
b25lIHBpZWNlIG9mIGNvbnRlbnQgYW5kIGl0J3MgYSBVUkwuCi0gICAgLy8gT3RoZXJ3aXNlIGFj
dHMgYXMgaWYgd2UgZGlkbid0IHN1cHBvcnQgdGhpcyBmZWF0dXJlLgotICAgIGNvbnN0IENvbnRl
bnREYXRhKiBjb250ZW50RGF0YSA9IHN0eWxlLmNvbnRlbnREYXRhKCk7Ci0gICAgaWYgKGNvbnRl
bnREYXRhICYmICFjb250ZW50RGF0YS0+bmV4dCgpICYmIGNvbnRlbnREYXRhLT5pc0ltYWdlKCkg
JiYgIWVsZW1lbnQuaXNQc2V1ZG9FbGVtZW50KCkpIHsKLSAgICAgICAgUmVuZGVySW1hZ2UqIGlt
YWdlID0gbmV3IChhcmVuYSkgUmVuZGVySW1hZ2UoJmVsZW1lbnQpOwotICAgICAgICAvLyBSZW5k
ZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZSByZXF1aXJlcyBhIHN0eWxlIGJlaW5nIHByZXNlbnQg
b24gdGhlIGltYWdlIGJ1dCB3ZSBkb24ndCB3YW50IHRvCi0gICAgICAgIC8vIHRyaWdnZXIgYSBz
dHlsZSBjaGFuZ2Ugbm93IGFzIHRoZSBub2RlIGlzIG5vdCBmdWxseSBhdHRhY2hlZC4gTW92aW5n
IHRoaXMgY29kZSB0byBzdHlsZSBjaGFuZ2UKLSAgICAgICAgLy8gZG9lc24ndCBtYWtlIHNlbnNl
IGFzIGl0IHNob3VsZCBiZSBydW4gb25jZSBhdCByZW5kZXJlciBjcmVhdGlvbi4KLSAgICAgICAg
aW1hZ2UtPnNldFN0eWxlSW50ZXJuYWwoJnN0eWxlKTsKLSAgICAgICAgaWYgKGNvbnN0IFN0eWxl
SW1hZ2UqIHN0eWxlSW1hZ2UgPSBzdGF0aWNfY2FzdDxjb25zdCBJbWFnZUNvbnRlbnREYXRhKj4o
Y29udGVudERhdGEpLT5pbWFnZSgpKSB7Ci0gICAgICAgICAgICBpbWFnZS0+c2V0SW1hZ2VSZXNv
dXJjZShSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZTo6Y3JlYXRlKGNvbnN0X2Nhc3Q8U3R5
bGVJbWFnZSo+KHN0eWxlSW1hZ2UpKSk7Ci0gICAgICAgICAgICBpbWFnZS0+c2V0SXNHZW5lcmF0
ZWRDb250ZW50KCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgaW1hZ2UtPnNldEltYWdl
UmVzb3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkpOwotICAgICAgICBpbWFnZS0+
c2V0U3R5bGVJbnRlcm5hbCgwKTsKLSAgICAgICAgcmV0dXJuIGltYWdlOwotICAgIH0KLQotICAg
IGlmIChlbGVtZW50Lmhhc1RhZ05hbWUocnVieVRhZykpIHsKLSAgICAgICAgaWYgKHN0eWxlLmRp
c3BsYXkoKSA9PSBJTkxJTkUpCi0gICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVy
UnVieUFzSW5saW5lKGVsZW1lbnQpOwotICAgICAgICBlbHNlIGlmIChzdHlsZS5kaXNwbGF5KCkg
PT0gQkxPQ0spCi0gICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyUnVieUFzQmxv
Y2soZWxlbWVudCk7Ci0gICAgfQotICAgIC8vIHRyZWF0IDxydD4gYXMgcnVieSB0ZXh0IE9OTFkg
aWYgaXQgc3RpbGwgaGFzIGl0cyBkZWZhdWx0IHRyZWF0bWVudCBvZiBibG9jawotICAgIGlmIChl
bGVtZW50Lmhhc1RhZ05hbWUocnRUYWcpICYmIHN0eWxlLmRpc3BsYXkoKSA9PSBCTE9DSykKLSAg
ICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclJ1YnlUZXh0KGVsZW1lbnQpOwotICAgIGlm
IChkb2N1bWVudC5jc3NSZWdpb25zRW5hYmxlZCgpICYmIHN0eWxlLmlzRGlzcGxheVJlZ2lvblR5
cGUoKSAmJiAhc3R5bGUucmVnaW9uVGhyZWFkKCkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4g
bmV3IChhcmVuYSkgUmVuZGVyUmVnaW9uKCZlbGVtZW50LCAwKTsKLSAgICBzd2l0Y2ggKHN0eWxl
LmRpc3BsYXkoKSkgewotICAgIGNhc2UgTk9ORToKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgY2Fz
ZSBJTkxJTkU6Ci0gICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJJbmxpbmUoJmVsZW1l
bnQpOwotICAgIGNhc2UgQkxPQ0s6Ci0gICAgY2FzZSBJTkxJTkVfQkxPQ0s6Ci0gICAgY2FzZSBS
VU5fSU46Ci0gICAgY2FzZSBDT01QQUNUOgotICAgICAgICBpZiAoKCFzdHlsZS5oYXNBdXRvQ29s
dW1uQ291bnQoKSB8fCAhc3R5bGUuaGFzQXV0b0NvbHVtbldpZHRoKCkpICYmIGRvY3VtZW50LnJl
Z2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5h
KSBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKGVsZW1lbnQpOwotICAgICAgICByZXR1cm4gbmV3IChh
cmVuYSkgUmVuZGVyQmxvY2tGbG93KCZlbGVtZW50KTsKLSAgICBjYXNlIExJU1RfSVRFTToKLSAg
ICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckxpc3RJdGVtKGVsZW1lbnQpOwotICAgIGNh
c2UgVEFCTEU6Ci0gICAgY2FzZSBJTkxJTkVfVEFCTEU6Ci0gICAgICAgIHJldHVybiBuZXcgKGFy
ZW5hKSBSZW5kZXJUYWJsZSgmZWxlbWVudCk7Ci0gICAgY2FzZSBUQUJMRV9ST1dfR1JPVVA6Ci0g
ICAgY2FzZSBUQUJMRV9IRUFERVJfR1JPVVA6Ci0gICAgY2FzZSBUQUJMRV9GT09URVJfR1JPVVA6
Ci0gICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUYWJsZVNlY3Rpb24oJmVsZW1lbnQp
OwotICAgIGNhc2UgVEFCTEVfUk9XOgotICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVy
VGFibGVSb3coJmVsZW1lbnQpOwotICAgIGNhc2UgVEFCTEVfQ09MVU1OX0dST1VQOgotICAgIGNh
c2UgVEFCTEVfQ09MVU1OOgotICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGFibGVD
b2woZWxlbWVudCk7Ci0gICAgY2FzZSBUQUJMRV9DRUxMOgotICAgICAgICByZXR1cm4gbmV3IChh
cmVuYSkgUmVuZGVyVGFibGVDZWxsKCZlbGVtZW50KTsKLSAgICBjYXNlIFRBQkxFX0NBUFRJT046
Ci0gICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUYWJsZUNhcHRpb24oZWxlbWVudCk7
Ci0gICAgY2FzZSBCT1g6Ci0gICAgY2FzZSBJTkxJTkVfQk9YOgotICAgICAgICByZXR1cm4gbmV3
IChhcmVuYSkgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94KGVsZW1lbnQpOwotICAgIGNhc2Ug
RkxFWDoKLSAgICBjYXNlIElOTElORV9GTEVYOgotICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkg
UmVuZGVyRmxleGlibGVCb3goJmVsZW1lbnQpOwotICAgIGNhc2UgR1JJRDoKLSAgICBjYXNlIElO
TElORV9HUklEOgotICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyR3JpZChlbGVtZW50
KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFM
KFdURjo6UmVmQ291bnRlZExlYWtDb3VudGVyLCByZW5kZXJPYmplY3RDb3VudGVyLCAoIlJlbmRl
ck9iamVjdCIpKTsKIAogUmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3QoTm9kZSogbm9kZSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDE1NjA5
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBj
b3B5KQpAQCAtMzI2LDggKzMyNiw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3dSZW5kZXJUcmVl
QW5kTWFyayhjb25zdCBSZW5kZXJPYmplY3QqIG1hcmtlZE9iamVjdDEgPSAwLCBjb25zdCBjaGFy
KiBtYXJrZWRMYWJlbDEgPSAwLCBjb25zdCBSZW5kZXJPYmplY3QqIG1hcmtlZE9iamVjdDIgPSAw
LCBjb25zdCBjaGFyKiBtYXJrZWRMYWJlbDIgPSAwLCBpbnQgZGVwdGggPSAwKSBjb25zdDsKICNl
bmRpZgogCi0gICAgc3RhdGljIFJlbmRlck9iamVjdCogY3JlYXRlT2JqZWN0KEVsZW1lbnQmLCBS
ZW5kZXJTdHlsZSYpOwotCiAgICAgLy8gT3ZlcmxvYWRlZCBuZXcgb3BlcmF0b3IuICBEZXJpdmVk
IGNsYXNzZXMgbXVzdCBvdmVycmlkZSBvcGVyYXRvciBuZXcKICAgICAvLyBpbiBvcmRlciB0byBh
bGxvY2F0ZSBvdXQgb2YgdGhlIFJlbmRlckFyZW5hLgogICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhz
aXplX3QsIFJlbmRlckFyZW5hJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyaW5nQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDE1NjA5NSkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUz
LDYgKzUzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJDb3VudGVyLmNwcCIKICNpbmNsdWRlICJSZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwIgogI2luY2x1ZGUgIlJlbmRlckRldGFpbHNNYXJr
ZXIuY3BwIgorI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlJlbmRlckVt
YmVkZGVkT2JqZWN0LmNwcCIKICNpbmNsdWRlICJSZW5kZXJGaWVsZHNldC5jcHAiCiAjaW5jbHVk
ZSAiUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0b3AuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmNwcAkocmV2aXNp
b24gMTU2MDk1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFk
aWVudFN0b3AuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKIAogUmVuZGVyU1ZHR3JhZGllbnRT
dG9wOjpSZW5kZXJTVkdHcmFkaWVudFN0b3AoU1ZHU3RvcEVsZW1lbnQqIGVsZW1lbnQpCi0gICAg
OiBSZW5kZXJPYmplY3QoZWxlbWVudCkKKyAgICA6IFJlbmRlckVsZW1lbnQoZWxlbWVudCkKIHsK
IH0KIApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIFJlbmRlclNWR0dyYWRpZW50U3RvcDo6bGF5b3V0
KCkKIAogU1ZHR3JhZGllbnRFbGVtZW50KiBSZW5kZXJTVkdHcmFkaWVudFN0b3A6OmdyYWRpZW50
RWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgQ29udGFpbmVyTm9kZSogcGFyZW50Tm9kZSA9IG5vZGUo
KS0+cGFyZW50Tm9kZSgpOworICAgIENvbnRhaW5lck5vZGUqIHBhcmVudE5vZGUgPSBlbGVtZW50
KCktPnBhcmVudE5vZGUoKTsKICAgICBpZiAocGFyZW50Tm9kZS0+aGFzVGFnTmFtZShsaW5lYXJH
cmFkaWVudFRhZykgfHwgcGFyZW50Tm9kZS0+aGFzVGFnTmFtZShyYWRpYWxHcmFkaWVudFRhZykp
CiAgICAgICAgIHJldHVybiB0b1NWR0dyYWRpZW50RWxlbWVudChwYXJlbnROb2RlKTsKICAgICBy
ZXR1cm4gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3Jh
ZGllbnRTdG9wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdHcmFkaWVudFN0b3AuaAkocmV2aXNpb24gMTU2MDk1KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0b3AuaAkod29ya2luZyBjb3B5KQpA
QCAtMjIsNyArMjIsNyBAQAogI2RlZmluZSBSZW5kZXJTVkdHcmFkaWVudFN0b3BfaAogCiAjaWYg
RU5BQkxFKFNWRykKLSNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKQEAgLTMwLDcgKzMwLDcgQEAg
Y2xhc3MgU1ZHR3JhZGllbnRFbGVtZW50OwogY2xhc3MgU1ZHU3RvcEVsZW1lbnQ7CiAKIC8vIFRo
aXMgY2xhc3MgZXhpc3RzIG1vc3RseSBzbyB3ZSBjYW4gaGVhciBhYm91dCBncmFkaWVudCBzdG9w
IHN0eWxlIGNoYW5nZXMKLWNsYXNzIFJlbmRlclNWR0dyYWRpZW50U3RvcCBGSU5BTCA6IHB1Ymxp
YyBSZW5kZXJPYmplY3QgeworY2xhc3MgUmVuZGVyU1ZHR3JhZGllbnRTdG9wIEZJTkFMIDogcHVi
bGljIFJlbmRlckVsZW1lbnQgewogcHVibGljOgogICAgIFJlbmRlclNWR0dyYWRpZW50U3RvcChT
VkdTdG9wRWxlbWVudCopOwogICAgIHZpcnR1YWwgflJlbmRlclNWR0dyYWRpZW50U3RvcCgpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdN
b2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDE1NjA5NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3
ICs0Myw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR01vZGVsT2JqZWN0OjpS
ZW5kZXJTVkdNb2RlbE9iamVjdChTVkdFbGVtZW50JiBlbGVtZW50KQotICAgIDogUmVuZGVyT2Jq
ZWN0KCZlbGVtZW50KQorICAgIDogUmVuZGVyRWxlbWVudCgmZWxlbWVudCkKICAgICAsIG1faGFz
U1ZHU2hhZG93KGZhbHNlKQogewogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAkocmV2aXNpb24gMTU2MDk1KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAKICNpZiBFTkFCTEUoU1ZHKQogCi0jaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUg
IlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdXBwb3J0LmgiCiAKQEAgLTQ2LDcg
KzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdFbGVtZW50OwogCi1jbGFz
cyBSZW5kZXJTVkdNb2RlbE9iamVjdCA6IHB1YmxpYyBSZW5kZXJPYmplY3QgeworY2xhc3MgUmVu
ZGVyU1ZHTW9kZWxPYmplY3QgOiBwdWJsaWMgUmVuZGVyRWxlbWVudCB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVk
ID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwpAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNTVkdTaGFkb3coKSBjb25zdCB7IHJldHVybiBtX2hhc1NWR1NoYWRvdzsg
fQogICAgIHZvaWQgc2V0SGFzU1ZHU2hhZG93KGJvb2wgaGFzU2hhZG93KSB7IG1faGFzU1ZHU2hh
ZG93ID0gaGFzU2hhZG93OyB9CiAKLSAgICBTVkdFbGVtZW50JiBlbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gKnRvU1ZHRWxlbWVudChSZW5kZXJPYmplY3Q6Om5vZGUoKSk7IH0KKyAgICBTVkdFbGVt
ZW50JiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gKnRvU1ZHRWxlbWVudChSZW5kZXJFbGVtZW50
OjplbGVtZW50KCkpOyB9CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBSZW5kZXJTVkdNb2Rl
bE9iamVjdChTVkdFbGVtZW50Jik7CkBAIC03NSw3ICs3NSw2IEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6Ci0gICAg
dm9pZCBub2RlKCkgY29uc3QgV1RGX0RFTEVURURfRlVOQ1RJT047CiAKICAgICAvLyBUaGlzIG1l
dGhvZCBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkLCBTVkcgdXNlcyBhIGRpZmZlcmVudCBub2RlQXRQ
b2ludCBtZXRob2QKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0Jiwg
SGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5l
ciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBP
VkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJl
ZUFzVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJUcmVlQXNUZXh0LmNwcAkocmV2aXNpb24gMTU2MDk1KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjI0LDcgKzYyNCw3IEBAIHZvaWQgd3JpdGVTVkdHcmFkaWVudFN0b3AoVGV4dFN0cmVhbSYg
dHMKIHsKICAgICB3cml0ZVN0YW5kYXJkUHJlZml4KHRzLCBzdG9wLCBpbmRlbnQpOwogCi0gICAg
U1ZHU3RvcEVsZW1lbnQqIHN0b3BFbGVtZW50ID0gdG9TVkdTdG9wRWxlbWVudCh0b1NWR0VsZW1l
bnQoc3RvcC5ub2RlKCkpKTsKKyAgICBTVkdTdG9wRWxlbWVudCogc3RvcEVsZW1lbnQgPSB0b1NW
R1N0b3BFbGVtZW50KHRvU1ZHRWxlbWVudChzdG9wLmVsZW1lbnQoKSkpOwogICAgIEFTU0VSVChz
dG9wRWxlbWVudCk7CiAKICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBzdG9wLnN0eWxlKCk7Cg==
</data>
<flag name="commit-queue"
          id="234223"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212074</attachid>
            <date>2013-09-19 08:50:24 -0700</date>
            <delta_ts>2013-09-19 10:50:41 -0700</delta_ts>
            <desc>export the new header</desc>
            <filename>renderelement-2.patch</filename>
            <type>text/plain</type>
            <size>38969</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjA5NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA5LTE5ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUmVuZGVyRWxlbWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxNjA4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgY29t
bW9uIGJhc2UgY2xhc3MgZm9yIGFsbCBFbGVtZW50IHJlbmRlcmVycy4gVGhlIGNsYXNzIGhpZXJh
cmNoeSB3aWxsIG5vdyBsb29rIGxpa2UgdGhpcworICAgICAgICAKKyAgICAgICAgUmVuZGVyT2Jq
ZWN0CisgICAgICAgICAgICBSZW5kZXJUZXh0CisgICAgICAgICAgICBSZW5kZXJFbGVtZW50Cisg
ICAgICAgICAgICAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdAorICAgICAgICAgICAgICAgICAg
ICAuLi4KKyAgICAgICAgICAgICAgICBSZW5kZXJTVkdNb2RlbE9iamVjdAorICAgICAgICAgICAg
ICAgICAgICAuLi4KKyAgICAgICAgICAgICAgICBSZW5kZXJTVkdHcmFkaWVudFN0b3AKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgVGhpcyB3aWxsIGFsbG93IHRpZ2h0ZXIgdHlwaW5nIGluIGJv
dGggcmVuZGVyIGFuZCBET00gdHJlZXMuCisgICAgICAgIAorICAgICAgICBUaGUgcGF0Y2ggYWxz
byBtb3ZlcyByZW5kZXJlciBmYWN0b3J5IGZ1bmN0aW9uIHRvIFJlbmRlckVsZW1lbnQ6OmNyZWF0
ZUZvcigpLgorCiAyMDEzLTA5LTE5ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4K
IAogICAgICAgICBDVFRFOiBFbGxpcHNpc0JveDo6cmVuZGVyZXIoKSBzaG91bGQgcmV0dXJuIFJl
bmRlckJsb2NrJi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNTYwOTUpCisr
KyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjEzMSw2
ICsyMTMxLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9SZW5kZXJDb3Vu
dGVyLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCiAg
ICAgcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwCisgICAgcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAogICAg
IHJlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlz
aW9uIDE1NjA5NSkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtp
bmcgY29weSkKQEAgLTQ0MjYsNiArNDQyNiw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmggXAorCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVk
ZGVkT2JqZWN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5j
cHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYwLDYgKzExNjAsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAgXAogICAgIHJlbmRlcmluZy9S
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyRGV0
YWlsc01hcmtlci5jcHAgXAorICAgIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBcCiAgICAg
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
ckZpZWxkc2V0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNw
cCBcCkBAIC0yNDI5LDYgKzI0MzAsNyBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvUmVu
ZGVyQ291bnRlci5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmggXAorICAgIHJlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5o
IFwKICAgICByZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
ckZpbGVVcGxvYWRDb250cm9sLmggXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05
ODIyLDYgKzk4MjIsMjAgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcUmVuZGVyRWxlbWVudC5jcHAiPgorICAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
U3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CkBAIC0xOTk2Miw2ICsxOTk3Niw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcUmVuZGVyQ291bnRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlckRldGFpbHNNYXJrZXIuaCIgLz4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJFbGVtZW50LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJGaWVs
ZHNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlckZp
bGVVcGxvYWRDb250cm9sLmgiIC8+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTEyNTksNyArMTI1OSw3IEBACiAJCTQzNjcwOEM1MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5k
ZXJTVkdHcmFkaWVudFN0b3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQzNjcwODg2MTJEOUNBNEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdHcmFkaWVudFN0
b3AuaCAqLzsgfTsKIAkJNDM2NzA4QzcxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR0hpZGRl
bkNvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDM2NzA4ODgxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5o
ICovOyB9OwogCQk0MzY3MDhDOTEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHSW1hZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwODhBMTJE
OUNBNEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdJbWFnZS5oICovOyB9OwotCQk0MzY3MDhDQjEyRDlD
QTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwODhDMTJEOUNBNEEwMDA0NDIzNCAvKiBS
ZW5kZXJTVkdNb2RlbE9iamVjdC5oICovOyB9OworCQk0MzY3MDhDQjEyRDlDQTRCMDAwNDQyMzQg
LyogUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQzNjcwODhDMTJEOUNBNEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdNb2Rl
bE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQzNjcwOENEMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM2NzA4OEUxMkQ5Q0E0
QTAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlLmggKi87IH07CiAJCTQzNjcwOENGMTJEOUNB
NEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwODkwMTJEOUNBNEEwMDA0NDIzNCAv
KiBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaCAqLzsgfTsKIAkJNDM2NzA4RDExMkQ5Q0E0QjAw
MDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MDg5MjEyRDlDQTRBMDAwNDQyMzQgLyog
UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaCAqLzsgfTsKQEAgLTU2MTcsNiArNTYxNyw4IEBA
CiAJCUU0Mjk1RkE0MTJCMDYxNEUwMEQxQUNFMCAvKiBSZXNvdXJjZUxvYWRQcmlvcml0eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyOTVGQTMxMkIw
NjE0RTAwRDFBQ0UwIC8qIFJlc291cmNlTG9hZFByaW9yaXR5LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQzMTA1QjgxNjc1MEYwQzAwREIyRkI4
IC8qIE5vZGVUcmF2ZXJzYWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTQzMTA1QjcxNjc1MEYwQzAwREIyRkI4IC8qIE5vZGVUcmF2ZXJzYWwuY3Bw
ICovOyB9OwogCQlFNDMxMDVCQjE2NzUwRjE2MDBEQjJGQjggLyogTm9kZVRyYXZlcnNhbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQzMTA1QkExNjc1
MEYxNjAwREIyRkI4IC8qIE5vZGVUcmF2ZXJzYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFNDNBMDIzQjE3RUIzNzBBMDA0Q0REMjUgLyogUmVu
ZGVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTQzQTAyM0ExN0VCMzcwQTAwNENERDI1IC8qIFJlbmRlckVsZW1lbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFNDNBMDIzRDE3RUIzNzEz
MDA0Q0REMjUgLyogUmVuZGVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDNBMDIzQzE3RUIzNzEzMDA0Q0REMjUgLyogUmVuZGVyRWxl
bWVudC5jcHAgKi87IH07CiAJCUU0NDYxM0ExMENENjMzMTAwMEZBREE3NSAvKiBIVE1MQXVkaW9F
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0NDYxMzhGMENENjMzMTAwMEZBREE3NSAvKiBIVE1MQXVkaW9FbGVtZW50LmNwcCAqLzsgfTsK
IAkJRTQ0NjEzQTIwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxBdWRpb0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxMzkwMENENjMzMTAw
MEZBREE3NSAvKiBIVE1MQXVkaW9FbGVtZW50LmggKi87IH07CiAJCUU0NDYxM0E0MENENjMzMTAw
MEZBREE3NSAvKiBIVE1MTWVkaWFFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxMzkyMENENjMzMTAwMEZBREE3NSAvKiBIVE1MTWVk
aWFFbGVtZW50LmNwcCAqLzsgfTsKQEAgLTEyNTkzLDYgKzEyNTk1LDggQEAKIAkJRTQyOTVGQTMx
MkIwNjE0RTAwRDFBQ0UwIC8qIFJlc291cmNlTG9hZFByaW9yaXR5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZFByaW9yaXR5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUU0MzEwNUI3MTY3NTBGMEMwMERCMkZCOCAvKiBOb2RlVHJhdmVyc2Fs
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vZGVUcmF2ZXJzYWwu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDMxMDVCQTE2NzUwRjE2MDBEQjJG
QjggLyogTm9kZVRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBO
b2RlVHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0M0EwMjNBMTdF
QjM3MEEwMDRDREQyNSAvKiBSZW5kZXJFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTQzQTAyM0MxN0VCMzcxMzAwNENERDI1IC8qIFJlbmRlckVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0NDYxMzhGMENENjMzMTAwMEZBREE3NSAvKiBIVE1MQXVkaW9F
bGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxBdWRp
b0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDQ2MTM5MDBDRDYz
MzEwMDBGQURBNzUgLyogSFRNTEF1ZGlvRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBIVE1MQXVkaW9FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0NDYxMzkxMENENjMzMTAwMEZBREE3NSAvKiBIVE1MQXVkaW9FbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MQXVkaW9FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIwNTI2LDYgKzIwNTMwLDggQEAKIAkJCQlCQ0VBNDgyRjA5N0Q5MzAy
MDA5NEM5RTQgLyogUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmggKi8sCiAJCQkJRDMwMjc1
NDUxMkE1RkU4NDAwNEJEODI4IC8qIFJlbmRlckRldGFpbHNNYXJrZXIuY3BwICovLAogCQkJCUQz
MDI3NTQ2MTJBNUZFODQwMDRCRDgyOCAvKiBSZW5kZXJEZXRhaWxzTWFya2VyLmggKi8sCisJCQkJ
RTQzQTAyM0ExN0VCMzcwQTAwNENERDI1IC8qIFJlbmRlckVsZW1lbnQuaCAqLywKKwkJCQlFNDNB
MDIzQzE3RUIzNzEzMDA0Q0REMjUgLyogUmVuZGVyRWxlbWVudC5jcHAgKi8sCiAJCQkJMEY1QjdB
NTIxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCAqLywKIAkJCQkw
RjVCN0E1MzEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuaCAqLywKIAkJ
CQlBOEVBNzNBRjBBMTkwMEUzMDBBOEVGNUYgLyogUmVuZGVyRmllbGRzZXQuY3BwICovLApAQCAt
MjQyODAsNiArMjQyODYsNyBAQAogCQkJCTA4OEEwRTBCMTI2RUYxREIwMDk3OEY3QSAvKiBTVkdQ
cm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OEEwRTBDMTI2RUYxREIwMDk3
OEY3QSAvKiBTVkdQcm9wZXJ0eVRyYWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOUEw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTQzQTAyM0IxN0VCMzcwQTAwNENERDI1IC8qIFJlbmRlckVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4RURFMTlGMTJBNTBCOEUwMEI5NTc5NyAvKiBTVkdSZWN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjIyN0E5RTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmVjdEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE5N0IxODBDMTUwNjM1MzIwMEU0QURBOCAvKiBTVkdS
ZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NTM0LDYgKzI1NTQxLDcgQEAK
IAkJCQlCQzUzREE2MjExNDMxNEJEMDAwRDgxN0UgLyogRE9NT2JqZWN0SGFzaFRhYmxlTWFwLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg1QzdGNUQxMEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVy
Zmxvd0V2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyODRCRDUxMDQ0QTAxRTAwRUFFQjUy
IC8qIERPTVBhZ2VUcmFuc2l0aW9uRXZlbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlFNDNBMDIz
RDE3RUIzNzEzMDA0Q0REMjUgLyogUmVuZGVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQUNFNTNFNzBBOEQxOEU3MDAyMjk0N0QgLyogRE9NUGFyc2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdBNTQ4ODE4MTRFNDMyQTEwMDZBRTA1QSAvKiBET01QYXRjaFN1cHBvcnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTlDNkU0RUIwRDc0NUUyQjAwNjQ0MkU5IC8qIERPTVBsdWdpbi5j
cHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1
NjA5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTI2NCw3ICsxMjY0LDcgQEAgYm9vbCBFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbgogCiBSZW5kZXJPYmplY3QqIEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
JiwgUmVuZGVyU3R5bGUmIHN0eWxlKQogewotICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OmNyZWF0
ZU9iamVjdCgqdGhpcywgc3R5bGUpOworICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVG
b3IoKnRoaXMsIHN0eWxlKTsKIH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVz
dCBFbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSogaW5zZXJ0aW9uUG9pbnQpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcAkocmV2aXNpb24g
MTU2MDk1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDcgQEAgYm9vbCBIVE1MQXBwbGV0RWxlbWVudDo6cmVu
ZGVyZXJJc05lZWRlZAogUmVuZGVyT2JqZWN0KiBIVE1MQXBwbGV0RWxlbWVudDo6Y3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7CiAgICAgaWYgKCFjYW5F
bWJlZEphdmEoKSkKLSAgICAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KCp0
aGlzLCBzdHlsZSk7CisgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRo
aXMsIHN0eWxlKTsKIAogICAgIHJldHVybiBSZW5kZXJFbWJlZGRlZE9iamVjdDo6Y3JlYXRlRm9y
QXBwbGV0KCp0aGlzKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmNw
cAkocmV2aXNpb24gMTU2MDk1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIEhUTUxCUkVsZW1lbnQ6
OmNvbGxlY3RTdHlsZUZvclByZXNlCiBSZW5kZXJPYmplY3QqIEhUTUxCUkVsZW1lbnQ6OmNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmIHN0eWxlKQogewogICAg
IGlmIChzdHlsZS5oYXNDb250ZW50KCkpCi0gICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OmNy
ZWF0ZU9iamVjdCgqdGhpcywgc3R5bGUpOworICAgICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6
Y3JlYXRlRm9yKCp0aGlzLCBzdHlsZSk7CiAKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVy
TGluZUJyZWFrKCp0aGlzKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzkyLDcgKzc5Miw3IEBAIFJlbmRlck9iamVjdCogSFRNTEVs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmUKIHsKICAgICBpZiAoaGFzTG9jYWxOYW1lKHdiclRhZykpCiAg
ICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJMaW5lQnJlYWsoKnRoaXMpOwotICAgIHJl
dHVybiBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCgqdGhpcywgc3R5bGUpOworICAgIHJldHVy
biBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0eWxlKTsKIH0KIAogSFRNTEZvcm1F
bGVtZW50KiBIVE1MRWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdApJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYwOTUpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTksNyArMTU5LDcgQEAgYm9vbCBIVE1MRnJhbWVTZXRFbGVtZW50OjpyZW5kZXJl
cklzTmVlZAogUmVuZGVyT2JqZWN0KiBIVE1MRnJhbWVTZXRFbGVtZW50OjpjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICBpZiAoc3R5
bGUuaGFzQ29udGVudCgpKQotICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmpl
Y3QoKnRoaXMsIHN0eWxlKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZv
cigqdGhpcywgc3R5bGUpOwogICAgIAogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJGcmFt
ZVNldCgqdGhpcyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE1NjA5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBTdHJpbmcgSFRN
TEltYWdlRWxlbWVudDo6YWx0VGV4dCgpIGNvbnN0CiBSZW5kZXJPYmplY3QqIEhUTUxJbWFnZUVs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmIHN0
eWxlKQogewogICAgIGlmIChzdHlsZS5oYXNDb250ZW50KCkpCi0gICAgICAgIHJldHVybiBSZW5k
ZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCgqdGhpcywgc3R5bGUpOworICAgICAgICByZXR1cm4gUmVu
ZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBzdHlsZSk7CiAKICAgICBSZW5kZXJJbWFnZSog
aW1hZ2UgPSBuZXcgKGFyZW5hKSBSZW5kZXJJbWFnZSh0aGlzKTsKICAgICBpbWFnZS0+c2V0SW1h
Z2VSZXNvdXJjZShSZW5kZXJJbWFnZVJlc291cmNlOjpjcmVhdGUoKSk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjA5NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU5LDcgKzU5LDcgQEAgUGFzc1JlZlB0cjxIVE1MTWV0ZXJFbGVtZW50PiBIVE1MTWV0ZXJFbAog
UmVuZGVyT2JqZWN0KiBIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSYgYXJlbmEsIFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICBpZiAoaGFzQXV0aG9yU2hhZG93
Um9vdCgpIHx8ICFkb2N1bWVudCgpLnBhZ2UoKS0+dGhlbWUoKS0+c3VwcG9ydHNNZXRlcihzdHls
ZS5hcHBlYXJhbmNlKCkpKQotICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmpl
Y3QoKnRoaXMsIHN0eWxlKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZv
cigqdGhpcywgc3R5bGUpOwogCiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlck1ldGVyKHRo
aXMpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTMsNyArMjEzLDcgQEAg
UmVuZGVyT2JqZWN0KiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcgogICAgIC8vIGNsYXNzIGFu
ZCBhbGwgc3VwZXJjbGFzc2VzIGJlY2F1c2UgY3JlYXRlT2JqZWN0IHdvbid0IG5lY2Vzc2FyaWx5
CiAgICAgLy8gcmV0dXJuIGEgUmVuZGVyRW1iZWRkZWRPYmplY3Qgb3IgUmVuZGVyV2lkZ2V0Lgog
ICAgIGlmICh1c2VGYWxsYmFja0NvbnRlbnQoKSkKLSAgICAgICAgcmV0dXJuIFJlbmRlck9iamVj
dDo6Y3JlYXRlT2JqZWN0KCp0aGlzLCBzdHlsZSk7CisgICAgICAgIHJldHVybiBSZW5kZXJFbGVt
ZW50OjpjcmVhdGVGb3IoKnRoaXMsIHN0eWxlKTsKIAogICAgIGlmIChpc0ltYWdlVHlwZSgpKSB7
CiAgICAgICAgIFJlbmRlckltYWdlKiBpbWFnZSA9IG5ldyAoYXJlbmEpIFJlbmRlckltYWdlKHRo
aXMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIFBhc3NSZWZQdHI8SFRN
TFByb2dyZXNzRWxlbWVudD4gSFRNTFByb2cKIFJlbmRlck9iamVjdCogSFRNTFByb2dyZXNzRWxl
bWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYgc3R5
bGUpCiB7CiAgICAgaWYgKCFzdHlsZS5oYXNBcHBlYXJhbmNlKCkgfHwgaGFzQXV0aG9yU2hhZG93
Um9vdCgpKQotICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QoKnRoaXMs
IHN0eWxlKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywg
c3R5bGUpOwogCiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclByb2dyZXNzKHRoaXMpOwog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAkocmV2aXNpb24gMTU2MDk1KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3
ICs2MSw3IEBACiAjaW5jbHVkZSAiUmFkaW9JbnB1dFR5cGUuaCIKICNpbmNsdWRlICJSYW5nZUlu
cHV0VHlwZS5oIgogI2luY2x1ZGUgIlJlZ3VsYXJFeHByZXNzaW9uLmgiCi0jaW5jbHVkZSAiUmVu
ZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRl
clRoZW1lLmgiCiAjaW5jbHVkZSAiUmVzZXRJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJSdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgiCkBAIC00NzAsNyArNDcwLDcgQEAgUGFzc1JlZlB0cjxIVE1MRm9y
bUVsZW1lbnQ+IElucHV0VHlwZTo6ZgogCiBSZW5kZXJPYmplY3QqIElucHV0VHlwZTo6Y3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KGVsZW1lbnQoKSwgc3R5bGUpOworICAg
IHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoZWxlbWVudCgpLCBzdHlsZSk7CiB9CiAK
IHZvaWQgSW5wdXRUeXBlOjpibHVyKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAg
ICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAg
ICAgICAgICAoQykgMjAwNSBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gKGtkZUBjYXJld29sZi5jb20p
CisgKiAgICAgICAgICAgKEMpIDIwMDUsIDIwMDYgU2FtdWVsIFdlaW5pZyAoc2FtLndlaW5pZ0Bn
bWFpbC5jb20pCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEwLCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisKKyNpbmNsdWRlICJDb250ZW50RGF0
YS5oIgorI2luY2x1ZGUgIlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oIgorI2luY2x1ZGUg
IlJlbmRlckZsZXhpYmxlQm94LmgiCisjaW5jbHVkZSAiUmVuZGVyR3JpZC5oIgorI2luY2x1ZGUg
IlJlbmRlckltYWdlLmgiCisjaW5jbHVkZSAiUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2Uu
aCIKKyNpbmNsdWRlICJSZW5kZXJMaXN0SXRlbS5oIgorI2luY2x1ZGUgIlJlbmRlck11bHRpQ29s
dW1uQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKKyNpbmNsdWRlICJSZW5kZXJS
dWJ5LmgiCisjaW5jbHVkZSAiUmVuZGVyUnVieVRleHQuaCIKKyNpbmNsdWRlICJSZW5kZXJUYWJs
ZUNhcHRpb24uaCIKKyNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKKyNpbmNsdWRlICJSZW5k
ZXJUYWJsZUNvbC5oIgorI2luY2x1ZGUgIlJlbmRlclRhYmxlUm93LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUmVuZGVyRWxlbWVudDo6UmVuZGVyRWxlbWVudChFbGVtZW50KiBlbGVtZW50
KQorICAgIDogUmVuZGVyT2JqZWN0KGVsZW1lbnQpCit7Cit9CisKK1JlbmRlckVsZW1lbnQ6On5S
ZW5kZXJFbGVtZW50KCkKK3sKK30KKworUmVuZGVyRWxlbWVudCogUmVuZGVyRWxlbWVudDo6Y3Jl
YXRlRm9yKEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiBzdHlsZSkKK3sKKyAgICBEb2N1
bWVudCYgZG9jdW1lbnQgPSBlbGVtZW50LmRvY3VtZW50KCk7CisgICAgUmVuZGVyQXJlbmEmIGFy
ZW5hID0gKmRvY3VtZW50LnJlbmRlckFyZW5hKCk7CisKKyAgICAvLyBNaW5pbWFsIHN1cHBvcnQg
Zm9yIGNvbnRlbnQgcHJvcGVydGllcyByZXBsYWNpbmcgYW4gZW50aXJlIGVsZW1lbnQuCisgICAg
Ly8gV29ya3Mgb25seSBpZiB3ZSBoYXZlIGV4YWN0bHkgb25lIHBpZWNlIG9mIGNvbnRlbnQgYW5k
IGl0J3MgYSBVUkwuCisgICAgLy8gT3RoZXJ3aXNlIGFjdHMgYXMgaWYgd2UgZGlkbid0IHN1cHBv
cnQgdGhpcyBmZWF0dXJlLgorICAgIGNvbnN0IENvbnRlbnREYXRhKiBjb250ZW50RGF0YSA9IHN0
eWxlLmNvbnRlbnREYXRhKCk7CisgICAgaWYgKGNvbnRlbnREYXRhICYmICFjb250ZW50RGF0YS0+
bmV4dCgpICYmIGNvbnRlbnREYXRhLT5pc0ltYWdlKCkgJiYgIWVsZW1lbnQuaXNQc2V1ZG9FbGVt
ZW50KCkpIHsKKyAgICAgICAgUmVuZGVySW1hZ2UqIGltYWdlID0gbmV3IChhcmVuYSkgUmVuZGVy
SW1hZ2UoJmVsZW1lbnQpOworICAgICAgICAvLyBSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFn
ZSByZXF1aXJlcyBhIHN0eWxlIGJlaW5nIHByZXNlbnQgb24gdGhlIGltYWdlIGJ1dCB3ZSBkb24n
dCB3YW50IHRvCisgICAgICAgIC8vIHRyaWdnZXIgYSBzdHlsZSBjaGFuZ2Ugbm93IGFzIHRoZSBu
b2RlIGlzIG5vdCBmdWxseSBhdHRhY2hlZC4gTW92aW5nIHRoaXMgY29kZSB0byBzdHlsZSBjaGFu
Z2UKKyAgICAgICAgLy8gZG9lc24ndCBtYWtlIHNlbnNlIGFzIGl0IHNob3VsZCBiZSBydW4gb25j
ZSBhdCByZW5kZXJlciBjcmVhdGlvbi4KKyAgICAgICAgaW1hZ2UtPnNldFN0eWxlSW50ZXJuYWwo
JnN0eWxlKTsKKyAgICAgICAgaWYgKGNvbnN0IFN0eWxlSW1hZ2UqIHN0eWxlSW1hZ2UgPSBzdGF0
aWNfY2FzdDxjb25zdCBJbWFnZUNvbnRlbnREYXRhKj4oY29udGVudERhdGEpLT5pbWFnZSgpKSB7
CisgICAgICAgICAgICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJjZShSZW5kZXJJbWFnZVJlc291cmNl
U3R5bGVJbWFnZTo6Y3JlYXRlKGNvbnN0X2Nhc3Q8U3R5bGVJbWFnZSo+KHN0eWxlSW1hZ2UpKSk7
CisgICAgICAgICAgICBpbWFnZS0+c2V0SXNHZW5lcmF0ZWRDb250ZW50KCk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgaW1hZ2UtPnNldEltYWdlUmVzb3VyY2UoUmVuZGVySW1hZ2VSZXNv
dXJjZTo6Y3JlYXRlKCkpOworICAgICAgICBpbWFnZS0+c2V0U3R5bGVJbnRlcm5hbCgwKTsKKyAg
ICAgICAgcmV0dXJuIGltYWdlOworICAgIH0KKworICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjpydWJ5VGFnKSkgeworICAgICAgICBpZiAoc3R5bGUuZGlzcGxheSgpID09IElO
TElORSkKKyAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJSdWJ5QXNJbmxpbmUo
ZWxlbWVudCk7CisgICAgICAgIGlmIChzdHlsZS5kaXNwbGF5KCkgPT0gQkxPQ0spCisgICAgICAg
ICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyUnVieUFzQmxvY2soZWxlbWVudCk7CisgICAg
fQorICAgIC8vIHRyZWF0IDxydD4gYXMgcnVieSB0ZXh0IE9OTFkgaWYgaXQgc3RpbGwgaGFzIGl0
cyBkZWZhdWx0IHRyZWF0bWVudCBvZiBibG9jaworICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjpydFRhZykgJiYgc3R5bGUuZGlzcGxheSgpID09IEJMT0NLKQorICAgICAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyUnVieVRleHQoZWxlbWVudCk7CisgICAgaWYgKGRvY3Vt
ZW50LmNzc1JlZ2lvbnNFbmFibGVkKCkgJiYgc3R5bGUuaXNEaXNwbGF5UmVnaW9uVHlwZSgpICYm
ICFzdHlsZS5yZWdpb25UaHJlYWQoKS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBuZXcgKGFy
ZW5hKSBSZW5kZXJSZWdpb24oJmVsZW1lbnQsIDApOworICAgIHN3aXRjaCAoc3R5bGUuZGlzcGxh
eSgpKSB7CisgICAgY2FzZSBOT05FOgorICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIElOTElO
RToKKyAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlcklubGluZSgmZWxlbWVudCk7Cisg
ICAgY2FzZSBCTE9DSzoKKyAgICBjYXNlIElOTElORV9CTE9DSzoKKyAgICBjYXNlIFJVTl9JTjoK
KyAgICBjYXNlIENPTVBBQ1Q6CisgICAgICAgIGlmICgoIXN0eWxlLmhhc0F1dG9Db2x1bW5Db3Vu
dCgpIHx8ICFzdHlsZS5oYXNBdXRvQ29sdW1uV2lkdGgoKSkgJiYgZG9jdW1lbnQucmVnaW9uQmFz
ZWRDb2x1bW5zRW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRl
ck11bHRpQ29sdW1uQmxvY2soZWxlbWVudCk7CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBS
ZW5kZXJCbG9ja0Zsb3coJmVsZW1lbnQpOworICAgIGNhc2UgTElTVF9JVEVNOgorICAgICAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyTGlzdEl0ZW0oZWxlbWVudCk7CisgICAgY2FzZSBUQUJM
RToKKyAgICBjYXNlIElOTElORV9UQUJMRToKKyAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJl
bmRlclRhYmxlKCZlbGVtZW50KTsKKyAgICBjYXNlIFRBQkxFX1JPV19HUk9VUDoKKyAgICBjYXNl
IFRBQkxFX0hFQURFUl9HUk9VUDoKKyAgICBjYXNlIFRBQkxFX0ZPT1RFUl9HUk9VUDoKKyAgICAg
ICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclRhYmxlU2VjdGlvbigmZWxlbWVudCk7CisgICAg
Y2FzZSBUQUJMRV9ST1c6CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUYWJsZVJv
dygmZWxlbWVudCk7CisgICAgY2FzZSBUQUJMRV9DT0xVTU5fR1JPVVA6CisgICAgY2FzZSBUQUJM
RV9DT0xVTU46CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUYWJsZUNvbChlbGVt
ZW50KTsKKyAgICBjYXNlIFRBQkxFX0NFTEw6CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBS
ZW5kZXJUYWJsZUNlbGwoJmVsZW1lbnQpOworICAgIGNhc2UgVEFCTEVfQ0FQVElPTjoKKyAgICAg
ICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclRhYmxlQ2FwdGlvbihlbGVtZW50KTsKKyAgICBj
YXNlIEJPWDoKKyAgICBjYXNlIElOTElORV9CT1g6CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5h
KSBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3goZWxlbWVudCk7CisgICAgY2FzZSBGTEVYOgor
ICAgIGNhc2UgSU5MSU5FX0ZMRVg6CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJG
bGV4aWJsZUJveCgmZWxlbWVudCk7CisgICAgY2FzZSBHUklEOgorICAgIGNhc2UgSU5MSU5FX0dS
SUQ6CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJHcmlkKGVsZW1lbnQpOworICAg
IH0KKworICAgIHJldHVybiBudWxscHRyOworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAq
ICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAq
IENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOSwgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBSZW5kZXJFbGVtZW50X2gKKyNkZWZpbmUg
UmVuZGVyRWxlbWVudF9oCisKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJFbGVtZW50IDogcHVibGljIFJlbmRlck9iamVjdCB7
CitwdWJsaWM6CisgICAgdmlydHVhbCB+UmVuZGVyRWxlbWVudCgpOworCisgICAgc3RhdGljIFJl
bmRlckVsZW1lbnQqIGNyZWF0ZUZvcihFbGVtZW50JiwgUmVuZGVyU3R5bGUmKTsKKworICAgIC8v
IFRoaXMgaXMgbnVsbCBmb3IgYW5vbnltb3VzIHJlbmRlcmVycy4KKyAgICBFbGVtZW50KiBlbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gdG9FbGVtZW50KFJlbmRlck9iamVjdDo6bm9kZSgpKTsgfQor
ICAgIEVsZW1lbnQqIG5vblBzZXVkb0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0b0VsZW1lbnQo
UmVuZGVyT2JqZWN0Ojpub25Qc2V1ZG9Ob2RlKCkpOyB9CisgICAgRWxlbWVudCogZ2VuZXJhdGlu
Z0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0b0VsZW1lbnQoUmVuZGVyT2JqZWN0OjpnZW5lcmF0
aW5nTm9kZSgpKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgUmVuZGVyRWxlbWVudChF
bGVtZW50Kik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBub2RlKCkgY29uc3QgV1RGX0RFTEVURURf
RlVOQ1RJT047CisgICAgdm9pZCBub25Qc2V1ZG9Ob2RlKCkgY29uc3QgV1RGX0RFTEVURURfRlVO
Q1RJT047CisgICAgdm9pZCBnZW5lcmF0aW5nTm9kZSgpIGNvbnN0IFdURl9ERUxFVEVEX0ZVTkNU
SU9OOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVuZGVyRWxl
bWVudF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyTW9kZWxPYmplY3QuY3BwCShyZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4
LDcgKzM4LDcgQEAgYm9vbCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzX2hhZFRyYW5zZgogYm9v
bCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzX2xheWVyV2FzU2VsZlBhaW50aW5nID0gZmFsc2U7
CiAKIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OlJlbmRlckxheWVyTW9kZWxPYmplY3QoRWxlbWVu
dCogZWxlbWVudCkKLSAgICA6IFJlbmRlck9iamVjdChlbGVtZW50KQorICAgIDogUmVuZGVyRWxl
bWVudChlbGVtZW50KQogICAgICwgbV9sYXllcigwKQogewogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCShyZXZpc2lvbiAx
NTYwOTUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMyArMjMsMTMgQEAKICNpZm5kZWYgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdF9oCiAjZGVmaW5lIFJlbmRlckxheWVyTW9kZWxPYmplY3RfaAogCi0jaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlckxheWVyOwogCi1jbGFzcyBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0IDogcHVibGljIFJlbmRlck9iamVjdCB7CitjbGFzcyBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0IDogcHVibGljIFJlbmRlckVsZW1lbnQgewogcHVibGljOgogICAgIGV4cGxpY2l0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QoRWxlbWVudCopOwogICAgIHZpcnR1YWwgflJlbmRlckxh
eWVyTW9kZWxPYmplY3QoKTsKQEAgLTUwLDExICs1MCw2IEBAIHB1YmxpYzoKICAgICAvLyBUaGUg
cXVlcnkgcmVjdCBpcyBnaXZlbiBpbiBsb2NhbCBjb29yZGluYXRlIHN5c3RlbS4KICAgICB2aXJ0
dWFsIGJvb2wgYmFja2dyb3VuZElzS25vd25Ub0JlT3BhcXVlSW5SZWN0KGNvbnN0IExheW91dFJl
Y3QmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgLy8gVGhpcyBpcyBudWxsIGZvciBh
bm9ueW1vdXMgcmVuZGVyZXJzLgotICAgIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biB0b0VsZW1lbnQoUmVuZGVyT2JqZWN0Ojpub2RlKCkpOyB9Ci0gICAgRWxlbWVudCogbm9uUHNl
dWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRvRWxlbWVudChSZW5kZXJPYmplY3Q6Om5vblBz
ZXVkb05vZGUoKSk7IH0KLSAgICBFbGVtZW50KiBnZW5lcmF0aW5nRWxlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIHRvRWxlbWVudChSZW5kZXJPYmplY3Q6OmdlbmVyYXRpbmdOb2RlKCkpOyB9Ci0KIHBy
b3RlY3RlZDoKICAgICB2b2lkIGVuc3VyZUxheWVyKCk7CiAgICAgdmlydHVhbCBib29sIHVwZGF0
ZUxheWVySWZOZWVkZWQoKTsKQEAgLTY0LDEwICs1OSw2IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6
CiAgICAgdmlydHVhbCBib29sIGlzTGF5ZXJNb2RlbE9iamVjdCgpIGNvbnN0IE9WRVJSSURFIEZJ
TkFMIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZvaWQgbm9kZSgpIGNvbnN0IFdURl9ERUxFVEVE
X0ZVTkNUSU9OOwotICAgIHZvaWQgbm9uUHNldWRvTm9kZSgpIGNvbnN0IFdURl9ERUxFVEVEX0ZV
TkNUSU9OOwotICAgIHZvaWQgZ2VuZXJhdGluZ05vZGUoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5D
VElPTjsKLQogICAgIFJlbmRlckxheWVyKiBtX2xheWVyOwogCiAgICAgLy8gVXNlZCB0byBzdG9y
ZSBzdGF0ZSBiZXR3ZWVuIHN0eWxlV2lsbENoYW5nZSBhbmQgc3R5bGVEaWRDaGFuZ2UKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiAxNTYw
OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxs
ZXIgKG11ZWxsZXJAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwNCBBbGxhbiBTYW5kZmVs
ZCBKZW5zZW4gKGtkZUBjYXJld29sZi5jb20pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYsIDIwMDcsIDIwMDgsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDExLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IFRv
cmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9i
aWxlLmNvbS8pCiAgKgpAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJDb250ZW50
RGF0YS5oIgogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIu
aCIKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIKQEAgLTQ5LDI2ICs0OCwxNSBAQAogI2luY2x1ZGUg
IlBzZXVkb0VsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJBcmVuYS5oIgogI2luY2x1ZGUgIlJl
bmRlckNvdW50ZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaCIK
LSNpbmNsdWRlICJSZW5kZXJGbGV4aWJsZUJveC5oIgorI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJl
YWQuaCIKICNpbmNsdWRlICJSZW5kZXJHZW9tZXRyeU1hcC5oIgotI2luY2x1ZGUgIlJlbmRlckdy
aWQuaCIKLSNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgotI2luY2x1ZGUgIlJlbmRlckltYWdlUmVz
b3VyY2VTdHlsZUltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAi
UmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKLSNpbmNsdWRl
ICJSZW5kZXJMaXN0SXRlbS5oIgotI2luY2x1ZGUgIlJlbmRlck11bHRpQ29sdW1uQmxvY2suaCIK
ICNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCIKLSNpbmNsdWRlICJSZW5kZXJSZWdp
b24uaCIKLSNpbmNsdWRlICJSZW5kZXJSdWJ5LmgiCi0jaW5jbHVkZSAiUmVuZGVyUnVieVRleHQu
aCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXJQYXJ0LmgiCi0jaW5jbHVkZSAiUmVuZGVyVGFi
bGVDYXB0aW9uLmgiCi0jaW5jbHVkZSAiUmVuZGVyVGFibGVDZWxsLmgiCisjaW5jbHVkZSAiUmVu
ZGVyVGFibGUuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNvbC5oIgotI2luY2x1ZGUgIlJlbmRl
clRhYmxlUm93LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJW
aWV3LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTE2MSw4NSArMTQ5LDYgQEAgdm9pZCBS
ZW5kZXJPYmplY3Q6Om9wZXJhdG9yIGRlbGV0ZSh2b2lkKgogICAgICooc2l6ZV90ICopcHRyID0g
c3o7CiB9CiAKLVJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QoRWxlbWVu
dCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmIHN0eWxlKQotewotICAgIERvY3VtZW50JiBkb2N1bWVu
dCA9IGVsZW1lbnQuZG9jdW1lbnQoKTsKLSAgICBSZW5kZXJBcmVuYSYgYXJlbmEgPSAqZG9jdW1l
bnQucmVuZGVyQXJlbmEoKTsKLQotICAgIC8vIE1pbmltYWwgc3VwcG9ydCBmb3IgY29udGVudCBw
cm9wZXJ0aWVzIHJlcGxhY2luZyBhbiBlbnRpcmUgZWxlbWVudC4KLSAgICAvLyBXb3JrcyBvbmx5
IGlmIHdlIGhhdmUgZXhhY3RseSBvbmUgcGllY2Ugb2YgY29udGVudCBhbmQgaXQncyBhIFVSTC4K
LSAgICAvLyBPdGhlcndpc2UgYWN0cyBhcyBpZiB3ZSBkaWRuJ3Qgc3VwcG9ydCB0aGlzIGZlYXR1
cmUuCi0gICAgY29uc3QgQ29udGVudERhdGEqIGNvbnRlbnREYXRhID0gc3R5bGUuY29udGVudERh
dGEoKTsKLSAgICBpZiAoY29udGVudERhdGEgJiYgIWNvbnRlbnREYXRhLT5uZXh0KCkgJiYgY29u
dGVudERhdGEtPmlzSW1hZ2UoKSAmJiAhZWxlbWVudC5pc1BzZXVkb0VsZW1lbnQoKSkgewotICAg
ICAgICBSZW5kZXJJbWFnZSogaW1hZ2UgPSBuZXcgKGFyZW5hKSBSZW5kZXJJbWFnZSgmZWxlbWVu
dCk7Ci0gICAgICAgIC8vIFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlIHJlcXVpcmVzIGEg
c3R5bGUgYmVpbmcgcHJlc2VudCBvbiB0aGUgaW1hZ2UgYnV0IHdlIGRvbid0IHdhbnQgdG8KLSAg
ICAgICAgLy8gdHJpZ2dlciBhIHN0eWxlIGNoYW5nZSBub3cgYXMgdGhlIG5vZGUgaXMgbm90IGZ1
bGx5IGF0dGFjaGVkLiBNb3ZpbmcgdGhpcyBjb2RlIHRvIHN0eWxlIGNoYW5nZQotICAgICAgICAv
LyBkb2Vzbid0IG1ha2Ugc2Vuc2UgYXMgaXQgc2hvdWxkIGJlIHJ1biBvbmNlIGF0IHJlbmRlcmVy
IGNyZWF0aW9uLgotICAgICAgICBpbWFnZS0+c2V0U3R5bGVJbnRlcm5hbCgmc3R5bGUpOwotICAg
ICAgICBpZiAoY29uc3QgU3R5bGVJbWFnZSogc3R5bGVJbWFnZSA9IHN0YXRpY19jYXN0PGNvbnN0
IEltYWdlQ29udGVudERhdGEqPihjb250ZW50RGF0YSktPmltYWdlKCkpIHsKLSAgICAgICAgICAg
IGltYWdlLT5zZXRJbWFnZVJlc291cmNlKFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlOjpj
cmVhdGUoY29uc3RfY2FzdDxTdHlsZUltYWdlKj4oc3R5bGVJbWFnZSkpKTsKLSAgICAgICAgICAg
IGltYWdlLT5zZXRJc0dlbmVyYXRlZENvbnRlbnQoKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJjZShSZW5kZXJJbWFnZVJlc291cmNlOjpjcmVhdGUo
KSk7Ci0gICAgICAgIGltYWdlLT5zZXRTdHlsZUludGVybmFsKDApOwotICAgICAgICByZXR1cm4g
aW1hZ2U7Ci0gICAgfQotCi0gICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShydWJ5VGFnKSkgewot
ICAgICAgICBpZiAoc3R5bGUuZGlzcGxheSgpID09IElOTElORSkKLSAgICAgICAgICAgIHJldHVy
biBuZXcgKGFyZW5hKSBSZW5kZXJSdWJ5QXNJbmxpbmUoZWxlbWVudCk7Ci0gICAgICAgIGVsc2Ug
aWYgKHN0eWxlLmRpc3BsYXkoKSA9PSBCTE9DSykKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFy
ZW5hKSBSZW5kZXJSdWJ5QXNCbG9jayhlbGVtZW50KTsKLSAgICB9Ci0gICAgLy8gdHJlYXQgPHJ0
PiBhcyBydWJ5IHRleHQgT05MWSBpZiBpdCBzdGlsbCBoYXMgaXRzIGRlZmF1bHQgdHJlYXRtZW50
IG9mIGJsb2NrCi0gICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShydFRhZykgJiYgc3R5bGUuZGlz
cGxheSgpID09IEJMT0NLKQotICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyUnVieVRl
eHQoZWxlbWVudCk7Ci0gICAgaWYgKGRvY3VtZW50LmNzc1JlZ2lvbnNFbmFibGVkKCkgJiYgc3R5
bGUuaXNEaXNwbGF5UmVnaW9uVHlwZSgpICYmICFzdHlsZS5yZWdpb25UaHJlYWQoKS5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJSZWdpb24oJmVsZW1lbnQsIDAp
OwotICAgIHN3aXRjaCAoc3R5bGUuZGlzcGxheSgpKSB7Ci0gICAgY2FzZSBOT05FOgotICAgICAg
ICByZXR1cm4gMDsKLSAgICBjYXNlIElOTElORToKLSAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEp
IFJlbmRlcklubGluZSgmZWxlbWVudCk7Ci0gICAgY2FzZSBCTE9DSzoKLSAgICBjYXNlIElOTElO
RV9CTE9DSzoKLSAgICBjYXNlIFJVTl9JTjoKLSAgICBjYXNlIENPTVBBQ1Q6Ci0gICAgICAgIGlm
ICgoIXN0eWxlLmhhc0F1dG9Db2x1bW5Db3VudCgpIHx8ICFzdHlsZS5oYXNBdXRvQ29sdW1uV2lk
dGgoKSkgJiYgZG9jdW1lbnQucmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCgpKQotICAgICAgICAg
ICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlck11bHRpQ29sdW1uQmxvY2soZWxlbWVudCk7Ci0g
ICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJCbG9ja0Zsb3coJmVsZW1lbnQpOwotICAg
IGNhc2UgTElTVF9JVEVNOgotICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyTGlzdEl0
ZW0oZWxlbWVudCk7Ci0gICAgY2FzZSBUQUJMRToKLSAgICBjYXNlIElOTElORV9UQUJMRToKLSAg
ICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclRhYmxlKCZlbGVtZW50KTsKLSAgICBjYXNl
IFRBQkxFX1JPV19HUk9VUDoKLSAgICBjYXNlIFRBQkxFX0hFQURFUl9HUk9VUDoKLSAgICBjYXNl
IFRBQkxFX0ZPT1RFUl9HUk9VUDoKLSAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclRh
YmxlU2VjdGlvbigmZWxlbWVudCk7Ci0gICAgY2FzZSBUQUJMRV9ST1c6Ci0gICAgICAgIHJldHVy
biBuZXcgKGFyZW5hKSBSZW5kZXJUYWJsZVJvdygmZWxlbWVudCk7Ci0gICAgY2FzZSBUQUJMRV9D
T0xVTU5fR1JPVVA6Ci0gICAgY2FzZSBUQUJMRV9DT0xVTU46Ci0gICAgICAgIHJldHVybiBuZXcg
KGFyZW5hKSBSZW5kZXJUYWJsZUNvbChlbGVtZW50KTsKLSAgICBjYXNlIFRBQkxFX0NFTEw6Ci0g
ICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUYWJsZUNlbGwoJmVsZW1lbnQpOwotICAg
IGNhc2UgVEFCTEVfQ0FQVElPTjoKLSAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclRh
YmxlQ2FwdGlvbihlbGVtZW50KTsKLSAgICBjYXNlIEJPWDoKLSAgICBjYXNlIElOTElORV9CT1g6
Ci0gICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3go
ZWxlbWVudCk7Ci0gICAgY2FzZSBGTEVYOgotICAgIGNhc2UgSU5MSU5FX0ZMRVg6Ci0gICAgICAg
IHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJGbGV4aWJsZUJveCgmZWxlbWVudCk7Ci0gICAgY2Fz
ZSBHUklEOgotICAgIGNhc2UgSU5MSU5FX0dSSUQ6Ci0gICAgICAgIHJldHVybiBuZXcgKGFyZW5h
KSBSZW5kZXJHcmlkKGVsZW1lbnQpOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCiBERUZJ
TkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIsIHJlbmRlck9i
amVjdENvdW50ZXIsICgiUmVuZGVyT2JqZWN0IikpOwogCiBSZW5kZXJPYmplY3Q6OlJlbmRlck9i
amVjdChOb2RlKiBub2RlKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaAkocmV2aXNpb24gMTU2MDk1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjYsOCArMzI2LDYgQEAgcHVibGljOgogICAg
IHZvaWQgc2hvd1JlbmRlclRyZWVBbmRNYXJrKGNvbnN0IFJlbmRlck9iamVjdCogbWFya2VkT2Jq
ZWN0MSA9IDAsIGNvbnN0IGNoYXIqIG1hcmtlZExhYmVsMSA9IDAsIGNvbnN0IFJlbmRlck9iamVj
dCogbWFya2VkT2JqZWN0MiA9IDAsIGNvbnN0IGNoYXIqIG1hcmtlZExhYmVsMiA9IDAsIGludCBk
ZXB0aCA9IDApIGNvbnN0OwogI2VuZGlmCiAKLSAgICBzdGF0aWMgUmVuZGVyT2JqZWN0KiBjcmVh
dGVPYmplY3QoRWxlbWVudCYsIFJlbmRlclN0eWxlJik7Ci0KICAgICAvLyBPdmVybG9hZGVkIG5l
dyBvcGVyYXRvci4gIERlcml2ZWQgY2xhc3NlcyBtdXN0IG92ZXJyaWRlIG9wZXJhdG9yIG5ldwog
ICAgIC8vIGluIG9yZGVyIHRvIGFsbG9jYXRlIG91dCBvZiB0aGUgUmVuZGVyQXJlbmEuCiAgICAg
dm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCwgUmVuZGVyQXJlbmEmKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcAkocmV2aXNpb24gMTU2
MDk1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIlJlbmRlckNvdW50ZXIu
Y3BwIgogI2luY2x1ZGUgIlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAiCiAjaW5jbHVk
ZSAiUmVuZGVyRGV0YWlsc01hcmtlci5jcHAiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5jcHAi
CiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIgogI2luY2x1ZGUgIlJlbmRlckZp
ZWxkc2V0LmNwcCIKICNpbmNsdWRlICJSZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAiCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFk
aWVudFN0b3AuY3BwCShyZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcg
KzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIFNWR05hbWVzOwog
CiBSZW5kZXJTVkdHcmFkaWVudFN0b3A6OlJlbmRlclNWR0dyYWRpZW50U3RvcChTVkdTdG9wRWxl
bWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlck9iamVjdChlbGVtZW50KQorICAgIDogUmVuZGVy
RWxlbWVudChlbGVtZW50KQogewogfQogCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgUmVuZGVyU1ZH
R3JhZGllbnRTdG9wOjpsYXlvdXQoKQogCiBTVkdHcmFkaWVudEVsZW1lbnQqIFJlbmRlclNWR0dy
YWRpZW50U3RvcDo6Z3JhZGllbnRFbGVtZW50KCkgY29uc3QKIHsKLSAgICBDb250YWluZXJOb2Rl
KiBwYXJlbnROb2RlID0gbm9kZSgpLT5wYXJlbnROb2RlKCk7CisgICAgQ29udGFpbmVyTm9kZSog
cGFyZW50Tm9kZSA9IGVsZW1lbnQoKS0+cGFyZW50Tm9kZSgpOwogICAgIGlmIChwYXJlbnROb2Rl
LT5oYXNUYWdOYW1lKGxpbmVhckdyYWRpZW50VGFnKSB8fCBwYXJlbnROb2RlLT5oYXNUYWdOYW1l
KHJhZGlhbEdyYWRpZW50VGFnKSkKICAgICAgICAgcmV0dXJuIHRvU1ZHR3JhZGllbnRFbGVtZW50
KHBhcmVudE5vZGUpOwogICAgIHJldHVybiAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0b3AuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5oCShyZXZpc2lvbiAxNTYw
OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3Rv
cC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw3IEBACiAjZGVmaW5lIFJlbmRlclNWR0dy
YWRpZW50U3RvcF9oCiAKICNpZiBFTkFCTEUoU1ZHKQotI2luY2x1ZGUgIlJlbmRlck9iamVjdC5o
IgorI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IApAQCAtMzAsNyArMzAsNyBAQCBjbGFzcyBTVkdHcmFkaWVudEVsZW1lbnQ7CiBjbGFzcyBTVkdT
dG9wRWxlbWVudDsKIAogLy8gVGhpcyBjbGFzcyBleGlzdHMgbW9zdGx5IHNvIHdlIGNhbiBoZWFy
IGFib3V0IGdyYWRpZW50IHN0b3Agc3R5bGUgY2hhbmdlcwotY2xhc3MgUmVuZGVyU1ZHR3JhZGll
bnRTdG9wIEZJTkFMIDogcHVibGljIFJlbmRlck9iamVjdCB7CitjbGFzcyBSZW5kZXJTVkdHcmFk
aWVudFN0b3AgRklOQUwgOiBwdWJsaWMgUmVuZGVyRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgUmVu
ZGVyU1ZHR3JhZGllbnRTdG9wKFNWR1N0b3BFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVy
U1ZHR3JhZGllbnRTdG9wKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR01vZGVsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAkocmV2aXNpb24gMTU2MDk1KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVu
ZGVyU1ZHTW9kZWxPYmplY3Q6OlJlbmRlclNWR01vZGVsT2JqZWN0KFNWR0VsZW1lbnQmIGVsZW1l
bnQpCi0gICAgOiBSZW5kZXJPYmplY3QoJmVsZW1lbnQpCisgICAgOiBSZW5kZXJFbGVtZW50KCZl
bGVtZW50KQogICAgICwgbV9oYXNTVkdTaGFkb3coZmFsc2UpCiB7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCShy
ZXZpc2lvbiAxNTYwOTUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R01vZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKIAogI2lmIEVO
QUJMRShTVkcpCiAKLSNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN1
cHBvcnQuaCIKIApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFNWR0VsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclNWR01vZGVsT2JqZWN0IDogcHVibGljIFJlbmRl
ck9iamVjdCB7CitjbGFzcyBSZW5kZXJTVkdNb2RlbE9iamVjdCA6IHB1YmxpYyBSZW5kZXJFbGVt
ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
cikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JS
ZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZs
b2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREUgRklOQUw7CkBAIC02
Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1NWR1NoYWRvdygpIGNvbnN0IHsgcmV0
dXJuIG1faGFzU1ZHU2hhZG93OyB9CiAgICAgdm9pZCBzZXRIYXNTVkdTaGFkb3coYm9vbCBoYXNT
aGFkb3cpIHsgbV9oYXNTVkdTaGFkb3cgPSBoYXNTaGFkb3c7IH0KIAotICAgIFNWR0VsZW1lbnQm
IGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiAqdG9TVkdFbGVtZW50KFJlbmRlck9iamVjdDo6bm9k
ZSgpKTsgfQorICAgIFNWR0VsZW1lbnQmIGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiAqdG9TVkdF
bGVtZW50KFJlbmRlckVsZW1lbnQ6OmVsZW1lbnQoKSk7IH0KIAogcHJvdGVjdGVkOgogICAgIGV4
cGxpY2l0IFJlbmRlclNWR01vZGVsT2JqZWN0KFNWR0VsZW1lbnQmKTsKQEAgLTc1LDggKzc1LDYg
QEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBPVkVSUklE
RTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIG5vZGUoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5DVElP
TjsKLQogICAgIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBuZXZlciBiZSBjYWxsZWQsIFNWRyB1c2Vz
IGEgZGlmZmVyZW50IG5vZGVBdFBvaW50IG1ldGhvZAogICAgIGJvb2wgbm9kZUF0UG9pbnQoY29u
c3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9u
JiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZz
ZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZUZv
Y3VzUmluZ1F1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JikgT1ZFUlJJREUgRklOQUw7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4
dC5jcHAJKHJldmlzaW9uIDE1NjA5NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyNCw3ICs2MjQsNyBA
QCB2b2lkIHdyaXRlU1ZHR3JhZGllbnRTdG9wKFRleHRTdHJlYW0mIHRzCiB7CiAgICAgd3JpdGVT
dGFuZGFyZFByZWZpeCh0cywgc3RvcCwgaW5kZW50KTsKIAotICAgIFNWR1N0b3BFbGVtZW50KiBz
dG9wRWxlbWVudCA9IHRvU1ZHU3RvcEVsZW1lbnQodG9TVkdFbGVtZW50KHN0b3Aubm9kZSgpKSk7
CisgICAgU1ZHU3RvcEVsZW1lbnQqIHN0b3BFbGVtZW50ID0gdG9TVkdTdG9wRWxlbWVudCh0b1NW
R0VsZW1lbnQoc3RvcC5lbGVtZW50KCkpKTsKICAgICBBU1NFUlQoc3RvcEVsZW1lbnQpOwogCiAg
ICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gc3RvcC5zdHlsZSgpOwo=
</data>
<flag name="review"
          id="234228"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>