<?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>153673</bug_id>
          
          <creation_ts>2016-01-29 14:44:49 -0800</creation_ts>
          <short_desc>Remove our notion of having a single activation register</short_desc>
          <delta_ts>2016-01-29 16:02:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>153631</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kling</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sukolsak</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1160274</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-01-29 14:44:49 -0800</bug_when>
    <thetext>We have many functions lurking around where we think a function might only have one activation register.
This is clearly wrong now that ES6 has block scoping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160290</commentid>
    <comment_count>1</comment_count>
      <attachid>270260</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-01-29 15:05:49 -0800</bug_when>
    <thetext>Created attachment 270260
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160325</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-01-29 16:02:29 -0800</bug_when>
    <thetext>landed in:
http://trac.webkit.org/changeset/195862</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270260</attachid>
            <date>2016-01-29 15:05:49 -0800</date>
            <delta_ts>2016-01-29 15:07:02 -0800</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>29488</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk1ODQzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwMCBA
QAorMjAxNi0wMS0yOSAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmUgb3VyIG5vdGlvbiBvZiBoYXZpbmcgYSBzaW5nbGUgYWN0aXZhdGlvbiByZWdpc3Rl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjcz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgaGF2
ZSBtYW55IGZ1bmN0aW9ucyBsdXJraW5nIGFyb3VuZCB3aGVyZSB3ZSB0aGluayBhIGZ1bmN0aW9u
IAorICAgICAgICBtaWdodCBvbmx5IGhhdmUgb25lIGFjdGl2YXRpb24gcmVnaXN0ZXIuIFRoaXMg
aXMgY2xlYXJseSB3cm9uZworICAgICAgICBub3cgdGhhdCBFUzYgaGFzIGJsb2NrIHNjb3Bpbmcu
IFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGlzIGZhbHNlIG5vdGlvbi4KKworICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2Rl
KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpDb2RlQmxvY2spOgorICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnNjb3BlUmVnaXN0ZXIp
OgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmNvZGVUeXBlKToKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjpzZXRBY3RpdmF0aW9uUmVnaXN0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpD
b2RlQmxvY2s6OmFjdGl2YXRpb25SZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6dW5jaGVja2VkQWN0aXZhdGlvblJlZ2lzdGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6Q29kZUJsb2NrOjpuZWVkc0FjdGl2YXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJ5
dGVjb2RlL0V4ZWN1dGFibGVJbmZvLmg6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVJbmZvOjpF
eGVjdXRhYmxlSW5mbyk6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVJbmZvOjp1c2VzRXZhbCk6
CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVJbmZvOjppc1N0cmljdE1vZGUpOgorICAgICAgICAo
SlNDOjpFeGVjdXRhYmxlSW5mbzo6aXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkV4ZWN1
dGFibGVJbmZvOjppc0NsYXNzQ29udGV4dCk6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVJbmZv
OjpuZWVkc0FjdGl2YXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OlVubGlua2Vk
Q29kZUJsb2NrKToKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oOgorICAg
ICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6aXNBcnJvd0Z1bmN0aW9uQ29udGV4dCk6Cisg
ICAgICAgIChKU0M6OlVubGlua2VkQ29kZUJsb2NrOjppc0NsYXNzQ29udGV4dCk6CisgICAgICAg
IChKU0M6OlVubGlua2VkQ29kZUJsb2NrOjpzZXRUaGlzUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpVbmxpbmtlZENvZGVCbG9jazo6c2V0U2NvcGVSZWdpc3Rlcik6CisgICAgICAgIChKU0M6OlVu
bGlua2VkQ29kZUJsb2NrOjp1c2VzR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKEpTQzo6VW5saW5r
ZWRDb2RlQmxvY2s6OnNldEdsb2JhbE9iamVjdFJlZ2lzdGVyKToKKyAgICAgICAgKEpTQzo6VW5s
aW5rZWRDb2RlQmxvY2s6OnRoaXNSZWdpc3Rlcik6CisgICAgICAgIChKU0M6OlVubGlua2VkQ29k
ZUJsb2NrOjpzY29wZVJlZ2lzdGVyKToKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6
OmFkZFByb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb24pOgorICAgICAgICAoSlNDOjpVbmxpbmtlZENv
ZGVCbG9jazo6bmVlZHNGdWxsU2NvcGVDaGFpbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlVu
bGlua2VkQ29kZUJsb2NrOjpzZXRBY3RpdmF0aW9uUmVnaXN0ZXIpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6YWN0aXZhdGlvblJlZ2lzdGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6Omhhc0FjdGl2YXRpb25SZWdpc3Rlcik6
IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUu
Y3BwOgorICAgICAgICAoSlNDOjpnZW5lcmF0ZVVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2spOgor
ICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChK
U0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcik6CisgICAgICAgIChKU0M6
OkJ5dGVjb2RlR2VuZXJhdG9yOjppbml0aWFsaXplVmFyTGV4aWNhbEVudmlyb25tZW50KToKKyAg
ICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6
Qnl0ZWNvZGVHZW5lcmF0b3I6OmRlc3RpbmF0aW9uRm9yQXNzaWduUmVzdWx0KToKKyAgICAgICAg
KEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmxlZnRIYW5kU2lkZU5lZWRzQ29weSk6CisgICAgICAg
IChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Tm9kZUZvckxlZnRIYW5kU2lkZSk6CisgICAg
ICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRl
Q29kZVBhcnNlcjo6aW5saW5pbmdDb3N0KToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6cGFyc2VDb2RlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAg
ICAoSlNDOjpERkc6OkdyYXBoOjpoYXNFeGl0U2l0ZSk6CisgICAgICAgIChKU0M6OkRGRzo6R3Jh
cGg6OmFjdGl2YXRpb25SZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6R3Jh
cGg6OnVuY2hlY2tlZEFjdGl2YXRpb25SZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6R3JhcGg6Om1hY2hpbmVBY3RpdmF0aW9uUmVnaXN0ZXIpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OkdyYXBoOjp1bmNoZWNrZWRNYWNoaW5lQWN0aXZhdGlvblJlZ2lzdGVyKTog
RGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3RhY2tMYXlvdXRQaGFzZTo6cnVuKToKKyAgICAgICAgKiBpbnRlcnByZXRl
ci9DYWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OmNhbGxTaXRlSW5kZXgp
OgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnN0YWNrKToKKyAgICAgICAgKEpTQzo6Q2FsbEZy
YW1lOjpjYWxsZXJGcmFtZSk6CisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6ZnJpZW5kbHlGdW5j
dGlvbk5hbWUpOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6Omhhc0FjdGl2YXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnVuY2hlY2tlZEFjdGl2YXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OmxleGljYWxFbnZpcm9ubWVudCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6bGV4aWNhbEVudmlyb25tZW50T3JOdWxscHRy
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1lOjpzZXRBY3RpdmF0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuaDoKKyAgICAgICAgKEpTQzo6
RXhlY1N0YXRlOjpzY29wZSk6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6c2V0Q2FsbGVyRnJh
bWUpOgorICAgICAgICAoSlNDOjpFeGVjU3RhdGU6OnNldFNjb3BlKToKKyAgICAgICAgKEpTQzo6
RXhlY1N0YXRlOjppbml0KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9SZWdpc3Rlci5oOgorICAg
ICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkxM
SU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAg
ICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6dXNlc0V2YWwpOgorICAgICAgICAoSlNDOjpT
Y3JpcHRFeGVjdXRhYmxlOjp1c2VzQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6U2NyaXB0RXhl
Y3V0YWJsZTo6aXNBcnJvd0Z1bmN0aW9uQ29udGV4dCk6CisgICAgICAgIChKU0M6OlNjcmlwdEV4
ZWN1dGFibGU6OmlzU3RyaWN0TW9kZSk6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6
OmRlcml2ZWRDb250ZXh0VHlwZSk6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6Omlz
SW5saW5pbmdDYW5kaWRhdGUpOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjppc09r
VG9PcHRpbWl6ZSk6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6OmFkZHJlc3NPZkRp
ZFRyeVRvRW50ZXJJbkxvb3ApOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpmZWF0
dXJlcyk6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6Om5lZWRzQWN0aXZhdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5oOgorICAg
ICAgICAoSlNDOjphc0FjdGl2YXRpb24pOgorICAgICAgICAoSlNDOjpSZWdpc3Rlcjo6bGV4aWNh
bEVudmlyb25tZW50KTogRGVsZXRlZC4KKwogMjAxNi0wMS0yOSAgQW5kcmVhcyBLbGluZyAgPGFr
bGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU2hyaW5rIENvZGVCbG9jayEKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAxOTU4
MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTg2LDggKzU4Niw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNv
ZGUoUHJpbnRTdHJlYW0KICAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oaW5zdHJ1
Y3Rpb25zKCkuc2l6ZSgpKSwKICAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oaW5z
dHJ1Y3Rpb25zKCkuc2l6ZSgpICogc2l6ZW9mKEluc3RydWN0aW9uKSksCiAgICAgICAgIG1fbnVt
UGFyYW1ldGVycywgbV9udW1DYWxsZWVMb2NhbHMsIG1fbnVtVmFycyk7Ci0gICAgaWYgKG5lZWRz
QWN0aXZhdGlvbigpICYmIGNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKQotICAgICAgICBvdXQu
cHJpbnRmKCI7IGxleGljYWwgZW52aXJvbm1lbnQgaW4gciVkIiwgYWN0aXZhdGlvblJlZ2lzdGVy
KCkub2Zmc2V0KCkpOwogICAgIG91dC5wcmludGYoIlxuIik7CiAgICAgCiAgICAgU3R1YkluZm9N
YXAgc3R1YkluZm9zOwpAQCAtMTc1MCw3ICsxNzQ4LDYgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2so
Vk0qIHZtLCBTdHJ1Y3R1cmUqIAogICAgICwgbV9oYXNCZWVuQ29tcGlsZWRXaXRoRlRMKGZhbHNl
KQogICAgICwgbV9pc0NvbnN0cnVjdG9yKG90aGVyLm1faXNDb25zdHJ1Y3RvcikKICAgICAsIG1f
aXNTdHJpY3RNb2RlKG90aGVyLm1faXNTdHJpY3RNb2RlKQotICAgICwgbV9uZWVkc0FjdGl2YXRp
b24ob3RoZXIubV9uZWVkc0FjdGl2YXRpb24pCiAgICAgLCBtX2NvZGVUeXBlKG90aGVyLm1fY29k
ZVR5cGUpCiAgICAgLCBtX3VubGlua2VkQ29kZSgqb3RoZXIubV92bSwgdGhpcywgb3RoZXIubV91
bmxpbmtlZENvZGUuZ2V0KCkpCiAgICAgLCBtX2hhc0RlYnVnZ2VyU3RhdGVtZW50KGZhbHNlKQpA
QCAtMTc2MSw3ICsxNzU4LDYgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soVk0qIHZtLCBTdHJ1Y3R1
cmUqIAogICAgICwgbV9pbnN0cnVjdGlvbnMob3RoZXIubV9pbnN0cnVjdGlvbnMpCiAgICAgLCBt
X3RoaXNSZWdpc3RlcihvdGhlci5tX3RoaXNSZWdpc3RlcikKICAgICAsIG1fc2NvcGVSZWdpc3Rl
cihvdGhlci5tX3Njb3BlUmVnaXN0ZXIpCi0gICAgLCBtX2xleGljYWxFbnZpcm9ubWVudFJlZ2lz
dGVyKG90aGVyLm1fbGV4aWNhbEVudmlyb25tZW50UmVnaXN0ZXIpCiAgICAgLCBtX2hhc2gob3Ro
ZXIubV9oYXNoKQogICAgICwgbV9zb3VyY2Uob3RoZXIubV9zb3VyY2UpCiAgICAgLCBtX3NvdXJj
ZU9mZnNldChvdGhlci5tX3NvdXJjZU9mZnNldCkKQEAgLTE4MTcsNyArMTgxMyw2IEBAIENvZGVC
bG9jazo6Q29kZUJsb2NrKFZNKiB2bSwgU3RydWN0dXJlKiAKICAgICAsIG1faGFzQmVlbkNvbXBp
bGVkV2l0aEZUTChmYWxzZSkKICAgICAsIG1faXNDb25zdHJ1Y3Rvcih1bmxpbmtlZENvZGVCbG9j
ay0+aXNDb25zdHJ1Y3RvcigpKQogICAgICwgbV9pc1N0cmljdE1vZGUodW5saW5rZWRDb2RlQmxv
Y2stPmlzU3RyaWN0TW9kZSgpKQotICAgICwgbV9uZWVkc0FjdGl2YXRpb24odW5saW5rZWRDb2Rl
QmxvY2stPmhhc0FjdGl2YXRpb25SZWdpc3RlcigpICYmIHVubGlua2VkQ29kZUJsb2NrLT5jb2Rl
VHlwZSgpID09IEZ1bmN0aW9uQ29kZSkKICAgICAsIG1fY29kZVR5cGUodW5saW5rZWRDb2RlQmxv
Y2stPmNvZGVUeXBlKCkpCiAgICAgLCBtX3VubGlua2VkQ29kZShtX2dsb2JhbE9iamVjdC0+dm0o
KSwgdGhpcywgdW5saW5rZWRDb2RlQmxvY2spCiAgICAgLCBtX2hhc0RlYnVnZ2VyU3RhdGVtZW50
KGZhbHNlKQpAQCAtMTgyNyw3ICsxODIyLDYgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soVk0qIHZt
LCBTdHJ1Y3R1cmUqIAogICAgICwgbV92bSh1bmxpbmtlZENvZGVCbG9jay0+dm0oKSkKICAgICAs
IG1fdGhpc1JlZ2lzdGVyKHVubGlua2VkQ29kZUJsb2NrLT50aGlzUmVnaXN0ZXIoKSkKICAgICAs
IG1fc2NvcGVSZWdpc3Rlcih1bmxpbmtlZENvZGVCbG9jay0+c2NvcGVSZWdpc3RlcigpKQotICAg
ICwgbV9sZXhpY2FsRW52aXJvbm1lbnRSZWdpc3Rlcih1bmxpbmtlZENvZGVCbG9jay0+YWN0aXZh
dGlvblJlZ2lzdGVyKCkpCiAgICAgLCBtX3NvdXJjZShzb3VyY2VQcm92aWRlcikKICAgICAsIG1f
c291cmNlT2Zmc2V0KHNvdXJjZU9mZnNldCkKICAgICAsIG1fZmlyc3RMaW5lQ29sdW1uT2Zmc2V0
KGZpcnN0TGluZUNvbHVtbk9mZnNldCkKQEAgLTIzMzQsNyArMjMyOCw2IEBAIENvZGVCbG9jazo6
Q29kZUJsb2NrKFZNKiB2bSwgU3RydWN0dXJlKiAKICAgICAsIG1faGFzQmVlbkNvbXBpbGVkV2l0
aEZUTChmYWxzZSkKICAgICAsIG1faXNDb25zdHJ1Y3RvcihmYWxzZSkKICAgICAsIG1faXNTdHJp
Y3RNb2RlKGZhbHNlKQotICAgICwgbV9uZWVkc0FjdGl2YXRpb24oZmFsc2UpCiAgICAgLCBtX2Nv
ZGVUeXBlKEZ1bmN0aW9uQ29kZSkKICAgICAsIG1faGFzRGVidWdnZXJTdGF0ZW1lbnQoZmFsc2Up
CiAgICAgLCBtX3N0ZXBwaW5nTW9kZShTdGVwcGluZ01vZGVEaXNhYmxlZCkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDE5NTgzOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBj
b3B5KQpAQCAtMzUxLDI4ICszNTEsNiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4g
bV9zY29wZVJlZ2lzdGVyOwogICAgIH0KLQotICAgIHZvaWQgc2V0QWN0aXZhdGlvblJlZ2lzdGVy
KFZpcnR1YWxSZWdpc3RlciBhY3RpdmF0aW9uUmVnaXN0ZXIpCi0gICAgewotICAgICAgICBtX2xl
eGljYWxFbnZpcm9ubWVudFJlZ2lzdGVyID0gYWN0aXZhdGlvblJlZ2lzdGVyOwotICAgIH0KLQot
ICAgIFZpcnR1YWxSZWdpc3RlciBhY3RpdmF0aW9uUmVnaXN0ZXIoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fbGV4aWNhbEVudmlyb25tZW50UmVnaXN0ZXIuaXNWYWxpZCgpKTsKLSAg
ICAgICAgcmV0dXJuIG1fbGV4aWNhbEVudmlyb25tZW50UmVnaXN0ZXI7Ci0gICAgfQotCi0gICAg
VmlydHVhbFJlZ2lzdGVyIHVuY2hlY2tlZEFjdGl2YXRpb25SZWdpc3RlcigpCi0gICAgewotICAg
ICAgICByZXR1cm4gbV9sZXhpY2FsRW52aXJvbm1lbnRSZWdpc3RlcjsKLSAgICB9Ci0KLSAgICBi
b29sIG5lZWRzQWN0aXZhdGlvbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV9sZXhp
Y2FsRW52aXJvbm1lbnRSZWdpc3Rlci5pc1ZhbGlkKCkgPT0gbV9uZWVkc0FjdGl2YXRpb24pOwot
ICAgICAgICByZXR1cm4gbV9uZWVkc0FjdGl2YXRpb247Ci0gICAgfQogICAgIAogICAgIENvZGVU
eXBlIGNvZGVUeXBlKCkgY29uc3QKICAgICB7CkBAIC04OTgsNyArODc2LDYgQEAgcHVibGljOgog
ICAgIGJvb2wgbV9oYXNCZWVuQ29tcGlsZWRXaXRoRlRMIDogMTsKICAgICBib29sIG1faXNDb25z
dHJ1Y3RvciA6IDE7CiAgICAgYm9vbCBtX2lzU3RyaWN0TW9kZSA6IDE7Ci0gICAgYm9vbCBtX25l
ZWRzQWN0aXZhdGlvbiA6IDE7CiAgICAgdW5zaWduZWQgbV9jb2RlVHlwZSA6IDI7IC8vIENvZGVU
eXBlCiAKICAgICAvLyBJbnRlcm5hbCBtZXRob2RzIGZvciB1c2UgYnkgdmFsaWRhdGlvbiBjb2Rl
LiBJdCB3b3VsZCBiZSBwcml2YXRlIGlmIGl0IHdhc24ndApAQCAtMTAzOSw3ICsxMDE2LDYgQEAg
cHJpdmF0ZToKICAgICBSZWZDb3VudGVkQXJyYXk8SW5zdHJ1Y3Rpb24+IG1faW5zdHJ1Y3Rpb25z
OwogICAgIFZpcnR1YWxSZWdpc3RlciBtX3RoaXNSZWdpc3RlcjsKICAgICBWaXJ0dWFsUmVnaXN0
ZXIgbV9zY29wZVJlZ2lzdGVyOwotICAgIFZpcnR1YWxSZWdpc3RlciBtX2xleGljYWxFbnZpcm9u
bWVudFJlZ2lzdGVyOwogICAgIG11dGFibGUgQ29kZUJsb2NrSGFzaCBtX2hhc2g7CiAKICAgICBS
ZWZQdHI8U291cmNlUHJvdmlkZXI+IG1fc291cmNlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0V4ZWN1dGFibGVJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGFibGVJbmZvLmgJKHJldmlzaW9uIDE5NTgzOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGVjdXRhYmxlSW5mby5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw5ICszNSw4IEBAIGVudW0gY2xhc3MgRGVyaXZlZENvbnRleHRUeXBlIHsg
Tm9uZSwgRGUKIC8vIEZJWE1FOiBUaGVzZSBmbGFncywgUGFyc2VyTW9kZXMgYW5kIHByb3BhZ2F0
aW9uIHRvIFhYWENvZGVCbG9ja3Mgc2hvdWxkIGJlIHJlb3JnYW5pemVkLgogLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTU0Nwogc3RydWN0IEV4ZWN1dGFibGVJ
bmZvIHsKLSAgICBFeGVjdXRhYmxlSW5mbyhib29sIG5lZWRzQWN0aXZhdGlvbiwgYm9vbCB1c2Vz
RXZhbCwgYm9vbCBpc1N0cmljdE1vZGUsIGJvb2wgaXNDb25zdHJ1Y3RvciwgYm9vbCBpc0J1aWx0
aW5GdW5jdGlvbiwgQ29uc3RydWN0b3JLaW5kIGNvbnN0cnVjdG9yS2luZCwgU3VwZXJCaW5kaW5n
IHN1cGVyQmluZGluZywgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSwgRGVyaXZlZENvbnRleHRU
eXBlIGRlcml2ZWRDb250ZXh0VHlwZSwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBib29s
IGlzQ2xhc3NDb250ZXh0KQotICAgICAgICA6IG1fbmVlZHNBY3RpdmF0aW9uKG5lZWRzQWN0aXZh
dGlvbikKLSAgICAgICAgLCBtX3VzZXNFdmFsKHVzZXNFdmFsKQorICAgIEV4ZWN1dGFibGVJbmZv
KGJvb2wgdXNlc0V2YWwsIGJvb2wgaXNTdHJpY3RNb2RlLCBib29sIGlzQ29uc3RydWN0b3IsIGJv
b2wgaXNCdWlsdGluRnVuY3Rpb24sIENvbnN0cnVjdG9yS2luZCBjb25zdHJ1Y3RvcktpbmQsIFN1
cGVyQmluZGluZyBzdXBlckJpbmRpbmcsIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUsIERlcml2
ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29u
dGV4dCwgYm9vbCBpc0NsYXNzQ29udGV4dCkKKyAgICAgICAgOiBtX3VzZXNFdmFsKHVzZXNFdmFs
KQogICAgICAgICAsIG1faXNTdHJpY3RNb2RlKGlzU3RyaWN0TW9kZSkKICAgICAgICAgLCBtX2lz
Q29uc3RydWN0b3IoaXNDb25zdHJ1Y3RvcikKICAgICAgICAgLCBtX2lzQnVpbHRpbkZ1bmN0aW9u
KGlzQnVpbHRpbkZ1bmN0aW9uKQpAQCAtNTIsNyArNTEsNiBAQCBzdHJ1Y3QgRXhlY3V0YWJsZUlu
Zm8gewogICAgICAgICBBU1NFUlQobV9zdXBlckJpbmRpbmcgPT0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHN1cGVyQmluZGluZykpOwogICAgIH0KIAotICAgIGJvb2wgbmVlZHNBY3RpdmF0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9uZWVkc0FjdGl2YXRpb247IH0KICAgICBib29sIHVzZXNFdmFsKCkg
Y29uc3QgeyByZXR1cm4gbV91c2VzRXZhbDsgfQogICAgIGJvb2wgaXNTdHJpY3RNb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9pc1N0cmljdE1vZGU7IH0KICAgICBib29sIGlzQ29uc3RydWN0b3IoKSBj
b25zdCB7IHJldHVybiBtX2lzQ29uc3RydWN0b3I7IH0KQEAgLTY1LDcgKzYzLDYgQEAgc3RydWN0
IEV4ZWN1dGFibGVJbmZvIHsKICAgICBib29sIGlzQ2xhc3NDb250ZXh0KCkgY29uc3QgeyByZXR1
cm4gbV9pc0NsYXNzQ29udGV4dDsgfQogCiBwcml2YXRlOgotICAgIHVuc2lnbmVkIG1fbmVlZHNB
Y3RpdmF0aW9uIDogMTsKICAgICB1bnNpZ25lZCBtX3VzZXNFdmFsIDogMTsKICAgICB1bnNpZ25l
ZCBtX2lzU3RyaWN0TW9kZSA6IDE7CiAgICAgdW5zaWduZWQgbV9pc0NvbnN0cnVjdG9yIDogMTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTk1ODM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyAr
NTgsNiBAQCBVbmxpbmtlZENvZGVCbG9jazo6VW5saW5rZWRDb2RlQmxvY2soVk0qCiAgICAgLCBt
X251bVBhcmFtZXRlcnMoMCkKICAgICAsIG1fdm0odm0pCiAgICAgLCBtX2dsb2JhbE9iamVjdFJl
Z2lzdGVyKFZpcnR1YWxSZWdpc3RlcigpKQotICAgICwgbV9uZWVkc0Z1bGxTY29wZUNoYWluKGlu
Zm8ubmVlZHNBY3RpdmF0aW9uKCkpCiAgICAgLCBtX3VzZXNFdmFsKGluZm8udXNlc0V2YWwoKSkK
ICAgICAsIG1faXNTdHJpY3RNb2RlKGluZm8uaXNTdHJpY3RNb2RlKCkpCiAgICAgLCBtX2lzQ29u
c3RydWN0b3IoaW5mby5pc0NvbnN0cnVjdG9yKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaAkocmV2aXNpb24gMTk1ODM5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEyMyw4ICsxMjMsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Fy
cm93RnVuY3Rpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9pc0Fycm93RnVuY3Rpb25Db250
ZXh0OyB9CiAgICAgYm9vbCBpc0NsYXNzQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbGFz
c0NvbnRleHQ7IH0KIAotICAgIGJvb2wgbmVlZHNGdWxsU2NvcGVDaGFpbigpIGNvbnN0IHsgcmV0
dXJuIG1fbmVlZHNGdWxsU2NvcGVDaGFpbjsgfQotCiAgICAgdm9pZCBhZGRFeHByZXNzaW9uSW5m
byh1bnNpZ25lZCBpbnN0cnVjdGlvbk9mZnNldCwgaW50IGRpdm90LAogICAgICAgICBpbnQgc3Rh
cnRPZmZzZXQsIGludCBlbmRPZmZzZXQsIHVuc2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVtbik7
CiAKQEAgLTEzNSw3ICsxMzMsNiBAQCBwdWJsaWM6CiAgICAgLy8gU3BlY2lhbCByZWdpc3RlcnMK
ICAgICB2b2lkIHNldFRoaXNSZWdpc3RlcihWaXJ0dWFsUmVnaXN0ZXIgdGhpc1JlZ2lzdGVyKSB7
IG1fdGhpc1JlZ2lzdGVyID0gdGhpc1JlZ2lzdGVyOyB9CiAgICAgdm9pZCBzZXRTY29wZVJlZ2lz
dGVyKFZpcnR1YWxSZWdpc3RlciBzY29wZVJlZ2lzdGVyKSB7IG1fc2NvcGVSZWdpc3RlciA9IHNj
b3BlUmVnaXN0ZXI7IH0KLSAgICB2b2lkIHNldEFjdGl2YXRpb25SZWdpc3RlcihWaXJ0dWFsUmVn
aXN0ZXIgYWN0aXZhdGlvblJlZ2lzdGVyKSB7IG1fbGV4aWNhbEVudmlyb25tZW50UmVnaXN0ZXIg
PSBhY3RpdmF0aW9uUmVnaXN0ZXI7IH0KIAogICAgIGJvb2wgdXNlc0dsb2JhbE9iamVjdCgpIGNv
bnN0IHsgcmV0dXJuIG1fZ2xvYmFsT2JqZWN0UmVnaXN0ZXIuaXNWYWxpZCgpOyB9CiAgICAgdm9p
ZCBzZXRHbG9iYWxPYmplY3RSZWdpc3RlcihWaXJ0dWFsUmVnaXN0ZXIgZ2xvYmFsT2JqZWN0UmVn
aXN0ZXIpIHsgbV9nbG9iYWxPYmplY3RSZWdpc3RlciA9IGdsb2JhbE9iamVjdFJlZ2lzdGVyOyB9
CkBAIC0yOTIsOCArMjg5LDYgQEAgcHVibGljOgogCiAgICAgVmlydHVhbFJlZ2lzdGVyIHRoaXNS
ZWdpc3RlcigpIGNvbnN0IHsgcmV0dXJuIG1fdGhpc1JlZ2lzdGVyOyB9CiAgICAgVmlydHVhbFJl
Z2lzdGVyIHNjb3BlUmVnaXN0ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njb3BlUmVnaXN0ZXI7IH0K
LSAgICBWaXJ0dWFsUmVnaXN0ZXIgYWN0aXZhdGlvblJlZ2lzdGVyKCkgY29uc3QgeyByZXR1cm4g
bV9sZXhpY2FsRW52aXJvbm1lbnRSZWdpc3RlcjsgfQotICAgIGJvb2wgaGFzQWN0aXZhdGlvblJl
Z2lzdGVyKCkgY29uc3QgeyByZXR1cm4gbV9sZXhpY2FsRW52aXJvbm1lbnRSZWdpc3Rlci5pc1Zh
bGlkKCk7IH0KIAogICAgIHZvaWQgYWRkUHJvcGVydHlBY2Nlc3NJbnN0cnVjdGlvbih1bnNpZ25l
ZCBwcm9wZXJ0eUFjY2Vzc0luc3RydWN0aW9uKQogICAgIHsKQEAgLTM4MywxMCArMzc4LDggQEAg
cHJpdmF0ZToKIAogICAgIFZpcnR1YWxSZWdpc3RlciBtX3RoaXNSZWdpc3RlcjsKICAgICBWaXJ0
dWFsUmVnaXN0ZXIgbV9zY29wZVJlZ2lzdGVyOwotICAgIFZpcnR1YWxSZWdpc3RlciBtX2xleGlj
YWxFbnZpcm9ubWVudFJlZ2lzdGVyOwogICAgIFZpcnR1YWxSZWdpc3RlciBtX2dsb2JhbE9iamVj
dFJlZ2lzdGVyOwogCi0gICAgdW5zaWduZWQgbV9uZWVkc0Z1bGxTY29wZUNoYWluIDogMTsKICAg
ICB1bnNpZ25lZCBtX3VzZXNFdmFsIDogMTsKICAgICB1bnNpZ25lZCBtX2lzU3RyaWN0TW9kZSA6
IDE7CiAgICAgdW5zaWduZWQgbV9pc0NvbnN0cnVjdG9yIDogMTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlLmNwcAkocmV2aXNpb24gMTk1ODM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjksNyArNjksNyBAQCBzdGF0aWMgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogZ2VuZXJh
CiAgICAgYm9vbCBpc0NsYXNzQ29udGV4dCA9IGV4ZWN1dGFibGUtPnN1cGVyQmluZGluZygpID09
IFN1cGVyQmluZGluZzo6TmVlZGVkOwogCiAgICAgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayog
cmVzdWx0ID0gVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazo6Y3JlYXRlKCZ2bSwgRnVuY3Rpb25D
b2RlLAotICAgICAgICBFeGVjdXRhYmxlSW5mbyhmdW5jdGlvbi0+bmVlZHNBY3RpdmF0aW9uKCks
IGZ1bmN0aW9uLT51c2VzRXZhbCgpLCBmdW5jdGlvbi0+aXNTdHJpY3RNb2RlKCksIGtpbmQgPT0g
Q29kZUZvckNvbnN0cnVjdCwgZnVuY3Rpb25LaW5kID09IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9u
LCBleGVjdXRhYmxlLT5jb25zdHJ1Y3RvcktpbmQoKSwgZXhlY3V0YWJsZS0+c3VwZXJCaW5kaW5n
KCksIHBhcnNlTW9kZSwgZXhlY3V0YWJsZS0+ZGVyaXZlZENvbnRleHRUeXBlKCksIGZhbHNlLCBp
c0NsYXNzQ29udGV4dCkpOworICAgICAgICBFeGVjdXRhYmxlSW5mbyhmdW5jdGlvbi0+dXNlc0V2
YWwoKSwgZnVuY3Rpb24tPmlzU3RyaWN0TW9kZSgpLCBraW5kID09IENvZGVGb3JDb25zdHJ1Y3Qs
IGZ1bmN0aW9uS2luZCA9PSBVbmxpbmtlZEJ1aWx0aW5GdW5jdGlvbiwgZXhlY3V0YWJsZS0+Y29u
c3RydWN0b3JLaW5kKCksIGV4ZWN1dGFibGUtPnN1cGVyQmluZGluZygpLCBwYXJzZU1vZGUsIGV4
ZWN1dGFibGUtPmRlcml2ZWRDb250ZXh0VHlwZSgpLCBmYWxzZSwgaXNDbGFzc0NvbnRleHQpKTsK
IAogICAgIGF1dG8gZ2VuZXJhdG9yKHN0ZDo6bWFrZV91bmlxdWU8Qnl0ZWNvZGVHZW5lcmF0b3I+
KHZtLCBmdW5jdGlvbi5nZXQoKSwgcmVzdWx0LCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwg
ZXhlY3V0YWJsZS0+cGFyZW50U2NvcGVURFpWYXJpYWJsZXMoKSkpOwogICAgIGVycm9yID0gZ2Vu
ZXJhdG9yLT5nZW5lcmF0ZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDE5NTgz
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDAsNyArMjQwLDcgQEAgQnl0ZWNvZGVHZW5lcmF0
b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJgogICAgIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUg
PSBjb2RlQmxvY2stPnBhcnNlTW9kZSgpOwogCiAgICAgYm9vbCBjb250YWluc0Fycm93T3JFdmFs
QnV0Tm90SW5BcnJvd0Jsb2NrID0gbmVlZHNUb1VwZGF0ZUFycm93RnVuY3Rpb25Db250ZXh0KCkg
JiYgIW1fY29kZUJsb2NrLT5pc0Fycm93RnVuY3Rpb24oKTsKLSAgICBib29sIHNob3VsZENhcHR1
cmVTb21lT2ZUaGVUaGluZ3MgPSBtX3Nob3VsZEVtaXREZWJ1Z0hvb2tzIHx8IG1fY29kZUJsb2Nr
LT5uZWVkc0Z1bGxTY29wZUNoYWluKCkgfHwgY29udGFpbnNBcnJvd09yRXZhbEJ1dE5vdEluQXJy
b3dCbG9jazsKKyAgICBib29sIHNob3VsZENhcHR1cmVTb21lT2ZUaGVUaGluZ3MgPSBtX3Nob3Vs
ZEVtaXREZWJ1Z0hvb2tzIHx8IGZ1bmN0aW9uTm9kZS0+bmVlZHNBY3RpdmF0aW9uKCkgfHwgY29u
dGFpbnNBcnJvd09yRXZhbEJ1dE5vdEluQXJyb3dCbG9jazsKIAogICAgIGJvb2wgc2hvdWxkQ2Fw
dHVyZUFsbE9mVGhlVGhpbmdzID0gbV9zaG91bGRFbWl0RGVidWdIb29rcyB8fCBjb2RlQmxvY2st
PnVzZXNFdmFsKCk7CiAgICAgYm9vbCBuZWVkc0FyZ3VtZW50cyA9IChmdW5jdGlvbk5vZGUtPnVz
ZXNBcmd1bWVudHMoKSB8fCBjb2RlQmxvY2stPnVzZXNFdmFsKCkgfHwgKGZ1bmN0aW9uTm9kZS0+
dXNlc0Fycm93RnVuY3Rpb24oKSAmJiAhY29kZUJsb2NrLT5pc0Fycm93RnVuY3Rpb24oKSkpOwpA
QCAtNjYxLDE0ICs2NjEsMTEgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9y
KFZNJgogICAgIG1vZHVsZUVudmlyb25tZW50U3ltYm9sVGFibGUtPnNldFVzZXNOb25TdHJpY3RF
dmFsKG1fdXNlc05vblN0cmljdEV2YWwpOwogICAgIG1vZHVsZUVudmlyb25tZW50U3ltYm9sVGFi
bGUtPnNldFNjb3BlVHlwZShTeW1ib2xUYWJsZTo6U2NvcGVUeXBlOjpMZXhpY2FsU2NvcGUpOwog
Ci0gICAgYm9vbCBzaG91bGRDYXB0dXJlU29tZU9mVGhlVGhpbmdzID0gbV9zaG91bGRFbWl0RGVi
dWdIb29rcyB8fCBtX2NvZGVCbG9jay0+bmVlZHNGdWxsU2NvcGVDaGFpbigpOwogICAgIGJvb2wg
c2hvdWxkQ2FwdHVyZUFsbE9mVGhlVGhpbmdzID0gbV9zaG91bGRFbWl0RGVidWdIb29rcyB8fCBj
b2RlQmxvY2stPnVzZXNFdmFsKCk7CiAgICAgaWYgKHNob3VsZENhcHR1cmVBbGxPZlRoZVRoaW5n
cykKICAgICAgICAgbW9kdWxlUHJvZ3JhbU5vZGUtPnZhckRlY2xhcmF0aW9ucygpLm1hcmtBbGxW
YXJpYWJsZXNBc0NhcHR1cmVkKCk7CiAKICAgICBhdXRvIGNhcHR1cmVzID0gWyZdIChVbmlxdWVk
U3RyaW5nSW1wbCogdWlkKSAtPiBib29sIHsKLSAgICAgICAgaWYgKCFzaG91bGRDYXB0dXJlU29t
ZU9mVGhlVGhpbmdzKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4g
bW9kdWxlUHJvZ3JhbU5vZGUtPmNhcHR1cmVzKHVpZCk7CiAgICAgfTsKICAgICBhdXRvIGxvb2tV
cFZhcktpbmQgPSBbJl0gKFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGNvbnN0IFZhcmlhYmxlRW52
aXJvbm1lbnRFbnRyeSYgZW50cnkpIC0+IFZhcktpbmQgewpAQCAtOTYyLDcgKzk1OSw2IEBAIHZv
aWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmluaXRpYWxpemVQYXJhbWUKIHZvaWQgQnl0ZWNvZGVHZW5l
cmF0b3I6OmluaXRpYWxpemVWYXJMZXhpY2FsRW52aXJvbm1lbnQoaW50IHN5bWJvbFRhYmxlQ29u
c3RhbnRJbmRleCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChtX2xleGljYWxFbnZpcm9ubWVudFJl
Z2lzdGVyKTsKLSAgICBtX2NvZGVCbG9jay0+c2V0QWN0aXZhdGlvblJlZ2lzdGVyKG1fbGV4aWNh
bEVudmlyb25tZW50UmVnaXN0ZXItPnZpcnR1YWxSZWdpc3RlcigpKTsKICAgICBlbWl0T3Bjb2Rl
KG9wX2NyZWF0ZV9sZXhpY2FsX2Vudmlyb25tZW50KTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQobV9sZXhpY2FsRW52aXJvbm1lbnRSZWdpc3Rlci0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1Y3Rp
b25zKCkuYXBwZW5kKHNjb3BlUmVnaXN0ZXIoKS0+aW5kZXgoKSk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
CShyZXZpc2lvbiAxOTU4MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1NCw3ICszNTQsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBSZWdpc3RlcklEKiBkZXN0aW5hdGlvbkZvckFzc2ln
blJlc3VsdChSZWdpc3RlcklEKiBkc3QpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChkc3Qg
JiYgZHN0ICE9IGlnbm9yZWRSZXN1bHQoKSAmJiBtX2NvZGVCbG9jay0+bmVlZHNGdWxsU2NvcGVD
aGFpbigpKQorICAgICAgICAgICAgaWYgKGRzdCAmJiBkc3QgIT0gaWdub3JlZFJlc3VsdCgpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBkc3QtPmlzVGVtcG9yYXJ5KCkgPyBkc3QgOiBuZXdUZW1w
b3JhcnkoKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CkBAIC00NjUsNyArNDY1
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgQUxXQVlTX0lOTElORSBib29sIGxlZnRI
YW5kU2lkZU5lZWRzQ29weShib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGJvb2wgcmlnaHRJc1B1
cmUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAobV9jb2RlVHlwZSAhPSBGdW5jdGlv
bkNvZGUgfHwgbV9jb2RlQmxvY2stPm5lZWRzRnVsbFNjb3BlQ2hhaW4oKSB8fCByaWdodEhhc0Fz
c2lnbm1lbnRzKSAmJiAhcmlnaHRJc1B1cmU7CisgICAgICAgICAgICByZXR1cm4gKG1fY29kZVR5
cGUgIT0gRnVuY3Rpb25Db2RlIHx8IHJpZ2h0SGFzQXNzaWdubWVudHMpICYmICFyaWdodElzUHVy
ZTsKICAgICAgICAgfQogCiAgICAgICAgIEFMV0FZU19JTkxJTkUgUGFzc1JlZlB0cjxSZWdpc3Rl
cklEPiBlbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShFeHByZXNzaW9uTm9kZSogbiwgYm9vbCByaWdo
dEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SXNQdXJlKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDE5NTgzOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzM4LDcgKzEzMzgsNiBAQCB1bnNpZ25lZCBCeXRlQ29kZVBhcnNlcjo6
aW5saW5pbmdDb3N0KENhCiAgICAgICAgIGRhdGFMb2coIiAgICBNaWdodCBpbmxpbmUgZnVuY3Rp
b246ICIsIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3IoY29kZUJsb2NrLCBraW5kKSwgIlxuIik7CiAg
ICAgICAgIGRhdGFMb2coIiAgICBNaWdodCBjb21waWxlIGZ1bmN0aW9uOiAiLCBtaWdodENvbXBp
bGVGdW5jdGlvbkZvcihjb2RlQmxvY2ssIGtpbmQpLCAiXG4iKTsKICAgICAgICAgZGF0YUxvZygi
ICAgIElzIHN1cHBvcnRlZCBmb3IgaW5saW5pbmc6ICIsIGlzU3VwcG9ydGVkRm9ySW5saW5pbmco
Y29kZUJsb2NrKSwgIlxuIik7Ci0gICAgICAgIGRhdGFMb2coIiAgICBOZWVkcyBhY3RpdmF0aW9u
OiAiLCBjb2RlQmxvY2stPm93bmVyU2NyaXB0RXhlY3V0YWJsZSgpLT5uZWVkc0FjdGl2YXRpb24o
KSwgIlxuIik7CiAgICAgICAgIGRhdGFMb2coIiAgICBJcyBpbmxpbmluZyBjYW5kaWRhdGU6ICIs
IGNvZGVCbG9jay0+b3duZXJTY3JpcHRFeGVjdXRhYmxlKCktPmlzSW5saW5pbmdDYW5kaWRhdGUo
KSwgIlxuIik7CiAgICAgfQogICAgIGlmICghY2FuSW5saW5lKGNhcGFiaWxpdHlMZXZlbCkpIHsK
QEAgLTQ5MDksNyArNDkwOCw2IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQ29kZUJsb2Nr
KCkKICAgICAgICAgICAgICAgICAiICIsIGlubGluZUNhbGxGcmFtZSgpLT5kaXJlY3RDYWxsZXIp
OwogICAgICAgICB9CiAgICAgICAgIGRhdGFMb2coCi0gICAgICAgICAgICAiOiBuZWVkc0FjdGl2
YXRpb24gPSAiLCBjb2RlQmxvY2stPm5lZWRzQWN0aXZhdGlvbigpLAogICAgICAgICAgICAgIiwg
aXNTdHJpY3RNb2RlID0gIiwgY29kZUJsb2NrLT5vd25lclNjcmlwdEV4ZWN1dGFibGUoKS0+aXNT
dHJpY3RNb2RlKCksICJcbiIpOwogICAgICAgICBjb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigp
LT5kdW1wQnl0ZWNvZGUoKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5oCShyZXZpc2lvbiAxOTU4MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5OCwyNiArMzk4LDYgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBleGl0S2luZCk7
CiAgICAgfQogICAgIAotICAgIFZpcnR1YWxSZWdpc3RlciBhY3RpdmF0aW9uUmVnaXN0ZXIoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcHJvZmlsZWRCbG9jay0+YWN0aXZhdGlvblJlZ2lzdGVy
KCk7Ci0gICAgfQotICAgIAotICAgIFZpcnR1YWxSZWdpc3RlciB1bmNoZWNrZWRBY3RpdmF0aW9u
UmVnaXN0ZXIoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcHJvZmlsZWRCbG9jay0+dW5jaGVj
a2VkQWN0aXZhdGlvblJlZ2lzdGVyKCk7Ci0gICAgfQotICAgIAotICAgIFZpcnR1YWxSZWdpc3Rl
ciBtYWNoaW5lQWN0aXZhdGlvblJlZ2lzdGVyKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX3By
b2ZpbGVkQmxvY2stPmFjdGl2YXRpb25SZWdpc3RlcigpOwotICAgIH0KLSAgICAKLSAgICBWaXJ0
dWFsUmVnaXN0ZXIgdW5jaGVja2VkTWFjaGluZUFjdGl2YXRpb25SZWdpc3RlcigpCi0gICAgewot
ICAgICAgICByZXR1cm4gbV9wcm9maWxlZEJsb2NrLT51bmNoZWNrZWRBY3RpdmF0aW9uUmVnaXN0
ZXIoKTsKLSAgICB9Ci0gICAgCiAgICAgVmFsdWVQcm9maWxlKiB2YWx1ZVByb2ZpbGVGb3IoTm9k
ZSopOwogICAgIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgbWV0aG9kT2ZHZXR0aW5nQVZh
bHVlUHJvZmlsZUZvcihOb2RlKik7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAJKHJldmlzaW9uIDE5NTgzOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE3Myw4ICsxNzMsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICBkYXRhLT5t
YWNoaW5lTG9jYWwgPSBhc3NpZ24oYWxsb2NhdGlvbiwgZGF0YS0+bG9jYWwpOwogICAgICAgICB9
CiAgICAgICAgIAotICAgICAgICAvLyBUaGlzIHJlZ2lzdGVyIGlzIG5ldmVyIHZhbGlkIGZvciBE
RkcgY29kZSBibG9ja3MuCi0gICAgICAgIGNvZGVCbG9jaygpLT5zZXRBY3RpdmF0aW9uUmVnaXN0
ZXIoVmlydHVhbFJlZ2lzdGVyKCkpOwogICAgICAgICBpZiAoTElLRUxZKCFtX2dyYXBoLmhhc0Rl
YnVnZ2VyRW5hYmxlZCgpKSkKICAgICAgICAgICAgIGNvZGVCbG9jaygpLT5zZXRTY29wZVJlZ2lz
dGVyKFZpcnR1YWxSZWdpc3RlcigpKTsKICAgICAgICAgZWxzZQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDE5NTgz
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NCwyMCArODQsNiBAQCBDYWxsU2l0ZUluZGV4IENhbGxGcmFtZTo6
Y2FsbFNpdGVJbmRleCgpCiAgICAgcmV0dXJuIENhbGxTaXRlSW5kZXgoY2FsbFNpdGVBc1Jhd0Jp
dHMoKSk7CiB9CiAKLWJvb2wgQ2FsbEZyYW1lOjpoYXNBY3RpdmF0aW9uKCkgY29uc3QKLXsKLSAg
ICBKU1ZhbHVlIGFjdGl2YXRpb24gPSB1bmNoZWNrZWRBY3RpdmF0aW9uKCk7Ci0gICAgcmV0dXJu
ICEhYWN0aXZhdGlvbiAmJiBhY3RpdmF0aW9uLmlzQ2VsbCgpOwotfQotCi1KU1ZhbHVlIENhbGxG
cmFtZTo6dW5jaGVja2VkQWN0aXZhdGlvbigpIGNvbnN0Ci17Ci0gICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2sgPSB0aGlzLT5jb2RlQmxvY2soKTsKLSAgICBSRUxFQVNFX0FTU0VSVChjb2RlQmxvY2st
Pm5lZWRzQWN0aXZhdGlvbigpKTsKLSAgICBWaXJ0dWFsUmVnaXN0ZXIgYWN0aXZhdGlvblJlZ2lz
dGVyID0gY29kZUJsb2NrLT5hY3RpdmF0aW9uUmVnaXN0ZXIoKTsKLSAgICByZXR1cm4gcmVnaXN0
ZXJzKClbYWN0aXZhdGlvblJlZ2lzdGVyLm9mZnNldCgpXS5qc1ZhbHVlKCk7Ci19Ci0KICNpZm5k
ZWYgTkRFQlVHCiBKU1N0YWNrKiBDYWxsRnJhbWU6OnN0YWNrKCkKIHsKQEAgLTIwOCwyOCArMTk0
LDYgQEAgQ2FsbEZyYW1lKiBDYWxsRnJhbWU6OmNhbGxlckZyYW1lKFZNRW50cgogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDYWxsRnJhbWUqPihjYWxsZXJGcmFtZU9yVk1FbnRyeUZyYW1lKCkpOwog
fQogCi1KU0xleGljYWxFbnZpcm9ubWVudCogQ2FsbEZyYW1lOjpsZXhpY2FsRW52aXJvbm1lbnQo
KSBjb25zdAotewotICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdGhpcy0+Y29kZUJsb2NrKCk7
Ci0gICAgUkVMRUFTRV9BU1NFUlQoY29kZUJsb2NrLT5uZWVkc0FjdGl2YXRpb24oKSk7Ci0gICAg
VmlydHVhbFJlZ2lzdGVyIGFjdGl2YXRpb25SZWdpc3RlciA9IGNvZGVCbG9jay0+YWN0aXZhdGlv
blJlZ2lzdGVyKCk7Ci0gICAgcmV0dXJuIHJlZ2lzdGVycygpW2FjdGl2YXRpb25SZWdpc3Rlci5v
ZmZzZXQoKV0uUmVnaXN0ZXI6OmxleGljYWxFbnZpcm9ubWVudCgpOwotfQotCi1KU0xleGljYWxF
bnZpcm9ubWVudCogQ2FsbEZyYW1lOjpsZXhpY2FsRW52aXJvbm1lbnRPck51bGxwdHIoKSBjb25z
dAotewotICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdGhpcy0+Y29kZUJsb2NrKCk7Ci0gICAg
cmV0dXJuIGNvZGVCbG9jay0+bmVlZHNBY3RpdmF0aW9uKCkgPyBsZXhpY2FsRW52aXJvbm1lbnQo
KSA6IG51bGxwdHI7Ci19Ci0gICAgCi12b2lkIENhbGxGcmFtZTo6c2V0QWN0aXZhdGlvbihKU0xl
eGljYWxFbnZpcm9ubWVudCogbGV4aWNhbEVudmlyb25tZW50KQotewotICAgIENvZGVCbG9jayog
Y29kZUJsb2NrID0gdGhpcy0+Y29kZUJsb2NrKCk7Ci0gICAgUkVMRUFTRV9BU1NFUlQoY29kZUJs
b2NrLT5uZWVkc0FjdGl2YXRpb24oKSk7Ci0gICAgVmlydHVhbFJlZ2lzdGVyIGFjdGl2YXRpb25S
ZWdpc3RlciA9IGNvZGVCbG9jay0+YWN0aXZhdGlvblJlZ2lzdGVyKCk7Ci0gICAgcmVnaXN0ZXJz
KClbYWN0aXZhdGlvblJlZ2lzdGVyLm9mZnNldCgpXSA9IGxleGljYWxFbnZpcm9ubWVudDsKLX0K
LQogU3RyaW5nIENhbGxGcmFtZTo6ZnJpZW5kbHlGdW5jdGlvbk5hbWUoKQogewogICAgIENvZGVC
bG9jayogY29kZUJsb2NrID0gdGhpcy0+Y29kZUJsb2NrKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCShyZXZpc2lvbiAxOTU4MzkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM0LDcgKzM0LDYgQEAKIG5hbWVzcGFjZSBKU0MgIHsKIAogICAgIGNsYXNzIEFy
Z3VtZW50czsKLSAgICBjbGFzcyBKU0xleGljYWxFbnZpcm9ubWVudDsKICAgICBjbGFzcyBJbnRl
cnByZXRlcjsKICAgICBjbGFzcyBKU1Njb3BlOwogCkBAIC03NSwxMSArNzQsNiBAQCBuYW1lc3Bh
Y2UgSlNDICB7CiAgICAgICAgICAgICByZXR1cm4gdGhpc1tzY29wZVJlZ2lzdGVyT2Zmc2V0XS5S
ZWdpc3Rlcjo6c2NvcGUoKTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgaGFzQWN0aXZhdGlv
bigpIGNvbnN0OwotICAgICAgICBKU0xleGljYWxFbnZpcm9ubWVudCogbGV4aWNhbEVudmlyb25t
ZW50KCkgY29uc3Q7Ci0gICAgICAgIEpTTGV4aWNhbEVudmlyb25tZW50KiBsZXhpY2FsRW52aXJv
bm1lbnRPck51bGxwdHIoKSBjb25zdDsKLSAgICAgICAgSlNWYWx1ZSB1bmNoZWNrZWRBY3RpdmF0
aW9uKCkgY29uc3Q7Ci0KICAgICAgICAgLy8gR2xvYmFsIG9iamVjdCBpbiB3aGljaCBleGVjdXRp
b24gYmVnYW4uCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTR2xvYmFsT2JqZWN0KiB2bUVu
dHJ5R2xvYmFsT2JqZWN0KCk7CiAKQEAgLTE2NCw3ICsxNTgsNiBAQCBuYW1lc3BhY2UgSlNDICB7
CiAKICAgICAgICAgdm9pZCBzZXRDYWxsZXJGcmFtZShDYWxsRnJhbWUqIGZyYW1lKSB7IGNhbGxl
ckZyYW1lQW5kUEMoKS5jYWxsZXJGcmFtZSA9IGZyYW1lOyB9CiAgICAgICAgIHZvaWQgc2V0U2Nv
cGUoaW50IHNjb3BlUmVnaXN0ZXJPZmZzZXQsIEpTU2NvcGUqIHNjb3BlKSB7IHN0YXRpY19jYXN0
PFJlZ2lzdGVyKj4odGhpcylbc2NvcGVSZWdpc3Rlck9mZnNldF0gPSBzY29wZTsgfQotICAgICAg
ICB2b2lkIHNldEFjdGl2YXRpb24oSlNMZXhpY2FsRW52aXJvbm1lbnQqKTsKIAogICAgICAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgaW5pdChDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1Y3Rpb24q
IHZQQywKICAgICAgICAgICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUsIGludCBhcmdjLCBKU09i
amVjdCogY2FsbGVlKSAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9S
ZWdpc3Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9SZWdpc3Rlci5oCShyZXZpc2lvbiAxOTU4MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXImIG9wZXJhdG9yPShKU09iamVjdCopOwog
CiAgICAgICAgIGludDMyX3QgaSgpIGNvbnN0OwotICAgICAgICBKU0xleGljYWxFbnZpcm9ubWVu
dCogbGV4aWNhbEVudmlyb25tZW50KCkgY29uc3Q7CiAgICAgICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lKCkgY29uc3Q7CiAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrKCkgY29uc3Q7CiAgICAg
ICAgIEpTT2JqZWN0KiBvYmplY3QoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMTk1ODM5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTAzMSw3ICsxMDMxLDYgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX25l
d19mdW5jKQogewogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBleGVjLT5jb2RlQmxvY2soKTsKLSAgICBBU1NFUlQoY29kZUJsb2NrLT5jb2RlVHlwZSgpICE9
IEZ1bmN0aW9uQ29kZSB8fCAhY29kZUJsb2NrLT5uZWVkc0FjdGl2YXRpb24oKSB8fCBleGVjLT5o
YXNBY3RpdmF0aW9uKCkpOwogICAgIEpTU2NvcGUqIHNjb3BlID0gZXhlYy0+dW5jaGVja2VkUihw
Y1syXS51Lm9wZXJhbmQpLlJlZ2lzdGVyOjpzY29wZSgpOwogI2lmIExMSU5UX1NMT1dfUEFUSF9U
UkFDSU5HCiAgICAgZGF0YUxvZ0YoIkNyZWF0aW5nIGZ1bmN0aW9uIVxuIik7CkBAIC0xMDQzLDcg
KzEwNDIsNiBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfbmV3X2dlbmVyCiB7CiAg
ICAgTExJTlRfQkVHSU4oKTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVC
bG9jaygpOwotICAgIEFTU0VSVChjb2RlQmxvY2stPmNvZGVUeXBlKCkgIT0gRnVuY3Rpb25Db2Rl
IHx8ICFjb2RlQmxvY2stPm5lZWRzQWN0aXZhdGlvbigpIHx8IGV4ZWMtPmhhc0FjdGl2YXRpb24o
KSk7CiAgICAgSlNTY29wZSogc2NvcGUgPSBleGVjLT51bmNoZWNrZWRSKHBjWzJdLnUub3BlcmFu
ZCkuUmVnaXN0ZXI6OnNjb3BlKCk7CiAjaWYgTExJTlRfU0xPV19QQVRIX1RSQUNJTkcKICAgICBk
YXRhTG9nRigiQ3JlYXRpbmcgZnVuY3Rpb24hXG4iKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgJKHJldmlzaW9uIDE5NTgzOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ4
LDcgKzM0OCw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgdXNlc0V2YWwoKSBjb25zdCB7IHJldHVy
biBtX2ZlYXR1cmVzICYgRXZhbEZlYXR1cmU7IH0KICAgICBib29sIHVzZXNBcmd1bWVudHMoKSBj
b25zdCB7IHJldHVybiBtX2ZlYXR1cmVzICYgQXJndW1lbnRzRmVhdHVyZTsgfQotICAgIGJvb2wg
bmVlZHNBY3RpdmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9oYXNDYXB0dXJlZFZhcmlhYmxlcyB8
fCBtX2ZlYXR1cmVzICYgKEV2YWxGZWF0dXJlIHwgV2l0aEZlYXR1cmUpOyB9CiAgICAgYm9vbCBp
c0Fycm93RnVuY3Rpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9pc0Fycm93RnVuY3Rpb25D
b250ZXh0OyB9CiAgICAgYm9vbCBpc1N0cmljdE1vZGUoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1
cmVzICYgU3RyaWN0TW9kZUZlYXR1cmU7IH0KICAgICBEZXJpdmVkQ29udGV4dFR5cGUgZGVyaXZl
ZENvbnRleHRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9kZXJpdmVkQ29udGV4dFR5cGU7IH0KQEAg
LTQ1OCw3ICs0NTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIAogICAgIERFQ0xBUkVfSU5GTzsKIAot
ICAgIEV4ZWN1dGFibGVJbmZvIGV4ZWN1dGFibGVJbmZvKCkgY29uc3QgeyByZXR1cm4gRXhlY3V0
YWJsZUluZm8obmVlZHNBY3RpdmF0aW9uKCksIHVzZXNFdmFsKCksIGlzU3RyaWN0TW9kZSgpLCBm
YWxzZSwgZmFsc2UsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgU3VwZXJCaW5kaW5nOjpOb3ROZWVk
ZWQsIFNvdXJjZVBhcnNlTW9kZTo6UHJvZ3JhbU1vZGUsIGRlcml2ZWRDb250ZXh0VHlwZSgpLCBp
c0Fycm93RnVuY3Rpb25Db250ZXh0KCkgLCBmYWxzZSk7IH0KKyAgICBFeGVjdXRhYmxlSW5mbyBl
eGVjdXRhYmxlSW5mbygpIGNvbnN0IHsgcmV0dXJuIEV4ZWN1dGFibGVJbmZvKHVzZXNFdmFsKCks
IGlzU3RyaWN0TW9kZSgpLCBmYWxzZSwgZmFsc2UsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgU3Vw
ZXJCaW5kaW5nOjpOb3ROZWVkZWQsIFNvdXJjZVBhcnNlTW9kZTo6UHJvZ3JhbU1vZGUsIGRlcml2
ZWRDb250ZXh0VHlwZSgpLCBpc0Fycm93RnVuY3Rpb25Db250ZXh0KCkgLCBmYWxzZSk7IH0KIAog
ICAgIHVuc2lnbmVkIG51bVZhcmlhYmxlcygpIHsgcmV0dXJuIG1fdW5saW5rZWRFdmFsQ29kZUJs
b2NrLT5udW1WYXJpYWJsZXMoKTsgfQogICAgIHVuc2lnbmVkIG51bWJlck9mRnVuY3Rpb25EZWNs
cygpIHsgcmV0dXJuIG1fdW5saW5rZWRFdmFsQ29kZUJsb2NrLT5udW1iZXJPZkZ1bmN0aW9uRGVj
bHMoKTsgfQpAQCAtNTEyLDcgKzUxMSw3IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgREVDTEFS
RV9JTkZPOwogCi0gICAgRXhlY3V0YWJsZUluZm8gZXhlY3V0YWJsZUluZm8oKSBjb25zdCB7IHJl
dHVybiBFeGVjdXRhYmxlSW5mbyhuZWVkc0FjdGl2YXRpb24oKSwgdXNlc0V2YWwoKSwgaXNTdHJp
Y3RNb2RlKCksIGZhbHNlLCBmYWxzZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBTdXBlckJpbmRp
bmc6Ok5vdE5lZWRlZCwgU291cmNlUGFyc2VNb2RlOjpQcm9ncmFtTW9kZSwgZGVyaXZlZENvbnRl
eHRUeXBlKCksIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQoKSwgZmFsc2UpOyB9CisgICAgRXhlY3V0
YWJsZUluZm8gZXhlY3V0YWJsZUluZm8oKSBjb25zdCB7IHJldHVybiBFeGVjdXRhYmxlSW5mbyh1
c2VzRXZhbCgpLCBpc1N0cmljdE1vZGUoKSwgZmFsc2UsIGZhbHNlLCBDb25zdHJ1Y3RvcktpbmQ6
Ok5vbmUsIFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLCBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1N
b2RlLCBkZXJpdmVkQ29udGV4dFR5cGUoKSwgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCgpLCBmYWxz
ZSk7IH0KIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgRXhlY3V0YWJsZUJhc2U7CkBAIC01
NTMsNyArNTUyLDcgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCi0gICAgRXhlY3V0
YWJsZUluZm8gZXhlY3V0YWJsZUluZm8oKSBjb25zdCB7IHJldHVybiBFeGVjdXRhYmxlSW5mbyhu
ZWVkc0FjdGl2YXRpb24oKSwgdXNlc0V2YWwoKSwgaXNTdHJpY3RNb2RlKCksIGZhbHNlLCBmYWxz
ZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwgU291cmNl
UGFyc2VNb2RlOjpNb2R1bGVFdmFsdWF0ZU1vZGUsIGRlcml2ZWRDb250ZXh0VHlwZSgpLCBpc0Fy
cm93RnVuY3Rpb25Db250ZXh0KCksIGZhbHNlKTsgfQorICAgIEV4ZWN1dGFibGVJbmZvIGV4ZWN1
dGFibGVJbmZvKCkgY29uc3QgeyByZXR1cm4gRXhlY3V0YWJsZUluZm8odXNlc0V2YWwoKSwgaXNT
dHJpY3RNb2RlKCksIGZhbHNlLCBmYWxzZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBTdXBlckJp
bmRpbmc6Ok5vdE5lZWRlZCwgU291cmNlUGFyc2VNb2RlOjpNb2R1bGVFdmFsdWF0ZU1vZGUsIGRl
cml2ZWRDb250ZXh0VHlwZSgpLCBpc0Fycm93RnVuY3Rpb25Db250ZXh0KCksIGZhbHNlKTsgfQog
CiAgICAgVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiB1bmxpbmtlZE1vZHVsZVByb2dy
YW1Db2RlQmxvY2soKSB7IHJldHVybiBtX3VubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jay5n
ZXQoKTsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxF
bnZpcm9ubWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTGV4aWNhbEVudmlyb25tZW50LmgJKHJldmlzaW9uIDE5NTgzOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTg5LDExICs4OSw2IEBAIGlubGluZSBKU0xleGljYWxFbnZpcm9ubWVudCogYXNBY3RpdmF0
aW8KICAgICByZXR1cm4ganNDYXN0PEpTTGV4aWNhbEVudmlyb25tZW50Kj4oYXNPYmplY3QodmFs
dWUpKTsKIH0KICAgICAKLUFMV0FZU19JTkxJTkUgSlNMZXhpY2FsRW52aXJvbm1lbnQqIFJlZ2lz
dGVyOjpsZXhpY2FsRW52aXJvbm1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBhc0FjdGl2YXRp
b24oanNWYWx1ZSgpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKU0xl
eGljYWxFbnZpcm9ubWVudF9oCg==
</data>
<flag name="review"
          id="295103"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>