<?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>38015</bug_id>
          
          <creation_ts>2010-04-22 17:19:26 -0700</creation_ts>
          <short_desc>Remove class IdentifierTable</short_desc>
          <delta_ts>2022-07-21 17:04:29 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>128624</dup_id>
          
          <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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>jeffm</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>216174</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-04-22 17:19:26 -0700</bug_when>
    <thetext>Put identifiers in the atomic string table.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216175</commentid>
    <comment_count>1</comment_count>
      <attachid>54112</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-04-22 17:20:12 -0700</bug_when>
    <thetext>Created attachment 54112
Patch, only tested in JSC, WebCore probably won&apos;t build yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1885797</commentid>
    <comment_count>2</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-07-21 13:49:58 -0700</bug_when>
    <thetext>I think this was done in following commit:

https://github.com/WebKit/WebKit/commit/fb9739035778b5344e3fb50f76949df2ed785580

I think this can be marked as RESOLVED Duplicate of bug 128624.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1885877</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-07-21 17:04:29 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 128624 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54112</attachid>
            <date>2010-04-22 17:20:12 -0700</date>
            <delta_ts>2010-06-11 11:33:54 -0700</delta_ts>
            <desc>Patch, only tested in JSC, WebCore probably won&apos;t build yet.</desc>
            <filename>patch.removeident.0.txt</filename>
            <type>text/plain</type>
            <size>27443</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4MTMzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTAtMDQtMjIgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zODAwNgorICAgICAgICBDaGFuZ2UgbGlmZXRpbWUgb2YgSlNDOjpJZGVudGlm
aWVyVGFibGVzIHVzZWQgYnkgV2ViQ29yZXMgdG8gbWF0Y2ggQXRvbWljU3RyaW5nVGFibGUKKwor
ICAgICAgICBQcmVzZW50bHkgSlNDJ3MgSWRlbnRpZmllclRhYmxlcyBhcmUgb3duZWQgYnkgdGhl
IEpTR2xvYmFsRGF0YS4gIEZvcgorICAgICAgICBKU0dsb2JhbERhdGEgb2JqZWN0cyBjcmVhdGVk
IHZpYSB0aGUgQVBJIHRoaXMgc2hvdWxkIGNvbnRpbnVlIHRvIGJlIHRoZSBjYXNlLAorICAgICAg
ICBidXQgZm9yIHRoZSBKU0dsb2JhbERhdGEgb2JqZWN0cyB1c2VkIGJ5IFdlYkNvcmUgKHRoZSBt
YWluIHRocmVhZCdzIGNvbW1vbgorICAgICAgICBnbG9iYWwgZGF0YSwgYW5kIHRob3NlIGZvciB3
b3JrZXJzKSB1c2UgYSBJZGVudGlmaWVyVGFibGUgcHJvdmlkZWQgKGFuZCBvd25lZCkKKyAgICAg
ICAgYnkgd3RmVGhyZWFkRGF0YS4gIFRoaXMgYWxsb3cgdGhlIGxpZmV0aW1lIG9mIHRoZXNlIElk
ZW50aWZpZXJUYWJsZSB0byBtYXRjaAorICAgICAgICB0aG9zZSBvZiB0aGUgY29ycmVzcG9uZGlu
ZyBBdG9taWNTdHJpbmdUYWJsZXMuCisKKyAgICAgICAgKiBBUEkvQVBJU2hpbXMuaDoKKyAgICAg
ICAgKEpTQzo6QVBJRW50cnlTaGltOjpBUElFbnRyeVNoaW0pOgorICAgICAgICAqIEFQSS9KU0Nv
bnRleHRSZWYuY3BwOgorICAgICAgICAoSlNDb250ZXh0R3JvdXBDcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6cHJvdGVjdCk6Cisg
ICAgICAgIChKU0M6OkhlYXA6OnVucHJvdGVjdCk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtS
b290cyk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YSk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0
YTo6fkpTR2xvYmFsRGF0YSk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6Y3JlYXRlQ29u
dGV4dEdyb3VwKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpjcmVhdGUpOgorICAgICAg
ICAoSlNDOjpKU0dsb2JhbERhdGE6OnNoYXJlZEluc3RhbmNlKToKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6Oik6CisgICAgICAg
IChKU0M6OkpTR2xvYmFsRGF0YTo6aXNTaGFyZWRJbnN0YW5jZSk6CisgICAgICAgICogcnVudGlt
ZS9KU0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xvY2s6OkpTTG9jayk6CisgICAgICAgIChK
U0M6OkpTTG9jazo6bG9jayk6CisgICAgICAgIChKU0M6OkpTTG9jazo6dW5sb2NrKToKKyAgICAg
ICAgKEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3M6OkRyb3BBbGxMb2Nrcyk6CisgICAgICAgICog
d3RmL1dURlRocmVhZERhdGEuY3BwOgorICAgICAgICAoV1RGOjpXVEZUaHJlYWREYXRhOjpXVEZU
aHJlYWREYXRhKToKKyAgICAgICAgKFdURjo6V1RGVGhyZWFkRGF0YTo6fldURlRocmVhZERhdGEp
OgorCiAyMDEwLTA0LTIyICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KSW5kZXg6IEphdmFTY3JpcHRD
b3JlL0FQSS9BUElTaGltcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0FQSS9BUElT
aGltcy5oCShyZXZpc2lvbiA1ODEzMykKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9BUElTaGltcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEFQSUVudHJ5U2hpbVdpdGhv
dXRMb2NrIHsKIHByb3RlY3RlZDoKICAgICBBUElFbnRyeVNoaW1XaXRob3V0TG9jayhKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGEsIGJvb2wgcmVnaXN0ZXJUaHJlYWQpCiAgICAgICAgIDogbV9nbG9i
YWxEYXRhKGdsb2JhbERhdGEpCi0gICAgICAgICwgbV9lbnRyeUlkZW50aWZpZXJUYWJsZSh3dGZU
aHJlYWREYXRhKCkuc2V0Q3VycmVudElkZW50aWZpZXJUYWJsZShnbG9iYWxEYXRhLT5pZGVudGlm
aWVyVGFibGUpKQorICAgICAgICAsIG1fZW50cnlJZGVudGlmaWVyVGFibGUod3RmVGhyZWFkRGF0
YSgpLnNldEF0b21pY1N0cmluZ1RhYmxlKGdsb2JhbERhdGEtPmlkZW50aWZpZXJUYWJsZSkpCiAg
ICAgewogICAgICAgICBpZiAocmVnaXN0ZXJUaHJlYWQpCiAgICAgICAgICAgICBnbG9iYWxEYXRh
LT5oZWFwLnJlZ2lzdGVyVGhyZWFkKCk7CkBAIC00NiwxMiArNDYsMTIgQEAgcHJvdGVjdGVkOgog
ICAgIH5BUElFbnRyeVNoaW1XaXRob3V0TG9jaygpCiAgICAgewogICAgICAgICBtX2dsb2JhbERh
dGEtPnRpbWVvdXRDaGVja2VyLnN0b3AoKTsKLSAgICAgICAgd3RmVGhyZWFkRGF0YSgpLnNldEN1
cnJlbnRJZGVudGlmaWVyVGFibGUobV9lbnRyeUlkZW50aWZpZXJUYWJsZSk7CisgICAgICAgIHd0
ZlRocmVhZERhdGEoKS5zZXRBdG9taWNTdHJpbmdUYWJsZShtX2VudHJ5SWRlbnRpZmllclRhYmxl
KTsKICAgICB9CiAKIHByaXZhdGU6CiAgICAgSlNHbG9iYWxEYXRhKiBtX2dsb2JhbERhdGE7Ci0g
ICAgSWRlbnRpZmllclRhYmxlKiBtX2VudHJ5SWRlbnRpZmllclRhYmxlOworICAgIEF0b21pY1N0
cmluZ1RhYmxlKiBtX2VudHJ5SWRlbnRpZmllclRhYmxlOwogfTsKIAogY2xhc3MgQVBJRW50cnlT
aGltIDogcHVibGljIEFQSUVudHJ5U2hpbVdpdGhvdXRMb2NrIHsKQEAgLTgwLDEyICs4MCwxMiBA
QCBwdWJsaWM6CiAgICAgICAgIDogbV9kcm9wQWxsTG9ja3MoZXhlYykKICAgICAgICAgLCBtX2ds
b2JhbERhdGEoJmV4ZWMtPmdsb2JhbERhdGEoKSkKICAgICB7Ci0gICAgICAgIHd0ZlRocmVhZERh
dGEoKS5yZXNldEN1cnJlbnRJZGVudGlmaWVyVGFibGUoKTsKKyAgICAgICAgd3RmVGhyZWFkRGF0
YSgpLnJlc2V0QXRvbWljU3RyaW5nVGFibGUoKTsKICAgICB9CiAKICAgICB+QVBJQ2FsbGJhY2tT
aGltKCkKICAgICB7Ci0gICAgICAgIHd0ZlRocmVhZERhdGEoKS5zZXRDdXJyZW50SWRlbnRpZmll
clRhYmxlKG1fZ2xvYmFsRGF0YS0+aWRlbnRpZmllclRhYmxlKTsKKyAgICAgICAgd3RmVGhyZWFk
RGF0YSgpLnNldEF0b21pY1N0cmluZ1RhYmxlKG1fZ2xvYmFsRGF0YS0+aWRlbnRpZmllclRhYmxl
KTsKICAgICB9CiAKIHByaXZhdGU6CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1Jl
Zi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCShy
ZXZpc2lvbiA1ODEzMykKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTEzLDEyICsxMTMsMTIgQEAgT3BhcXVlSlNDbGFzczo6T3BhcXVlSlND
bGFzcyhjb25zdCBKU0NsYQogT3BhcXVlSlNDbGFzczo6fk9wYXF1ZUpTQ2xhc3MoKQogewogICAg
IC8vIFRoZSBlbXB0eSBzdHJpbmcgaXMgc2hhcmVkIGFjcm9zcyB0aHJlYWRzICYgaXMgYW4gaWRl
bnRpZmllciwgaW4gYWxsIG90aGVyIGNhc2VzIHdlIHNob3VsZCBoYXZlIGRvbmUgYSBkZWVwIGNv
cHkgaW4gY2xhc3NOYW1lKCksIGJlbG93LiAKLSAgICBBU1NFUlQoIW1fY2xhc3NOYW1lLnNpemUo
KSB8fCAhbV9jbGFzc05hbWUucmVwKCktPmlzSWRlbnRpZmllcigpKTsKKyAgICBBU1NFUlQoIW1f
Y2xhc3NOYW1lLnNpemUoKSB8fCAhbV9jbGFzc05hbWUucmVwKCktPmlzQXRvbWljKCkpOwogCiAg
ICAgaWYgKG1fc3RhdGljVmFsdWVzKSB7CiAgICAgICAgIE9wYXF1ZUpTQ2xhc3NTdGF0aWNWYWx1
ZXNUYWJsZTo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9zdGF0aWNWYWx1ZXMtPmVuZCgpOwogICAg
ICAgICBmb3IgKE9wYXF1ZUpTQ2xhc3NTdGF0aWNWYWx1ZXNUYWJsZTo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBtX3N0YXRpY1ZhbHVlcy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoIWl0LT5maXJzdC0+aXNJZGVudGlmaWVyKCkpOworICAgICAgICAgICAgQVNT
RVJUKCFpdC0+Zmlyc3QtPmlzQXRvbWljKCkpOwogICAgICAgICAgICAgZGVsZXRlIGl0LT5zZWNv
bmQ7CiAgICAgICAgIH0KICAgICAgICAgZGVsZXRlIG1fc3RhdGljVmFsdWVzOwpAQCAtMTI3LDcg
KzEyNyw3IEBAIE9wYXF1ZUpTQ2xhc3M6On5PcGFxdWVKU0NsYXNzKCkKICAgICBpZiAobV9zdGF0
aWNGdW5jdGlvbnMpIHsKICAgICAgICAgT3BhcXVlSlNDbGFzc1N0YXRpY0Z1bmN0aW9uc1RhYmxl
Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3N0YXRpY0Z1bmN0aW9ucy0+ZW5kKCk7CiAgICAgICAg
IGZvciAoT3BhcXVlSlNDbGFzc1N0YXRpY0Z1bmN0aW9uc1RhYmxlOjpjb25zdF9pdGVyYXRvciBp
dCA9IG1fc3RhdGljRnVuY3Rpb25zLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAg
ICAgICAgIEFTU0VSVCghaXQtPmZpcnN0LT5pc0lkZW50aWZpZXIoKSk7CisgICAgICAgICAgICBB
U1NFUlQoIWl0LT5maXJzdC0+aXNBdG9taWMoKSk7CiAgICAgICAgICAgICBkZWxldGUgaXQtPnNl
Y29uZDsKICAgICAgICAgfQogICAgICAgICBkZWxldGUgbV9zdGF0aWNGdW5jdGlvbnM7CkBAIC0x
NzAsNyArMTcwLDcgQEAgT3BhcXVlSlNDbGFzc0NvbnRleHREYXRhOjpPcGFxdWVKU0NsYXNzQwog
ICAgICAgICBzdGF0aWNWYWx1ZXMgPSBuZXcgT3BhcXVlSlNDbGFzc1N0YXRpY1ZhbHVlc1RhYmxl
OwogICAgICAgICBPcGFxdWVKU0NsYXNzU3RhdGljVmFsdWVzVGFibGU6OmNvbnN0X2l0ZXJhdG9y
IGVuZCA9IGpzQ2xhc3MtPm1fc3RhdGljVmFsdWVzLT5lbmQoKTsKICAgICAgICAgZm9yIChPcGFx
dWVKU0NsYXNzU3RhdGljVmFsdWVzVGFibGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0ganNDbGFzcy0+
bV9zdGF0aWNWYWx1ZXMtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICAgICAg
QVNTRVJUKCFpdC0+Zmlyc3QtPmlzSWRlbnRpZmllcigpKTsKKyAgICAgICAgICAgIEFTU0VSVCgh
aXQtPmZpcnN0LT5pc0F0b21pYygpKTsKICAgICAgICAgICAgIC8vIFVzZSBhIGxvY2FsIHZhcmlh
YmxlIGhlcmUgdG8gc2lkZXN0ZXAgYW4gUlZDVCBjb21waWxlciBidWcuCiAgICAgICAgICAgICBT
dGF0aWNWYWx1ZUVudHJ5KiBlbnRyeSA9IG5ldyBTdGF0aWNWYWx1ZUVudHJ5KGl0LT5zZWNvbmQt
PmdldFByb3BlcnR5LCBpdC0+c2Vjb25kLT5zZXRQcm9wZXJ0eSwgaXQtPnNlY29uZC0+YXR0cmli
dXRlcyk7CiAgICAgICAgICAgICBzdGF0aWNWYWx1ZXMtPmFkZChVU3RyaW5nOjpSZXA6OmNyZWF0
ZShpdC0+Zmlyc3QtPmNoYXJhY3RlcnMoKSwgaXQtPmZpcnN0LT5sZW5ndGgoKSksIGVudHJ5KTsK
QEAgLTE4Miw3ICsxODIsNyBAQCBPcGFxdWVKU0NsYXNzQ29udGV4dERhdGE6Ok9wYXF1ZUpTQ2xh
c3NDCiAgICAgICAgIHN0YXRpY0Z1bmN0aW9ucyA9IG5ldyBPcGFxdWVKU0NsYXNzU3RhdGljRnVu
Y3Rpb25zVGFibGU7CiAgICAgICAgIE9wYXF1ZUpTQ2xhc3NTdGF0aWNGdW5jdGlvbnNUYWJsZTo6
Y29uc3RfaXRlcmF0b3IgZW5kID0ganNDbGFzcy0+bV9zdGF0aWNGdW5jdGlvbnMtPmVuZCgpOwog
ICAgICAgICBmb3IgKE9wYXF1ZUpTQ2xhc3NTdGF0aWNGdW5jdGlvbnNUYWJsZTo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBqc0NsYXNzLT5tX3N0YXRpY0Z1bmN0aW9ucy0+YmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7Ci0gICAgICAgICAgICBBU1NFUlQoIWl0LT5maXJzdC0+aXNJZGVudGlmaWVyKCkp
OworICAgICAgICAgICAgQVNTRVJUKCFpdC0+Zmlyc3QtPmlzQXRvbWljKCkpOwogICAgICAgICAg
ICAgLy8gVXNlIGEgbG9jYWwgdmFyaWFibGUgaGVyZSB0byBzaWRlc3RlcCBhbiBSVkNUIGNvbXBp
bGVyIGJ1Zy4KICAgICAgICAgICAgIFN0YXRpY0Z1bmN0aW9uRW50cnkqIGVudHJ5ID0gbmV3IFN0
YXRpY0Z1bmN0aW9uRW50cnkoaXQtPnNlY29uZC0+Y2FsbEFzRnVuY3Rpb24sIGl0LT5zZWNvbmQt
PmF0dHJpYnV0ZXMpOwogICAgICAgICAgICAgc3RhdGljRnVuY3Rpb25zLT5hZGQoVVN0cmluZzo6
UmVwOjpjcmVhdGUoaXQtPmZpcnN0LT5jaGFyYWN0ZXJzKCksIGl0LT5maXJzdC0+bGVuZ3RoKCkp
LCBlbnRyeSk7CkBAIC0yMTUsNyArMjE1LDcgQEAgT3BhcXVlSlNDbGFzc0NvbnRleHREYXRhJiBP
cGFxdWVKU0NsYXNzOgogCiBVU3RyaW5nIE9wYXF1ZUpTQ2xhc3M6OmNsYXNzTmFtZSgpCiB7Ci0g
ICAgLy8gTWFrZSBhIGRlZXAgY29weSwgc28gdGhhdCB0aGUgY2FsbGVyIGhhcyBubyBjaGFuY2Ug
dG8gcHV0IHRoZSBvcmlnaW5hbCBpbnRvIElkZW50aWZpZXJUYWJsZS4KKyAgICAvLyBNYWtlIGEg
ZGVlcCBjb3B5LCBzbyB0aGF0IHRoZSBjYWxsZXIgaGFzIG5vIGNoYW5jZSB0byBwdXQgdGhlIG9y
aWdpbmFsIGludG8gQXRvbWljU3RyaW5nVGFibGUuCiAgICAgcmV0dXJuIFVTdHJpbmcobV9jbGFz
c05hbWUuZGF0YSgpLCBtX2NsYXNzTmFtZS5zaXplKCkpOwogfQogCkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9BUEkvSlNDbGFzc1JlZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0FQSS9K
U0NsYXNzUmVmLmgJKHJldmlzaW9uIDU4MTMzKQorKysgSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xh
c3NSZWYuaAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDcgKzExNCw3IEBAIHByaXZhdGU6CiAKICAg
ICBPcGFxdWVKU0NsYXNzQ29udGV4dERhdGEmIGNvbnRleHREYXRhKEpTQzo6RXhlY1N0YXRlKik7
CiAKLSAgICAvLyBVU3RyaW5ncyBpbiB0aGVzZSBkYXRhIG1lbWJlcnMgc2hvdWxkIG5vdCBiZSBw
dXQgaW50byBhbnkgSWRlbnRpZmllclRhYmxlLgorICAgIC8vIFVTdHJpbmdzIGluIHRoZXNlIGRh
dGEgbWVtYmVycyBzaG91bGQgbm90IGJlIHB1dCBpbnRvIGFueSBBdG9taWNTdHJpbmdUYWJsZS4K
ICAgICBKU0M6OlVTdHJpbmcgbV9jbGFzc05hbWU7CiAgICAgT3BhcXVlSlNDbGFzc1N0YXRpY1Zh
bHVlc1RhYmxlKiBtX3N0YXRpY1ZhbHVlczsKICAgICBPcGFxdWVKU0NsYXNzU3RhdGljRnVuY3Rp
b25zVGFibGUqIG1fc3RhdGljRnVuY3Rpb25zOwpJbmRleDogSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q29udGV4dFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4
dFJlZi5jcHAJKHJldmlzaW9uIDU4MTMzKQorKysgSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4
dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIEpTR2xvYmFs
Q29udGV4dFJlbGVhc2UoSlNHbG9iYWxDb250CiAKICAgICBKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEgPSBleGVjLT5nbG9iYWxEYXRhKCk7CiAgICAgSlNHbG9iYWxPYmplY3QqIGRnbyA9IGV4ZWMt
PmR5bmFtaWNHbG9iYWxPYmplY3QoKTsKLSAgICBJZGVudGlmaWVyVGFibGUqIHNhdmVkSWRlbnRp
ZmllclRhYmxlID0gd3RmVGhyZWFkRGF0YSgpLnNldEN1cnJlbnRJZGVudGlmaWVyVGFibGUoZ2xv
YmFsRGF0YS5pZGVudGlmaWVyVGFibGUpOworICAgIEF0b21pY1N0cmluZ1RhYmxlKiBzYXZlZElk
ZW50aWZpZXJUYWJsZSA9IHd0ZlRocmVhZERhdGEoKS5zZXRBdG9taWNTdHJpbmdUYWJsZShnbG9i
YWxEYXRhLmlkZW50aWZpZXJUYWJsZSk7CiAKICAgICAvLyBPbmUgcmVmZXJlbmNlIGlzIGhlbGQg
YnkgSlNHbG9iYWxPYmplY3QsIGFub3RoZXIgYWRkZWQgYnkgSlNHbG9iYWxDb250ZXh0UmV0YWlu
KCkuCiAgICAgYm9vbCByZWxlYXNpbmdDb250ZXh0R3JvdXAgPSBnbG9iYWxEYXRhLnJlZkNvdW50
KCkgPT0gMjsKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIEpTR2xvYmFsQ29udGV4dFJlbGVhc2Uo
SlNHbG9iYWxDb250CiAKICAgICBnbG9iYWxEYXRhLmRlcmVmKCk7CiAKLSAgICB3dGZUaHJlYWRE
YXRhKCkuc2V0Q3VycmVudElkZW50aWZpZXJUYWJsZShzYXZlZElkZW50aWZpZXJUYWJsZSk7Cisg
ICAgd3RmVGhyZWFkRGF0YSgpLnNldEF0b21pY1N0cmluZ1RhYmxlKHNhdmVkSWRlbnRpZmllclRh
YmxlKTsKIH0KIAogSlNPYmplY3RSZWYgSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KEpTQ29udGV4
dFJlZiBjdHgpCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAJKHJldmlz
aW9uIDU4MTMzKQorKysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIENvbXBsZXRpb24g
Y2hlY2tTeW50YXgoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UpCiB7
CiAgICAgSlNMb2NrIGxvY2soZXhlYyk7Ci0gICAgQVNTRVJUKGV4ZWMtPmdsb2JhbERhdGEoKS5p
ZGVudGlmaWVyVGFibGUgPT0gd3RmVGhyZWFkRGF0YSgpLmN1cnJlbnRJZGVudGlmaWVyVGFibGUo
KSk7CisgICAgQVNTRVJUKGV4ZWMtPmdsb2JhbERhdGEoKS5pZGVudGlmaWVyVGFibGUgPT0gd3Rm
VGhyZWFkRGF0YSgpLmF0b21pY1N0cmluZ1RhYmxlKCkpOwogCiAgICAgUmVmUHRyPFByb2dyYW1F
eGVjdXRhYmxlPiBwcm9ncmFtID0gUHJvZ3JhbUV4ZWN1dGFibGU6OmNyZWF0ZShleGVjLCBzb3Vy
Y2UpOwogICAgIEpTT2JqZWN0KiBlcnJvciA9IHByb2dyYW0tPmNoZWNrU3ludGF4KGV4ZWMpOwpA
QCAtNTAsNyArNTAsNyBAQCBDb21wbGV0aW9uIGNoZWNrU3ludGF4KEV4ZWNTdGF0ZSogZXhlYywg
CiBDb21wbGV0aW9uIGV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhlYywgU2NvcGVDaGFpbiYgc2NvcGVD
aGFpbiwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1ZhbHVlIHRoaXNWYWx1ZSkKIHsKICAg
ICBKU0xvY2sgbG9jayhleGVjKTsKLSAgICBBU1NFUlQoZXhlYy0+Z2xvYmFsRGF0YSgpLmlkZW50
aWZpZXJUYWJsZSA9PSB3dGZUaHJlYWREYXRhKCkuY3VycmVudElkZW50aWZpZXJUYWJsZSgpKTsK
KyAgICBBU1NFUlQoZXhlYy0+Z2xvYmFsRGF0YSgpLmlkZW50aWZpZXJUYWJsZSA9PSB3dGZUaHJl
YWREYXRhKCkuYXRvbWljU3RyaW5nVGFibGUoKSk7CiAKICAgICBSZWZQdHI8UHJvZ3JhbUV4ZWN1
dGFibGU+IHByb2dyYW0gPSBQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlKGV4ZWMsIHNvdXJjZSk7
CiAgICAgSlNPYmplY3QqIGVycm9yID0gcHJvZ3JhbS0+Y29tcGlsZShleGVjLCBzY29wZUNoYWlu
Lm5vZGUoKSk7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5jcHAJKHJldmlz
aW9uIDU4MTMzKQorKysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDgsMTIgKzQ4LDEyIEBAIHZvaWQgZGVsZXRlTGl0ZXJhbFRhYmxlKExp
dGVyYWxUYWJsZSogdGEKICAgICBkZWxldGUgdGFibGU7CiB9CiAKLUlkZW50aWZpZXJUYWJsZSog
Y3JlYXRlSWRlbnRpZmllclRhYmxlKCkKK0F0b21pY1N0cmluZ1RhYmxlKiBjcmVhdGVJZGVudGlm
aWVyVGFibGUoKQogewotICAgIHJldHVybiBuZXcgSWRlbnRpZmllclRhYmxlOworICAgIHJldHVy
biBuZXcgQXRvbWljU3RyaW5nVGFibGUoKTsKIH0KIAotdm9pZCBkZWxldGVJZGVudGlmaWVyVGFi
bGUoSWRlbnRpZmllclRhYmxlKiB0YWJsZSkKK3ZvaWQgZGVsZXRlSWRlbnRpZmllclRhYmxlKEF0
b21pY1N0cmluZ1RhYmxlKiB0YWJsZSkKIHsKICAgICBkZWxldGUgdGFibGU7CiB9CkBAIC0xMjQs
NyArMTI0LDcgQEAgUGFzc1JlZlB0cjxVU3RyaW5nOjpSZXA+IElkZW50aWZpZXI6OmFkZAogCiBQ
YXNzUmVmUHRyPFVTdHJpbmc6OlJlcD4gSWRlbnRpZmllcjo6YWRkU2xvd0Nhc2UoSlNHbG9iYWxE
YXRhKiBnbG9iYWxEYXRhLCBVU3RyaW5nOjpSZXAqIHIpCiB7Ci0gICAgQVNTRVJUKCFyLT5pc0lk
ZW50aWZpZXIoKSk7CisgICAgQVNTRVJUKCFyLT5pc0F0b21pYygpKTsKICAgICAvLyBUaGUgZW1w
dHkgJiBudWxsIHN0cmluZ3MgYXJlIHN0YXRpYyBzaW5nbGV0b25zLCBhbmQgc3RhdGljIHN0cmlu
Z3MgYXJlIGhhbmRsZWQKICAgICAvLyBpbiA6OmFkZCgpIGluIHRoZSBoZWFkZXIsIHNvIHdlIHNo
b3VsZCBuZXZlciBnZXQgaGVyZSB3aXRoIGEgemVybyBsZW5ndGggc3RyaW5nLgogICAgIEFTU0VS
VChyLT5sZW5ndGgoKSk7CkBAIC0xMzMsNyArMTMzLDcgQEAgUGFzc1JlZlB0cjxVU3RyaW5nOjpS
ZXA+IElkZW50aWZpZXI6OmFkZAogICAgICAgICBVQ2hhciBjID0gci0+Y2hhcmFjdGVycygpWzBd
OwogICAgICAgICBpZiAoYyA8PSAweEZGKQogICAgICAgICAgICAgciA9IGdsb2JhbERhdGEtPnNt
YWxsU3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAoYyk7Ci0gICAgICAgICAgICBpZiAo
ci0+aXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICBpZiAoci0+aXNBdG9taWMoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gcjsKICAgICB9CiAKQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIElk
ZW50aWZpZXI6OmNoZWNrQ3VycmVudElkZW50aWZpZXJUCiB7CiAgICAgLy8gQ2hlY2sgdGhlIGlk
ZW50aWZpZXIgdGFibGUgYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSB0aHJlYWRzcGVjaWZpYyBtYXRj
aGVzIHRoZQogICAgIC8vIGdsb2JhbERhdGEncyBpZGVudGlmaWVyIHRhYmxlLgotICAgIEFTU0VS
VF9VTlVTRUQoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS0+aWRlbnRpZmllclRhYmxlID09IHd0ZlRo
cmVhZERhdGEoKS5jdXJyZW50SWRlbnRpZmllclRhYmxlKCkpOworICAgIEFTU0VSVF9VTlVTRUQo
Z2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS0+aWRlbnRpZmllclRhYmxlID09IHd0ZlRocmVhZERhdGEo
KS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKIH0KIAogdm9pZCBJZGVudGlmaWVyOjpjaGVja0N1cnJl
bnRJZGVudGlmaWVyVGFibGUoRXhlY1N0YXRlKiBleGVjKQpJbmRleDogSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JZGVudGlmaWVyLmgJKHJldmlzaW9uIDU4MTMzKQorKysgSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JZGVudGlmaWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICAgICAgY2hlY2tDdXJyZW50SWRlbnRpZmll
clRhYmxlKGV4ZWMpOwogI2VuZGlmCi0gICAgICAgICAgICBpZiAoci0+aXNJZGVudGlmaWVyKCkp
CisgICAgICAgICAgICBpZiAoci0+aXNBdG9taWMoKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
cjsKICAgICAgICAgICAgIHJldHVybiBhZGRTbG93Q2FzZShleGVjLCByKTsKICAgICAgICAgfQpA
QCAtMTAzLDcgKzEwMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmbmRlZiBOREVCVUcKICAgICAg
ICAgICAgIGNoZWNrQ3VycmVudElkZW50aWZpZXJUYWJsZShnbG9iYWxEYXRhKTsKICNlbmRpZgot
ICAgICAgICAgICAgaWYgKHItPmlzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgaWYgKHItPmlz
QXRvbWljKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHI7CiAgICAgICAgICAgICByZXR1cm4g
YWRkU2xvd0Nhc2UoZ2xvYmFsRGF0YSwgcik7CiAgICAgICAgIH0KQEAgLTEzNSw4ICsxMzUsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJuICFJZGVudGlmaWVyOjplcXVhbChhLCBi
KTsKICAgICB9CiAKLSAgICBJZGVudGlmaWVyVGFibGUqIGNyZWF0ZUlkZW50aWZpZXJUYWJsZSgp
OwotICAgIHZvaWQgZGVsZXRlSWRlbnRpZmllclRhYmxlKElkZW50aWZpZXJUYWJsZSopOworICAg
IEF0b21pY1N0cmluZ1RhYmxlKiBjcmVhdGVJZGVudGlmaWVyVGFibGUoKTsKKyAgICB2b2lkIGRl
bGV0ZUlkZW50aWZpZXJUYWJsZShBdG9taWNTdHJpbmdUYWJsZSopOwogICAgIExpdGVyYWxUYWJs
ZSogY3JlYXRlTGl0ZXJhbFRhYmxlKCk7CiAgICAgdm9pZCBkZWxldGVMaXRlcmFsVGFibGUoTGl0
ZXJhbFRhYmxlKik7CiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRh
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5j
cHAJKHJldmlzaW9uIDU4MTMzKQorKysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERh
dGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNyArMTI4LDcgQEAgSlNHbG9iYWxEYXRhOjpK
U0dsb2JhbERhdGEoR2xvYmFsRGF0YVR5cAogI2lmIFVTRShKU1ZBTFVFMzIpCiAgICAgLCBudW1i
ZXJTdHJ1Y3R1cmUoSlNOdW1iZXJDZWxsOjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxsKCkpKQogI2Vu
ZGlmCi0gICAgLCBpZGVudGlmaWVyVGFibGUoZ2xvYmFsRGF0YVR5cGUgPT0gRGVmYXVsdCA/IHd0
ZlRocmVhZERhdGEoKS5jdXJyZW50SWRlbnRpZmllclRhYmxlKCkgOiBjcmVhdGVJZGVudGlmaWVy
VGFibGUoKSkKKyAgICAsIGlkZW50aWZpZXJUYWJsZShnbG9iYWxEYXRhVHlwZSA9PSBEZWZhdWx0
ID8gd3RmVGhyZWFkRGF0YSgpLmF0b21pY1N0cmluZ1RhYmxlKCkgOiBjcmVhdGVJZGVudGlmaWVy
VGFibGUoKSkKICAgICAsIGxpdGVyYWxUYWJsZShjcmVhdGVMaXRlcmFsVGFibGUoKSkKICAgICAs
IHByb3BlcnR5TmFtZXMobmV3IENvbW1vbklkZW50aWZpZXJzKHRoaXMpKQogICAgICwgZW1wdHlM
aXN0KG5ldyBNYXJrZWRBcmd1bWVudEJ1ZmZlcikKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbERhdGEuaAkocmV2aXNpb24gNTgxMzMpCisrKyBKYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NywxMSArNDcsMTUgQEAKIHN0cnVj
dCBPcGFxdWVKU0NsYXNzOwogc3RydWN0IE9wYXF1ZUpTQ2xhc3NDb250ZXh0RGF0YTsKIAorbmFt
ZXNwYWNlIFdURiB7CisgICAgY2xhc3MgQXRvbWljU3RyaW5nVGFibGU7Cit9Cit1c2luZyBXVEY6
OkF0b21pY1N0cmluZ1RhYmxlOworCiBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIENvZGVC
bG9jazsKICAgICBjbGFzcyBDb21tb25JZGVudGlmaWVyczsKLSAgICBjbGFzcyBJZGVudGlmaWVy
VGFibGU7CiAgICAgY2xhc3MgSW50ZXJwcmV0ZXI7CiAgICAgY2xhc3MgSlNHbG9iYWxPYmplY3Q7
CiAgICAgY2xhc3MgSlNPYmplY3Q7CkBAIC0xNTQsNyArMTU4LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIHZvaWQqIGpzU3RyaW5nVlB0cjsKICAgICAg
ICAgc3RhdGljIEpTX0VYUE9SVERBVEEgdm9pZCoganNGdW5jdGlvblZQdHI7CiAKLSAgICAgICAg
SWRlbnRpZmllclRhYmxlKiBpZGVudGlmaWVyVGFibGU7CisgICAgICAgIEF0b21pY1N0cmluZ1Rh
YmxlKiBpZGVudGlmaWVyVGFibGU7CiAgICAgICAgIExpdGVyYWxUYWJsZSogbGl0ZXJhbFRhYmxl
OwogICAgICAgICBDb21tb25JZGVudGlmaWVycyogcHJvcGVydHlOYW1lczsKICAgICAgICAgY29u
c3QgTWFya2VkQXJndW1lbnRCdWZmZXIqIGVtcHR5TGlzdDsgLy8gTGlzdHMgYXJlIHN1cHBvc2Vk
IHRvIGJlIGFsbG9jYXRlZCBvbiB0aGUgc3RhY2sgdG8gaGF2ZSB0aGVpciBlbGVtZW50cyBwcm9w
ZXJseSBtYXJrZWQsIHdoaWNoIGlzIG5vdCB0aGUgY2FzZSBoZXJlIC0gYnV0IHRoaXMgbGlzdCBo
YXMgbm90aGluZyB0byBtYXJrLgpJbmRleDogSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eU5hbWVBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eU5hbWVBcnJheS5jcHAJKHJldmlzaW9uIDU4MTMzKQorKysgSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcg
QEAgc3RhdGljIGNvbnN0IHNpemVfdCBzZXRUaHJlc2hvbGQgPSAyMDsKIAogdm9pZCBQcm9wZXJ0
eU5hbWVBcnJheTo6YWRkKFVTdHJpbmc6OlJlcCogaWRlbnRpZmllcikKIHsKLSAgICBBU1NFUlQo
aWRlbnRpZmllciA9PSBVU3RyaW5nOjpudWxsKCkucmVwKCkgfHwgaWRlbnRpZmllciA9PSBVU3Ry
aW5nOjpSZXA6OmVtcHR5KCkgfHwgaWRlbnRpZmllci0+aXNJZGVudGlmaWVyKCkpOworICAgIEFT
U0VSVChpZGVudGlmaWVyID09IFVTdHJpbmc6Om51bGwoKS5yZXAoKSB8fCBpZGVudGlmaWVyID09
IFVTdHJpbmc6OlJlcDo6ZW1wdHkoKSB8fCBpZGVudGlmaWVyLT5pc0F0b21pYygpKTsKIAogICAg
IHNpemVfdCBzaXplID0gbV9kYXRhLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5zaXplKCk7CiAgICAg
aWYgKHNpemUgPCBzZXRUaHJlc2hvbGQpIHsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9XVEZU
aHJlYWREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvV1RGVGhyZWFk
RGF0YS5jcHAJKHJldmlzaW9uIDU4MTMzKQorKysgSmF2YVNjcmlwdENvcmUvd3RmL1dURlRocmVh
ZERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywyMCArMzcsMTQgQEAgV1RGVGhyZWFkRGF0
YSogV1RGVGhyZWFkRGF0YTo6c3RhdGljRGF0YQogI2VuZGlmCiAKIFdURlRocmVhZERhdGE6OldU
RlRocmVhZERhdGEoKQotICAgIDogbV9hdG9taWNTdHJpbmdUYWJsZShuZXcgV2ViQ29yZTo6QXRv
bWljU3RyaW5nVGFibGUoKSkKLSNpZiBVU0UoSlNDKQotICAgICwgbV9kZWZhdWx0SWRlbnRpZmll
clRhYmxlKG5ldyBKU0M6OklkZW50aWZpZXJUYWJsZSgpKQotICAgICwgbV9jdXJyZW50SWRlbnRp
ZmllclRhYmxlKG1fZGVmYXVsdElkZW50aWZpZXJUYWJsZSkKLSNlbmRpZgorICAgIDogbV9kZWZh
dWx0QXRvbWljU3RyaW5nVGFibGUobmV3IEF0b21pY1N0cmluZ1RhYmxlKCkpCisgICAgLCBtX2N1
cnJlbnRBdG9taWNTdHJpbmdUYWJsZShtX2RlZmF1bHRBdG9taWNTdHJpbmdUYWJsZSkKIHsKIH0K
IAogV1RGVGhyZWFkRGF0YTo6fldURlRocmVhZERhdGEoKQogewotICAgIGRlbGV0ZSBtX2F0b21p
Y1N0cmluZ1RhYmxlOwotI2lmIFVTRShKU0MpCi0gICAgZGVsZXRlIG1fZGVmYXVsdElkZW50aWZp
ZXJUYWJsZTsKLSNlbmRpZgorICAgIGRlbGV0ZSBtX2RlZmF1bHRBdG9taWNTdHJpbmdUYWJsZTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL1dU
RlRocmVhZERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvV1RGVGhyZWFk
RGF0YS5oCShyZXZpc2lvbiA1ODEzMykKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9XVEZUaHJlYWRE
YXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYwICs0MiwzNSBAQAogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmcuaD4KICNlbmRpZgogCi0vLyBGSVhNRTogVGhpcyBpcyBhIHRlbXBvcmFyeSBsYXll
cmluZyB2aW9sYXRpb24gd2hpbGUgd2UgbW92ZSBtb3JlIHN0cmluZyBjb2RlIHRvIFdURi4KLW5h
bWVzcGFjZSBKU0MgewotY2xhc3MgSWRlbnRpZmllclRhYmxlOwotfQorbmFtZXNwYWNlIFdURiB7
CiAKLS8vIEZJWE1FOiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGxheWVyaW5nIHZpb2xhdGlvbiB3aGls
ZSB3ZSBtb3ZlIG1vcmUgc3RyaW5nIGNvZGUgdG8gV1RGLgotbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgQXRvbWljU3RyaW5nVGFibGU7Ci19Ci0KLW5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBX
VEZUaHJlYWREYXRhIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKICAgICBXVEZUaHJl
YWREYXRhKCk7CiAgICAgfldURlRocmVhZERhdGEoKTsKIAotICAgIFdlYkNvcmU6OkF0b21pY1N0
cmluZ1RhYmxlJiBhdG9taWNTdHJpbmdUYWJsZSgpCi0gICAgewotICAgICAgICByZXR1cm4gKm1f
YXRvbWljU3RyaW5nVGFibGU7Ci0gICAgfQotCi0jaWYgVVNFKEpTQykKLSAgICB2b2lkIGluaXRp
YWxpemVJZGVudGlmaWVyVGFibGUoSlNDOjpJZGVudGlmaWVyVGFibGUqIGlkZW50aWZpZXJUYWJs
ZSkKKyAgICBBdG9taWNTdHJpbmdUYWJsZSogYXRvbWljU3RyaW5nVGFibGUoKQogICAgIHsKLSAg
ICAgICAgbV9kZWZhdWx0SWRlbnRpZmllclRhYmxlID0gaWRlbnRpZmllclRhYmxlOwotICAgICAg
ICBtX2N1cnJlbnRJZGVudGlmaWVyVGFibGUgPSBpZGVudGlmaWVyVGFibGU7CisgICAgICAgIHJl
dHVybiBtX2N1cnJlbnRBdG9taWNTdHJpbmdUYWJsZTsKICAgICB9CiAKLSAgICBKU0M6OklkZW50
aWZpZXJUYWJsZSogY3VycmVudElkZW50aWZpZXJUYWJsZSgpCisgICAgQXRvbWljU3RyaW5nVGFi
bGUqIHNldEF0b21pY1N0cmluZ1RhYmxlKEF0b21pY1N0cmluZ1RhYmxlKiBpZGVudGlmaWVyVGFi
bGUpCiAgICAgewotICAgICAgICByZXR1cm4gbV9jdXJyZW50SWRlbnRpZmllclRhYmxlOworICAg
ICAgICBBdG9taWNTdHJpbmdUYWJsZSogb2xkVGFibGUgPSBtX2N1cnJlbnRBdG9taWNTdHJpbmdU
YWJsZTsKKyAgICAgICAgbV9jdXJyZW50QXRvbWljU3RyaW5nVGFibGUgPSBpZGVudGlmaWVyVGFi
bGU7CisgICAgICAgIHJldHVybiBvbGRUYWJsZTsKICAgICB9CiAKLSAgICBKU0M6OklkZW50aWZp
ZXJUYWJsZSogc2V0Q3VycmVudElkZW50aWZpZXJUYWJsZShKU0M6OklkZW50aWZpZXJUYWJsZSog
aWRlbnRpZmllclRhYmxlKQorICAgIHZvaWQgcmVzZXRBdG9taWNTdHJpbmdUYWJsZSgpCiAgICAg
ewotICAgICAgICBKU0M6OklkZW50aWZpZXJUYWJsZSogb2xkSWRlbnRpZmllclRhYmxlID0gbV9j
dXJyZW50SWRlbnRpZmllclRhYmxlOwotICAgICAgICBtX2N1cnJlbnRJZGVudGlmaWVyVGFibGUg
PSBpZGVudGlmaWVyVGFibGU7Ci0gICAgICAgIHJldHVybiBvbGRJZGVudGlmaWVyVGFibGU7Cisg
ICAgICAgIG1fY3VycmVudEF0b21pY1N0cmluZ1RhYmxlID0gbV9kZWZhdWx0QXRvbWljU3RyaW5n
VGFibGU7CiAgICAgfQogCi0gICAgdm9pZCByZXNldEN1cnJlbnRJZGVudGlmaWVyVGFibGUoKQot
ICAgIHsKLSAgICAgICAgbV9jdXJyZW50SWRlbnRpZmllclRhYmxlID0gbV9kZWZhdWx0SWRlbnRp
ZmllclRhYmxlOwotICAgIH0KLSNlbmRpZgotCiBwcml2YXRlOgotICAgIFdlYkNvcmU6OkF0b21p
Y1N0cmluZ1RhYmxlKiBtX2F0b21pY1N0cmluZ1RhYmxlOwotCi0jaWYgVVNFKEpTQykKLSAgICBK
U0M6OklkZW50aWZpZXJUYWJsZSogbV9kZWZhdWx0SWRlbnRpZmllclRhYmxlOwotICAgIEpTQzo6
SWRlbnRpZmllclRhYmxlKiBtX2N1cnJlbnRJZGVudGlmaWVyVGFibGU7Ci0jZW5kaWYKKyAgICBB
dG9taWNTdHJpbmdUYWJsZSogbV9kZWZhdWx0QXRvbWljU3RyaW5nVGFibGU7CisgICAgQXRvbWlj
U3RyaW5nVGFibGUqIG1fY3VycmVudEF0b21pY1N0cmluZ1RhYmxlOwogCiAjaWYgV1RGVEhSRUFE
REFUQV9NVUxUSVRIUkVBREVECiAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgVGhyZWFkU3BlY2lm
aWM8V1RGVGhyZWFkRGF0YT4qIHN0YXRpY0RhdGE7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYv
dGV4dC9BdG9taWNTdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi90
ZXh0L0F0b21pY1N0cmluZy5jcHAJKHJldmlzaW9uIDU4MTMzKQorKysgSmF2YVNjcmlwdENvcmUv
d3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgQXRvbWljU3RyaW5nVGFibGUm
IHRhYmxlKCkKIHsKLSAgICByZXR1cm4gd3RmVGhyZWFkRGF0YSgpLmF0b21pY1N0cmluZ1RhYmxl
KCk7CisgICAgcmV0dXJuICp3dGZUaHJlYWREYXRhKCkuYXRvbWljU3RyaW5nVGFibGUoKTsKIH0K
IAogYm9vbCBvcGVyYXRvcj09KGNvbnN0IEF0b21pY1N0cmluZyYgYSwgY29uc3QgY2hhciogYikK
SW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L0F0b21pY1N0cmluZ1RhYmxlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvQXRvbWljU3RyaW5nVGFibGUuaAkocmV2
aXNpb24gNTgxMzMpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9BdG9taWNTdHJpbmdUYWJs
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsMTAgKzEwOCw5IEBAIHN0cnVjdCBIYXNoQW5kQ2hh
cmFjdGVyc1RyYW5zbGF0b3IgewogICAgIH0KIH07CiAKLXRlbXBsYXRlPGJvb2wgaXNJZGVudGlm
ZXJUYWJsZT4KLWNsYXNzIElkZW50aWZpZXJPckF0b21pY1N0cmluZ1RhYmxlIDogcHVibGljIEZh
c3RBbGxvY0Jhc2UgeworY2xhc3MgQXRvbWljU3RyaW5nVGFibGUgOiBwdWJsaWMgRmFzdEFsbG9j
QmFzZSB7CiBwdWJsaWM6Ci0gICAgfklkZW50aWZpZXJPckF0b21pY1N0cmluZ1RhYmxlKCk7Cisg
ICAgfkF0b21pY1N0cmluZ1RhYmxlKCk7CiAKICAgICBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGFk
ZChTdHJpbmdJbXBsKiB2YWx1ZSk7CiAgICAgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBhZGQoY29u
c3QgY2hhciopOwpAQCAtMTI2LDQwICsxMjUsMjYgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFN0
cmluZ0ltcGwqPiBtX3RhYmxlOwogfTsKIAotdGVtcGxhdGU8Ym9vbCBpc0lkZW50aWZpZXJUYWJs
ZT4KLUlkZW50aWZpZXJPckF0b21pY1N0cmluZ1RhYmxlPGlzSWRlbnRpZmllclRhYmxlPjo6fklk
ZW50aWZpZXJPckF0b21pY1N0cmluZ1RhYmxlKCkKK2lubGluZSBBdG9taWNTdHJpbmdUYWJsZTo6
fkF0b21pY1N0cmluZ1RhYmxlKCkKIHsKICAgICBIYXNoU2V0PFN0cmluZ0ltcGwqPjo6aXRlcmF0
b3IgZW5kID0gbV90YWJsZS5lbmQoKTsKLSAgICBpZiAoaXNJZGVudGlmaWVyVGFibGUpIHsKLSAg
ICAgICAgZm9yIChIYXNoU2V0PFN0cmluZ0ltcGwqPjo6aXRlcmF0b3IgaXRlciA9IG1fdGFibGUu
YmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKLSAgICAgICAgICAgICgqaXRlciktPnNldElz
SWRlbnRpZmllcihmYWxzZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZm9yIChIYXNoU2V0PFN0
cmluZ0ltcGwqPjo6aXRlcmF0b3IgaXRlciA9IG1fdGFibGUuYmVnaW4oKTsgaXRlciAhPSBlbmQ7
ICsraXRlcikKLSAgICAgICAgICAgICgqaXRlciktPnNldElzQXRvbWljKGZhbHNlKTsKLSAgICB9
CisgICAgZm9yIChIYXNoU2V0PFN0cmluZ0ltcGwqPjo6aXRlcmF0b3IgaXRlciA9IG1fdGFibGUu
YmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKKyAgICAgICAgKCppdGVyKS0+c2V0SXNBdG9t
aWMoZmFsc2UpOwogfQogCi10ZW1wbGF0ZTxib29sIGlzSWRlbnRpZmllclRhYmxlPgotUGFzc1Jl
ZlB0cjxTdHJpbmdJbXBsPiBJZGVudGlmaWVyT3JBdG9taWNTdHJpbmdUYWJsZTxpc0lkZW50aWZp
ZXJUYWJsZT46OmFkZChTdHJpbmdJbXBsKiB2YWx1ZSkKK2lubGluZSBQYXNzUmVmUHRyPFN0cmlu
Z0ltcGw+IEF0b21pY1N0cmluZ1RhYmxlOjphZGQoU3RyaW5nSW1wbCogdmFsdWUpCiB7CiAgICAg
QVNTRVJUKHZhbHVlKTsKICAgICBBU1NFUlQodmFsdWUtPmxlbmd0aCgpKTsKIAogICAgIHN0ZDo6
cGFpcjxIYXNoU2V0PFN0cmluZ0ltcGwqPjo6aXRlcmF0b3IsIGJvb2w+IHJlc3VsdCA9IG1fdGFi
bGUuYWRkKHZhbHVlKTsKICAgICBTdHJpbmdJbXBsKiBpZGVudGlmaWVyID0gKnJlc3VsdC5maXJz
dDsKLQotICAgIGlmIChyZXN1bHQuc2Vjb25kKSB7Ci0gICAgICAgIGlmIChpc0lkZW50aWZpZXJU
YWJsZSkKLSAgICAgICAgICAgIGlkZW50aWZpZXItPnNldElzSWRlbnRpZmllcih0cnVlKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgaWRlbnRpZmllci0+c2V0SXNBdG9taWModHJ1ZSk7Ci0g
ICAgfQotCisgICAgaWYgKHJlc3VsdC5zZWNvbmQpCisgICAgICAgIGlkZW50aWZpZXItPnNldElz
QXRvbWljKHRydWUpOwogICAgIHJldHVybiBpZGVudGlmaWVyOwogfQogCi10ZW1wbGF0ZTxib29s
IGlzSWRlbnRpZmllclRhYmxlPgotUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBJZGVudGlmaWVyT3JB
dG9taWNTdHJpbmdUYWJsZTxpc0lkZW50aWZpZXJUYWJsZT46OmFkZChjb25zdCBjaGFyKiBjKQor
aW5saW5lIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gQXRvbWljU3RyaW5nVGFibGU6OmFkZChjb25z
dCBjaGFyKiBjKQogewogICAgIEFTU0VSVChjKTsKICAgICBBU1NFUlQoKmMpOwpAQCAtMTcwLDE4
ICsxNTUsMTQgQEAgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBJZGVudGlmaWVyT3JBdG9taQogICAg
IC8vIElmIHRoZSBzdHJpbmcgaXMgbmV3bHktdHJhbnNsYXRlZCwgdGhlbiB3ZSBuZWVkIHRvIGFk
b3B0IGl0LgogICAgIC8vIFRoZSBib29sZWFuIGluIHRoZSBwYWlyIHRlbGxzIHVzIGlmIHRoYXQg
aXMgc28uCiAgICAgaWYgKHJlc3VsdC5zZWNvbmQpIHsKLSAgICAgICAgaWYgKGlzSWRlbnRpZmll
clRhYmxlKQotICAgICAgICAgICAgaWRlbnRpZmllci0+c2V0SXNJZGVudGlmaWVyKHRydWUpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBpZGVudGlmaWVyLT5zZXRJc0F0b21pYyh0cnVlKTsK
KyAgICAgICAgaWRlbnRpZmllci0+c2V0SXNBdG9taWModHJ1ZSk7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZihpZGVudGlmaWVyKTsKICAgICB9CiAKICAgICByZXR1cm4gaWRlbnRpZmllcjsKIH0K
IAotdGVtcGxhdGU8Ym9vbCBpc0lkZW50aWZpZXJUYWJsZT4KLVBhc3NSZWZQdHI8U3RyaW5nSW1w
bD4gSWRlbnRpZmllck9yQXRvbWljU3RyaW5nVGFibGU8aXNJZGVudGlmaWVyVGFibGU+OjphZGQo
Y29uc3QgVUNoYXIqIHMsIHVuc2lnbmVkIGxlbmd0aCkKK2lubGluZSBQYXNzUmVmUHRyPFN0cmlu
Z0ltcGw+IEF0b21pY1N0cmluZ1RhYmxlOjphZGQoY29uc3QgVUNoYXIqIHMsIHVuc2lnbmVkIGxl
bmd0aCkKIHsKICAgICBBU1NFUlQocyk7CiAgICAgQVNTRVJUKGxlbmd0aCk7CkBAIC0xOTMsMTgg
KzE3NCwxNCBAQCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IElkZW50aWZpZXJPckF0b21pCiAgICAg
Ly8gSWYgdGhlIHN0cmluZyBpcyBuZXdseS10cmFuc2xhdGVkLCB0aGVuIHdlIG5lZWQgdG8gYWRv
cHQgaXQuCiAgICAgLy8gVGhlIGJvb2xlYW4gaW4gdGhlIHBhaXIgdGVsbHMgdXMgaWYgdGhhdCBp
cyBzby4KICAgICBpZiAocmVzdWx0LnNlY29uZCkgewotICAgICAgICBpZiAoaXNJZGVudGlmaWVy
VGFibGUpCi0gICAgICAgICAgICBpZGVudGlmaWVyLT5zZXRJc0lkZW50aWZpZXIodHJ1ZSk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGlkZW50aWZpZXItPnNldElzQXRvbWljKHRydWUpOwor
ICAgICAgICBpZGVudGlmaWVyLT5zZXRJc0F0b21pYyh0cnVlKTsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKGlkZW50aWZpZXIpOwogICAgIH0KIAogICAgIHJldHVybiBpZGVudGlmaWVyOwogfQog
Ci10ZW1wbGF0ZTxib29sIGlzSWRlbnRpZmllclRhYmxlPgotUGFzc1JlZlB0cjxTdHJpbmdJbXBs
PiBJZGVudGlmaWVyT3JBdG9taWNTdHJpbmdUYWJsZTxpc0lkZW50aWZpZXJUYWJsZT46OmFkZChj
b25zdCBVQ2hhciogcywgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBleGlzdGluZ0hhc2gpCitp
bmxpbmUgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBBdG9taWNTdHJpbmdUYWJsZTo6YWRkKGNvbnN0
IFVDaGFyKiBzLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIGV4aXN0aW5nSGFzaCkKIHsKICAg
ICBBU1NFUlQocyk7CiAgICAgQVNTRVJUKGxlbmd0aCk7CkBAIC0yMTcsMTggKzE5NCwxNCBAQCBQ
YXNzUmVmUHRyPFN0cmluZ0ltcGw+IElkZW50aWZpZXJPckF0b21pCiAgICAgLy8gSWYgdGhlIHN0
cmluZyBpcyBuZXdseS10cmFuc2xhdGVkLCB0aGVuIHdlIG5lZWQgdG8gYWRvcHQgaXQuCiAgICAg
Ly8gVGhlIGJvb2xlYW4gaW4gdGhlIHBhaXIgdGVsbHMgdXMgaWYgdGhhdCBpcyBzby4KICAgICBp
ZiAocmVzdWx0LnNlY29uZCkgewotICAgICAgICBpZiAoaXNJZGVudGlmaWVyVGFibGUpCi0gICAg
ICAgICAgICBpZGVudGlmaWVyLT5zZXRJc0lkZW50aWZpZXIodHJ1ZSk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIGlkZW50aWZpZXItPnNldElzQXRvbWljKHRydWUpOworICAgICAgICBpZGVu
dGlmaWVyLT5zZXRJc0F0b21pYyh0cnVlKTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKGlkZW50
aWZpZXIpOwogICAgIH0KIAogICAgIHJldHVybiBpZGVudGlmaWVyOwogfQogCi10ZW1wbGF0ZTxi
b29sIGlzSWRlbnRpZmllclRhYmxlPgotU3RyaW5nSW1wbCogSWRlbnRpZmllck9yQXRvbWljU3Ry
aW5nVGFibGU8aXNJZGVudGlmaWVyVGFibGU+OjpmaW5kKGNvbnN0IFVDaGFyKiBzICwgdW5zaWdu
ZWQgbGVuZ3RoLCB1bnNpZ25lZCBleGlzdGluZ0hhc2gpCitpbmxpbmUgU3RyaW5nSW1wbCogQXRv
bWljU3RyaW5nVGFibGU6OmZpbmQoY29uc3QgVUNoYXIqIHMgLCB1bnNpZ25lZCBsZW5ndGgsIHVu
c2lnbmVkIGV4aXN0aW5nSGFzaCkKIHsKICAgICBBU1NFUlQocyk7CiAgICAgQVNTRVJUKGxlbmd0
aCk7CkBAIC0yNDMsMTUgKzIxNiw2IEBAIFN0cmluZ0ltcGwqIElkZW50aWZpZXJPckF0b21pY1N0
cmluZ1RhYmwKIAogfQogCi0jaWYgVVNFKEpTQykKLS8vIEZJWE1FOiBUaGlzIGlzIGEgdGVtcG9y
YXJ5IGxheWVyaW5nIHZpb2xhdGlvbiB3aGlsZSB3ZSBtb3ZlIG1vcmUgc3RyaW5nIGNvZGUgdG8g
V1RGLgotbmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBJZGVudGlmaWVyVGFibGUgOiBwdWJsaWMgV1RG
OjpJZGVudGlmaWVyT3JBdG9taWNTdHJpbmdUYWJsZTx0cnVlPiB7fTsKLX0KLSNlbmRpZgotCi0v
LyBGSVhNRTogVGhpcyBpcyBhIHRlbXBvcmFyeSBsYXllcmluZyB2aW9sYXRpb24gd2hpbGUgd2Ug
bW92ZSBtb3JlIHN0cmluZyBjb2RlIHRvIFdURi4KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNz
IEF0b21pY1N0cmluZ1RhYmxlIDogcHVibGljIFdURjo6SWRlbnRpZmllck9yQXRvbWljU3RyaW5n
VGFibGU8ZmFsc2U+IHt9OwotfQordXNpbmcgV1RGOjpBdG9taWNTdHJpbmdUYWJsZTsKKwogI2Vu
ZGlmIC8vIEF0b21pY1N0cmluZ1RhYmxlX2gKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0
L1N0cmluZ0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0
cmluZ0ltcGwuY3BwCShyZXZpc2lvbiA1ODEzMykKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0
L1N0cmluZ0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxMCArNDUsNiBAQCBTdHJpbmdJ
bXBsOjp+U3RyaW5nSW1wbCgpCiAKICAgICBpZiAoaXNBdG9taWMoKSkKICAgICAgICAgQXRvbWlj
U3RyaW5nOjpyZW1vdmUodGhpcyk7Ci0jaWYgVVNFKEpTQykKLSAgICBpZiAoaXNJZGVudGlmaWVy
KCkpCi0gICAgICAgIHd0ZlRocmVhZERhdGEoKS5jdXJyZW50SWRlbnRpZmllclRhYmxlKCktPnJl
bW92ZSh0aGlzKTsKLSNlbmRpZgogCiAgICAgQnVmZmVyT3duZXJzaGlwIG93bmVyc2hpcCA9IGJ1
ZmZlck93bmVyc2hpcCgpOwogICAgIGlmIChvd25lcnNoaXAgIT0gQnVmZmVySW50ZXJuYWwpIHsK
SW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBsLmgJKHJldmlzaW9uIDU4MTMzKQor
KysgSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDQsMTYgKzIwNCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0g
ICAgYm9vbCBpc0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3JlZkNvdW50QW5kRmxhZ3Mg
JiBzX3JlZkNvdW50RmxhZ0lzSWRlbnRpZmllcjsgfQotICAgIHZvaWQgc2V0SXNJZGVudGlmaWVy
KGJvb2wgaXNJZGVudGlmaWVyKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFpc1N0YXRpYygpKTsK
LSAgICAgICAgaWYgKGlzSWRlbnRpZmllcikKLSAgICAgICAgICAgIG1fcmVmQ291bnRBbmRGbGFn
cyB8PSBzX3JlZkNvdW50RmxhZ0lzSWRlbnRpZmllcjsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgbV9yZWZDb3VudEFuZEZsYWdzICY9IH5zX3JlZkNvdW50RmxhZ0lzSWRlbnRpZmllcjsKLSAg
ICB9Ci0KICAgICBib29sIGhhc1Rlcm1pbmF0aW5nTnVsbENoYXJhY3RlcigpIGNvbnN0IHsgcmV0
dXJuIG1fcmVmQ291bnRBbmRGbGFncyAmIHNfcmVmQ291bnRGbGFnSGFzVGVybWluYXRpbmdOdWxs
Q2hhcmFjdGVyOyB9CiAKICAgICBib29sIGlzQXRvbWljKCkgY29uc3QgeyByZXR1cm4gbV9yZWZD
b3VudEFuZEZsYWdzICYgc19yZWZDb3VudEZsYWdJc0F0b21pYzsgfQpJbmRleDogSmF2YVNjcmlw
dENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbEJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBsQmFzZS5oCShyZXZpc2lvbiA1ODEzMykKKysrIEphdmFT
Y3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGxCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYw
LDcgKzYwLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgZW51bSBTdGF0aWNTdHJpbmdDb25zdHJ1Y3RU
eXBlIHsgQ29uc3RydWN0U3RhdGljU3RyaW5nIH07CiAgICAgU3RyaW5nSW1wbEJhc2UodW5zaWdu
ZWQgbGVuZ3RoLCBTdGF0aWNTdHJpbmdDb25zdHJ1Y3RUeXBlKQotICAgICAgICA6IG1fcmVmQ291
bnRBbmRGbGFncyhzX3JlZkNvdW50RmxhZ1N0YXRpYyB8IHNfcmVmQ291bnRGbGFnSXNBdG9taWMg
fCBzX3JlZkNvdW50RmxhZ0lzSWRlbnRpZmllciB8IEJ1ZmZlck93bmVkKQorICAgICAgICA6IG1f
cmVmQ291bnRBbmRGbGFncyhzX3JlZkNvdW50RmxhZ1N0YXRpYyB8IHNfcmVmQ291bnRGbGFnSXNB
dG9taWMgfCBCdWZmZXJPd25lZCkKICAgICAgICAgLCBtX2xlbmd0aChsZW5ndGgpCiAgICAgewog
ICAgICAgICBBU1NFUlQoaXNTdHJpbmdJbXBsKCkpOwpAQCAtNzYsMTYgKzc2LDE1IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgQVNTRVJUKCFpc1N0cmluZ0ltcGwoKSk7CiAgICAgfQogCi0gICAgLy8g
VGhlIGJvdHRvbSA3IGJpdHMgaG9sZCBmbGFncywgdGhlIHRvcCAyNSBiaXRzIGhvbGQgdGhlIHJl
ZiBjb3VudC4KKyAgICAvLyBUaGUgYm90dG9tIDYgYml0cyBob2xkIGZsYWdzLCB0aGUgdG9wIDI2
IGJpdHMgaG9sZCB0aGUgcmVmIGNvdW50LgogICAgIC8vIFdoZW4gZGVyZWZlcmVuY2luZyBTdHJp
bmdJbXBscyB3ZSBjaGVjayBmb3IgdGhlIHJlZiBjb3VudCBBTkQgdGhlCiAgICAgLy8gc3RhdGlj
IGJpdCBib3RoIGJlaW5nIHplcm8gLSBzdGF0aWMgc3RyaW5ncyBhcmUgbmV2ZXIgZGVsZXRlZC4K
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19yZWZDb3VudE1hc2sgPSAweEZGRkZGRjgwOwot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX3JlZkNvdW50SW5jcmVtZW50ID0gMHg4MDsKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19yZWZDb3VudEZsYWdTdGF0aWMgPSAweDQwOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX3JlZkNvdW50RmxhZ0hhc1Rlcm1pbmF0aW5nTnVsbENo
YXJhY3RlciA9IDB4MjA7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfcmVmQ291bnRGbGFn
SXNBdG9taWMgPSAweDEwOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX3JlZkNvdW50Rmxh
Z1Nob3VsZFJlcG9ydGVkQ29zdCA9IDB4ODsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19y
ZWZDb3VudEZsYWdJc0lkZW50aWZpZXIgPSAweDQ7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IHNfcmVmQ291bnRNYXNrID0gMHhGRkZGRkZDMDsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
c19yZWZDb3VudEluY3JlbWVudCA9IDB4NDA7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNf
cmVmQ291bnRGbGFnU3RhdGljID0gMHgyMDsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19y
ZWZDb3VudEZsYWdIYXNUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIgPSAweDEwOworICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBzX3JlZkNvdW50RmxhZ0lzQXRvbWljID0gMHgwODsKKyAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgc19yZWZDb3VudEZsYWdTaG91bGRSZXBvcnRlZENvc3QgPSAweDQ7
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfcmVmQ291bnRNYXNrQnVmZmVyT3duZXJzaGlw
ID0gMHgzOwogICAgIC8vIEFuIGludmFsaWQgcGVybXV0YXRpb24gb2YgZmxhZ3MgKHN0YXRpYyAm
IHNob3VsZFJlcG9ydGVkQ29zdCAtIHN0YXRpYyBzdHJpbmdzIGRvIG5vdAogICAgIC8vIHNldCBz
aG91bGRSZXBvcnRlZENvc3QgaW4gdGhlIGNvbnN0cnVjdG9yLCBhbmQgdGhpcyBiaXQgaXMgb25s
eSBldmVyIGNsZWFyZWQsIG5vdCBzZXQpLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>